Jira CLI Skill
This skill enables natural language interaction with Jira via the jira CLI
tool (https://github.com/ankitpokhrel/jira-cli).
Quick Reference
| Intent | Command |
|---|---|
| View issue | jira issue view ISSUE-KEY |
| List my issues | jira issue list -a$(jira me) |
| My in-progress | jira issue list -a$(jira me) -s"In Progress" |
| Create issue | jira issue create -tType -s"Summary" -b"Description" |
| Move/transition | jira issue move ISSUE-KEY "State" |
| Assign to me | jira issue assign ISSUE-KEY $(jira me) |
| Unassign | jira issue assign ISSUE-KEY x |
| Add comment | jira issue comment add ISSUE-KEY -b"Comment text" |
| Open in browser | jira open ISSUE-KEY |
| Current sprint | jira sprint list --state active |
| Who am I | jira me |
Command Details
Viewing Issues
bash
# View single issue jira issue view ISSUE-KEY # View with more comments jira issue view ISSUE-KEY --comments 5 # Get raw JSON jira issue view ISSUE-KEY --raw
Listing Issues
bash
# List all issues in project jira issue list # List my issues jira issue list -a$(jira me) # Filter by status (use quotes for multi-word statuses) jira issue list -s"In Progress" jira issue list -s"To Do" jira issue list -sDone # Filter by type jira issue list -tBug jira issue list -tStory jira issue list -tTask jira issue list -tEpic # Filter by priority jira issue list -yHigh jira issue list -yCritical # Filter by label jira issue list -lurgent -lbug # Combine filters jira issue list -a$(jira me) -s"In Progress" -yHigh # Search with text jira issue list "login error" # Recently accessed jira issue list --history # Issues I'm watching jira issue list -w # Created/updated filters jira issue list --created today jira issue list --created week jira issue list --updated -2d # Plain output for scripting jira issue list --plain --no-headers # Specific columns jira issue list --plain --columns key,summary,status,assignee # Raw JQL query jira issue list -q"status = 'In Progress' AND assignee = currentUser()" # Paginate results jira issue list --paginate 20 jira issue list --paginate 10:50 # start:limit
Creating Issues
bash
# Interactive creation jira issue create # Non-interactive with all fields jira issue create \ -tBug \ -s"Login button not working" \ -b"Users cannot click the login button on Safari" \ -yHigh \ -lbug -lurgent # Create and assign to self jira issue create -tTask -s"Summary" -a$(jira me) # Create subtask (requires parent) jira issue create -tSub-task -P"PROJ-123" -s"Subtask summary" # Create with custom fields jira issue create -tStory -s"Summary" --custom story-points=3 # Skip prompts for optional fields jira issue create -tTask -s"Quick task" --no-input # Open in browser after creation jira issue create -tBug -s"Bug title" --web # Read description from file jira issue create -tStory -s"Summary" --template /path/to/template.md # Read description from stdin echo "Description here" | jira issue create -tTask -s"Summary"
Transitioning Issues
bash
# Move to a state jira issue move ISSUE-KEY "In Progress" jira issue move ISSUE-KEY "Done" jira issue move ISSUE-KEY "To Do" # Move with comment jira issue move ISSUE-KEY "Done" --comment "Completed the implementation" # Move and set resolution jira issue move ISSUE-KEY "Done" -R"Fixed" # Move and reassign jira issue move ISSUE-KEY "In Review" -a"reviewer@example.com" # Open in browser after transition jira issue move ISSUE-KEY "Done" --web
Assigning Issues
bash
# Assign to specific user jira issue assign ISSUE-KEY "user@example.com" jira issue assign ISSUE-KEY "John Doe" # Assign to self jira issue assign ISSUE-KEY $(jira me) # Assign to default assignee jira issue assign ISSUE-KEY default # Unassign jira issue assign ISSUE-KEY x
Comments
bash
# Add comment jira issue comment add ISSUE-KEY -b"This is my comment" # Add comment from file jira issue comment add ISSUE-KEY --template /path/to/comment.md
Sprints
bash
# List sprints jira sprint list # Active sprint only jira sprint list --state active # Add issue to sprint jira sprint add SPRINT-ID ISSUE-KEY # Close sprint jira sprint close SPRINT-ID
Other Commands
bash
# Open issue in browser jira open ISSUE-KEY # Show current user jira me # Server info jira serverinfo # List projects jira project list # List boards jira board list
Natural Language Mapping
When interpreting user requests, map these patterns:
| User says | Interpret as |
|---|---|
| "my issues", "my tickets" | -a$(jira me) |
| "in progress", "working on" | -s"In Progress" |
| "todo", "to do", "backlog" | -s"To Do" |
| "done", "completed", "finished" | -sDone |
| "bugs", "defects" | -tBug |
| "stories", "features" | -tStory |
| "tasks" | -tTask |
| "epics" | -tEpic |
| "high priority", "urgent" | -yHigh or -yCritical |
| "blocked" | -s"Blocked" or search for "blocked" |
| "this week" | --created week or --updated week |
| "today" | --created today |
| "recent", "recently" | --history |
| "watching" | -w |
| "assign to me" | $(jira me) |
| "unassign" | x |
| "open it", "show in browser" | jira open |
Issue Key Detection
Issue keys follow the pattern: [A-Z]+-[0-9]+ (e.g., PROJ-123, ABC-1).
When a user mentions an issue key in conversation:
- •Offer to view it:
jira issue view KEY - •Or open it:
jira open KEY
Tips
- •Always show the command before running it
- •Use
--plainfor scripting or when output is too wide - •Use
$(jira me)to reference the current user - •Quote multi-word status names:
-s"In Progress" - •Combine filters to narrow results
- •Use
--rawwhen you need to parse JSON output - •The
-pflag can override the default project
Error Handling
Common issues:
- •"Issue does not exist" - verify the issue key
- •"Transition not allowed" - check current status and available transitions
- •"User not found" - use exact email or display name