The Problem: Four Products, Zero CLI
If you run an Atlassian Cloud stack, you know the drill. Jira for issues, Confluence for documentation, Bitbucket for code, JSM for service requests. Each product has its own web UI, its own API, and its own quirks. When you need to automate something—close 200 stale tickets, export a Confluence space, trigger a Bitbucket pipeline—you either write throwaway curl scripts or hunt for a product-specific CLI that only covers one piece of the puzzle.
The result is a patchwork of tools, each with different config files, different auth mechanisms, and different output formats. Your CI/CD pipeline ends up with four separate credential setups. Your runbooks reference three different binaries. And every new team member has to install and learn all of them.
atlassian-cli solves this by putting Jira, Confluence, Bitbucket, and JSM behind a single command-line interface. One binary. One config. One set of credentials per Atlassian instance.
What Is atlassian-cli?
atlassian-cli is an open-source, MIT-licensed CLI built in Rust. It ships as a single native binary with no runtime dependencies—no JVM, no Node, no Python interpreter. It supports four Atlassian Cloud products out of the box:
- Jira — issues, projects, bulk operations, workflows, automation rules, webhooks, audit logs
- Confluence — pages, spaces, blog posts, attachments, CQL search, bulk export, analytics
- Bitbucket — repos, branches, pull requests, pipelines, webhooks, SSH keys, permissions
- JSM — service desks, requests, customer management
Every command supports multiple output formats (table, JSON, CSV, YAML, quiet), profile-based multi-instance auth, and dry-run mode for destructive operations. It is designed for both interactive terminal use and headless CI/CD automation.
Installation
Three ways to install. Pick whichever fits your toolchain.
Homebrew (macOS and Linux)
# Add the tap and install
brew tap omar16100/atlassian-cli
brew install atlassian-cli
# Verify
atlassian-cli --version
Cargo (Rust toolchain)
cargo install atlassian-cli
Pre-built Binary
Download the latest release for your platform from the GitHub Releases page. Binaries are available for Linux (x86_64, aarch64), macOS (Intel, Apple Silicon), and Windows.
Configuration: Profiles and Auth
atlassian-cli uses a profile system stored in ~/.atlassian-cli/config.yaml. Each profile maps to an Atlassian Cloud instance and holds a base URL, email, and encrypted API token. You can have as many profiles as you need—one for production, one for staging, one for a client's instance.
Adding a Jira/Confluence Profile
# Interactive login (prompts for token)
atlassian-cli auth login \
--profile work \
--base-url your-domain.atlassian.net \
--email you@company.com \
--default
Adding a Bitbucket Profile
Bitbucket uses scoped API tokens separate from Jira/Confluence. The CLI checks environment variables in priority order: ATLASSIAN_CLI_BITBUCKET_TOKEN_{PROFILE}, ATLASSIAN_BITBUCKET_TOKEN, BITBUCKET_TOKEN, then falls back to the regular profile token.
# Set up a Bitbucket Bearer token profile
atlassian-cli auth login \
--profile bb-ci \
--bitbucket --bearer \
--workspace myteam
# Verify connection
atlassian-cli auth test --bitbucket --profile bb-ci
# List all configured profiles
atlassian-cli auth list
Credentials are encrypted with AES-256-GCM. No keychain dependency, no plaintext tokens on disk.
Product-by-Product Walkthrough
Jira: Issues, Bulk Ops, and Automation
The Jira subcommand covers the full issue lifecycle plus project administration. Here are the commands you will reach for most often.
# Search issues with JQL
atlassian-cli jira search \
--jql "project = DEV AND status = 'In Progress'" \
--limit 20
# Create an issue
atlassian-cli jira create \
--project DEV \
--issue-type Task \
--summary "Automate deployment pipeline"
# Bulk transition with dry-run safety
atlassian-cli jira bulk transition \
--jql "project = DEV AND status = Open" \
--transition "In Progress" \
--dry-run
The --dry-run flag previews which issues would be affected without making changes. Remove it to execute. See the Jira bulk transition runbook for a full walkthrough.
Confluence: Search, Export, Backup
The Confluence subcommand lets you manage pages, spaces, and attachments. CQL-based search gives you the same power as the Confluence web search, but with structured output.
# Search pages by CQL
atlassian-cli confluence search cql \
--cql "space = DOCS and type = page" \
--limit 10
# Bulk export an entire space to JSON
atlassian-cli confluence bulk export \
--space DOCS \
--output backup.json \
--format json
# Download an attachment
atlassian-cli confluence attachment download \
--id 11111 \
--output ./diagram.png
For automated Confluence backups, see the Confluence backup runbook.
Bitbucket: PRs, Pipelines, Branches
The Bitbucket subcommand (also available as the bb alias) covers repository management, pull requests, pipelines, and branch protection.
# List open pull requests
atlassian-cli bitbucket --workspace myteam pr list api-service \
--state OPEN --limit 5
# Trigger a pipeline on main
atlassian-cli bitbucket --workspace myteam pipeline trigger api-service \
--ref-name main
# Bulk delete merged branches (dry-run first)
atlassian-cli bitbucket --workspace myteam bulk delete-branches api-service \
--exclude feature/keep \
--dry-run
The Bitbucket branch cleanup runbook shows how to automate stale branch removal on a schedule.
JSM: Service Desk Operations
The JSM subcommand handles service desk listing, request management, and customer operations.
# List service desks
atlassian-cli jsm servicedesk list --limit 10
# Get a specific request
atlassian-cli jsm request get SD-123
Real-World Workflows
Sprint Cleanup
At the end of every sprint, close stale tickets and export a summary. One script, two commands:
# Close all "Won't Do" tickets in the current sprint
atlassian-cli jira bulk transition \
--jql "project = DEV AND sprint in openSprints() AND status = 'Won\\'t Do'" \
--transition "Done" \
--profile prod
# Export sprint issues to CSV for retro
atlassian-cli jira bulk export \
--jql "project = DEV AND sprint in openSprints()" \
--output sprint-report.csv \
--format csv
Documentation Sync
Back up a Confluence space and its attachments nightly. Pair with cron or a GitHub Actions schedule:
# Export full space to JSON
atlassian-cli confluence bulk export \
--space DOCS \
--output /backups/confluence-$(date +%Y%m%d).json \
--format json
# Check space stats
atlassian-cli confluence analytics space-stats --space DOCS
Release Automation
After merging a release PR in Bitbucket, trigger the deployment pipeline and transition all related Jira tickets to "Released":
# Merge the release PR
atlassian-cli bb --workspace myteam pr merge api-service 42 \
--strategy merge_commit
# Trigger deployment pipeline
atlassian-cli bb --workspace myteam pipeline trigger api-service \
--ref-name main
# Transition Jira issues to Released
atlassian-cli jira bulk transition \
--jql "project = DEV AND fixVersion = '2.1.0'" \
--transition "Released"
Why atlassian-cli Over Separate Tools?
There are good standalone CLIs for individual Atlassian products. jira-cli by ankitpokhrel is excellent for Jira-only workflows. But if you work across multiple Atlassian products daily, a unified approach pays off fast:
- One config file — profiles in
~/.atlassian-cli/config.yamlcover all products. No separate dotfiles for each tool. - Consistent output — every command supports
--format json|csv|yaml|table|quiet. Pipe output between products without format translation. - Single CI setup — install one binary in your pipeline. One credential store. One set of environment variables.
- Cross-product scripts — chain Jira, Confluence, and Bitbucket commands in the same shell script with shared profiles.
- Rust performance — native binary, sub-second startup, low memory. No JVM warmup, no interpreter overhead.
Getting Started
Ready to try it? Install atlassian-cli in under a minute:
brew install omar16100/atlassian-cli/atlassian-cli
Then explore the product-specific guides:
- Jira CLI reference — full command documentation
- Confluence CLI reference — pages, spaces, bulk ops
- Bitbucket CLI reference — PRs, pipelines, repos
- JSM CLI reference — service desk operations
For production automation recipes, check the runbooks:
Install atlassian-cli
One CLI for your entire Atlassian Cloud stack. Open source, MIT licensed.
Get Started