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 cl...
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.