A local-first terminal built for the Claude Code era.
Your terminal, plus a Claude-native side panel — a git-backed prompt vault, your agents & skills & MCP servers at a glance, notes, and a one-key Enhance that turns rough ideas into sharp prompts.
Two worlds never met: AI terminals (fast, pretty, but agent-blind) and Claude Code GUIs (agent-aware, but not a real terminal). DevCLI is both — a real shell and a panel that understands your Claude Code workflow. Local-first, no login, cross-platform.
| 🖥️ Real terminal | True PTY + your shell, GPU-accelerated rendering (xterm WebGL), 100k scrollback. |
| 🗂️ Tabs | One shell per tab — rename (double-click), pin, color, right-click menu. |
| 💬 Prompt vault | Every saved prompt is a git-tracked .md file. Search, tag into groups, re-use, share. |
| ✨ Enhance & Refine | Turn a rough note into a clean prompt via your local claude — then iterate with a change instruction. |
| 🤖 Agents · Skills · MCP | Your ~/.claude (and project .claude) agents, skills, and MCP servers — searchable, groupable, double-click to preview. |
| 📝 Notes | Notes / tasks with pin, minimize, drag-to-reorder, and clickable links. |
| 📁 Folder-aware | The panel follows your terminal's cd — prompts, notes, agents auto-scope to the project you're in. |
| 🎨 Themes | Clean light + dark, teal accent. |
| ⬆️ Auto-update | Installed apps update themselves from GitHub Releases (signed). |
Download the latest .dmg from Releases (macOS, Apple Silicon), open it, drag DevCLI to Applications.
After that, DevCLI keeps itself up to date — new releases install on the next launch.
| Key | Action |
|---|---|
⌘T |
New terminal tab |
⌘W |
Close tab |
⌘1…9 |
Switch to tab N |
⌘E |
Enhance the prompt you're typing (in the terminal) |
⌘B |
Toggle the side panel |
Double-click a tab to rename, right-click for pin / color / close. Double-click an agent or skill to preview its file.
Each saved prompt is a self-describing markdown file, git-versioned — the files are the source of truth, SQLite is just a search index.
<project>/.devcli/prompts/<slug>.md # per-repo prompts
~/.devcli/prompts/<slug>.md # global prompts
Full spec → docs/PROMPT-STORAGE.md.
Rust + Tauri v2 (native WebView — light, no bundled Chromium) · xterm.js + WebGL terminal · SQLite + git storage · Vite UI.
Idle footprint ~78 MB (release). Design notes in docs/ARCHITECTURE.md · docs/DESIGN.md · docs/PRD.md.
pnpm install
pnpm tauri dev # run the app (hot-reload UI)
pnpm tauri build # produce a .dmg / .appRequires Rust, Node 20+, pnpm.
Push a version tag — CI (.github/workflows/release.yml) builds, signs, and publishes the GitHub Release + latest.json:
# bump version in src-tauri/tauri.conf.json and src-tauri/Cargo.toml
git tag v0.1.2 && git push origin v0.1.2Installed apps auto-update on next launch. (Signing uses the TAURI_SIGNING_PRIVATE_KEY repo secret — keep the private key safe; without it, updates break.)