# Claude Desktop — Roadmap
Stand: 27.04.2026
---
## Ziel
Claude Desktop soll **schneller und maechtiger** sein als Codium + Claude Code Extension. Kein Feature-Bloat — nur das was echten Geschwindigkeits- und Produktivitaetsvorteil bringt.
---
## Abgeschlossen (v0.1.0 — 14.04.2026)
Alles aus Phase 1-16 ist implementiert und funktionsfaehig:
- Tauri 2.0 + SvelteKit 5 + Claude Agent SDK
- 4-Panel Layout mit 24 UI-Komponenten
- Claude Bridge (Node.js, stdio JSON-Lines)
- Guard-Rails System (Safe/Moderate/Critical/Blocked)
- SQLite Persistierung + Session-Management
- Claude-DB Integration (Wissensbasis durchsuchen/speichern)
- 3-Schichten Context-Management (Sticky/Projekt/Hints)
- Sprach-Interface (Whisper STT + OpenAI TTS)
- Multi-Agent-Modi (Solo/Handlanger/Experten/Auto)
- Hook-System (SessionStart, PreToolUse, PostToolUse)
- VSCodium-Extension (WebSocket Port 7890)
- Programm-Steuerung (D-Bus, Xvfb, Playwright-MCP)
- Praesentations-/Schulungsmodus
- System-Monitor + Performance-Metriken
- Subagent-Hierarchie mit Baumansicht
- Auto-Updater (Forgejo Package Registry)
- Slash-Command Autocomplete
- KB-Hints Injection + Proaktive Intelligenz
- Error-Pattern Auto-Detection (3x → KB-Eintrag)
---
## Phase 3: Performance (naechster Schritt)
**Ziel:** Erste Antwort in < 1s, Bridge immer warm, kein Warten.
| Feature | Datei(en) | Status |
|---------|-----------|--------|
| ✅ KB-Cache (RAM) | `knowledge.rs` | 60s TTL, LRU, max 100 Entries |
| ✅ Bridge Warm-Start | `lib.rs`, `claude.rs` | Start bei App-Launch, kein Cold-Start |
| ✅ Lazy Panel-Load | `+page.svelte` | Dynamic Import mit Cache |
| ✅ Session-Resume Fix | `claude-bridge.js` | Stale ID → auto-Retry neue Session |
| ✅ Auto-Retry (Netzwerk) | `claude-bridge.js` | 3x Backoff bei Rate-Limit/5xx |
| ✅ Bridge Heartbeat | `claude-bridge.js` | 30s Pulse an Rust |
| ✅ FIFO Message Queue | `ChatPanel.svelte` | Mehrere Nachrichten queuen |
| ✅ Bridge-Daemon | `claude.rs`, `claude-bridge.js` | Bridge ueberlebt App-Neustart (--socket Flag) |
| ✅ Unix Socket IPC | `claude.rs`, `claude-bridge.js` | stdio → UDS (async, Reconnect, PID-Tracking) |
---
## Phase 4: Codium-Killer Features
**Ziel:** Dinge die Codium + Extension prinzipbedingt NICHT koennen.
| Feature | Datei(en) | Status |
|---------|-----------|--------|
| ✅ Projekt-Wechsel | `db.rs`, `SessionList.svelte` | Ein Klick wechselt Projekt (CWD, Context, KB-Filter) |
| ✅ MCP-Hub nativ | `claude.rs`, `claude-bridge.js` | MCP-Server aus .claude.json, UI-Verwaltung, Runtime-Injection |
| ✅ Guard-Rails UI | `guard.rs`, `GuardRailsPanel.svelte` | Live-Feed, Risiko-Statistik, Ein-Klick-Freigabe, 3 Tabs |
| ✅ Persistent Memory | `memory.rs`, `claude.rs` | Auto-Load Eintraege in Context, Cross-Session Gedaechtnis |
| ✅ Quick-Actions | `QuickActions.svelte`, `ChatPanel.svelte` | Ctrl+K Palette: Deploy, Build, Test, Commit, Git, Navigation |
| ✅ Voice-Conversation | `voice.rs`, `VoicePanel.svelte` | Lokales Whisper STT + Piper TTS, VAD, Gespraechsmodus |
| ✅ Settings-Panel | `SettingsPanel.svelte` | VS-Code-artiges Layout mit Suche, Kategorien, Commands, Hooks |
| ✅ Chat-Detach | `chat_window.rs`, `+page.svelte` | Chat in separates Fenster herausloesen/zurueckholen |
| ✅ Aktivitaets-Phasen | `events.ts`, `ChatPanel.svelte` | 4 Phasen: Denkt/Streamt/Tool/Subagent statt nur "Denkt nach" |
---
## Phase 5: Lokale KI + Offline
**Ziel:** Unabhaengig von Cloud fuer Routine-Tasks.
| Feature | Datei(en) | Status |
|---------|-----------|--------|
| ✅ Whisper.cpp lokal | `voice.rs` | whisper-cli STT, Thorsten-DE Modell, kein OpenAI noetig |
| ✅ Piper-TTS lokal | `voice.rs` | piper-tts mit thorsten_emotional (high), offline |
| ✅ Lokales Haiku-Equivalent | `claude-bridge.js`, `claude.rs` | Ollama-Integration, Auto-Detect, local-query Command |
| ✅ Offline-Queue | `session.rs` | SQLite-Queue, queue/flush/clear Commands, Auto-Retry |
---
## Phase 6: Desktop-Integration (Linux-Native)
**Ziel:** Claude steuert den Desktop wie ein zweiter User.
| Feature | Datei(en) | Beschreibung |
|---------|-----------|--------------|
| ✅ D-Bus Actions | `programs.rs`, `ProgramsPanel.svelte` | 10 Aktionen: Dolphin, Kate, Konsole, Firefox, Notify, Lock |
| ✅ Clipboard-Watch | `clipboard.rs` | Claude reagiert auf Clipboard-Inhalt (Code/URL/Fehler erkennen) |
| ✅ File-Drop | `ChatPanel.svelte` | Dateien auf Chat droppen → Claude analysiert/bearbeitet |
| ✅ Screenshot-Analyse | `programs.rs`, `ProgramsPanel.svelte` | Spectacle/Scrot Region-Capture, Vorschau, an Chat senden |
| ✅ Global Hotkey | `lib.rs` | Super+C oeffnet Claude-Eingabe von ueberall |
---
## Phase 7: VS Code Extension Features
**Ziel:** Die besten Features der Claude Code VS Code Extension uebernehmen — Accept/Reject, @-Mentions, Checkpoints.
| Feature | Datei(en) | Status |
|---------|-----------|--------|
| ✅ Accept/Reject DiffView | `DiffView.svelte`, `checkpoint.rs`, `db.rs` | Post-Execution Approval mit Revert, Kompakt-Ansicht, interaktive Buttons |
| ✅ Checkpoint/Rewind | `checkpoint.rs`, `db.rs`, `claude.rs`, `claude-bridge.js` | Automatische Snapshots bei Edit/Write, SQLite-basiert, Rewind auf beliebigen Punkt |
| ✅ @-Mentions | `FileMention.svelte`, `context.rs`, `ChatPanel.svelte` | Fuzzy-Autocomplete, Dateiinhalt-Injection, Zeilenbereiche (#5-10) |
| ✅ Bridge Pending-Queue | `claude-bridge.js` | Nachrichten waehrend laufender Verarbeitung puffern, Auto-Dispatch nach Turn |
| ✅ Tool-ID Sync | `events.ts`, `app.ts` | Backend-IDs korrekt durchreichen, Aktivitaets-Punkte Bug behoben |
| ✅ Session-Projekt-Sync | `SessionList.svelte` | Session-Klick aktiviert zugehoeriges Projekt automatisch |
---
## Phase 8: VS-Code-Look — Chatbereich-Redesign
**Ziel:** Chatbereich strukturell und visuell wie die offizielle Claude Code Extension fuer VS Code/Codium gestalten — linksbuendige Messages, Inline-Tool-Karten, VS-Code-Dark-Theme. ChatPanel.svelte (~2000 Z.) wird in fokussierte Teilkomponenten zerlegt.
| Feature | Datei(en) | Status |
|---------|-----------|--------|
| ✅ VS-Code-Theme-Variablen | `theme/vscode.css`, `+layout.svelte` | `--vscode-*` Custom Properties + Aliase fuer Altcode |
| ✅ Inline-Render via MessageList | `ChatPanel.svelte` | Messages-Bereich in `` ausgelagert; Logik bleibt im Container |
| ✅ Message.svelte | `Message.svelte` (NEU) | Avatar links, linksbuendig, Hover-Actions (Edit/Regenerate/Copy/Merken/Rewind) |
| ✅ MessageList.svelte | `MessageList.svelte` (NEU) | Smart-Sticky-Scroll, Back-to-Bottom-Button |
| ✅ Inline Tool-Cards | `ToolCallCard.svelte`, `ToolCardRead/Edit/Bash/Generic.svelte` (NEU) | Klappbare Karten in Assistant-Message; Edit zeigt Diff + Accept/Reject |
| ✅ Tool-Calls an Message binden | `events.ts`, `app.ts` | `Message.toolCalls?[]` ergaenzt, Tool-Events an letzte Assistant-Msg gebunden |
| ✅ ChatStatusBar | `ChatStatusBar.svelte` (NEU) | Token/Mode/Modell + Modus-Picker; Header bekommt Spark-Icon |
| ✅ Eigen-Features-Mapping | — | Mic, Modus-Indikator, Detach, „Das merken" funktionieren weiter |
| ✅ Activity-Panel parallel | `ActivityPanel.svelte` | unveraendert, dient als History-View neben den Inline-Karten |
---
## Phase 9: Komplettes UI-Redesign — Cursor/Zed-Niveau (aktuell)
**Ziel:** Schluss mit Emoji-Inflation, 4-Pane-Zerstueckelung und Schriftgroessen-Chaos. Verbindliches Design-System (Farben/Typo/Spacing/Radius), 2-spaltiges Layout (Sidebar + Hauptbereich mit Tabs), Werkzeug-Panels als Drawer von rechts statt zwei nebeneinander liegender Tab-Reihen.
| Feature | Datei(en) | Status |
|---------|-----------|--------|
| ✅ Design-System (Variablen) | `app.css` | 4 Graustufen, 1 Akzent (#007acc), 4 Status-Farben, 5 Schriftgroessen, 4-Punkt-Spacing, 2 Radius-Werte |
| ✅ vscode.css Aliase | `theme/vscode.css` | `--vscode-*` Variablen mappen auf Phase-9-Variablen |
| ✅ UI-Library | `src/lib/ui/` | Button, Card, Icon, Badge, StatusDot, Tooltip, Drawer, Tabs |
| ✅ Lucide Icons | — | `lucide-svelte` installiert, ersetzt Emojis im Chrome |
| ✅ StatusBar (22px) | `StatusBar.svelte` (NEU) | Token · Modell+Modus · Kosten · Phase, klickbarer Modus-Picker |
| ✅ Titlebar entruempelt | `+layout.svelte` | Logo + Stop + Schulungsmodus (Lucide) + Version, kein Status-Dot mehr |
| ✅ Sidebar (240px) | `Sidebar.svelte` (NEU) | Suche (Cmd+K), Sessions, Nav-Rail mit 4 Lucide-Icons (Activity/Database/Wrench/Settings) |
| ✅ ToolDrawer | `ToolDrawer.svelte` (NEU) | Rechts-Drawer (420px) mit internen Tabs fuer Activity/Memory/Tools/Settings, Esc-schliessbar |
| ✅ +page.svelte 2-spaltig | `+page.svelte` | 4-Pane-PaneForge-Layout aufgeloest, jetzt: Sidebar + ChatPanel (flex) + Drawer-Overlay |
| ✅ Hardgecodete Farben raus | 9 Komponenten | `#ef4444 #22c55e #eab308 #f59e0b #a855f7 #06b6d4 ...` durch `var(--status-*)` ersetzt |
| ✅ Status-Emojis durch StatusDot | `AgentView.svelte` | `🟢 🟡 ⚪ 🔴` durch `` mit Pulse-Animation bei aktivem Agent |
| ✅ ChatPanel entkoppelt | `ChatPanel.svelte` | Header + ChatStatusBar entfernt (jetzt global) — kompakte Toolbar nur noch fuer Detach |
| ✅ Cmd+K global | `+page.svelte`, `QuickActions.svelte` | Globaler Listener oeffnet QuickActions; navigate-tab oeffnet Drawer-Sektion |
| ⏳ Komponenten-Pass (Emojis raus) | 13 Panels | Emojis in Tab-Labels und Action-Buttons noch sukzessive durch Lucide ersetzen |
---
## Technische Schulden
| Was | Prioritaet |
|-----|-----------|
| TypeScript strict mode | Niedrig |
| E2E Tests (Playwright) | Mittel |
| ✅ Cargo warnings eliminieren | Erledigt — 0 Warnings |
| Dead Code in alten Panels | Niedrig |
| ✅ Bridge Error-Handling verbessern | Erledigt — Global Handler, Parse-Logging, .catch() |
---
## Nicht geplant
- Multi-User / Team-Features
- Cloud-Sync
- Plugin-System (overkill fuer 1-User-App)
- Electron-Port (Tauri bleibt)
---
## Build & Entwicklung
```bash
# Dev (Hot-Reload)
cd "/mnt/17 - Entwicklungen/20 - Projekte/ClaudeDesktop"
CARGO_TARGET_DIR=/tmp/claude-desktop-target nix-shell --run "npx tauri dev"
# Produktion
CARGO_TARGET_DIR=/tmp/claude-desktop-target nix-shell --run "npx tauri build -- --bundles appimage"
# CI: Commit mit [appimage] → Forgejo Runner baut + uploaded
```