Jira CLI (jira)
Use this skill to work with Jira through jira-cli efficiently and safely. It is most valuable when the agent needs help choosing the right subcommand, avoiding the interactive TUI, or separating read-only inspection from mutating actions.
When to use this skill
- the user explicitly mentions
jira,jira-cli, orankitpokhrel/jira-cli - the task mentions Jira issue keys like
ABC-123even if the user does not name the CLI - the task involves JQL, issue search filters, assignee/reporter queries, boards, sprints, releases, or server metadata
- the user wants to summarize Jira data for the terminal instead of opening the browser UI
- the task may mutate Jira state and needs a safe command choice plus verification steps
Default operating procedure
- Classify the task as
read-only,browser side effect only, ormutating. - If the exact subcommand is unclear, run the narrowest possible help command first, such as
jira issue move --help. - Prefer non-interactive output modes unless the user explicitly wants the TUI:
--rawfor machine-readable data--plainwith--columnsfor compact summaries--tablefor sprint and epic listings when you want a table instead of the explorer UI-nforjira openwhen you want the URL without launching the browser
- Execute the smallest command that answers the question or performs the requested change.
- After any mutation, verify the result with a follow-up read-only command.
Fast routing
Use these defaults before exploring broader help.
- inspect one issue:
jira issue view ISSUE-123 --raworjira issue view ISSUE-123 --plain - search issues:
jira issue list ... --plain --columns key,status,assignee --paginate 0:20 - raw issue data for parsing:
jira issue list ... --raw --paginate 0:20 - list boards:
jira board list - list projects:
jira project list - list releases:
jira release list - inspect sprints:
jira sprint list --table --plain --columns id,name,state - inspect epics:
jira epic list --table --plain --columns key,summary,status - current identity:
jira me - Jira instance metadata:
jira serverinfo - print browser URL only:
jira open ISSUE-123 -n
Command map
Top-level groups:
jira issue ...jira epic ...jira sprint ...jira board ...jira project ...jira release ...jira mejira serverinfojira openjira initjira version
High-value issue commands:
- read-only:
jira issue list,jira issue view - mutating:
jira issue create,jira issue edit,jira issue assign,jira issue move,jira issue link,jira issue unlink,jira issue clone,jira issue delete,jira issue watch,jira issue comment add,jira issue worklog add
High-value planning commands:
- epics:
jira epic list,jira epic create,jira epic add,jira epic remove - sprints:
jira sprint list,jira sprint add,jira sprint close - boards:
jira board list - projects:
jira project list - releases:
jira release list
Read-only vs mutating model
Use this classifier unless the user explicitly wants a write operation.
- read-only:
version,me,serverinfo,project list,board list,release list,issue list,issue view,epic list,sprint list,help - browser side effect only:
open; preferjira open -nunless the user explicitly wants the browser opened - mutating:
init,issue create|edit|assign|move|link|unlink|clone|delete|watch,issue comment add,issue worklog add,epic create|add|remove,sprint add|close
Output mode defaults
- use
--rawwhen you need structured data or expect to post-process the result - use
--plain --columns ... --no-headerswhen you need a compact, script-friendly summary - use
--tableforjira epic listandjira sprint listwhen you want non-explorer table output - use
PAGER=cator--plain/--rawforjira issue viewin scripted contexts - use
--paginateintentionally on issue and epic lists to avoid oversized output; format is<from>:<limit>and20means the same as0:20
If you need more detail on output choices, read references/output-modes.md.
Safe workflow for mutating tasks
Follow this plan-validate-execute pattern.
- Inspect current state with a read-only command.
- If the target value is ambiguous, gather context before mutating.
- Use one mutating command at a time.
- Re-run a read-only command to verify the change.
- Report both the action and the observed post-change state.
Examples:
- assign an issue:
jira issue view ISSUE-123 --plainjira issue assign ISSUE-123 $(jira me)jira issue view ISSUE-123 --plain
- move an issue:
jira issue view ISSUE-123 --plainjira issue move ISSUE-123 "In Progress"jira issue view ISSUE-123 --plain
- add work to a sprint:
jira sprint list --table --plain --columns id,name,statejira sprint add SPRINT_ID ISSUE-123 ISSUE-456jira sprint list SPRINT_ID --plain --columns key,status,assignee
For more detail, read references/workflows.md.
Gotchas
- many
listcommands default to an interactive TUI; add--plain,--raw, or--tableif you want deterministic terminal output jira issue viewuses a pager by default; setPAGER=cator use--plainor--rawin automationjira openopens a browser; usejira open -nto print the URL onlyjira issue assignexpects an exact assignee name or email;$(jira me)assigns to the current user,defaultassigns to the default assignee, andxunassignsjira issue movecan also set--comment,-a/--assignee, and-R/--resolutionduring transition- top-level
-p/--projectchanges project context; use it whenever the current config points at the wrong project - top-level
-c/--configorJIRA_CONFIG_FILElets you switch between Jira configs - README examples are useful, but local
jira ... --helpis the best source for the installed version
Common task patterns
Summarize recent issues
Default command:
jira issue list --plain --columns key,status,assignee --paginate 0:20
If the user names filters, convert them to flags first and only fall back to -q/--jql when flags are not expressive enough.
Inspect one issue deeply
Start with:
jira issue view ISSUE-123 --raw
Use --plain when the user wants a terminal-friendly human summary instead of raw data.
Translate interactive examples into automation-safe commands
If docs show jira issue list or jira sprint list without output flags, rewrite them to one of these forms before using them in scripted or tool-driven workflows:
--plain --columns ...--raw--table --plain-nforjira open
Discover exact flags
Use narrow help commands such as:
jira issue list --help
jira epic list --help
jira sprint close --help
Avoid broad jira --help unless you truly need the top-level command map.
Validation loop
Before finalizing, check that you used the right mode for the task:
- if the task was read-only, confirm no mutating command ran
- if the task was mutating, confirm you inspected state before and after the change
- if the output was meant for summarization or parsing, confirm you avoided the interactive UI and pager
- if the user asked for a URL, confirm you used
jira open -nunless they explicitly wanted the browser opened
References
- read
references/commands-readonly.mdwhen you need safe default commands fast - read
references/output-modes.mdwhen you need to choose between TUI, plain text, raw JSON, table output, pager behavior, or browser behavior - read
references/workflows.mdwhen you need step-by-step procedures for searching, inspecting, or mutating Jira data - GitHub README: https://github.com/ankitpokhrel/jira-cli
- Installation wiki: https://github.com/ankitpokhrel/jira-cli/wiki/Installation