CLI reference
jira-cli reads and searches Jira issues via JQL, creates and edits issues, moves them through workflow transitions, and manages comments. It supports Jira Cloud and Data Center / Server, and emits agent-friendly JSON with structured errors. AGENT NOTE: a companion Skill ("jira") carries the canonical usage, safety modes, and env setup and is the source of truth for driving this CLI. If you are an agent, load that Skill before composing commands. Check status with `jira-cli skill status`; install it with `jira-cli skill install`.
Generated from the command tree, so it always matches --help.
Global flags
Persistent flags accepted by every command.
| Flag | Default | Description |
|---|---|---|
--allow-writes | false | override read-only mode (defaults.read_only / JIRA_CLI_READ_ONLY) for this invocation |
--base-url | Jira site URL (overrides config) | |
--config | config directory (default ~/.angelmsger/jira) | |
--fields | comma-separated dot-path fields to keep | |
--flavor | backend flavor: cloud, datacenter or auto | |
--format, -f | output format: json, table or ndjson | |
--pretty | false | human-friendly mode for interactive terminal use only (agents/scripts should omit): TUI in `config init`, colorized JSON elsewhere; errors without a TTY |
--timeout | request timeout, e.g. 30s | |
--use-context | use a named context for this invocation | |
--verbose, -v | false | verbose diagnostics on stderr |
jira-cli auth
Inspect and manage stored credentials
jira-cli auth
jira-cli auth login
Store a credential for the configured server
jira-cli auth login
Prompt for a secret and store it securely. Run `config init` first if the server URL is not set.
Examples
jira-cli auth login jira-cli --use-context staging auth login
jira-cli auth logout
Remove the stored credential for the configured server
jira-cli auth logout
jira-cli auth status
Show whether a usable credential is configured
jira-cli auth status
jira-cli comment
Read and post issue comments
jira-cli comment
jira-cli comment add
Post a comment on an issue
jira-cli comment add <issue-key|url> [flags]
Post a comment. Bodies are plain text on both flavors: on Cloud the text becomes ADF paragraphs, on Data Center it is sent verbatim (wiki markup is rendered server-side).
Options
| Flag | Default | Description |
|---|---|---|
--body | comment body text | |
--body-file | read body from a file ('-' for stdin) | |
--dry-run | false | preview the HTTP request without sending it |
Examples
jira-cli comment add PROJ-123 --body "Deployed to staging." echo "Done." | jira-cli comment add PROJ-123 --body-file -
jira-cli comment delete
Delete one or more comments
jira-cli comment delete <comment-id>... --issue <key> [flags]
Delete a comment by ID. Pass several IDs to delete them in one run, or a single '-' to read newline-separated IDs from stdin. Deletion requires --yes (or an interactive confirmation when stdin is a terminal); --yes applies to the whole batch.
Options
| Flag | Default | Description |
|---|---|---|
--dry-run | false | preview the HTTP request without sending it |
--issue | the issue the comments belong to (required) | |
--yes | false | skip the deletion confirmation |
Examples
jira-cli comment delete 10042 --issue PROJ-123 --yes jira-cli comment delete 10042 10043 --issue PROJ-123 --yes
jira-cli comment list
List an issue's comments (oldest first)
jira-cli comment list <issue-key|url> [flags]
Options
| Flag | Default | Description |
|---|---|---|
--all | false | fetch every page of results |
--cursor | start from this pagination cursor (the 'next' of a prior page) | |
--limit | 0 | page size (default from config) |
Examples
jira-cli comment list PROJ-123 jira-cli comment list PROJ-123 --all
jira-cli comment update
Replace a comment's body
jira-cli comment update <comment-id> --issue <key> [flags]
Options
| Flag | Default | Description |
|---|---|---|
--body | new comment body text | |
--body-file | read body from a file ('-' for stdin) | |
--dry-run | false | preview the HTTP request without sending it |
--issue | the issue the comment belongs to (required) |
Examples
jira-cli comment update 10042 --issue PROJ-123 --body "Revised." echo "Revised." | jira-cli comment update 10042 --issue PROJ-123 --body-file -
jira-cli config
Manage jira-cli configuration
jira-cli config
jira-cli config delete-context
Delete a context and its stored credential
jira-cli config delete-context <name>
Examples
jira-cli config delete-context staging
jira-cli config get-contexts
List the configured contexts
jira-cli config get-contexts
List every context in the config file. The current context — the one used when --use-context is not given — is marked.
Examples
jira-cli config get-contexts jira-cli config get-contexts --format table
jira-cli config init
Interactively set up server URL and credentials
jira-cli config init
Run the interactive setup wizard. It collects a server URL, detects the flavor, validates a credential and stores it. The wizard can also configure additional named contexts for working with several servers.
Examples
jira-cli config init --pretty # interactive TUI (recommended) jira-cli config init # plain line-by-line wizard (scripts, non-TTY)
jira-cli config path
Print the config file path
jira-cli config path
jira-cli config show
Show the resolved configuration
jira-cli config show [flags]
Options
| Flag | Default | Description |
|---|---|---|
--explain | false | annotate each value with its source |
jira-cli config use-context
Switch the current context
jira-cli config use-context <name>
Set the current context — the server used by default. Override it for a single command with the global --use-context flag instead.
Examples
jira-cli config use-context staging
jira-cli doctor
Diagnose configuration, credentials and connectivity
jira-cli doctor [flags]
Options
| Flag | Default | Description |
|---|---|---|
--no-update-check | false | skip the check for a newer jira-cli release |
Examples
jira-cli doctor jira-cli doctor --no-update-check
jira-cli issue
Read, search and write Jira issues
jira-cli issue
jira-cli issue assign
Change or clear an issue's assignee
jira-cli issue assign <key|url> [flags]
Assign an issue. --to accepts a Cloud accountId, a Data Center username, or a display-name/email query resolved to a unique user (see `jira-cli user resolve`).
Options
| Flag | Default | Description |
|---|---|---|
--dry-run | false | preview the HTTP request without sending it |
--to | the new assignee | |
--unassign | false | clear the assignee |
Examples
jira-cli issue assign PROJ-123 --to alice@example.com jira-cli issue assign PROJ-123 --unassign
jira-cli issue create
Create an issue
jira-cli issue create [flags]
Create an issue. --project falls back to defaults.project when configured. Descriptions are plain text on both flavors; on Cloud the text becomes ADF paragraphs, on Data Center it is sent verbatim (wiki markup is rendered server-side).
Options
| Flag | Default | Description |
|---|---|---|
--assignee | assignee (accountId, username, or display-name/email query) | |
--description | description text | |
--description-file | read the description from a file ('-' for stdin) | |
--dry-run | false | preview the HTTP request without sending it |
--label | [] | label to set (repeatable) |
--parent | parent issue key (for subtasks / epic children) | |
--priority | priority name (e.g. High) | |
--project | project key (default from defaults.project) | |
--summary | issue summary (required) | |
--type | Task | issue type name (e.g. Task, Bug, Story) |
Examples
jira-cli issue create --project ENG --type Task --summary "Fix login crash"
jira-cli issue create --project ENG --type Bug --summary "..." \
--description-file report.txt --assignee alice@example.com --label urgent
jira-cli issue edit
Update issue fields
jira-cli issue edit <key|url> [flags]
Update an issue's summary, description, priority or labels. Only the flags you pass change; everything else keeps its value.
Options
| Flag | Default | Description |
|---|---|---|
--add-label | [] | label to add (repeatable) |
--description | new description text | |
--description-file | read the new description from a file ('-' for stdin) | |
--dry-run | false | preview the HTTP request without sending it |
--priority | new priority name | |
--remove-label | [] | label to remove (repeatable) |
--summary | new summary |
Examples
jira-cli issue edit PROJ-123 --summary "New title" jira-cli issue edit PROJ-123 --add-label triaged --remove-label urgent
jira-cli issue get
Show one issue
jira-cli issue get <key|url> [flags]
Options
| Flag | Default | Description |
|---|---|---|
--expand | extra sections to request, comma-separated (e.g. changelog) |
Examples
jira-cli issue get PROJ-123 jira-cli issue get https://acme.atlassian.net/browse/PROJ-123
jira-cli issue search
Search issues with JQL or filter flags
jira-cli issue search [jql] [flags]
Search issues. Pass a raw JQL string, or compose one from filter flags (--project, --assignee, --status, --type, --label, --text; AND-joined). --assignee/--reporter accept "me" (the authenticated user) and "unassigned".
Options
| Flag | Default | Description |
|---|---|---|
--all | false | fetch every page of results |
--assignee | filter by assignee ("me", "unassigned", or a user) | |
--cursor | start from this pagination cursor (the 'next' of a prior page) | |
--field | [] | issue fields to return (repeatable; default is a curated set) |
--label | filter by label | |
--limit | 0 | page size (default from config) |
--order-by | sort clause, e.g. "updated DESC" | |
--project | filter by project key | |
--reporter | filter by reporter ("me" or a user) | |
--status | filter by status name | |
--text | free-text match | |
--type | filter by issue type name |
Examples
jira-cli issue search 'project = ENG AND status = "In Progress"' jira-cli issue search --project ENG --assignee me --order-by "updated DESC" jira-cli issue search --text "login crash" --all
jira-cli issue transition
Move an issue through a workflow transition
jira-cli issue transition <key|url> --to <name-or-id> [flags]
Transition an issue. --to accepts a transition ID or name (matched case-insensitively against the transitions currently available; see `issue transitions`). Target status names also match when unambiguous.
Options
| Flag | Default | Description |
|---|---|---|
--comment | comment to add as part of the transition | |
--dry-run | false | preview the HTTP request without sending it |
--to | target transition name or ID |
Examples
jira-cli issue transition PROJ-123 --to "In Progress" jira-cli issue transition PROJ-123 --to 31 --comment "Deployed to staging."
jira-cli issue transitions
List the workflow transitions currently available on an issue
jira-cli issue transitions <key|url>
List the transitions the issue can take from its current status — the values `issue transition --to` accepts.
Examples
jira-cli issue transitions PROJ-123
jira-cli project
Browse Jira projects
jira-cli project
jira-cli project get
Show one project
jira-cli project get <key|url>
Examples
jira-cli project get ENG
jira-cli project list
List projects visible to the authenticated user
jira-cli project list [flags]
List projects. On Jira Cloud the listing paginates and --query filters server-side; on Data Center the API returns every project in one response (a single page) and --query filters client-side.
Options
| Flag | Default | Description |
|---|---|---|
--all | false | fetch every page of results |
--cursor | start from this pagination cursor (the 'next' of a prior page) | |
--limit | 0 | page size (default from config) |
--query | filter by name/key substring |
Examples
jira-cli project list jira-cli project list --query platform
jira-cli skill
Install the companion Skill for coding agents (Claude Code, Codex)
jira-cli skill
jira-cli skill install
Deploy the embedded Skill into a coding agent's skills directory
jira-cli skill install [flags]
Write the companion `jira` Skill — bundled inside this binary — into a coding agent's skills directory. With no flags it probes for installed agents (Claude Code, Codex) and installs into each one found. Re-run it after upgrading the CLI to refresh the Skill to the matching version.
Options
| Flag | Default | Description |
|---|---|---|
--agent | [] | target agents instead of auto-detecting (claude-code, codex) |
--dir | explicit skills base directory; installs into <dir>/jira | |
--project | false | install into the project (./.claude/skills, ./.agents/skills) instead of $HOME |
jira-cli skill path
Print where the Skill would be installed, and whether it is
jira-cli skill path [flags]
Options
| Flag | Default | Description |
|---|---|---|
--agent | [] | limit to specific agents (claude-code, codex) |
--dir | explicit skills base directory | |
--project | false | use the project skills directories instead of $HOME |
jira-cli skill show
Print the embedded SKILL.md to stdout
jira-cli skill show
jira-cli skill status
Report whether the companion Skill is loaded and installed
jira-cli skill status [flags]
Options
| Flag | Default | Description |
|---|---|---|
--project | false | check the project skills dirs (./.claude/skills, ./.agents/skills) instead of $HOME |
jira-cli skill uninstall
Remove the companion Skill from a coding agent's skills directory
jira-cli skill uninstall [flags]
Delete a previously installed `jira` Skill. With no flags it probes for installed agents (Claude Code, Codex) and removes the Skill from each one found.
Options
| Flag | Default | Description |
|---|---|---|
--agent | [] | target agents instead of auto-detecting (claude-code, codex) |
--dir | explicit skills base directory; removes <dir>/jira | |
--project | false | remove from the project (./.claude/skills, ./.agents/skills) instead of $HOME |
jira-cli user
Discover Jira users — the values assignee flags accept
jira-cli user
jira-cli user me
Print the user the configured credentials authenticate as (alias for whoami)
jira-cli user me
jira-cli user resolve
Resolve a user selector to a unique user
jira-cli user resolve <selector>
Resolve a user selector to a unique user. Cloud: an accountId is passed through; anything else is searched by display name / email and must match exactly one active user. DC: the selector is the username and is echoed back verbatim.
jira-cli version
Print version information
jira-cli version
jira-cli whoami
Print the user the configured credentials authenticate as
jira-cli whoami
Examples
jira-cli whoami