Install
openclaw skills install kanbn-todo-apiManage personal TODOs in Kan.bn through API-driven operations. Use this whenever the user wants to create, update, move, prioritize, search, summarize, or clean up their own Kan.bn tasks or board data, even if they do not explicitly mention the API. Trigger on requests like "add a todo", "mark this P1", "move this to done", "find my invoice task", "update my Kan.bn profile", or similar single-user Kan.bn task-management workflows. Exclude multi-user collaboration, invites, integrations/imports, and attachments.
openclaw skills install kanbn-todo-apiUse 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.
Set auth before running commands:
KANBN_TOKEN for bearer auth, orKANBN_API_KEY for API-key auth.Auth lookup order in kanbn_todo.py:
--token, --api-key, --base-url)KANBN_TOKEN, KANBN_API_KEY, KANBN_BASE_URL)~/.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.
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 <workspacePublicId>
Use this discovery flow for requests like:
If the user already provided exact card/list/workspace IDs, skip the discovery steps you do not need.
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 <todoListPublicId> \
--title "Pay electricity bill" \
--description "Before Friday" \
--due-date "2026-03-06T09:00:00.000Z"
python3 scripts/kanbn_todo.py todo-get --card-id <cardPublicId>
Choose the command that most directly matches the requested change.
todo-updatetodo-movetodo-label-toggletodo-deleteEdit fields:
python3 scripts/kanbn_todo.py todo-update \
--card-id <cardPublicId> \
--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 <cardPublicId> \
--to-list-id <doingListPublicId>
Delete TODO:
python3 scripts/kanbn_todo.py todo-delete --card-id <cardPublicId>
When a request asks to set, mark, sort, or batch-assign priorities, use labels (P0-P4) as the source of truth.
todo-update.For an existing card:
python3 scripts/kanbn_todo.py todo-label-toggle \
--card-id <cardPublicId> \
--label-id <p1LabelPublicId>
Search tasks in a workspace:
python3 scripts/kanbn_todo.py search --workspace-id <workspacePublicId> --query "bill"
Add personal notes/comments:
python3 scripts/kanbn_todo.py comment-add --card-id <cardPublicId> --comment "Waiting for invoice"
Track subtasks with checklist:
python3 scripts/kanbn_todo.py checklist-add --card-id <cardPublicId> --name "Prep"
python3 scripts/kanbn_todo.py checkitem-add --checklist-id <checklistPublicId> --title "Download invoice"
python3 scripts/kanbn_todo.py checkitem-update --item-id <checklistItemPublicId> --completed true
Update the personal profile only when the user explicitly asks:
python3 scripts/kanbn_todo.py user-update --name "New Name"
When the user asks for an operation but key identifiers are missing:
search when the user describes a task by text instead of card IDboards when the missing information is board or list structureGood examples:
references/common-workflows.md for reusable end-to-end task patternsreferences/api-scope.md when endpoint details or scope boundaries matterreferences/smoke-test.md after changing the script or when validating the skill against a live Kan.bn accountUse only single-user TODO endpoints in this skill.
Do not run collaboration, invite, import, integration, or attachment flows here.