Search and manage Jira issues using JQL queries, create/update tickets, and manage workflows. Use when asked to find Jira tickets, check the backlog, manage sprints, track bugs, or work with Atlassian project management.
81%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
Interact with Jira for issue tracking, search, and workflow management.
SKILL_DIR in the examples is the directory containing this loaded SKILL.md.
Set it to that absolute path before running commands; do not assume the agent
sets this shell variable. Quote the script path if it contains spaces.
Install Python dependencies:
pip install --user requests keyring pyyaml pyadfDownload the skill from Releases or use directly from this repository.
After installation, verify the skill configuration by running:
$SKILL_DIR/scripts/jira.py checkThis will check:
If anything is missing, the check command will provide setup instructions.
Jira API commands require outbound HTTPS to the configured Jira host. Remote operations require outbound network access. If the agent environment restricts it, obtain access through that environment's approval or network controls before the first remote command, reusing authorization already granted. Local help and file processing do not need network access. Skill instructions do not grant network permission. Report DNS, connection, and timeout failures as network errors; do not reset credentials to resolve them. If approved access also fails, stop and report it. Authentication and permission errors require user action.
This skill supports Jira Cloud only.
Configure Jira authentication using one of these methods:
export JIRA_BASE_URL="https://yourcompany.atlassian.net"
export JIRA_EMAIL="you@example.com"
export JIRA_API_TOKEN="your-token"Add these to your ~/.bashrc or ~/.zshrc for persistence.
Create ~/.config/agent-skills/jira.yaml:
url: https://yourcompany.atlassian.net
email: you@example.com
token: your-tokenhttps://yourcompany.atlassian.net)Optionally configure defaults (JQL scope, fields, custom fields, project defaults) in ~/.config/agent-skills/jira.yaml. CLI arguments always override config defaults. See configuration.md for the full config format and defaults behavior.
# Show all configuration
$SKILL_DIR/scripts/jira.py config show
# Show project-specific defaults
$SKILL_DIR/scripts/jira.py config show --project DEMOSee permissions.md for read/write classification of each command.
Verify configuration and connectivity.
$SKILL_DIR/scripts/jira.py checkThis validates:
Search for issues using JQL (Jira Query Language).
$SKILL_DIR/scripts/jira.py search "project = DEMO AND status = Open"
$SKILL_DIR/scripts/jira.py search "assignee = currentUser() ORDER BY updated DESC" --max-results 20Arguments:
jql: JQL query string (required unless --contributor, --team, or --team-name is used)--contributor: Search for issues where this user is a contributor (reporter, assignee, or updater). Prefer an accountId or exact email; display names can be ambiguous.--project: Project key to scope a --contributor search--max-results: Maximum number of results (default: 50)--fields: Comma-separated list of fields to include--team: Team ID to scope the search; repeatable--team-name: Team name to resolve (shared teams only); repeatableText output renders summary, type, parent, status, resolution and assignee;
use --json for other fields.
Bulk comment authors: see examples.md.
JQL patterns: See jql-reference.md for Cloud-native JQL patterns (status, dates, fields, ordering, linked issues, hierarchy).
Get, create, update, or comment on issues.
# Get issue details (--fields, --contributors)
$SKILL_DIR/scripts/jira.py issue get DEMO-123
$SKILL_DIR/scripts/jira.py issue get DEMO-123 --fields "summary,status,assignee" --contributors
# Batch several issues into one search call
$SKILL_DIR/scripts/jira.py issue get DEMO-1,DEMO-2,DEMO-3 --contributors
# List comments
$SKILL_DIR/scripts/jira.py issue comments DEMO-123
# List child issues and subtasks, or only their distinct assignees
$SKILL_DIR/scripts/jira.py issue children EPIC-123
$SKILL_DIR/scripts/jira.py issue children EPIC-123 --assignees-only
$SKILL_DIR/scripts/jira.py issue children EPIC-1,EPIC-2 --assignees-only
# Create (--project, --type, --summary required; --description, --priority, --labels, --assignee, --parent, --set-field, --link, --from-file, --json)
$SKILL_DIR/scripts/jira.py issue create --project DEMO --type Task --summary "New task"
$SKILL_DIR/scripts/jira.py issue create --project DEMO --type Story --summary "New story" --parent EPIC-123
$SKILL_DIR/scripts/jira.py issue create --from-file issue.md --priority Critical
# Update (--summary, --description, --priority, --labels, --assignee, --parent, --remove-parent, --set-field, --link, --unlink, --from-file)
$SKILL_DIR/scripts/jira.py issue update DEMO-123 --summary "Updated" --set-field story_points=5
$SKILL_DIR/scripts/jira.py issue update DEMO-123 --parent EPIC-456
$SKILL_DIR/scripts/jira.py issue update DEMO-123 --remove-parent
$SKILL_DIR/scripts/jira.py issue update DEMO-123 --link "Blocks:DEMO-456"
$SKILL_DIR/scripts/jira.py issue update DEMO-123 --unlink "Blocks:DEMO-456"
# Comment (--security-level for private comments)
$SKILL_DIR/scripts/jira.py issue comment DEMO-123 "This is a comment"--contributors reports each person with the roles they hold: reporter,
assignee, and commenter. Every comment is read, so a commenter late in a
long thread is still reported. With --json, _contributors is
[{"name": "Jane Doe", "roles": ["reporter", "commenter"]}]. A batch reads
the comment field from the search result, falls back to the full thread
when the page is truncated, and uses the default fields (no description,
issue links or web links); pass --fields to request more.
issue children --assignees-only prints just the distinct assignee names —
the cheap way to get the collaborator set.
See from-file-format.md for the --from-file format and link direction, and examples.md for more patterns.
Manage issue workflow transitions.
# List available transitions
$SKILL_DIR/scripts/jira.py transitions list DEMO-123
# Transition issue
$SKILL_DIR/scripts/jira.py transitions do DEMO-123 "In Progress"
$SKILL_DIR/scripts/jira.py transitions do DEMO-123 "Done" --comment "Completed"
# Transition with private comment
$SKILL_DIR/scripts/jira.py transitions do DEMO-123 "Done" --comment "Internal resolution notes" --security-level "Internal"See advanced-commands.md for full documentation of these commands:
Common JQL queries and patterns: see jql-reference.md.
Quick reference — combine with AND, OR, and ORDER BY:
assignee = currentUser() AND statusCategory != Done ORDER BY priority DESCUse statusCategory ("To Do", "In Progress", Done) for queries that work across projects.
Common Jira workflows:
Search and view:
# Find all open tasks assigned to you
jira search "assignee = currentUser() AND status = Open"
# Get issue details
jira issue get DEMO-123 --fields "summary,status,assignee"
# List issue comments
jira issue comments DEMO-123Create and update:
# Create a new bug
jira issue create --project DEMO --type Bug --summary "Login page broken"
# Create a story under an epic
jira issue create --project DEMO --type Story --summary "Implement feature" --parent EPIC-123
# Set or change an issue's parent (works for any hierarchy level)
jira issue update DEMO-123 --parent EPIC-456
# Remove an issue's parent
jira issue update DEMO-123 --remove-parent
# Update an issue and add a comment
jira issue update DEMO-123 --priority High --assignee "user@example.com"
jira issue comment DEMO-123 "Assigned to review"Workflow:
# List available transitions
jira transitions list DEMO-123
# Move issue to Done
jira transitions do DEMO-123 "Done" --comment "Completed"This skill makes API calls requiring structured input/output. A standard-capability model is recommended.
odyssey4me/agent-skills
ac74f8c
Also appears in
last in sync Mar 12, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.