A desktop client for AI chat assistants, built with Tauri 2.0, Rust, and React. Provides a native-feeling GUI for interacting with Claude and other LLM providers, with local data persistence and a plugin-style architecture for extending functionality.
This is a personal/community desktop application that wraps AI chat APIs in a native window. It is not an official Anthropic product, and it is not a polished commercial release. It is under active development: features change frequently, some things are incomplete, and you should expect rough edges.
The app uses Tauri 2.0's Rust backend to handle file system access, process management, SQLite storage, and HTTP proxying, while the React 19 frontend provides the chat UI, settings panels, and auxiliary views.
- Multi-provider chat with streaming responses (SSE)
- Multiple model support across Anthropic, OpenAI, DeepSeek, and other compatible APIs
- Chat history persistence in SQLite
- Context-aware memory system that surfaces relevant past conversations
- Markdown rendering with syntax highlighting, KaTeX math, and Mermaid diagrams
- Voice input support
- MCP (Model Context Protocol) server integration -- connect external tools that the AI can invoke
- Multi-agent orchestration -- coordinate multiple AI agents working on subtasks in parallel
- Skills system -- user-extensible plugin modules for specialized capabilities
- Slash commands for quick actions within the chat input
- Built-in terminal panel (xterm.js)
- Code diff viewer for reviewing AI-generated code changes
- Code execution panel for running code snippets
- File explorer for browsing the local filesystem
- Knowledge base panel for managing reference documents
- Research panel for multi-step web research workflows
- Artifact preview for rendered HTML/JSX/WebGPU outputs
- Live preview panel for web content
- Document panel with DOCX and PDF preview
- Swarm collaboration view for multi-agent task management
- IM integration panel (Feishu/WeChat)
- Analytics and cost tracking dashboard
- GitHub integration panel
- App Studio for building mini-apps within the desktop
- System tray icon
- Native file dialogs
- Clipboard integration
- Desktop notifications
- Automatic updater (checks for new releases)
- Configurable permission modes: ask every time, auto-accept edits, plan-only, or full bypass
- Per-tool permission controls
| Technology | Purpose |
|---|---|
| React 19 | UI framework |
| TypeScript 5.7 | Type system |
| Vite 6 | Build tooling |
| Tailwind CSS 3 | Utility-first styling |
| Zustand 5 | State management |
| React Router 6 | Client-side routing |
| xterm.js 5 | Terminal emulation |
| KaTeX | Math rendering |
| Mermaid | Diagram rendering |
| recharts | Charting |
| highlight.js / react-syntax-highlighter | Code highlighting |
| react-markdown / remark / rehype | Markdown pipeline |
| Technology | Purpose |
|---|---|
| Tauri 2.0 | Desktop application framework |
| Axum 0.8 | Internal HTTP bridge between frontend and backend |
| Tokio 1 | Async runtime |
| rusqlite 0.31 (bundled) | Local SQLite database |
| reqwest 0.12 | HTTP client for AI API calls |
| Tower HTTP 0.6 | HTTP middleware (CORS) |
| Tracing / OpenTelemetry | Structured logging and telemetry |
| Serde / serde_json | Serialization |
| UUID 1 / Chrono 0.4 | Identifiers and timestamps |
| diffy 0.4 | Text diffing for code review |
| notify 6 | Filesystem watcher |
| enigo 0.2 | Input simulation |
| Prometheus 0.13 | Metrics exposition |
claude-desktop-tauri/
โโโ src/ # React frontend source
โ โโโ components/ # UI components
โ โ โโโ chat/ # Chat interface components
โ โ โโโ swarm/ # Swarm collaboration components
โ โ โโโ ui/ # Shared UI primitives
โ โ โโโ ... # ~80+ component files
โ โโโ features/ # Feature modules
โ โ โโโ chat/ # Chat feature logic
โ โ โโโ streaming/ # SSE stream handling
โ โ โโโ skills/ # Skills integration
โ โ โโโ slash-commands/ # Slash command handling
โ โ โโโ ...
โ โโโ stores/ # Zustand state stores
โ โโโ hooks/ # React custom hooks
โ โโโ services/ # API service layer
โ โโโ types/ # TypeScript type definitions
โ โโโ utils/ # Utility functions
โ โโโ locales/ # i18n localization
โ โโโ assets/ # Static assets
โ โโโ App.tsx # Root application component
โ โโโ main.tsx # Entry point
โโโ src-tauri/ # Rust backend source
โ โโโ src/
โ โ โโโ main.rs # Tauri entry point
โ โ โโโ lib.rs # Library root
โ โ โโโ bridge/ # Axum HTTP API server
โ โ โโโ engine/ # AI engine integration
โ โ โโโ native_engine/ # Native engine logic
โ โ โโโ memory/ # Conversation memory system
โ โ โโโ db/ # SQLite database layer
โ โ โโโ mcp/ # MCP client/server
โ โ โโโ multiagent/ # Multi-agent orchestration
โ โ โโโ orchestration/ # Task orchestration
โ โ โโโ permissions/ # Permission management
โ โ โโโ skills/ # Skills loader
โ โ โโโ tools/ # Tool implementations
โ โ โโโ worktree/ # Git worktree management
โ โ โโโ terminal/ # Terminal backend
โ โ โโโ diff/ # Diff utilities
โ โ โโโ streaming/ # SSE streaming
โ โ โโโ im_integration/ # IM platform integration
โ โ โโโ knowledge/ # Knowledge base
โ โ โโโ research/ # Research engine
โ โ โโโ config/ # Configuration management
โ โ โโโ analytics/ # Usage analytics
โ โ โโโ cost_tracker/ # API cost tracking
โ โ โโโ web_search/ # Web search integration
โ โ โโโ sandbox/ # Code execution sandbox
โ โ โโโ project/ # Project management
โ โ โโโ agent_bus/ # Agent communication bus
โ โ โโโ git/ # Git integration
โ โ โโโ github/ # GitHub integration
โ โ โโโ fs/ # Filesystem operations
โ โ โโโ process/ # Process management
โ โ โโโ notification/ # Desktop notifications
โ โ โโโ updater/ # Auto-update logic
โ โ โโโ watcher/ # File system watcher
โ โ โโโ scheduler/ # Task scheduler
โ โ โโโ computer_use/ # Computer use (input simulation)
โ โ โโโ app_studio/ # App Studio backend
โ โ โโโ remotion/ # Remotion video rendering
โ โ โโโ document/ # Document handling
โ โ โโโ commands/ # Custom commands
โ โ โโโ slash_commands/ # Slash commands backend
โ โ โโโ api/ # External API clients
โ โ โโโ prompt/ # Prompt templates
โ โ โโโ logger/ # Logging infrastructure
โ โ โโโ metrics/ # Metrics collection
โ โ โโโ cache/ # Caching layer
โ โ โโโ clipboard/ # Clipboard operations
โ โ โโโ upload/ # File upload handling
โ โ โโโ prefetch/ # Data prefetching
โ โ โโโ ide/ # IDE integration
โ โ โโโ superpowers/ # Superpowers module
โ โโโ Cargo.toml # Rust dependencies
โ โโโ tauri.conf.json # Tauri configuration
โโโ package.json # Node.js dependencies
โโโ vite.config.ts # Vite configuration
โโโ tailwind.config.js # Tailwind configuration
โโโ tsconfig.json # TypeScript configuration
โโโ postcss.config.js # PostCSS configuration
โโโ vitest.config.ts # Test configuration
โโโ index.html # HTML entry point
โโโ scripts/ # Build and utility scripts
โโโ docs/ # Project documentation
โโโ data/ # Bundled data files
- Rust 1.70+ (install via rustup)
- Node.js 18+ (recommend nvm or fnm)
- Platform-specific Tauri dependencies:
- Windows: Microsoft Visual Studio C++ Build Tools, WebView2 (pre-installed on Windows 10+)
- macOS: Xcode Command Line Tools
- Linux:
libwebkit2gtk-4.1-dev,libgtk-3-dev, and other system libraries - See Tauri prerequisites for full details
# Clone the repository
git clone <repo-url>
cd claude-desktop-tauri
# Install frontend dependencies
npm install
# Start the development server with hot reload
npx tauri devThis launches both the Vite dev server (frontend) and the Tauri Rust backend. The frontend hot-reloads on file changes; Rust changes require a rebuild (Tauri handles this automatically on save).
# Build for the current platform
npx tauri build
# Build artifacts are placed in:
# src-tauri/target/release/bundle/# Frontend tests (Vitest)
npm test
# Frontend tests with coverage
npm run test:coverage
# Rust tests
cd src-tauri && cargo testThis project is under active development. It is not production-ready software and does not have official releases or published installers. Key caveats:
- APIs and internal interfaces may change without notice between commits
- Some features are partially implemented or experimental
- Configuration currently requires editing files directly; there is no first-run setup wizard
- The UI has areas that need polish and accessibility work
- Test coverage is uneven across the codebase
- Documentation is sparse and mainly lives in source comments and the
docs/directory
If you want to try it, build from source following the instructions above. Expect to encounter bugs and incomplete features.
Contributions are welcome. Here is the process:
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature) - Make your changes
- Run the existing tests to make sure nothing is broken
- Commit using Conventional Commits style (
git commit -m 'feat: add your feature') - Push to your fork and open a pull request
- Rust: Format with
rustfmt, passcargo clippywithout warnings - TypeScript: Follow the project's ESLint configuration
- Commits: Use conventional commit prefixes (
feat:,fix:,refactor:,docs:,chore:,test:)
Before starting on a large change, consider opening an issue to discuss the approach first.
MIT -- see the LICENSE file for details. (If no LICENSE file exists at the repository root, the project defaults to MIT terms as stated here.)
Built on excellent open-source projects: