Mission control for the One Person Studio
AI writes the code now — your job is commanding the fleet. dev-3.0 is the Kanban-first cockpit for running dozens of AI coding agents at full speed, while one board keeps you focused. Each task gets its own git worktree, tmux session, and terminal.
🤖 The fastest way — paste this into Claude Code, Codex, Gemini CLI, whatever you already run:
Install dev-3.0 by following the guide at https://dev3.h0x91b.com/ai-install.txt
The agent reads the guide, detects your OS, and does the whole install itself.
Or by hand — macOS:
brew tap h0x91b/dev3
brew install --cask dev3Linux (headless box, full UI in your browser):
brew tap h0x91b/dev3 && brew install h0x91b/dev3/dev3
dev3 remoteEvery option — direct DMG download, CLI tarball without Homebrew, cloud-VM caveats, build from source — in Install.
AI writes the code now. It commits, opens PRs, reviews. Your job changed — from writing to commanding a fleet of agents across more tasks and projects than any one head can hold. The bottleneck moved: it's not your editor anymore, it's your focus. Everything in dev-3.0 is built around that. Two things we optimize for, above all:
1. Your speed — as one person. dev-3.0 optimizes a single developer: you. The unit is always the individual, never the org. It works fine on a team — but it's not a tool for managing other people; it's a tool for each person to command their own fleet and hit their own top speed. Everyone focuses on themselves, and the whole moves faster.
2. Beautiful, and built around you. A cockpit you stare at all day should be fast, gorgeous, and keyboard-first — and it should bend to your way of working, not force one on you. Great tooling doesn't just make you productive; it makes the work fun again. We sweat the polish.
And what we refuse: dev-3.0 is not an IDE — and won't become one.
- The code is the agent's job. No embedded editor; one click to your real VS Code or Cursor when you truly need it — and the goal is to need it less.
- Git is the agent's job too. No manual staging, no hand-written commits.
- Integrate through your agent. Claude Code, Codex & co. already speak MCP to Linear, Jira, and the rest. dev-3.0 is the cockpit; your agent is the adapter.
You're running 5+ AI agents across different terminals, repos, and branches. Switching context takes forever. You lose track of what's where. Merge conflicts pile up because multiple agents edit the same repo.
dev-3.0 gives you a Kanban board where each task is a fully isolated environment:
- Create a task on the board — describe what needs to be done
- An isolated git worktree is created automatically — zero conflicts between parallel agents
- A terminal with tmux launches inside the worktree with your configured command (e.g.,
claude) - See everything at a glance — hover over any card for a live terminal preview
- Kanban workflow — drag tasks between columns (To Do → In Progress → Review → Completed)
- Git worktree per task — full repo isolation, no merge conflicts between parallel tasks
- Multiple agents per task — run several agents side by side in the same worktree via tmux split panes
- Multi-agent launch — pick any combination of Claude, Cursor, Codex, Gemini, opencode, or any CLI agent — each with its own config
- Remote / browser mode — run headless on a server and drive the full UI from any browser (even your phone) with
dev3 remote— QR login plus an optional Cloudflare tunnel - Multi-project dashboard — manage multiple projects from a single Activity view with live agent status
- Live terminal preview — hover any card to see what the agent is doing right now
- Terminal bell alerts — red badges on cards when an agent needs your attention
- One-click dev server — launch, restart, or stop your app from the task's worktree in a single click
- Custom workflow columns — define your own pipeline stages (AI Review, PR Review, On Hold, etc.)
- Labels & search — organize tasks with colored labels and instant full-text search
- Dark & light themes — full theme support for both dark and light environments
- Automated setup — configure a setup script per project that runs for every new task
- Copy-on-Write clone paths — clone
node_modules,.venv,build, and other heavy directories into worktrees instantly with near-zero disk overhead - PR review mode — check out any remote branch and toggle "PR review" to pre-fill a structured code-review prompt for the agent
- Built-in code review — inline diff viewer with syntax highlighting, line-range comments, and one-click export of your review back to the agent
- Bug hunters — launch a pack of read-only agents that hunt bugs across your branch diff in parallel
- Command palette & quick switch — ⌘⇧P to run any action, ⌘K to jump between projects, Option+Tab to flip between tasks with live previews
Other tools in this space are great — if you want to live in an editor. dev-3.0 makes a different bet. Pick by your goal, not a feature checklist:
| If you want to… | Reach for… |
|---|---|
| Stay in an editor, hands on the code and git | an agent IDE |
| Buy a platform for a whole team (SSO, seats, audit) | a team orchestrator |
| Run a fleet of agents solo, at speed, without drowning | dev-3.0 |
The two fastest paths (agent-driven and Homebrew) are in Quick start above. Everything else lives here.
brew tap h0x91b/dev3
brew install --cask dev3Auto-installs the required git, tmux, and cloudflared dependencies (the last one powers the public-tunnel option used by dev3 remote and the in-app remote-access modal).
brew upgrade --cask dev3 # update
brew uninstall --cask dev3 # removeGrab the latest .dmg directly — Apple Silicon or Intel — drag to Applications, and run. Make sure git, tmux, and cloudflared are installed (brew install cloudflared for the public-tunnel feature; safe to skip if you don't need it).
Apple Silicon and Intel are both supported. Windows is on the roadmap.
The fastest way to run dev-3.0 on a Linux box (cloud VM, dev server, headless host) is the dev3 CLI over Homebrew. Two commands, then dev3 remote — it prints an access URL + QR you open from your laptop. tmux, git, and cloudflared come along as brew dependencies.
⚠️ Don't run the Homebrew installer asroot— it refuses by design. On a fresh VM, create a regular user first:useradd -m -s /bin/bash dev3 && su - dev3. Glibc ≥ 2.28 required (Ubuntu 18.04+, Debian 10+, RHEL 8+).
1. Install Homebrew (one-time). Pick the line matching your shell — the only difference is which rc file gets the PATH:
bash
curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh | bash && \
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bashrc && \
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"zsh
curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh | bash && \
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.zshrc && \
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"2. Install dev-3.0 (same tap as macOS):
brew tap h0x91b/dev3 && brew install h0x91b/dev3/dev33. Go remote:
dev3 remoteThat's it. Full Homebrew-on-Linux docs: https://docs.brew.sh/Homebrew-on-Linux
This installs the dev3 CLI. Three ways to use it:
- Headless / browser UI —
dev3 remoteprints an ASCII QR, an access URL, and an SSH-forward hint. By default it also starts a Cloudflare quick tunnel so you can connect from anywhere without SSH (cloudflaredis installed as a brew dep). Pass--no-tunnelfor local-only mode. The token rotates every 25 seconds; the QR auto-refreshes too. Perfect for remote dev boxes.- Background lifecycle (for SSH boxes) —
dev3 remotebackgrounds the server by default, so it survives your SSH session (add--no-detachto keep it in the foreground). From any later SSH session,dev3 remote statusshows it (PID, port, uptime),dev3 remote urlre-prints a fresh QR/URL to re-scan from your phone,dev3 remote logs --followtails its output,dev3 remote restartrelaunches it, anddev3 remote stopshuts it down cleanly. - Run as a service —
dev3 remote install-service --port <n>installs a systemd --user unit so the server survives logout and restarts on boot (dev3 remote uninstall-serviceremoves it). Tip:sudo loginctl enable-linger $USERkeeps user services running while you're logged out. - Trusted device — after you scan the QR once, the browser remembers the session (8h) and reconnects on reload without rescanning.
- Background lifecycle (for SSH boxes) —
- Desktop GUI —
dev3 guilaunches the full Electrobun desktop app. On the first run it lazily downloads the bundle (~88 MB) into~/.dev3.0/gui/and registers an XDG menu entry. If your distro is missing GTK/WebKit libraries it prints the exactapt/dnf/pacmancommand for you to copy. - CLI tooling —
dev3 task …,dev3 current,dev3 note add …etc. when you want to script the Kanban board from a terminal.
If you don't want Homebrew at all (e.g. running inside a minimal container), grab the CLI tarball directly:
# Auto-pick your arch: x64 (Intel/AMD, e.g. Hetzner CPX/CCX) or arm64 (Ampere/Graviton, e.g. Hetzner CAX)
case "$(uname -m)" in aarch64|arm64) A=arm64;; *) A=x64;; esac
curl -fsSL -o /tmp/dev3.tar.gz \
"https://github.com/h0x91b/dev-3.0/releases/latest/download/dev3-cli-linux-$A.tar.gz"
mkdir -p ~/.dev3 && tar -C ~/.dev3 -xzf /tmp/dev3.tar.gz
~/.dev3/dev3 remote
# (optional) put it on PATH: echo 'export PATH=$HOME/.dev3:$PATH' >> ~/.bashrcMake sure tmux, git, and cloudflared are installed via your package manager (apt install -y tmux git on Debian/Ubuntu; for cloudflared see Cloudflare's docs). Without cloudflared dev3 remote still works — it just falls back to LAN + SSH-forward URLs (or pass --no-tunnel to skip the check).
- IPv4 outbound is required — GitHub has no AAAA records, and DNS64/NAT64 on IPv6-only cloud VMs is unreliable. On Hetzner Cloud, add a Primary IPv4 (~€0.49/mo) when creating the VM.
- 2 GB VMs work fine for the brew/tarball install (no build needed). If you ever build from source on one, add 4 GB swap first — vite OOMs on the first build:
fallocate -l 4G /swapfile && chmod 600 /swapfile && mkswap /swapfile && swapon /swapfile echo '/swapfile none swap sw 0 0' >> /etc/fstab
apt-get install -y git tmux bash ca-certificates curl unzip
curl -fsSL https://bun.sh/install | bash && source ~/.bashrc
git clone https://github.com/h0x91b/dev-3.0.git && cd dev-3.0
bun install --frozen-lockfile
bun scripts/generate-build-info.ts
bun scripts/generate-changelog.ts
bun --bun ./node_modules/vite/bin/vite.js build # `bun --bun` avoids Node OOM
bun build src/cli/main.ts --compile --outfile dist/dev3
./dist/dev3 remotePress ⌘/ (Ctrl+/ on Linux) inside the app — or open Help → Keyboard Shortcuts — to see
every shortcut in one panel (App + Terminal/tmux tabs). The full list is defined in one place,
src/mainview/keymap.ts.
| Action | macOS | Linux |
|---|---|---|
| Go to project (quick switch) | ⌘K | Ctrl+K |
| Command palette | ⇧⌘P | Ctrl+Shift+P |
| Keyboard shortcuts panel | ⌘/ | Ctrl+/ |
| Back / Forward | ⌘[ / ⌘] | Ctrl+[ / Ctrl+] |
| Switch to project 1–9 (keep view) | ⌘1–9 | Ctrl+1–9 |
| Switch to project 1–9 (flip view) | ⇧⌘1–9 | Ctrl+Shift+1–9 |
| Cycle active tasks (this project / all) | ⌥Tab / ⌥⇧Tab | Ctrl+Tab / Ctrl+Shift+Tab |
| New task | ⌘N | Ctrl+N |
| Add project | ⌘P | Ctrl+P |
| New window | ⇧⌘N | Ctrl+Shift+N |
| Settings | ⌘, | Ctrl+, |
| Zoom in / out / reset | ⌘= / ⌘- / ⌘0 | Ctrl+= / Ctrl+- / Ctrl+0 |
| Hard refresh | ⌘R | Ctrl+R |
| Toggle project terminal / open Quick Shell | ⌘ / ⇧⌘ |
Ctrl+ / Ctrl+Shift+ |
| Close dialog / step back | Esc | Esc |
| Quit / Hide | ⌘Q / ⌘H | Ctrl+Q / Ctrl+H |
Terminal multiplexing uses tmux's ⌃B prefix bindings — see the Terminal (tmux) tab in the same panel.
| Component | Technology |
|---|---|
| Desktop runtime | Electrobun — native webview (WKWebView on macOS, WebKitGTK on Linux), no Chromium |
| JS runtime | Bun |
| Terminal | ghostty-web — GPU-accelerated rendering |
| Frontend | React 19, Tailwind CSS, Vite |
| Multiplexer | tmux |
bun install
bun run dev # Build + launch the app locally (no HMR)
bun run build # Staging build
bun run build:prod # Production build
bun run lint # TypeScript type-check
bun run test # Run tests (fast subset; use `bun run test:full` for CI parity)See AGENTS.md for full architecture docs and coding guidelines. See agent-support-matrix.md for feature compatibility across AI agents.
dev-3.0 runs git and tmux as child processes. On macOS, the system can silently start blocking file access for these spawned binaries even after they worked fine — usually triggered by an OS update, a TCC database change, or other security-agent activity. It doesn't happen to everyone, and once it kicks in you can't git inside dev-3.0 task terminals at all.
Symptoms:
- New task is stuck on
PREPARING… Fetching originforever — the clone phase hangs and never completes. - Any
gitcommand that talks to a remote —git fetch,git pull,git push,git clone,git ls-remote— hangs indefinitely when run inside a dev-3.0 task terminal. Local-only commands (git status,git log,git diff) keep working. - The exact same
git fetchworks fine in a regular terminal (iTerm, Terminal.app) — only hangs when spawned from dev-3.0.
Fix: Grant Full Disk Access to the dev-3.0 app, then restart it.
- Open System Settings → Privacy & Security → Full Disk Access
- Click + and add
dev-3.0(from/Applicationsor wherever you installed it) - Make sure the toggle next to
dev-3.0is on - Quit and relaunch dev-3.0
Why this happens: macOS evaluates permissions per-binary, and TCC (the system permissions database) can silently revoke network/file access for git/tmux spawned by another app — typically after an OS update or background security-agent activity. Granting Full Disk Access to dev-3.0 covers the app and all its child processes, so git fetch to remotes works again.
dev-3.0 ships a hand-tuned 16-color ANSI palette for both the dark and light UI themes, plus a readability filter that remaps unreadable foreground/background colors emitted by agents on the fly. Because of that filter, agents look fine out of the box with their default themes — Claude Code's regular Dark mode (Monokai) works great as-is.
If you'd rather have an agent render entirely through dev-3.0's tuned palette, switch it to an "ANSI colors only" theme. For Claude Code, run /theme and pick:
- Dark mode (ANSI colors only) — when dev-3.0 is on the dark theme
- Light mode (ANSI colors only) — when dev-3.0 is on the light theme
This makes Claude Code emit only the 16 base ANSI colors, which dev-3.0 resolves through its tuned palette — handy if you don't like how the default theme's colors look in the embedded terminal.
Codex has no "ANSI colors only" mode, but the same idea applies: the readability filter keeps its default output legible, and if you want the syntax colors to match dev-3.0's UI theme, set [tui] theme in ~/.codex/config.toml to a theme of the matching polarity:
[tui]
# dev-3.0 dark theme → pick a dark syntax theme
theme = "dracula" # or: monokai-extended-origin, gruvbox-dark, base16-256, one-half-dark, solarized-dark
# dev-3.0 light theme → pick a light one
# theme = "github" # or: solarized-light, gruvbox-light, one-half-lightApache 2.0 — © 2026 Arseny Pavlenko







