One workspace: the boring rules that made our agents agree
How one launch folder, one memory and one rulebook stopped five agents from drifting apart, and why the terminal around them had to change next.
READ THE POST ↗One Roof is a Mac app that sits between a consumer app and a terminal. Every Claude Code, Codex, Kimi, Gemini and Antigravity session you have running, on every subscription, is in one place. Each session says in plain words what it's doing, and your rules plus each subscription's remaining usage decide which agent and account takes the next task.
Your subscriptions, detected. Up to two Claude accounts and one of each other agent, detected automatically. Claude and Codex show live usage, and new sessions go to the seat with room.
Agents don't run your work for you. A few tasks will run on their own, but deep, detailed work still needs a person: setting direction, answering questions, checking the result. What's changed is how many things need you at once. You're running several, and you switch between them all day.
The terminal comes from a world of one session, maybe two, and it gets hard to read the moment you have ten.
Warp made it a little easier, but it's still a terminal: the same tab bar and the same wall of text. People new to engineering find that wall hard to work in.
One Roof is built to make that switching easy. Glance at a session, see where it is, decide and move on. It brings the terminal to the consumer world with labels, colours, plain-language summaries and one place for every decision, and keeps a real terminal underneath.
Six windows of ten or fifteen sessions each, spread across five agents and several accounts. Here's what goes wrong, and what One Roof does about each one.
Every tab has the same grey icon, so you type WIP: or NEXT: in front of the name to keep track.
→ Every session is labelled with its state, agent, account and a live one-line status. 02You give an instruction and get pages of output. You only look up when it stops.
→ A summary of what you asked, what it's doing now and how many steps are done. The stream folds into chapters. 03"Allow this command?" comes with no reason, no sense of the risk, and no way to see what happens if you say no.
→ Every question in one place, with the agent's reason, what it touches, the risk and what happens if you say no. 04Five agents and several accounts, but you have to remember which one is good at what and which still has room.
→ Your routing rules and each seat's remaining usage pick the agent, account and model. An optional on-device model sorts each task into a kind in about 0.2 s. 05Launch in the wrong folder and an agent works with a different memory and none of your rules.
→ One launch folder, one memory and one rulebook, checked every time the app starts. 06The tracker, Linear and your tabs never agree, so you're always cross-checking them.
→ Board, Work and tickets inside the app. Every session knows its ticket.At the top: what you asked, what it's doing right now, and steps 3 of 4. Finished steps fold into one-line chapters, and the live step stays a real terminal. Subagents sit beside it with their own captions. Press ⌘R for the raw stream.

Every agent waiting on you, oldest first. Each request shows why the agent wants to do it, in its own words, plus what it touches, the risk, what happens if you say no, and where it sits in the plan. Allow once, always allow, deny, or reply with instructions. You stay in the loop; nothing is approved for you.

Planned, Next, Working, Needs you, Ready, Tonight: every session across every window on one board. Drag a card to Next, or drop it on Tonight to run at 2 AM, nightly, or on demand.

A timeline of every subagent: who asked it what, the model it runs on, tokens used, how long it took, and what it's doing right now. Parallel swarms show up with their own agent's colour.

Your routing rules rank the agents for each kind of task, and One Roof checks each subscription's remaining usage, then suggests the agent, account and model. An optional small language model runs on your Mac, not in the cloud, and labels each task plan, build, review, research or chore in about 0.2 seconds. You approve it. When a seat nears its limit, the step hands off to the next one with a handoff note.
One Roof works out whether this is a session, a ticket, a defect or a workstream, finds similar tickets, and puts the router's suggestion on top with its reason. Launch now, queue it next, or schedule it for tonight.

Sessions, files, terminal and plan side by side, built on Ghostty's renderer, with ⌘D and ⇧⌘D to split panes. Agents keep running when you quit the app. Each panel can be light, mid-grey or dark on its own.

A light IDE: edit, ⌘R to run, ⇧⌘R to debug, with problems listed beside the code. Lines an agent changed carry its colour, and a file an agent is editing is marked as claimed. Review the diff, comment on a line to send it back to the agent, then commit.


Work shows your workstreams and tickets by phase, with the session working on each one. Press ▶ on any ticket and the router suggests who should take it. Learn is an agentic-engineering coach: a 12-lesson narrated course and 17 starter skills. Listen in the app, or send a skill straight to a session.


Apple silicon · macOS 14+ · herdr · git · at least one agent CLI signed in
Unzip and drag One Roof to Applications.
First launch: macOS 15+ System Settings › Privacy & Security › Open Anyway; macOS 14 right-click › Open.
DOWNLOAD .ZIPFirst launch finds the agents and signed-in accounts you already use and checks your setup.
brew install herdr
Press ⌘N and say what should happen. One Roof suggests the agent and account; you launch it.
⌘N new session · ⌘↩ launch
Swift 6, Xcode 26. The README walks through the build. github.com/gaurav8936/oneroof
Agents only agree when they read the same rules and notes. Claude Code keys its memory on the folder you launch from: start in the wrong one and it quietly opens a second memory. We lost 26 notes that way in five weeks. The kit works from the command line, with or without the app.
git clone https://github.com/gaurav8936/oneroof ~/oneroof ~/oneroof/bin/roof install roof doctor # checks every layer, live
How one launch folder, one memory and one rulebook stopped five agents from drifting apart, and why the terminal around them had to change next.
READ THE POST ↗