How yc-2018/claude-cli-ui works
claude-cli-UI is a local Electron desktop client for Claude CLI. Users select or create a project workspace, choose a conversation, compose a prompt with model/command options and attachments, then follow the streamed Claude response and tool activity. Projects and app state persist locally; CLI-backed conversations can refresh from Claude history and synchronize titles or branches. The main process also owns desktop notifications and settings, while update handling is a separate capability. The excerpts show the IPC boundary and selected persistence logic; some feature wiring is supported by the README rather than sampled implementation.
Main entry points: App.tsx App coordinator · main.ts Desktop main process · preload.ts IPC bridge · Composer.tsx Prompt composer
Components 17
Desktop interface
- App coordinator
src/App.tsx - Projects and settings
src/Sidebar.tsx - Prompt composer
src/Composer.tsx - Response timeline
src/ConversationView.tsx - Attachment preview
src/AttachmentPreview.tsx - Renderer entry
src/main.tsx
Electron runtime
- IPC bridge
electron/preload.ts - Desktop main process
electron/main.ts
Conversation state
- Project state
src/storage.ts - Claude history files
App updates
- Update manager
electron/update-manager.ts
Other components
- User
- Claude CLI
- Windows desktop
- Browser local storage
- Project workspace
- GitHub Releases
Connections 18
- User → App coordinator: uses
- Renderer entry → App coordinator: renders
- App coordinator → Projects and settings: renders
- App coordinator → Prompt composer: renders
- App coordinator → Response timeline: renders
- Prompt composer → Attachment preview: previews
- App coordinator → Project state: loads and saves
- Project state → Browser local storage: reads and writes
- App coordinator → IPC bridge: invokes IPC
- IPC bridge → Desktop main process: forwards requests
- Desktop main process → IPC bridge: sends events
- IPC bridge → App coordinator: delivers events
- Desktop main process → Claude CLI: runs commands
- Desktop main process → Claude history files: reads and updates
- Desktop main process → Project workspace: accesses files
- Desktop main process → Windows desktop: notifies and opens
- Desktop main process → Update manager: manages updates
- Update manager → GitHub Releases: checks and downloads