See which agent needs you
Claude Code tabs report working, needs you and idle. The counts sit in the status bar and the page title.
Run Claude Code, Codex or any agent CLI side by side, each in its own git worktree, then review the diff, edit the file and merge the pull request in the same tab.
curl -fsSL https://raw.githubusercontent.com/Neautrino/punk0/main/install.sh | sh
irm https://raw.githubusercontent.com/Neautrino/punk0/main/install.ps1 | iex
punk0 keeps it simple. It organises the agents you already run and shows you their work.
git worktree add by hand, cleanup later.~/.punk0. Deleting the workspace can remove the folder with git worktree remove.Written in Go. No Electron, no Node, no cgo.
Each agent is the unmodified CLI started in your shell, signed in as you. punk0 has no chat of its own.
Listens on 127.0.0.1. Terminals are refused if it listens anywhere else, and requests from other host names are rejected.
State lives in ~/.punk0. Repositories only get worktree registrations, and temporary refs/px0/* during a review.
Other orchestrators are desktop apps that bring their own browser engine, a background daemon, and sometimes a chat pane and a sign-in. punk0 does one job, organising the agents you already run, and leaves the rest out.
| App | Startup to the project | Memory when idle | Download |
|---|---|---|---|
| punk0 0.1.0 | 0.64 s | 55 MiB + about 112 MiB for its tab in your browser | 17 MiB |
| Orca 1.4.241 | 2.00 s | 563 MiB | 234 MiB |
| Paradev 2.0.0 formerly Superset | 1.97 s to the sign-in screen | 450 MiB or more at the sign-in screen | 470 MiB |
| What ships | punk0 | Orca | Paradev |
|---|---|---|---|
| Runtime | One Go binary; opens in your browser | Electron desktop app | Electron desktop app |
| Built-in browser | No | Yes | Yes |
| Agents | The real CLIs in terminals | CLIs in terminals | CLIs in terminals, plus its own chat pane |
| Account | None | None | GitHub or Google sign-in required |
| After you quit | Everything stops | A terminal daemon keeps running | Background terminal daemon |
| Mobile app, cloud relay | No | Yes | Yes, mobile with Pro |
| First launch writes into | Only ~/.punk0 | ~/.claude, ~/.config/opencode | ~/.claude, ~/.codex, ~/.agents/skills and more |
| Telemetry | Anonymous, on by default, -no-telemetry | Anonymous, on by default, opt-out | PostHog and Sentry bundled |
| License | MIT | MIT | Elastic License 2.0 |
punk0 runs on your machine and serves one page at 127.0.0.1:7777. Everything hangs off three things.
A repository you add with punk0 ~/code/app. A second punk0 hands its folder to the one already running.
The project folder, a git worktree on a branch of its own, or a scratch folder for work with no repository.
Your shell in a terminal, or an agent started in it: Claude Code, Codex, OpenCode, Antigravity or Cursor Agent.
$ punk0 ~/code/punk0 punk0 0.1.0 agents http://127.0.0.1:7777/?ws=08ef519525e5eea7 project punk0 / main ~/code/punk0 ctrl-c to stop 22:15 ▶ claude punk0 / ring-len 22:20 ▶ shell punk0 / windows-conpty 22:20 ■ editor punk0 / main idle 5 min
Everything here is punk0's own layer on top of px0.
Claude Code tabs report working, needs you and idle. The counts sit in the status bar and the page title.
Chats reads what Claude Code, Codex and OpenCode keep on disk, grouped by workspace, and resumes any conversation in a tab.
Reload and every tab reattaches with its recent output. Restart punk0 and a Claude Code tab resumes its own conversation.
A terminal idle for 30 minutes is stopped, never a Claude tab that is working or waiting. A folder's editor stops after 5 idle minutes and starts again on the next request.
The resource panel lists CPU and memory for every workspace, its editor, its language servers and each terminal, down to the agent inside it.
Every folder opens in a full editor with the workspace's terminals on its right. Select lines and hand them to an agent without copying anything.
@path lines a-b and the code into the agent in the active tab, without pressing Enter.path:start-end to paste into any chat.punk0 is a fork of px0 by Arpit Bhayani. It keeps px0's editor, search, git and pull request review, and adds the agents layer above them. Everything in this section is px0's work.
Files with Ctrl/Cmd+P, search in files with Ctrl/Cmd+Shift+F, symbols with Ctrl/Cmd+Shift+O.
punk0 <pr-url> checks the PR out as a worktree of your clone and diffs it against the merge base. GitHub, GitLab, Gitea and Bitbucket; comments, verdicts and merging with a token, read-only without one. Batch Apply hands the comments to your agent.
Status in the tree, side-by-side diffs that highlight the change inside each line, hunk staging and a commit graph.
Definitions, references and hover through 14 servers. Off until you turn them on for a folder; idle servers stop after 15 minutes.
Chroma highlights on the server, a 1,000-line window at a time, so a long file opens as fast as a short one.
Markdown with Mermaid diagrams, CSV and TSV as tables, images, editing in the browser with Ctrl/Cmd+E, Vim keys and 14 themes. Try the themes on the first view.
| Repository | Files | Index | Fuzzy find | Full scan | Open largest file | Memory | Peak memory |
|---|---|---|---|---|---|---|---|
| django | 7,014 | 39 ms | 1.3 ms | 26.8 ms | 166.8 ms | 20 MB | 29 MB |
| flask | 235 | 1 ms | 0.8 ms | 2.3 ms | n/a | 16 MB | 18 MB |
| kubernetes | 25,926 | 150 ms | 13.5 ms | 84.6 ms | 199.0 ms | 30 MB | 44 MB |
| linux | 95,710 | 370 ms | 6.0 ms | 451.8 ms | 26.7 ms | 55 MB | 73 MB |
| react | 7,178 | 52 ms | 2.7 ms | 32.2 ms | 57.7 ms | 21 MB | 28 MB |
| redis | 1,855 | 13 ms | 1.0 ms | 18.2 ms | 80.8 ms | 17 MB | 27 MB |
| typescript | 66,533 | 566 ms | 6.2 ms | 150.3 ms | 40.9 ms | 69 MB | 105 MB |
Measured by px0 on Linux x86_64 with language servers off; not re-measured for punk0. Method and macOS numbers in px0's BENCHMARKS.md.
The installer fetches the latest release for your system. To build it yourself instead, you need Go 1.25 or later and Bun.
Each release ships binaries for Linux, macOS, Windows and the BSDs, with a checksums.txt to check them against.
git clone https://github.com/Neautrino/punk0.git cd punk0 make build install -d ~/.local/bin && install punk0 ~/.local/bin/
# the agents page, on http://127.0.0.1:7777 punk0 # add a folder as a project punk0 ~/code/app # open a file's editor at a line punk0 main.go:42 # review a pull request punk0 https://github.com/owner/repo/pull/123