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
83%
Does it follow best practices?
Impact
95%
1.90xAverage score across 2 eval scenarios
Low
Low-risk findings worth noting
Interact with Jira for issue tracking, search, and workflow management.
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.
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 is used)--contributor: Search for issues where this user is a contributor (reporter, assignee, or commenter). On Jira Cloud, automatically resolves email/name to accountId.--project: Project key to scope a --contributor search--max-results: Maximum number of results (default: 50)--fields: Comma-separated list of fields to includeDeployment-specific queries:
The available JQL functions depend on your Jira deployment type. Run
check to see your deployment type and ScriptRunner availability.
linkedIssuesOf(), subtasksOf(), commentedByUser().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
# List comments
$SKILL_DIR/scripts/jira.py issue comments DEMO-123
# 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"See from-file-format.md for the --from-file markdown format 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.
666332c
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.