Open source · MIT licensed · Rust + Tauri

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

BibCode coordinating three coding agents and combining their results

Bring your own agent · plug in your existing subscription

CodexClaude CodeCursorOpenCode+ more soon

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.

Works withGitHubGitLabBitbucketAzure DevOps

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.

Headless in three commands
# 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.10

Paste 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 | bash

Installs the Vite+ vp CLI for building from source.