Issues (Board)
The Board is cmdop’s local + remote backlog. Issues have IDs like CMD-42, are atomically minted, and live in cmdop.db (SQLite). The CLI is a thin wrapper around internal/storage/backlog/.
Issues created via CLI are visible to the desktop Board tab and the web cabinet’s observability section. The same cmdop.db is read by all surfaces — there is no separate “CLI board” vs “web board”.
List issues
cmdop issue list
cmdop issue list --status open
cmdop issue list --label backend --label priority
cmdop issue list --assignee me
cmdop issue list --jsonOutput:
ID STATUS TITLE LABELS ASSIGNEE
CMD-42 in-progress Investigate flaky test bug, flaky alice
CMD-41 open Rotate Postgres backups ops -
CMD-40 closed Upgrade nginx to 1.27 ops bobShow, create, update
cmdop issue show CMD-42
cmdop issue create --title "Investigate flaky test" --label bug --label flaky
cmdop issue update CMD-42 --status in-progress --assignee alice
cmdop issue update CMD-42 --label +backend --label -frontend # add/remove labels
cmdop issue update CMD-42 --description "$(cat notes.md)"cmdop issue create mints the next sequential CMD-N atomically (concurrent CLI + daemon writers don’t collide).
Close / delete
cmdop issue close CMD-42 --reason "fixed in 1.2.3"
cmdop issue delete CMD-42Closing snapshots the reason for the audit trail. Deletion is permanent — close is preferred unless the issue was created by accident.
Anchoring chat to an issue
cmdop chat --issue CMD-42 makes the agent’s todo_write and delegate_task outputs land under that issue. Subagent results are also threaded under it. Cross-link to ./chat.
cmdop chat --issue CMD-42
cmdop chat --machine vps-audi --issue CMD-42After the chat exits, view what landed:
cmdop issue show CMD-42ID minting
IDs (CMD-N) are atomically minted across concurrent CLI + daemon writers via a SQLite sequence. Don’t try to predict the next ID — fetch after create, or use --json to capture the new ID:
NEW_ID=$(cmdop issue create --title "x" --json | jq -r '.id')
cmdop issue show "$NEW_ID"Subtasks
Pass --parent to make an issue a subtask of another:
cmdop issue create --title "Add fixture for case A" --parent CMD-42
cmdop issue create --title "Add fixture for case B" --parent CMD-42Subtasks show indented in cmdop issue list.
Tools the agent uses
Inside chat, the agent can call issue_list, issue_get, issue_create, issue_update, issue_close. These are gated by the standard permission system. Cross-link to the agent runtime docs.
Filter combinations
cmdop issue list --status open --label bug --assignee alice
cmdop issue list --status closed --since 7d
cmdop issue list --search "nginx" # full-text search