bitbottle CLI
A gh-style CLI for Bitbucket Server/DC and Cloud. This file is a router
plus invariant safety rules — load the matching reference for command
detail. Don't memorize this file; run bitbottle <cmd> -h for the
authoritative shape and flag list. Run bitbottle --version if behavior
disagrees with this doc; the binary wins.
When to load which reference
| Task |
Open |
Auth, hosts.yml, env vars, multi-host, auth migrate, auth doctor |
references/auth.md |
| PR lifecycle (list/view/create/merge/merge-preview/approve/comment/activity/review/commits/files/participants/ready/unready/task/suggestion/comment-react/default-reviewer/reviewer-group/…) |
references/pr.md |
Repos, branches, tags, file/tree, visibility, edit, transfer, watcher, repo label list/create/update/delete, repo pr-settings get, repo pr-settings set, repo download list/upload/get/delete, repo clone (MCP: clone_repo), repo hook list/view/enable/disable/settings get/set (Server/DC only), repo sync Cloud fork sync (MCP: sync_repo) |
references/repos.md |
| Commits (log, search, view/files/status/comment/comment-react) |
references/commit.md |
| Pipelines, pipeline config get/enable/disable, schedules, caches, watch, trigger, test-report view, test-case list, SSH key pair, known hosts, OIDC config/keys (Cloud only) |
references/pipeline.md |
| Pipeline runners — list / create / delete (Cloud only) |
references/runner.md |
| Code Insights reports/annotations (Cloud + Server/DC); merge-check (Server/DC only) |
references/code-insights.md |
| Issues, comments, attachments (list/delete), vote/unvote, watch/unwatch, activity/change log (Cloud only) |
references/issues.md |
| Issue milestones list/view (Cloud only) |
references/milestone.md |
| Issue versions list/view/create/delete (Cloud only) |
references/version.md |
| snippet list/view/create/delete, snippet comment list/add/delete (Cloud only) |
references/snippet.md |
| Deployments + environments + variables (Cloud only) |
references/deployment.md, references/variable.md |
| Deploy keys (both), branch-rules (Cloud only), ssh-keys (Cloud + Server/DC) |
references/deploy-key.md, references/branch-rule.md, references/ssh-key.md |
Diff between refs, diff REF1..REF2 |
references/diff.md |
Branch compare (branch compare BASE..HEAD) — ahead/behind counts + commit lists (Cloud + Server/DC) |
references/branch.md |
Workspaces + webhooks + workspace project CRUD + workspace project perms + workspace perms + workspace pipeline variables (Cloud only), user view |
references/workspace.md, references/user.md |
| Mirror servers (list/view/repo list) (Server/DC only) |
references/mirror.md |
Named credential profiles (profile create/use/list/delete) |
references/profile.md |
| Raw REST passthrough, pagination, MCP server config |
references/api.md |
Extensions (extension install/list/upgrade/remove/exec, extension scaffold) |
references/extension.md |
| Group management — group list, group create, group delete, group member list, group member add, group member remove (Server/DC only) |
references/groups.md |
| Project CRUD — project server-list, project create, project view, project edit, project delete (Server/DC only); project list WORKSPACE (Cloud only) |
references/project.md |
| auth pat list/create/revoke (Server/DC only) |
references/auth.md |
Host info — backend type, base URL, version, feature matrix (host info [--json]) |
references/host.md |
Load both when a task spans areas. Don't load speculatively.
Safety rules (always apply)
- Never echo tokens. Pass tokens via stdin (
--with-token) or the
BB_TOKEN env var. Never put a PAT/App Password on the command line —
it lands in shell history.
- Confirm before destructive ops.
repo delete, repo rename,
branch delete, tag delete, webhook delete, pr decline,
pr merge are not undoable (repo rename breaks existing clones'
origin URL on Cloud). Show the exact command + resolved
host/PROJECT/REPO + PR/branch/tag name, then wait for explicit confirm.
- Don't fabricate flags. bitbottle has gh-like shape but not
gh-compatible flags. If a flag isn't in
bitbottle <cmd> -h,
don't pass it. Common phantoms: --author, --mine, --reviewer @me
(no "self" sentinel — pass the user slug).
--json is a BOOLEAN flag, not a field selector. --json emits
the full object as JSON; filter with --jq EXPR. Passing
--json title,body is parsed as --json plus a positional argument
(title,body) and fails with accepts N arg(s), received N+1. To
discover field names: run with --json once, inspect the object.
Argument shape (high-frequency footgun)
bitbottle is inconsistent about repo targeting — match what -h says:
| Command group |
Repo arg |
Notes |
pr * (view/list/create/merge/…) |
-R [HOST/]PROJECT/REPO flag |
-R is the only path; no positional |
repo *, branch *, tag *, webhook * |
positional PROJECT/REPO |
-R is in the inherited flag list but silently ignored — pass PROJECT/REPO as a positional and --hostname HOST separately |
commit view PROJECT/REPO HASH |
positional, PROJ/REPO first |
|
commit files HASH [PROJECT/REPO] |
positional, HASH first |
inverse of commit view |
commit cherry-pick HASH BRANCH [PROJECT/REPO] |
positional, HASH then BRANCH |
Server/DC only (branch-utils plugin); --message/-m overrides commit msg |
issue *, code-insights * |
[PROJECT/REPO] positional or -R |
optional; defaults to checkout |
Outside any Bitbucket checkout, the relevant positional/-R is mandatory.
MCP tools use ONE canonical repo-arg shape: {project, slug} (plus an
optional hostname) — project is the Server project key or Cloud workspace
slug, slug is the repository slug. The few tools that historically took a
single repo (WORKSPACE/REPO) string or {project, repo} — compare_refs,
list_pr_commits, list_pr_files, get_repo_pr_settings,
set_repo_pr_settings — now accept {project, slug}; the old shape still
works for one release but the result carries a deprecation note. Each tool's
tools/list entry also advertises _meta.backends (["server"],
["cloud"], or both); calling a Server-only tool against a Cloud host (or vice
versa) returns host.unsupported before any HTTP, and an unknown hostname
returns host.unknown listing the configured hosts.
Repo targeting & TLS
# Inside a Bitbucket checkout: host/project/repo auto-detected.
# Outside one (or to override):
bitbottle pr list -R git.example.com/PROJ/repo
bitbottle repo view PROJ/repo --hostname git.example.com
bitbottle repo edit PROJ/repo --description "new description"
# Pin a default for the current checkout (writes .git/config):
bitbottle repo set-default HOST/PROJ/repo
Self-signed CA on Server/DC? -k / --skip-tls-verify is an inherited
flag on every command. For permanence, set skip_tls_verify: true
on the host entry in hosts.yml (see references/auth.md).
Cloud vs Server/DC
|
Cloud (bitbucket.org) |
Server/DC (self-hosted) |
| Auth context flag |
--email you@… |
--username your.user |
| Token type |
App Password / API token |
PAT (BBDC-…) |
| API base path |
2.0/… |
rest/api/1.0/… |
| Cloud-only |
pipeline * (list/view/run/stop/trigger/watch/logs/steps/schedule/cache/variable/config/test-report/test-case), runner list, runner create, runner delete, issue * (including issue attachment list/delete, issue vote/unvote, issue watch/unwatch, issue activity), snippet list [--workspace W], snippet view, snippet create, snippet delete, snippet comment list, snippet comment add, snippet comment delete, pr request-changes, pr comment resolve, branch-rule *, branch-model *, workspace * (including workspace search, workspace perms *, workspace project perms *, workspace project default-reviewer *), search, project list WORKSPACE |
— |
| Server-only |
— |
admin user list/activate/deactivate/rename, admin license, admin cluster, admin secrets rotate, admin logging get/set, code-insights *, pr task *, pr suggestion apply, pr/commit comment react/unreact, pr reviewer-group *, repo pr-settings get, repo pr-settings set, group list, group create, group delete, group member list, group member add, group member remove, mirror list, mirror view, mirror repo list, project server-list, project create, project view, project edit, project delete, auth pat list, auth pat create, auth pat revoke, commit cherry-pick HASH BRANCH |
For custom-hostname Bitbucket Data Center, force routing with
backend_type: cloud|server in hosts.yml.
Hot-path env vars
| Var |
Effect |
BB_TOKEN |
Token override (CI use) |
BB_HOST |
Default --hostname |
BB_REPO |
Default -R [HOST/]PROJECT/REPO |
BB_PROMPT_DISABLED |
Fail rather than prompt (non-interactive) |
BB_CONFIG_DIR |
Override config dir (default $XDG_CONFIG_HOME/bitbottle) |
Failure-mode hints
| Message |
Fix |
not authenticated; run bitbottle auth login |
No host configured — run auth login. |
multiple hosts configured; specify hostname |
Pass --hostname HOST or -R HOST/PROJ/repo. |
no git remotes found; pass [HOST/]PROJECT/REPO |
Outside a checkout — pass positional or -R. |
accepts N arg(s), received N+1 after --json … |
You wrote --json field1,field2; bitbottle's --json is boolean. Drop the field list and use --jq. |
warning: token found in hosts.yml — run bitbottle auth migrate |
Printed on every command until tokens are migrated to OS keyring. Run bitbottle auth migrate once. |
code-insights … unsupported on host |
Server/DC-only feature. Confirm host with bitbottle context. |
| Cloud auth fails |
Usually a missing/wrong --email — App Passwords need the Atlassian email, not the username. |
| Server/DC auth fails |
Missing --username, or --git-protocol ssh was used with an HTTPS-only PAT. |
| Cred/keychain/TLS/proxy weirdness |
bitbottle auth doctor [--hostname HOST] reports keyring backend, token presence/format, base-URL reachability, auth success. Never echoes the token. |
Pipeline lifecycle (Cloud only)
# Trigger, watch, stop, view
bitbottle pipeline trigger WORKSPACE/REPO --branch main
bitbottle pipeline watch WORKSPACE/REPO UUID
bitbottle pipeline stop UUID WORKSPACE/REPO --confirm
bitbottle pipeline rerun UUID WORKSPACE/REPO
bitbottle pipeline view UUID WORKSPACE/REPO
# Pipeline config (Cloud only)
bitbottle pipeline config get WORKSPACE/REPO
bitbottle pipeline config enable WORKSPACE/REPO
bitbottle pipeline config disable WORKSPACE/REPO
# List and download step artifacts
bitbottle pipeline artifact list PIPELINE_UUID WORKSPACE/REPO --step STEP_UUID
bitbottle pipeline artifact download PIPELINE_UUID WORKSPACE/REPO \
--step STEP_UUID --name build.tar.gz [--out PATH|-] [--clobber]
# Test report and test cases (Cloud only)
bitbottle pipeline test-report view PIPELINE_UUID WORKSPACE/REPO --step STEP_UUID
bitbottle pipeline test-case list PIPELINE_UUID WORKSPACE/REPO --step STEP_UUID [--status FAILED|PASSED|SKIPPED] [--limit N]
# Pipeline SSH configuration (Cloud only)
bitbottle pipeline ssh key-pair view [WORKSPACE/REPO]
bitbottle pipeline ssh key-pair regenerate [WORKSPACE/REPO] [--bits 2048|4096] [--confirm]
bitbottle pipeline ssh known-hosts list [WORKSPACE/REPO]
bitbottle pipeline ssh known-hosts view UUID [WORKSPACE/REPO]
bitbottle pipeline ssh known-hosts add HOSTNAME [WORKSPACE/REPO] [--key KEY] [--key-type rsa|ecdsa|ed25519]
bitbottle pipeline ssh known-hosts delete UUID [WORKSPACE/REPO] [--confirm]
# Pipeline OIDC configuration (Cloud only)
bitbottle pipeline oidc config WORKSPACE [--json]
bitbottle pipeline oidc keys WORKSPACE [--json]
# Branch compare (Cloud + Server/DC)
bitbottle branch compare main..feature WORKSPACE/REPO
bitbottle branch compare main..feature WORKSPACE/REPO --json
Dashboard
# Open PRs (author + reviewer) across a repo, or globally with --hostname
bitbottle status [PROJECT/REPO]
bitbottle pr status [PROJECT/REPO]
# Open a Bitbucket page in the browser
bitbottle browse [PROJECT/REPO] # repo home
bitbottle browse [PROJECT/REPO] 42 # PR #42
bitbottle browse [PROJECT/REPO] abc1234 # commit
bitbottle browse [PROJECT/REPO] src/main.go # file
Install / version
npm install -g @proggarapsody/bitbottle installs the CLI and
auto-registers this skill. For non-npm installs (Homebrew, Go, bare
binary): bitbottle skill install (refresh), skill path (locate),
skill remove (uninstall).
1---2name: bitbottle3description: Reference for the bitbottle CLI — a gh-style tool for Bitbucket Server/DC and Cloud. Load when the user asks about bitbottle commands, auth setup, PRs, repos, branches, tags, commits, pipelines, or why a command failed. Load even if the user just says "bitbottle", mentions "Bitbucket", or pastes a bitbottle error message.4---56# bitbottle CLI78A gh-style CLI for Bitbucket Server/DC and Cloud. This file is a router9plus invariant safety rules — load the matching reference for command10detail. **Don't memorize this file; run `bitbottle <cmd> -h` for the11authoritative shape and flag list.** Run `bitbottle --version` if behavior12disagrees with this doc; the binary wins.1314## When to load which reference1516| Task | Open |17|---|---|18| Auth, hosts.yml, env vars, multi-host, `auth migrate`, `auth doctor` | `references/auth.md` |19| PR lifecycle (list/view/create/merge/merge-preview/approve/comment/activity/review/commits/files/participants/ready/unready/task/suggestion/comment-react/default-reviewer/reviewer-group/…) | `references/pr.md` |20| Repos, branches, tags, file/tree, visibility, edit, transfer, watcher, repo label list/create/update/delete, repo pr-settings get, repo pr-settings set, repo download list/upload/get/delete, repo clone (MCP: `clone_repo`), repo hook list/view/enable/disable/settings get/set (Server/DC only), repo sync Cloud fork sync (MCP: `sync_repo`) | `references/repos.md` |21| Commits (log, search, view/files/status/comment/comment-react) | `references/commit.md` |22| Pipelines, pipeline config get/enable/disable, schedules, caches, watch, trigger, test-report view, test-case list, SSH key pair, known hosts, OIDC config/keys (Cloud only) | `references/pipeline.md` |23| Pipeline runners — list / create / delete (Cloud only) | `references/runner.md` |24| Code Insights reports/annotations (Cloud + Server/DC); merge-check (Server/DC only) | `references/code-insights.md` |25| Issues, comments, attachments (list/delete), vote/unvote, watch/unwatch, activity/change log (Cloud only) | `references/issues.md` |26| Issue milestones list/view (Cloud only) | `references/milestone.md` |27| Issue versions list/view/create/delete (Cloud only) | `references/version.md` |28| snippet list/view/create/delete, snippet comment list/add/delete (Cloud only) | `references/snippet.md` |29| Deployments + environments + variables (Cloud only) | `references/deployment.md`, `references/variable.md` |30| Deploy keys (both), branch-rules (Cloud only), ssh-keys (Cloud + Server/DC) | `references/deploy-key.md`, `references/branch-rule.md`, `references/ssh-key.md` |31| Diff between refs, `diff REF1..REF2` | `references/diff.md` |32| Branch compare (`branch compare BASE..HEAD`) — ahead/behind counts + commit lists (Cloud + Server/DC) | `references/branch.md` |33| Workspaces + webhooks + workspace project CRUD + workspace project perms + workspace perms + workspace pipeline variables (Cloud only), `user view` | `references/workspace.md`, `references/user.md` |34| Mirror servers (list/view/repo list) (Server/DC only) | `references/mirror.md` |35| Named credential profiles (`profile create/use/list/delete`) | `references/profile.md` |36| Raw REST passthrough, pagination, MCP server config | `references/api.md` |37| Extensions (`extension install/list/upgrade/remove/exec`, extension scaffold) | `references/extension.md` |38| Group management — group list, group create, group delete, group member list, group member add, group member remove (Server/DC only) | `references/groups.md` |39| Project CRUD — project server-list, project create, project view, project edit, project delete (Server/DC only); project list WORKSPACE (Cloud only) | `references/project.md` |40| auth pat list/create/revoke (Server/DC only) | `references/auth.md` |41| Host info — backend type, base URL, version, feature matrix (`host info [--json]`) | `references/host.md` |4243Load both when a task spans areas. Don't load speculatively.4445## Safety rules (always apply)46471. **Never echo tokens.** Pass tokens via stdin (`--with-token`) or the48 `BB_TOKEN` env var. Never put a PAT/App Password on the command line —49 it lands in shell history.502. **Confirm before destructive ops.** `repo delete`, `repo rename`,51 `branch delete`, `tag delete`, `webhook delete`, `pr decline`,52 `pr merge` are not undoable (`repo rename` breaks existing clones'53 `origin` URL on Cloud). Show the exact command + resolved54 host/PROJECT/REPO + PR/branch/tag name, then wait for explicit confirm.553. **Don't fabricate flags.** bitbottle has gh-like *shape* but not56 gh-compatible *flags*. If a flag isn't in `bitbottle <cmd> -h`,57 don't pass it. Common phantoms: `--author`, `--mine`, `--reviewer @me`58 (no "self" sentinel — pass the user slug).594. **`--json` is a BOOLEAN flag, not a field selector.** `--json` emits60 the full object as JSON; filter with `--jq EXPR`. Passing61 `--json title,body` is parsed as `--json` plus a positional argument62 (`title,body`) and fails with `accepts N arg(s), received N+1`. To63 discover field names: run with `--json` once, inspect the object.6465## Argument shape (high-frequency footgun)6667bitbottle is inconsistent about repo targeting — match what `-h` says:6869| Command group | Repo arg | Notes |70|---|---|---|71| `pr *` (view/list/create/merge/…) | `-R [HOST/]PROJECT/REPO` flag | `-R` is the only path; no positional |72| `repo *`, `branch *`, `tag *`, `webhook *` | positional `PROJECT/REPO` | `-R` is in the inherited flag list but **silently ignored** — pass `PROJECT/REPO` as a positional and `--hostname HOST` separately |73| `commit view PROJECT/REPO HASH` | positional, **PROJ/REPO first** | |74| `commit files HASH [PROJECT/REPO]` | positional, **HASH first** | inverse of `commit view` |75| `commit cherry-pick HASH BRANCH [PROJECT/REPO]` | positional, **HASH then BRANCH** | Server/DC only (`branch-utils` plugin); `--message/-m` overrides commit msg |76| `issue *`, `code-insights *` | `[PROJECT/REPO]` positional or `-R` | optional; defaults to checkout |7778Outside any Bitbucket checkout, the relevant positional/`-R` is mandatory.7980**MCP tools** use ONE canonical repo-arg shape: `{project, slug}` (plus an81optional `hostname`) — `project` is the Server project key or Cloud workspace82slug, `slug` is the repository slug. The few tools that historically took a83single `repo` (`WORKSPACE/REPO`) string or `{project, repo}` — `compare_refs`,84`list_pr_commits`, `list_pr_files`, `get_repo_pr_settings`,85`set_repo_pr_settings` — now accept `{project, slug}`; the old shape still86works for one release but the result carries a deprecation note. Each tool's87`tools/list` entry also advertises `_meta.backends` (`["server"]`,88`["cloud"]`, or both); calling a Server-only tool against a Cloud host (or vice89versa) returns `host.unsupported` before any HTTP, and an unknown `hostname`90returns `host.unknown` listing the configured hosts.9192## Repo targeting & TLS9394```bash95# Inside a Bitbucket checkout: host/project/repo auto-detected.96# Outside one (or to override):97bitbottle pr list -R git.example.com/PROJ/repo98bitbottle repo view PROJ/repo --hostname git.example.com99bitbottle repo edit PROJ/repo --description "new description"100101# Pin a default for the current checkout (writes .git/config):102bitbottle repo set-default HOST/PROJ/repo103```104105Self-signed CA on Server/DC? `-k` / `--skip-tls-verify` is an inherited106flag on **every** command. For permanence, set `skip_tls_verify: true`107on the host entry in `hosts.yml` (see `references/auth.md`).108109## Cloud vs Server/DC110111| | Cloud (`bitbucket.org`) | Server/DC (self-hosted) |112|---|---|---|113| Auth context flag | `--email you@…` | `--username your.user` |114| Token type | App Password / API token | PAT (`BBDC-…`) |115| API base path | `2.0/…` | `rest/api/1.0/…` |116| Cloud-only | `pipeline *` (list/view/run/stop/trigger/watch/logs/steps/schedule/cache/variable/config/test-report/test-case), `runner list`, `runner create`, `runner delete`, `issue *` (including `issue attachment list/delete`, `issue vote/unvote`, `issue watch/unwatch`, `issue activity`), `snippet list [--workspace W]`, `snippet view`, `snippet create`, `snippet delete`, `snippet comment list`, `snippet comment add`, `snippet comment delete`, `pr request-changes`, `pr comment resolve`, `branch-rule *`, `branch-model *`, `workspace *` (including `workspace search`, `workspace perms *`, `workspace project perms *`, `workspace project default-reviewer *`), `search`, `project list WORKSPACE` | — |117| Server-only | — | `admin user list/activate/deactivate/rename`, `admin license`, `admin cluster`, `admin secrets rotate`, `admin logging get/set`, `code-insights *`, `pr task *`, `pr suggestion apply`, `pr/commit comment react/unreact`, `pr reviewer-group *`, `repo pr-settings get`, `repo pr-settings set`, `group list`, `group create`, `group delete`, `group member list`, `group member add`, `group member remove`, `mirror list`, `mirror view`, `mirror repo list`, `project server-list`, `project create`, `project view`, `project edit`, `project delete`, `auth pat list`, `auth pat create`, `auth pat revoke`, `commit cherry-pick HASH BRANCH` |118119For custom-hostname Bitbucket Data Center, force routing with120`backend_type: cloud|server` in `hosts.yml`.121122## Hot-path env vars123124| Var | Effect |125|---|---|126| `BB_TOKEN` | Token override (CI use) |127| `BB_HOST` | Default `--hostname` |128| `BB_REPO` | Default `-R [HOST/]PROJECT/REPO` |129| `BB_PROMPT_DISABLED` | Fail rather than prompt (non-interactive) |130| `BB_CONFIG_DIR` | Override config dir (default `$XDG_CONFIG_HOME/bitbottle`) |131132## Failure-mode hints133134| Message | Fix |135|---|---|136| `not authenticated; run bitbottle auth login` | No host configured — run `auth login`. |137| `multiple hosts configured; specify hostname` | Pass `--hostname HOST` or `-R HOST/PROJ/repo`. |138| `no git remotes found; pass [HOST/]PROJECT/REPO` | Outside a checkout — pass positional or `-R`. |139| `accepts N arg(s), received N+1` after `--json …` | You wrote `--json field1,field2`; bitbottle's `--json` is boolean. Drop the field list and use `--jq`. |140| `warning: token found in hosts.yml — run bitbottle auth migrate` | Printed on every command until tokens are migrated to OS keyring. Run `bitbottle auth migrate` once. |141| `code-insights … unsupported on host` | Server/DC-only feature. Confirm host with `bitbottle context`. |142| Cloud auth fails | Usually a missing/wrong `--email` — App Passwords need the **Atlassian email**, not the username. |143| Server/DC auth fails | Missing `--username`, or `--git-protocol ssh` was used with an HTTPS-only PAT. |144| Cred/keychain/TLS/proxy weirdness | `bitbottle auth doctor [--hostname HOST]` reports keyring backend, token presence/format, base-URL reachability, auth success. Never echoes the token. |145146## Pipeline lifecycle (Cloud only)147148```bash149# Trigger, watch, stop, view150bitbottle pipeline trigger WORKSPACE/REPO --branch main151bitbottle pipeline watch WORKSPACE/REPO UUID152bitbottle pipeline stop UUID WORKSPACE/REPO --confirm153bitbottle pipeline rerun UUID WORKSPACE/REPO154bitbottle pipeline view UUID WORKSPACE/REPO155156# Pipeline config (Cloud only)157bitbottle pipeline config get WORKSPACE/REPO158bitbottle pipeline config enable WORKSPACE/REPO159bitbottle pipeline config disable WORKSPACE/REPO160161# List and download step artifacts162bitbottle pipeline artifact list PIPELINE_UUID WORKSPACE/REPO --step STEP_UUID163bitbottle pipeline artifact download PIPELINE_UUID WORKSPACE/REPO \164 --step STEP_UUID --name build.tar.gz [--out PATH|-] [--clobber]165166# Test report and test cases (Cloud only)167bitbottle pipeline test-report view PIPELINE_UUID WORKSPACE/REPO --step STEP_UUID168bitbottle pipeline test-case list PIPELINE_UUID WORKSPACE/REPO --step STEP_UUID [--status FAILED|PASSED|SKIPPED] [--limit N]169170# Pipeline SSH configuration (Cloud only)171bitbottle pipeline ssh key-pair view [WORKSPACE/REPO]172bitbottle pipeline ssh key-pair regenerate [WORKSPACE/REPO] [--bits 2048|4096] [--confirm]173bitbottle pipeline ssh known-hosts list [WORKSPACE/REPO]174bitbottle pipeline ssh known-hosts view UUID [WORKSPACE/REPO]175bitbottle pipeline ssh known-hosts add HOSTNAME [WORKSPACE/REPO] [--key KEY] [--key-type rsa|ecdsa|ed25519]176bitbottle pipeline ssh known-hosts delete UUID [WORKSPACE/REPO] [--confirm]177178# Pipeline OIDC configuration (Cloud only)179bitbottle pipeline oidc config WORKSPACE [--json]180bitbottle pipeline oidc keys WORKSPACE [--json]181```182183```bash184# Branch compare (Cloud + Server/DC)185bitbottle branch compare main..feature WORKSPACE/REPO186bitbottle branch compare main..feature WORKSPACE/REPO --json187```188189## Dashboard190191```bash192# Open PRs (author + reviewer) across a repo, or globally with --hostname193bitbottle status [PROJECT/REPO]194bitbottle pr status [PROJECT/REPO]195196# Open a Bitbucket page in the browser197bitbottle browse [PROJECT/REPO] # repo home198bitbottle browse [PROJECT/REPO] 42 # PR #42199bitbottle browse [PROJECT/REPO] abc1234 # commit200bitbottle browse [PROJECT/REPO] src/main.go # file201```202203## Install / version204205`npm install -g @proggarapsody/bitbottle` installs the CLI and206auto-registers this skill. For non-npm installs (Homebrew, Go, bare207binary): `bitbottle skill install` (refresh), `skill path` (locate),208`skill remove` (uninstall).