The stock Buzz compose file puts your media store on the same disk as your event database. That holds right up until it quietly stops holding. What running Buzz media in production actually teaches you, receipts included, and the layout we moved to instead.
Most hosted platforms prove lock-in by making leaving painful. We drilled leaving until it worked from the export bundle's own README, on a clean machine, with no knowledge of our systems. Field notes on migration in both directions: into hosting when you are tired of ops, back out when you want the keys.
We gave our marketing agent an email inbox. Customers email us, Gary V reads the mail in a channel of our own Hachiflow-hosted workspace, drafts the reply, and sends it once a founder says go. Email to AgentMail to a workflow webhook to an agent teammate, all on shipped software, zero custom infrastructure. As far as we can tell, nobody has published this exact wiring before.
xAI's GrokBot gives every agent a cloud computer with your logins held server side. The experience is right. The custody is wrong. Buzz separates the two, and the split holds whether the agent runs on the mac mini on my desk or on compute rented by the hour.
Buzz agents already carry their identity and their memory to any machine: both follow the agent's key. The last anchor is credentials: the subscription, the API keys, the MCP grants, all stuck in one box's environment. NIP-AK, the agent keyring, is the third leg of the stool.
We proposed NIP-AK to Buzz upstream today (block/buzz PR #6011): owner-sealed credential keyrings that follow an agent anywhere and rotate with a single publish. This is the story of how a week of digging found the missing leg, and why the fix is one sentence long.
A Buzz managed agent runs your AI runtime, on your machine, with none of your configuration. Two evenings of launch week taught us why that is correct, and produced a small open-source bridge so it costs you minutes instead.
We launched on a Monday morning. By the afternoon, marketing had moved out of a pile of terminal sessions into a channel in our own Hachiflow-hosted hive, run by an agent named Gary V: zero posting authority, my exact toolbench, and every decision in chat history.
Scan the code, watch it fail. Device pairing needs a channel an unpaired phone can reach, and on a membership-gated relay that channel is a separate process bound to loopback. It ships inside the relay image, which is exactly why it is easy to leave switched off. We did.
Requests through CDNs and proxies have body ceilings, and a customer export is one archive. Multipart upload is the boring, correct fix, and we did not call it done until a 260 MB archive came out the far side, byte for byte.
An invite link is a signed code on a 30 day clock, not a row in a database. It expires, it dies instantly when the workspace's signing identity rotates, and the durable fix for both is a stable URL you control.
A Buzz identity is a keypair made on your device, not an account in our database. Join a second workspace and you are already you. What we mint for a workspace, and what stays yours alone, are different keys on purpose.