| name | tasktrove |
| description | Manage todos via Tasktrove API. Use for listing, creating, completing, or updating tasks. Triggers on task/todo requests like "what's on my todo list", "add a task", "mark X done", "what's due today". |
Tasktrove Todo Management
Manage tasks via a self-hosted Tasktrove instance. (GitHub)
Configuration
Set the following environment variable:
export TASKTROVE_HOST="http://your-server:3333"
Optionally, if your instance requires authentication:
export TASKTROVE_TOKEN="your-api-token"
Quick Reference
Using the CLI script
python3 scripts/tasks.py list --today
python3 scripts/tasks.py list --overdue
python3 scripts/tasks.py list --week
python3 scripts/tasks.py add "Task title" --due 2026-02-10 --priority 2
python3 scripts/tasks.py complete abc123
python3 scripts/tasks.py search "keyword"
Direct API calls
List Tasks
curl -s "$TASKTROVE_HOST/api/v1/tasks"
Create Task
curl -X POST "$TASKTROVE_HOST/api/v1/tasks" \
-H "Content-Type: application/json" \
-d '{
"id": "<uuid>",
"title": "Task title",
"priority": 4,
"dueDate": "2026-02-06",
"completed": false,
"labels": [],
"subtasks": [],
"comments": [],
"createdAt": "2026-02-06T12:00:00.000Z",
"recurringMode": "dueDate"
}'
Complete/Update Task
curl -X PATCH "$TASKTROVE_HOST/api/v1/tasks" \
-H "Content-Type: application/json" \
-d '{"id": "<task-id>", "completed": true}'
Delete Task
curl -X DELETE "$TASKTROVE_HOST/api/v1/tasks/<task-id>"
Task Schema
| Field | Type | Notes |
|---|
| id | string | UUID (required on create) |
| title | string | Required |
| description | string | Optional |
| completed | boolean | Default false |
| priority | number | 1 (highest) to 4 (lowest) |
| dueDate | string | YYYY-MM-DD format |
| projectId | string | UUID of project |
| labels | string[] | Array of label UUIDs |
| subtasks | object[] | Nested subtasks |
| recurring | string | RRULE format |
Priority Levels
- P1: Urgent/critical
- P2: High priority
- P3: Medium priority
- P4: Low priority (default)
Notes
- The Tasktrove UI supports natural language input, but the API expects structured JSON
- PATCH operations use the collection endpoint with ID in the request body
- POST requires all schema fields to be present