Skill v1.1.0
currentAutomated scan100/1002 files
name: acli-jira description: This skill should be used when the user asks to "run acli jira commands", "create a Jira issue", "search Jira issues", "manage Jira projects", "transition Jira status", "check jira issue", "consistent with jira issue", or mentions ACLI, Atlassian CLI, Jira CLI, Jira issue keys (e.g. KAN-1, PROJ-123), or jira workitem/project/board/sprint operations via the command line. version: 1.1.0
ACLI Jira Command Reference
Quick-reference for Atlassian CLI (acli) Jira commands. Covers authentication, work item CRUD, search, project management, boards, sprints, and filters.
Core Principles
- Authenticate first: Verify auth status before running commands
- JQL for precision: Use JQL queries for targeted searches over broad listing
- Bulk via JQL: Prefer
--jqlover comma-separated--keyfor operations on many items - Output format matters: Use
--jsonfor scripting,--csvfor exports, default for readability - Use short flags: Combine
-p,-t,-s,-afor faster command composition
Authentication
Authenticate before running any Jira command.
# Log in (interactive browser flow)acli jira auth login# Check current auth statusacli jira auth status# Switch between authenticated accountsacli jira auth switch# Log outacli jira auth logout
Work Items — Core Operations
Create
Tip: Issue types are project-specific. Before creating, check allowed types with:acli jira workitem create -p "PROJ" --helpor attempt creation — the error message lists valid types.
# Create with inline fieldsacli jira workitem create --project "PROJ" --type "Task" --summary "Implement feature X"# Create with descriptionacli jira workitem create -p "PROJ" -t "Story" -s "User login" -d "As a user, I want to log in"# Create with assignee and labelsacli jira workitem create -p "PROJ" -t "Bug" -s "Fix crash" -a "@me" -l "critical,backend"# Create as subtask (specify parent)acli jira workitem create -p "PROJ" -t "Subtask" -s "Write tests" --parent "PROJ-42"# Create from JSON templateacli jira workitem create --generate-json > template.json # generate templateacli jira workitem create --from-json template.json # create from template# Create from file (summary + description)acli jira workitem create -p "PROJ" -t "Task" --from-file spec.txt# Open editor to compose (summary + description)acli jira workitem create -p "PROJ" -t "Task" -e
View
# View work item detailsacli jira workitem view PROJ-123# View as JSONacli jira workitem view PROJ-123 --json# View specific fields onlyacli jira workitem view PROJ-123 --fields summary,status,assignee# Open in browseracli jira workitem view PROJ-123 --web
Edit
# Edit summaryacli jira workitem edit --key "PROJ-123" --summary "Updated summary"# Edit multiple itemsacli jira workitem edit --key "PROJ-1,PROJ-2,PROJ-3" --assignee "dev@company.com"# Bulk edit via JQLacli jira workitem edit --jql "project = PROJ AND status = Open" --assignee "dev@company.com"# Edit description from fileacli jira workitem edit --key "PROJ-123" --description-file updated.txt
Assign
# Assign to selfacli jira workitem assign --key "PROJ-123" --assignee "@me"# Assign to someoneacli jira workitem assign --key "PROJ-123" --assignee "dev@company.com"# Bulk assign via JQLacli jira workitem assign --jql "project = PROJ AND sprint in openSprints()" --assignee "dev@company.com"
Transition (Change Status)
# Transition to a new statusacli jira workitem transition --key "PROJ-123" --status "In Progress"# Common transitionsacli jira workitem transition --key "PROJ-123" --status "Done"acli jira workitem transition --key "PROJ-123" --status "In Review"
Delete
# Delete a work itemacli jira workitem delete --key "PROJ-123"# Delete multipleacli jira workitem delete --key "PROJ-1,PROJ-2"
Search
# Search with JQLacli jira workitem search --jql "project = PROJ AND assignee = currentUser()"# Search with field selectionacli jira workitem search -j "project = PROJ AND status = 'In Progress'" -f "key,summary,assignee,status"# Search with limitacli jira workitem search --jql "project = PROJ" --limit 50# Count results onlyacli jira workitem search --jql "project = PROJ AND type = Bug" --count# Export as CSVacli jira workitem search --jql "project = PROJ" --csv# Export as JSONacli jira workitem search --jql "sprint in openSprints()" --json# Paginate through all resultsacli jira workitem search --jql "project = PROJ" --paginate# Search using saved filteracli jira workitem search --filter "12345"# Open search in browseracli jira workitem search --jql "project = PROJ" --web
Work Items — Secondary Operations
Comments
# Add a commentacli jira workitem comment create --key "PROJ-123" --body "Ready for review"# List commentsacli jira workitem comment list --key "PROJ-123"# Update a commentacli jira workitem comment update --key "PROJ-123" --id "10001" --body "Updated comment"# Delete a commentacli jira workitem comment delete --key "PROJ-123" --id "10001"
Clone
# Clone a work item (--to-project is required, even for same project)acli jira workitem clone --key "PROJ-123" --to-project "PROJ"# Clone to a different projectacli jira workitem clone --key "PROJ-123" --to-project "OTHER"
Link
# Link two work items (outward blocks inward)acli jira workitem link create --out "PROJ-123" --in "PROJ-456" --type "Blocks"# Get available link typesacli jira workitem link type
Attachments
# List attachmentsacli jira workitem attachment list --key "PROJ-123"# Delete an attachment (by attachment ID, no --key needed)acli jira workitem attachment delete --id "10001"
Watchers
# Remove a watcher (--user takes Atlassian account ID)acli jira workitem watcher remove --key "PROJ-123" --user "5b10ac8d82e05b22cc7d4ef5"
Archive / Unarchive
# Archive work itemsacli jira workitem archive --key "PROJ-123"# Unarchive work itemsacli jira workitem unarchive --key "PROJ-123"
Project Management
Create Project
# Create a project cloned from an existing one (company-managed projects only)acli jira project create --from-project "EXISTING" --key "NEWPROJ" --name "New Project"# Create with description and leadacli jira project create --from-project "EXISTING" --key "NEWPROJ" --name "New Project" \--description "Project description" --lead-email "lead@company.com"# Generate JSON template for full controlacli jira project create --generate-json > project.jsonacli jira project create --from-json project.json
List Projects
# List projects (requires --limit, --recent, or --paginate)acli jira project list --limit 50# List recently accessed projectsacli jira project list --recent# List all projects (paginated)acli jira project list --paginate# List as JSON for scriptingacli jira project list --limit 50 --json# Extract project keys with jqacli jira project list --limit 50 --json | jq '.[].key'
View Project
# View project detailsacli jira project view --key PROJ# View as JSONacli jira project view --key PROJ --json
Update Project
# Update project name and lead (--project-key targets existing, --key sets new key)acli jira project update --project-key "PROJ" --name "New Name" --lead-email "newlead@company.com"
Archive / Restore
# Archive a projectacli jira project archive --key "PROJ"# Restore an archived projectacli jira project restore --key "PROJ"
Delete Project
# Delete a project (irreversible)acli jira project delete --key "PROJ"
Boards, Sprints & Filters
Boards
# Search for boardsacli jira board search# Search by nameacli jira board search --name "Team Board"# List sprints on a boardacli jira board list-sprints --id 42
Sprints
# List work items in a sprint (both --sprint and --board are required)acli jira sprint list-workitems --sprint 100 --board 6# List with field selectionacli jira sprint list-workitems --sprint 100 --board 6 --fields "key,summary,status,assignee"
Filters
# Search filters (supports --owner, --name, --limit, --paginate)acli jira filter search# List my filters (--my or --favourite required)acli jira filter list --myacli jira filter list --favourite# Add a filter to favouritesacli jira filter add-favourite --filter-id "12345"# Change filter owner (--id, not --filter-id)acli jira filter change-owner --id "12345" --owner "newowner@company.com"
Common Flag Patterns
| Flag | Short | Purpose | |
|---|---|---|---|
--json | Output as JSON | ||
--csv | Output as CSV | ||
--web | -w | Open in browser | |
--help | -h | Show command help | |
--key | Target work item(s), comma-separated | ||
--jql | -j | JQL query for bulk operations | |
--fields | -f | Comma-separated field list | |
--label | -l | Add labels (comma-separated) | |
--limit | Max results to return | ||
--paginate | Fetch all results via pagination | ||
--assignee | -a | User email or @me | |
--project | -p | Project key | |
--type | -t | Work item type (Epic, Story, Task, Bug) | |
--summary | -s | Work item summary text | |
--description | -d | Work item description text |
Common Workflows
Discover Project & Create Items
# 1. Find available projectsacli jira project list --limit 50 --json | jq '.[] | {key, name}'# 2. Check project details (issue types are listed in error if wrong type used)acli jira project view --key PROJ --json# 3. Create item with validated typeacli jira workitem create -p "PROJ" -t "Task" -s "My new task" -d "Description here"
Start Working on an Item
# Find and assign item to yourself, then transition to In Progressacli jira workitem assign --key "PROJ-123" --assignee "@me"acli jira workitem transition --key "PROJ-123" --status "In Progress"
Create Bug with Full Context
# Create bug with description, labels, and assignmentacli jira workitem create \-p "PROJ" -t "Bug" \-s "Login fails with SSO redirect loop" \-d "Steps: 1. Click SSO login 2. Redirects infinitely. Expected: Successful login." \-a "@me" -l "sso,auth,critical"
Sprint Review — List Items by Status
# All items in current sprintacli jira workitem search --jql "sprint in openSprints() AND project = PROJ" -f "key,summary,status,assignee"# Incomplete items in current sprintacli jira workitem search --jql "sprint in openSprints() AND project = PROJ AND status != Done" -f "key,summary,status"# Export sprint report as CSVacli jira workitem search --jql "sprint in openSprints() AND project = PROJ" --csv
Bulk Reassignment
# Reassign all items from one person to anotheracli jira workitem assign --jql "assignee = 'old@company.com' AND status != Done" --assignee "new@company.com"
Complete an Item
# Add final comment and transition to Doneacli jira workitem comment create --key "PROJ-123" --body "Completed in PR #456"acli jira workitem transition --key "PROJ-123" --status "Done"
Useful JQL Patterns
# My open items"assignee = currentUser() AND status != Done"# Current sprint items"sprint in openSprints() AND project = PROJ"# Recently updated bugs"project = PROJ AND type = Bug AND updated >= -7d"# Unassigned items in backlog (sprint field requires Scrum board)"project = PROJ AND assignee is EMPTY AND sprint is EMPTY"# Items blocked or blocking"issueFunction in linkedIssuesOf('key = PROJ-123', 'blocks')"# Epics without completed stories"type = Epic AND project = PROJ AND status != Done"# High priority items needing attention"project = PROJ AND priority in (Highest, High) AND status != Done"# Items created this week"project = PROJ AND created >= startOfWeek()"# Items without estimates"project = PROJ AND originalEstimate is EMPTY AND type in (Story, Task)"# Overdue items"project = PROJ AND duedate < now() AND status != Done"
Output Formatting Tips
Use --json for scripting/piping, --csv for spreadsheet export, --count for totals only, and -f to select specific fields. Add --paginate with --limit for large result sets. These flags work across most search and list commands.
JSON + jq Piping
# Extract specific fields from search resultsacli jira workitem search --jql "project = PROJ" --json | jq '.[].key'# Get project keys and namesacli jira project list --limit 50 --json | jq '.[] | {key, name}'# Count items by statusacli jira workitem search --jql "project = PROJ" --json | jq 'group_by(.fields.status.name) | map({status: .[0].fields.status.name, count: length})'
Description Formatting
- Short descriptions: Use
-dwith plain text. Avoid markdown headings (##) inline — they don't render well in all Jira views. - Long/rich descriptions: Use
--editorto compose in your editor, or--from-fileto read from a file. - Multi-line inline: Use shell line continuation (
\) with-dfor multi-paragraph descriptions.