Open source · Pure Rust · Tauri 2 · Windows, macOS & Linux
The editor thatships with an agent.
Rustic pairs a fast, VS Code–style editing surface with a first-class AI agent that can
read
your whole workspace — with every change captured as a revertible checkpoint.
1use axum::{Router, routing::get};
23/// Boots the API and serves on $PORT.4#[tokio::main]
5async fnmain() {
6letapp = Router::new()
7 .route("/healthz", get(|| async { "ok" }))
8 .layer(auth::require_bearer());
9 axum::serve(listener, app).await.unwrap();10}
Terminal+⤢×
$ cargo test rate_limit
Compiling acme-api v0.1.0 (~/projects/acme-api) Finished test profile in 3.42s
running 3 tests
test rate_limit::allows_burst_under_limit ... ok
test rate_limit::rejects_61st_request ... ok
test rate_limit::refills_after_window ... ok
test result: ok. 3 passed; 0 failed
cargo testdev server
⎇ main 2↑avijitbhuin21✎ 1 unsavedLn 9, Col 5RUSTLFRustic
A real IDE surface — not a chat window with a file picker bolted on.
A built-in agent with real tools
Read, edit, create and move files. Run commands in background PTYs it can poll. Fetch and search the web. Generate images and video. Every tool runs behind a Chat / Edit / Auto permission model — you decide how much rope it gets.
read_file
edit_file
run_command
grep_search
web_fetch
find_symbol
spawn_subagent
+ MCP
Per-message checkpoints
Every turn snapshots the whole project into a gix shadow repo. One click reverts files and the chat to any earlier point.
Integrated terminals
ConPTY / portable-pty backed, grid and split layouts, scrollback that survives remounts. The agent sees the same terminals you do.
Monaco, multi-tab, LSP
The same editor core as VS Code, with tree-sitter highlighting and previews for Markdown, images, PDF, docx, xlsx and notebooks.
Skills, workflows, @ & /
Reusable instruction bundles and saved playbooks, installable from GitHub. Mention files and live terminals with @; invoke skills inline with /.
Keys never touch the webview
API keys live in the OS keychain. The frontend only ever sees a sentinel; the Rust backend resolves the real secret.
A browser the agent can drive
Embedded Chromium with DevTools access: click, type, fill forms, read the console, inspect network requests, take screenshots, run Lighthouse. It verifies its own UI work instead of guessing.
Long sessions that stay on track
Pin a goal and the agent keeps working toward it. Context auto-condenses before it overflows, a live capsule shows how full the window is, and cost tracking with budget ceilings stops a runaway task before your bill does.
goal
auto-condense
context meter
cost tracking
budget ceilings
Multi-project workspace
Open several repos at once. Global search, git status, diffs and history — all pure Rust via gix, no C toolchain required.
02 — Orchestration
One agent is good. A team is better.
Rustic treats agents as first-class citizens — its own, and everyone else's.
01
Sub-agents that offload context
Delegate read-only exploration, research, or a self-contained chunk. Children return a summary; the host keeps the full picture. Concurrent writes go through a 3-way merge guard so parallel edits never clobber each other.
02
Peer agents in the same project
Run several top-level tasks at once. Agents can see who else is live, what files they've written, and message each other to claim or yield an area.
03
Bring your existing CLI agents
Claude Code, Codex and Antigravity run as chats inside Rustic with hidden PTYs — same panel, same project, same terminals.
Claude CodeCodexAntigravity
04
Memory that survives the session
A fragmented project memory the agent reads at task start and writes back at the end — conventions, gotchas, decisions — so it stops repeating itself.
03 — Rustic Server
Your whole IDE. In your pocket.
rustic-server runs the exact same Rust core as the desktop app — headless, on a box you own — and serves Rustic to any browser. Start a task from your desk, check on it from the train, approve the fix from your phone.
acme-api · Auto
The login page 500s on Safari — fix it and show me.
✓grep_search "SameSite"
✓edit_file src/session.rs+6 −2
✓run_command cargo test
✓browser_screenshot /login
Fixed — cookie now sets SameSite=Lax. Preview live at acme-dev.trycloudflare.com
Ask the agent…↑
Built for the phone, not shrunk onto it.
A real mobile layout. Below tablet width Rustic switches to a one-view-at-a-time shell with a bottom tab bar — Agent, History, Files, Editor, Terminal — plus Search, Git and the browser under More.
Nothing resets when you switch. Views stay mounted, so chat scroll, open editors and live terminal sessions survive every tab hop.
Agents keep working when you close the lid. Tasks run on the server, not your laptop. Walk away, come back on any device, and the stream picks up where it is.
Every tab, every device, in sync. One event hub fans out to all connected browsers — your desktop and phone see the same chat, live.
Dev servers, auto-exposed
Start npm run dev and a Cloudflare quick-tunnel opens for that port automatically — tap the link on your phone. Stop the server and the tunnel is reaped.
A real browser on the VM
Headless Chromium next to your code, so localhost:3000 and OAuth redirects just work. Streamed to you with full DevTools — and zero processes when it's closed.
Issues that fix themselves
Point a GitHub webhook at your server: new issues spawn a fixer task, comments answer its questions, and the fix lands as a local commit — never pushed without you.
Sync desktop ⇄ server
Push your whole environment — projects, chats, settings — to the server and pull it back down anywhere. Chunked, parallel, resumable transfers.
Locked down by default
Password login with HMAC-signed sessions and per-IP rate limiting. Path guards block system dirs and credentials. One Power button logs every device out.
One container, batteries in
Rust binary, web UI, git, node/npx and uv/uvx for MCP, plus Go, Rust, Bun and TypeScript toolchains. Caddy handles HTTPS. Git in the terminal is pre-authed to GitHub.
deploy
$ git clone https://github.com/avijitbhuin21/Rustic && cd Rustic
$ cp .env.example .env # set RUSTIC_AUTH_PASSWORD + RUSTIC_DOMAIN$ docker compose up -d --build
✔ Container rustic-server Started✔ Container caddy Startedhttps://rustic.example.com
One click on Railway gives you a box with a persistent volume, a public HTTPS domain and a freshly generated login password. Or self-host on any Linux VM with Docker, or behind Tailscale. Bring your own keys — they stay on your server.
Rustic is free to download and the source is on GitHub. Bring your own API keys — Anthropic, OpenAI, Google, OpenRouter, or a local OpenAI-compatible server. No accounts. No middleman.