@cwim/kanban 1.1.5 → 1.1.7

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.
Files changed (2) hide show
  1. package/README.md +136 -189
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,17 +1,28 @@
1
1
  # CWIM Kanban
2
2
 
3
- > Minimal Kanban task tracking with MCP integration for Claude Code. Local-first, zero-config, and purpose-built for long-running AI-assisted workflows.
3
+ > Your AI's long-term memory. Visualized.
4
4
 
5
- ## Overview
5
+ Stop losing context between Claude sessions. CWIM Kanban gives your AI assistant a persistent memory layer with a beautiful dashboard to watch it work.
6
6
 
7
- CWIM Kanban is a complementary package to CWIM (Context Window Intelligence Manager) that adds visual task tracking to your Claude Code sessions. It consists of:
7
+ ## The Problem
8
8
 
9
- - **MCP Server** Exposes Kanban operations as Claude Code tools (`task_create`, `task_move`, `task_list`, etc.)
10
- - **Web Dashboard** — A clean, dark-themed Kanban board served locally at `http://localhost:3456`
11
- - **CLI** — Full command-line interface for managing tasks outside of Claude
12
- - **Local JSON Storage** — Per-session task storage in `~/.kanban/sessions/`, no cloud or database needed
9
+ Ever ask Claude to "continue where we left off" and get a blank stare? That's because Claude has no memory between sessions. Every conversation starts fresh, and complex multi-step work gets lost.
13
10
 
14
- As Claude works through complex multi-step tasks, it can create cards, move them across columns, and you watch progress unfold in real time on the board.
11
+ CWIM Kanban fixes this by giving Claude a persistent task memory that survives across sessions.
12
+
13
+ ## How It Works
14
+
15
+ ```
16
+ User: "Continue the auth refactor"
17
+ |
18
+ Claude: task_recall("auth refactor")
19
+ |
20
+ Memory: "Found: [in-progress] Refactor auth middleware"
21
+ |
22
+ Claude: "Ah yes, we were extracting JWT validation..."
23
+ ```
24
+
25
+ As Claude works through complex tasks, it creates cards, appends notes, and moves them across columns. You watch progress unfold in real time on the board. When you return tomorrow, Claude recalls exactly where you left off.
15
26
 
16
27
  ## Installation
17
28
 
@@ -26,12 +37,13 @@ npx @cwim/kanban
26
37
  kanban
27
38
  ```
28
39
 
29
- ## Claude Code Integration (MCP)
30
-
31
- Add CWIM Kanban to your Claude Code MCP configuration:
40
+ ## Quick Start
32
41
 
33
42
  ```bash
34
- # Add to your Claude Code config (e.g., ~/.claude/config.json)
43
+ # Start the dashboard
44
+ kanban
45
+
46
+ # Add to your Claude Code MCP config (~/.claude/config.json)
35
47
  {
36
48
  "mcpServers": {
37
49
  "kanban": {
@@ -42,257 +54,192 @@ Add CWIM Kanban to your Claude Code MCP configuration:
42
54
  }
43
55
  ```
44
56
 
45
- Once connected, Claude can use these tools during your sessions:
57
+ ## Making Claude Use It
46
58
 
47
- | Tool | Purpose |
48
- |------|---------|
49
- | `task_create` | Create a new task card |
50
- | `task_update` | Edit task title, description, tags |
51
- | `task_move` | Move a task to another column |
52
- | `task_delete` | Remove a task |
53
- | `task_list` | List all tasks in current session (optionally filtered) |
54
- | `task_get` | Show details of a specific task |
55
- | `session_list` | List all available sessions |
56
- | `session_switch` | Switch to a different session |
59
+ Just installing the MCP isn't enough — Claude needs instructions to use it.
57
60
 
58
- Claude will automatically detect the tools and use them to track progress on complex tasks. Tasks created via MCP are tagged with source "claude" so you can distinguish them from manually created ones.
61
+ Add a `CLAUDE.md` file to your project root:
59
62
 
60
- ## Session Management
63
+ ```markdown
64
+ ## Task Tracking
65
+ Use the cwim-kanban MCP to track all work in this project.
61
66
 
62
- CWIM Kanban supports **full session isolation** — each Claude Code project gets its own Kanban board:
67
+ ### Workflow
68
+ 1. **Before starting**: Call `task_recall` with what you're about to work on
69
+ 2. **Starting a task**: Create or move to `in-progress`
70
+ 3. **Making progress**: Append notes with discoveries, decisions, or blockers
71
+ 4. **Finishing**: Move to `done` and append a summary note
72
+ 5. **Blocked**: Move to `blocked` with a note explaining why
63
73
 
64
- - Sessions are auto-detected from `~/.claude/projects/`
65
- - Each session has isolated task storage
66
- - Switch between sessions via dashboard dropdown, CLI, or MCP
67
- - "Independent Mode" available when no Claude session is active
74
+ ### Example
75
+ ```
76
+ // Check if we have existing context
77
+ task_recall({ context: "refactoring auth middleware" })
68
78
 
69
- ### Switching Sessions
79
+ // Create or update task
80
+ task_create({
81
+ title: "Refactor auth middleware",
82
+ description: "Extract JWT validation into separate module",
83
+ status: "in-progress",
84
+ tags: ["refactor", "auth"]
85
+ })
70
86
 
71
- **Dashboard:** Click the session name in the header center to open the dropdown selector.
87
+ // Append progress notes
88
+ task_append_note({
89
+ id: "tf-abc123",
90
+ note: "Discovered edge case with refresh tokens"
91
+ })
72
92
 
73
- **CLI:**
74
- ```bash
75
- # List all available sessions
76
- kanban sessions
77
-
78
- # Switch to a different session
79
- kanban switch my-project
93
+ // Mark complete
94
+ task_move({ id: "tf-abc123", status: "done" })
95
+ task_append_note({
96
+ id: "tf-abc123",
97
+ note: "Completed: Extracted JWT validation, all tests passing"
98
+ })
80
99
  ```
81
100
 
82
- **MCP:**
83
- ```
84
- session_list # Show available sessions
85
- session_switch # Change active session
101
+ ### Rules
102
+ - Always check for existing tasks before creating new ones
103
+ - Use tags consistently (e.g., "bug", "feature", "refactor", "docs")
104
+ - Append notes liberally - they build context for future sessions
105
+ - Move tasks to "blocked" immediately when stuck, with explanation
106
+ - Keep task titles concise but descriptive
86
107
  ```
87
108
 
88
- ## CLI Commands
109
+ This makes the behavior automatic — no need to ask Claude every session.
89
110
 
90
- ### `kanban` (default) — Launch Dashboard
111
+ ## Memory Features
91
112
 
92
- ```bash
93
- # Start dashboard server and open browser
94
- kanban
113
+ ### Smart Context Recall
95
114
 
96
- # Custom port
97
- kanban --port 8080
115
+ Before starting complex work, Claude can recall relevant past tasks:
98
116
 
99
- # Don't auto-open browser
100
- kanban --no-open
101
117
  ```
102
-
103
- ### `kanban mcp` — Start MCP Server
104
-
105
- ```bash
106
- # Run in MCP mode (stdio transport for Claude Code)
107
- kanban mcp
118
+ task_recall({ context: "refactoring auth middleware" })
108
119
  ```
109
120
 
110
- ### `kanban sessions` List Sessions
121
+ Returns the most relevant tasks based on keyword matching, recency, and status. No more "what were we doing again?"
111
122
 
112
- ```bash
113
- # Show all available sessions with active indicator
114
- kanban sessions
115
- ```
123
+ ### Append Notes Without Overwriting
116
124
 
117
- ### `kanban switch` Change Session
125
+ Build context over time without losing previous work:
118
126
 
119
- ```bash
120
- # Switch to a specific session
121
- kanban switch my-project
127
+ ```
128
+ task_append_note({
129
+ id: "tf-abc123",
130
+ note: "Discovered edge case with JWT refresh tokens"
131
+ })
122
132
  ```
123
133
 
124
- ### `kanban add` Create Task
134
+ Each note is timestamped and preserved. The task grows smarter as you work.
125
135
 
126
- ```bash
127
- # Simple task
128
- kanban add "Fix auth middleware"
136
+ ### Session Isolation
129
137
 
130
- # With description and tags
131
- kanban add "Refactor database layer" -d "Extract connection pooling" -t refactor,db
138
+ Each Claude Code project gets its own memory space. Work on multiple projects without context bleeding:
132
139
 
133
- # Direct to a column
134
- kanban add "Write tests" -s in-progress
135
- ```
140
+ - Auto-detected from `~/.claude/projects/`
141
+ - Switch between sessions via dashboard, CLI, or MCP
142
+ - "Independent Mode" for non-Claude work
136
143
 
137
- ### `kanban list` — List Tasks
144
+ ### Keyword Search
138
145
 
139
- ```bash
140
- # All tasks in current session
141
- kanban list
142
-
143
- # Filter by status
144
- kanban list --status done
146
+ Find anything instantly across your entire task history:
145
147
 
146
- # Filter by tag
147
- kanban list --tag refactor
148
+ ```
149
+ task_list({ query: "auth" })
148
150
  ```
149
151
 
150
- ### `kanban done` — Mark Complete
152
+ ## Visual Dashboard
151
153
 
152
- ```bash
153
- kanban done tf-abc123
154
- ```
154
+ While your AI works in the background, watch progress in real time:
155
155
 
156
- ### `kanban move` Change Status
156
+ - **Real-time updates** - Board refreshes every 2 seconds
157
+ - **4 columns** - To Do, In Progress, Done, Blocked
158
+ - **Session switching** - Dropdown to browse projects
159
+ - **Tag support** - Categorize tasks with badges
160
+ - **Source tracking** - Distinguish AI-created vs manual tasks
161
+ - **Keyboard shortcuts** - `r` to refresh, `1-4` to filter columns
157
162
 
158
- ```bash
159
- # Move to any column
160
- kanban move tf-abc123 blocked
161
- kanban move tf-abc123 in-progress
162
- ```
163
+ ## MCP Tools
163
164
 
164
- ### `kanban status` Board Overview
165
+ | Tool | Purpose |
166
+ |------|---------|
167
+ | `task_recall` | Intelligently recall relevant task context |
168
+ | `task_create` | Create a new task card |
169
+ | `task_append_note` | Append timestamped note to a task |
170
+ | `task_update` | Edit task title, description, tags |
171
+ | `task_move` | Move a task to another column |
172
+ | `task_delete` | Remove a task |
173
+ | `task_list` | List tasks (optionally filtered/search) |
174
+ | `task_get` | Show details of a specific task |
175
+ | `session_list` | List all available sessions |
176
+ | `session_switch` | Switch to a different session |
165
177
 
178
+ ## CLI Commands
179
+
180
+ ### Launch Dashboard
166
181
  ```bash
167
- # Quick summary of all columns
168
- kanban status
182
+ kanban # Start dashboard and open browser
183
+ kanban --port 8080 # Custom port
184
+ kanban --no-open # Don't auto-open browser
169
185
  ```
170
186
 
171
- ### `kanban show` — Task Details
172
-
187
+ ### Memory Operations
173
188
  ```bash
174
- kanban show tf-abc123
189
+ kanban recall "auth" # Recall relevant tasks
190
+ kanban note tf-abc123 "Edge case found" # Append note
175
191
  ```
176
192
 
177
- ### `kanban remove` — Delete Task
178
-
193
+ ### Task Management
179
194
  ```bash
195
+ kanban add "Fix auth" -d "JWT validation" -t bug,auth
196
+ kanban list --query "auth"
197
+ kanban move tf-abc123 done
198
+ kanban show tf-abc123
180
199
  kanban remove tf-abc123
181
200
  ```
182
201
 
183
- ### `kanban init` — Initialize Storage
184
-
202
+ ### Session Management
185
203
  ```bash
186
- # Creates ~/.kanban/ directory structure
187
- kanban init
204
+ kanban sessions # List all sessions
205
+ kanban switch my-project # Change active session
188
206
  ```
189
207
 
190
- ## Dashboard Features
191
-
192
- - **Real-time updates** — Board refreshes every 2 seconds, showing changes as Claude moves tasks
193
- - **4 columns** — To Do, In Progress, Done, Blocked
194
- - **Visual indicators** — Color-coded borders, pulsing LIVE badge, flash animation on task moves
195
- - **Session switching** — Dropdown in header to browse and switch between Claude projects
196
- - **Session isolation** — Each project has its own independent task board
197
- - **Tag support** — Tasks show tags as badges for quick categorization
198
- - **Source tracking** — Distinguishes between Claude-created and manually-created tasks
199
- - **Keyboard shortcuts** — `r` to refresh, `1-4` to filter columns
200
- - **New task toast** — Brief notification when a new task appears
201
-
202
208
  ## Data Storage
203
209
 
204
- All data is stored locally in `~/.kanban/sessions/{session-name}/tasks.json`:
210
+ All data stored locally in `~/.kanban/sessions/`:
205
211
 
206
212
  ```
207
213
  ~/.kanban/
208
214
  ├── sessions/
209
215
  │ ├── my-project/
210
216
  │ │ └── tasks.json
211
- │ ├── another-project/
212
- │ │ └── tasks.json
213
217
  │ └── independent/
214
218
  │ └── tasks.json
215
219
  └── active-session.json
216
220
  ```
217
221
 
218
- Each session's tasks.json:
219
-
220
- ```json
221
- {
222
- "version": 1,
223
- "updatedAt": "2026-05-23T10:30:00Z",
224
- "session": {
225
- "name": "my-project",
226
- "path": "/home/user/.claude/projects/my-project"
227
- },
228
- "tasks": [
229
- {
230
- "id": "tf-001",
231
- "title": "Refactor auth middleware",
232
- "description": "Extract JWT validation into separate module",
233
- "status": "in-progress",
234
- "tags": ["refactor", "auth"],
235
- "source": "claude",
236
- "createdAt": "2026-05-23T10:15:00Z",
237
- "updatedAt": "2026-05-23T10:20:00Z"
238
- }
239
- ]
240
- }
241
- ```
242
-
243
- - **Local-first** — No cloud services, no accounts, no network required
244
- - **Human-readable** — JSON format you can edit directly if needed
245
- - **Session-aware** — Each Claude Code project gets its own isolated board
246
- - **Portable** — Back up or version-control your `~/.kanban/` directory
247
-
248
- ## Programmatic API
249
-
250
- Core functions are exported for custom integrations:
251
-
252
- ```typescript
253
- import { createTask, listTasks, moveTask, getAllData, listAllSessions, setActiveSession } from '@cwim/kanban';
254
-
255
- // Create a task in current session
256
- const task = await createTask({
257
- title: 'My task',
258
- description: 'Optional details',
259
- status: 'todo',
260
- tags: ['api'],
261
- source: 'manual'
262
- });
263
-
264
- // List all available sessions
265
- const sessions = await listAllSessions();
266
-
267
- // Switch active session
268
- await setActiveSession('my-project');
269
-
270
- // Get all data for current session
271
- const data = await getAllData();
272
- console.log(data.tasks);
273
- ```
274
-
275
- See `src/index.ts` for all available exports.
222
+ - **Local-first** - No cloud, no accounts, no network required
223
+ - **Human-readable** - Plain JSON you can edit directly
224
+ - **Portable** - Back up or version-control your `~/.kanban/` directory
276
225
 
277
226
  ## Architecture
278
227
 
279
228
  ```
280
229
  Claude Code → MCP Server (stdio) → session tasks.json ← HTTP Server ← Dashboard UI
281
-
282
- task_create, move, etc. polling /api/tasks
283
- + /api/sessions
230
+ | |
231
+ task_recall, append_note, etc. polling /api/tasks
284
232
  ```
285
233
 
286
- - **MCP Server** and **HTTP Server** are separate processes
287
- - They communicate through per-session JSON files, not sockets or IPC
288
- - The dashboard polls `/api/tasks` and `/api/sessions` every 2 seconds
289
- - All mutations go through the MCP tools or CLI commands
290
- - Session switching is persisted in `~/.kanban/active-session.json`
234
+ - MCP Server and HTTP Server are separate processes
235
+ - They communicate through per-session JSON files
236
+ - Dashboard polls for updates every 2 seconds
237
+ - Session switching persisted in `~/.kanban/active-session.json`
291
238
 
292
239
  ## Requirements
293
240
 
294
241
  - Node.js 18+
295
- - Claude Code (optional dashboard works independently)
242
+ - Claude Code (optional - dashboard works independently)
296
243
 
297
244
  ## License
298
245
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cwim/kanban",
3
- "version": "1.1.5",
3
+ "version": "1.1.7",
4
4
  "description": "Minimal Kanban task tracking with MCP integration for Claude Code",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",