myrlin-workbook 0.8.4 → 0.8.5

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/README.md CHANGED
@@ -1,482 +1,519 @@
1
- <p align="center">
2
- <img src="docs/images/logo-animated.svg" alt="Myrlin's Workbook" width="250">
3
- </p>
4
- <h1 align="center">Myrlin's Workbook</h1>
5
- <p align="center">
6
- <a href="https://www.npmjs.com/package/myrlin-workbook"><img src="https://img.shields.io/npm/v/myrlin-workbook.svg?style=flat-square" alt="npm version"></a>
7
- <a href="https://www.npmjs.com/package/myrlin-workbook"><img src="https://img.shields.io/npm/dm/myrlin-workbook.svg?style=flat-square" alt="npm downloads"></a>
8
- <a href="LICENSE"><img src="https://img.shields.io/badge/License-AGPL--3.0-blue.svg?style=flat-square" alt="License: AGPL-3.0"></a>
9
- <a href="https://nodejs.org"><img src="https://img.shields.io/badge/Node.js-18%2B-green.svg?style=flat-square" alt="Node.js 18+"></a>
10
- </p>
11
-
12
- <p align="center">
13
- Open-source workspace manager for Claude Code - multi-pane embedded terminals, kanban task board with PR automation, cost tracking, conflict detection, per-project docs, session templates, model orchestration, 13 themes, <a href="#full-feature-list">and more</a>. Discovers every session you've ever run, organizes them into projects with focused work contexts. Runs in your browser, everything stays local.
14
- </p>
15
-
16
- <p align="center">
17
- <img src="docs/images/hero-demo.gif" alt="4-pane terminal grid with live sessions" width="800">
18
- </p>
19
-
20
- ---
21
-
22
- ## Quick Start
23
-
24
- ### Try it now
25
-
26
- ```bash
27
- npx myrlin-workbook # Opens browser, discovers your real Claude sessions
28
- npx myrlin-workbook --demo # Opens browser with sample data (no real sessions needed)
29
- ```
30
-
31
- ### Install from source
32
-
33
- ```bash
34
- git clone https://github.com/therealarthur/myrlin-workbook.git
35
- cd myrlin-workbook
36
- npm install
37
- npm run gui # Real sessions
38
- npm run gui:demo # Sample data
39
- ```
40
-
41
- ### Password
42
-
43
- On first launch, a random password is generated and saved to `~/.myrlin/config.json`. This password **persists across updates, reinstalls, and npx cache clears** — you'll always use the same password.
44
-
45
- To set your own:
46
-
47
- ```bash
48
- # Option 1: Edit the config file (recommended — persists forever)
49
- # ~/.myrlin/config.json → { "password": "your-password-here" }
50
-
51
- # Option 2: Environment variable (overrides config, per-session)
52
- CWM_PASSWORD=mypassword npx myrlin-workbook
53
- ```
54
-
55
- Password lookup order: `CWM_PASSWORD` env var > `~/.myrlin/config.json` > `./state/config.json` > auto-generate.
56
-
57
- ### Prerequisites
58
-
59
- - **Node.js 18+** ([download](https://nodejs.org))
60
- - **C++ Build Tools** (required by `node-pty` for real terminal emulation):
61
- - **Windows**: [Visual Studio Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) with "Desktop development with C++" workload
62
- - **macOS**: `xcode-select --install`
63
- - **Linux**: `sudo apt install build-essential python3`
64
-
65
- > **`npm install` fails?** You're missing the C++ build tools above. See [Troubleshooting](#troubleshooting).
66
-
67
- ### Run Modes
68
-
69
- | Command | Description |
70
- |---------|-------------|
71
- | `npx myrlin-workbook` | Web GUI via npx |
72
- | `npm run gui` | Web GUI (localhost:3456) |
73
- | `npm run gui:demo` | Web GUI with sample data |
74
- | `npm start` | TUI mode (terminal-only, blessed) |
75
- | `npm run demo` | TUI with sample data |
76
-
77
- ---
78
-
79
- ## Why
80
-
81
- I use Claude Code daily and had a growing list of pet peeves. Can't name sessions, so `/resume` is just picking from a list of IDs. No shift+enter for multiline. If you have a few sessions going at once, the terminal window juggling gets old fast. PC restarts and you have to reopen everything from scratch. No idea what you're spending.
82
-
83
- Got fed up and built something for it. Myrlin scans `~/.claude/projects/`, finds every session you've ever run, and you organize them into projects with embedded terminals, docs, and cost tracking. Everything runs locally, no cloud, no telemetry.
84
-
85
- ### Compared to other tools
86
-
87
- There are good tools in this space. I tried them. Here's where Myrlin fits:
88
-
89
- | Feature | Myrlin | [ClaudeCodeUI](https://github.com/siteboon/claudecodeui) | [Opcode](https://github.com/winfunc/opcode) | [Claude Squad](https://github.com/smtg-ai/claude-squad) |
90
- |---------|--------|-------------|--------|-------------|
91
- | Cost tracking | Yes | No | Yes | No |
92
- | Costs dashboard | Yes | No | Yes | No |
93
- | Session discovery | Yes | Yes | No | No |
94
- | Session manager overlay | Yes | No | No | No |
95
- | Project docs/kanban | Yes | No | No | No |
96
- | Themes | 13 (Catppuccin, Nord, Dracula, etc.) | No | No | No |
97
- | Session templates | Yes | No | No | No |
98
- | Conflict detection | Yes | No | No | No |
99
- | Kanban task board | Yes (5 columns + DnD) | No | No | Yes (basic) |
100
- | PR automation | Yes (AI descriptions + gh) | No | No | No |
101
- | Model orchestration | Yes (per stage) | No | No | No |
102
- | Embedded terminals | 4-pane grid | Single | No | No |
103
- | Tab grouping | Yes | No | No | No |
104
- | Windows native | Yes | Buggy | Yes (desktop) | No (tmux) |
105
- | TUI mode | Yes | No | No | No |
106
- | Multi-agent | Claude only | Claude+Cursor+Codex | Claude only | 5+ tools |
107
- | File explorer | No | Yes | No | No |
108
- | npx install | Yes | Yes | No | No |
109
- | Build step required | None | Vite | Tauri | None |
110
-
111
- **What those tools do better:** ClaudeCodeUI has a file explorer and multi-agent support. Opcode is a polished desktop app with 20k stars. Claude Squad supports 5+ AI tools. Myrlin is project-first with cost tracking and per-project docs. Different approach to the same problem.
112
-
113
- ---
114
-
115
- ## Features
116
-
117
- ### Cost Tracking
118
-
119
- Per-session and per-workspace cost breakdown. Parses Claude's JSONL usage data, applies model-aware pricing (Opus, Sonnet, Haiku), shows input/output/cache tokens. Know exactly what you're spending.
120
-
121
- ### Session Discovery
122
-
123
- - Scans `~/.claude/projects/` and finds all existing Claude sessions
124
- - Shows project directory, session count, size, last active
125
- - Auto-titles sessions from conversation content
126
- - Import sessions into workspaces with one click
127
-
128
- ### Projects, Focuses & Sessions
129
-
130
- ![Project dashboard with sessions grouped by focus](docs/images/hero-dashboard.png)
131
-
132
- Myrlin uses a 3-level organizational hierarchy:
133
-
134
- ```
135
- Category ("Side Projects", "Work") -- optional top-level grouping
136
- Project ("Myrlin Workbook") -- the codebase / main container
137
- Focus ("UI Polish", "Backend") -- sub-groups within a project
138
- Sessions -- Claude Code conversations
139
- ```
140
-
141
- - **Categories** group related projects (e.g., "Work" vs "Side Projects")
142
- - **Projects** are the main containers -- one per codebase, with color coding and docs
143
- - **Focuses** are sub-groups within a project for different areas of work
144
- - Drag-and-drop sessions between projects and into terminal panes
145
- - Tab groups are free-form -- mix sessions from any project in any tab
146
- - State persists to disk. Survives crashes and restarts
147
- - Auto-recovery on startup (detects orphaned sessions, restores state)
148
-
149
- ### Embedded Terminals
150
-
151
- ![4-pane terminal grid with concurrent sessions](docs/images/terminal-grid.png)
152
-
153
- - 4-pane terminal grid (xterm.js + node-pty + WebSocket). Real PTY, not fake.
154
- - Tab groups: named sets of terminal panes ("Research", "Debug"), switchable and persistent
155
- - PTY sessions survive page refresh with scrollback replay on reconnect
156
- - Model selection (Opus, Sonnet, Haiku) and session resume
157
- - Right-click context menu with Copy, Stop, Restart, Model picker
158
-
159
- ### Per-Project Docs & Feature Board
160
-
161
- ![Docs panel with Notes, Goals, Tasks, Roadmap, and Rules](docs/images/docs-panel.png)
162
-
163
- ![Switching between project docs](docs/images/workspace-docs.gif)
164
-
165
- - Notes, Goals, Tasks, Rules, and Roadmap sections per project
166
- - Kanban-style feature board (Planned -> Active -> Review -> Done)
167
- - Markdown editor with formatting toolbar
168
- - AI Insights tab: auto-generated summaries of project sessions
169
-
170
- ![Feature tracking Kanban board](docs/images/kanban-board.png)
171
-
172
- ### Session Templates
173
-
174
- Save your common launch configurations. Pre-set working directory, model, flags, and spawn options. One click to launch a new session from a template.
175
-
176
- ### Conflict Detection
177
-
178
- Real-time warnings when two or more running sessions are editing the same files. Runs `git status` across active sessions and cross-references modified files. Prevents you from stepping on your own work.
179
-
180
- ### Quick Switcher
181
-
182
- `Ctrl+K` / `Cmd+K` opens a fuzzy search across all sessions and projects. Jump to anything instantly.
183
-
184
- ### Git & Worktree Management
185
-
186
- - Full git status per project: current branch, dirty/clean, ahead/behind remote
187
- - Branch listing and worktree CRUD
188
- - **"New Feature Session"**: right-click a project -> creates a branch + worktree + Claude session in one click
189
- - Branch badges on session rows
190
-
191
- ### Themes
192
-
193
- ![All 4 Catppuccin themes: Mocha, Macchiato, Frappe, and Latte](docs/images/theme-showcase.png)
194
-
195
- ![Theme switching in action](docs/images/theme-switching.gif)
196
-
197
- 13 themes organized into Dark and Light sections. 4 official [Catppuccin](https://github.com/catppuccin/catppuccin) (Mocha, Macchiato, Frappe, Latte), 3 community favorites (Nord, Dracula, Tokyo Night), 4 custom flavors (Cherry, Ocean, Amber, Mint), and 2 light alternatives (Rose Pine Dawn, Gruvbox Light). Toggle from the header dropdown. Choice persists in localStorage.
198
-
199
- ### Port Detection & Resource Monitoring
200
-
201
- - Automatic port detection for running sessions (PowerShell on Windows, lsof on Unix)
202
- - Per-session CPU and memory tracking
203
- - System overview (CPU, RAM, uptime)
204
- - Stop, restart, or kill sessions from the Resources tab
205
-
206
- ### Mobile
207
-
208
- <p align="center">
209
- <img src="docs/images/mobile-dashboard.png" alt="Mobile workspace view" height="400">
210
- &nbsp;&nbsp;&nbsp;
211
- <img src="docs/images/mobile-terminal.png" alt="Mobile terminal with toolbar" height="400">
212
- </p>
213
-
214
- - Responsive layout with bottom tab bar
215
- - Touch gestures: swipe between terminal panes, edge swipe for sidebar, long-press for context menus
216
- - Mobile terminal toolbar: keyboard toggle, Enter, Tab, Ctrl+C, Ctrl+D, Esc, arrows, Copy, Upload
217
- - Keyboard-aware viewport resizing (terminal stays visible above soft keyboard)
218
-
219
- ---
220
-
221
- ## Full Feature List
222
-
223
- A comprehensive list of everything Myrlin Workbook offers today.
224
-
225
- ### Core
226
-
227
- - **Session discovery** - scans `~/.claude/projects/`, finds every session you've ever run
228
- - **Project management** - 3-level hierarchy (Category > Project > Focus), color coding, drag-and-drop
229
- - **Auto-recovery** - restores state after crash or restart, detects orphaned sessions
230
- - **State persistence** - JSON on disk, survives everything
231
-
232
- ### Terminals
233
-
234
- - **4-pane terminal grid** - xterm.js + node-pty + WebSocket, real PTY (not fake)
235
- - **Tab groups** - named sets of panes ("Research", "Debug"), switchable and persistent
236
- - **Tab close buttons** - with live session kill confirmation dialog
237
- - **Drag-and-hold tab grouping** - hold 1.2s over another tab to create a folder
238
- - **Cross-tab terminal pane dragging** - drag sessions between panes freely
239
- - **PTY sessions survive page refresh** - scrollback replay on reconnect
240
- - **Model selection** - Opus, Sonnet, Haiku per terminal
241
- - **Right-click context menu** - Copy, Stop, Restart, Model picker
242
- - **Bracketed paste mode** - proper paste handling in terminal sessions
243
-
244
- ### Cost Tracking
245
-
246
- - **Per-session and per-project cost breakdown** - input/output/cache tokens
247
- - **Costs dashboard tab** - period selector (Day / Week / Month / All)
248
- - **SVG timeline chart** - visual spend over time, model breakdown
249
- - **Sortable session table** - rank sessions by cost, tokens, or duration
250
- - **Parses JSONL usage data** - model-aware pricing (Opus, Sonnet, Haiku)
251
-
252
- ### Session Management
253
-
254
- - **Session manager overlay** - click header stats to open, full session control
255
- - **Mass selection and batch stop** - select multiple sessions, stop them all at once
256
- - **Filter** - All / Running / Stopped quick filters
257
- - **One-click terminal open** - from session manager rows
258
- - **Session templates** - save launch configs (directory, model, flags), one-click launch
259
- - **Quick switcher** - `Ctrl+K` / `Cmd+K` fuzzy search across sessions and projects
260
-
261
- ### Docs & Planning
262
-
263
- - **Per-project docs** - Notes, Goals, Tasks, Rules, Roadmap sections
264
- - **Kanban-style feature board** - Planned, Active, Review, Done columns
265
- - **Markdown editor** - with formatting toolbar
266
- - **AI Insights tab** - auto-generated summaries of project sessions
267
-
268
- ### Conflict Detection
269
-
270
- - **Real-time file conflict warnings** - detects when two+ sessions edit the same files
271
- - **Conflict center UI** - per-file breakdown with session attribution
272
- - **Click session chips** - jump directly to the terminal pane for that session
273
-
274
- ### Git, Worktree Tasks & PR Automation
275
-
276
- - **Git status per project** - current branch, dirty/clean, ahead/behind remote
277
- - **Branch listing and worktree CRUD** - create, switch, delete from the UI
278
- - **"New Feature Session"** - creates branch + worktree + Claude session in one click
279
- - **Kanban task board** - 5-column (Backlog, Planning, Running, Review, Done) drag-and-drop workflow
280
- - **PR automation** - create GitHub PRs via `gh` CLI, AI-generated descriptions from diffs
281
- - **PR state tracking** - badges on cards (open/draft/merged/closed), auto-advance on merge
282
- - **Multi-model orchestration** - assign models per task, default model per workflow stage
283
- - **Task dependencies** - blocking relationships with visual indicators on cards
284
- - **Cross-cutting tags** - color-coded tag badges, searchable, editable via context menu
285
- - **Concurrent task limits** - configurable max (1-8), enforced on create and column drag
286
- - **Worktree init hooks** - auto-copy files and run scripts after worktree creation
287
- - **Branch badges** - shown on session rows
288
-
289
- ### Themes
290
-
291
- - **13 themes** - 4 Catppuccin (Mocha, Macchiato, Frappe, Latte) + Nord, Dracula, Tokyo Night + Cherry, Ocean, Amber, Mint + Rose Pine Dawn, Gruvbox Light
292
- - **Header dropdown toggle** - choice persists in localStorage
293
-
294
- ### Resources & Monitoring
295
-
296
- - **Port detection** - automatic discovery for running sessions (PowerShell on Windows, lsof on Unix)
297
- - **Per-session CPU and memory** - live tracking
298
- - **System overview** - CPU, RAM, uptime
299
- - **Stop / restart / kill** - from the Resources tab
300
-
301
- ### Mobile
302
-
303
- - **Responsive layout** - bottom tab bar on small screens
304
- - **Touch gestures** - swipe between panes, edge swipe for sidebar, long-press for context menus
305
- - **Mobile terminal toolbar** - keyboard toggle, Enter, Tab, Ctrl+C, Ctrl+D, Esc, arrows, Copy, Upload
306
- - **Keyboard-aware viewport** - terminal stays visible above soft keyboard
307
-
308
- ... more to come.
309
-
310
- ---
311
-
312
- ## Remote Access
313
-
314
- Expose your local instance with a Cloudflare tunnel:
315
-
316
- ```bash
317
- npm run gui # Start the server
318
- cloudflared tunnel --url http://localhost:3456 # In another terminal
319
- ```
320
-
321
- Open the URL from any device. All WebSocket terminal connections, SSE streams, and REST API calls route through the tunnel. For a stable URL, see [Cloudflare tunnel docs](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/).
322
-
323
- ---
324
-
325
- ## Architecture
326
-
327
- ```
328
- Browser (vanilla JS SPA)
329
- |
330
- |-- REST API ---------- Express server
331
- | |-- State store (JSON + EventEmitter)
332
- | |-- Session manager (launch/stop/restart)
333
- | |-- Resource monitoring (CPU, RAM, per-PID)
334
- | +-- Project hierarchy, discovery, docs
335
- |
336
- |-- SSE --------------- Real-time updates (store events -> clients)
337
- |
338
- +-- WebSocket --------- Terminal I/O (binary frames)
339
- +-- node-pty -> ConPTY / PTY
340
- ```
341
-
342
- No React, no build step. Vanilla JS SPA, Express backend. ~24 source files, 42 tests.
343
-
344
- ### Project Structure
345
-
346
- ```
347
- src/
348
- |-- state/
349
- | |-- store.js # Core state (JSON persistence + EventEmitter)
350
- | +-- docs-manager.js # Per-project markdown docs
351
- |-- core/
352
- | |-- session-manager.js # Launch/stop/restart processes
353
- | |-- workspace-manager.js # Project/Focus CRUD
354
- | |-- process-tracker.js # PID monitoring
355
- | |-- recovery.js # Auto-recovery on startup
356
- | +-- notifications.js # Event-based notifications
357
- |-- web/
358
- | |-- server.js # Express API + SSE + resources
359
- | |-- auth.js # Token auth + rate limiting
360
- | |-- pty-manager.js # PTY session lifecycle
361
- | +-- public/
362
- | |-- index.html # SPA shell
363
- | |-- app.js # Frontend application
364
- | |-- styles.css # Catppuccin themes
365
- | +-- terminal.js # TerminalPane (xterm.js + WebSocket)
366
- |-- ui/ # TUI mode (blessed)
367
- |-- index.js # TUI entry point
368
- +-- gui.js # GUI entry point
369
- ```
370
-
371
- ---
372
-
373
- ## Configuration
374
-
375
- ### Password
376
-
377
- Loaded in order:
378
- 1. `CWM_PASSWORD` environment variable
379
- 2. `state/config.json` -> `{ "password": "..." }`
380
- 3. Auto-generated (printed to console, saved to config)
381
-
382
- ### Port
383
-
384
- Default `3456`. Override with `PORT`:
385
-
386
- ```bash
387
- PORT=8080 npm run gui
388
- ```
389
-
390
- ---
391
-
392
- ## Keyboard Shortcuts
393
-
394
- | Key | Action |
395
- |-----|--------|
396
- | `Ctrl+K` / `Cmd+K` | Quick switcher |
397
- | `Escape` | Close modals / menus |
398
- | `Ctrl+Enter` | Save in notes editor |
399
- | Double-click session | Inline rename |
400
- | Right-click session | Context menu (launch, model, rename, hide) |
401
- | Right-click project | Context menu (docs, add session, edit, delete) |
402
-
403
- ---
404
-
405
- ## Troubleshooting
406
-
407
- ### `npm install` fails with node-gyp errors
408
- `node-pty` needs C++ build tools to compile native bindings. Install the tools listed in [Prerequisites](#prerequisites).
409
-
410
- **Windows quick fix:**
411
- ```powershell
412
- npm install -g windows-build-tools
413
- ```
414
-
415
- ### `npx myrlin-workbook` hangs on install
416
- Same issue. node-pty is compiling. If it fails, install the C++ build tools first, then try again.
417
-
418
- **Still stuck?** Open an [issue](https://github.com/therealarthur/myrlin-workbook/issues) with your full error output and OS version.
419
-
420
- ---
421
-
422
- ## Roadmap
423
-
424
- ### Next Up: Task Spinoff from Sessions
425
-
426
- **The killer feature.** Right-click any running Claude session, select "Spinoff Tasks..." and AI extracts actionable tasks from the conversation. Each task gets a pre-filled creation form with context, relevant files, and acceptance criteria. Confirm, and each task spins off to its own worktree branch with a structured context handoff document -- not a raw conversation dump, but a spec (current state, desired state, file inventory, constraints). Tasks appear on the kanban board, run in parallel on isolated branches, and report back with PRs when done.
427
-
428
- No other tool extracts tasks from a running session's conversation. Cursor spawns agents from issues. Copilot Workspace goes issue-to-PR. Devin works sequentially. Myrlin is the first to let you take an in-progress conversation, break it into parallel autonomous tasks, and orchestrate them from a kanban board -- all with proper context engineering so each agent knows exactly what to build without the parent's full history polluting its context window.
429
-
430
- ### Coming Soon
431
-
432
- - **Task spinoff from sessions** - right-click -> extract tasks -> parallel worktree agents with structured context handoff
433
- - **Collapsible sidebar** - toggle for more terminal space
434
- - **6-pane grid** - smart layouts for 1-6 panes with no dead space
435
- - **Pane drag-and-drop** - reorder terminal panes by dragging headers
436
- - **Saveable layouts** - named pane configurations you can switch between
437
- - **Frosted glass permission prompts** - blur overlay with clickable buttons when Claude asks for input
438
- - **Per-action cost breakdown** - token usage per tool call, not just session totals
439
- - **Conflict detection v2** - file-level collision warnings across parallel agents
440
- - **Multi-provider support** - Claude + Codex + Aider in the same workspace
441
-
442
- ### Recently Shipped (alpha.6 - alpha.12)
443
-
444
- - **Kanban workflow board** - 5 columns (Backlog, Planning, Running, Review, Done) with drag-and-drop
445
- - **PR automation** - AI-generated descriptions via `claude --print`, create/track PRs via `gh`, auto-advance on merge
446
- - **Multi-model orchestration** - default model per stage, auto-assignment on column transitions
447
- - **Cross-cutting tags** - color-coded tag badges on tasks and sessions, searchable
448
- - **Agent teams UX** - workflow explanation, stage progress dots, model hints
449
- - **Task dependencies** - blocking relationships with visual indicators
450
- - **Concurrent task limits** - configurable max (1-8), enforced on create and drag
451
- - **Task search** - filter kanban by branch, description, model, status, tags
452
- - **Live terminal preview** - running task cards show last terminal line
453
- - **Worktree init hooks** - copy files and run scripts after worktree creation
454
-
455
- ### Previously Shipped
456
-
457
- - Project hierarchy (Category > Project > Focus > Sessions)
458
- - 3-pane grid layout, worktree tasks, conflict center, session manager overlay
459
- - Costs dashboard, tab grouping, session templates, session search
460
- - 13 themes, cost tracking, feature board, git worktree management
461
- - Port detection, mobile support, auto-trust dialogs
462
-
463
- ---
464
-
465
- ## License
466
-
467
- **AGPL-3.0.** Use, modify, self-host freely. If you run a modified version as a public service, you must publish source. See [LICENSE](LICENSE).
468
-
469
- ---
470
-
471
- ## Contributing
472
-
473
- Issues and PRs welcome. No build step. Clone, `npm install`, hack.
474
-
475
- ```bash
476
- npm test # 42 tests
477
- npm run gui # Start dev server
478
- ```
479
-
480
- ---
481
-
482
- Built by [Arthur](https://github.com/therealarthur).
1
+ <p align="center">
2
+ <img src="docs/images/logo-animated.svg" alt="Myrlin's Workbook" width="250">
3
+ </p>
4
+ <h1 align="center">Myrlin's Workbook</h1>
5
+ <p align="center">
6
+ <a href="https://www.npmjs.com/package/myrlin-workbook"><img src="https://img.shields.io/npm/v/myrlin-workbook.svg?style=flat-square" alt="npm version"></a>
7
+ <a href="https://www.npmjs.com/package/myrlin-workbook"><img src="https://img.shields.io/npm/dm/myrlin-workbook.svg?style=flat-square" alt="npm downloads"></a>
8
+ <a href="LICENSE"><img src="https://img.shields.io/badge/License-AGPL--3.0-blue.svg?style=flat-square" alt="License: AGPL-3.0"></a>
9
+ <a href="https://nodejs.org"><img src="https://img.shields.io/badge/Node.js-18%2B-green.svg?style=flat-square" alt="Node.js 18+"></a>
10
+ </p>
11
+
12
+ <p align="center">
13
+ Open-source workspace manager for Claude Code - multi-pane embedded terminals, kanban task board with PR automation, cost tracking, conflict detection, per-project docs, session templates, model orchestration, 13 themes, <a href="#full-feature-list">and more</a>. Discovers every session you've ever run, organizes them into projects with focused work contexts. Runs in your browser, everything stays local.
14
+ </p>
15
+
16
+ <p align="center">
17
+ <img src="docs/images/hero-demo.gif" alt="4-pane terminal grid with live sessions" width="800">
18
+ </p>
19
+
20
+ ---
21
+
22
+ ## Quick Start
23
+
24
+ ### Try it now
25
+
26
+ ```bash
27
+ npx myrlin-workbook # Opens browser, discovers your real Claude sessions
28
+ npx myrlin-workbook --demo # Opens browser with sample data (no real sessions needed)
29
+ ```
30
+
31
+ ### Install from source
32
+
33
+ ```bash
34
+ git clone https://github.com/therealarthur/myrlin-workbook.git
35
+ cd myrlin-workbook
36
+ npm install
37
+ npm run gui # Real sessions
38
+ npm run gui:demo # Sample data
39
+ ```
40
+
41
+ ### Password
42
+
43
+ On first launch, a random password is generated and saved to `~/.myrlin/config.json`. This password **persists across updates, reinstalls, and npx cache clears** — you'll always use the same password.
44
+
45
+ To set your own:
46
+
47
+ ```bash
48
+ # Option 1: Edit the config file (recommended — persists forever)
49
+ # ~/.myrlin/config.json → { "password": "your-password-here" }
50
+
51
+ # Option 2: Environment variable (overrides config, per-session)
52
+ CWM_PASSWORD=mypassword npx myrlin-workbook
53
+ ```
54
+
55
+ Password lookup order: `CWM_PASSWORD` env var > `~/.myrlin/config.json` > `./state/config.json` > auto-generate.
56
+
57
+ ### Prerequisites
58
+
59
+ - **Node.js 18+** ([download](https://nodejs.org))
60
+ - **C++ Build Tools** (required by `node-pty` for real terminal emulation):
61
+ - **Windows**: [Visual Studio Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) with "Desktop development with C++" workload
62
+ - **macOS**: `xcode-select --install`
63
+ - **Linux**: `sudo apt install build-essential python3`
64
+
65
+ > **`npm install` fails?** You're missing the C++ build tools above. See [Troubleshooting](#troubleshooting).
66
+
67
+ ### Run Modes
68
+
69
+ | Command | Description |
70
+ |---------|-------------|
71
+ | `npx myrlin-workbook` | Web GUI via npx |
72
+ | `npm run gui` | Web GUI (localhost:3456) |
73
+ | `npm run gui:demo` | Web GUI with sample data |
74
+ | `npm start` | TUI mode (terminal-only, blessed) |
75
+ | `npm run demo` | TUI with sample data |
76
+
77
+ ---
78
+
79
+ ## Why
80
+
81
+ I use Claude Code daily and had a growing list of pet peeves. Can't name sessions, so `/resume` is just picking from a list of IDs. No shift+enter for multiline. If you have a few sessions going at once, the terminal window juggling gets old fast. PC restarts and you have to reopen everything from scratch. No idea what you're spending.
82
+
83
+ Got fed up and built something for it. Myrlin scans `~/.claude/projects/`, finds every session you've ever run, and you organize them into projects with embedded terminals, docs, and cost tracking. Everything runs locally, no cloud, no telemetry.
84
+
85
+ ### Compared to other tools
86
+
87
+ There are good tools in this space. I tried them. Here's where Myrlin fits:
88
+
89
+ | Feature | Myrlin | [ClaudeCodeUI](https://github.com/siteboon/claudecodeui) | [Opcode](https://github.com/winfunc/opcode) | [Claude Squad](https://github.com/smtg-ai/claude-squad) |
90
+ |---------|--------|-------------|--------|-------------|
91
+ | Cost tracking | Yes | No | Yes | No |
92
+ | Costs dashboard | Yes | No | Yes | No |
93
+ | Session discovery | Yes | Yes | No | No |
94
+ | Session manager overlay | Yes | No | No | No |
95
+ | Project docs/kanban | Yes | No | No | No |
96
+ | Themes | 13 (Catppuccin, Nord, Dracula, etc.) | No | No | No |
97
+ | Session templates | Yes | No | No | No |
98
+ | Conflict detection | Yes | No | No | No |
99
+ | Kanban task board | Yes (5 columns + DnD) | No | No | Yes (basic) |
100
+ | PR automation | Yes (AI descriptions + gh) | No | No | No |
101
+ | Model orchestration | Yes (per stage) | No | No | No |
102
+ | Embedded terminals | 4-pane grid | Single | No | No |
103
+ | Tab grouping | Yes | No | No | No |
104
+ | Windows native | Yes | Buggy | Yes (desktop) | No (tmux) |
105
+ | TUI mode | Yes | No | No | No |
106
+ | Multi-agent | Claude only | Claude+Cursor+Codex | Claude only | 5+ tools |
107
+ | File explorer | No | Yes | No | No |
108
+ | npx install | Yes | Yes | No | No |
109
+ | Build step required | None | Vite | Tauri | None |
110
+
111
+ **What those tools do better:** ClaudeCodeUI has a file explorer and multi-agent support. Opcode is a polished desktop app with 20k stars. Claude Squad supports 5+ AI tools. Myrlin is project-first with cost tracking and per-project docs. Different approach to the same problem.
112
+
113
+ ---
114
+
115
+ ## Features
116
+
117
+ ### Cost Tracking
118
+
119
+ Per-session and per-workspace cost breakdown. Parses Claude's JSONL usage data, applies model-aware pricing (Opus, Sonnet, Haiku), shows input/output/cache tokens. Know exactly what you're spending.
120
+
121
+ ### Session Discovery
122
+
123
+ - Scans `~/.claude/projects/` and finds all existing Claude sessions
124
+ - Shows project directory, session count, size, last active
125
+ - Auto-titles sessions from conversation content
126
+ - Import sessions into workspaces with one click
127
+
128
+ ### Projects, Focuses & Sessions
129
+
130
+ ![Project dashboard with sessions grouped by focus](docs/images/hero-dashboard.png)
131
+
132
+ Myrlin uses a 3-level organizational hierarchy:
133
+
134
+ ```
135
+ Category ("Side Projects", "Work") -- optional top-level grouping
136
+ Project ("Myrlin Workbook") -- the codebase / main container
137
+ Focus ("UI Polish", "Backend") -- sub-groups within a project
138
+ Sessions -- Claude Code conversations
139
+ ```
140
+
141
+ - **Categories** group related projects (e.g., "Work" vs "Side Projects")
142
+ - **Projects** are the main containers -- one per codebase, with color coding and docs
143
+ - **Focuses** are sub-groups within a project for different areas of work
144
+ - Drag-and-drop sessions between projects and into terminal panes
145
+ - Tab groups are free-form -- mix sessions from any project in any tab
146
+ - State persists to disk. Survives crashes and restarts
147
+ - Auto-recovery on startup (detects orphaned sessions, restores state)
148
+
149
+ ### Embedded Terminals
150
+
151
+ ![4-pane terminal grid with concurrent sessions](docs/images/terminal-grid.png)
152
+
153
+ - 4-pane terminal grid (xterm.js + node-pty + WebSocket). Real PTY, not fake.
154
+ - Tab groups: named sets of terminal panes ("Research", "Debug"), switchable and persistent
155
+ - PTY sessions survive page refresh with scrollback replay on reconnect
156
+ - Model selection (Opus, Sonnet, Haiku) and session resume
157
+ - Right-click context menu with Copy, Stop, Restart, Model picker
158
+
159
+ ### Per-Project Docs & Feature Board
160
+
161
+ ![Docs panel with Notes, Goals, Tasks, Roadmap, and Rules](docs/images/docs-panel.png)
162
+
163
+ ![Switching between project docs](docs/images/workspace-docs.gif)
164
+
165
+ - Notes, Goals, Tasks, Rules, and Roadmap sections per project
166
+ - Kanban-style feature board (Planned -> Active -> Review -> Done)
167
+ - Markdown editor with formatting toolbar
168
+ - AI Insights tab: auto-generated summaries of project sessions
169
+
170
+ ![Feature tracking Kanban board](docs/images/kanban-board.png)
171
+
172
+ ### td Integration (Optional)
173
+
174
+ Myrlin optionally integrates with [td](https://github.com/marcus/td), a minimalist CLI task manager built for AI agent workflows. When `td` is installed and initialized in a repo, Myrlin surfaces its issues directly in the docs panel and sidebar — no context-switching to the terminal.
175
+
176
+ **Install td:**
177
+ ```bash
178
+ go install github.com/marcus/td@latest
179
+ ```
180
+
181
+ **Enable:** Settings → td Task Management → toggle on. Set the binary path if `td` isn't on your PATH (e.g. `~/.local/bin/td` or `~/go/bin/td`).
182
+
183
+ **Worktree promotion:** Click "→ Worktree" on any td issue to create a git worktree + Claude session in one click, with the issue description passed as the opening prompt to Claude.
184
+
185
+ See [Why td alongside the built-in kanban?](#td-vs-built-in-kanban) for when this makes sense.
186
+
187
+ ### Session Templates
188
+
189
+ Save your common launch configurations. Pre-set working directory, model, flags, and spawn options. One click to launch a new session from a template.
190
+
191
+ ### Conflict Detection
192
+
193
+ Real-time warnings when two or more running sessions are editing the same files. Runs `git status` across active sessions and cross-references modified files. Prevents you from stepping on your own work.
194
+
195
+ ### Quick Switcher
196
+
197
+ `Ctrl+K` / `Cmd+K` opens a fuzzy search across all sessions and projects. Jump to anything instantly.
198
+
199
+ ### Git & Worktree Management
200
+
201
+ - Full git status per project: current branch, dirty/clean, ahead/behind remote
202
+ - Branch listing and worktree CRUD
203
+ - **"New Feature Session"**: right-click a project -> creates a branch + worktree + Claude session in one click
204
+ - Branch badges on session rows
205
+
206
+ ### Themes
207
+
208
+ ![All 4 Catppuccin themes: Mocha, Macchiato, Frappe, and Latte](docs/images/theme-showcase.png)
209
+
210
+ ![Theme switching in action](docs/images/theme-switching.gif)
211
+
212
+ 13 themes organized into Dark and Light sections. 4 official [Catppuccin](https://github.com/catppuccin/catppuccin) (Mocha, Macchiato, Frappe, Latte), 3 community favorites (Nord, Dracula, Tokyo Night), 4 custom flavors (Cherry, Ocean, Amber, Mint), and 2 light alternatives (Rose Pine Dawn, Gruvbox Light). Toggle from the header dropdown. Choice persists in localStorage.
213
+
214
+ ### Port Detection & Resource Monitoring
215
+
216
+ - Automatic port detection for running sessions (PowerShell on Windows, lsof on Unix)
217
+ - Per-session CPU and memory tracking
218
+ - System overview (CPU, RAM, uptime)
219
+ - Stop, restart, or kill sessions from the Resources tab
220
+
221
+ ### Mobile
222
+
223
+ <p align="center">
224
+ <img src="docs/images/mobile-dashboard.png" alt="Mobile workspace view" height="400">
225
+ &nbsp;&nbsp;&nbsp;
226
+ <img src="docs/images/mobile-terminal.png" alt="Mobile terminal with toolbar" height="400">
227
+ </p>
228
+
229
+ - Responsive layout with bottom tab bar
230
+ - Touch gestures: swipe between terminal panes, edge swipe for sidebar, long-press for context menus
231
+ - Mobile terminal toolbar: keyboard toggle, Enter, Tab, Ctrl+C, Ctrl+D, Esc, arrows, Copy, Upload
232
+ - Keyboard-aware viewport resizing (terminal stays visible above soft keyboard)
233
+
234
+ ---
235
+
236
+ ## Full Feature List
237
+
238
+ A comprehensive list of everything Myrlin Workbook offers today.
239
+
240
+ ### Core
241
+
242
+ - **Session discovery** - scans `~/.claude/projects/`, finds every session you've ever run
243
+ - **Project management** - 3-level hierarchy (Category > Project > Focus), color coding, drag-and-drop
244
+ - **Auto-recovery** - restores state after crash or restart, detects orphaned sessions
245
+ - **State persistence** - JSON on disk, survives everything
246
+
247
+ ### Terminals
248
+
249
+ - **4-pane terminal grid** - xterm.js + node-pty + WebSocket, real PTY (not fake)
250
+ - **Tab groups** - named sets of panes ("Research", "Debug"), switchable and persistent
251
+ - **Tab close buttons** - with live session kill confirmation dialog
252
+ - **Drag-and-hold tab grouping** - hold 1.2s over another tab to create a folder
253
+ - **Cross-tab terminal pane dragging** - drag sessions between panes freely
254
+ - **PTY sessions survive page refresh** - scrollback replay on reconnect
255
+ - **Model selection** - Opus, Sonnet, Haiku per terminal
256
+ - **Right-click context menu** - Copy, Stop, Restart, Model picker
257
+ - **Bracketed paste mode** - proper paste handling in terminal sessions
258
+
259
+ ### Cost Tracking
260
+
261
+ - **Per-session and per-project cost breakdown** - input/output/cache tokens
262
+ - **Costs dashboard tab** - period selector (Day / Week / Month / All)
263
+ - **SVG timeline chart** - visual spend over time, model breakdown
264
+ - **Sortable session table** - rank sessions by cost, tokens, or duration
265
+ - **Parses JSONL usage data** - model-aware pricing (Opus, Sonnet, Haiku)
266
+
267
+ ### Session Management
268
+
269
+ - **Session manager overlay** - click header stats to open, full session control
270
+ - **Mass selection and batch stop** - select multiple sessions, stop them all at once
271
+ - **Filter** - All / Running / Stopped quick filters
272
+ - **One-click terminal open** - from session manager rows
273
+ - **Session templates** - save launch configs (directory, model, flags), one-click launch
274
+ - **Quick switcher** - `Ctrl+K` / `Cmd+K` fuzzy search across sessions and projects
275
+
276
+ ### Docs & Planning
277
+
278
+ - **Per-project docs** - Notes, Goals, Tasks, Rules, Roadmap sections
279
+ - **Kanban-style feature board** - Planned, Active, Review, Done columns
280
+ - **Markdown editor** - with formatting toolbar
281
+ - **AI Insights tab** - auto-generated summaries of project sessions
282
+ - **td integration** (optional) - surface [td](https://github.com/marcus/td) issues in the docs panel and sidebar; promote any issue to a git worktree + Claude session in one click
283
+
284
+ ### Conflict Detection
285
+
286
+ - **Real-time file conflict warnings** - detects when two+ sessions edit the same files
287
+ - **Conflict center UI** - per-file breakdown with session attribution
288
+ - **Click session chips** - jump directly to the terminal pane for that session
289
+
290
+ ### Git, Worktree Tasks & PR Automation
291
+
292
+ - **Git status per project** - current branch, dirty/clean, ahead/behind remote
293
+ - **Branch listing and worktree CRUD** - create, switch, delete from the UI
294
+ - **"New Feature Session"** - creates branch + worktree + Claude session in one click
295
+ - **Kanban task board** - 5-column (Backlog, Planning, Running, Review, Done) drag-and-drop workflow
296
+ - **PR automation** - create GitHub PRs via `gh` CLI, AI-generated descriptions from diffs
297
+ - **PR state tracking** - badges on cards (open/draft/merged/closed), auto-advance on merge
298
+ - **Multi-model orchestration** - assign models per task, default model per workflow stage
299
+ - **Task dependencies** - blocking relationships with visual indicators on cards
300
+ - **Cross-cutting tags** - color-coded tag badges, searchable, editable via context menu
301
+ - **Concurrent task limits** - configurable max (1-8), enforced on create and column drag
302
+ - **Worktree init hooks** - auto-copy files and run scripts after worktree creation
303
+ - **Branch badges** - shown on session rows
304
+
305
+ ### Themes
306
+
307
+ - **13 themes** - 4 Catppuccin (Mocha, Macchiato, Frappe, Latte) + Nord, Dracula, Tokyo Night + Cherry, Ocean, Amber, Mint + Rose Pine Dawn, Gruvbox Light
308
+ - **Header dropdown toggle** - choice persists in localStorage
309
+
310
+ ### Resources & Monitoring
311
+
312
+ - **Port detection** - automatic discovery for running sessions (PowerShell on Windows, lsof on Unix)
313
+ - **Per-session CPU and memory** - live tracking
314
+ - **System overview** - CPU, RAM, uptime
315
+ - **Stop / restart / kill** - from the Resources tab
316
+
317
+ ### Mobile
318
+
319
+ - **Responsive layout** - bottom tab bar on small screens
320
+ - **Touch gestures** - swipe between panes, edge swipe for sidebar, long-press for context menus
321
+ - **Mobile terminal toolbar** - keyboard toggle, Enter, Tab, Ctrl+C, Ctrl+D, Esc, arrows, Copy, Upload
322
+ - **Keyboard-aware viewport** - terminal stays visible above soft keyboard
323
+
324
+ ... more to come.
325
+
326
+ ---
327
+
328
+ ## Remote Access
329
+
330
+ Expose your local instance with a Cloudflare tunnel:
331
+
332
+ ```bash
333
+ npm run gui # Start the server
334
+ cloudflared tunnel --url http://localhost:3456 # In another terminal
335
+ ```
336
+
337
+ Open the URL from any device. All WebSocket terminal connections, SSE streams, and REST API calls route through the tunnel. For a stable URL, see [Cloudflare tunnel docs](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/).
338
+
339
+ ---
340
+
341
+ ## Architecture
342
+
343
+ ```
344
+ Browser (vanilla JS SPA)
345
+ |
346
+ |-- REST API ---------- Express server
347
+ | |-- State store (JSON + EventEmitter)
348
+ | |-- Session manager (launch/stop/restart)
349
+ | |-- Resource monitoring (CPU, RAM, per-PID)
350
+ | +-- Project hierarchy, discovery, docs
351
+ |
352
+ |-- SSE --------------- Real-time updates (store events -> clients)
353
+ |
354
+ +-- WebSocket --------- Terminal I/O (binary frames)
355
+ +-- node-pty -> ConPTY / PTY
356
+ ```
357
+
358
+ No React, no build step. Vanilla JS SPA, Express backend. ~24 source files, 42 tests.
359
+
360
+ ### Project Structure
361
+
362
+ ```
363
+ src/
364
+ |-- state/
365
+ | |-- store.js # Core state (JSON persistence + EventEmitter)
366
+ | +-- docs-manager.js # Per-project markdown docs
367
+ |-- core/
368
+ | |-- session-manager.js # Launch/stop/restart processes
369
+ | |-- workspace-manager.js # Project/Focus CRUD
370
+ | |-- process-tracker.js # PID monitoring
371
+ | |-- recovery.js # Auto-recovery on startup
372
+ | +-- notifications.js # Event-based notifications
373
+ |-- web/
374
+ | |-- server.js # Express API + SSE + resources
375
+ | |-- auth.js # Token auth + rate limiting
376
+ | |-- pty-manager.js # PTY session lifecycle
377
+ | +-- public/
378
+ | |-- index.html # SPA shell
379
+ | |-- app.js # Frontend application
380
+ | |-- styles.css # Catppuccin themes
381
+ | +-- terminal.js # TerminalPane (xterm.js + WebSocket)
382
+ |-- ui/ # TUI mode (blessed)
383
+ |-- index.js # TUI entry point
384
+ +-- gui.js # GUI entry point
385
+ ```
386
+
387
+ ---
388
+
389
+ ## Configuration
390
+
391
+ ### Password
392
+
393
+ Loaded in order:
394
+ 1. `CWM_PASSWORD` environment variable
395
+ 2. `state/config.json` -> `{ "password": "..." }`
396
+ 3. Auto-generated (printed to console, saved to config)
397
+
398
+ ### Port
399
+
400
+ Default `3456`. Override with `PORT`:
401
+
402
+ ```bash
403
+ PORT=8080 npm run gui
404
+ ```
405
+
406
+ ---
407
+
408
+ ## Keyboard Shortcuts
409
+
410
+ | Key | Action |
411
+ |-----|--------|
412
+ | `Ctrl+K` / `Cmd+K` | Quick switcher |
413
+ | `Escape` | Close modals / menus |
414
+ | `Ctrl+Enter` | Save in notes editor |
415
+ | Double-click session | Inline rename |
416
+ | Right-click session | Context menu (launch, model, rename, hide) |
417
+ | Right-click project | Context menu (docs, add session, edit, delete) |
418
+
419
+ ---
420
+
421
+ ## Troubleshooting
422
+
423
+ ### `npm install` fails with node-gyp errors
424
+ `node-pty` needs C++ build tools to compile native bindings. Install the tools listed in [Prerequisites](#prerequisites).
425
+
426
+ **Windows quick fix:**
427
+ ```powershell
428
+ npm install -g windows-build-tools
429
+ ```
430
+
431
+ ### `npx myrlin-workbook` hangs on install
432
+ Same issue. node-pty is compiling. If it fails, install the C++ build tools first, then try again.
433
+
434
+ **Still stuck?** Open an [issue](https://github.com/therealarthur/myrlin-workbook/issues) with your full error output and OS version.
435
+
436
+ ---
437
+
438
+ ## Roadmap
439
+
440
+ ### Next Up: Task Spinoff from Sessions
441
+
442
+ **The killer feature.** Right-click any running Claude session, select "Spinoff Tasks..." and AI extracts actionable tasks from the conversation. Each task gets a pre-filled creation form with context, relevant files, and acceptance criteria. Confirm, and each task spins off to its own worktree branch with a structured context handoff document -- not a raw conversation dump, but a spec (current state, desired state, file inventory, constraints). Tasks appear on the kanban board, run in parallel on isolated branches, and report back with PRs when done.
443
+
444
+ No other tool extracts tasks from a running session's conversation. Cursor spawns agents from issues. Copilot Workspace goes issue-to-PR. Devin works sequentially. Myrlin is the first to let you take an in-progress conversation, break it into parallel autonomous tasks, and orchestrate them from a kanban board -- all with proper context engineering so each agent knows exactly what to build without the parent's full history polluting its context window.
445
+
446
+ ### Coming Soon
447
+
448
+ - **Task spinoff from sessions** - right-click -> extract tasks -> parallel worktree agents with structured context handoff
449
+ - **Collapsible sidebar** - toggle for more terminal space
450
+ - **6-pane grid** - smart layouts for 1-6 panes with no dead space
451
+ - **Pane drag-and-drop** - reorder terminal panes by dragging headers
452
+ - **Saveable layouts** - named pane configurations you can switch between
453
+ - **Frosted glass permission prompts** - blur overlay with clickable buttons when Claude asks for input
454
+ - **Per-action cost breakdown** - token usage per tool call, not just session totals
455
+ - **Conflict detection v2** - file-level collision warnings across parallel agents
456
+ - **Multi-provider support** - Claude + Codex + Aider in the same workspace
457
+
458
+ ### Recently Shipped (alpha.6 - alpha.12)
459
+
460
+ - **Kanban workflow board** - 5 columns (Backlog, Planning, Running, Review, Done) with drag-and-drop
461
+ - **PR automation** - AI-generated descriptions via `claude --print`, create/track PRs via `gh`, auto-advance on merge
462
+ - **Multi-model orchestration** - default model per stage, auto-assignment on column transitions
463
+ - **Cross-cutting tags** - color-coded tag badges on tasks and sessions, searchable
464
+ - **Agent teams UX** - workflow explanation, stage progress dots, model hints
465
+ - **Task dependencies** - blocking relationships with visual indicators
466
+ - **Concurrent task limits** - configurable max (1-8), enforced on create and drag
467
+ - **Task search** - filter kanban by branch, description, model, status, tags
468
+ - **Live terminal preview** - running task cards show last terminal line
469
+ - **Worktree init hooks** - copy files and run scripts after worktree creation
470
+
471
+ ### Previously Shipped
472
+
473
+ - Project hierarchy (Category > Project > Focus > Sessions)
474
+ - 3-pane grid layout, worktree tasks, conflict center, session manager overlay
475
+ - Costs dashboard, tab grouping, session templates, session search
476
+ - 13 themes, cost tracking, feature board, git worktree management
477
+ - Port detection, mobile support, auto-trust dialogs
478
+
479
+ ---
480
+
481
+ ## td vs Built-in Kanban
482
+
483
+ Myrlin's kanban board and `td` solve different problems and work well together.
484
+
485
+ | | Myrlin Kanban | td |
486
+ |---|---|---|
487
+ | **Lives in** | Myrlin's state store | `.todos/` directory in the repo |
488
+ | **Follows git?** | No | Yes — committed alongside code |
489
+ | **AI agent access** | Via Myrlin GUI | Via `td` CLI in any terminal |
490
+ | **Session isolation** | No | Yes — implementer can't approve own work |
491
+ | **Handoff structured state** | No | Yes — `td handoff --done / --remaining / --decision` |
492
+ | **Worktree per task** | Yes (Myrlin creates it) | Via Myrlin's "→ Worktree" button |
493
+ | **PR tracking** | Yes (via gh) | No |
494
+ | **Cross-context memory** | No | Yes — designed for AI agent workflows |
495
+
496
+ **Use Myrlin's kanban** to orchestrate worktrees, track PR state, manage dependencies, and coordinate parallel agents at the project level.
497
+
498
+ **Use td** inside those worktrees to track granular sub-tasks, log decisions, and hand off structured context to the next agent session — especially useful when a task spans multiple context windows or requires a review step by a separate session.
499
+
500
+ ---
501
+
502
+ ## License
503
+
504
+ **AGPL-3.0.** Use, modify, self-host freely. If you run a modified version as a public service, you must publish source. See [LICENSE](LICENSE).
505
+
506
+ ---
507
+
508
+ ## Contributing
509
+
510
+ Issues and PRs welcome. No build step. Clone, `npm install`, hack.
511
+
512
+ ```bash
513
+ npm test # 42 tests
514
+ npm run gui # Start dev server
515
+ ```
516
+
517
+ ---
518
+
519
+ Built by [Arthur](https://github.com/therealarthur).