jira-cli ยท diff
git:20260925.ca015cc to git:20261005.b620662
19 added, 2 removed. Audit A to A.
---
name: jira-cli
description: Run raw ankitpokhrel/jira-cli commands directly against Jira Cloud or on-prem, issue/epic/sprint CRUD, JQL-style filtering, and scripting/CI automation (bulk assign, auto-label, sprint add). Invoke explicitly via /jira-cli, or when the user wants literal `jira` CLI syntax, a filter the curated skills don't expose, or a bash/CI script that drives jira-cli. Manual-invocation skill, does not auto-fire on general mentions of "jira" or "ticket".
disable-model-invocation: true
metadata:
summary: "Interactive command-line tool for Atlassian Jira"
---
# Jira CLI
Command reference and scripting patterns for `jira-cli`, the command-line tool for managing Jira issues, epics, and sprints without the web UI.
## Prerequisites
+ Install with `brew install ankitpokhrel/jira-cli/jira-cli`, then run `jira init` once to authenticate.
+
These references assume `jira` on `PATH` is [ankitpokhrel/jira-cli](https://github.com/ankitpokhrel/jira-cli): a different tool can claim the same binary name. Before trusting any command below, run `jira version` once per session and confirm the output looks like this project (e.g. `jira version 1.x.x` with a `Homepage: https://github.com/ankitpokhrel/jira-cli` line). If it doesn't, stop and check `which jira` instead of guessing at flags.
For AI use, always add `--plain` (and usually `--no-headers`) to get parseable text output instead of the interactive table.
## When to Use This Skill
Manual slash-command skill (`/jira-cli`): it does not auto-trigger on mentions of "jira" or "ticket". Invoke it directly for raw `jira` CLI commands (issues, epics, sprints) or scripting/automation. On tools that don't read Claude-Code frontmatter, `disable-model-invocation` is ignored: the `/jira-cli` phrasing itself is the manual-invocation signal there too.
## Essential Commands
Curated top-7 for the most common operations. For anything else (filters, epic/sprint management, releases, output formats), load [references/commands.md](./references/commands.md); don't try to recall the rest from memory.
```bash
# List recent issues (always use --plain for AI)
jira issue list --plain
# View issue details
jira issue view ISSUE-1 --plain
# Create an issue
jira issue create -tBug -s"Bug title" -yHigh -b"Description" --no-input
# Assign issue to yourself
jira issue assign ISSUE-1 $(jira me)
# Move issue to "In Progress"
jira issue move ISSUE-1 "In Progress"
# Add comment
jira issue comment add ISSUE-1 --comment "My comment"
# Add worklog
jira issue worklog add ISSUE-1 "2h" --comment "Implementation work"
```
## Worked Examples
Confirm the CLI flavor before anything else:
```
$ jira version
jira version 1.5.1
Homepage: https://github.com/ankitpokhrel/jira-cli
```
A different `jira version` output (or a "command not found") means stop and resolve `which jira` before running any command from this skill.
Parse `--plain` output for scripting: columns are tab-separated, headers are on unless suppressed:
```
$ jira issue list -a$(jira me) -s"In Progress" --plain --no-headers --columns key,summary
PROJ-123 Fix login redirect loop
PROJ-124 Add rate limiting to API
```
```bash
jira issue list -a$(jira me) -s"In Progress" --plain --no-headers --columns key,summary | \
while IFS=$'\t' read -r key summary; do echo "Working: $key - $summary"; done
```
Create non-interactively and capture the new key from the URL jira-cli prints:
```
$ jira issue create -tBug -s"Login redirect loop" -yHigh --no-input
Issue created
https://your-domain.atlassian.net/browse/PROJ-125
```
```bash
key=$(jira issue create -tBug -s"Login redirect loop" -yHigh --no-input | grep -oE '[A-Z]+-[0-9]+$')
```
- Bulk sprint add sourced from a live filter, not a hardcoded list:
+ Bulk sprint add: list the keys with a live filter, then add only the keys the user confirmed (see [Destructive operations](#destructive-operations)):
```bash
- jira sprint add SPRINT_ID $(jira issue list -s"Ready for Dev" --plain --columns key --no-headers | tr '\n' ' ')
+ jira issue list -s"Ready for Dev" --plain --columns key,summary --no-headers
+ jira sprint add SPRINT_ID PROJ-123
```
+
+ ## Destructive operations
+
+ Applies to delete, bulk transition/assign/edit, removing issues from a sprint, and anything that touches more than one issue. Copy this checklist and tick it off:
+
+ ```
+ - [ ] 1. List the exact keys with a read-only query
+ - [ ] 2. Show the keys and get explicit confirmation
+ - [ ] 3. Run the command once per confirmed key
+ ```
+
+ 1. Query read-only with the same filter the mutation would use, e.g. `jira issue list -s"Ready for Dev" --plain --columns key,summary --no-headers`.
+ 2. Show that exact list to the user and wait for an explicit yes. If the list changes or the user edits it, return to step 1. No answer means stop and report.
+ 3. Run the exact command for each confirmed key, e.g. `jira issue delete PROJ-123`. Never pipe the query into the mutation (`... | xargs jira issue delete`): nothing reviews what the pipe actually receives.
## How to Use This Skill
Load reference files on demand, don't pull all three into context for a single command.
### 1. Comprehensive Commands Reference
Load: [references/commands.md](./references/commands.md)
Detailed syntax for issue management (list, create, edit, assign, move, view, link, clone, delete, comments, worklog), epic management, sprint management, releases, and output-format options.
### 2. Common Workflow Examples
Load: [references/workflows.md](./references/workflows.md)
Multi-command patterns: sprint planning, code review handoff, bug triage, epic tracking, incident response, backlog grooming, cross-team coordination.
### 3. Scripting and Automation
Load: [references/scripting.md](./references/scripting.md)
Raw bash automation that isn't already a curated skill: bulk assignment, auto-labeling, CSV export, velocity/metrics calculation, CI/CD hooks (GitHub Actions, GitLab CI, Jenkins), error handling and rate-limiting patterns.
## Resources
| Resource | Link |
|---|---|
| GitHub | https://github.com/ankitpokhrel/jira-cli |
| Installation guide | https://github.com/ankitpokhrel/jira-cli/wiki/Installation |
| FAQs | https://github.com/ankitpokhrel/jira-cli/discussions/categories/faqs |