One CLI for Jira, Confluence, Bitbucket & JSM.
Automate your entire stack from the terminal.
brew install omar16100/tap/atlassian-cli
First-class support for your entire Atlassian Cloud stack
Designed for scripts, pipelines, and runbooks
Dry-run mode previews changes before execution. Confirmation prompts protect against accidents.
Table, JSON, CSV, YAML, or quiet mode. Pipe to jq, export to spreadsheets, or integrate with any tool.
File-based storage with 600 permissions. Profile support for multiple instances. No keychain dependency.
Concurrent execution with progress tracking. Process thousands of items with rate-limit handling.
Works with GitHub Actions, GitLab CI, Jenkins, and any pipeline. Exit codes and machine-readable output.
Native Rust binary. Single executable, no runtime dependencies. Low memory footprint.
Production-ready automation scripts
# Preview issues to transition (dry-run)
atlassian-cli jira bulk transition \
--jql "project = DEV AND status = 'In Progress'" \
--transition "Done" \
--dry-run
# Execute the transition
atlassian-cli jira bulk transition \
--jql "project = DEV AND status = 'In Progress'" \
--transition "Done" \
--profile prod
# Export all pages from a space
atlassian-cli confluence bulk export \
--cql "space = DOCS AND type = page" \
--output pages.json \
--format json
# Get space metadata
atlassian-cli confluence space get DOCS --output json
# List attachments for a page
atlassian-cli confluence attachment list 123456
# List open pull requests
atlassian-cli bitbucket pr list \
--workspace myteam \
--repo api-service \
--state OPEN
# Approve and merge a PR
atlassian-cli bitbucket pr approve myteam api-service 42
atlassian-cli bitbucket pr merge myteam api-service 42 \
--strategy squash
# Protect main branch
atlassian-cli bitbucket branch protect main --approvals 2
Install in seconds, configure once
macOS & Linux
brew install omar16100/tap/atlassian-cli
Rust toolchain
cargo install atlassian-cli
# Add your first profile
atlassian-cli auth login \
--email you@company.com \
--instance your-domain.atlassian.net
# Verify it works
atlassian-cli jira search --jql "assignee = currentUser()"