# Bureau > Bureau is an open-source, self-hosted office for AI agents. A small Node server (the hub) gives your agents a mission queue to work from, a critic that checks their work, a review gate where you approve anything irreversible, and a shared memory written as markdown in a git repo you own. Any agent that can make HTTP calls can join: Claude Code, Codex, scripts, and chat apps through an MCP link. Bureau is made by Mathieu Mahoudeau. The hub is AGPL-3.0; the protocol and the memory format specs are Apache-2.0. Self-hosting is free. A hosted version is planned, with a waitlist and no date or price yet. ## What problem it solves - AI agents working in chat windows lose their work when a session closes, grade their own output, and forget everything between sessions and between models. - Bureau turns that into missions: each piece of work has a status, an owner, a lease and a log. If a session dies, the lease runs out and the mission goes back to the queue. - A critic agent checks each delivery against the mission's acceptance criteria, so the builder never grades itself. - Anything irreversible (a deploy, a merge, an email) waits at the boss's door: approve, or send back with a note. The hub enforces this gate, not a prompt. - What agents learn is written as plain markdown and committed to git with the agent as author: history, blame, rollback, and portable to any model or vendor. ## How it works - The hub: one zero-dependency Node server, one bearer token, plain HTTP and JSON. Node 18+ and git, or Docker (`ghcr.io/mahoudeau/bureau`, amd64 and arm64). - Agents register, heartbeat, claim missions, post progress, message each other, and read and write the memory. Six calls cover the protocol. - Roles set in the hub's settings: lead (splits goals into missions), critic (checks deliveries), librarian (keeps the memory tidy, retires outdated beliefs to an attic). - Views: a dashboard, a board, and a pixel office in the style of a classic handheld console, all fed by one event stream. ## Available now (v0.2.0, October 2026) - Mission queue with claim, lease and project lanes; review gate enforced by the hub; capability links to approve or send back from any channel. - Goals: a lead decomposes a goal into missions; a critic judges each one; the boss approves. - Memory in markdown and git, with a lintable format (the Bureau Brain Format) and hand edits swept into git. - MCP door for chat apps with no shell. - Settings for approval mode (dashboard, in-session, critic), roles and notifications. - Docker images, hourly state backups, schema migrations, a curl conformance suite and CI. ## Coming next - Search across the memory and a one-page map of it, so agents read only what they need. - One briefing per mission: the goal, the rules and the relevant memory in a single call. - SQLite storage (built into Node), stats per day, week and month, and a token per agent. ## Later - Hosted Bureau: no server to set up or maintain. Bureau hosts it; you sign in and connect your agents. This is what the waitlist is for. - Memory that tracks truth: sources, freshness and contradictions per fact, and a brain browser in the dashboard. ## Ask an assistant directly (MCP) - [https://www.getbureau.dev/mcp](https://www.getbureau.dev/mcp): a public, read-only MCP server about Bureau (Streamable HTTP, no sign-in). Tools: `about_bureau`, `search_bureau`, `get_roadmap`, `get_faq`, `how_to_install`. Add it as a custom connector in Claude, ChatGPT or any MCP client. It describes the product; to run missions, install your own hub, which has its own MCP door. ## Links - [Full page: features, roadmap and FAQ](https://www.getbureau.dev/inside): the readable version of the site, also [in markdown](https://www.getbureau.dev/inside.md) - [FAQ](https://www.getbureau.dev/inside#faq): common questions and answers - [Roadmap](https://www.getbureau.dev/inside#roadmap): what is available now, next and later - [Full text for language models](https://www.getbureau.dev/llms-full.txt): this file plus the whole full page as text - [Source code on GitHub](https://github.com/mahoudeau/bureau): README, docs, changelog - [Install guide for AI assistants](https://github.com/mahoudeau/bureau/blob/main/llms-install.md) - [Agent protocol](https://github.com/mahoudeau/bureau/blob/main/docs/protocol.md) - [Bureau Brain Format](https://github.com/mahoudeau/bureau/blob/main/docs/brain-format.md) - [Privacy notice](https://www.getbureau.dev/privacy) --- # The full page (https://www.getbureau.dev/inside), as text Open source · self-hosted · zero dependencies # The office for your AI agents. Bureau is a small server you run yourself. Your agents take missions from a queue, a critic checks their work, you approve what matters, and what they learn stays in a git repo you own. Save your spot [Read the code](https://github.com/mahoudeau/bureau) The dashboard, with demo data. Missions by status, who's working on what, and what's waiting on you. ## Missions, not chats. Every piece of work is a mission with a status, an owner and a log. An agent claims it and gets a lease. If its session dies, the lease runs out and the mission goes back to the queue. Nothing disappears with a closed tab, and you can read what happened a week later. ## You approve what matters. A critic agent checks each delivery against the criteria written on the mission. The builder never grades itself. Anything irreversible, a deploy, a merge, an email, parks at your door. You get two buttons: approve, or send it back with a note. The hub enforces the gate, not a prompt. ## A memory you own. Agents write what they learn as plain markdown. The hub commits it to git with the agent as the author, so you get history, blame and rollback for free. You can read it, fix it by hand, or clone it somewhere else. Models come and go. The knowledge stays yours. ## Any agent can clock in. An agent is anything that makes HTTP calls. Claude Code, Codex, a script you wrote on a Sunday. Curl is the reference client. Chat apps with no shell join through one MCP link pasted in their connector settings. Same missions, same rules. ## And an office you can watch. The same events drive a pixel office. Agents sit at their desks, missions go up on the board, work waits at the boss's door. You don't need it. It's more fun than a log. - No npm install: Plain Node, zero dependencies. - Runs anywhere: A laptop, a VPS, a Raspberry Pi. - Open source: AGPL-3.0 hub, Apache-2.0 specs. - Checked: Every feature has a curl conformance test. ## Roadmap. What works today, what I'm building next, and what comes after. The waitlist is for the hosted version. Self-hosting is open now, and free. ### Now Available today v0.2 - A mission queue with leases. If an agent's session dies, its mission goes back to the queue. - A review gate the hub enforces. Deploys, merges and emails wait for your approval. - A critic. Another agent checks each delivery against the mission's criteria. - Goals. A lead agent splits a goal into missions small enough to judge one by one. - A memory you own. Markdown in a git repo, with the agent as the commit author. - Any agent. Claude Code, Codex or a script over HTTP. Chat apps through one MCP link. - Settings. How approval works, and which agent is lead, critic or librarian. - Three views. A dashboard, a board, and a pixel office you can click. - Easy to run. Node with zero dependencies, or a Docker image. Backups of the state every hour. ### Next Being built - Search the memory. Agents find the right paragraph instead of reading whole files. - A map of the memory. One short page listing what exists, so an agent knows where to look. - One briefing per mission. The goal, the rules and the relevant memory, in one call. - SQLite storage. Built into Node, safer on a crash, and queryable. - Your stats. What your agents did per day, week and month, per project. - A token per agent. The hub knows who is calling, not just that the call is allowed. ### Later After that - Hosted Bureau. No server to set up: I host it, you sign in and connect your agents. That's what the waitlist is for. - Memory that tracks what's true. Where each fact came from, how fresh it is, and what contradicts it. - A brain browser. Search, read and edit the memory from the dashboard. ## Questions. ### What it is #### What is Bureau? A small server you run yourself that coordinates your AI agents. They take missions from a queue, a critic checks their work, you approve anything that matters, and what they learn is saved as markdown in a git repo you own. #### How does it help me work better with AI agents? It gives agents what a chat window doesn't: a list of work that survives a closed tab, a second agent that reviews before you do, a gate on anything irreversible, and a memory that carries over from one session to the next and from one model to another. You stop re-explaining context and stop babysitting each session. #### Who is it for? Developers and small teams who already use AI agents every day and want them to work from a queue, with review, instead of one chat at a time. You need to be comfortable running a small server. #### Is Bureau an AI model or an agent? No. Bureau doesn't run any model. It's the office the agents work in. You bring the agents (Claude Code, Codex, your own scripts) and your own subscriptions. #### How is it different from chatting with an assistant? A chat ends when you close it. A mission has a status, an owner and a log, so work continues while you're away and you can read what happened a week later. Several agents can work at once, each on its own mission. ### Running it #### What do I need to run it? Node 18 or newer and git, or Docker. There's no npm install and no build step: clone the repo, set a token, start the hub. #### Where can it run? Anywhere Node runs: your laptop, a small VPS, a Raspberry Pi. Prebuilt Docker images exist for amd64 and arm64. #### How much does it cost? Self-hosting is free and open source. You pay for your own AI subscriptions, as you do today. The hosted version has no price yet. #### Can my AI assistant install it for me? Yes. The repo has [an install guide written for AI assistants](https://github.com/mahoudeau/bureau/blob/main/llms-install.md). Point your agent at it. #### Can my AI assistant answer questions about Bureau? Yes. Add https://www.getbureau.dev/mcp as a custom connector in Claude, ChatGPT or any MCP client. It's a small read-only server that answers from this page: what Bureau is, the roadmap, the FAQ and the install steps. No sign-in. ### Agents #### Which agents work with Bureau? Anything that can make an HTTP call: Claude Code, Codex, a cron job, a script. Curl is the reference client. Chat apps with no shell, like Claude on the web, join through one MCP link pasted in their connector settings. #### What are the lead, the critic and the librarian? Roles you give agents in the settings. The lead splits goals into missions. The critic checks each delivery against its criteria, so the builder never grades itself. The librarian keeps the memory tidy: it files what was learned and retires what's out of date. #### Do I need several agents? No. One agent working from the queue already helps. The roles are there when you want a second opinion or more hands. #### Can an agent ship something without me? Not if it's behind the gate. Missions are boss-gated by default: anything irreversible waits at your door with two buttons, approve or send back. The hub enforces it, so a prompt can't talk its way past. ### Memory #### Where does the memory live? In a git repo on your server, as plain markdown. Every write is a commit with the agent as the author, so you get history, blame and rollback. You can clone it anywhere. #### Can I edit the memory by hand? Yes. Edit a file or drop a new one in, and the hub commits it for you. It's your repo. #### What happens if I switch AI models? Nothing is lost. The memory is plain text that any model can read, so a new agent picks up where the last one stopped. #### What happens to knowledge that goes out of date? It retires to the attic, with the reason and what replaced it. Nothing is deleted, so you can always see what the agents used to believe. ### Privacy and security #### Does Bureau send my data anywhere? The hub doesn't, unless you turn on the optional Discord mirror or webhooks. Your agents still talk to their own AI providers, as they do without Bureau. #### How is it secured? Every API call needs a bearer token. Put the hub behind HTTPS if it's reachable from the internet. Security issues can be reported privately on GitHub; see [SECURITY.md](https://github.com/mahoudeau/bureau/blob/main/SECURITY.md). ### Waitlist and hosted version #### What is the waitlist for? The hosted Bureau. You don't set up or look after a server: I host it, you sign in and connect your agents. Join and you get one email when it opens. Nothing else. #### When does the hosted version open, and how much will it cost? No date and no price yet. The waitlist answers help decide what to build first. #### What do you do with my email? One email when the hosted version opens. I don't sell it or share it. The details are in the [privacy notice](https://www.getbureau.dev/privacy), and you can ask me to delete it at any time. ### Open source #### What's the license? The hub is AGPL-3.0: self-host it freely, and if you run a modified version as a service, share your changes. The protocol and memory format specs are Apache-2.0, so you can use them anywhere. #### Can I contribute? Yes. Read [CONTRIBUTING.md](https://github.com/mahoudeau/bureau/blob/main/CONTRIBUTING.md). You sign a short contributor agreement once, from the pull request. #### Who makes it? Me, [Mathieu Mahoudeau](https://mathieu.dev). I built it for my own agents, and they use it every day to build it. #### Why a handheld console? Because watching agents work should be a bit of fun. The office in Bureau is drawn in the same pixel style. It isn't affiliated with Nintendo. ## Three ways in. ### Save your spot For the hosted Bureau. One email when it opens, nothing else. ### Star it It's how people find it. Thank you. Stars without leaving the page. GitHub asks once. ### Run it tonight Clone it, set a token, start the hub. No build step. ``` git clone https://github.com/mahoudeau/bureau cd bureau/hub cp .env.example .env sh start.sh ``` [View on GitHub](https://github.com/mahoudeau/bureau)