CollabOps

co cr — change requests

Create, list, view, edit, close, and reopen CRs (alias: co pr)

co cr operates on change requests. If you're coming from gh, co pr is an alias for the same commands.

co cr create

Opens a new CR from the current git branch. Without -t / -b you'll be prompted (the body opens in $EDITOR).

co cr create -t "New feature" -B main
co cr create -t "Patch" --draft
co cr create -t "Bug fix" --issue 2675
co cr create --bot --bot-agent "Claude Code"
FlagDescription
-t, --title <title>CR title (prompted if omitted)
-b, --body <body>CR description (opens $EDITOR if omitted)
-B, --base <branch>Target branch. Defaults to config defaults.targetBranch or main
-H, --head <branch>Source branch. Defaults to current git branch
--repo <ws/repo>Override the repository if you're outside the worktree
--workspace <slug>Override the default workspace
--draftCreate with case_status=proposed
--assignee <user>username/email/numeric ID. Default: yourself. "none" to skip
--issue <keys>Comma-separated issue keys. Default: extracted from branch name (feat/123-foo → 123)
--botMark as AI/agent-generated (title prefix + body footer)
--bot-model <name>Override AI model name in the footer (or env CO_BOT_MODEL)
--bot-agent <name>Override agent name in the footer (or env CO_BOT_AGENT)

Use the <type>/<issue-key>-<slug> branch convention (e.g. feat/123-add-login) and the linked issue is auto-detected. Pass --issue none to opt out.

If CLAUDECODE=1 or CO_AS_BOT=1 is set, the bot prefix/footer is applied even without --bot.

co cr list

Lists open CRs you authored as a compact table.

co cr list
co cr list --status merged
co cr list -l 50
FlagDescription
-s, --status <status>open
-l, --limit <n>Page size (default: 20)

co cr view <key>

Shows CR detail by key — status, title, branch arrow (head → base), description.

co cr view 2675
co cr view 2675 --comments                # also print the comment thread
co cr view 2675 --repo collabops-one/web

co cr checkout <key>

Fetches the CR's source branch from origin and either switches to it locally or creates a separate worktree. This is the entry point for the reviewer flow — pull the change, build/run it, leave a comment.

co cr checkout 2786                          # fetch + switch (current clone)
co cr checkout 2786 --worktree                # separate worktree at ../<repo>-<branch>
co cr checkout 2786 -b review-2786            # override local branch name
co cr checkout 2786 --repo collabops-one/web  # CR in a different repo
OptionDescription
--worktreeCreate a separate worktree at ../<repo>-<branch-suffix> (your current work isn't disturbed)
-b, --branch <name>Override the local branch name (when the same name is already in use)
-f, --forceSkip the dirty working-tree guard (changes follow you to the new branch)
--repo <ws/repo>CR in a different repo (refused if it doesn't match the cwd's remote)
--workspace <slug>Override workspace

In switch mode, after fetch the command runs a fast-forward-only merge from origin/<source> so reviewers don't review a stale snapshot. If ff isn't possible, you'll get a clear error.

co cr review <key>

Shows the CR's review status (approved/rejected) and a per-reviewer summary. Useful right before merge to see who decided what.

co cr review 2786
co cr review 2786 --workspace collabops-one

co cr comment <key>

Add, edit, or delete a comment on a CR. Body comes from -b, -F (file or stdin), or — with no flag — $EDITOR.

co cr comment 2786 -b "LGTM, ship it"
co cr comment 2786 -F notes.md
git log -1 --pretty=%B | co cr comment 2786 -F -
co cr comment 2786                              # opens $EDITOR
co cr comment 2786 --edit 482 -b "updated body"
co cr comment 2786 --delete 482
OptionDescription
-b, --body <text>Comment body (omit to open $EDITOR)
-F, --body-file <path>Read from file ('-' for stdin). Mutually exclusive with -b
--edit <id>Edit an existing comment (PUT). Author only
--delete <id>Delete an existing comment. Author or admin
--repo <ws/repo>CR in a different repo
--workspace <slug>Override workspace

@username in the body is automatically converted to a mention token ({{user:id=N|label=...}}). Unresolved handles are left as raw @handle.

To see comments inline with the CR detail, use co cr view <key> --comments. For review status, use co cr review <key>.

co cr merge <key>

Merges a CR. Default strategy is squash (matches CollabOps convention). Use --dry-run to validate first — surfaces conflicts and policy violations without writing.

co cr merge 2786                          # squash (default)
co cr merge 2786 --merge                  # merge commit
co cr merge 2786 --rebase
co cr merge 2786 --dry-run                # validate only
co cr merge 2786 --workspace collabops-one
OptionDescription
--squashSquash all commits into one (default — repo convention)
--mergeStandard merge commit
--rebaseRebase onto target branch
--dry-runValidate without writing
--workspace <slug>Override workspace

Already-merged or closed CRs are rejected up front. The merged-state field isn't consistent (some CRs report status='merged', others status='closed' with case_status='approved'), so we look at both.

v1 doesn't yet support --delete-branch / --auto (auto-merge after checks) / --admin (policy bypass) — those land in follow-up issues.

co cr edit <key>

Updates an existing CR's title, body, linked issues, assignee, or reviewers. At least one flag is required.

co cr edit 2675 -t "New title"
co cr edit 2675 --reviewer alice,bob
co cr edit 2675 --add-issue 100,101
co cr edit 2675 --remove-issue 100
co cr edit 2675 --assignee me
FlagDescription
-t, --title <title>New title
-b, --body <body>New description (markdown). Empty string clears.
--assignee <user>username/email/numeric ID/me/none
--reviewer <users>Comma-separated reviewers, or me/none
--issue <keys>Replace linked issues entirely (or none)
--add-issue <keys>Add to the existing list
--remove-issue <keys>Remove from the existing list

co cr close / co cr reopen

co cr close 2675
co cr reopen 2675

These hit a workspace-scoped endpoint, so there's no need to specify a repository. Override the workspace with --workspace if needed.

Table of Contents