A minimal Electron desktop application wrapping Claude Code CLI
npm install claudedesk> A powerful desktop terminal for Claude Code CLI with multi-session management, split-view layouts, and advanced productivity features.
ClaudeDesk is an Electron-based desktop application that wraps the Claude Code CLI in a feature-rich terminal interface. Manage multiple Claude sessions simultaneously, organize your workspace with split views, use prompt templates, and monitor your API usageβall in one beautiful desktop app.
---
_Screenshots coming soon! For now, see Features for a detailed overview._
---
Ctrl/Cmd+Shift+P) to launch command palette{{clipboard}}, {{currentDir}}, {{selection}}, etc.---
While Claude Code CLI is powerful, managing multiple sessions, switching contexts, and organizing prompts becomes unwieldy in a terminal. ClaudeDesk solves this by adding:
β
Multi-session management - Run multiple Claude conversations in tabs
β
Directory locking - Each session stays in its project directory
β
Prompt library - Reusable templates for common tasks
β
Quota monitoring - See your API usage at a glance
β
Split view - Work on multiple projects side-by-side
β
Persistent state - Never lose your session history
---
Before installing ClaudeDesk, ensure you have:
1. Node.js 18+ - Download here
2. Claude Code CLI - Install via:
``bash`
npm install -g @anthropic-ai/claude-code
~/.claude/.credentials.json
Or follow the official installation guide
3. Claude API credentials - ClaudeDesk reads from (set up by Claude CLI)
---
Coming soon! Download the latest release for your platform from the Releases page.
- Windows: ClaudeDesk-Setup-1.0.0.exeClaudeDesk-1.0.0.dmg
- macOS: ClaudeDesk-1.0.0.AppImage
- Linux: or .deb
`bashClone the repository
git clone https://github.com/carloluisito/claudedesk.git
cd claudedesk
Build for specific platforms:
`bash
npm run package:win # Windows
npm run package:mac # macOS
npm run package:linux # Linux
`Built packages will be in the
release/ directory.---
π― Quick Start
1. Launch ClaudeDesk from your applications menu or run
npm run electron:dev2. Create your first session:
- Click "New Session" or press
Ctrl/Cmd+N
- Name your session (e.g., "My Project")
- Select working directory
- Choose permission mode (Ask, Auto-approve, or Auto-deny)3. Start using Claude:
- Type your prompt in the terminal
- Claude responds just like the CLI
- Your session is automatically saved
4. Try the command palette:
- Press
Ctrl/Cmd+Shift+P
- Browse or search prompt templates
- Select a template to insert it5. Enable split view:
- Click the split view icon in the header
- Create multiple panes for parallel work
- Drag sessions between panes
---
π¨ Key Keyboard Shortcuts
| Shortcut | Action |
|----------|--------|
|
Ctrl/Cmd+N | New Session |
| Ctrl/Cmd+W | Close Current Session |
| Ctrl/Cmd+Tab | Next Session Tab |
| Ctrl/Cmd+Shift+Tab | Previous Session Tab |
| Ctrl/Cmd+Shift+P | Open Command Palette |
| Ctrl/Cmd+F | Search in Terminal |
| Ctrl/Cmd+, | Open Settings |
| Ctrl+C | Session Termination Dialog |---
π Privacy & Security
ClaudeDesk is designed with privacy in mind:
- Local-first: All session data stored on your machine
- No telemetry: We don't collect or transmit usage data
- No third-party services: Only communicates with Anthropic's official API
- Credential security: Reads Claude CLI credentials locally, never logs or stores them
- HTTPS only: All API calls use secure connections
$3
ClaudeDesk reads Claude Code CLI credentials from
~/.claude/.credentials.json to:
- Display API quota usage
- Monitor burn rate
- Provide session management featuresYour credentials are:
- β
Read locally only
- β
Never logged or stored by ClaudeDesk
- β
Only sent to Anthropic's official API endpoints (api.anthropic.com)
- β
Transmitted over HTTPS
You can disable quota monitoring in Settings if you prefer.
For more details, see SECURITY.md.
---
ποΈ Project Structure
`
claudedesk/
βββ src/
β βββ main/ # Electron main process
β β βββ index.ts # App entry point
β β βββ cli-manager.ts # PTY spawning & Claude CLI lifecycle
β β βββ session-manager.ts
β β βββ ipc-handlers.ts # Handler implementations (uses IPCRegistry)
β β βββ ipc-registry.ts # Typed handler registration + auto-cleanup
β β βββ ipc-emitter.ts # Type-safe mainβrenderer push events
β β βββ quota-service.ts
β βββ preload/ # Context bridge (auto-generated from contract)
β β βββ index.ts
β βββ renderer/ # React app (UI)
β β βββ App.tsx
β β βββ components/
β β βββ hooks/
β β βββ utils/
β βββ shared/ # Shared types & IPC contract
β βββ ipc-contract.ts # Single source of truth for all IPC methods
β βββ ipc-types.ts # Data type definitions
βββ resources/ # Icons and assets
βββ dist/ # Build output
βββ release/ # Packaged apps
`---
π οΈ Development
$3
`bash
Install dependencies
npm installRun in development mode (hot reload)
npm run electron:devRun tests (when available)
npm testLint code
npm run lint
`$3
- Framework: Electron 28
- Frontend: React 18 + TypeScript
- Terminal: xterm.js with fit and web-links addons
- PTY: node-pty for cross-platform shell spawning
- Styling: Tailwind CSS (Tokyo Night theme)
- Build: Vite + electron-builder
$3
We welcome contributions! Please see CONTRIBUTING.md for guidelines on:
- Development setup
- Code style and standards
- How to submit pull requests
- Issue reporting
---
π Known Issues
$3
Some development dependencies (electron, vite, electron-builder) have known security advisories. These affect development and build processes onlyβnot the distributed application. See SECURITY.md for details.
$3
- Windows: PowerShell is used as the default shell. Ensure
claude is in your PATH.
- macOS: Requires macOS 10.13+ (High Sierra or later).
- Linux: Tested on Ubuntu 20.04+. May require libxtst6 and libnss3 packages.---
π Changelog
See CHANGELOG.md for version history and release notes.
---
π€ Contributing
Contributions are welcome! Here's how you can help:
1. Report bugs - Open an issue
2. Suggest features - Request a feature
3. Submit PRs - See CONTRIBUTING.md for guidelines
4. Improve docs - Help make the documentation better
Please read our Code of Conduct before contributing.
---
π License
This project is licensed under the MIT License - see the LICENSE file for details.
`
Copyright (c) 2026 Carlo Luisito Adap
``---
- Anthropic for creating Claude and Claude Code CLI
- xterm.js for the excellent terminal emulation library
- Electron for making desktop apps easy
- node-pty for cross-platform PTY support
---
ClaudeDesk is an unofficial community project and is not endorsed, affiliated with, or supported by Anthropic.
This is an independent wrapper around the Claude Code CLI. For official support, refer to Anthropic's documentation.
---
- Issues: GitHub Issues
- Security: See SECURITY.md for reporting vulnerabilities
- Email: carlo.adap@hotmail.com
---
If you find ClaudeDesk useful, please consider starring the repository to help others discover it!

---
Made with β€οΈ by Carlo Luisito Adap