Skip to content

Artifacts and links

An agent that writes wiki/report.html and says “I’ve written the report” has done half the job. The other half is the link.

BearDrive gives every synced file two of them: an internal link gated by sign-in and org membership, and a public link that needs no account.

Terminal window
$ bdrive url wiki/report.html
https://drive.example.com/p-1a2b3c4d/wiki/report.html

Computed locally with no network call, always shows the latest synced content, and requires the viewer to be signed in and a member of the project’s org.

This is the default link an agent should drop into its reply. --sync pushes first, so a just-created file resolves immediately:

Terminal window
bdrive url --sync wiki/report.html

With no argument, bdrive url gives the project home.

For people outside the hub — a client, a candidate, someone in another company — share the file publicly. Hand them the URL and they see it, no account needed.

Terminal window
$ bdrive share wiki/report.html
https://drive.example.com/s/eacc1df3ee6a6ebbdacc535c2796dc30

Links serve the file’s latest synced content, which is the right behavior for living reports and wiki pages, and live until revoked.

Terminal window
bdrive share --list # every link you've minted
bdrive share --revoke <token-or-url> # kill one
bdrive share --expires 24h <file> # self-destructing link

The web UI has a Share button on every file.

This is what makes “write a report and share it” a single request: the agent generates wiki/report.html, the hook pushes it, and the reply comes back with a public URL already in it.

  • HTML renders as a real page — which is why generated reports are worth emitting as HTML.
  • Markdown renders like the viewer, with a small “Shared with BearDrive” footer. Raw HTML inside it is served byte-for-byte and never injected into.
  • PDFs open inline.

Rendering is sandboxed: /s/* responses carry a strict CSP, never see auth cookies, and sit behind a per-IP rate limit, so a malicious shared file’s scripts can’t touch hub sessions and a scraper can’t turn your hub into a CDN.

Every change is attributed to the account, agent, and device behind it, and content is content-addressed and retained forever — so every version stays viewable.

Terminal window
bdrive log # recent changes across the project
bdrive log -p wiki/report.md # one file's history
bdrive log -n 50 # more of them

The web UI’s History view shows the same thing with view and download of any past version, including which device (name, OS, and the IP the server observed) made each change. Folder rows have a history shortcut for a subtree feed.

This is the part a memory API can’t give you: when an agent asserts something, you can see which agent wrote it, when, from where, and what the file said before.