Most days I have six to ten Claude Code sessions open. One is fixing a paywall, one is writing tests, one is on a landing page, one is reviewing another one's work. For a while they all lived in terminal tabs, and my real job became going through those tabs to find the one that had been waiting on a permission for twenty minutes.
A terminal tab does not tell you it needs you. It just sits there.
On October 14 I found bureau-des-agents by devlikemasta, a small pixel art room where you watch Claude agents work. I forked it to see if I could run my real sessions in it instead of only watching them. Four weeks and 52 releases later, it is called Open Space and I have not opened a terminal tab for Claude since.
The one idea
Every session is a character at a desk. When it works, it types. When it needs you, for a permission, a question or a key, it raises its hand and lands in a "For you" list. You click, answer, and it goes back to work.
That is the whole product, really. Everything else came from using it all day and hitting the next wall.
Under the hood
Each session is a real claude -p process talking stream-json over stdin and stdout, so it runs on your own Claude Code subscription with your own config, hooks and MCP servers. The server listens on 127.0.0.1 only and makes no outbound calls of its own. The room is drawn in code, so there is not a single image file to fetch either.
The part that took longest was permissions. A headless claude -p has no terminal to ask you in, and it turns out it only hands permission prompts back to you with --permission-prompt-tool stdio, a flag that is not in claude --help. Claude found it by running the CLI with small test prompts and reading what came back. Those outputs are saved as fixtures, and the tests replay them, so when the CLI format changes the tests are the first to say so.
When the pixel art gets in the way
I share my screen in meetings, and nobody needs to see my crew in there. ⌘ . swaps the room for a plain list grouped by state, with up to six conversations side by side.
Sessions that step on each other
Two sessions in the same repo will eventually edit the same file. So when you start a session in a folder that is already busy, Open Space offers to put it on its own branch in a git worktree. .env and node_modules are copied as APFS clones, so it starts instantly and costs no disk. When it is done, a card says "Ready to merge" with the commit count: Merge, or Open a PR.
This one came straight from building Open Space inside Open Space. My own sessions kept overwriting each other's work, and after the third time I stopped fixing it by hand.
The server room
Some sessions should start without me: the security check at 7 am, the daily notes before standup, a review every time a ticket gets assigned. Triggers start a session on a cron or when something calls its webhook, and those sessions show up as robots in a server room next door. The office and the server room are linked by a portal, because of course they are.
Each one can have a cost cap and a time cap. Past either one, the run stops and the thread says why.
Keys the agent never sees
Agents keep asking for API keys, and the easy answer is to paste one into the chat, where it stays in the transcript forever. Now the agent asks for a key by name, a box opens like a question, and you paste the value there. The agent can write it to a .env or run a command with it, but it only ever knows the name. The value stays in memory for 12 hours at most.
Mods
The last thing I added: small windows your agents build for you. You describe one ("my Claude costs this week", "today's PRs", a YouTube player), a session writes it with a kit of tested components, and it floats over the room. Each mod runs in its own origin, with no access to Open Space or its cookies.
The room itself
I said I would keep this about the tool, but the room is half the reason I open it in the morning. The sky follows your clock: clouds by day, stars and a moon at night, snow at Christmas, fireworks on New Year's Eve.
There are seven office themes: space shuttle, neon Tokyo, dungeon, beach bar, pirate ship, treehouse, and a hackers' cave I made last week because I wanted to work in one.
And the crew has 71 outfits and 18 pets, including a slime and a golem. All of it is drawn in code by Claude, pixel by pixel, without one image file.
How Claude built it
Almost all the code was written by Claude Code, mostly Opus, and for most of the month it was written from inside Open Space. I decided what to build, picked between mockups, and used every version myself before it shipped.
The routine that held up:
- Every bigger feature starts as an HTML mockup. I pick one before any code exists.
- Then a written spec and a step by step plan, both in the repo.
- A separate session reviews the bigger releases, without seeing the first one's reasoning.
- Claude bumps the version, writes the changelog and publishes the signed Mac build. The app updates itself from the GitHub release.
It also stopped being only mine. Quentin ported it to Windows, Mouhrad brought the triggers and the Telegram bot, and GC and JB keep sending PRs I would not have thought of.
Where it is now
v1.32, MIT, Mac and Windows, 72 stars. I use it every day, for everything, and that is the main test it passes. It is still rough in places.
If you try it, the feedback I want most: what made you go back to a terminal tab, and what you had to work out on your own in the first five minutes.
- github.com/Fantomiald/open-space, with the Mac and Windows builds under Releases
- or clone it and run
npm start(Node 22.18+) to open it in your browser
You need Claude Code installed and logged in.
Open Space started as a fork of devlikemasta/bureau-des-agents. Not affiliated with Anthropic.





