← Back to Skills Marketplace
wujiao233

Kan.bn TODO API

by Qihao · GitHub ↗ · v0.1.0 · MIT-0
cross-platform ⚠ suspicious
495
Downloads
1
Stars
0
Active Installs
3
Versions
Install in OpenClaw
/install kanbn-todo-api
Description
Manage personal TODOs in Kan.bn through API-driven operations. Use this whenever the user wants to create, update, move, prioritize, search, summarize, or cl...
README (SKILL.md)

Kan.bn TODO API

Use this skill to run Kan.bn personal task workflows via scripts/kanbn_todo.py.

Keep the interaction goal-oriented: figure out the user's intended task change, discover any missing IDs, execute the smallest correct API operation, then report the result clearly.

Configure authentication

Set auth before running commands:

  • KANBN_TOKEN for bearer auth, or
  • KANBN_API_KEY for API-key auth.

Auth lookup order in kanbn_todo.py:

  1. CLI flags (--token, --api-key, --base-url)
  2. Process environment (KANBN_TOKEN, KANBN_API_KEY, KANBN_BASE_URL)
  3. ~/.bashrc export values (for non-interactive runs)

Optional:

  • KANBN_BASE_URL (defaults to https://kan.bn/api/v1)

If auth is missing, stop early and ask for credentials or confirm the env source.

Follow the standard execution flow

1) Discover context before mutating data

When the user has not provided concrete Kan.bn IDs, resolve them first.

python3 scripts/kanbn_todo.py me
python3 scripts/kanbn_todo.py workspaces
python3 scripts/kanbn_todo.py boards --workspace-id \x3CworkspacePublicId>

Use this discovery flow for requests like:

  • "Add a todo in Kan.bn"
  • "Move my task to done"
  • "Find the board with invoices"

If the user already provided exact card/list/workspace IDs, skip the discovery steps you do not need.

2) Create, then read back

After creating a TODO, read it back when the user cares about confirmation, due date, labels, or returned IDs.

python3 scripts/kanbn_todo.py todo-create \
  --list-id \x3CtodoListPublicId> \
  --title "Pay electricity bill" \
  --description "Before Friday" \
  --due-date "2026-03-06T09:00:00.000Z"

python3 scripts/kanbn_todo.py todo-get --card-id \x3CcardPublicId>

3) Prefer the narrowest mutation

Choose the command that most directly matches the requested change.

  • Edit title/description/due date -> todo-update
  • Change workflow status/list -> todo-move
  • Add or remove a label -> todo-label-toggle
  • Delete the task -> todo-delete

Edit fields:

python3 scripts/kanbn_todo.py todo-update \
  --card-id \x3CcardPublicId> \
  --title "Pay electricity + water bill" \
  --description "Do both tonight"

Change status by moving lists (e.g., TODO -> DOING -> DONE):

python3 scripts/kanbn_todo.py todo-move \
  --card-id \x3CcardPublicId> \
  --to-list-id \x3CdoingListPublicId>

Delete TODO:

python3 scripts/kanbn_todo.py todo-delete --card-id \x3CcardPublicId>

Apply the priority label policy

When a request asks to set, mark, sort, or batch-assign priorities, use labels (P0-P4) as the source of truth.

  • Apply priority via label changes.
  • Do not encode priority in titles.
  • Keep task titles focused on the actual work item text.
  • If the correct priority label ID is unknown, inspect board metadata first.
  • Official Kan.bn docs expose label changes on a dedicated endpoint, not todo-update.

For an existing card:

python3 scripts/kanbn_todo.py todo-label-toggle \
  --card-id \x3CcardPublicId> \
  --label-id \x3Cp1LabelPublicId>

Use personal productivity workflows

Search tasks in a workspace:

python3 scripts/kanbn_todo.py search --workspace-id \x3CworkspacePublicId> --query "bill"

Add personal notes/comments:

python3 scripts/kanbn_todo.py comment-add --card-id \x3CcardPublicId> --comment "Waiting for invoice"

Track subtasks with checklist:

python3 scripts/kanbn_todo.py checklist-add --card-id \x3CcardPublicId> --name "Prep"
python3 scripts/kanbn_todo.py checkitem-add --checklist-id \x3CchecklistPublicId> --title "Download invoice"
python3 scripts/kanbn_todo.py checkitem-update --item-id \x3CchecklistItemPublicId> --completed true

Update the personal profile only when the user explicitly asks:

python3 scripts/kanbn_todo.py user-update --name "New Name"

Handle missing information carefully

When the user asks for an operation but key identifiers are missing:

  • Discover the smallest missing context first
  • Prefer search when the user describes a task by text instead of card ID
  • Prefer boards when the missing information is board or list structure
  • Ask a follow-up question only after exhausting cheap discovery paths

Good examples:

  • User says "mark my invoice task done" -> search for invoice-related cards, identify the likely card, then move it
  • User says "add this to my finance board" -> resolve workspace and boards, then ask only if multiple plausible lists remain

Read references only when needed

  • Read references/common-workflows.md for reusable end-to-end task patterns
  • Read references/api-scope.md when endpoint details or scope boundaries matter
  • Read references/smoke-test.md after changing the script or when validating the skill against a live Kan.bn account

Respect scope

Use only single-user TODO endpoints in this skill.

Do not run collaboration, invite, import, integration, or attachment flows here.

Usage Guidance
This skill appears to implement a legitimate single-user Kan.bn TODO client, but note two things before installing: (1) the registry metadata does not declare the credentials the skill expects — SKILL.md and the script expect KANBN_TOKEN or KANBN_API_KEY — so be prepared to provide those when using the skill; (2) the included script will try to read ~/.bashrc exports as a fallback to discover those credentials, which is convenient but can expose other stored values if your shell RC contains secrets. Recommended actions: inspect the script yourself (it is included) to confirm no unexpected behavior, avoid putting unrelated secrets in ~/.bashrc, consider creating a scoped/ephemeral Kan.bn API key for this skill, test with the self-test command first (no network access), and only supply credentials when you trust the skill source. If you cannot verify the publisher or prefer not to share credentials, do not enable the skill.
Capability Analysis
Type: OpenClaw Skill Name: kanbn-todo-api Version: 0.1.0 The skill is a functional Kan.bn API client, but it contains a high-risk behavior in `scripts/kanbn_todo.py`: the `_load_bashrc_env` function explicitly reads and parses the user's `~/.bashrc` file to extract authentication tokens. While the script attempts to filter for specific keys (`KANBN_TOKEN`, `KANBN_API_KEY`), accessing shell configuration files is an invasive and non-standard practice for a task-management skill that could lead to unintended data exposure. The rest of the bundle, including the agent instructions in `SKILL.md` and the API implementation, appears aligned with the stated purpose of managing personal tasks.
Capability Assessment
Purpose & Capability
Name/description align with a single-user Kan.bn TODO client and the included script implements appropriate API calls. However, the registry metadata declares no required credentials while the SKILL.md and script clearly require either KANBN_TOKEN or KANBN_API_KEY for operation. That mismatch is unexplained and inconsistent.
Instruction Scope
Runtime instructions stay focused on single-user TODO workflows and encourage minimal discovery before mutation. They also instruct the agent to use the provided script, which itself attempts to read ~/.bashrc exports as a fallback for auth. Reading ~/.bashrc is limited to extracting the three Kan.bn-related names, but any file read of a user's shell rc is a privacy surface worth flagging.
Install Mechanism
No install spec is present (instruction-only skill with an included script). Nothing is downloaded during install; risk from install mechanism is low. The script will be executed if the agent runs it, and it performs network calls to the Kan.bn API.
Credentials
The script requires a Kan.bn bearer token or API key (KANBN_TOKEN or KANBN_API_KEY) and optionally KANBN_BASE_URL; these are proportionate to the task. But the skill registry didn't declare these required env vars or a primary credential, creating an inconsistency that could surprise users. The script's fallback to parse ~/.bashrc to find these values increases the chance of inadvertently exposing secrets stored there.
Persistence & Privilege
The skill is not forced into every agent run (always: false), is user-invocable, and does not request elevated or system-wide privileges. It does not attempt to modify other skills or global agent settings.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install kanbn-todo-api
  3. After installation, invoke the skill by name or use /kanbn-todo-api
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.0
Improve trigger coverage, add workflow references, add evals, add smoke test docs, and add local self-test command.
v1.0.1
Fix existing-card priority label updates via the official label endpoint; send Content-Type for empty PUT/PATCH requests; refresh docs and API scope.
v1.0.0
Initial release: personal Kan.bn TODO management (CRUD, status moves, checklist/comments/search/profile).
Metadata
Slug kanbn-todo-api
Version 0.1.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 3
Frequently Asked Questions

What is Kan.bn TODO API?

Manage personal TODOs in Kan.bn through API-driven operations. Use this whenever the user wants to create, update, move, prioritize, search, summarize, or cl... It is an AI Agent Skill for Claude Code / OpenClaw, with 495 downloads so far.

How do I install Kan.bn TODO API?

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

Is Kan.bn TODO API free?

Yes, Kan.bn TODO API is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Kan.bn TODO API support?

Kan.bn TODO API is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Kan.bn TODO API?

It is built and maintained by Qihao (@wujiao233); the current version is v0.1.0.

💬 Comments