A minimal web GUI for your coding agents
Run Codex, Claude, Cursor, and OpenCode side by side in isolated worktrees, on your machine or a paired remote server. A full Git Manager, source control, files, and terminals keep every branch moving — no context switch.
macOS · Windows · Linux — Apple Silicon & Intel, x64 & ARM64

Bring your own agent · plug in your existing subscription
BibCode works with the agent CLIs you already pay for. Install and authenticate a provider, then drive it from a shared, typed interface across browser and desktop. Settings detects how each CLI was installed, checks for updates, and can update it in place, and one model picker spans every provider with your favorites first.
The workspace
Agent-first, end to end
BibCode is organized around three work areas so you can orchestrate a fleet of agents, review their output, and ship — without leaving the app.
Three-panel workspace
Projects and eager worktree threads on the left, the active chat in the center, project tools on the right. The whole day loop in one window.
Isolated worktrees
Add local projects, clone repos, and spin up worktrees so agents work side by side without stepping on each other. Adopt worktrees that already exist, and remove them with a reviewed plan.
Agents view
One full-screen list of every agent across every environment, grouped by status, project, or environment, with unread badges and a jump back to its workspace.
Split panes
Arrange chats and terminals into up to four split panes. Extra chat panels are isolated sessions that share the host worktree, and layouts persist across reloads.
Source Control panel
Stage, view commit history, generate AI commit messages, run per-file actions, and pull / push / open PRs — all in-app, with live branch and PR state in the sidebar.
Files manager
Create, rename, duplicate, and drag files between folders. Download a file or a zipped folder, upload into any folder, and watch the tree follow outside changes.
In-worktree terminals
Open a shell or a provider CLI in the same worktree as your agent, so shell work and AI work stay on the same branch.
Preview, Diff, Activity, Plan
Right-panel tools for a live app preview, branch diffs, structured provider activity with targeted Stop for Codex and Claude subagents, and the agent’s current plan.
Command palette & keybindings
Cmd/Ctrl+K opens the command palette. Default shortcuts cover panels, terminals, threads, and previews, and a keybindings.json file overrides any of them.
Context & usage meters
A context-window meter and MCP status in the composer for Codex and Claude, plus Claude and Codex account usage in the status bar for whichever environment you select.
Native desktop app
Tauri 2 with a Rust host and the OS WebView. No Electron, no Node.js runtime, no bundled browser — just a small native binary with signed in-app updates that take a verified backup first.
Typed transport
A typed WebSocket / RPC contract is shared by the browser and desktop clients, so the React frontend runs unchanged in both.
Data safety
A verified backup is written before every update or schema migration, a project store is never silently replaced, and recovery tools offer restore from backup or start empty.
Composer safeguards
Access and reasoning pickers turn red at Full Access or the highest reasoning level. A live waiting timer, cancellable queued messages, and errors that say whether the provider or BibCode failed.
Terminals that behave
Follow-app, dark, or light terminal themes with true-color TUIs that keep their palette. Shift+Enter adds a newline in Codex and Claude Code prompts, and remote typing streams without waiting, with Reconnect input after a drop.
Open anywhere
Open a project folder in your file manager from the local desktop, or a file in any detected editor including Zed, on local and remote hosts alike. Linux Git operations are validated on Debian, Ubuntu, Fedora, and Arch.
Git Manager
A full Git client, per project
Every project header opens a Git Manager for its main checkout or any of its worktrees. Review what your agents committed, tidy the history, and ship a pull request without leaving the app or reaching for a separate Git GUI.
Branches & sync
Create, checkout, rename, delete, and merge branches grouped into Default, Recent, and Other. Fetch, pull, push, publish, and force-with-lease states follow your upstream.
History
A paged commit list with metadata, changed files, and diffs. Right-click any commit to reset, revert, cherry-pick, squash, reorder, or start a branch or tag from it.
Changes & commits
Filter and group working-tree changes, stage by line or hunk, and compare images as 2-up, swipe, onion-skin, or difference. Commits support amend, sign-off, co-authors, and undo.
Stash, merge, rebase
A native stash list with per-entry diffs and apply, pop, or drop. Merge-commit or squash merges with a preview, rebase with force-with-lease warnings, and Ours / Theirs conflict resolution.
Tags
Local tags beside what each remote advertises, flagged when they differ. Create a tag and push it in one step, or send every tag along with a branch push.
Pull requests
Detect the open PR for your branch, review a seeded title and description, publish and create in separate phases with safe retry, and read check results on demand.
Pull and merge requests on all four hosts from Source Control; the Git Manager pane reads GitHub, GitLab, and Azure DevOps. Checks and native publishing are GitHub-only for now.
Remote Servers
Your agents, on any machine
A BibCode server owns its projects, files, Git state, terminals, provider CLIs, and agent sessions. Run it on the laptop in front of you or on a box across the tailnet, then drive it from any desktop app or browser you have paired.
# serve the projects on this machine$ bibcode serve --host 100.64.0.10 # mint a five-minute pairing offer$ bibcode pairing offer --endpoint http://100.64.0.10:3773 # keep it running across reboots$ bibcode service install --host 100.64.0.10Paste the printed offer into Settings → Remote Servers → Add Server on the other device. Server archives ship the matching web client, so a browser can connect too.
Pair another device
Share this host from Settings and hand another desktop or browser a five-minute encrypted pairing offer. Pick a LAN, Tailscale, or NetBird address, a MagicDNS name, or a custom address behind your own tunnel or proxy, and give each saved server its own alias.
Headless server
The same native binary runs as a standalone server on a Linux box, a Mac, or a Windows machine. Install it as a per-user service that survives reboots, from a tarball or a .deb / .rpm package.
Desktop-managed SSH
The desktop app can start or reuse a server over SSH on a remote host and forward it to a local port. It never installs Node.js or a runtime on the other side. Desktop only.
WSL on Windows
Run the Linux server binary inside Windows Subsystem for Linux, with provider CLIs and credentials living in the distribution. Switch back to the native Windows backend at any time.
One environment rail
Local and remote environments sit side by side, with the active host ringed in the rail. Agents, worktrees, terminals, Git, file transfers, and usage meters all follow the environment you select.
Private by default
New pairings run over an authenticated, end-to-end encrypted channel with a pinned host identity, from the desktop app or a browser. Pairing credentials become bounded sessions you can revoke from Settings, and sharing fails closed on public-only networks.
Under the hood
A Rust core, one React frontend
The React frontend is shared unchanged between browser and desktop modes. Tauri-specific behavior stays behind window.desktopBridge. Production builds contain no Electron, Node.js runtime, or TypeScript server.
- Desktop
- Tauri 2
- Rust host + OS WebView. No Electron.
- Frontend
- React 19 · Vite
- TypeScript, TanStack Router, Zustand, Effect.
- Server
- Rust · Axum · Tokio
- Embedded in the desktop app, or headless with a per-user service and .deb / .rpm packages.
- Transport
- Typed WebSocket / RPC
- Shared contracts across browser and desktop.
Origins & acknowledgements
Standing on open-source shoulders
BibCode replaced the original Electron and Node.js runtime with a Rust application server and a Tauri 2 desktop host. We're deeply grateful to the maintainers whose work made it possible.
Start shipping with a fleet of agents
Download the desktop build, or run from source. Install and authenticate at least one provider before you begin.
$ curl -fsSL https://vite.plus | bashInstalls the Vite+ vp CLI for building from source.