hirotm boards commands let you list boards, probe a board’s structure without loading every task (boards describe), create or rename boards, send boards to Trash and bring them back, and change task groups and priorities (boards configure …). Task rows use hirotm tasks list --board (see Tasks). Global options and output modes: hirotm CLI.
Turn on the CLI permissions you need in the board or app settings—see CLI access policy. Creating a new board also requires Create board for the CLI in the app settings.
For columns on a board, see Lists. For individual work items, see Tasks. For connection options (--profile, --client-name) shared across commands, see hirotm CLI.
Access policy
Enable the right toggles in Board settings (and app-wide settings for boards add). If the CLI is not allowed to do something, the command fails with an error message.
Board Operations
boards list
List boards you can access with the CLI.
Sort: boards appear in name order, A→Z, case-insensitive (same order as the API’s GET /api/boards). See Default sort order.
| Option | Type | Required | Description |
|---|---|---|---|
--limit <n> | integer | Page size (omit for one full response from the server). | |
--offset <n> | integer | Skip this many boards (default 0). | |
--page-all | flag | Merge all pages (uses --limit or 500 per HTTP request). | |
--count-only | flag | Total rows only (Paging); not with --limit, --offset, --page-all, or --fields. | |
--fields <keys> | string | Comma-separated API keys per row. Allowed: boardId, slug, name, emoji, description, cliPolicy, createdAt. See Field projection. |
-q / --quiet flag (with --format ndjson): one plain-text value per row, default slug then boardId. See Pipe-friendly quiet.
Shared connection options (--profile, --client-name) are documented on hirotm CLI.
CLI Examples
List all Task Manager boards I can access with the CLI.
boards describe
Return a compact probe for one board: identity, truncated description, full cliPolicy, and optional sections for lists, groups, priorities, releases, global workflow statuses, and optional aggregate slice stats—without any tasks and without board UI prefs (layout, stats, visible-status prefs, theme). Backed by GET /api/boards/:id/describe (single nested JSON object).
CLI stdout: with default --format ndjson, the CLI prints multiple compact JSON lines (same idea as list reads):
kind: "board"—boardId,slug,name,emoji,description, and optionaldescriptionTruncated(nocliPolicyon this line).kind: "policy"— same boolean fields asboard.cliPolicy, flattened on one object.- Row lines in
--entitiesorder:kind: "list","group","priority","release","status"(only for sections you requested). - If
metaappears in--entities, a singlekind: "meta"line withlists,groups,priorities,releases, andstatuses— each value is{ truncated, total, shown }(reflects the 100-row cap per slice).
--entities to request the five row sections in this order: list → group → priority → release → status (no meta). human uses the same block order after board + description + policy table. --format human together with global --quiet exits 2 (same as other commands that render tables).
Use this when you need ids and labels for flags like --list, --group, --priority, --release-id, or --status, or to confirm what the CLI may do on the board, without downloading the full task graph. For task rows, use hirotm tasks list --board (add --page-all to merge every page) or hirotm query search. The web app loads the full board document over GET /api/boards/:id; there is no hirotm boards show command.
Access: same as other board reads—readBoard must be on for the CLI (see CLI access policy).
Limits: each array section returns at most 100 items (board column order for lists, group sort order, priority value, releases by releaseDate descending with null dates last, statuses in workflow order). If more rows exist, the slice includes truncated: true and total. Board description is capped at 4096 UTF-16 code units; when shortened, board.descriptionTruncated is true.
| Option | Type | Required | Description |
|---|---|---|---|
<id-or-slug> | string | Board id or slug. | |
--entities <csv> | string | Comma-separated tokens: list, group, priority, release, status, meta. Order controls CLI stdout (and is preserved when you read line-by-line). The HTTP ?entities= query lists the same tokens (the CLI may sort them for the request; the response includes every requested section). Omit the flag for the default five sections (no meta). The JSON board object (identity, description, cliPolicy) is always in the HTTP body. board is not a valid token. Duplicates or unknown names → exit 2 (invalid_value). |
--fields on this command (use --entities to trim the HTTP response; the CLI still reshapes stdout as above).
CLI examples
Describe board sprint: lists, groups, priorities, releases, statuses, and CLI policy, without tasks.
Filtered task listing
Usehirotm tasks list --board <id-or-slug> with optional filters (list, group, priority, status, release, dates). See Tasks.
boards add
Create a board. Needs Create board turned on for the CLI in the app settings (not a per-board switch).
| Option | Type | Required | Description |
|---|---|---|---|
[name] | string | Board name; omit to use the app default. | |
--emoji <text> | string | Optional emoji before the name. | |
--description <text> | string | Short description text. | |
--description-file <path> | string | Read description from a text file. | |
--description-stdin | flag | Read description from the terminal until input ends. |
Create a board named "Paris Ideas" with the CLI.
boards update
Change board name, emoji, description, or color preset. You must pass at least one change.
| Option | Type | Required | Description |
|---|---|---|---|
<id-or-slug> | string | Board id or slug. | |
--name <text> | string | New board name. | |
--emoji <text> | string | Emoji before the name. | |
--clear-emoji | flag | Remove the board emoji. | |
--description <text> | string | Description text. | |
--description-file <path> | string | Description from a text file. | |
--description-stdin | flag | Description from the terminal until input ends. | |
--clear-description | flag | Clear the description (do not use with other description options). | |
--board-color <preset> | string | One of: stone, cyan, azure, indigo, violet, rose, amber, emerald, coral, sage. | |
--clear-board-color | flag | Remove the board color preset. |
Rename board sprint to "Sprint April".
boards delete
Send a board to Trash. The CLI needs delete board permission on that board.
| Option | Type | Required | Description |
|---|---|---|---|
<id-or-slug> | string | Board id or slug. | |
--dry-run | flag | Print a preview JSON only; do not move to Trash. See Dry-run preview. | |
-y, --yes | flag | Skip the confirmation prompt. |
Move board old-sprint to Trash (non-interactive).
boards restore
Bring a board back from Trash. Use the numeric id or the slug shown for that board in Trash.
| Option | Type | Required | Description |
|---|---|---|---|
<id-or-slug> | string | Trashed board id or slug. | |
-y, --yes | flag | Skip the confirmation prompt. |
Restore trashed board old-sprint (non-interactive).
boards purge
Remove a board from Trash forever. This cannot be undone. Needs delete board permission.
| Option | Type | Required | Description |
|---|---|---|---|
<id-or-slug> | string | Trashed board id or slug. | |
--dry-run | flag | Print a preview JSON only; do not purge. See Dry-run preview. | |
-y, --yes | flag | Skip the confirmation prompt. |
Permanently delete trashed board 1 from Trash (non-interactive).
Board Settings
These commands change structure on a board (task groups and priorities). The CLI needs the matching permission—see CLI access policy (manage structure).boards configure groups
Update task groups from JSON. Give the data with --file, --json, or --stdin (exactly one). The JSON shape is aimed at automation; see the Task Manager repository docs/ai-cli.md for the full format.
| Option | Type | Required | Description |
|---|---|---|---|
<id-or-slug> | string | Board id or slug. | |
--json <text> | string | JSON inline. | |
--file <path> | string | JSON from a file. | |
--stdin | flag | JSON from the terminal until input ends. | |
--dry-run | flag | Validate input and print a preview JSON (with current groups); no PATCH. See Dry-run preview. | |
-y, --yes | flag | Skip the confirmation prompt. |
Update task groups on board sprint from groups.json (non-interactive).
boards configure priorities
Replace task priorities from JSON. Use --file, --json, or --stdin (exactly one). The file can be a plain array or an object with a taskPriorities field.
| Option | Type | Required | Description |
|---|---|---|---|
<id-or-slug> | string | Board id or slug. | |
--json <text> | string | JSON inline. | |
--file <path> | string | JSON from a file. | |
--stdin | flag | JSON from the terminal until input ends. | |
--dry-run | flag | Validate input and print a preview JSON (with current priorities); no PATCH. See Dry-run preview. | |
-y, --yes | flag | Skip the confirmation prompt. |
Replace priorities on board sprint from priorities.json (non-interactive).
Learn more
Runhirotm help boards or hirotm help boards <subcommand> for the full help text in your installed CLI.