px0 v0.1.20fast reviews & quick editsnative git & githubopen source

// the review workbench & speed-first IDE for AI-generated code.

Review code.
Fast.

px0 is a review workbench and speed-first IDE built for AI-generated code. It turns your browser into a zero-latency console with native Git and GitHub integrations, instant search across massive codebases, in-place quick fixes, and seamless handoff to local AI coding harnesses.

Ways to run
cli quick reference
$px0review workbench
$px0 <dir>local folder / repo
$px0 <pr-url>pull request worktree
Supported harnesses:
Claude CodeCursor AgentAntigravityOpenCode
cold start
<1ms
sub-millisecond instant boot
host memory
20-30MB
~90% less vs. ~1.4 GB VS Code
fuzzy find
6.0ms
linux kernel, 95,710 files
ai harnesses
4
Claude, Cursor, Antigravity, OpenCode
browser based
1tab
no GUI bloat
runtime deps
0
no Electron, no Node, no CGO
Engineers at these companies use px0
Google
Zerodha
Microsoft
Meta
Razorpay
Stripe
Swiggy
Postman
GitHub
Zomato
Cloudflare
CRED
Linear
BrowserStack
Shopify
Flipkart
~/workspace/kernel · 95,710 files
127.0.0.1:7777
225 for (;;) {
226 size_t b, c, d;
227
228 if (a) /* Building heap: sift down a */
229 a -= size << shift;
230 else if (n > 3 * size) { /* Sorting: Extract two largest elements */
231 n -= size;
232 do_swap(base, base + n, size, swap_func, priv);
233 shift = do_cmp(base + size, base + 2 * size, cmp_func, priv) <= 0;
234 a = size << shift;
235 n -= size;
236 do_swap(base + a, base + n, size, swap_func, priv);
237 } else { /* Sort complete */
238 break;
239 }
240
241 /*
242 * Sift element at "a" down into heap. This is the
243 * "bottom-up" variant, which significantly reduces
244 * calls to cmp_func(): we find the sift-down path all
245 * the way to the leaves (one compare per level), then
246 * backtrack to find where to insert the target element.
247 *
248 * Because elements tend to sift down close to the leaves,
249 * this uses fewer compares than doing two per level
250 * on the way down. (A bit more than half as many on
251 * average, 3/4 worst-case.)
252 */
253 for (b = a; c = 2*b + size, (d = c + size) < n;)
254 b = do_cmp(base + c, base + d, cmp_func, priv) > 0 ? c : d;
255 if (d == n) /* Special case last leaf with no sibling */
256 b = c;
257
258 /* Now backtrack from "b" to the correct location for "a" */
259 while (b != a && do_cmp(base + a, base + b, cmp_func, priv) >= 0)
260 b = parent(b, lsbit, size);
Search Ctrl Shift FDiff Ctrl DAgent: agy (gemini-3.6-flash-low)357 linesclangdCPU 0.0% · RAM 55 MB
01/workbench

Review Workbench. Never leave your cockpit.

Run bare px0 to launch a unified dashboard across all your repositories and pull requests. With worktree-backed PR isolation, 1-click agentic rebase, and complete GitHub control, you never have to cycle between terminals, local clones, or external review tools.

$ px0→ listening on 127.0.0.1:7777
📂~/workspace/Tab to complete · Enter to open
📁 px0-ai/px0gitfeat/agentic-rebase · 3 dirty
📁 kernelgitmaster · 95,710 files
📁 auth-servicegitmain · clean
Workspaces & PR Reviews3 running
★px0-ai/px0 #123
PR WORKTREEmain ← token-fallback
☆~/workspace/kernel
LOCAL REPOmaster · clangd
☆gitlab.com/ops/deploy #45
GITLAB MRproduction ← v0.1.20
▦Review Workbench
px0-ai/px0/PR #123: Refactor token fallback
worktree:~/.px0/repos/px0no clone overhead
AGENTIC REBASEBehind main (2 commits)
Harness replays PR commits, auto-resolves conflicts & force-pushes with safe lease
COMPLETE GITHUB CONTROL
☑Rewrite commit message with AI
Minternal/auth/token.go+14 / -3
merge-base diff2 draft comments⚡ Batch Apply ready
41-return execCommand("gh", "auth", "token").Output()
41+if tok := os.Getenv("GITHUB_TOKEN"); tok != "" { return tok, nil }
42+return execCommand("gh", "auth", "token").Output()
01px0 · UNIFIED DASHBOARD

Never Leave the Workbench

One unified launchpad for all projects

Run bare px0 to open your review dashboard on a single port. Jump into local repositories, switch between projects in browser tabs, keep unsubmitted review drafts across sessions, and return with ▦ without touching external terminal windows.

02⚡ REBASE WITH AI · SAFE LEASE

1-Click Agentic Rebase

Harness-driven conflict resolution

When pull requests diverge or fall behind base branches, click Rebase with AI directly next to the merge status pill. Your local coding harness replays commits, resolves conflicts, and force-pushes safely using lease protection.

03APPROVE · SQUASH & MERGE

Complete GitHub Control

Review, approve, squash, and merge

Execute full pull request lifecycles without opening web browsers or separate tools: inspect merge-base diffs, draft inline comments (Alt+R), batch-apply fixes with AI, submit formal verdicts, and squash-merge with AI commit rewriting.

02/threads

Autonomous agents. Threaded alongside code.

Anchor multi-turn conversations to code with Alt+T. Watch tools execute live over Server-Sent Events, or queue quick inline fixes with Alt+E and apply them all at once.

Harness: claude-3-7-sonnet · Live SSE stream
📄internal/auth/token.go@token.go:38-44
anchored editor context
38func ResolveToken(cfg Config) (string, error) {
39 if tok := cfg.GitHubToken; tok != "" {
40 return tok, nil
41 return os.Getenv("GITHUB_TOKEN"), nil💬
42 }
43 return resolveGhCliToken()
44}
Selection active · press AltT to start thread46 lines · Go 1.24
#4Refactor auth token fallbackLIVE SSE
Harness:
claudecursor-agentagyopencode
User@token.go:38-44
Add fallback to GH_TOKEN environment variable and check for empty string before running the gh CLI binary. Keep error handling intact.
claude-3-7-sonnetturn 1 · streamed in 1.4s
Tool Execution Steps (3)complete
✓Read internal/auth/token.go (46 lines)
✓Edit internal/auth/token.go (+14, -3)
✓Run go test ./internal/auth/... (PASS in 84ms)

I have updated ResolveToken to check cfg.GitHubToken, then inspect GITHUB_TOKEN and GH_TOKEN before falling back to the gh CLI.

goCopy
if tok := os.Getenv("GH_TOKEN"); tok != "" {
    return tok, nil
}
Touched:token.go +14 −3✓ tab reloaded
Ask a follow-up or instruct next change...Enter send
01Alt+T · SSE STREAM

Multi-Turn Agent Threads

Persistent context alongside code

Anchor conversations to code ranges with Alt+T or line gutter icons. Stream real-time tool steps and replies over Server-Sent Events, preserved locally in atomic disk transcripts that survive restarts.

02Alt+E · Mod+Enter

Queued Batch Inline Edits

Stage comments across files with Alt+E

Highlight code in diff or source views, press Alt+E, and stage edit prompts across multiple files. Review queued comments in the Threads drawer and apply all at once with Mod+Enter.

03HARNESSES

Multi-Harness Continuity

Claude Code, Cursor Agent, Antigravity & OpenCode

Connect natively to Claude Code, Cursor Agent, Antigravity, or OpenCode. Switch models or harnesses mid-thread with automatic session resume and transcript replay.

04REAL-TIME TOOL LOGS

Live Tool Step Streaming

Transparent execution: read, edit, run, test

Watch your agent read files, write diffs, run test suites, and execute bash commands in real time with collapsible tool step cards and instant syntax-highlighted previews.

03/remote

Remote code. No SSH required.

Spin up on any remote server, cloud instance, or runner in under a millisecond. Inspect and search remote codebases directly in your local browser without configuring SSH keys, forwarding ports through flaky sessions, or installing heavy remote desktop suites.

remote session architecture · zero-friction topology
HTTP / TLS · stateless stream
remote hostcloud / dev box
px0 process1 static Go binary
  • host memory~20-30 MB RSS
  • startup< 1 ms
  • scavengerfrees OS memory after 15s
  • accesssecure & sandboxed
your machineany browser
zero-install UIlaptop · tablet · mobile
  • client tab RAM~80-150 MB
  • fuzzy findcached in-browser
  • syntax highlightingpre-rendered Chroma
  • diffs vs HEADinstant Myers viewer
common remote workflowsARCHITECTURE.md →
dev box / cloud vm
$ px0 -host 0.0.0.0 -port 7777 ~/work/repo
Instant access over private network / Tailscale
headless ci / test runner
$ px0 -no-open -port 8080 /workspace
Inspect failed build workspaces in any web browser
ephemeral docker / pod
$ docker run -p 7777:7777 -v $(pwd):/src px0:latest
Browse isolated containers without container shells
reverse proxy / subpath
$ px0 -base-path /rev-123/ -host 0.0.0.0 ~/work
Serve behind Nginx, Ingress, or PR review gateways
01NO DAEMON

Zero SSH or heavy client setup

No X11, no remote extension daemon

Remote code editors install gigabytes of node runtimes and background server processes on the remote machine. px0 runs as a single lightweight binary, serving directly over HTTP without requiring you to maintain SSH shell sessions.

02-host 0.0.0.0

Single port over any wire

Tailscale, wireguard, reverse proxy, or tunnel

Pass -host 0.0.0.0 or -port 7777 to bind the web console. Access from any browser on your laptop, iPad, or phone across your private VPN, Tailscale mesh, or Cloudflare Tunnel with pooled gzip compression.

03SANDBOXED

Sandboxed by architecture

Traversal guards & origin verification

Exploration is strictly sandboxed: safePath rejects directory traversal attempts, host header checks protect against DNS rebinding, and external stdlib jumps require explicit allowlisting. Agent editing is protected by origin verification: requests are accepted only when opened by IP address or localhost, and strictly refused through public tunnel hostnames.

04/features

Built for review. Engineered for speed.

The code navigation, search, outline, and reading tools you reach for a hundred times a day, done in milliseconds, in a UI that renders only the lines you can see.

f.01navigate

Fuzzy everything

Files, symbols, and a full-tree regex scan behind three chords. Ranking favours basenames, word boundaries, and camelCase humps, the way fzf feels.

CtrlPgo to file1.3 ms
CtrlShiftOsymbols
CtrlShiftFregex scan26.8 ms
timings: django, 7,014 files
f.02symbols & outline

Symbol hierarchy & outlines

Jump to functions, types, constants, and caller trees across files with Ctrl+Shift+O. Built-in regex outline generates instant symbols even when language servers are inactive.

fnResolveToken(cfg):38
typeConfig struct:12
constDefaultTimeout:8
f.03coding harnesses

Multi-harness agent dispatch

Direct integration with Claude Code, Cursor Agent, Antigravity, and OpenCode. Tabs reload automatically in place with zero manual git stashing.

claudecursor-agentagyopencode
f.04quick edits & selection

In-place quick edits & selection

Read-safe by default, with instant in-place editing via Ctrl+E and Ctrl+S saving when an agent prompt is overkill. Classic text selection across lines and diffs with Alt+E agent dispatch and Alt+C references.

182func diffSelection(sel) Range {
183 return anchorWorkingTree(sel)
Ctrl+E editCtrl+S saveAlt+E agent
f.05markdown & images

Rendered GFM & image tabs

Full GitHub Flavored Markdown with syntax-highlighted code fences and bi-directional scroll sync. Inspect images with zoom/pan, contrast modes (b), pixelated toggle (p), and lightbox.

PreviewSourceImage TabAltM
# Architecture Deep Dive

Windowed tokenizing with Chroma...

🖼icon.svg · 512×512 px [b: checker | p: pixelated]
f.06render

Virtual rows

Opening a 400,000-line file costs the same as a 10-line one. Only the visible window plus 24 rows of overscan is mounted; scrolling recycles rows with a single transform.

400,000 lines in file~60 DOM rows0.015% mounted
f.07highlight

~280 languages

Native tokenizing through Chroma. The server lexes a 1,000-line window padded with 400 lines of context, never the whole file, and caches rendered HTML under a 512 MB LRU budget.

gorusttypescriptpythoncc++zigluarubyjavakotlinswifthaskellocamlelixirsqlyamltomlnixbashprotobufhcl+ ~258
f.08lsp · optional

Semantic when you want it

Zero-config detection on $PATH and standard binary folders. Spawned lazily on first request, stopped on exit. Click the status bar hint for automatic installation recipes.

  • gopls
  • rust-analyzer
  • typescript-language-server
  • pyright · ruff
  • clangd
  • zls
  • lua-language-server
  • solargraph
  • jdtls
  • omnisharp
  • texlab
f.09remote

Remote-first & zero SSH

Spin up on cloud VMs, Docker containers, or CI runners with -host 0.0.0.0. The remote host pays strictly ~20-30 MB server memory, while custom subpaths (-base-path) support reverse proxies and multi-tenant ingress.

$ px0 -host 0.0.0.0 -port 7777 ~/work
listening on: http://10.0.4.12:7777
sandboxing:   path traversal + DNS guards
f.10themes

14 built in

Tokyo Night by default, plus Paper, Catppuccin, Dracula, GitHub Dark, Gruvbox, Monokai, Nord, One Dark, Rose Pine, and Solarized. A theme is one CSS file of tokens.

f.11distribution

One static binary

HTML, CSS, and JS are embedded with go:embed. No Electron, no Node, no CGO, no system libraries. Copy it to a box and run it.

px0 static, go:embed
├─ index · search · highlight · lsp · agent
├─ web/     html css js, ~74 KB
└─ themes/  14 × css
f.12memory

Gives memory back

After 15 seconds without requests, px0 automatically frees memory back to the host kernel (~20-30 MB server RSS). Combined with bounded DOM virtualization (~80-150 MB client tab), total footprint stays ~100-180 MB.

peak94 MB
30 s idle57 MB
linux kernel, after five full scans
// the review workbench & speed-first IDE for AI-generated code.

Review code.
Fast.

px0 is a review workbench and speed-first IDE built for AI-generated code. Run bare px0 to open the workbench, pass a folder (px0 <dir>) to jump into code, or review any pull request URL (px0 <pr-url>) in an isolated worktree.

Ways to run
cli overview
$px0review workbench
$px0 <dir>local folder / repo
$px0 <pr-url>pull request worktree
<1mscold start
instant boot
20-30MBhost memory
~90% less vs VS Code
6.0msfuzzy find
95k+ files indexed
0runtime deps
no Electron, no Node
Engineers at these companies use px0
Google
Zerodha
Microsoft
Meta
Razorpay
Stripe
Swiggy
Postman
GitHub
Zomato
Cloudflare
CRED
Linear
BrowserStack
Shopify
Flipkart
// workflows

Built for review. Engineered for speed.

01PR reviews

Fast PR Code Reviews

Pass any GitHub PR URL to inspect scoped merge-base diffs and draft line comments in milliseconds.

02workbench

Review Workbench: Never Leave px0

Launch bare px0 for a unified cockpit. Enjoy 1-click agentic rebases and complete GitHub control without switching tools.

03agent threads

Multi-Turn Agent Threads

Anchor conversations to code with Alt+T and stream live tool execution over Server-Sent Events.

04large repos

Auditing Massive Repos

Read through massive trees like the Linux kernel with virtual-row scrolling and instant symbol search.

05zero-ssh

Remote Cloud Inspection

Run on any cloud VM or CI runner over a single HTTP port without SSH keys or port forwarding.

06native git

Working Tree & Git Diffs

Stage per-file ticks in the sidebar, browse recent commit diffs, inspect split diffs, and generate AI commit messages.

// agent threads & harnesses

Threads & coding harnesses

Review PRs, anchor conversation threads directly to code, and watch agent tool steps execute live over Server-Sent Events.

SSE STREAMlive tool calls

Multi-Turn Agent Threads

Anchor conversations to lines or diff ranges with Alt+T. Stream real-time file edits, bash commands, and tool calls over Server-Sent Events, preserved locally in atomic disk transcripts.

AGENTSmulti-harness

Multi-Harness Continuity

Connect natively to Claude Code, Cursor Agent, Antigravity, or OpenCode. Switch models mid-thread with automatic transcript replay.

1-CLICKbatch editing

Queued Batch Inline Edits

Highlight code across multiple files, stage review comments with Alt+E, and apply all edits at once with instant in-place tab reload and zero manual git stashing.

Integrated coding harnesses:
Claude CodeCursor AgentAntigravityOpenCode
// git & github

Working tree, Git & GitHub review

Full Git control and GitHub PR review built directly into your browser. Stage per-file ticks, inspect split diffs, generate AI commit messages, and push back without leaving px0.

TREE STAGINGsidebar ticks

Per-File Staging & Tree Status

Stage and unstage individual files with clean checkbox ticks in the sidebar tree. Track modified, added, untracked, and deleted statuses with zero background lag.

SPLIT & UNIFIEDchroma diffs

Visual Split & Unified Diffs

Toggle between side-by-side split and unified Myers diff views with syntax highlighting. Select lines, copy standardized diff snippets, or anchor review notes.

AI COMMITSpush & approve

AI Commits & GitHub PR Push

Generate standardized commit messages from staged diffs with your active coding agent. Submit formal reviews or push fixes directly back to PR branches.

Mmodified
Aadded
Ddeleted
Uuntracked
Rrenamed
// architecture

Local, Private & Sandboxed

Runs strictly locally or on your private dev box. SafePath traversal guards, origin verification, zero telemetry, and zero risk of code leaving your infrastructure.

Start reviewing in seconds

Single static binary. No install dependencies.