Atlassian CLI (acli)

Interact with Jira Cloud using the Atlassian CLI.

When to Use

Use this skill when asked to:

Authentication

acli stores credentials locally after login (not via env vars). Check status:

acli jira auth status

If not authenticated, login via browser (interactive):

acli jira auth login --web

Or via API token for scripted login. Get a token from https://id.atlassian.com/manage-profile/security/api-tokens, store it in 1Password, then add to client_info.yaml secrets:

secrets:
  ATLASSIAN_TOKEN: "ClientName Atlassian/api_token"
  ATLASSIAN_EMAIL: "ClientName Atlassian/email"
  ATLASSIAN_SITE: "ClientName Atlassian/site"

Then login using fnox:

echo "$ATLASSIAN_TOKEN" | acli jira auth login --site "$ATLASSIAN_SITE" --email "$ATLASSIAN_EMAIL" --token

Reading Data

Command Purpose
acli jira workitem view KEY-123 View issue details
acli jira workitem search --jql "..." Search issues with JQL
acli jira project list List all projects
acli jira board search Search boards
acli jira board list-sprints --board-id ID List sprints for a board
acli jira sprint list-workitems --sprint-id ID List issues in a sprint

Creating/Updating

Command Purpose
acli jira workitem create Create new issue
acli jira workitem edit --key KEY-123 Edit existing issue
acli jira workitem transition --key KEY-123 --status "Done" Change issue status
acli jira workitem comment create --key KEY-123 --body "..." Add comment
acli jira workitem assign --key KEY-123 --assignee "email" Assign issue

Common Tasks

View an Issue

acli jira workitem view KEY-123
acli jira workitem view KEY-123 --json
acli jira workitem view KEY-123 --fields "*all"

Search Issues

# Issues assigned to me
acli jira workitem search --jql "assignee = currentUser() ORDER BY updated DESC"

# Open issues in a project
acli jira workitem search --jql "project = PROJ AND status != Done"

# Recently updated
acli jira workitem search --jql "project = PROJ AND updated >= -7d"

# By label
acli jira workitem search --jql "project = PROJ AND labels = 'performance'"

Create an Issue

acli jira workitem create --project "PROJ" --type "Task" --summary "Fix performance issue" --description "Details here"

# With assignee and labels
acli jira workitem create --project "PROJ" --type "Bug" --summary "Login broken" --assignee "user@example.com" --label "urgent,frontend"

Update an Issue

# Edit summary
acli jira workitem edit --key KEY-123 --summary "New title"

# Change assignee
acli jira workitem edit --key KEY-123 --assignee "user@example.com"

# Add labels
acli jira workitem edit --key KEY-123 --labels "performance,backend"

Transition Status

acli jira workitem transition --key KEY-123 --status "In Progress"
acli jira workitem transition --key KEY-123 --status "Done" --yes

Add Comment

acli jira workitem comment create --key KEY-123 --body "Investigation complete, root cause identified"

JQL Syntax

JQL (Jira Query Language) is used to search issues.

Common fields:

Operators:

Date shortcuts:

Examples:

project = PROJ AND status != Done
assignee = currentUser() AND updated >= -7d
project IN (PROJ1, PROJ2) AND issuetype = Bug
summary ~ "performance" OR description ~ "slow"

Output Formats

Most commands support --json for machine-readable output and --csv for spreadsheet export.

acli jira workitem search --jql "project = PROJ" --json
acli jira workitem search --jql "project = PROJ" --csv --fields "key,summary,status,assignee"