What is a Jira CLI?

A Jira CLI (command-line interface) is a tool that lets you interact with Jira directly from your terminal. Instead of clicking through the Jira web UI to search issues, create tickets, or transition workflows, you run commands like atlassian-cli jira search --jql "project = DEV" and get results instantly.

Jira CLI tools are used by DevOps engineers who need to automate ticket creation in pipelines, platform engineers managing thousands of issues across projects, and Jira admins performing bulk operations that would take hours in the browser. If your workflow involves Jira and a terminal, a Jira CLI eliminates context-switching and unlocks automation that the web UI simply cannot provide.

Why Use Jira from the Command Line?

The Jira web UI is designed for visual browsing, not for speed or automation. Here's why teams switch to a Jira command line tool:

Top Jira CLI Tools Compared

Several Jira CLI tools exist in 2026, each with different strengths. Here's an honest comparison:

Tool Language Products Auth Output Formats Bulk Ops Active
atlassian-cli Rust Jira, Confluence, Bitbucket, JSM API token, Bearer, profiles Table, JSON, CSV, YAML Yes + dry-run Yes
ankitpokhrel/jira-cli Go Jira only API token Table, JSON Limited Yes
go-jira Go Jira only API token, session Go templates No Archived
ACLI (Appfire) Java Jira, Confluence, more Multiple CSV, custom Yes Yes (paid)

atlassian-cli is the only open-source tool that covers four Atlassian products in a single binary. Written in Rust, it compiles to a native executable with no runtime dependencies. Profile support lets you manage multiple Atlassian instances (dev, staging, prod) from one config file. Bulk operations include dry-run mode, concurrency control, and rate-limit handling.

ankitpokhrel/jira-cli is a solid choice if you only need Jira. It includes a TUI (terminal UI) with an interactive issue board view, which is great for visual browsing in the terminal. Written in Go, it's fast and well-maintained.

go-jira was once the most popular Jira CLI, but it's been archived and is no longer maintained. If you're using go-jira today, it's worth migrating to a maintained alternative.

ACLI by Appfire is an enterprise-focused Java CLI that supports Jira, Confluence, and other Atlassian products. It's powerful but requires a paid license and a Java runtime. Best suited for organizations that already use Appfire's ecosystem.

Getting Started with atlassian-cli

Install

Choose your preferred installation method:

# Homebrew (macOS / Linux)
brew tap omar16100/atlassian-cli
brew install atlassian-cli

# Cargo (Rust toolchain)
cargo install atlassian-cli

# Verify
atlassian-cli --version

You can also download pre-built binaries for macOS, Linux, and Windows from the GitHub Releases page.

Authentication

The CLI uses Atlassian API tokens for authentication. Create a token at id.atlassian.com, then configure a profile:

# Add a profile with your Atlassian credentials
atlassian-cli auth login \
  --profile work \
  --base-url your-domain.atlassian.net \
  --email you@company.com \
  --token $ATLASSIAN_API_TOKEN \
  --default

# Verify authentication
atlassian-cli auth list

Credentials are stored with AES-256-GCM encryption in ~/.atlassian-cli/config.yaml. You can manage multiple profiles for different Atlassian instances (dev, staging, production) and switch between them with the --profile flag.

Your first command

Search for recent issues in a project:

atlassian-cli jira search --jql "project = DEV order by created desc" --limit 5

This returns a formatted table by default. Add --format json for machine-readable output, or --format csv for spreadsheets.

Essential Jira CLI Commands

Search issues with JQL

JQL (Jira Query Language) is the most powerful way to find issues. The jira search command accepts any valid JQL string:

# Open bugs assigned to you
atlassian-cli jira search \
  --jql "assignee = currentUser() AND type = Bug AND status != Done"

# Issues updated in the last 24 hours
atlassian-cli jira search \
  --jql "project = DEV AND updated >= -1d" \
  --format json

# Unassigned issues in the current sprint
atlassian-cli jira search \
  --jql "sprint in openSprints() AND assignee is EMPTY"

Create an issue

Create issues directly from the terminal. Specify the project, issue type, and summary as flags:

# Create a bug
atlassian-cli jira create \
  --project DEV \
  --issue-type Bug \
  --summary "Login page returns 500 on invalid email"

# Create a task
atlassian-cli jira create \
  --project DEV \
  --issue-type Task \
  --summary "Update API documentation for v2 endpoints"

Update and transition issues

Move issues through your workflow and update fields without opening the browser:

# Transition an issue to "In Progress"
atlassian-cli jira transition DEV-123 --transition "In Progress"

# Update the summary
atlassian-cli jira update DEV-123 --summary "Updated: Login page error handling"

# Assign to a team member
atlassian-cli jira assign DEV-123 --assignee user@example.com

View issue details

Get full details on any issue including status, assignee, and description:

# Get issue details
atlassian-cli jira get DEV-123

# JSON output for scripting
atlassian-cli jira get DEV-123 --format json

Projects, fields, and workflows

Inspect your Jira configuration to understand available projects, custom fields, and workflow states:

# List all projects
atlassian-cli jira project list

# List custom fields
atlassian-cli jira fields list

# List workflows and their transitions
atlassian-cli jira workflows list

Advanced: Bulk Operations

Bulk operations are where a Jira CLI tool truly outperforms the web UI. The jira bulk subcommand lets you process hundreds or thousands of issues with a single command.

Bulk transition

Transition all matching issues to a new status. The --dry-run flag previews what will change before you commit:

# Preview: see which issues would be transitioned
atlassian-cli jira bulk transition \
  --jql "project = DEV AND status = 'In Progress'" \
  --transition "Done" \
  --dry-run

# Execute the transition for real
atlassian-cli jira bulk transition \
  --jql "project = DEV AND status = 'In Progress'" \
  --transition "Done"

Bulk assign and export

# Assign all unassigned issues to a team member
atlassian-cli jira bulk assign \
  --jql "project = DEV AND assignee is EMPTY" \
  --assignee admin@example.com

# Export all issues to JSON for backup or analysis
atlassian-cli jira bulk export \
  --jql "project = DEV" \
  --output issues.json \
  --format json

Bulk operations run with concurrent execution and built-in rate-limit handling, so they work safely against the Atlassian Cloud API without hitting throttle limits. The dry-run flag ensures you always preview destructive changes before applying them.

CI/CD Integration

The Jira CLI integrates directly into CI/CD pipelines. Set environment variables for authentication and use --format json for machine-readable output.

GitHub Actions example

# .github/workflows/jira-update.yml
name: Update Jira on Deploy
on:
  push:
    branches: [main]

jobs:
  update-jira:
    runs-on: ubuntu-latest
    steps:
      - name: Install atlassian-cli
        run: cargo install atlassian-cli

      - name: Transition deployed issues
        env:
          ATLASSIAN_CLI_BASE_URL: ${{ secrets.ATLASSIAN_BASE_URL }}
          ATLASSIAN_CLI_EMAIL: ${{ secrets.ATLASSIAN_EMAIL }}
          ATLASSIAN_CLI_TOKEN_DEFAULT: ${{ secrets.ATLASSIAN_TOKEN }}
        run: |
          atlassian-cli jira bulk transition \
            --jql "project = DEV AND status = 'Ready for Deploy'" \
            --transition "Done" \
            --format json

The same pattern works with GitLab CI, Jenkins, or any pipeline runner that can execute shell commands. Machine-readable JSON output lets you parse results and feed them into downstream steps.

FAQ

What is the best Jira CLI tool?

It depends on your needs. For multi-product Atlassian automation (Jira + Confluence + Bitbucket + JSM), atlassian-cli is the best choice -- it covers four products in a single binary with bulk operations and dry-run safety. For a Jira-only TUI experience with an interactive board view, ankitpokhrel/jira-cli is a solid alternative.

Can I use Jira CLI in CI/CD pipelines?

Yes. Set ATLASSIAN_CLI_TOKEN_DEFAULT, ATLASSIAN_CLI_EMAIL, and ATLASSIAN_CLI_BASE_URL as environment variables, and use --format json for machine-readable output. atlassian-cli works with GitHub Actions, GitLab CI, Jenkins, and any pipeline that can run shell commands.

Does Jira CLI support bulk operations?

Yes. atlassian-cli supports bulk transitions, bulk assignments, bulk label updates, and bulk exports via JQL queries. All bulk commands include a --dry-run flag that previews changes before execution, with concurrent processing and rate-limit handling built in.

Is there a free Jira CLI?

Yes. atlassian-cli is free and open source under the MIT license. It supports Jira, Confluence, Bitbucket, and JSM. Install via Homebrew (brew install omar16100/atlassian-cli/atlassian-cli), Cargo, or download pre-built binaries from GitHub Releases.

Related Resources