← Back to Skills Marketplace
ricardofrantz

bun-do

by razo · GitHub ↗ · v1.3.0
cross-platform ⚠ suspicious
646
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install bun-do-api
Description
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...
README (SKILL.md)

bun-do — your local task backend

"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)

How users talk (map these to API calls)

User says Action
"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 \x3C 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.

API reference

Action Method Endpoint
List tasks GET /api/tasks
Add task POST /api/tasks
Edit task PUT /api/tasks/{id}
Delete task DELETE /api/tasks/{id}
Add subtask POST /api/tasks/{id}/subtasks
Edit subtask PUT /api/tasks/{id}/subtasks/{sid}
Delete subtask DELETE /api/tasks/{id}/subtasks/{sid}
Reorder backlog POST /api/tasks/reorder
Clear done POST /api/tasks/clear-done
List projects GET /api/projects
Add project POST /api/projects
Edit project PUT /api/projects/{id}
Delete project DELETE /api/projects/{id}
Add log entry POST /api/projects/{id}/entries
Delete log entry DELETE /api/projects/{id}/entries/{eid}

Task fields

{
  "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 patterns

Before any operation — check server is up

curl -sf http://localhost:8000/api/tasks > /dev/null && echo "OK" || echo "Server not running — run: bun-do start"

Add a task

curl -s -X POST http://localhost:8000/api/tasks \
  -H 'Content-Type: application/json' \
  -d '{"title": "Buy milk", "date": "2026-03-01", "priority": "P2"}'

Add a recurring payment

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}}'

Find task by title → get ID

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'])
"

Edit (only send fields to change)

curl -s -X PUT http://localhost:8000/api/tasks/TASK_ID \
  -H 'Content-Type: application/json' \
  -d '{"priority": "P0", "date": "2026-03-15"}'

Mark done

curl -s -X PUT http://localhost:8000/api/tasks/TASK_ID \
  -H 'Content-Type: application/json' \
  -d '{"done": true}'

Delete

curl -s -X DELETE http://localhost:8000/api/tasks/TASK_ID

Add subtask

curl -s -X POST http://localhost:8000/api/tasks/TASK_ID/subtasks \
  -H 'Content-Type: application/json' \
  -d '{"title": "Step one"}'

Log project progress

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"}'

Proactive patterns

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.

Rules

  • 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.
Usage Guidance
This skill appears to be a straightforward local-first adapter for a bun-do REST server running on localhost and does not request secrets or external network access. Before installing or enabling autonomous use: 1) Verify you actually run (or trust) a bun-do server on http://localhost:8000 — otherwise the skill's curl calls will fail or be a no-op. 2) The SKILL.md is truncated; review the full author documentation (if available) to confirm any omitted safety rules. 3) If you enable autonomous invocation, be aware the skill contains proactive scheduled patterns (morning briefing, EOD, weekly review) — make sure you are comfortable allowing the agent to run those actions against local data and confirm the bun-do server is not exposed to untrusted networks. 4) If you plan to install the suggested CLI, run the install command manually and inspect the package before granting global install privileges.
Capability Analysis
Type: OpenClaw Skill Name: bun-do-api Version: 1.3.0 The skill is classified as suspicious due to a potential shell injection vulnerability in the `SKILL.md` instructions. The 'Find task by title → get ID' section provides a `curl` command piped to `python3 -c` that includes a placeholder 'SEARCH'. If the OpenClaw agent directly substitutes user input into this placeholder without proper sanitization, it could lead to arbitrary command execution on the host machine. While the skill's stated purpose is benign (local task management via `http://localhost:8000`) and there's no evidence of intentional data exfiltration or malicious remote activity, this pattern represents a significant remote code execution risk.
Capability Assessment
Purpose & Capability
Name/description describe a local task manager backed by a local REST API; the SKILL.md exclusively documents calls to http://localhost:8000, a local data directory (~/.bun-do) and a suggested install command (bun install -g bun-do). No unrelated credentials, binaries, or external services are requested.
Instruction Scope
Instructions stay within the stated scope (curl/python to query the local API, date resolution, CRUD operations, and examples). The SKILL.md also includes proactive/scheduled patterns (morning briefing, end of day, weekly review) that enable autonomous/scheduled behavior; the file appears truncated at the end so some rules are missing — this creates ambiguity about any final constraints or safety checks.
Install Mechanism
There is no install spec in the registry entry (instruction-only). The doc suggests installing a CLI via 'bun install -g bun-do', which is a reasonable, proportional suggestion for a local app but is not enforced by the skill and would run out-of-band if the user chooses to install it.
Credentials
The skill declares no required environment variables or credentials. It notes optional overrides (BUNDO_DATA_DIR and a --port flag) which are reasonable and proportional for a local data directory and port configuration.
Persistence & Privilege
always is false (good). The skill does allow autonomous invocation (disable-model-invocation=false) and the instructions explicitly include proactive/autonomous patterns — if you allow the agent to invoke skills autonomously, it could run scheduled operations against your local service. That combination is expected for a task manager but worth conscious consideration.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install bun-do-api
  3. After installation, invoke the skill by name or use /bun-do-api
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.3.0
Initial release. bun-do is a local-first todo app (npm: bun-do, GitHub: github.com/ricardofrantz/bun-do) that acts as a task backend for OpenClaw agents. This skill exposes the REST API for managing tasks, subtasks, recurring payments, and project progress logs — all persisted to local JSON files. Also ships as an MCP server (bun-do-mcp).
Metadata
Slug bun-do-api
Version 1.3.0
License
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is bun-do?

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... It is an AI Agent Skill for Claude Code / OpenClaw, with 646 downloads so far.

How do I install bun-do?

Run "/install bun-do-api" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is bun-do free?

Yes, bun-do is completely free (open-source). You can download, install and use it at no cost.

Which platforms does bun-do support?

bun-do is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created bun-do?

It is built and maintained by razo (@ricardofrantz); the current version is v1.3.0.

💬 Comments