Skip to content
Open Source CLI Tool

jrJira, but for
AI agents

The CLI that gives AI agents full control over Jira. 600+ commands auto-generated from OpenAPI. JSON in, JSON out. Drop-in skill for Claude Code, Cursor, Codex, and more.

600+Commands
0Prompt eng. needed
100%JSON output
$npm install -gjira-jr
$jr workflow move--issuePROJ-123--to"In Progress"--assignme
{"key":"PROJ-123","status":"In Progress","assignee":"me@company.com"}
$jr diff--issuePROJ-123--since2h
[{"field":"status","from":"Open","to":"In Progress"}]

Why another Jira CLI?

Other CLIs
Human-readable tables. Agents can't parse them. Manual flag lookup. Breaks when Jira updates APIs.
jr
JSON everywhere. Agents read it natively. Ships with SKILL.md — agents learn it in one read. Auto-generated from OpenAPI — never out of date.

See it in action

templates — create issues from patterns
bash
jr template apply bug-report \
  --project PROJ \
  --var summary="Login page 500 on Safari" \
  --var severity=High \
  --var steps="1. Open Safari\n2. Click Login\n3. 500 error"
watch — real-time NDJSON stream
bash
jr watch --jql "project = PROJ AND status changed" --interval 30s
json
{"event":"changed","key":"PROJ-1","field":"status","from":"Open","to":"In Progress","time":"14:32:01"}
{"event":"changed","key":"PROJ-5","field":"assignee","from":"null","to":"alice","time":"14:32:30"}
diff — structured changelog
bash
jr diff --issue PROJ-123 --since 2h --field status,assignee
json
[
  {"field":"status","from":"Open","to":"In Progress","author":"alice","time":"14:20:00"},
  {"field":"assignee","from":"null","to":"alice","time":"14:20:00"}
]