{"slug": "why-we-built-pilothouse-one-inbox-and-pretooluse-rules-for-claude-code-codex-and", "title": "Why we built Pilothouse: One inbox and PreToolUse rules for Claude Code, Codex, OpenCode, and Grok Build", "summary": "A developer built Pilothouse, a single Go binary that runs a per-machine daemon to unify approval prompts from multiple coding agents — Claude Code, Codex, OpenCode and Grok Build — into one inbox reachable from the terminal or a phone. The tool enforces a PreToolUse policy engine with deny/ask/allow rules that apply across agents, uses hooks rather than terminal scraping to capture exact tool calls, and routes prompts to a person only when they are actually away. It fails open by default, with an opt-in fail-closed mode, and the developer describes its protections against agents approving their own requests as defense in depth rather than a sandbox.", "body_md": "*Originally published at [pilothouse.dev/blog/why-we-built-pilothouse](https://pilothouse.dev/blog/why-we-built-pilothouse).*\n\n**Update (October 26, 2026):** Pilothouse 0.2 adds OpenCode and Grok Build support, questions and plan approval from your phone, replies, activity and usage tracking, and two-way Telegram.\n\nIf you run coding agents seriously, your day probably looks like this: three or four Claude Code sessions in different repos, a Codex session reviewing a PR, maybe an OpenCode or Grok Build session running in another tab or on a server over SSH. Each of them will, at some unpredictable moment, stop and wait for you.\n\nSometimes you’re right there. Often you’re in another tab, in a meeting, making coffee, or asleep — and the agent sits idle for an hour because it wanted to run `npm install`.\n\n[Pilothouse](https://pilothouse.dev) exists to fix that, without making the rest of your setup worse.\n\n**Blocked prompts you don’t see.** Agents tell you they need you in the terminal they run in. If that terminal is behind three other windows, you find out when you go looking.\n\n**Every vendor solves it for itself.** Claude Code has Remote Control and push notifications. Codex has the ChatGPT apps. They’re good — for their own agent. If you use more than one agent, you have multiple inboxes, multiple apps, and separate sets of rules, and none of them know about the others.\n\n**Permission prompts are the wrong place for rules.** We wanted “never force-push” and “ask me before anything touches `main`” to hold for every agent. But a tool that only sees permission prompts can’t enforce that: if the agent’s settings already allow `git push`, it never asks, so there is nothing to intercept.\n\n**Most tools want you to move in.** A lot of the tooling around agents is a new terminal, a new multiplexer, or a new desktop app you have to run your agents inside. Some of them are excellent. But we already have terminals we like, and `tmux` or `herdr` sessions on servers that aren’t going anywhere.\n\nWhy the name? A pilothouse is the enclosed room on a ship’s bridge where the ship is steered from. Your agents are the crew; you steer every one of them from one place — at the desk or from your phone.\n\nPilothouse is a single Go binary that runs a small daemon per machine:\n\n`tmux`, or `herdr`.` PreToolUse` policy engine.`command.matches(\"(--force|-f)\\\\b\")`). Any `deny` wins, then `ask`, then `allow`. A repo can ship its own `.pilothouse/policy.yaml`, but until you trust it, it can only make things stricter.\n**Hooks over pixels.** Reading the bottom of a terminal and guessing what an agent is doing works surprisingly often and fails in surprising ways. Hooks give us the exact tool call, the exact command, and a synchronous way to say yes or no. When a session’s state looks wrong, `pilothouse explain` shows the evidence behind it instead of shrugging.\n\n**Two checkpoints.** Policy runs on every `PreToolUse` and never waits for a person, so it’s fast. People are only asked when the agent would ask anyway — or when a rule says `ask`.\n\n**Don’t freeze the terminal.** The naive version of “approve from your phone” holds every prompt for the phone, which makes the terminal worse for the person sitting at it. Presence routing is the fix: only hold when you’re actually away.\n\n**Fail open, by default.** If Pilothouse crashes, your agents carry on as if it weren’t installed. If you’d rather they stop, set `approvals.fail_closed: true`.\n\n**Be honest about limits.** An agent runs as you. Pilothouse makes it hard for an agent to approve its own request — socket-only local decisions, a process-ancestry check, signed remote decisions, and a built-in rule that asks before an agent touches Pilothouse — but it is defense in depth, not a sandbox.\n\nWant to see the real web app with pretend agents asking for approvals in a temporary folder before touching your setup?\n\n```\ncurl -fsSL https://pilothouse.dev/install.sh | sh\npilothouse demo\n```\n\nOr install via Homebrew / shell and wire up your agents in under five minutes:\n\n```\nbrew install pilothouse-dev/tap/pilothouse\npilothouse setup\n```\n\nPilothouse is free and open source under Apache-2.0: [https://pilothouse.dev](https://pilothouse.dev)", "url": "https://wpnews.pro/news/why-we-built-pilothouse-one-inbox-and-pretooluse-rules-for-claude-code-codex-and", "canonical_source": "https://dev.to/pilothousedev/why-we-built-pilothouse-one-inbox-and-pretooluse-rules-for-claude-code-codex-opencode-and-grok-3agg", "published_at": "2026-11-02 16:41:43+00:00", "updated_at": "2026-11-02 16:53:58.708999+00:00", "lang": "en", "topics": ["ai-agents", "ai-tools", "developer-tools", "ai-products"], "entities": ["Pilothouse", "Claude Code", "Codex", "OpenCode", "Grok Build", "OpenAI", "Anthropic", "Telegram"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/why-we-built-pilothouse-one-inbox-and-pretooluse-rules-for-claude-code-codex-and", "markdown": "https://wpnews.pro/news/why-we-built-pilothouse-one-inbox-and-pretooluse-rules-for-claude-code-codex-and.md", "text": "https://wpnews.pro/news/why-we-built-pilothouse-one-inbox-and-pretooluse-rules-for-claude-code-codex-and.txt", "jsonld": "https://wpnews.pro/news/why-we-built-pilothouse-one-inbox-and-pretooluse-rules-for-claude-code-codex-and.jsonld"}}