@hasna/todos 0.9.21 → 0.9.22

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 +112 -76
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -163,20 +163,20 @@ Or start manually via stdio:
163
163
  todos-mcp
164
164
  ```
165
165
 
166
- ### MCP Tools (29)
167
-
168
- | Category | Tools |
169
- |----------|-------|
170
- | **Tasks** | `create_task`, `list_tasks`, `get_task`, `update_task`, `delete_task`, `start_task`, `complete_task` |
171
- | **Locking** | `lock_task`, `unlock_task` |
172
- | **Dependencies** | `add_dependency`, `remove_dependency` |
173
- | **Comments** | `add_comment` |
174
- | **Projects** | `create_project`, `list_projects` |
175
- | **Plans** | `create_plan`, `list_plans`, `get_plan`, `update_plan`, `delete_plan` |
176
- | **Agents** | `register_agent`, `list_agents`, `get_agent` |
177
- | **Task Lists** | `create_task_list`, `list_task_lists`, `get_task_list`, `update_task_list`, `delete_task_list` |
178
- | **Search** | `search_tasks` |
179
- | **Sync** | `sync` |
166
+ ### MCP Tools (40)
167
+
168
+ **Tasks:** `create_task`, `list_tasks`, `get_task`, `update_task`, `delete_task`, `start_task`, `complete_task`, `lock_task`, `unlock_task`, `approve_task`
169
+ **Dependencies:** `add_dependency`, `remove_dependency`
170
+ **Comments:** `add_comment`
171
+ **Projects:** `create_project`, `list_projects`
172
+ **Plans:** `create_plan`, `list_plans`, `get_plan`, `update_plan`, `delete_plan`
173
+ **Agents:** `register_agent`, `list_agents`, `get_agent`
174
+ **Task Lists:** `create_task_list`, `list_task_lists`, `get_task_list`, `update_task_list`, `delete_task_list`
175
+ **Search:** `search_tasks`
176
+ **Sync:** `sync`
177
+ **Audit:** `get_task_history`, `get_recent_activity`
178
+ **Webhooks:** `create_webhook`, `list_webhooks`, `delete_webhook`
179
+ **Templates:** `create_template`, `list_templates`, `create_task_from_template`, `delete_template`
180
180
 
181
181
  ### MCP Resources
182
182
 
@@ -208,28 +208,66 @@ The dashboard auto-refreshes every 30 seconds, supports dark mode, and includes
208
208
 
209
209
  ## REST API
210
210
 
211
- When running `todos serve`, the following REST API is available:
211
+ Start the server with `todos serve` or `todos-serve`. Default port: 19427.
212
+
213
+ ### Tasks
212
214
 
213
215
  | Method | Endpoint | Description |
214
216
  |--------|----------|-------------|
215
- | GET | `/api/stats` | Dashboard statistics |
216
- | GET | `/api/tasks` | List tasks (supports `?status=`, `?project_id=`, `?limit=`) |
217
- | POST | `/api/tasks` | Create a task |
217
+ | GET | `/api/tasks` | List tasks. Query: `?status=`, `?project_id=`, `?limit=` |
218
+ | POST | `/api/tasks` | Create task. Body: `{ title, description?, priority?, project_id?, estimated_minutes?, requires_approval? }` |
218
219
  | GET | `/api/tasks/:id` | Get task details |
219
- | PATCH | `/api/tasks/:id` | Update a task |
220
- | DELETE | `/api/tasks/:id` | Delete a task |
221
- | POST | `/api/tasks/:id/start` | Start a task |
222
- | POST | `/api/tasks/:id/complete` | Complete a task |
223
- | POST | `/api/tasks/bulk` | Bulk operations (start, complete, delete) |
224
- | GET | `/api/tasks/export?format=csv` | Export tasks as CSV |
225
- | GET | `/api/tasks/export?format=json` | Export tasks as JSON |
226
- | GET | `/api/projects` | List projects |
227
- | POST | `/api/projects` | Create a project |
228
- | DELETE | `/api/projects/:id` | Delete a project |
229
- | GET | `/api/agents` | List agents |
230
- | POST | `/api/agents` | Register an agent |
231
- | PATCH | `/api/agents/:id` | Update an agent |
232
- | DELETE | `/api/agents/:id` | Delete an agent |
220
+ | PATCH | `/api/tasks/:id` | Update task. Body: `{ title?, status?, priority?, description?, assigned_to?, tags?, due_at?, estimated_minutes?, requires_approval?, approved_by? }` |
221
+ | DELETE | `/api/tasks/:id` | Delete task |
222
+ | POST | `/api/tasks/:id/start` | Start task (sets in_progress, locks) |
223
+ | POST | `/api/tasks/:id/complete` | Complete task |
224
+ | GET | `/api/tasks/:id/history` | Get task audit log |
225
+ | POST | `/api/tasks/bulk` | Bulk ops. Body: `{ ids: [...], action: "start" | "complete" | "delete" }` |
226
+ | GET | `/api/tasks/export?format=csv` | Export as CSV |
227
+ | GET | `/api/tasks/export?format=json` | Export as JSON |
228
+
229
+ ### Projects
230
+
231
+ | Method | Endpoint | Description |
232
+ |--------|----------|-------------|
233
+ | GET | `/api/projects` | List all projects |
234
+ | POST | `/api/projects` | Create project. Body: `{ name, path, description? }` |
235
+ | DELETE | `/api/projects/:id` | Delete project |
236
+ | POST | `/api/projects/bulk` | Bulk delete. Body: `{ ids: [...], action: "delete" }` |
237
+
238
+ ### Plans
239
+
240
+ | Method | Endpoint | Description |
241
+ |--------|----------|-------------|
242
+ | GET | `/api/plans` | List plans. Query: `?project_id=` |
243
+ | POST | `/api/plans` | Create plan. Body: `{ name, description?, project_id?, task_list_id?, agent_id?, status? }` |
244
+ | GET | `/api/plans/:id` | Get plan with its tasks |
245
+ | PATCH | `/api/plans/:id` | Update plan |
246
+ | DELETE | `/api/plans/:id` | Delete plan |
247
+ | POST | `/api/plans/bulk` | Bulk delete |
248
+
249
+ ### Agents
250
+
251
+ | Method | Endpoint | Description |
252
+ |--------|----------|-------------|
253
+ | GET | `/api/agents` | List all agents |
254
+ | POST | `/api/agents` | Register agent. Body: `{ name, description?, role? }` |
255
+ | PATCH | `/api/agents/:id` | Update agent. Body: `{ name?, description?, role? }` |
256
+ | DELETE | `/api/agents/:id` | Delete agent |
257
+ | POST | `/api/agents/bulk` | Bulk delete |
258
+
259
+ ### Webhooks, Templates, Activity
260
+
261
+ | Method | Endpoint | Description |
262
+ |--------|----------|-------------|
263
+ | GET | `/api/webhooks` | List webhooks |
264
+ | POST | `/api/webhooks` | Create webhook. Body: `{ url, events?, secret? }` |
265
+ | DELETE | `/api/webhooks/:id` | Delete webhook |
266
+ | GET | `/api/templates` | List task templates |
267
+ | POST | `/api/templates` | Create template. Body: `{ name, title_pattern, description?, priority?, tags? }` |
268
+ | DELETE | `/api/templates/:id` | Delete template |
269
+ | GET | `/api/activity` | Recent audit log. Query: `?limit=50` |
270
+ | GET | `/api/stats` | Dashboard statistics |
233
271
 
234
272
  ## Sync
235
273
 
@@ -274,50 +312,48 @@ Claude uses native Claude Code task lists. Other agents use JSON files under `~/
274
312
  }
275
313
  ```
276
314
 
277
- ## CLI Commands
278
-
279
- ### Task Operations
280
-
281
- | Command | Description |
282
- |---------|-------------|
283
- | `todos add <title>` | Create a task (`-p` priority, `--tags`, `--list`, `--plan`, `--assign`, `--parent`) |
284
- | `todos list` | List tasks (`-s` status, `-p` priority, `--list`, `--tags`, `-a` all) |
285
- | `todos show <id>` | Show full task details with relations |
286
- | `todos update <id>` | Update fields (`--title`, `-s`, `-p`, `--tags`, `--list`, `--assign`) |
287
- | `todos start <id>` | Claim task, lock it, set to in_progress |
288
- | `todos done <id>` | Mark task completed, release lock |
289
- | `todos delete <id>` | Delete permanently |
290
- | `todos lock <id>` | Acquire exclusive lock |
291
- | `todos unlock <id>` | Release lock |
292
-
293
- ### Organization
294
-
295
- | Command | Description |
296
- |---------|-------------|
297
- | `todos lists` | List task lists (`--add`, `--delete`, `--slug`, `-d`) |
298
- | `todos plans` | List plans (`--add`, `--show`, `--delete`, `--complete`) |
299
- | `todos projects` | List projects (`--add`, `--name`, `--task-list-id`) |
300
- | `todos deps <id>` | Manage dependencies (`--needs`, `--remove`) |
301
- | `todos comment <id> <text>` | Add a comment to a task |
302
- | `todos search <query>` | Full-text search across tasks |
303
-
304
- ### Agent & System
305
-
306
- | Command | Description |
307
- |---------|-------------|
308
- | `todos init <name>` | Register agent, get short UUID (`-d` description) |
309
- | `todos agents` | List registered agents |
310
- | `todos sync` | Sync with agent task lists |
311
- | `todos mcp` | MCP server (`--register`, `--unregister`) |
312
- | `todos hooks install` | Install Claude Code auto-sync hooks |
313
- | `todos export` | Export tasks (`-f json\|md`) |
314
- | `todos upgrade` | Self-update to latest version |
315
-
316
- ### Global Options
317
-
318
- All commands support: `--project <path>`, `--json`, `--agent <name>`, `--session <id>`.
319
-
320
- Partial IDs work everywhere — use the first 8+ characters of any UUID.
315
+ ## CLI Reference
316
+
317
+ ```bash
318
+ # Task management
319
+ todos add "title" [-d desc] [-p priority] [--tags t1,t2] [--plan id] [--estimated 30] [--approval]
320
+ todos list [-s status] [-p priority] [--assigned agent] [--project-name name] [--agent-name name] [--sort field] [-a]
321
+ todos show <id> # Full task details with relations
322
+ todos update <id> [--title t] [-s status] [-p priority] [--tags t1,t2] [--estimated 30]
323
+ todos done <id> # Complete a task
324
+ todos start <id> # Claim, lock, and start
325
+ todos delete <id>
326
+ todos approve <id> # Approve a task requiring approval
327
+ todos history <id> # Show task audit log
328
+ todos search <query>
329
+ todos bulk <done|start|delete> <id1> <id2> ...
330
+ todos comment <id> <text>
331
+ todos deps <id> --add <dep_id> # Manage dependencies
332
+
333
+ # Plans
334
+ todos plans [--add name] [--show id] [--delete id] [--complete id]
335
+
336
+ # Templates
337
+ todos templates [--add name --title pattern] [--delete id] [--use id]
338
+
339
+ # Projects & Agents
340
+ todos projects [--add name --path /path]
341
+ todos agents
342
+ todos init <name> # Register an agent
343
+ todos lists # Manage task lists
344
+
345
+ # Utilities
346
+ todos count [--json] # Quick stats
347
+ todos watch [-s status] [-i 5] # Live-updating task list
348
+ todos config [--get key] [--set key=value]
349
+ todos export [--format csv|json]
350
+ todos sync [--task-list id] # Sync with Claude Code
351
+ todos serve [--port 19427] # Start web dashboard
352
+ todos interactive # Launch TUI
353
+ todos upgrade # Update to latest version
354
+ ```
355
+
356
+ All output supports `--json` for machine-readable format.
321
357
 
322
358
  ## Library Usage
323
359
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/todos",
3
- "version": "0.9.21",
3
+ "version": "0.9.22",
4
4
  "description": "Universal task management for AI coding agents - CLI + MCP server + interactive TUI",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",