| name | bkt |
| version | 1.0.20 |
| description | Bitbucket CLI for Data Center and Cloud. Use when users need to manage repositories, pull requests, branches, issues, webhooks, or pipelines in Bitbucket. Triggers include "bitbucket", "bkt", "pull request", "PR", "repo list", "branch create", "Bitbucket Data Center", "Bitbucket Cloud", "keyring timeout". |
| metadata | {"short-description":"Bitbucket CLI for repos, PRs, branches","compatibility":"claude-code, codex-cli"} |
Bitbucket CLI (bkt)
bkt is a unified CLI for Bitbucket Data Center and Bitbucket Cloud. It mirrors gh ergonomics and provides structured JSON/YAML output for automation.
Dependency Check
Before executing any bkt command, verify the CLI is installed:
bkt --version
If the command fails or bkt is not found, install it using one of these methods:
| Platform | Command |
|---|
| macOS/Linux | brew install avivsinai/tap/bitbucket-cli |
| Windows | scoop bucket add avivsinai https://github.com/avivsinai/scoop-bucket && scoop install bitbucket-cli |
| Go | go install github.com/avivsinai/bitbucket-cli/cmd/bkt@latest |
| Binary | Download from GitHub Releases |
Only proceed with bkt commands after confirming installation succeeds.
Authentication
bkt auth login https://bitbucket.example.com --web
bkt auth login https://bitbucket.example.com --username alice --token <PAT>
bkt auth login https://bitbucket.org --kind cloud --web
bkt auth status
Bitbucket Cloud Token Requirements:
- Create an "API token with scopes" (not a general API token)
- Select Bitbucket as the application
- Required scope: Account: Read (
read:user:bitbucket)
- Additional scopes as needed: Repositories, Pull requests, Issues
Contexts
Contexts store host, project/workspace, and default repo settings:
bkt context create dc-prod --host bitbucket.example.com --project ABC --set-active
bkt context create cloud-team --host bitbucket.org --workspace myteam --set-active
bkt context list
bkt context use cloud-team
Quick Command Reference
| Task | Command |
|---|
| List repos | bkt repo list |
| View repo | bkt repo view <slug> |
| Clone repo | bkt repo clone <slug> --ssh |
| Create repo | bkt repo create <name> --description "..." |
| List PRs | bkt pr list --state OPEN |
| View PR | bkt pr view <id> |
| Create PR | bkt pr create --title "..." --source feature --target main |
| Merge PR | bkt pr merge <id> |
| PR checks | bkt pr checks <id> --wait |
| List branches | bkt branch list |
| Create branch | bkt branch create <name> --from main |
| Delete branch | bkt branch delete <name> |
| List issues (Cloud) | bkt issue list --state open |
| Create issue | bkt issue create -t "Bug title" -k bug |
| Webhooks | bkt webhook list |
| Run pipeline | bkt pipeline run --ref main |
| API escape hatch | bkt api /rest/api/1.0/projects |
Repository Operations
bkt repo list --limit 20
bkt repo list --workspace myteam
bkt repo view platform-api
bkt repo create data-pipeline --description "Data ingestion" --project DATA
bkt repo browse --project DATA --repo platform-api
bkt repo clone platform-api --ssh
Pull Request Workflows
bkt pr list --state OPEN --limit 10
bkt pr list --mine
bkt pr view 42
bkt pr view 42 --web
bkt pr create --title "feat: cache" --source feature/cache --target main --reviewer alice
bkt pr edit 123 --title "New title" --body "Updated description"
bkt pr approve 42
bkt pr comment 42 --text "LGTM"
bkt pr merge 42 --message "merge: feature/cache"
bkt pr merge 42 --strategy fast-forward
bkt pr checks 42
bkt pr checks 42 --wait
bkt pr checks 42 --wait --timeout 5m
bkt pr checks 42 --fail-fast
bkt pr checkout 42
Branch Management
bkt branch list
bkt branch list --filter "feature/*"
bkt branch create release/1.9 --from main
bkt branch delete feature/old-stuff
bkt branch set-default main
bkt branch protect add main --type fast-forward-only
Issue Tracking (Bitbucket Cloud Only)
bkt issue list --state open --kind bug
bkt issue view 42 --comments
bkt issue create -t "Login broken" -k bug -p major
bkt issue edit 42 --assignee "{uuid}" --priority critical
bkt issue close 42
bkt issue reopen 42
bkt issue comment 42 -b "Fixed in v1.2.0"
bkt issue status
Issue kinds: bug, enhancement, proposal, task
Priorities: trivial, minor, major, critical, blocker
Webhooks
bkt webhook list
bkt webhook create --name "CI" --url https://ci.example.com/hook --event repo:refs_changed
bkt webhook delete <id>
bkt webhook test <id>
Pipelines (Cloud)
bkt pipeline run --ref main --var ENV=staging
bkt pipeline list
bkt pipeline view <uuid>
bkt pipeline logs <uuid>
bkt status pipeline <uuid>
Permissions (DC)
bkt perms project list --project DATA
bkt perms project grant --project DATA --user alice --perm PROJECT_WRITE
bkt perms repo list --project DATA --repo platform-api
bkt perms repo grant --project DATA --repo api --user alice --perm REPO_WRITE
Raw API Access
For endpoints not yet wrapped:
bkt api /rest/api/1.0/projects --param limit=100 --json
bkt api /repositories --param workspace=myteam --field pagelen=50
Output Modes
All commands support structured output:
bkt pr list --json
bkt pr list --yaml
bkt pr list --json | jq '.pull_requests[0].title'
Global Options
--json / --yaml — Structured output
--context <name> — Use specific context
--project <key> — Override project (DC)
--workspace <name> — Override workspace (Cloud)
--repo <slug> — Override repository
Environment Variables
BKT_CONFIG_DIR — Config directory override
BKT_ALLOW_INSECURE_STORE — Allow file-based credential storage
BKT_KEYRING_TIMEOUT — Keyring operation timeout (for example 2m)
References