← 返回 Skills 市场
ricardofrantz

bun-do

作者 razo · GitHub ↗ · v1.3.0
cross-platform ⚠ suspicious
646
总下载
0
收藏
0
当前安装
1
版本数
在 OpenClaw 中安装
/install bun-do-api
功能描述
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...
使用说明 (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.
安全使用建议
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.
功能分析
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.
能力评估
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.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install bun-do-api
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /bun-do-api 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
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).
元数据
Slug bun-do-api
版本 1.3.0
许可证
累计安装 0
当前安装数 0
历史版本数 1
常见问题

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... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 646 次。

如何安装 bun-do?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install bun-do-api」即可一键安装,无需额外配置。

bun-do 是免费的吗?

是的,bun-do 完全免费(开源免费),可自由下载、安装和使用。

bun-do 支持哪些平台?

bun-do 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 bun-do?

由 razo(@ricardofrantz)开发并维护,当前版本 v1.3.0。

💬 留言讨论