Agent-ergonomic Jira CLI backed by Atlassian's acli, with token-efficient TOON output and self-contained auth (no extra credential setup).
You do not need jira-axi installed - invoke it with npx -y jira-axi@latest <command>, which is the default path.
The @latest pin ensures you always run the newest published version.
If jira-axi output shows a follow-up command starting with jira-axi, run it as npx -y jira-axi@latest ... instead; if a bare jira-axi already resolves on PATH, run it directly.
A global install (npm i -g jira-axi) is a SECONDARY option, for the agent SessionStart hook functionality; setup hooks requires it.
What the hook adds to every session: acli: installed (whether the required acli prerequisite is present), my_open_workitems[N]{key,summary,status} (your own open work items), and a help[N] line naming the available commands.
Every command below behaves identically either way.
When to use
Use jira-axi whenever a task touches Jira: viewing, creating, or editing a work item; transitioning a ticket to another status; assigning or reassigning it; reading or adding comments; searching with JQL or filtering by project, assignee, or status; listing or inspecting projects; working with boards, their sprints, and their projects; creating, updating, or closing a sprint; listing and updating saved filters; listing dashboards; or creating, updating, deleting, or restoring custom fields.
Status
The dashboard, the acli-backed Jira commands (workitem, project, board, sprint, filter, dashboard, field), setup hooks, and the inherited update command work today.
jira-axi shells out to Atlassian's acli - install it first (brew install acli) and log in with acli jira auth login.
There is no separate credential setup: auth is delegated entirely to acli's own login.
Commands
commands[9]:
(none)=dashboard, workitem, project, board, sprint, filter, dashboard, field, setup
workitem:
list, view <KEY> [--fields <a,b,c>], create, edit <KEY>, transition <KEY> --to <status>, assign <KEY> --assignee <user>, comment <KEY> --body <text>, search "<JQL>"
project:
list, view <KEY>
board:
list, view <ID>, list-sprints <ID>, list-projects <ID>
sprint:
view <ID>, list-workitems <ID> --board <ID>, create --board <ID> --name <text>, update <ID>
filter:
list, search, view <ID>, update <ID>
dashboard:
list
field:
create --name <text> --type <key>, update <ID>, delete <ID>, restore <ID>
Run jira-axi --help for global flags, or jira-axi <command> --help for per-command usage.
Run jira-axi setup hooks to install SessionStart ambient context (requires the global install).
Tips
- Flags come AFTER the command:
jira-axi workitem list --project TEAM, never before. - Output is TOON-encoded and token-efficient.
- Mutations are idempotent and report what changed; re-running a failed mutation is safe (
transitionto the current status is a no-op success). filter listlists only filters the account OWNS, socount: 0is not proof there are none; usefilter list --favouriteorfilter search --name <substring>to reach the rest.view <KEY> --fullshows complete bodies;--commentsincludes comments (count line reports the true total; raise the shown rows with--limit <n>);--fields <a,b,c>renders only those fields (works on list/search/view).- Long free text is truncated with a size marker and a
--fullescape hatch:workitem viewbodies/comments,filter viewandproject viewdescriptions. workitem listbuilds JQL from --project/--assignee/--status; pass --jql or usesearchfor raw JQL.workitem create/edit --bodyandcomment --bodyaccept markdown (headings, lists, inline/block code, bold/italic, links) and store it as real Jira ADF; raw ADF JSON is passed through unchanged.- Boards/sprints/filters are ID-addressed: find board IDs via
board list, sprint IDs viaboard list-sprints <BOARD_ID>. sprint list-workitemsneeds both the sprint ID and --board (a Jira agile API requirement).sprint update <ID> --state closedcloses a sprint (no-op success when already closed); acli has no field list/view, sofieldcovers custom-field create/update/delete/restore only.