px0 v0.1.16quick fast code reviewsnative git & githubopen source

// the IDE built for reviewing AI-generated code.

Review code.
Fast.

px0 is an IDE built for reviewing AI-generated code, optimized for speed. It turns your browser into a zero-latency console with native Git and GitHub integrations, instant search across massive codebases, and seamless handoff to local AI coding harnesses.

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/cases

Fast code reviews. Connected to harnesses.

Built from the ground up for speed: instant PR checkouts, native Git operations, and seamless handoff to your AI coding harnesses.

01fast pr reviews

Quick, Fast PR Code Reviews

Paste any GitHub PR URL to review scoped merge-base diffs, draft line comments with Alt+R, and submit formal approvals or batch changes without waiting for heavy IDEs.

quick, fast pr code reviews
$ px0 https://github.com/owner/repo/pull/123
→ opened PR #123 in 12 ms · ephemeral worktree ready
$ # drafted 2 inline comments · Alt+R
✓ submitted review with Approve to GitHub
launch from urlpx0 <pr-url>
line commentsAlt R
merge-base diffCtrl D
02agent harnesses

Connecting to Coding Harnesses

Select code in px0 or review comments and dispatch directly to Claude Code, Cursor Agent, Antigravity, or OpenCode with live reloading.

connecting to coding harnesses
px0: Batch Apply (2 review comments)
→ dispatched to claude-haiku runner
✓ 3 files refactored · tabs reloaded in place
git panel: Commit with AI & push to PR branch
batch apply1-click
inline editAlt E
harness reloadinstant
03massive repos

Auditing Large Repositories

Read through massive, 50,000+ file codebases on a laptop without background indexers hogging RAM or spinning up fans.

auditing large repositories
$ px0 ~/src/linux
indexed 95,710 files in 370 ms · RSS 20.4 MB
$ # fuzzy search in 6 ms · CPU < 1%
✓ smooth scrolling across million-line trees
linux kernel95,710 files
index time370 ms
idle memory~20-30 MB
04zero-ssh remote

Remote & Cloud Server Inspection

Spin up on any remote server, VM, or CI runner and browse the codebase instantly from your local browser: no SSH keys, no port forwarding hassle, and no heavy remote desktop daemons.

remote & cloud server inspection
runner@ci-box:~/repo$ px0 -host 0.0.0.0 -no-open
listening on http://10.0.4.12:7777
local-laptop:~$ open http://dev-runner:7777
✓ connected directly from local browser
setup requiredzero
port forwardnone
transportHTTP / TLS
02/review

Threads & code review.

Review GitHub PRs, leave inline comments, and make code-level edits directly in place. Trigger quick inline fixes with Alt+E or guide multi-step code changes across files with agent threads, watching every tool step execute live.

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.

02px0 <pr-url>

Instant GitHub PR Review

Scoped merge-base diffs from URL

Pass any PR URL to inspect scoped merge-base diffs in an isolated ephemeral worktree in 12 ms. Review true changes against target branches without branch switching or dirtying your local tree.

03Alt+R · GUTTER ICON

Inline Comments & Line Actions

Hover gutter icons or chord Alt+R

Hover any line number for the contextual thread icon, or press Alt+R to draft inline review notes. Comments stay anchored in memory until you submit formal reviews to GitHub or send them to your agent.

04Alt+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.

05HARNESSES

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.

06APPROVE · COMMIT · PUSH

GitHub Reviews & PR Push

Approve, request changes, and push fixes

Submit formal approvals or change requests directly to GitHub with your inline notes attached. Review AI-generated commit messages and push fixes straight back to PR head branches without a terminal.

03/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.04selection

Classic text & diff selection

Full Shift and Ctrl keyboard selection across lines, words, and pages. Select code inside side-by-side or unified diffs, right-click for instant actions, or copy standardized @path:l1-l2 snippets.

182func diffSelection(sel) Range {
183 return anchorWorkingTree(sel)
Alt+C copy refAlt+A copy for agentAlt+E edit
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
04/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.

05/git

Working tree, Git & GitHub integration.

Full Git control and GitHub PR review built directly into px0. Stage per-file ticks in the tree, draft inline review comments, generate AI commit messages, inspect split or unified diffs, and push back to PR branches without leaving your browser.

branch: feat/fast-path · 2 staged, 1 changed
working tree
  • ▾internal/engine
  • ✓merge_base.goM
  • ✓git_write.goA
  • +git_test.goM
  • ▸web
  • go.mod
internal/engine/merge_base.go+22 −4
CtrlD
HEAD (committed)r.64
61 func findBase(head, target string) string {
62 // standard linear revwalk
63− return execGitMergeBase(head, target)
64 }
Staged Changes (index)M
61 func findBase(head, target string) string {
62 // fast path: check commit graph cache
63+ if base, ok := fastBaseCache(head); ok {
64+ return base
65+ }
66 return execGitMergeBase(head, target)
67 }
Per-file stage ticks in tree · Fast-forward only pulls prevent detached conflictspure shell-out git
01STAGE · UNSTAGE

Sidebar Git Panel & Staging

Per-file stage ticks in tree

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

02px0 <pr-url> · MERGE-BASE

Native GitHub PR Review

Scoped merge-base diffs from any URL

Pass any pull request URL or use Ctrl+K to inspect PR diffs in an isolated ephemeral worktree. Draft inline review comments, submit reviews, and push fixes directly back to the PR branch.

03COMMIT WITH AI · Ctrl+D

AI Commits & Chroma Diffs

Split views, AI messages, and safe push

Generate standardized commit messages from staged diffs with your active coding agent. Toggle between split and unified Chroma diffs with Ctrl+D, and push or pull without touching the terminal.

// the IDE built for reviewing AI-generated code.

Review code.
Fast.

px0 is an IDE built for reviewing AI-generated code, optimized for speed. It turns your browser into a zero-latency console with native Git and GitHub integrations, instant search across massive codebases, and seamless handoff to local AI coding harnesses.

<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.

02agent threads

Multi-Turn Agent Threads

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

03large repos

Auditing Massive Repos

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

04zero-ssh

Remote Cloud Inspection

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

05native git

Working Tree & Git Diffs

Stage per-file ticks in the sidebar, 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.