Skip to main content

Jira CLI

Think github-cli but for Jira.

Modular, class-based Jira command-line tool for issue listing, searching, and management.

Features

  • List issues by project with optional filtering (status, assignee, labels)
  • Search with custom JQL queries
  • Find issues by text in summary/description
  • View issue details with comments
  • Assign issues to users
  • Transition issues to new status
  • Create issues with title/body/labels/assignee
  • Comment on issues (plain, markdown, or ADF JSON)
  • Edit issues (title/body/labels/assignee/priority/type)
  • Close/Reopen issues via workflow transitions
  • Multiple output formats: table, JSON, CSV, Markdown
  • dotenv support: Load credentials from .env or local.env in CWD or parent directories

Installation

Via uv (local development)

cd colenio/tools/jira-cli
uv sync
uv run colenio-jira-cli issue --help

Via uvx (remote/published)

uvx colenio-jira-cli issue list --project PROJ

jira-cli remains available as a command alias for colenio-jira-cli.

Setup

Create a .env or local.env file in your working directory:

# Required
JIRA_URL=https://company.atlassian.net
JIRA_EMAIL=user@example.com
JIRA_API_TOKEN=your_api_token_here

# Optional
JIRA_PROJECT=PROJ      # Default project for list/find
JIRA_PROJECT_KEY=PROJ  # Backward-compatible fallback

Getting your Jira API Token

  1. Log in to your Jira Cloud instance
  2. Go to Account Settings → Security
  3. Click "Create API Token"
  4. Copy the token and save to .env

Usage

Primary command model is issue (similar to gh issue ...).

Issue group

colenio-jira-cli issue --help

List issues

# Canonical
colenio-jira-cli issue list --project PROJ

# With filters
colenio-jira-cli issue list --project PROJ --status "In Progress" --assignee "john@example.com"

# With custom JQL
colenio-jira-cli issue list --project PROJ --jql 'priority = High'

# Different output formats
colenio-jira-cli issue list --project PROJ --format json
colenio-jira-cli issue list --project PROJ --format csv > issues.csv
colenio-jira-cli issue list --project PROJ --format md

Search with JQL

colenio-jira-cli issue search 'project = PROJ AND status = "To Do" AND assignee is EMPTY'
colenio-jira-cli issue search 'text ~ "urgent"' --format json

Find by text

colenio-jira-cli issue find --project PROJ "database migration"
colenio-jira-cli issue find --project PROJ "performance issue" --max-results 100

View issue details

colenio-jira-cli issue view PROJ-123
colenio-jira-cli issue view PROJ-456 --comments

Assign issue

colenio-jira-cli issue assign PROJ-789 john@example.com

Transition issue

colenio-jira-cli issue transition PROJ-999 "In Progress" --comment "Starting work"
colenio-jira-cli issue transition PROJ-999 "Done"

Create issue

# Similar to gh issue create
colenio-jira-cli issue create --project PROJ --title "Access governance ticket" --body "Please define access process"

# With labels and assignee
colenio-jira-cli issue create \
  --project PROJ \
  --title "[ORG] GitLab Access Governance" \
  --body-file ./ticket.md \
  --type Task \
  --label governance --label access,auditability \
  --assignee user@example.com \
  --priority High

Comment on issue

# Similar to gh issue comment
colenio-jira-cli issue comment PROJ-123 --body "Reviewed. Access approved."

# Markdown and ADF JSON support
colenio-jira-cli issue comment PROJ-123 --format md --body "**Update:** done"
colenio-jira-cli issue comment PROJ-123 --format adf --body-file ./comment.adf.json

Edit issue

colenio-jira-cli issue edit PROJ-123 --title "Updated title" --body "Updated description"
colenio-jira-cli issue edit PROJ-123 --add-label governance --remove-label old-label
colenio-jira-cli issue edit PROJ-123 --set-label governance,access --priority Highest

Close / reopen issue

# Auto-resolve transition (Done/Closed/Resolved)
colenio-jira-cli issue close PROJ-123 --comment "Completed"

# Auto-resolve transition (Reopen/Reopened/Open/To Do)
colenio-jira-cli issue reopen PROJ-123 --comment "Need follow-up"

# Explicit transition override by name or id
colenio-jira-cli issue close PROJ-123 --transition "Done"

Interactive TUI (Terminal User Interface)

Launch an interactive k9s-style interface for managing Jira issues:

# Basic TUI launch
colenio-jira-cli tui --project PROJ

# TUI will load default project from JIRA_PROJECT env if available
colenio-jira-cli tui

Keyboard Shortcuts in TUI:

Key Action
↑ / ↓ Navigate issues up/down
o Open selected issue in browser
p Reset source to project
f Find by text (summary/description)
j Run custom JQL query
t Transition selected issue
a Assign selected issue
c Add comment (plain/md/adf)
n Next comment on selected issue
b Previous comment on selected issue
u Drill up to parent issue
d Drill down to child issues
Enter Execute active query/input
r Refresh issue list
/ Focus live filter
Esc Close input or reset source
? Show help
q Quit TUI

Transition input format in TUI:

  • t opens transition input for the selected issue.
  • Enter either transition ID or transition name.
  • Optional comment: <transition> | <comment>

Comment input format in TUI:

  • c opens comment input for the selected issue.
  • Supported formats:
    • plain:<text> or just <text>
    • md:<markdown> (lightweight markdown validation)
    • adf:<json> (ADF JSON parse + structure validation)

Installation (TUI included by default):

# Install dependencies
uv sync

# Then use
uv run colenio-jira-cli tui --project PROJ

Or via uvx:

uvx --python 3.11 colenio-jira-cli tui --project PROJ

Running Without uvx

You can run the CLI and TUI without uvx in two common ways.

Option 1: Local repo via uv run

cd colenio/tools/jira-cli
uv sync
uv run colenio-jira-cli tui --project PROJ

Option 2: Virtualenv + pip (no uv required)

python -m venv .venv
# Linux/macOS: source .venv/bin/activate
# Windows PowerShell: .venv\Scripts\Activate.ps1
python -m pip install -U pip
python -m pip install colenio-jira-cli
colenio-jira-cli tui --project PROJ

Option 3: pip --user (no venv)

Useful for locked-down environments where virtual environments are not allowed.

python -m pip install --user -U pip
python -m pip install --user colenio-jira-cli
colenio-jira-cli tui --project PROJ

If the command is not found on Windows, ensure your user Scripts path is in PATH:

$scripts = Join-Path (py -m site --user-base) "Scripts"
$env:PATH += ";$scripts"
# Or restart the terminal after updating PATH permanently

Development

# Install dev dependencies
uv sync --extra dev --extra local-dev

# Run tests
uv run pytest

# Format and lint
uv run black jira_cli
uv run ruff check jira_cli

# Run standardized local QA scripts
uv run jira-cli-ruff
uv run jira-cli-radon
uv run jira-cli-pylint
uv run jira-cli-check
uv run jira-cli-qa

Additional Docs

PowerShell Integration

Add to $PROFILE (e.g., via dotfiles/aliases.ps1):

function jira-cli {
    uvx colenio-jira-cli @args
}

# Or use directly
alias jira = 'uvx colenio-jira-cli'

Then:

jira list --project PROJ

License

MIT

Metadata

Release files for colenio-jira-cli 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for colenio-jira-cli 0.2.2
File Size Uploaded
colenio_jira_cli-0.2.2.tar.gz 61.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for colenio-jira-cli 0.2.2
File Interpreter ABI Platform
colenio_jira_cli-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 97.2 kB

Release files / colenio_jira_cli-0.2.2.tar.gz

Download URL colenio_jira_cli-0.2.2.tar.gz
Size 61.8 kB
Tags Source
SHA-256 checksum
How to use checksums
c2506dff62fec3aefe93605811ffa23a07c3783a8bbc8b76c0a865b5280fdd7b
BLAKE2b-256 checksum
How to use checksums
66d8e172a7a1aa36c30f6c67fed9bcdd9cb20fb6f2a713a9ee40164d98e61b66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 23, 2026.

Transparency log

Release files / colenio_jira_cli-0.2.2-py3-none-any.whl

Download URL colenio_jira_cli-0.2.2-py3-none-any.whl
Size 35.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
02c9a112bbc5dc9daaf50e45367a3b66eb8bf92e168a1e8188a84ce880ae0629
BLAKE2b-256 checksum
How to use checksums
aea1fa664fa4976040360d9bd7869e70f09072bab83518e2402543bef70acd72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jul 23, 2026.

Transparency log

Release history Release notifications | RSS feed

0.8.0

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page