Claudette is built entirely on open source technologies. Here’s what powers it and why we chose each one.
| Technology | Role | Why we chose it |
|---|
| Tauri 2 | Desktop app framework | Native performance with a tiny footprint — no Electron, no bundled Chromium. The result is a <30MB binary with <2s cold start. |
| Rust | Backend language | Memory safety without a garbage collector, excellent async support via Tokio, and the ability to ship a single static binary. |
| Tokio | Async runtime | Powers all our concurrent operations — process management, git operations, WebSocket connections, and PTY I/O. |
| Technology | Role | Why we chose it |
|---|
| React 19 | UI framework | Component-based architecture with a massive ecosystem. Runs inside Tauri’s webview. |
| TypeScript | Language | Strict mode throughout — catches bugs at compile time and makes refactoring safe. |
| Zustand | State management | Minimal, fast, and flexible. A single store with domain slices keeps state predictable without boilerplate. |
| Vite | Build tool | Instant HMR in dev, optimized production builds. Tauri’s default frontend toolchain. |
| Lucide | Icons | Clean, consistent icon set with tree-shaking — only the icons we use end up in the bundle. |
| Technology | Role | Why we chose it |
|---|
| xterm.js | Terminal emulator | Full-featured terminal rendering in the browser, with addons for link detection and responsive sizing. |
| portable-pty | PTY management | Cross-platform pseudo-terminal creation from Rust — connects real shell sessions to xterm.js. |
| highlight.js | Syntax highlighting | Language-aware code highlighting in chat messages and diffs. |
| Technology | Role | Why we chose it |
|---|
| SQLite (via rusqlite) | Database | Embedded, zero-config, local-first. All data stays on your machine in a single file. |
| Tungstenite | WebSocket | Async WebSocket client for remote workspace connections, with rustls for TLS. |
| mDNS-SD | Service discovery | Automatic LAN discovery of remote Claudette servers — no manual IP configuration needed. |
Every technology choice reflects Claudette’s values:
- Lightweight — Tauri + Rust means a tiny binary. No Electron, no 200MB runtime.
- Local-first — SQLite keeps your data on your machine. No cloud database, no account required.
- Native performance — Rust backend handles concurrent agents, git operations, and terminal I/O without breaking a sweat.
- Open source all the way down — every dependency listed here is open source. You can audit the entire stack.