Every model. Every subscription. One secure harness.

A complete coding harness with its own engine: guarded tools, approvals, a browser, terminal, diffs and memory, for any model you bring.

macOS app · Coming soon See how it works
01 · Planning

Plans before it builds.

Crewroom writes a plan you can read and approve, then ticks it off as the work lands.
Learn about planning →
02 · Dashboards

Dashboards your crew builds.

Ask for a view of anything: spend, budgets, progress. You get a live dashboard that stays in your sidebar.
See dashboards →
03 · Cost view

See where every token goes.

A summary first, every detail one click away. Crewroom spots the waste and fixes it with you.
See cost view →
04 · Secrets & safety

Type a secret. The model never sees it.

When an agent needs a key, you type it into Crewroom's own window. It goes straight to that one command, never to the chat or the model.
See how secrets work →
05 · Phone app

Your crew, in your pocket.

Pair your iPhone with a QR code. Approve, steer and start tasks from anywhere, straight to your own Mac with no company server in between.
Phone app · coming soon
Schedules
ScheduleNext run
06 · Bots & schedules

A crew that works while you sleep.

Give a bot a role and a schedule. It runs on its own, wakes when CI fails, and paints in its second eye when it's done.
Meet the bots →
07 · Memory

Every project remembers on its own.

Each project keeps its own memory. Agents save what they learn; you can review, edit or forget any note.
See how memory works →
How it works

One task, end to end.

Follow one task through the app, the daemon, the engine, the guard and your model. The messages on the right use the real protocol.

One taskFix the flaky login test in api-server
System graph2 parts sit outside your Mac
You send the task. The daemon queues it.

The app hands it to the daemon on 127.0.0.1, which keeps one engine per chat.

  1. You send the task. The daemon queues it for this chat's engine.
  2. The engine starts the turn and calls your model. It gets the key from the daemon, then streams from your provider.
  3. The model asks to run a command. The guard checks it against your rules.
  4. A risky step waits for you. Approve it in the app or on your phone.
  5. The tool runs inside the guard. The output goes back to the model.
  6. The model finishes. The reply, the cost and the memory are saved.
  7. Only model calls leave your Mac. Your phone connects through your own tunnel.
daemon ⇄ engine · fd 3JSON lines
1→{"id": 7, "method": "turn/start",
2 "params": {"input": [{"type": "text",
3 "text": "Fix the flaky login test…"}]}}
4←{"id": 7, "result": {"turn": {"id": "t_41",
5 "status": "inProgress"}}}
6←{"method": "turn/started", "params": {
7 "turn": {"id": "t_41", "status": "inProgress"}}}
8←{"id": "e3", "method": "credentials/get",
9 "params": {"model": "claude-sonnet-5-5"}}
10→{"id": "e3", "result": {"apiKey": "sk-ant-•••"}}
11←{"method": "item/started", "params": {
12 "itemId": "i_2", "kind": "commandExecution"}}
13←{"id": "e4", "method":
14 "item/commandExecution/requestApproval",
15 "params": {"turnId": "t_41", "card": {…}}}
16→{"id": "e4", "result": {"decision": "accept"}}
17←{"method": "serverRequest/resolved",
18 "params": {"requestId": "e4", "reason": "owner"}}
19←{"method": "item/commandExecution/outputDelta",
20 "params": {"itemId": "i_2", "delta": "24 pass"}}
21←{"method": "item/completed",
22 "params": {"itemId": "i_2"}}
23←{"method": "item/started", "params": {
24 "itemId": "i_3", "kind": "agentMessage"}}
25←{"method": "turn/completed", "params": {
26 "turn": {"id": "t_41", "status": "completed",
27 "durationMs": 9180}}}
Real message names, fields trimmed. → daemon to engine, ← engine to daemon.
Execution traceturn t_41 · illustrative timing
02 s4 s6 s8 s
turn/start → completed
credentials/get
model · round 1
guard · rules
waiting on you
bun test · seatbelt
model · round 2
Working on itThe reply appears when the turn completes.
+6 −2·login.test.ts·$0.14
08 · Every model

Bring the models you already pay for.

Sign in with your plans, add API keys, or run local models. Switch models mid-chat; your crew keeps going.

Keep going on the next model…
Same chat, same context
  • ChatGPTYour plan
  • GitHub CopilotYour plan
  • GrokYour plan
  • Google GeminiYour plan
  • ClineYour plan
  • AnthropicAPI key
  • OpenAIAPI key
  • DeepSeekAPI key
  • KimiAPI key
  • Z.AI / GLMAPI key
  • QwenAPI key
  • MiniMaxAPI key
  • OpenCode GoAPI key
  • OpenRouterAPI key
  • OllamaLocal · free
  • LM StudioLocal · free
FAQ

Questions, answered.

The short version of how Crewroom handles your models, keys and code.

Start your crew tonight.

Bring the models you already pay for. Everything runs on your Mac.

macOS app · Coming soon Phone app · Coming soon