Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Manage bun-do tasks and projects — add tasks, edit tasks, delete tasks, toggle done, manage subtasks, and log project progress entries. Use when the user say...
Manage bun-do tasks and projects — add tasks, edit tasks, delete tasks, toggle done, manage subtasks, and log project progress entries. Use when the user say...
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
"Add P1 task: renew passport, due March 30, recurring yearly, with €85 payment" bun-do is a local-first todo app. REST API at http://localhost:8000. All data persists to JSON on disk. Nothing leaves your machine. Start: bun-do start (install: bun install -g bun-do) Data: ~/.bun-do/ (override: BUNDO_DATA_DIR) Port: 8000 (override: --port=PORT)
User saysAction"add task: buy milk"POST /api/tasks {"title": "Buy milk"}"remind me to call dentist tomorrow"POST with {"title": "Call dentist", "date": "TOMORROW", "type": "reminder"}"P0 deadline: submit proposal by Friday"POST with {"title": "Submit proposal", "date": "FRIDAY", "priority": "P0", "type": "deadline"}"add monthly payment: rent €1200 on the 1st"POST with {"title": "Rent", "type": "payment", "amount": "1200", "currency": "EUR", "recurrence": {"type": "monthly", "day": 1}}"what's overdue?"GET /api/tasks, filter done=false where date < today"mark passport task done"Search by title → PUT {"done": true}"what should I do today?"GET /api/tasks, filter for today's date, sort by priority"move it to next week"PUT with {"date": "NEXT_MONDAY"}"add subtask: book flight"POST /api/tasks/{id}/subtasks {"title": "Book flight"}"log progress on bun-do: shipped v1.3"POST /api/projects/{id}/entries {"summary": "Shipped v1.3"} Important: Always resolve relative dates ("tomorrow", "next Friday") to YYYY-MM-DD before sending.
ActionMethodEndpointList tasksGET/api/tasksAdd taskPOST/api/tasksEdit taskPUT/api/tasks/{id}Delete taskDELETE/api/tasks/{id}Add subtaskPOST/api/tasks/{id}/subtasksEdit subtaskPUT/api/tasks/{id}/subtasks/{sid}Delete subtaskDELETE/api/tasks/{id}/subtasks/{sid}Reorder backlogPOST/api/tasks/reorderClear donePOST/api/tasks/clear-doneList projectsGET/api/projectsAdd projectPOST/api/projectsEdit projectPUT/api/projects/{id}Delete projectDELETE/api/projects/{id}Add log entryPOST/api/projects/{id}/entriesDelete log entryDELETE/api/projects/{id}/entries/{eid}
{ "title": "string (required)", "date": "YYYY-MM-DD (default: today)", "priority": "P0 | P1 | P2 | P3 (default: P2)", "type": "task | deadline | reminder | payment (default: task)", "notes": "string", "done": false, "amount": "string (for payments)", "currency": "CHF | USD | EUR | BRL (default: CHF)", "recurrence": null | {"type": "weekly", "dow": 0-6} | {"type": "monthly", "day": 1-31} | {"type": "yearly", "month": 1-12, "day": 1-31} } Priorities: P0 = critical/drop everything, P1 = high/do today, P2 = normal, P3 = backlog (not on calendar). Types: task = actionable, deadline = hard date, reminder = FYI, payment = bill/invoice tracker. Recurring: When a recurring task is marked done, the next occurrence is auto-created.
curl -sf http://localhost:8000/api/tasks > /dev/null && echo "OK" || echo "Server not running — run: bun-do start"
curl -s -X POST http://localhost:8000/api/tasks \ -H 'Content-Type: application/json' \ -d '{"title": "Buy milk", "date": "2026-03-01", "priority": "P2"}'
curl -s -X POST http://localhost:8000/api/tasks \ -H 'Content-Type: application/json' \ -d '{"title": "Server hosting", "date": "2026-03-01", "priority": "P1", "type": "payment", "amount": "29", "currency": "USD", "recurrence": {"type": "monthly", "day": 1}}'
curl -s http://localhost:8000/api/tasks | python3 -c " import sys, json for t in json.load(sys.stdin)['tasks']: if 'SEARCH' in t['title'].lower(): print(t['id'], t['title']) "
curl -s -X PUT http://localhost:8000/api/tasks/TASK_ID \ -H 'Content-Type: application/json' \ -d '{"priority": "P0", "date": "2026-03-15"}'
curl -s -X PUT http://localhost:8000/api/tasks/TASK_ID \ -H 'Content-Type: application/json' \ -d '{"done": true}'
curl -s -X DELETE http://localhost:8000/api/tasks/TASK_ID
curl -s -X POST http://localhost:8000/api/tasks/TASK_ID/subtasks \ -H 'Content-Type: application/json' \ -d '{"title": "Step one"}'
curl -s -X POST http://localhost:8000/api/projects/PROJECT_ID/entries \ -H 'Content-Type: application/json' \ -d '{"summary": "Shipped v1.3 with MCP server and OpenClaw skill"}'
Use these patterns for scheduled/autonomous behavior: Morning briefing: GET /api/tasks, filter for today + overdue, summarize by priority. End of day: Mark completed tasks done, add entries to active projects. Weekly review: List all tasks, highlight overdue + P0/P1 without progress. Payment forecast: List tasks where type=payment, group by month, sum amounts.
Always verify the server is running before any API call. Never guess IDs — search by title first, then use the UUID. Dates must be YYYY-MM-DD. Resolve "tomorrow", "next Monday", etc. before sending. Only send fields you want to change on PUT requests. The API returns the created/updated object on success. GET /api/tasks auto-carries overdue non-payment tasks to today.
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.