Taskboard CLI
name: taskboard-cli
by ckouder · published 2026-03-22
$ claw add gh:ckouder/ckouder-taskboard-cli---
name: taskboard-cli
version: 3.0.1
description: "Lightweight task management CLI for multi-agent workflows. SQLite backend, no external dependencies or credentials. Status-change hooks emit agent instructions (message, session) but do not auto-execute. Use when managing tasks across agents, tracking work status, assigning tasks, generating board summaries, or orchestrating cross-agent handoffs. Triggers on \"create task\", \"task board\", \"taskboard\", \"list tasks\", \"assign task\", \"board summary\", \"project tasks\"."
---
# Taskboard CLI
SQLite-backed task management for multi-agent projects. No network calls, no credentials, no environment variables.
Quick Start
# Create tasks
python3 scripts/taskboard.py create "Build auth" --assign code-engineer --priority high
python3 scripts/taskboard.py create "Design UI" --assign designer --criteria "Responsive, mobile-first"
# Manage tasks
python3 scripts/taskboard.py update 1 --status in_progress --author code-engineer
python3 scripts/taskboard.py comment 1 "PR #42 ready" --author code-engineer
python3 scripts/taskboard.py update 1 --status done --author code-engineer --note "Merged to main"
# View board
python3 scripts/taskboard.py list --status in_progress
python3 scripts/taskboard.py show 1
python3 scripts/taskboard.py show 1 --json
python3 scripts/taskboard.py summary
# Subtasks
python3 scripts/taskboard.py create "Write tests" --parent 1 --assign code-engineer
# Thread linking
python3 scripts/taskboard.py set-thread 1 1484268803994026085
python3 scripts/taskboard.py get-thread 1
# Change history
python3 scripts/taskboard.py history 1Custom Database Path
By default the database lives at `scripts/taskboard.db`. Override with `--db`:
python3 scripts/taskboard.py --db /path/to/my.db listTask Statuses
`todo` → `in_progress` → `done`
Also: `blocked`, `rejected`
No "review" status — use hooks to create follow-up tasks or notify agents.
Hooks (Cross-Agent Orchestration)
Hooks fire when task status changes. They print instructions to stdout for the calling agent to execute — no auto-execution, no network calls.
# When task is started (ack'd), print a notification instruction
python3 scripts/taskboard.py create "Build auth" \
--on-ack "message:CHANNEL_ID:🔨 {task.title} started by {task.assigned_to}"
# When done, instruct the agent to create a review task
python3 scripts/taskboard.py create "Design UI" \
--on-done "session:tech-lead:Review {task.title} and create QA task"
# Add/update hooks on existing task
python3 scripts/taskboard.py update 1 --on-done "message:CHANNEL_ID:Done!"Hook output format:
🔔 ON_ACK: message:CHANNEL_ID:🔨 Build auth started
🔔 ON_DONE: session:tech-lead:Review Build auth and create QA taskThe agent reads these lines and decides how to act (send a message, spawn a session, create a task, etc.).
Data Model
Schema auto-initializes on first run. Upgrades from v1 (missing on_ack/on_done columns) are handled automatically.
Reference
More tools from the same signal band
Order food/drinks (点餐) on an Android device paired as an OpenClaw node. Uses in-app menu and cart; add goods, view cart, submit order (demo, no real payment).
Sign plugins, rotate agent credentials without losing identity, and publicly attest to plugin behavior with verifiable claims and authenticated transfers.
The philosophical layer for AI agents. Maps behavior to Spinoza's 48 affects, calculates persistence scores, and generates geometric self-reports. Give your...