claudedesk 4.4.0 → 4.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/ci.yml +2 -33
- package/CHANGELOG.md +16 -2
- package/CLAUDE.md +0 -3
- package/README.md +161 -224
- package/dist/main/quota-service.js +35 -6
- package/dist/renderer/assets/{index-BNeYLqV4.css → index-DTGEErZK.css} +1 -1
- package/dist/renderer/index.html +2 -2
- package/docs/create-session.png +0 -0
- package/docs/fuel-status-popup.png +0 -0
- package/docs/fuel-status-side-panel.png +0 -0
- package/docs/git-panel.png +0 -0
- package/docs/main-screen.png +0 -0
- package/docs/repo-index.md +2 -2
- package/docs/settings-workspace.png +0 -0
- package/docs/work-space-layout.png +0 -0
- package/package.json +1 -1
- package/src/main/quota-service.test.ts +133 -0
- package/src/main/quota-service.ts +40 -7
- package/src/renderer/styles/globals.css +56 -6
- package/docs/AGENT_TEAMS.md +0 -166
- package/docs/QUICKSTART_AGENT_TEAMS.md +0 -69
- package/docs/REPO_ATLAS_EVALUATION.md +0 -228
- package/docs/atlas-ui-prototype.html +0 -1377
- package/docs/git-integration-implementation-tasks.md +0 -974
- package/docs/git-integration-product-spec.md +0 -916
- package/docs/git-integration-ui-spec.md +0 -1464
- /package/dist/renderer/assets/{index-D5O5Ljoo.js → index-B5DrEDSJ.js} +0 -0
package/.github/workflows/ci.yml
CHANGED
|
@@ -45,39 +45,8 @@ jobs:
|
|
|
45
45
|
path: coverage/
|
|
46
46
|
if-no-files-found: warn
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
needs: build
|
|
51
|
-
runs-on: ubuntu-latest
|
|
52
|
-
|
|
53
|
-
steps:
|
|
54
|
-
- uses: actions/checkout@v4
|
|
55
|
-
|
|
56
|
-
- name: Setup Node.js
|
|
57
|
-
uses: actions/setup-node@v4
|
|
58
|
-
with:
|
|
59
|
-
node-version: '20.x'
|
|
60
|
-
cache: 'npm'
|
|
61
|
-
|
|
62
|
-
- name: Install dependencies
|
|
63
|
-
run: npm ci
|
|
64
|
-
|
|
65
|
-
- name: Install Playwright
|
|
66
|
-
run: npx playwright install --with-deps chromium
|
|
67
|
-
|
|
68
|
-
- name: Build app
|
|
69
|
-
run: npm run build && npm run build:electron
|
|
70
|
-
|
|
71
|
-
- name: Run E2E tests
|
|
72
|
-
run: xvfb-run --auto-servernum npm run test:e2e
|
|
73
|
-
|
|
74
|
-
- name: Upload Playwright report
|
|
75
|
-
if: failure()
|
|
76
|
-
uses: actions/upload-artifact@v4
|
|
77
|
-
with:
|
|
78
|
-
name: playwright-report
|
|
79
|
-
path: playwright-report/
|
|
80
|
-
if-no-files-found: warn
|
|
48
|
+
# E2E tests require Electron + node-pty native module which can't launch in CI.
|
|
49
|
+
# Run locally with: npm run test:e2e
|
|
81
50
|
|
|
82
51
|
package:
|
|
83
52
|
name: Package Electron App
|
package/CHANGELOG.md
CHANGED
|
@@ -15,6 +15,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
15
15
|
|
|
16
16
|
---
|
|
17
17
|
|
|
18
|
+
## [4.4.1] - 2026-02-13
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
- **Burn rate calculation** — Now filters out samples from before quota resets; negative rates clamped to 0
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
- **Quota service tests** — Unit tests for `quota-service.ts` covering burn rate calculation, quota reset handling, and edge cases
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
- **Documentation cleanup** — Removed deleted documentation files (agent teams guides, git integration specs, atlas evaluation, atlas UI prototype) and cleaned up dead references in CLAUDE.md and README.md
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
18
31
|
## [4.3.1] - 2026-02-10
|
|
19
32
|
|
|
20
33
|
### Fixed
|
|
@@ -22,7 +35,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
22
35
|
- Updated `CLAUDE.md` to reflect simplified shell setup (cmd.exe on Windows, user shell on Unix)
|
|
23
36
|
- Updated `SESSION_POOLING_IMPLEMENTATION.md` to remove directory locking references
|
|
24
37
|
- Updated `CHANGELOG.md` to accurately describe current shell implementation
|
|
25
|
-
- Updated `docs/repo-index.md`
|
|
38
|
+
- Updated `docs/repo-index.md`
|
|
26
39
|
|
|
27
40
|
### Changed
|
|
28
41
|
- **Shell implementation** - Simplified to use cmd.exe on Windows and user's default shell on Unix
|
|
@@ -190,7 +203,8 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on suggesting changes and
|
|
|
190
203
|
|
|
191
204
|
---
|
|
192
205
|
|
|
193
|
-
[Unreleased]: https://github.com/carloluisito/claudedesk/compare/v4.
|
|
206
|
+
[Unreleased]: https://github.com/carloluisito/claudedesk/compare/v4.4.1...HEAD
|
|
207
|
+
[4.4.1]: https://github.com/carloluisito/claudedesk/compare/v4.3.1...v4.4.1
|
|
194
208
|
[4.3.1]: https://github.com/carloluisito/claudedesk/compare/v4.3.0...v4.3.1
|
|
195
209
|
[4.3.0]: https://github.com/carloluisito/claudedesk/compare/v4.1.1...v4.3.0
|
|
196
210
|
[4.1.1]: https://github.com/carloluisito/claudedesk/compare/v4.1.0...v4.1.1
|
package/CLAUDE.md
CHANGED
|
@@ -122,7 +122,4 @@ Font: JetBrains Mono. Monospace everywhere.
|
|
|
122
122
|
## Docs
|
|
123
123
|
|
|
124
124
|
- [Repo Index](docs/repo-index.md) — detailed domain-to-file mapping
|
|
125
|
-
- [Agent Teams Guide](docs/AGENT_TEAMS.md)
|
|
126
|
-
- [Quick Start: Agent Teams](docs/QUICKSTART_AGENT_TEAMS.md)
|
|
127
125
|
- [Contributing](CONTRIBUTING.md)
|
|
128
|
-
- [Repository Atlas Evaluation](docs/REPO_ATLAS_EVALUATION.md)
|
package/README.md
CHANGED
|
@@ -2,132 +2,153 @@
|
|
|
2
2
|
|
|
3
3
|

|
|
4
4
|

|
|
5
|
-

|
|
6
|
+

|
|
6
7
|
|
|
7
8
|
> A powerful desktop terminal for Claude Code CLI with multi-session management, split-view layouts, and advanced productivity features.
|
|
8
9
|
|
|
9
|
-
**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.
|
|
10
|
+
**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.
|
|
11
|
+
|
|
12
|
+

|
|
10
13
|
|
|
11
14
|
---
|
|
12
15
|
|
|
13
|
-
##
|
|
16
|
+
## Screenshots
|
|
17
|
+
|
|
18
|
+
<table>
|
|
19
|
+
<tr>
|
|
20
|
+
<td width="50%">
|
|
21
|
+
|
|
22
|
+
**Create Session** — Workspace-aware session creation with directory search and permission modes.
|
|
23
|
+
|
|
24
|
+

|
|
25
|
+
|
|
26
|
+
</td>
|
|
27
|
+
<td width="50%">
|
|
28
|
+
|
|
29
|
+
**Git Integration** — Built-in git panel with file staging, inline diffs, AI commit messages, and history.
|
|
30
|
+
|
|
31
|
+

|
|
32
|
+
|
|
33
|
+
</td>
|
|
34
|
+
</tr>
|
|
35
|
+
<tr>
|
|
36
|
+
<td width="50%">
|
|
37
|
+
|
|
38
|
+
**Workspace Layouts** — Choose from preset layouts or build a custom grid with up to 4 panes.
|
|
39
|
+
|
|
40
|
+

|
|
41
|
+
|
|
42
|
+
</td>
|
|
43
|
+
<td width="50%">
|
|
44
|
+
|
|
45
|
+
**Settings & Workspaces** — Configure workspaces, templates, drag-and-drop, atlas, and more.
|
|
46
|
+
|
|
47
|
+

|
|
48
|
+
|
|
49
|
+
</td>
|
|
50
|
+
</tr>
|
|
51
|
+
<tr>
|
|
52
|
+
<td width="50%">
|
|
53
|
+
|
|
54
|
+
**Fuel Status Popup** — Quick glance at API quota from the toolbar.
|
|
55
|
+
|
|
56
|
+

|
|
57
|
+
|
|
58
|
+
</td>
|
|
59
|
+
<td width="50%">
|
|
14
60
|
|
|
15
|
-
|
|
16
|
-
<!-- Suggested screenshots:
|
|
17
|
-
1. Main interface showing multi-session tabs
|
|
18
|
-
2. Split-view with multiple terminal panes
|
|
19
|
-
3. Command palette with prompt templates
|
|
20
|
-
4. Settings dialog with quota monitoring
|
|
21
|
-
-->
|
|
61
|
+
**Fuel Status Panel** — Detailed 5-hour and 7-day reserves with burn rate tracking.
|
|
22
62
|
|
|
23
|
-
|
|
63
|
+

|
|
64
|
+
|
|
65
|
+
</td>
|
|
66
|
+
</tr>
|
|
67
|
+
</table>
|
|
24
68
|
|
|
25
69
|
---
|
|
26
70
|
|
|
27
|
-
##
|
|
71
|
+
## Features
|
|
28
72
|
|
|
29
73
|
### Multi-Session Management
|
|
30
74
|
- **Multiple Claude sessions** in tabbed interface
|
|
31
|
-
- **Session persistence**
|
|
75
|
+
- **Session persistence** — resume sessions after app restart
|
|
32
76
|
- **Named sessions** for better organization
|
|
33
|
-
- **Session history**
|
|
34
|
-
- **Checkpoints**
|
|
77
|
+
- **Session history** — search and export conversation logs
|
|
78
|
+
- **Checkpoints** — save and restore session states
|
|
35
79
|
|
|
36
80
|
### Split-View Terminal
|
|
37
81
|
- **Split screen** support with up to 4 terminal panes
|
|
38
|
-
- **Flexible layouts**
|
|
82
|
+
- **Flexible layouts** — horizontal, vertical, and grid splits
|
|
83
|
+
- **Layout picker** — preset layouts (single, 2-column, 3-column, 2x2) or custom grids
|
|
39
84
|
- **Drag-and-drop** session assignment to panes
|
|
40
|
-
- **Independent sessions** per pane
|
|
41
85
|
|
|
42
|
-
###
|
|
43
|
-
- **
|
|
44
|
-
- **
|
|
45
|
-
- **
|
|
46
|
-
- **
|
|
86
|
+
### Git Integration
|
|
87
|
+
- **Full git workflow** — status, staging, branches, commit, push/pull/fetch, diff, log
|
|
88
|
+
- **AI commit messages** — heuristic-based conventional commits generation
|
|
89
|
+
- **Real-time file watching** — status updates automatically as you work
|
|
90
|
+
- **Keyboard shortcut** `Ctrl+Shift+G` and staged count badge in toolbar
|
|
47
91
|
|
|
48
92
|
### Prompt Templates & Command Palette
|
|
49
93
|
- **Keyboard shortcut** (`Ctrl/Cmd+Shift+P`) to launch command palette
|
|
50
94
|
- **Prompt template library** for common tasks
|
|
51
|
-
- **Variable substitution**
|
|
52
|
-
- **Custom templates**
|
|
95
|
+
- **Variable substitution** — `{{clipboard}}`, `{{currentDir}}`, `{{selection}}`, etc.
|
|
96
|
+
- **Custom templates** — create and edit your own
|
|
53
97
|
- **Fuzzy search** for quick template access
|
|
54
98
|
|
|
55
99
|
### API Quota Monitoring
|
|
56
|
-
- **Real-time quota display**
|
|
57
|
-
- **Burn rate tracking**
|
|
58
|
-
- **Budget alerts**
|
|
59
|
-
- **
|
|
60
|
-
|
|
61
|
-
### Terminal Features
|
|
62
|
-
- **Full xterm.js terminal** with rich text formatting
|
|
63
|
-
- **Clickable links** - URLs automatically detected
|
|
64
|
-
- **Copy/paste support** with keyboard shortcuts
|
|
65
|
-
- **Search** within terminal output
|
|
66
|
-
- **Custom theme** - Tokyo Night inspired dark theme
|
|
67
|
-
- **Monospace font** - JetBrains Mono for optimal readability
|
|
100
|
+
- **Real-time quota display** — see your Claude API usage at a glance
|
|
101
|
+
- **Burn rate tracking** — monitor spending over time
|
|
102
|
+
- **Budget alerts** — get notified when approaching limits
|
|
103
|
+
- **Fuel gauge** in toolbar with detailed popup and side panel
|
|
68
104
|
|
|
69
105
|
### Agent Teams
|
|
70
|
-
- **Automatic team detection**
|
|
71
|
-
- **Team Panel**
|
|
72
|
-
- **Task Board**
|
|
73
|
-
- **Message Stream**
|
|
74
|
-
- **Agent Graph**
|
|
75
|
-
- **Auto-layout**
|
|
76
|
-
- **Lifecycle management** - stale teams auto-cleaned on startup; teams removed when sessions end
|
|
77
|
-
- See [Agent Teams Guide](docs/AGENT_TEAMS.md) and [Quick Start](docs/QUICKSTART_AGENT_TEAMS.md)
|
|
78
|
-
|
|
79
|
-
### Repository Atlas Engine
|
|
80
|
-
- **Automated codebase mapping** - scans files, analyzes imports, infers domain boundaries
|
|
81
|
-
- **CLAUDE.md generation** - creates architectural atlas for AI tools to navigate the repo
|
|
82
|
-
- **Domain-to-file index** - generates `docs/repo-index.md` with per-domain file tables
|
|
83
|
-
- **Inline entrypoint tags** - suggests `@atlas-entrypoint` comments for key files
|
|
84
|
-
- **Preview and approve** - review generated content before writing to disk
|
|
85
|
-
- **Configurable settings** - domain sensitivity, max inline tags, exclude patterns
|
|
86
|
-
|
|
87
|
-
### Session Control
|
|
88
|
-
- **Permission modes** - control Claude's access level per session
|
|
89
|
-
- **Ctrl+C handling** - graceful session termination with confirmation
|
|
90
|
-
- **Session export** - save conversations to markdown
|
|
91
|
-
- **Session search** - find past conversations
|
|
92
|
-
|
|
93
|
-
---
|
|
106
|
+
- **Automatic team detection** — monitors `~/.claude/teams/` for agent team activity
|
|
107
|
+
- **Team Panel** — sidebar showing team hierarchy, members, and status
|
|
108
|
+
- **Task Board** — Kanban-style visualization with per-team tasks
|
|
109
|
+
- **Message Stream** — real-time inter-agent communication feed
|
|
110
|
+
- **Agent Graph** — interactive node-based relationship visualization
|
|
111
|
+
- **Auto-layout** — automatically arranges panes when teammates join
|
|
94
112
|
|
|
95
|
-
## 🚀 Why ClaudeDesk?
|
|
96
113
|
|
|
97
|
-
|
|
114
|
+
### Repository Atlas Engine
|
|
115
|
+
- **Automated codebase mapping** — scans files, analyzes imports, infers domain boundaries
|
|
116
|
+
- **CLAUDE.md generation** — creates architectural atlas for AI tools to navigate the repo
|
|
117
|
+
- **Domain-to-file index** — generates `docs/repo-index.md` with per-domain file tables
|
|
118
|
+
- **Preview and approve** — review generated content before writing to disk
|
|
98
119
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
120
|
+
### Terminal Features
|
|
121
|
+
- **Full xterm.js terminal** with rich text formatting
|
|
122
|
+
- **Clickable links** — URLs automatically detected
|
|
123
|
+
- **Copy/paste support** with keyboard shortcuts
|
|
124
|
+
- **Tokyo Night dark theme** with JetBrains Mono font
|
|
125
|
+
- **Drag-and-drop** file insertion into terminal
|
|
105
126
|
|
|
106
127
|
---
|
|
107
128
|
|
|
108
|
-
##
|
|
129
|
+
## Prerequisites
|
|
109
130
|
|
|
110
131
|
Before installing ClaudeDesk, ensure you have:
|
|
111
132
|
|
|
112
|
-
1. **Node.js
|
|
113
|
-
2. **Claude Code CLI**
|
|
133
|
+
1. **Node.js 20+** — [Download here](https://nodejs.org/)
|
|
134
|
+
2. **Claude Code CLI** — Install via:
|
|
114
135
|
```bash
|
|
115
136
|
npm install -g @anthropic-ai/claude-code
|
|
116
137
|
```
|
|
117
138
|
Or follow the [official installation guide](https://claude.ai/claude-code)
|
|
118
|
-
3. **Claude API credentials**
|
|
139
|
+
3. **Claude API credentials** — ClaudeDesk reads from `~/.claude/.credentials.json` (set up by Claude CLI)
|
|
119
140
|
|
|
120
141
|
---
|
|
121
142
|
|
|
122
|
-
##
|
|
143
|
+
## Installation
|
|
123
144
|
|
|
124
145
|
### Option 1: Download Pre-built Binary (Recommended)
|
|
125
146
|
|
|
126
|
-
|
|
147
|
+
Download the latest release for your platform from the [Releases](https://github.com/carloluisito/claudedesk/releases) page.
|
|
127
148
|
|
|
128
|
-
- **Windows**:
|
|
129
|
-
- **macOS**:
|
|
130
|
-
- **Linux**:
|
|
149
|
+
- **Windows**: `.exe` installer
|
|
150
|
+
- **macOS**: `.dmg`
|
|
151
|
+
- **Linux**: `.AppImage` or `.deb`
|
|
131
152
|
|
|
132
153
|
### Option 2: Build from Source
|
|
133
154
|
|
|
@@ -140,7 +161,7 @@ cd claudedesk
|
|
|
140
161
|
npm install
|
|
141
162
|
|
|
142
163
|
# Run in development mode
|
|
143
|
-
npm run electron:
|
|
164
|
+
npm run electron:watch
|
|
144
165
|
|
|
145
166
|
# Or build for production
|
|
146
167
|
npm run package
|
|
@@ -157,180 +178,111 @@ Built packages will be in the `release/` directory.
|
|
|
157
178
|
|
|
158
179
|
---
|
|
159
180
|
|
|
160
|
-
##
|
|
161
|
-
|
|
162
|
-
1. **Launch ClaudeDesk** from your applications menu or run `npm run electron:dev`
|
|
163
|
-
|
|
164
|
-
2. **Create your first session:**
|
|
165
|
-
- Click "New Session" or press `Ctrl/Cmd+N`
|
|
166
|
-
- Name your session (e.g., "My Project")
|
|
167
|
-
- Select working directory
|
|
168
|
-
- Choose permission mode (Ask, Auto-approve, or Auto-deny)
|
|
169
|
-
|
|
170
|
-
3. **Start using Claude:**
|
|
171
|
-
- Type your prompt in the terminal
|
|
172
|
-
- Claude responds just like the CLI
|
|
173
|
-
- Your session is automatically saved
|
|
181
|
+
## Quick Start
|
|
174
182
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
5. **Enable split view:**
|
|
181
|
-
- Click the split view icon in the header
|
|
182
|
-
- Create multiple panes for parallel work
|
|
183
|
-
- Drag sessions between panes
|
|
183
|
+
1. **Launch ClaudeDesk** from your applications menu or run `npm run electron:watch`
|
|
184
|
+
2. **Create your first session** — click "+" or press `Ctrl+T`, pick a workspace and directory
|
|
185
|
+
3. **Start using Claude** — type your prompt in the terminal
|
|
186
|
+
4. **Try the command palette** — press `Ctrl+Shift+P` to browse prompt templates
|
|
187
|
+
5. **Enable split view** — use the layout picker or click split controls in the pane header
|
|
184
188
|
|
|
185
189
|
---
|
|
186
190
|
|
|
187
|
-
##
|
|
191
|
+
## Keyboard Shortcuts
|
|
188
192
|
|
|
189
193
|
| Shortcut | Action |
|
|
190
194
|
|----------|--------|
|
|
191
|
-
| `Ctrl
|
|
192
|
-
| `Ctrl
|
|
193
|
-
| `Ctrl
|
|
194
|
-
| `Ctrl
|
|
195
|
-
| `Ctrl
|
|
196
|
-
| `Ctrl
|
|
197
|
-
| `Ctrl
|
|
195
|
+
| `Ctrl+T` | New Session |
|
|
196
|
+
| `Ctrl+W` | Close Current Session |
|
|
197
|
+
| `Ctrl+Tab` | Next Session Tab |
|
|
198
|
+
| `Ctrl+Shift+Tab` | Previous Session Tab |
|
|
199
|
+
| `Ctrl+Shift+P` | Open Command Palette |
|
|
200
|
+
| `Ctrl+Shift+G` | Open Git Panel |
|
|
201
|
+
| `Ctrl+,` | Open Settings |
|
|
198
202
|
| `Ctrl+C` | Session Termination Dialog |
|
|
199
203
|
|
|
200
204
|
---
|
|
201
205
|
|
|
202
|
-
##
|
|
203
|
-
|
|
204
|
-
ClaudeDesk is designed with privacy in mind:
|
|
205
|
-
|
|
206
|
-
- **Local-first**: All session data stored on your machine
|
|
207
|
-
- **No telemetry**: We don't collect or transmit usage data
|
|
208
|
-
- **No third-party services**: Only communicates with Anthropic's official API
|
|
209
|
-
- **Credential security**: Reads Claude CLI credentials locally, never logs or stores them
|
|
210
|
-
- **HTTPS only**: All API calls use secure connections
|
|
211
|
-
|
|
212
|
-
### Credentials Handling
|
|
206
|
+
## Tech Stack
|
|
213
207
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
- ✅ Transmitted over HTTPS
|
|
224
|
-
|
|
225
|
-
You can disable quota monitoring in Settings if you prefer.
|
|
226
|
-
|
|
227
|
-
For more details, see [SECURITY.md](SECURITY.md).
|
|
208
|
+
| Layer | Technology |
|
|
209
|
+
|-------|-----------|
|
|
210
|
+
| Framework | Electron 28 |
|
|
211
|
+
| Frontend | React 18 + TypeScript |
|
|
212
|
+
| Terminal | xterm.js + node-pty |
|
|
213
|
+
| Styling | Tailwind CSS (Tokyo Night theme) |
|
|
214
|
+
| Graph | reactflow |
|
|
215
|
+
| Build | Vite + electron-builder |
|
|
216
|
+
| Testing | Vitest 4 (233 tests) + Playwright |
|
|
228
217
|
|
|
229
218
|
---
|
|
230
219
|
|
|
231
|
-
##
|
|
220
|
+
## Project Structure
|
|
232
221
|
|
|
233
222
|
```
|
|
234
223
|
claudedesk/
|
|
235
224
|
├── src/
|
|
236
|
-
│ ├── main/ # Electron main process
|
|
237
|
-
│
|
|
238
|
-
│
|
|
239
|
-
│
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
│ ├── preload/ # Context bridge (auto-generated from contract)
|
|
245
|
-
│ │ └── index.ts
|
|
246
|
-
│ ├── renderer/ # React app (UI)
|
|
247
|
-
│ │ ├── App.tsx
|
|
248
|
-
│ │ ├── components/
|
|
249
|
-
│ │ ├── hooks/
|
|
250
|
-
│ │ └── utils/
|
|
251
|
-
│ └── shared/ # Shared types & IPC contract
|
|
252
|
-
│ ├── ipc-contract.ts # Single source of truth for all IPC methods
|
|
253
|
-
│ └── ipc-types.ts # Data type definitions
|
|
254
|
-
├── resources/ # Icons and assets
|
|
255
|
-
├── dist/ # Build output
|
|
256
|
-
└── release/ # Packaged apps
|
|
225
|
+
│ ├── main/ # Electron main process (9 managers)
|
|
226
|
+
│ ├── preload/ # Context bridge (auto-derived from contract)
|
|
227
|
+
│ ├── renderer/ # React app (hooks, components, utils)
|
|
228
|
+
│ └── shared/ # IPC contract, types, shared utilities
|
|
229
|
+
├── test/ # Test setup and helpers
|
|
230
|
+
├── e2e/ # Playwright E2E tests
|
|
231
|
+
├── docs/ # Documentation and screenshots
|
|
232
|
+
└── .github/workflows/ # CI pipeline
|
|
257
233
|
```
|
|
258
234
|
|
|
259
|
-
|
|
235
|
+
See [docs/repo-index.md](docs/repo-index.md) for a detailed domain-to-file mapping.
|
|
260
236
|
|
|
261
|
-
|
|
237
|
+
---
|
|
262
238
|
|
|
263
|
-
|
|
239
|
+
## Development
|
|
264
240
|
|
|
265
241
|
```bash
|
|
266
|
-
# Install dependencies
|
|
267
|
-
npm
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
npm run
|
|
271
|
-
|
|
272
|
-
# Run tests (when available)
|
|
273
|
-
npm test
|
|
274
|
-
|
|
275
|
-
# Lint code
|
|
276
|
-
npm run lint
|
|
242
|
+
npm install # Install dependencies
|
|
243
|
+
npm run electron:watch # Dev mode with hot reload
|
|
244
|
+
npm test # Run all 233 tests
|
|
245
|
+
npm run test:watch # Watch mode
|
|
246
|
+
npm run test:e2e # E2E tests (local only)
|
|
247
|
+
npm run test:coverage # Coverage report
|
|
277
248
|
```
|
|
278
249
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
- **Framework**: Electron 28
|
|
282
|
-
- **Frontend**: React 18 + TypeScript
|
|
283
|
-
- **Terminal**: xterm.js with fit and web-links addons
|
|
284
|
-
- **PTY**: node-pty for cross-platform shell spawning
|
|
285
|
-
- **Styling**: Tailwind CSS (Tokyo Night theme)
|
|
286
|
-
- **Build**: Vite + electron-builder
|
|
287
|
-
|
|
288
|
-
### Contributing
|
|
289
|
-
|
|
290
|
-
We welcome contributions! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on:
|
|
291
|
-
- Development setup
|
|
292
|
-
- Code style and standards
|
|
293
|
-
- How to submit pull requests
|
|
294
|
-
- Issue reporting
|
|
250
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for development guidelines.
|
|
295
251
|
|
|
296
252
|
---
|
|
297
253
|
|
|
298
|
-
##
|
|
299
|
-
|
|
300
|
-
### Development Dependency Vulnerabilities
|
|
301
|
-
|
|
302
|
-
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](SECURITY.md#known-issues) for details.
|
|
254
|
+
## Privacy & Security
|
|
303
255
|
|
|
304
|
-
|
|
256
|
+
- **Local-first** — all session data stored on your machine
|
|
257
|
+
- **No telemetry** — no usage data collected or transmitted
|
|
258
|
+
- **No third-party services** — only communicates with Anthropic's official API
|
|
259
|
+
- **Credential security** — reads Claude CLI credentials locally, never logs or stores them
|
|
305
260
|
|
|
306
|
-
|
|
307
|
-
- **macOS**: Requires macOS 10.13+ (High Sierra or later).
|
|
308
|
-
- **Linux**: Tested on Ubuntu 20.04+. May require `libxtst6` and `libnss3` packages.
|
|
261
|
+
For more details, see [SECURITY.md](SECURITY.md).
|
|
309
262
|
|
|
310
263
|
---
|
|
311
264
|
|
|
312
|
-
##
|
|
265
|
+
## Known Issues
|
|
313
266
|
|
|
314
|
-
|
|
267
|
+
- **Windows**: `cmd.exe` is used as the default shell. Ensure `claude` is in your PATH.
|
|
268
|
+
- **macOS**: Requires macOS 10.13+ (High Sierra or later).
|
|
269
|
+
- **Linux**: May require `libxtst6` and `libnss3` packages.
|
|
315
270
|
|
|
316
271
|
---
|
|
317
272
|
|
|
318
|
-
##
|
|
319
|
-
|
|
320
|
-
Contributions are welcome! Here's how you can help:
|
|
273
|
+
## Contributing
|
|
321
274
|
|
|
322
|
-
1. **Report bugs**
|
|
323
|
-
2. **Suggest features**
|
|
324
|
-
3. **Submit PRs**
|
|
325
|
-
4. **Improve docs** - Help make the documentation better
|
|
275
|
+
1. **Report bugs** — [Open an issue](https://github.com/carloluisito/claudedesk/issues/new?template=bug_report.md)
|
|
276
|
+
2. **Suggest features** — [Request a feature](https://github.com/carloluisito/claudedesk/issues/new?template=feature_request.md)
|
|
277
|
+
3. **Submit PRs** — See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines
|
|
326
278
|
|
|
327
279
|
Please read our [Code of Conduct](CODE_OF_CONDUCT.md) before contributing.
|
|
328
280
|
|
|
329
281
|
---
|
|
330
282
|
|
|
331
|
-
##
|
|
283
|
+
## License
|
|
332
284
|
|
|
333
|
-
This project is licensed under the **MIT License**
|
|
285
|
+
This project is licensed under the **MIT License** — see the [LICENSE](LICENSE) file for details.
|
|
334
286
|
|
|
335
287
|
```
|
|
336
288
|
Copyright (c) 2026 Carlo Luisito Adap
|
|
@@ -338,16 +290,7 @@ Copyright (c) 2026 Carlo Luisito Adap
|
|
|
338
290
|
|
|
339
291
|
---
|
|
340
292
|
|
|
341
|
-
##
|
|
342
|
-
|
|
343
|
-
- **Anthropic** for creating Claude and Claude Code CLI
|
|
344
|
-
- **xterm.js** for the excellent terminal emulation library
|
|
345
|
-
- **Electron** for making desktop apps easy
|
|
346
|
-
- **node-pty** for cross-platform PTY support
|
|
347
|
-
|
|
348
|
-
---
|
|
349
|
-
|
|
350
|
-
## ⚠️ Disclaimer
|
|
293
|
+
## Disclaimer
|
|
351
294
|
|
|
352
295
|
**ClaudeDesk is an unofficial community project and is not endorsed, affiliated with, or supported by Anthropic.**
|
|
353
296
|
|
|
@@ -355,7 +298,7 @@ This is an independent wrapper around the Claude Code CLI. For official support,
|
|
|
355
298
|
|
|
356
299
|
---
|
|
357
300
|
|
|
358
|
-
##
|
|
301
|
+
## Support
|
|
359
302
|
|
|
360
303
|
- **Issues**: [GitHub Issues](https://github.com/carloluisito/claudedesk/issues)
|
|
361
304
|
- **Security**: See [SECURITY.md](SECURITY.md) for reporting vulnerabilities
|
|
@@ -363,12 +306,6 @@ This is an independent wrapper around the Claude Code CLI. For official support,
|
|
|
363
306
|
|
|
364
307
|
---
|
|
365
308
|
|
|
366
|
-
## 🌟 Star this repo!
|
|
367
|
-
|
|
368
|
-
If you find ClaudeDesk useful, please consider starring the repository to help others discover it!
|
|
369
|
-
|
|
370
309
|
[](https://github.com/carloluisito/claudedesk/stargazers)
|
|
371
310
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
**Made with ❤️ by [Carlo Luisito Adap](https://github.com/carloluisito)**
|
|
311
|
+
**Made with love by [Carlo Luisito Adap](https://github.com/carloluisito)**
|