Kanboard CLI reference

Kanboard CLI reference

Capability kanboard. Root command: flowbot kanban.

Global flags: --server-url, --profile, --debug / -d, --yes / -y, --no-input, --idempotency-key. Every leaf accepts -o table|json (default table, omitted below).

Output and exit codes

-o json writes a two-space indented object to stdout and a trailing newline: {"data": ...}. Paginated commands also include page (limit, has_more, and next_cursor when another page exists), including an empty page and the last page. Commands that are not paginated omit page. data is the API object: a list is an array, an id-only delete is {"id":"..."}, and an empty success is {}. The default stays table. A non-terminal stdin does not change the format; it implies --no-input. A pseudo-terminal still prompts.

Failures with -o json leave stdout empty and write {"error":{"code","message","retryable","hint"}} to stderr. Exit codes: 0 success, 1 internal / run_failed / cancelled / non-retryable provider_error, 2 invalid_argument, 3 unauthenticated or permission_denied, 4 not_found, 5 conflict, already_exists, or idempotency_unknown, 6 retryable transient (rate_limited, unavailable, timeout, retryable provider_error), 7 confirmation_required, 8 not_implemented. Retry the same call only on exit 6. conflict is exit 5 with retryable: true: re-read, then write. idempotency_unknown is exit 5 with retryable: false: list or get, and use a new idempotency key only when that read shows the effect did not happen. A write still in progress is unavailable, exit 6: retry the same call with the same idempotency key. Mint an idempotency_key before the first write and send that same key on every retry. Pass --yes to confirm. --no-input without --yes exits 7 and does not read stdin. A declined prompt is exit 1, code cancelled. --help stays text. pipeline export and workflow export take --file for a YAML path; -o is only the format.

Commands

Add a card to a kanban board

flowbot kanban card add --title <title> [flags]

Create a new task in the specified column

Flags: --category int — Category ID; --column (-c) int — Column ID; --description string — Card description; --due string — Due date (YYYY-MM-DD, local midnight); --project (-p) int — Project ID; --swimlane int — Swimlane ID; --title (-t) string, required — Card title

Delete a card from a kanban board

flowbot kanban card delete <card-id>

Close a task by ID

Move a card to another column

flowbot kanban card move <card-id> --column <column> [flags]

Move a task to a different column

Flags: --column (-c) int, required — Destination column ID; --position (-p) int — Position in column (0 = first); --project (-r) int — Project ID; --swimlane int — Swimlane ID

List categories in a project

flowbot kanban category list [flags]

Display all categories in the specified project

Flags: --project (-p) int — Project ID

List columns in a project

flowbot kanban column list [flags]

Display all columns in the specified project

Flags: --project (-p) int — Project ID

Create a new kanban task

flowbot kanban create --title <title> [flags]

Add a new task to the kanban board

Flags: --category int — Category ID; --column (-c) int — Column ID; --description string — Task description; --due string — Due date (YYYY-MM-DD, local midnight); --project (-p) int — Project ID; --swimlane int — Swimlane ID; --title (-t) string, required — Task title

Close a kanban task

flowbot kanban delete <id>

Close a task by ID

Get a kanban task by ID

flowbot kanban get <id>

Display details of a specific kanban task

List all kanban tasks

flowbot kanban list [flags]

Display kanban tasks from Flowbot server

Flags: --project (-p) int — Project ID; --status (-s) string — Status filter (active, inactive, all)

Delete task metadata

flowbot kanban metadata delete <task_id> <name>

Delete a metadata entry from a task

Get task metadata

flowbot kanban metadata get <task_id> [name]

Get all metadata or a specific metadata value by name

Set task metadata

flowbot kanban metadata set <task_id> <name=value>...

Set one or more metadata values for a task

Move a kanban task to another column

flowbot kanban move <id> --column <column> [flags]

Move a task to a different column

Flags: --column (-c) int, required — Destination column ID; --position (-p) int — Position in column (0 = first); --project (-r) int — Project ID; --swimlane int — Swimlane ID

Create a kanban project

flowbot kanban project create --name <name> [flags]

Create a new kanban project

Flags: --description string — Project description; --name (-n) string, required — Project name

List kanban projects

flowbot kanban project list

Display all kanban projects

Search kanban tasks

flowbot kanban search <query> [flags]

Search tasks using kanboard search syntax

Flags: --project (-p) int — Project ID

Create a new subtask

flowbot kanban subtask create <task_id> --title <title> [flags]

Add a subtask to a kanban task

Flags: --status int — Status (0=Todo, 1=In progress, 2=Done); --time-estimated (-e) int — Estimated time (minutes); --time-spent (-s) int — Time spent (minutes); --title (-t) string, required — Subtask title; --user (-u) int — User ID to assign

Delete a subtask

flowbot kanban subtask delete <task_id> <subtask_id>

Remove a subtask by ID

Get a subtask by ID

flowbot kanban subtask get <task_id> <subtask_id>

Display details of a specific subtask

List subtasks for a task

flowbot kanban subtask list <task_id>

Display all subtasks for a given task

Check if timer is active

flowbot kanban subtask timer check <task_id> <subtask_id> [flags]

Check if a timer is started for the given subtask and user

Flags: --user (-u) int — User ID

Get time spent

flowbot kanban subtask timer spent <task_id> <subtask_id> [flags]

Get time spent on a subtask for a user (in hours)

Flags: --user (-u) int — User ID

Start subtask timer

flowbot kanban subtask timer start <task_id> <subtask_id> [flags]

Start subtask timer for a user

Flags: --user (-u) int — User ID

Stop subtask timer

flowbot kanban subtask timer stop <task_id> <subtask_id> [flags]

Stop subtask timer for a user

Flags: --user (-u) int — User ID

Update a subtask

flowbot kanban subtask update <task_id> <subtask_id> [flags]

Modify an existing subtask

Flags: --status int — Status (0=Todo, 1=In progress, 2=Done, -1 to leave unchanged); --time-estimated (-e) int — Estimated time (minutes, -1 to clear); --time-spent (-s) int — Time spent (minutes, -1 to clear); --title (-t) string — New title; --user (-u) int — User ID to assign (-1 to unassign)

List swimlanes in a project

flowbot kanban swimlane list [flags]

Display all swimlanes in the specified project

Flags: --project (-p) int — Project ID

Create a new tag

flowbot kanban tag create --name <name> [flags]

Add a new tag to the kanban board

Flags: --color (-c) string — Color ID; --name (-n) string, required — Tag name; --project (-p) int — Project ID

Delete a tag

flowbot kanban tag delete <id>

Remove a tag by ID

List all tags

flowbot kanban tag list [flags]

Display kanban tags

Flags: --project (-p) int — Project ID (if specified, list tags for this project)

Get tags for a task

flowbot kanban tag task get <task_id>

Display tags assigned to a task

Set tags for a task

flowbot kanban tag task set <task_id> --project <project> --tags <tags>

Assign tags to a task

Flags: --project (-p) int, required — Project ID; --tags (-t) stringSlice, required — Tag names (can be specified multiple times)

Update a tag

flowbot kanban tag update <id> --name <name> [flags]

Modify an existing tag

Flags: --color (-c) string — Color ID; --name (-n) string, required — New tag name

Update a kanban task

flowbot kanban update <id> [flags]

Modify an existing kanban task

Flags: --category int — Category ID; --description string — New description; --due string — Due date (YYYY-MM-DD, local midnight); --swimlane int — Swimlane ID; --title (-t) string — New title