Jira CLI
Interact with Atlassian Jira from the command line using jira-cli.
When to Use
- User asks to create, view, edit, or search Jira issues/tickets
- User needs to transition issues through workflow states (To Do → In Progress → Done)
- User wants to manage sprints, epics, or boards
- User needs to assign issues, add comments, or log work time
- User asks about their current tasks or sprint progress
Prerequisites
- Install jira-cli:
brew install ankitpokhrel/jira-cli/jira-cli(macOS) or download from releases - Set API token:
export JIRA_API_TOKEN="your-token" - Initialize:
jira initand follow prompts
Issue Commands
List Issues
# List issues in current project
jira issue list
# List my assigned issues
jira issue list -a$(jira me)
# List issues by status
jira issue list -s"In Progress"
# List high priority issues
jira issue list -yHigh
# List issues with multiple filters
jira issue list -a$(jira me) -s"To Do" -yHigh --created week
# List issues with raw JQL
jira issue list -q "project = PROJ AND status = 'In Progress'"
# Plain text output for scripting
jira issue list --plain --columns key,summary,status --no-headers
Create Issues
# Interactive issue creation
jira issue create
# Create with all options specified
jira issue create -tBug -s"Login button not working" -b"Description here" -yHigh --no-input
# Create a story
jira issue create -tStory -s"Add user authentication" -yMedium
# Create with labels and components
jira issue create -tTask -s"Update dependencies" -lmaintenance -l"tech-debt" -Cbackend
# Create and assign to self
jira issue create -tBug -s"Fix crash on startup" -a$(jira me) --no-input
View Issues
# View issue details
jira issue view ISSUE-123
# View with comments
jira issue view ISSUE-123 --comments 10
# View in plain text
jira issue view ISSUE-123 --plain
# Open issue in browser
jira open ISSUE-123
Edit Issues
# Edit summary
jira issue edit ISSUE-123 -s"Updated summary"
# Edit description
jira issue edit ISSUE-123 -b"New description"
# Edit priority
jira issue edit ISSUE-123 -yHigh
# Add labels
jira issue edit ISSUE-123 -lnew-label
Transition Issues
# Move issue to a new status
jira issue move ISSUE-123 "In Progress"
# Move with comment
jira issue move ISSUE-123 "Done" --comment "Completed the task"
# Move and set resolution
jira issue move ISSUE-123 "Done" -RFixed
Assign Issues
# Assign to self
jira issue assign ISSUE-123 $(jira me)
# Assign to specific user
jira issue assign ISSUE-123 username
# Unassign
jira issue assign ISSUE-123 x
Comments
# Add a comment
jira issue comment add ISSUE-123 "This is my comment"
# Add comment from editor
jira issue comment add ISSUE-123
Work Logging
# Log time
jira issue worklog add ISSUE-123 "2h 30m"
# Log time with comment
jira issue worklog add ISSUE-123 "1d 4h" --comment "Completed feature implementation" --no-input
Link & Clone Issues
# Link two issues
jira issue link ISSUE-123 ISSUE-456 Blocks
# Unlink issues
jira issue unlink ISSUE-123 ISSUE-456
# Clone an issue
jira issue clone ISSUE-123 -s"Cloned: New summary"
# Delete an issue
jira issue delete ISSUE-123
Epic Commands
# List epics
jira epic list
# List epics in table format
jira epic list --table
# Create an epic
jira epic create -n"Q1 Features" -s"Epic summary" -b"Epic description"
# Add issues to epic
jira epic add EPIC-1 ISSUE-123 ISSUE-456
# Remove issues from epic
jira epic remove ISSUE-123 ISSUE-456
Sprint Commands
# List sprints
jira sprint list
# List current/active sprint
jira sprint list --current
# List my issues in current sprint
jira sprint list --current -a$(jira me)
# Add issues to sprint
jira sprint add SPRINT_ID ISSUE-123 ISSUE-456
Project & Board Commands
# List projects
jira project list
# List boards
jira board list
# List releases/versions
jira release list
# Open project in browser
jira open
Utility Commands
# Get current username
jira me
# Show help
jira --help
jira issue --help
# Setup shell completion
jira completion bash # or zsh, fish, powershell
Common Flags
| Flag | Description |
| ---- | ----------- |
| --plain | Plain text output (no interactive UI) |
| --raw | Raw JSON output |
| --csv | CSV output |
| --no-input | Skip interactive prompts |
| -t, --type | Issue type (Bug, Story, Task, Epic) |
| -s, --summary | Issue summary/title |
| -b, --body | Issue description |
| -y, --priority | Priority (Highest, High, Medium, Low, Lowest) |
| -l, --label | Labels (repeatable) |
| -a, --assignee | Assignee username |
| -r, --reporter | Reporter username |
| -C, --component | Component name |
| -P, --parent | Parent issue/epic key |
| -q, --jql | Raw JQL query |
| --created | Filter by creation date (-7d, week, month) |
| --order-by | Sort field |
| --reverse | Reverse sort order |
Common Workflows
Start Working on an Issue
# Assign to self and move to In Progress
jira issue assign ISSUE-123 $(jira me)
jira issue move ISSUE-123 "In Progress"
Complete an Issue
# Log work and close
jira issue worklog add ISSUE-123 "4h" --no-input
jira issue move ISSUE-123 "Done" --comment "Completed" -RFixed
Daily Standup Review
# View my current sprint tasks
jira sprint list --current -a$(jira me)
Create and Track a Bug
# Create bug
jira issue create -tBug -s"App crashes on login" -yHigh -lbug --no-input
# Note the returned issue key, then assign
jira issue assign BUG-123 $(jira me)
jira issue move BUG-123 "In Progress"
Output Examples
| Command | Use Case |
| ------- | -------- |
| jira issue list --plain | Script-friendly output |
| jira issue list --raw | JSON for parsing |
| jira issue list --csv | Export to spreadsheet |
Limitations
- Requires prior
jira initconfiguration - Some features may vary between Jira Cloud and Server
- Complex custom fields may require
--customflag with field IDs - Rate limits apply based on Jira instance configuration