A reactive PR inbox in your terminal. Instead of refreshing GitHub, events flow to you — new comments, CI failures, and review requests surface as they land. Each task opens a git worktree with an embedded terminal for Claude Code, Codex, Cursor, or a shell. It's for developers juggling many PRs and AI coding agents at once; think a TUI inbox (lazygit-style) where every row is also a ready-to-run workspace.
Prefer not to autoplay? Here's a static screenshot and a seekable MP4. The demo is generated from demo/pilot.tape — it's code, not a recording.
No prebuilt release yet (pre-1.0 — see Status), so build from source:
git clone https://github.com/AntoineToussaint/pilot.git
cd pilot
make setup # one-shot: downloads pinned zig 0.15.2 to ~/.cache/pilot/zig/
make run # build + runPrerequisites: Rust 1.85+, a C compiler (for bundled SQLite), the
GitHub CLI logged in (gh auth login — pilot reads
gh auth token), and network access to github.com on the first build. Linux
also needs libc++ + libc++abi (sudo apt install build-essential pkg-config libc++-dev libc++abi-dev on Debian/Ubuntu). Full build notes, troubleshooting,
and the Homebrew/curl channels that land at 1.0 are in the
Quickstart.
Want to see the UI immediately, with no GitHub account and nothing to configure?
pilot --test # throwaway tempdir repo + one seeded workspace, no GitHubYou land on the inbox. Then:
j / k move between workspaces
Enter open the selected workspace
c spawn a Claude Code session in its worktree (s for a plain shell)
]] back to the inbox
That's the whole model in one screen: the workspace got an isolated git
worktree and a live embedded terminal, and you never left the inbox.
Run pilot (no --test) to do the same against your real PRs — the first
launch walks you through a short setup wizard. Run pilot --help any time for
an orientation of every command.
📖 antoinetoussaint.github.io/pilot — organized by what you're trying to do:
- Quickstart — install → run → your first win, in ~5 minutes.
- How-to guides — add a repo, run an agent per workspace, per-repo env/mounts, remote over SSH, mirror to Slack.
- Reference — every CLI command, the full keybindings, and the
~/.pilot/config.yamlschema. - Explanation — the mental model (worktree- and agent-per-workspace) and the architecture.
Copy-paste config starters live in examples/. Deep architecture
notes are in CLAUDE.md and DESIGN.md; the
per-feature dev catalog — what each piece does, where it lives, and how to test
it — is in docs/features/.
The bottom hint bar always shows what's available in the focused pane; press ?
for the full overlay. The ones you'll reach for first:
| Key | Action |
|---|---|
Tab |
Cycle Sidebar → Activity → Terminals |
j / k · Enter |
Navigate the inbox · open a workspace |
c / x / u · s |
Spawn Claude / Codex / Cursor · spawn a shell |
w |
"Work" — spawn Claude with the right prompt for the row's state (fix CI / address comments / implement issue) |
m · r |
Mark read · reply |
Shift-M · Shift-V · Shift-L · Shift-O |
Merge PR · reviewers · labels · open in browser |
, · ? · q q |
Settings · help · quit |
]] |
Leave a terminal, back to the sidebar |
The full keybinding reference covers every pane.
Pre-1.0, early-adopter dev mode. Daily-driver for the author on macOS; Linux
runs the same code paths but gets less testing. Expect sharp edges, log spam in
/tmp/pilot.log, and the occasional breaking change. Prebuilt release channels
(Homebrew tap, curl | sh, GitHub Releases) are scaffolded but not yet active —
no version tag has been pushed.
Run a side-by-side dev instance against its own state with make dev
(PILOT_HOME=~/.pilot-dev) if you want to try pilot without disturbing your
main inbox.
Issues and PRs welcome — see CONTRIBUTING.md for the build
loop and standing rules (tests with every change; the four core libraries stay
dependency-free of each other). Questions, bugs, and feature ideas:
SUPPORT.md points you at
Discussions and the
issue templates.
MIT — see LICENSE.
