@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.
- package/README.md +136 -189
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,17 +1,28 @@
|
|
|
1
1
|
# CWIM Kanban
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> Your AI's long-term memory. Visualized.
|
|
4
4
|
|
|
5
|
-
|
|
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
|
-
|
|
7
|
+
## The Problem
|
|
8
8
|
|
|
9
|
-
|
|
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
|
-
|
|
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
|
-
##
|
|
30
|
-
|
|
31
|
-
Add CWIM Kanban to your Claude Code MCP configuration:
|
|
40
|
+
## Quick Start
|
|
32
41
|
|
|
33
42
|
```bash
|
|
34
|
-
#
|
|
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
|
-
|
|
57
|
+
## Making Claude Use It
|
|
46
58
|
|
|
47
|
-
|
|
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
|
-
|
|
61
|
+
Add a `CLAUDE.md` file to your project root:
|
|
59
62
|
|
|
60
|
-
|
|
63
|
+
```markdown
|
|
64
|
+
## Task Tracking
|
|
65
|
+
Use the cwim-kanban MCP to track all work in this project.
|
|
61
66
|
|
|
62
|
-
|
|
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
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
74
|
+
### Example
|
|
75
|
+
```
|
|
76
|
+
// Check if we have existing context
|
|
77
|
+
task_recall({ context: "refactoring auth middleware" })
|
|
68
78
|
|
|
69
|
-
|
|
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
|
-
|
|
87
|
+
// Append progress notes
|
|
88
|
+
task_append_note({
|
|
89
|
+
id: "tf-abc123",
|
|
90
|
+
note: "Discovered edge case with refresh tokens"
|
|
91
|
+
})
|
|
72
92
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
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
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
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
|
-
|
|
109
|
+
This makes the behavior automatic — no need to ask Claude every session.
|
|
89
110
|
|
|
90
|
-
|
|
111
|
+
## Memory Features
|
|
91
112
|
|
|
92
|
-
|
|
93
|
-
# Start dashboard server and open browser
|
|
94
|
-
kanban
|
|
113
|
+
### Smart Context Recall
|
|
95
114
|
|
|
96
|
-
|
|
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
|
-
|
|
121
|
+
Returns the most relevant tasks based on keyword matching, recency, and status. No more "what were we doing again?"
|
|
111
122
|
|
|
112
|
-
|
|
113
|
-
# Show all available sessions with active indicator
|
|
114
|
-
kanban sessions
|
|
115
|
-
```
|
|
123
|
+
### Append Notes Without Overwriting
|
|
116
124
|
|
|
117
|
-
|
|
125
|
+
Build context over time without losing previous work:
|
|
118
126
|
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
|
|
127
|
+
```
|
|
128
|
+
task_append_note({
|
|
129
|
+
id: "tf-abc123",
|
|
130
|
+
note: "Discovered edge case with JWT refresh tokens"
|
|
131
|
+
})
|
|
122
132
|
```
|
|
123
133
|
|
|
124
|
-
|
|
134
|
+
Each note is timestamped and preserved. The task grows smarter as you work.
|
|
125
135
|
|
|
126
|
-
|
|
127
|
-
# Simple task
|
|
128
|
-
kanban add "Fix auth middleware"
|
|
136
|
+
### Session Isolation
|
|
129
137
|
|
|
130
|
-
|
|
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
|
-
|
|
134
|
-
|
|
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
|
-
###
|
|
144
|
+
### Keyword Search
|
|
138
145
|
|
|
139
|
-
|
|
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
|
-
|
|
147
|
-
|
|
148
|
+
```
|
|
149
|
+
task_list({ query: "auth" })
|
|
148
150
|
```
|
|
149
151
|
|
|
150
|
-
|
|
152
|
+
## Visual Dashboard
|
|
151
153
|
|
|
152
|
-
|
|
153
|
-
kanban done tf-abc123
|
|
154
|
-
```
|
|
154
|
+
While your AI works in the background, watch progress in real time:
|
|
155
155
|
|
|
156
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
#
|
|
168
|
-
kanban
|
|
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
|
-
###
|
|
172
|
-
|
|
187
|
+
### Memory Operations
|
|
173
188
|
```bash
|
|
174
|
-
kanban
|
|
189
|
+
kanban recall "auth" # Recall relevant tasks
|
|
190
|
+
kanban note tf-abc123 "Edge case found" # Append note
|
|
175
191
|
```
|
|
176
192
|
|
|
177
|
-
###
|
|
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
|
-
###
|
|
184
|
-
|
|
202
|
+
### Session Management
|
|
185
203
|
```bash
|
|
186
|
-
#
|
|
187
|
-
kanban
|
|
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
|
|
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
|
-
|
|
219
|
-
|
|
220
|
-
|
|
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
|
-
|
|
283
|
-
+ /api/sessions
|
|
230
|
+
| |
|
|
231
|
+
task_recall, append_note, etc. polling /api/tasks
|
|
284
232
|
```
|
|
285
233
|
|
|
286
|
-
-
|
|
287
|
-
- They communicate through per-session JSON files
|
|
288
|
-
-
|
|
289
|
-
-
|
|
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
|
|
242
|
+
- Claude Code (optional - dashboard works independently)
|
|
296
243
|
|
|
297
244
|
## License
|
|
298
245
|
|