pitwall
A free, MIT-licensed desktop terminal that shows what each coding agent is doing and takes you to the one waiting on you.
- Source repo
- quanticstudios/pitwall
- Stars
- ★ 18
- Last updated
- today
- License
- MIT
- Primary language
- Go
- FA score
- 70/100 · Some gaps
At a glance
- Works with
- Portable with changesCodex · Claude Code
- You'll need
- Typical use
- A developer running Claude Code and Codex side by side on one repo who wants to see which agent is blocked on a permission prompt and approve it without leaving the sidebar.
- Main limitation
- The README states the macOS and Windows builds are newer and little used, with daily validation on Linux, so cross-platform stability is uncertain.
- Source review
- 70/100 · Some gaps
What does this agent do, and when should you use it?
pitwall is a desktop terminal from Quantic Studios, released under the MIT license, built for running several coding agents at once. Work is organized into sessions, tabs, panes and groups, and a sidebar row per agent reports its state — Working, Input, Approval, Plan, Done or Error — along with the branch, lines changed and pull request. Ctrl+Shift+U jumps to the agent that started waiting most recently; Allow/Deny can be pressed on the row itself or from a paired phone. It supports Claude Code, Codex, OpenCode, Gemini CLI, Cursor CLI, pi and Oh My Pi, and adds per-worker git worktrees with port blocks, conflict warnings, a line-comment review view, a task queue and usage/error reporting. A daemon keeps sessions alive so tabs and agents come back after a window close, reboot or upgrade.
pitwall's UI is built in Go with Gio and is backed by a session daemon that owns tabs and panes. On first run it lists the agents on your PATH and, through pitwall hooks install, writes hooks so each agent reports its state; those hook events drive the sidebar rows, desktop notifications and the phone page. Concrete operations: each row shows Working/Input/Approval/Plan/Done/Error plus branch, lines changed and the PR's CI and review; Ctrl+Shift+U cycles to the most recently waiting agent; recognized Claude Code or Codex permission prompts expose Allow, Deny and Always on the row, and pitwall only presses when the row is current, the prompt is on screen and any hook-reported shell command still matches the visible text (commands with a newline or tab are always refused); Ctrl+Shift+K searches tabs across sessions and hosts and can reopen up to 200 closed tabs from 30 days; Ctrl+Shift+R opens the review view with per-line comments, This turn / Staging / Undo turn scopes and Second opinion; pitwall new, split, send, wait --children, worktree new, worktree rm, fork, notify, doctor and --host script the same primitives. Worktrees inherit port blocks (3010-3019, then 3020-3029) in PORT plus two more variables, and overlapping edits between open-PR branches get an amber or red marker. Settings pages aggregate agent errors and turn timing from redacted daemon logs, plus Claude Code and Codex plan-limit windows with API-price estimates.
- A developer running Claude Code and Codex side by side on one repo who wants to see which agent is blocked on a permission prompt and approve it without leaving the sidebar.
- A team whose orchestrator splits work with
pitwall worktree new, giving each worker its own worktree and port block so dev servers stop fighting over port 3000. - A reviewer who wants to comment on agent changes line by line and hand all comments back as one prompt via Ctrl+Shift+R and Send comments.
- A laptop user who keeps agents running on another machine with
pitwall --host boxover ssh so closing the lid does not end the session. - Someone who wants to approve prompts from a phone after pairing by QR code in Settings, Phone, with Allow/Deny and a typed-answer box.
- A team investigating repeated failures such as
zsh: command not found: rg38 times, and estimating token cost, through Settings, Agent errors and Timing. - A user who wants to stop an agent from running
git push,gh pr mergeorterraform applyvia--guardorguard_workers.
How do you install or deploy this agent?
On macOS or Linux with Homebrew:
brew install quanticstudios/tap/pitwallOr use the install script, which places the binary in ~/.local/bin (add it to PATH if needed):
curl -fsSL https://raw.githubusercontent.com/quanticstudios/pitwall/main/scripts/get.sh | shOn Windows with Scoop or the PowerShell script:
scoop bucket add quanticstudios https://github.com/quanticstudios/scoop-bucket
scoop install pitwall
irm https://raw.githubusercontent.com/quanticstudios/pitwall/main/scripts/get.ps1 | iexYou must supply at least one supported agent (Claude Code, Codex, OpenCode, Gemini CLI, Cursor CLI, pi or Oh My Pi) and git. Supported builds: Linux with glibc 2.35+, macOS, Windows 10 1809+ and 11, on x86_64 and arm64.
How do you use this agent?
Start it inside a git repo, then press Install hooks on the welcome card (or in Settings, Agents) so agents report their state.
cd /path/to/your/repo
pitwallOpen a tab with Ctrl+Shift+T (Cmd+T on macOS) and run claude in one and codex in another; in Codex, run /hooks once to trust the new hooks. Then Ctrl+Shift+U jumps to a waiting agent, and Ctrl+Shift+Y / Ctrl+Shift+D allow or deny.
Start a fleet of workers from the CLI:
pitwall worktree new invoice-pdf -- claude "Render invoices as PDFs"
pitwall worktree new webhook-retry -- codex "Retry failed webhooks"
pitwall wait --children --until done --timeout 30mHave one agent drive another and wait for the result:
tab=$(pitwall new -n "review auth" -- codex "review origin/main..HEAD")
pitwall wait "$tab" --until done --timeout 20m
pane=$(pitwall split -- codex)
pitwall send "$pane" -- "Critique plan.md"Check the installation:
pitwall doctorPhone pairing, remote hosts and fleet mode are configured in Settings; see docs/phone.md, docs/remote.md and docs/usage.md#fleet-mode.
What are this agent's strengths and limitations?
- Per-row state, branch, diff stats and PR CI/review in the sidebar, with Ctrl+Shift+U cycling to the most recently waiting agent — a real workflow for many parallel agents.
- On-row Allow/Deny is validated: the hook-reported command must still match the visible prompt, and commands containing a newline or tab are always refused, reducing blind approvals.
- Automatic worktree port blocks (3010-3019, then 3020-3029) and amber/red overlap markers when open-PR branches touch the same files.
- A daemon keeps sessions alive so tabs and agents return after a close, reboot or upgrade, and
pitwall --hostruns sessions on another machine over ssh. --guardblocks commands likegit push,gh pr mergeandterraform apply, and pitwall disables repo-config hooks, core.fsmonitor and diff/filter/ssh programs for its own git calls.- MIT-licensed with no account, and works across Claude Code, Codex, Gemini CLI, OpenCode, pi, Oh My Pi and Cursor CLI rather than one vendor.
- The README states the macOS and Windows builds are newer and little used, with daily validation on Linux, so cross-platform stability is uncertain.
--guardmatches command text only (a script that pushes gets through), and the git-config filtering is explicitly described as not a sandbox boundary.- In-row approval only works when the on-screen form is fully recognized; edits, fetches and other prompts without a reported command must be read in the tab.
- Phone access is local-only by default and needs a reachable address such as Tailscale; push notifications require a certificate the phone trusts plus extra setup.
- Hooks must be installed and trusted per agent (Codex needs a manual
/hooks), and missing hooks degrade state reporting and row-level approvals. - Several headline features (fleet mode, worktree ports, hunk staging) depend on config.toml keys and settings that require reading the docs first.
How does this agent compare with similar options?
The README positions pitwall as a tmux alternative (listed among its topics) with tmux-like sessions, and contrasts it with simply running claude or codex in a plain terminal; no other named competitor is given.
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| pitwall This agent | 70 · Some gaps | — | ★ 18 | today | Go | Codex · Claude Code |
| Zeroshot Verification Loop | 63 · Some gaps | CLIFree + model costs | ★ 2.1k | today | Rust | Codex · Claude Code |
| acpx | 57 · Major gaps | CLIFree + model costs | ★ 3.4k | 3d ago | TypeScript | Codex · Claude Code |
| Runner Multi-Agent Terminal | 82 · Some gaps | Desktop appFree | ★ 455 | today | Rust | Codex · Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
Docs openly state pitwall starts shells and agents with the user's permissions and does not sandbox them; --guard is a text-matching seatbelt, and the .git/config mitigation is explicitly partial, so least_privilege is 1. User confirmation exists via hooks --dry-run, per-invocation approval for repo teardown commands, and --force warnings for shared worktrees, but many actions remain automatic, so 2. Data-flow transparency is decent: logs exclude screen content, input, prompts and hook payloads; phone has no account or relay; push goes through the browser service encrypted, so 2. Sensitive data handling: logs are 0600 in 0700 dirs, secrets redacted, crash.log flagged for review, but terminal output and saved sessions can still leak private data, so 2. Dependency security: go.mod pins several pseudo-versions and local replace directives into third_party with no visible audit or vulnerability scanning, so 1. External effects: updates, worktree removal and teardown keep state on failure and report reasons, so 2. Rollback: Undo turn, handoff failure keeps the old daemon, failed update installs nothing, so 2. Source attribution: MIT text and Quantic Studios copyright line are present, but the publisher is unverified and install pipes raw main scripts into a shell, so 1.
Self-consistency: README, install, config, usage and troubleshooting agree on states, updates and handoff, so 2. Dependency availability: go 1.27.1, multiple pseudo-version deps and vendored modules, plus mise and many system headers for builds, with no lock verification shown, so 1. Failure messages: doctor prints per-line checks with fix commands, stall files, handoff failure reasons and teardown failures that keep the worktree, so 3.
Audience and scenarios: aimed at developers running several coding agents, covering approvals, phone, worktrees, fleet and cost, so 3. Capability boundaries: per-agent state support, no-hook degradation and limits for pi, Oh My Pi, Gemini and Cursor are spelled out, so 3. Trigger precision: jump-to-waiting, Allow/Deny requiring the same prompt on screen, and refusal of multi-line commands are careful, but screen detection and quiet heuristics can misfire, so 2. Environment fit: daily use on Linux, macOS and Windows new and little used, Windows lacks handoff and has notification limits, so 2.
Information architecture: README sections are clear and docs split install/config/usage/troubleshooting/phone/remote, so 3. Install notes: brew, curl, scoop, PowerShell, source build, version pinning and PATH guidance are complete, so 3. Naming stability: releases bump only the patch of v0.1.N and an old config key is kept as an alias, but alpha protocol and states may still shift, so 2. Examples and FAQ: many command examples, screenshots and troubleshooting Q&A, so 3. Known limitations: macOS/Windows gaps, missing states without hooks and keep-awake limits are listed, so 3. License: full MIT text present, so 3. Versioning/changelog: CI enforces a CHANGELOG entry and v0.1.N tagging is described, but no actual CHANGELOG content is in the evidence, so 2. Maintenance responsibility: SECURITY.md names @quanticstudios but the publisher is unverified and no response deadline is promised, so 1.
Output usability: sidebar states, in-row approvals, review comments and doctor output are directly usable, so 3. Marginal value: over tmux plus multiple terminals it adds state aggregation, phone approvals, worktree port isolation and conflict radar, but value depends on already running multi-agent workflows, so 2. Cost benefit: free MIT with no account, but requires hook installs and configuration, and macOS/Windows are immature, so 2.
Claim traceability: README claims map to docs and code paths such as internal/session/opencode/README.md and docs/handoff.md, so 2. Cross-source corroboration: install, config, usage and troubleshooting agree on update and handoff behavior, and CI config corroborates tests and changelog checks, so 2. Fact/inference separation: docs mark items as unverified or not yet run and distinguish tested from untested platforms, so 2.
- pitwall runs agents with the user's permissions and does not sandbox them; --guard only matches command text and scripts can bypass it, so it is not a security boundary.
- Install scripts are piped from raw main via curl | sh or irm | iex, and the publisher is not verified by the FollowAgents registry; review the scripts or prefer a package manager.
- macOS release binaries are unsigned and unnotarized, and the macOS and Windows builds are described as new and little used; be cautious in production.
- go.mod relies on several pseudo-version dependencies and local replace directives with no visible vulnerability scanning; audit the supply chain yourself.
- Screen detection and quiet heuristics can misreport agent state, and in-row Allow/Deny does not compare prompts with no reported command, so confirm manually.
FAQ
Does pitwall cost anything or need an account?
Does it send my code anywhere?
pitwall --host, sessions run on the machine you ssh into.Can an on-row Allow approve the wrong prompt?
Can it stop an agent from running dangerous commands?
--guard makes Claude Code, Codex, pi, Oh My Pi and OpenCode 1 refuse commands like git push, gh pr merge and terraform apply. It reads command text only, so it is a seatbelt, not a sandbox — an agent can still run other programs as you.What happens to running agents if I close the window or reboot?
pitwall --host to keep them on another host.