jira
An agent-friendly Jira CLI. Designed to be driven by AI agents and scripts, not just humans.
- Auto-JSON when stdout is not a TTY — pipe it anywhere, get structured data
jira schemadumps every command, flag, and JSON shape as machine-readable JSON for agent introspection- Structured exit codes — agents can branch on auth failures, rate limits, not-found, and input errors without parsing text
- Clean stdout/stderr split — data on stdout, messages on stderr,
--quietsuppresses all non-data output
$ jira issues list --project MYAPP --status "In Progress" --json
{
"total": 3,
"startAt": 0,
"maxResults": 50,
"issues": [...]
}
Installation
Or build from source:
Configuration
Create the config file reported by jira init, jira config init, or
jira config show.
Default locations:
- Unix-like systems:
~/.config/jira/config.toml - Unix-like systems with
XDG_CONFIG_HOMEset:$XDG_CONFIG_HOME/jira/config.toml - Windows:
%APPDATA%\jira\config.toml
Example:
[]
= "mycompany.atlassian.net"
= "me@example.com"
= "your-api-token"
Run jira config show to confirm the resolved path and active credentials.
Get your API token at: https://id.atlassian.com/manage-profile/security/api-tokens
# Unix-like systems only
On Windows, keep the file in your per-user %APPDATA% directory rather than a
shared folder.
Or use environment variables:
Multiple profiles are supported:
[]
= "work.atlassian.net"
= "me@work.com"
= "work-token"
Select with --profile work or JIRA_PROFILE=work.
Usage
# List issues
# Show an issue
# Create an issue
# Transition an issue
# Comment
# Assign
# Search with JQL
# Projects
# Current user
# Config
Agent use
jira schema returns a complete description of all commands, flags, arguments, JSON output shapes, and exit codes. AI agents should call this once at the start of a session.
|
Exit codes
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Unexpected error |
| 2 | Bad input or config error |
| 3 | Authentication failed |
| 4 | Resource not found |
| 5 | Jira API error |
| 6 | Rate limited |
Output flags
| Flag | Effect |
|---|---|
--json |
Force JSON output (auto when stdout is not a TTY) |
--quiet |
Suppress counts, confirmations, and status messages |
License
MIT