One screen for all your coding agents.
Claude Code, Codex CLI and Gemini CLI side by side: who works, who waits for you, who is stuck.
Install · Write your own look · Roadmap · Issues
AIVory Code is a local-first control room for coding agents. It shows the sessions of Claude Code, Codex CLI, and Gemini CLI on one screen. You see which agent works, which agent waits for an answer, and which agent has an error. You answer from the desktop app or from your phone.
A Rust daemon (aivoryd) reads the native session stores and runs the agent CLIs that you
already have. The desktop app and the phone app are clients of this daemon.
Status: first public version. See docs/roadmap.md. Windows 11 is the supported platform. The macOS and Linux builds are a preview: they build in CI, but nobody has tested them yet.
Windows (winget):
winget install Aivory.AivoryCodemacOS and Linux (Homebrew):
brew install aivorynet/tap/aivory-codemacOS and Linux (script, no package manager):
curl -fsSL https://github.com/aivorynet/aivory-code/releases/latest/download/install.sh | shLinux packages: the .deb and the .AppImage on the
releases page.
All of them install aivory (the desktop app) and aivoryd (the daemon). Start the app with aivory.
The builds have no code signature yet. The package managers avoid the warnings: winget installs without the SmartScreen prompt, and Homebrew formulas do not get the macOS quarantine flag. If you download the installer or the archive from the releases page yourself, Windows SmartScreen shows a warning at the first start ("More info" > "Run anyway"). On macOS, right-click the app and select "Open".
AIVory Code is free and open source. If it saves you time, I'd love a coffee or a star.
Everybody is welcome: report a bug, ask for a feature, open a pull request, or write your own look.
This project grows with the people who use it. You don't need permission to help:
- Found a bug? Open an issue. A screenshot and the steps to repeat it are perfect.
- Missing something? Ask for a feature. Tell us what you want to do, not only how.
- Want to code? Pick an issue, or bring your own idea, and open a pull request. Small PRs are welcome. See CONTRIBUTING.md.
- Like it? A coffee, a star or a short review helps a lot.
The app has looks (themes) that change the whole screen: Minimal, Bridge, Operator, Neon, Navigator, Holo, Tactical and Command (a pixel-art building game where your agents construct your features). Make your own and share it:
- A theme is a GitHub repo with plain data files: colors, fonts, and screen layouts. No code runs.
Start with
aivoryd theme init my-theme, and check it withaivoryd theme check my-theme. - Install one in Settings > Display: paste the GitHub link, confirm, select. Or run
aivoryd theme add github:<owner>/<repo>. - The format is in ADR 0024. Your feedback is welcome.
- Use original art, or art with a free license, and put the license file next to it.
- Add it to the theme registry with a pull request.
| Folder | What | Language |
|---|---|---|
crates/aivory-protocol |
The contract between daemon and clients: data types, JSON-RPC methods, layout helpers, demo data | Rust |
crates/aivory-sessions |
Read-only index of the native session stores; transcripts, session state, spans | Rust |
crates/aivory-agents |
Detects the agent CLIs and runs them; maps their output to events | Rust |
crates/aivory-map |
Reads and writes the part map of a codebase (the file .aivory/map.toml in that codebase) |
Rust |
crates/aivory-engine |
SQLite store, activity sampler, usage estimate, autopilot planner | Rust |
crates/aivory-syntax |
Syntax layer: tree-sitter parse, highlight, stubs, outline, syntax errors (19 languages) | Rust |
crates/aivory-index |
Symbol index per repo: stub store, segments, session deltas, definition and references | Rust |
crates/aivory-diag |
Diagnostics: rule packs, linters, LSP pool, SARIF per turn | Rust |
crates/aivory-vcs |
Vcs trait and Git backend, turn snapshots, turn ledger, blame by prompt |
Rust |
crates/aivory-coord |
Local coordination: claims, conflict radar, mailbox | Rust |
crates/aivory-link |
Remote link to the phone: iroh endpoint, device keys, sealed push payloads | Rust |
crates/aivoryd |
The daemon and its command line | Rust |
apps/desktop |
The desktop app (GPUI), binary aivory |
Rust |
proto/ |
JSON fixtures and the JSON Schema of the protocol | JSON |
docs/ |
Design, decision records (ADR), roadmap | Markdown |
These folders hold only a README. They are placeholders for later work: grammars/,
packs/, templates/, plugins/genie/.
Install Rust 1.88 or newer. The first desktop build takes several minutes.
Run the desktop app on the demo data. No agent and no daemon are needed:
cargo run -p aivory-desktop -- --demo
Run the desktop app on the real sessions of this machine. Use two terminals:
cargo run -p aivoryd -- serve
cargo run -p aivory-desktop
Add --scope <folder> to serve to show only the sessions below one folder.
Run the stress check (40 live panes, frame rate in the log):
cargo run --release -p aivory-desktop -- --demo --stress 40 --fps
Use the daemon command line without the apps:
cargo run -p aivoryd -- --help
cargo run -p aivoryd -- list
cargo run -p aivoryd -- map init <repo>
cargo test
cargo test --workspace
cargo testtests the crates. It leaves out the desktop app.cargo test --workspaceadds the desktop app. The build is slow.
Run these checks before you finish a change:
cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings
cargo deny check checks the dependency licenses. It needs cargo install cargo-deny.
- The native stores (
~/.claude,~/.codex,~/.gemini) are read-only. The code never writes to them. - The daemon runs
claude,codex, andgeminiwith the login of the user. - No code reads, stores, or proxies a login token.
- The daemon keeps its own data (tasks, settings, devices) in a per-user folder.
On Windows this is
%LOCALAPPDATA%\aivory\code. - Tests use synthetic fixtures. No test reads a real session.
- The phone link works in the local network only. It has no TLS yet (ADR 0021).
- AGENTS.md: rules for coding agents and contributors.
- docs/design/screens/README.md: the accepted design.
- docs/design/00-vision.md: vision, principles, and glossary.
- docs/adr/: decision records.
- docs/roadmap.md: steps and status.
MIT. Everyone can use, change, and share AIVory Code for free, also at work. See LICENSE.
The phone and watch apps have their own license and are not part of this repository.
There is no paid tier (ADR 0025).
The bundled fonts use the SIL Open Font License. The license files are in
apps/desktop/assets/fonts.
