atlassian-cli

module
v0.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 28, 2026 License: MIT

README

atlassian

CI Release Coverage Go Reference Go version Ask DeepWiki Built with cliwright

Jira, Confluence, Jira Service Management and Jira Software from the command line — all 1,143 documented operations, on Cloud and Data Center.

Documentation · Command reference


Install

curl -fsSL https://raw.githubusercontent.com/jjuanrivvera/atlassian-cli/main/install.sh | sh
Other methods
# Homebrew
brew install jjuanrivvera/atlassian-cli/atlassian-cli

# Scoop (Windows)
scoop bucket add atlassian-cli https://github.com/jjuanrivvera/scoop-atlassian-cli
scoop install atlassian-cli

# Go
go install github.com/jjuanrivvera/atlassian-cli/cmd/atlassian@latest

deb, rpm and apk packages are attached to each release.

Quickstart

atlassian init          # site URL + credentials, verified before they are saved
atlassian doctor        # config, credentials, connectivity, per-product licensing
# Jira
atlassian issues list --jql 'project = PP AND status = "In Progress"'
atlassian issues new --project PP --type Task --summary 'Rotate the signing key'
atlassian issues transition PP-1065 --to Done --resolution Fixed
atlassian issues comment PP-1065 --body 'Deployed. See the **runbook**.'

# Confluence
atlassian pages list --space-id 65537
atlassian pages new --space ENG --title Runbook --body @runbook.md
atlassian pages edit 123456 --body @runbook.md --message 'Add rollback steps'

# Jira Software
atlassian sprints list --board 42 --state active
atlassian sprints move 1234 --issue PP-1 --issue PP-2

# Jira Service Management
atlassian servicedesks queues 1
atlassian requests list --status OPEN_REQUESTS

# Both products at once
atlassian search 'signing key rotation'

What makes it different

The whole API, not a slice of it. The binary embeds a catalog generated from Atlassian's own OpenAPI documents — 1,143 operations across Jira (616), Confluence v2 (218), Confluence v1 (130), Jira Software (105) and Jira Service Management (74). Everyday work has ergonomic commands; everything else is one op call away, with parameters validated locally first:

$ atlassian op search sprint
ID                         PRODUCT  METHOD  PATH                                    TAG     SUMMARY
getAllSprints              agile    GET     /rest/agile/1.0/board/{boardId}/sprint  Board   Get all sprints
createSprint               agile    POST    /rest/agile/1.0/sprint                  Sprint  Create sprint
swapSprint                 agile    POST    /rest/agile/1.0/sprint/{sprintId}/swap  Sprint  Swap sprint
…

$ atlassian op call getIssue
error: getIssue requires "issueIdOrKey"

try: atlassian op describe getIssue

That validation happens before anything is sent, from the embedded schema — no round trip, no guessing at a 400.

Markdown instead of ADF. Jira REST v3 models rich text as Atlassian Document Format and rejects a plain string, which makes the raw API close to unusable from a shell. Pass text or Markdown and it is converted; pass --body-adf when you need exact control. Reading goes the other way, so a comment renders as text rather than 400 characters of nested JSON.

Versioning handled. Confluence rejects an update whose version number is not exactly current+1. atlassian pages edit reads the current version and increments it, and resends the existing body when only the title changes — otherwise the page is silently emptied.

Names instead of accountIds. Jira's write endpoints only accept opaque accountIds. --assignee 'Juan Rivera', --assignee juan@example.com and --assignee me all resolve.

Data Center works. Personal access tokens, the v2 identity endpoint, self-hosted base URLs.

Built for agents. atlassian mcp serves the whole command tree as annotated MCP tools over the same client, keyring and --dry-run. atlassian agent guard reads the live tree and emits host safety config — irreversible operations blocked, writes gated, reads free. See the comparison with Atlassian's own MCP server.

Output

Every command speaks table (default), json, yaml, csv and id:

atlassian issues list --jql 'project = PP' -o csv > issues.csv
atlassian issues list --jql 'project = PP' -o id | xargs -n1 atlassian issues get
atlassian projects list --jq '.[] | select(.projectTypeKey == "software") | .key'

CSV cells are neutralized against spreadsheet formula injection, and terminal escape sequences are stripped from API-supplied text before it reaches your terminal.

Multiple sites

A profile is a site, so the flag is --site:

atlassian init --name work    --base-url https://acme.atlassian.net
atlassian init --name onprem  --base-url https://jira.internal --deployment datacenter
atlassian issues list --site onprem --jql 'project = OPS'
atlassian config use work

Credentials go to the OS keyring — never to the config file. On a headless box, set ATLASSIAN_KEYRING_PASSWORD for the AES-256-GCM encrypted-file store, or force it with ATLASSIAN_KEYRING_BACKEND=file.

Safety

  • --dry-run prints the equivalent curl, credential redacted, and sends nothing.
  • Deletes prompt, and refuse outright when stdin is not a terminal — pass --yes to script them.
  • Only idempotent methods are ever retried; a POST is never re-sent, so a timeout cannot create a second issue.
  • Retry-After is honoured, and the rate limiter adapts to the quota headers Atlassian sends.
  • Ctrl-C cancels in-flight pagination and retry backoff.

Documentation

Command reference Every command, generated from the binary
Comparison Against Atlassian's Rovo MCP server, acli and jira-cli
OAuth setup Registering a developer app, if you want --method oauth2
Privacy · Terms What it stores locally, and what it contacts
DECISIONS.md Why the CLI behaves the way it does
AGENTS.md Contributing, and the build gate

License

MIT. Not affiliated with or endorsed by Atlassian.

Directories

Path Synopsis
cmd
atlassian command
Command atlassian is a command-line client for Jira, Jira Software, Jira Service Management and Confluence.
Command atlassian is a command-line client for Jira, Jira Software, Jira Service Management and Confluence.
Package commands is the cobra command tree.
Package commands is the cobra command tree.
internal
adf
Package adf converts between Markdown-flavoured plain text and Atlassian Document Format.
Package adf converts between Markdown-flavoured plain text and Atlassian Document Format.
api
auth
Package auth stores Atlassian credentials and applies them to outgoing requests.
Package auth stores Atlassian credentials and applies them to outgoing requests.
catalog
Package catalog is the embedded index of every operation Atlassian publishes across Jira, Jira Software (Agile), Jira Service Management and Confluence.
Package catalog is the embedded index of every operation Atlassian publishes across Jira, Jira Software (Agile), Jira Service Management and Confluence.
config
Package config stores non-secret settings: which Atlassian sites are known, their base URLs, and which auth method each uses.
Package config stores non-secret settings: which Atlassian sites are known, their base URLs, and which auth method each uses.
output
Package output renders API results in the four supported formats.
Package output renders API results in the four supported formats.
version
Package version carries build metadata injected via -ldflags at link time.
Package version carries build metadata injected via -ldflags at link time.
tools
gendocs command
Command gendocs regenerates docs/commands from the live cobra tree.
Command gendocs regenerates docs/commands from the live cobra tree.
genspec command
Command genspec turns Atlassian's published OpenAPI documents into the two artifacts the CLI is built from:
Command genspec turns Atlassian's published OpenAPI documents into the two artifacts the CLI is built from:

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL