@cwim/kanban 1.1.5 → 1.1.6
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 +92 -199
- 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,138 @@ Add CWIM Kanban to your Claude Code MCP configuration:
|
|
|
42
54
|
}
|
|
43
55
|
```
|
|
44
56
|
|
|
45
|
-
|
|
46
|
-
|
|
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 |
|
|
57
|
-
|
|
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.
|
|
59
|
-
|
|
60
|
-
## Session Management
|
|
57
|
+
## Memory Features
|
|
61
58
|
|
|
62
|
-
|
|
59
|
+
### Smart Context Recall
|
|
63
60
|
|
|
64
|
-
|
|
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
|
|
61
|
+
Before starting complex work, Claude can recall relevant past tasks:
|
|
68
62
|
|
|
69
|
-
### Switching Sessions
|
|
70
|
-
|
|
71
|
-
**Dashboard:** Click the session name in the header center to open the dropdown selector.
|
|
72
|
-
|
|
73
|
-
**CLI:**
|
|
74
|
-
```bash
|
|
75
|
-
# List all available sessions
|
|
76
|
-
kanban sessions
|
|
77
|
-
|
|
78
|
-
# Switch to a different session
|
|
79
|
-
kanban switch my-project
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
**MCP:**
|
|
83
63
|
```
|
|
84
|
-
|
|
85
|
-
session_switch # Change active session
|
|
64
|
+
task_recall({ context: "refactoring auth middleware" })
|
|
86
65
|
```
|
|
87
66
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
### `kanban` (default) — Launch Dashboard
|
|
67
|
+
Returns the most relevant tasks based on keyword matching, recency, and status. No more "what were we doing again?"
|
|
91
68
|
|
|
92
|
-
|
|
93
|
-
# Start dashboard server and open browser
|
|
94
|
-
kanban
|
|
69
|
+
### Append Notes Without Overwriting
|
|
95
70
|
|
|
96
|
-
|
|
97
|
-
kanban --port 8080
|
|
71
|
+
Build context over time without losing previous work:
|
|
98
72
|
|
|
99
|
-
# Don't auto-open browser
|
|
100
|
-
kanban --no-open
|
|
101
73
|
```
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
# Run in MCP mode (stdio transport for Claude Code)
|
|
107
|
-
kanban mcp
|
|
74
|
+
task_append_note({
|
|
75
|
+
id: "tf-abc123",
|
|
76
|
+
note: "Discovered edge case with JWT refresh tokens"
|
|
77
|
+
})
|
|
108
78
|
```
|
|
109
79
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
```bash
|
|
113
|
-
# Show all available sessions with active indicator
|
|
114
|
-
kanban sessions
|
|
115
|
-
```
|
|
80
|
+
Each note is timestamped and preserved. The task grows smarter as you work.
|
|
116
81
|
|
|
117
|
-
###
|
|
82
|
+
### Session Isolation
|
|
118
83
|
|
|
119
|
-
|
|
120
|
-
# Switch to a specific session
|
|
121
|
-
kanban switch my-project
|
|
122
|
-
```
|
|
84
|
+
Each Claude Code project gets its own memory space. Work on multiple projects without context bleeding:
|
|
123
85
|
|
|
124
|
-
|
|
86
|
+
- Auto-detected from `~/.claude/projects/`
|
|
87
|
+
- Switch between sessions via dashboard, CLI, or MCP
|
|
88
|
+
- "Independent Mode" for non-Claude work
|
|
125
89
|
|
|
126
|
-
|
|
127
|
-
# Simple task
|
|
128
|
-
kanban add "Fix auth middleware"
|
|
90
|
+
### Keyword Search
|
|
129
91
|
|
|
130
|
-
|
|
131
|
-
kanban add "Refactor database layer" -d "Extract connection pooling" -t refactor,db
|
|
92
|
+
Find anything instantly across your entire task history:
|
|
132
93
|
|
|
133
|
-
|
|
134
|
-
|
|
94
|
+
```
|
|
95
|
+
task_list({ query: "auth" })
|
|
135
96
|
```
|
|
136
97
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
```bash
|
|
140
|
-
# All tasks in current session
|
|
141
|
-
kanban list
|
|
98
|
+
## Visual Dashboard
|
|
142
99
|
|
|
143
|
-
|
|
144
|
-
kanban list --status done
|
|
100
|
+
While your AI works in the background, watch progress in real time:
|
|
145
101
|
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
102
|
+
- **Real-time updates** - Board refreshes every 2 seconds
|
|
103
|
+
- **4 columns** - To Do, In Progress, Done, Blocked
|
|
104
|
+
- **Session switching** - Dropdown to browse projects
|
|
105
|
+
- **Tag support** - Categorize tasks with badges
|
|
106
|
+
- **Source tracking** - Distinguish AI-created vs manual tasks
|
|
107
|
+
- **Keyboard shortcuts** - `r` to refresh, `1-4` to filter columns
|
|
149
108
|
|
|
150
|
-
|
|
109
|
+
## MCP Tools
|
|
151
110
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
111
|
+
| Tool | Purpose |
|
|
112
|
+
|------|---------|
|
|
113
|
+
| `task_recall` | Intelligently recall relevant task context |
|
|
114
|
+
| `task_create` | Create a new task card |
|
|
115
|
+
| `task_append_note` | Append timestamped note to a task |
|
|
116
|
+
| `task_update` | Edit task title, description, tags |
|
|
117
|
+
| `task_move` | Move a task to another column |
|
|
118
|
+
| `task_delete` | Remove a task |
|
|
119
|
+
| `task_list` | List tasks (optionally filtered/search) |
|
|
120
|
+
| `task_get` | Show details of a specific task |
|
|
121
|
+
| `session_list` | List all available sessions |
|
|
122
|
+
| `session_switch` | Switch to a different session |
|
|
155
123
|
|
|
156
|
-
|
|
124
|
+
## CLI Commands
|
|
157
125
|
|
|
126
|
+
### Launch Dashboard
|
|
158
127
|
```bash
|
|
159
|
-
#
|
|
160
|
-
kanban
|
|
161
|
-
kanban
|
|
128
|
+
kanban # Start dashboard and open browser
|
|
129
|
+
kanban --port 8080 # Custom port
|
|
130
|
+
kanban --no-open # Don't auto-open browser
|
|
162
131
|
```
|
|
163
132
|
|
|
164
|
-
###
|
|
165
|
-
|
|
133
|
+
### Memory Operations
|
|
166
134
|
```bash
|
|
167
|
-
|
|
168
|
-
kanban
|
|
135
|
+
kanban recall "auth" # Recall relevant tasks
|
|
136
|
+
kanban note tf-abc123 "Edge case found" # Append note
|
|
169
137
|
```
|
|
170
138
|
|
|
171
|
-
###
|
|
172
|
-
|
|
139
|
+
### Task Management
|
|
173
140
|
```bash
|
|
141
|
+
kanban add "Fix auth" -d "JWT validation" -t bug,auth
|
|
142
|
+
kanban list --query "auth"
|
|
143
|
+
kanban move tf-abc123 done
|
|
174
144
|
kanban show tf-abc123
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
### `kanban remove` — Delete Task
|
|
178
|
-
|
|
179
|
-
```bash
|
|
180
145
|
kanban remove tf-abc123
|
|
181
146
|
```
|
|
182
147
|
|
|
183
|
-
###
|
|
184
|
-
|
|
148
|
+
### Session Management
|
|
185
149
|
```bash
|
|
186
|
-
#
|
|
187
|
-
kanban
|
|
150
|
+
kanban sessions # List all sessions
|
|
151
|
+
kanban switch my-project # Change active session
|
|
188
152
|
```
|
|
189
153
|
|
|
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
154
|
## Data Storage
|
|
203
155
|
|
|
204
|
-
All data
|
|
156
|
+
All data stored locally in `~/.kanban/sessions/`:
|
|
205
157
|
|
|
206
158
|
```
|
|
207
159
|
~/.kanban/
|
|
208
160
|
├── sessions/
|
|
209
161
|
│ ├── my-project/
|
|
210
162
|
│ │ └── tasks.json
|
|
211
|
-
│ ├── another-project/
|
|
212
|
-
│ │ └── tasks.json
|
|
213
163
|
│ └── independent/
|
|
214
164
|
│ └── tasks.json
|
|
215
165
|
└── active-session.json
|
|
216
166
|
```
|
|
217
167
|
|
|
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.
|
|
168
|
+
- **Local-first** - No cloud, no accounts, no network required
|
|
169
|
+
- **Human-readable** - Plain JSON you can edit directly
|
|
170
|
+
- **Portable** - Back up or version-control your `~/.kanban/` directory
|
|
276
171
|
|
|
277
172
|
## Architecture
|
|
278
173
|
|
|
279
174
|
```
|
|
280
175
|
Claude Code → MCP Server (stdio) → session tasks.json ← HTTP Server ← Dashboard UI
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
+ /api/sessions
|
|
176
|
+
| |
|
|
177
|
+
task_recall, append_note, etc. polling /api/tasks
|
|
284
178
|
```
|
|
285
179
|
|
|
286
|
-
-
|
|
287
|
-
- They communicate through per-session JSON files
|
|
288
|
-
-
|
|
289
|
-
-
|
|
290
|
-
- Session switching is persisted in `~/.kanban/active-session.json`
|
|
180
|
+
- MCP Server and HTTP Server are separate processes
|
|
181
|
+
- They communicate through per-session JSON files
|
|
182
|
+
- Dashboard polls for updates every 2 seconds
|
|
183
|
+
- Session switching persisted in `~/.kanban/active-session.json`
|
|
291
184
|
|
|
292
185
|
## Requirements
|
|
293
186
|
|
|
294
187
|
- Node.js 18+
|
|
295
|
-
- Claude Code (optional
|
|
188
|
+
- Claude Code (optional - dashboard works independently)
|
|
296
189
|
|
|
297
190
|
## License
|
|
298
191
|
|