~20MB native code editor with built-in AI agents. Ships fast.
Website · Download · ClifPad · ClifCode TUI · Development
Two products, one monorepo:
- ClifPad — A ~20MB native desktop IDE with Monaco editor, real terminal, git, and built-in AI agent
- ClifCode — A terminal AI agent that reads, writes, searches, and runs commands
Both work with any LLM via OpenRouter, OpenAI, Anthropic, or Ollama (fully local). No Electron. No telemetry. No subscription.
Get It
ClifPad — Desktop IDEDownload from Releases — macOS (.dmg), Windows (.exe), Linux (.deb, .AppImage). Built-in auto-updater checks for new versions on startup.
|
ClifCode — Terminal Agent
Run |
ClifPad
A ~20MB native Rust IDE. Tauri 2 backend, SolidJS frontend, Monaco editor.
Editor — 70+ languages, IntelliSense, multi-cursor, minimap, code folding. Same engine as VS Code.
Terminal — Native PTY. Multiple tabs, kill, clear. Launch ClifCode or Claude Code with one click.
Git — Branch, stage, commit, push/pull, per-file diff stats, visual commit graph. All in Rust.
AI Agent Sidebar — Built-in chat agent with 9 tools (read, write, edit, search, find, list, run commands). Streams responses, shows tool calls with arguments inline, context compaction for long tasks. Separate from the terminal — both can run simultaneously.
20 Themes — Midnight, Graphite, Dawn, Arctic, Dusk, Cyberpunk, Ember, Forest, Solarized Dark, Monokai, Nord, Dracula, One Dark, Tokyo Night, Catppuccin, Rosé Pine, Ayu Dark, Vesper, Poimandres, Pale Fire. Two-column theme picker split by dark/light.
Security Scanner — Detects hardcoded secrets, API keys, private keys, SQL injection, eval/exec, and more. Runs automatically before every git commit — warns before you ship a vulnerability. Full repo scan from the status bar. Enable/disable toggle. No false positives from binary files or dependencies.
Keyboard Shortcuts — Ctrl+`` toggle terminal, Ctrl+Shift+`` new terminal, Cmd+K clear terminal, Ctrl+B sidebar, Ctrl+S save, Ctrl+Shift+P command palette.
Size Comparison
| Binary | RAM (idle) | |
|---|---|---|
| ClifPad | ~20MB | ~80MB |
| Cursor | ~400MB | ~500MB+ |
| VS Code | ~350MB | ~400MB+ |
| Zed | ~100MB | ~200MB |
ClifCode TUI
Terminal AI agent. Like Claude Code, but works with any LLM.
◆ Model anthropic/claude-sonnet-4 ◆ Mode auto-edit
◆ Path ~/projects/my-app
❯ refactor the auth module to use JWT tokens
▶ read src/auth/mod.rs
▶ read src/auth/session.rs
✎ edit src/auth/mod.rs +42 -18
▸ run cargo test — 23 tests passed
✦ ClifCode Refactored auth to JWT. Added token expiry and refresh.
∙ 2.1k tokens ∙ ~$0.0312
Tools
| Tool | What it does |
|---|---|
read_file |
Read files with offset for large files |
write_file |
Create/overwrite files, shows diff |
edit_file |
String replacement with fuzzy fallback |
find_file |
Recursive name search |
search |
Grep across 15+ file types |
list_files |
Directory tree view |
run_command |
Shell execution with 30s timeout |
change_directory |
Switch workspace |
submit |
Mark task complete |
Features
- Context compaction — 3-tier automatic context management. Truncates large results, stubs old ones, drops old turns. Runs indefinitely without hitting context limits.
- Auto-update — Background version check on startup,
/updateself-replaces the binary from GitHub releases. - Session persistence — Every conversation auto-saves. Resume any session by ID.
- 3 autonomy modes —
suggest(confirm every write),auto-edit(apply + show diff),full-auto(hands-off). - Any LLM — OpenRouter (100+ models), OpenAI, Anthropic, Ollama (local), or any OpenAI-compatible endpoint.
- Cost tracking — Per-turn token usage and cost estimate.
- Git integration — Commits on task completion with user confirmation. Undo with
/undo.
Commands
/new /sessions /resume /cost /clear /quit
/cd /add /drop /context
/mode /backend /config /update /version
/status /undo /help
CLI
clifcode # interactive
clifcode -p "explain this codebase" # single prompt
clifcode --backend ollama # local models
clifcode --autonomy suggest # confirm writes
clifcode --resume # resume last session
clifcode -w /path/to/project # set workspace
clifcode --version # show version
Build
# ClifPad
cd clif-pad-ide
npm install && npm run tauri dev
# ClifCode
cd clif-code-tui
cargo run --release
Architecture
ClifPad: Tauri 2 (Rust) → IPC → SolidJS + Monaco + xterm.js
ClifCode: Pure Rust binary → ureq streaming → terminal UI
Project Structure
Clif-Code/
├── clif-pad-ide/ Desktop IDE (Tauri 2 + SolidJS)
│ ├── src/ Frontend (components, stores, lib)
│ ├── src-tauri/src/ Rust backend (fs, git, pty, ai, agent)
│ └── www/ Landing page (clifcode.io)
├── clif-code-tui/ Terminal agent (pure Rust)
│ ├── src/ main, backend, tools, ui, session, config
│ └── npm/ npm distribution (6 platform binaries)
└── .github/workflows/ CI/CD (semantic release, multi-platform builds)
Conventional commits: feat: bumps minor, fix: bumps patch. Semantic release handles versioning, builds, and publishing for both products.
FAQ
macOS "App can't be opened"?
Run xattr -cr /Applications/ClifPad.app in Terminal. This removes Apple's download quarantine flag. ClifPad is open source and safe.
Does it work offline? ClifPad: yes — AI is opt-in. Without API keys it's a full editor with terminal and git. ClifCode: needs an API, but Ollama runs fully local.
What models work? Any model on an OpenAI-compatible API. Default: Claude Sonnet 4 via OpenRouter (100+ models). Local: any Ollama model.
License
FSL-1.1-ALv2 — Free to use, modify, and self-host. You cannot build a competing commercial product. Automatically converts to Apache 2.0 after 2 years.
Built by James Lawrence