CollabOps

co issue — issues

Issue CRUD, parent/child (sub-issue) trees, and horizontal issue links

co issue operates on issues — create, list, view, edit, delete, the sub-issue (parent/child) tree, and horizontal issue links.

co issue create

Creates a new issue. If -t / -b / --type / --priority are omitted you'll get an interactive prompt.

co issue create -t "Bug X" --type bug --priority high
co issue create -t "Refactor" --type task --project web
co issue create --assignee none   # leave unassigned
FlagDescription
-t, --title <title>Issue title
-b, --body <body>Description (markdown)
--type <type>bug
--priority <p>low
--status <status>Initial status (default: backlog)
--project <namekey>
-L, --label <labels>Labels — comma-separated names or ids
--assignee <user>username/email/numeric ID. Default: yourself. "none" to leave unassigned
-W, --workspace <slug>Workspace slug for this run, overriding the saved default (global flag)

co issue list

Lists your issues, or every issue in the workspace, as a compact table.

co issue list
co issue list --scope workspace
co issue list -s in_progress,review
co issue list -l 50
FlagDescription
--scope <scope>me
-s, --status <status>Status filter, comma-separated for multiple
-l, --limit <n>Maximum items to fetch across pages. 0 = all. Default 20
-L, --label <labels>Filter by label — comma-separated, OR semantics
--webOpen the issue list in the browser instead of printing

co issue status

Groups your issues by role — opened by you / assigned to you. --limit is per section (default 5).

co issue status               # 5 per section
co issue status --limit 10    # 10 per section

To see CRs alongside issues, use co status (alias co me).

co issue view <key>

Shows the full issue — status / priority badges, metadata (project, assignee, reviewer, due date, milestone, sprint), parent/sub-issue progress, and the description.

co issue view 123

co issue activity <key>

Prints the issue's activity timeline — status changes, assignee changes, comments, links.

co issue activity 2950        # latest 30 blocks
co issue activity 2950 -l 100 # up to 100 (auto-follows the cursor)
co issue activity 2950 -l 0   # the entire history
co issue activity 2950 --web  # open the issue page in the browser
FlagDescription
-l, --limit <n>Maximum activity blocks to fetch across pages. 0 = all. Default 30
--webOpen the issue in the browser instead of printing

co issue edit <key>

Updates issue properties. At least one flag is required.

co issue edit 123 --status in_progress
co issue edit 123 --due 2026-05-20
co issue edit 123 --assignee bob --reviewer alice
co issue edit 123 --project web --milestone 17
co issue edit 123 --due none
FlagDescription
-t/-bTitle / body
--type / --priority / --statusIssue metadata
--assignee <user>username/email/numeric ID, or none
--reviewer <user>username/email/numeric ID, or none
--due <YYYY-MM-DD>Due date, none clears
--project <namekey>
--milestone <key>Milestone, none clears
--sprint <key>Sprint key, none clears
--sprint-group <key>Required when assigning a sprint
-L, --label <labels>Replace all labels (or none to clear)
--add-label <labels>Add these labels
--remove-label <labels>Remove these labels

co issue develop <key>

Creates a topic branch from an issue. The name is generated from the issue type and title as <type>/<key>-<slug>; because the key is in the branch name, a CR opened from it links back to the issue.

co issue develop 3010                        # create the branch and check it out
co issue develop 3010 --worktree ../co-3010  # branch + worktree from origin/main
co issue develop 3010 -n hotfix/urgent       # explicit branch name
co issue develop 3010 -t fix                 # override the prefix only
co issue develop 3010 --base develop         # different base branch
co issue develop 3010 --no-checkout          # create it but stay where you are
co issue develop 3010 --list                 # list CRs linked to the issue
FlagDescription
-n, --name <branch>Explicit branch name (overrides the generated <type>/<key>-<slug>)
-t, --type <prefix>Override the prefix only (fix, feat, chore, docs, refactor …)
--base <branch>Base branch. Default main
--worktree <path>Create a worktree at this path instead of moving the current checkout
--no-checkoutCreate the branch but stay on the current HEAD
--repo <workspace/repo>Override the repository. Defaults to the current git remote
--listList the CRs linked to this issue and exit

co cr develop is the same command.

co issue comment <key>

Adds a comment to an issue, the same way co cr comment does — -b for the body, -F to read from a file (or stdin), or no flags to compose in $EDITOR. @username in the body is converted to a mention automatically.

co issue comment 2084 -b "Triaged: next sprint"
co issue comment 2084 -F notes.md
git log -1 --pretty=%B | co issue comment 2084 -F -
co issue comment 2084                       # opens $EDITOR
FlagDescription
-b, --body <text>Comment body (omit to open $EDITOR)
-F, --body-file <path>File or stdin('-')
-W, --workspace <slug>Workspace slug for this run, overriding the saved default (global flag)

Editing and deleting comments is not available in the CLI — use the web app.

co issue close / co issue reopen

co issue close 123          # status=done
co issue reopen 123         # status=todo (default)
co issue reopen 123 --status in_progress

co issue delete <key>

Permanent delete. The server returns 409 if the issue has sub-issues, so you must opt in with --cascade.

co issue delete 123
co issue delete 123 --cascade -y

co issue sub

Manages parent/child (sub-issue) links. The child issue itself remains a normal issue — only the link is added or removed.

co issue sub list 123             # direct children
co issue sub tree 123             # full tree
co issue sub add 123 456          # link existing Issue-456 under 123
co issue sub create 123 -t "Sub-task"
co issue sub remove 123 456 -y    # unlink (child stays alive)

co issue sub remove only severs the link. Call co issue delete <key> separately to remove the child issue itself.

Manages horizontal issue links (related / blocking / blocked_by / duplicate). Unlike sub-issues, these are relations between peer issues rather than parent/child. Three subcommands: link list / add / remove.

co issue link list 123                       # links on Issue-123 (viewer perspective)
co issue link add 123 456                     # Issue-123 related to Issue-456
co issue link add 123 456 --type blocking     # Issue-123 blocks Issue-456
co issue link add 123 456 --type blocked_by   # Issue-123 is blocked by Issue-456
co issue link remove 123 42 -y                # remove link ID 42 (both issues kept)
FlagDescription
--type <type>related
-y, --yesSkip the confirmation prompt on remove
-W, --workspace <slug>Workspace slug for this run, overriding the saved default (global flag)

add / list take an issue key, but remove takes a link ID (the first column of co issue link list) — not an issue key. link_type is viewer-relative, so a blocking link shows up as blocked_by on the other issue.

Links a doc to an issue or removes the link. Doc keys come from co docs list.

co issue link-doc 3010 365      # link Doc-365 to Issue-3010
co issue unlink-doc 3010 365    # remove the link

Table of Contents