Jira API operations via Python CLI scripts. Use when Claude needs to: (1) Search issues with JQL queries, (2) Get or update issue details, (3) Create new issues, (4) Transition issue status (e.g., "To Do" → "Done"), (5) Add comments, (6) Log work time (worklogs), (7) List sprints and sprint issues, (8) List boards and board issues, (9) Create or list issue links, (10) Discover available Jira fields, (11) Get user profile information, (12) Download attachments from issues. Supports both Jira Cloud and Server/Data Center with automatic auth detection.
Inherits all available tools
Additional assets for this skill
This skill inherits all available tools. When active, it can use any tool Claude has access to.
AGENTS.mdreferences/jql-quick-reference.mdreferences/troubleshooting.mdscripts/core/jira-attachment.pyscripts/core/jira-issue.pyscripts/core/jira-search.pyscripts/core/jira-validate.pyscripts/core/jira-worklog.pyscripts/lib/__init__.pyscripts/lib/client.pyscripts/lib/config.pyscripts/lib/output.pyscripts/utility/jira-fields.pyscripts/utility/jira-link.pyscripts/utility/jira-user.pyscripts/workflow/jira-board.pyscripts/workflow/jira-comment.pyscripts/workflow/jira-create.pyscripts/workflow/jira-sprint.pyscripts/workflow/jira-transition.pyStandalone CLI scripts for Jira operations using uv run.
--json flag when processing data programmatically<script>.py --help to understand optionsjira-validate.py before other operations--dry-run for create/update/transition operations~/.env.jira file or environment variables (see Authentication)scripts/core/jira-validate.pyWhen to use: Verify Jira connection and credentials
scripts/core/jira-issue.pyWhen to use: Get or update issue details
scripts/core/jira-search.pyWhen to use: Search issues with JQL queries
scripts/core/jira-worklog.pyWhen to use: Add or list time tracking entries
scripts/core/jira-attachment.pyWhen to use: Download attachments from Jira issues
scripts/workflow/jira-create.pyWhen to use: Create new issues (use jira-syntax skill for description content)
scripts/workflow/jira-transition.pyWhen to use: Change issue status (e.g., "In Progress" → "Done")
scripts/workflow/jira-comment.pyWhen to use: Add comments to issues (use jira-syntax skill for formatting)
scripts/workflow/jira-sprint.pyWhen to use: List sprints or sprint issues
scripts/workflow/jira-board.pyWhen to use: List boards or board issues
scripts/utility/jira-user.pyWhen to use: Get user profile information
scripts/utility/jira-fields.pyWhen to use: Search available Jira fields
scripts/utility/jira-link.pyWhen to use: Create or list issue links
Global flags MUST come before the subcommand:
# ✓ Correct
uv run scripts/core/jira-issue.py --json get PROJ-123
# ✗ Wrong - fails with "No such option"
uv run scripts/core/jira-issue.py get PROJ-123 --json
All scripts support --help, --json, --quiet, and --debug.
# Validate setup first
uv run scripts/core/jira-validate.py --verbose
# Search issues
uv run scripts/core/jira-search.py query "project = PROJ AND status = Open"
# Get issue details
uv run scripts/core/jira-issue.py get PROJ-123
# Transition with dry-run
uv run scripts/workflow/jira-transition.py do PROJ-123 "In Progress" --dry-run
uv run scripts/core/jira-search.py --json query "assignee = currentUser() AND status != Done"
uv run scripts/core/jira-worklog.py add PROJ-123 2h --comment "Implemented feature X"
uv run scripts/workflow/jira-create.py issue PROJ "Fix login bug" --type Bug
uv run scripts/workflow/jira-transition.py do PROJ-124 "In Progress"
# Get issue with attachments listed
uv run scripts/core/jira-issue.py get PROJ-123
# Download attachment using URL from issue output
uv run scripts/core/jira-attachment.py download /rest/api/2/attachment/content/12345 ./file.pdf
jira-syntax: Use for formatting descriptions and comments. Jira uses wiki markup, NOT Markdown.
*bold* not **bold**h2. Heading not ## Heading{code:python}...{code} not triple backticksConfiguration loaded in priority order:
~/.env.jira file (if exists)Jira Cloud: JIRA_URL + JIRA_USERNAME + JIRA_API_TOKEN
Jira Server/DC: JIRA_URL + JIRA_PERSONAL_TOKEN
Run jira-validate.py --verbose to verify setup. See references/troubleshooting.md for detailed setup.