@cwim/kanban 1.1.0 → 1.1.2

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
@@ -9,7 +9,7 @@ CWIM Kanban is a complementary package to CWIM (Context Window Intelligence Mana
9
9
  - **MCP Server** — Exposes Kanban operations as Claude Code tools (`task_create`, `task_move`, `task_list`, etc.)
10
10
  - **Web Dashboard** — A clean, dark-themed Kanban board served locally at `http://localhost:3456`
11
11
  - **CLI** — Full command-line interface for managing tasks outside of Claude
12
- - **Local JSON Storage** — All data stored in `~/.kanban/tasks.json`, no cloud or database needed
12
+ - **Local JSON Storage** — Per-session task storage in `~/.kanban/sessions/`, no cloud or database needed
13
13
 
14
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.
15
15
 
@@ -50,11 +50,41 @@ Once connected, Claude can use these tools during your sessions:
50
50
  | `task_update` | Edit task title, description, tags |
51
51
  | `task_move` | Move a task to another column |
52
52
  | `task_delete` | Remove a task |
53
- | `task_list` | List all tasks (optionally filtered) |
53
+ | `task_list` | List all tasks in current session (optionally filtered) |
54
54
  | `task_get` | Show details of a specific task |
55
+ | `session_list` | List all available sessions |
56
+ | `session_switch` | Switch to a different session |
55
57
 
56
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.
57
59
 
60
+ ## Session Management
61
+
62
+ CWIM Kanban supports **full session isolation** — each Claude Code project gets its own Kanban board:
63
+
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
68
+
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
+ ```
84
+ session_list # Show available sessions
85
+ session_switch # Change active session
86
+ ```
87
+
58
88
  ## CLI Commands
59
89
 
60
90
  ### `kanban` (default) — Launch Dashboard
@@ -77,6 +107,20 @@ kanban --no-open
77
107
  kanban mcp
78
108
  ```
79
109
 
110
+ ### `kanban sessions` — List Sessions
111
+
112
+ ```bash
113
+ # Show all available sessions with active indicator
114
+ kanban sessions
115
+ ```
116
+
117
+ ### `kanban switch` — Change Session
118
+
119
+ ```bash
120
+ # Switch to a specific session
121
+ kanban switch my-project
122
+ ```
123
+
80
124
  ### `kanban add` — Create Task
81
125
 
82
126
  ```bash
@@ -93,7 +137,7 @@ kanban add "Write tests" -s in-progress
93
137
  ### `kanban list` — List Tasks
94
138
 
95
139
  ```bash
96
- # All tasks
140
+ # All tasks in current session
97
141
  kanban list
98
142
 
99
143
  # Filter by status
@@ -139,7 +183,7 @@ kanban remove tf-abc123
139
183
  ### `kanban init` — Initialize Storage
140
184
 
141
185
  ```bash
142
- # Creates ~/.kanban/ directory and empty tasks.json
186
+ # Creates ~/.kanban/ directory structure
143
187
  kanban init
144
188
  ```
145
189
 
@@ -148,7 +192,8 @@ kanban init
148
192
  - **Real-time updates** — Board refreshes every 2 seconds, showing changes as Claude moves tasks
149
193
  - **4 columns** — To Do, In Progress, Done, Blocked
150
194
  - **Visual indicators** — Color-coded borders, pulsing LIVE badge, flash animation on task moves
151
- - **Session linking** — Auto-detects active Claude Code session and shows it in the header
195
+ - **Session switching** — Dropdown in header to browse and switch between Claude projects
196
+ - **Session isolation** — Each project has its own independent task board
152
197
  - **Tag support** — Tasks show tags as badges for quick categorization
153
198
  - **Source tracking** — Distinguishes between Claude-created and manually-created tasks
154
199
  - **Keyboard shortcuts** — `r` to refresh, `1-4` to filter columns
@@ -156,7 +201,21 @@ kanban init
156
201
 
157
202
  ## Data Storage
158
203
 
159
- All data is stored locally in `~/.kanban/tasks.json`:
204
+ All data is stored locally in `~/.kanban/sessions/{session-name}/tasks.json`:
205
+
206
+ ```
207
+ ~/.kanban/
208
+ ├── sessions/
209
+ │ ├── my-project/
210
+ │ │ └── tasks.json
211
+ │ ├── another-project/
212
+ │ │ └── tasks.json
213
+ │ └── independent/
214
+ │ └── tasks.json
215
+ └── active-session.json
216
+ ```
217
+
218
+ Each session's tasks.json:
160
219
 
161
220
  ```json
162
221
  {
@@ -183,7 +242,7 @@ All data is stored locally in `~/.kanban/tasks.json`:
183
242
 
184
243
  - **Local-first** — No cloud services, no accounts, no network required
185
244
  - **Human-readable** — JSON format you can edit directly if needed
186
- - **Session-aware** — Links tasks to Claude Code sessions when available
245
+ - **Session-aware** — Each Claude Code project gets its own isolated board
187
246
  - **Portable** — Back up or version-control your `~/.kanban/` directory
188
247
 
189
248
  ## Programmatic API
@@ -191,9 +250,9 @@ All data is stored locally in `~/.kanban/tasks.json`:
191
250
  Core functions are exported for custom integrations:
192
251
 
193
252
  ```typescript
194
- import { createTask, listTasks, moveTask, getAllData } from '@cwim/kanban';
253
+ import { createTask, listTasks, moveTask, getAllData, listAllSessions, setActiveSession } from '@cwim/kanban';
195
254
 
196
- // Create a task programmatically
255
+ // Create a task in current session
197
256
  const task = await createTask({
198
257
  title: 'My task',
199
258
  description: 'Optional details',
@@ -202,7 +261,13 @@ const task = await createTask({
202
261
  source: 'manual'
203
262
  });
204
263
 
205
- // Get all data
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
206
271
  const data = await getAllData();
207
272
  console.log(data.tasks);
208
273
  ```
@@ -212,15 +277,17 @@ See `src/index.ts` for all available exports.
212
277
  ## Architecture
213
278
 
214
279
  ```
215
- Claude Code → MCP Server (stdio) → tasks.json ← HTTP Server ← Dashboard UI
280
+ Claude Code → MCP Server (stdio) → session tasks.json ← HTTP Server ← Dashboard UI
216
281
  ↑ ↑
217
282
  task_create, move, etc. polling /api/tasks
283
+ + /api/sessions
218
284
  ```
219
285
 
220
286
  - **MCP Server** and **HTTP Server** are separate processes
221
- - They communicate through the shared JSON file, not sockets or IPC
222
- - The dashboard polls `/api/tasks` every 2 seconds
287
+ - They communicate through per-session JSON files, not sockets or IPC
288
+ - The dashboard polls `/api/tasks` and `/api/sessions` every 2 seconds
223
289
  - All mutations go through the MCP tools or CLI commands
290
+ - Session switching is persisted in `~/.kanban/active-session.json`
224
291
 
225
292
  ## Requirements
226
293
 
@@ -3,7 +3,7 @@
3
3
  <head>
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
- <title>TaskFlow Kanban</title>
6
+ <title>Kanban</title>
7
7
  <script type="module" crossorigin src="/assets/index-BjmAGTF2.js"></script>
8
8
  <link rel="stylesheet" crossorigin href="/assets/index-CfRsoq4J.css">
9
9
  </head>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cwim/kanban",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "Minimal Kanban task tracking with MCP integration for Claude Code",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -32,6 +32,9 @@
32
32
  "cwim"
33
33
  ],
34
34
  "author": "Chiheb Nabil",
35
+ "repository": {
36
+ "url": "https://github.com/cwimhq/kanban.git"
37
+ },
35
38
  "license": "MIT",
36
39
  "dependencies": {
37
40
  "@modelcontextprotocol/sdk": "^1.29.0",