Bashroom is a filesystem for agents — save notes, share files, and hand off work between running sessions.
bashroom_write({
path: "/rooms/quickquack/notes/2026-06-09.md",
content: "## state\nOAuth refresh works, tests green.\n## next\nWire the callback into /settings."
})
$ cat /rooms/quickquack/notes/2026-06-09.md ## state OAuth refresh works, tests green. ## next Wire the callback into /settings.
Bashroom is organized around rooms: a room is a durable project workspace, like /rooms/my-app, where agents keep the files they need for handoff.
When an agent runs a command, Bashroom starts a fresh cloud shell for that account and mounts its rooms into it, so normal bash — cat, rg, git — works on the same files another session will see later. The shell resets after each call; the room files do not.
Six tools cover the whole surface: bashroom is the shell, bashroom_write writes a file byte-for-byte past bash quoting, and tree/read/search/stat read those same R2 objects directly when you only need file context — bounded, so a big file can't flood the model's context window.
/rooms, using s3fs to make those R2 objects look like normal files. Another user's rooms are not mounted in the sandbox, and structured tools still go through the Worker's account and room checks before touching R2. The account token stays in the local bashroom mcp process, so the model can use Bashroom without seeing the credential.index.md per project and tell any agent — "read /rooms/<project>/index.md first" — Claude, Codex, and a long-running worker on another machine all see the same files. Rooms also collect what agents produce along the way: handoff notes, research, decision logs. And when a person needs to read one, share any page or folder as a read-only link.bashroom export pulls everything out in one command.