jira-cli

module
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 28, 2026 License: MIT

README

jira

Terminal-first Jira CLI for day-to-day developer workflows.

Install

go install github.com/matcra587/jira-cli/cmd/jira@latest

Homebrew and GoReleaser release archives include release version metadata. go install github.com/matcra587/jira-cli/cmd/jira@latest builds from source and may report dev or git-derived metadata in jira version. Release archives currently target macOS and Linux.

See docs/installation.md for release archives, the one-line installer, source builds, and uninstall steps. The examples below assume jira is on PATH.

Quick start

# 1. Create profile metadata
jira config init --no-input \
  --base-url https://company.atlassian.net \
  --email dev@example.com

# 2. Store an API token and verify Jira accepts it
jira auth login
jira auth status

# 3. List your issues
jira issue list

For issue creation, editing, comments, and ADF payloads, start with docs/issues.md. For classic API tokens, auth backends, and 1Password, use docs/auth.md.

Configuration

Configuration lives in ~/.config/jira-cli/config.toml. Use metadata-only profiles; credentials belong in the OS keychain, 1Password, or environment fallbacks.

jira config init --no-input \
  --profile default \
  --base-url https://company.atlassian.net \
  --email dev@example.com

config init requires both --base-url and --email; omitting either exits before writing the config file.

Auth

jira auth status
jira auth login
jira auth token

Use token, basic, pat, or mtls for auth login. Unsupported auth types are rejected instead of being stored as fake authenticated profiles.

The 1Password backend uses the Go SDK when onepassword_account is configured for desktop-app auth or OP_SERVICE_ACCOUNT_TOKEN is present for service-account auth. macOS and Linux release archives are built without CGO, so use a CGO-enabled source build for 1Password-backed profiles.

For desktop-app auth, 1Password must be signed in and allowed to serve SDK requests before jira can read items. In the 1Password app, open Settings > Developer and enable Integrate with other apps. If you want biometric approval, also enable the OS unlock option under Settings > Security. Desktop-app SDK authorization is per account and per process, so separate jira invocations may prompt separately even when the app is unlocked. Use the system keychain backend for prompt-free day-to-day commands.

Further reading:

[[profiles]]
name = "work"
base_url = "https://company.atlassian.net"
auth_type = "token"
email = "dev@example.com"
secret_backend = "1password"
onepassword_account = "Team"
vault = "Engineering"
item = "jira-cli-work"
Token support

jira talks to Jira Cloud only; Server/Data Center are not supported. Today the CLI supports classic Atlassian API tokens. Scoped API tokens are planned for a future auth update because they require Atlassian's gateway URL (https://api.atlassian.com/ex/jira/<cloudId>/...) instead of the normal https://your-site.atlassian.net/... REST base URL.

TUI

Run jira -i or jira tui in a terminal. The dashboard uses vim-style navigation and keeps running until q.

The TUI is still in active development. Use it for interactive daily navigation; prefer regular CLI commands for scripts and agent workflows.

Core keys: j/k, /, Enter, e, m, c, w, n, r, P, ?, q.

Output

Non-TTY and agent environments emit JSON without prompts. Pick a mode explicitly with --output; valid values are auto, human, json, and compact.

jira issue list --output=json
jira issue create --json-input payload.json --no-input --dry-run --output=json
jira agent schema --output=compact

Where payload.json is at minimum:

{"summary": "Fix login", "project_key": "PROJ", "issue_type": "Task"}

project_key and issue_type are required under --no-input. See the embedded agent guide (jira agent guide) for richer payload shapes including ADF descriptions and customfields.

For agent-facing contracts, use the embedded references instead of copying recipes from the README:

jira agent guide
jira agent schema --output=compact
jira agent adf-matrix --output=json
jira agent fieldtypes --output=json

TTY commands render successful results through clog rich output:

INF ℹ️ listed issues count=0 detail=false

Use --output=compact for jq-friendly data-only JSON and --output=human to force clog rich text.

Commands

Command Docs
auth, config auth.md, config.md
issue, epic issues.md, epic.md
jql, search jql.md, search.md
worklog worklog.md
cache cache.md
alias alias.md
agent agent.md
output, troubleshooting output.md, troubleshooting.md

JQL

jira issue list defaults to recently-updated issues (updated >= -365d ORDER BY updated DESC). Override with --jql or builder flags:

jira issue list
jira issue list --jql 'project = PROJ AND status = "In Progress"'
jira jql build --project PROJ --assignee me --status "In Progress"

See docs/jql.md for supported builder flags and Atlassian JQL references.

Aliases

jira alias set mine -- issue list --assignee me
jira alias set inbox "issue list --assignee me"
jira alias list
jira alias import aliases.yml
jira alias delete mine

Directories

Path Synopsis
cmd
gen-docs command
Command gen-docs renders the jira command tree into Markdown reference pages for the docs site.
Command gen-docs renders the jira command tree into Markdown reference pages for the docs site.
jira command
internal
adf
cache
Package cache is a tiny per-profile JSON file store for Jira metadata (labels, epics, projects, …) that's cheap to look up — used by the `jira cache <resource>` commands and (eventually) by Cobra shell completion functions.
Package cache is a tiny per-profile JSON file store for Jira metadata (labels, epics, projects, …) that's cheap to look up — used by the `jira cache <resource>` commands and (eventually) by Cobra shell completion functions.
cli
Plain-text renderer for `jira boards list`.
Plain-text renderer for `jira boards list`.
cli/adfmode
Package adfmode resolves the strict vs best-effort ADF mode for a given CLI invocation, applying both the precedence ladder and per-path defaults.
Package adfmode resolves the strict vs best-effort ADF mode for a given CLI invocation, applying both the precedence ladder and per-path defaults.
cli/boards
`jira boards` command tree.
`jira boards` command tree.
cli/boardscope
Package boardscope resolves the `--board NAME` / `--board-id N` flag pair against the local board cache and renders the result into JQL clauses and envelope data.
Package boardscope resolves the `--board NAME` / `--board-id N` flag pair against the local board cache and renders the result into JQL clauses and envelope data.
cli/cmdutil
Package cmdutil holds the cross-cutting helper layer shared by every jira-cli command: envelope writers, client/profile accessors, output-mode resolution, mutation gates, the credential-warning sink, and small generic value helpers.
Package cmdutil holds the cross-cutting helper layer shared by every jira-cli command: envelope writers, client/profile accessors, output-mode resolution, mutation gates, the credential-warning sink, and small generic value helpers.
cli/config
Package config implements the `jira config` cobra command tree, which manages the local configuration file, profiles, and theme settings.
Package config implements the `jira config` cobra command tree, which manages the local configuration file, profiles, and theme settings.
cli/issue
`jira issue link` command tree.
`jira issue link` command tree.
cli/runtime
Package runtime is the dependency boundary between the binary shell in cmd/jira and the command implementations.
Package runtime is the dependency boundary between the binary shell in cmd/jira and the command implementations.
cli/startup
Package startup parses jira's global flags and first subcommand out of the raw argv before cobra runs.
Package startup parses jira's global flags and first subcommand out of the raw argv before cobra runs.
cli/stdin
Package stdin is the ONLY place in the source tree allowed to read os.Stdin.
Package stdin is the ONLY place in the source tree allowed to read os.Stdin.
cli/version
Package version implements the `jira version` cobra command, which prints build and version metadata as a structured envelope.
Package version implements the `jira version` cobra command, which prints build and version metadata as a structured envelope.
docs
Package docs renders a Cobra command tree to byte-stable Markdown for the jira-cli documentation site.
Package docs renders a Cobra command tree to byte-stable Markdown for the jira-cli documentation site.
jira
Package jira — Board service for /rest/agile/1.0.
Package jira — Board service for /rest/agile/1.0.
jira/customfield
Package customfield is the Jira custom-field type registry.
Package customfield is the Jira custom-field type registry.
jql
Package jql builds and composes Jira Query Language strings from structured inputs.
Package jql builds and composes Jira Query Language strings from structured inputs.
pipeline
Package pipeline implements the deterministic 5-stage validation pipeline that gates every Jira mutation submission.
Package pipeline implements the deterministic 5-stage validation pipeline that gates every Jira mutation submission.
tui
Package tui implements the persistent Jira dashboard.
Package tui implements the persistent Jira dashboard.
tui/components
Package components contains reusable Bubble Tea overlays and chrome for the Jira TUI.
Package components contains reusable Bubble Tea overlays and chrome for the Jira TUI.
tui/editor
Package editor is the in-TUI ADF-native rich-text editor.
Package editor is the in-TUI ADF-native rich-text editor.
tui/theme
Package theme defines lipgloss styles shared across the Jira TUI.
Package theme defines lipgloss styles shared across the Jira TUI.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL