
Acli Jira
- 240 installs
- 12 repo stars
- Updated July 21, 2026
- arjunmahishi/dotfiles
acli-jira is a skill that manages Jira Cloud work items from the command line using the acli tool.
About
A skill for managing Jira from the command line using acli. It covers viewing, searching with JQL, creating, editing, transitioning, assigning, and commenting on work items, plus listing projects, sprints, and boards. A developer uses it to read or update Jira tickets without leaving the terminal, always passing --json on reads and --yes on mutations so commands work in a non-interactive shell.
- Full Jira Cloud management from the CLI via acli: view, search, create, edit, transition, assign, comment
- Documents JQL patterns and mandates --json on reads and --yes on mutations for non-interactive shells
- Covers projects, sprints, and boards discovery
Acli Jira by the numbers
- 240 all-time installs (skills.sh)
- Ranked #965 of 3,282 Productivity & Planning skills by installs in the Skillselion catalog
- Data as of Jul 28, 2026 (Skillselion catalog sync)
acli-jira capabilities & compatibility
- Capabilities
- project management
- Works with
- jira · atlassian
- Use cases
- project management
What acli-jira says it does
`acli jira` provides full Jira Cloud management from the CLI.
**Always use `--json`** on read commands (`view`, `search`, `comment list`, `project list`, etc.) to get machine-readable output.
npx skills add https://github.com/arjunmahishi/dotfiles --skill acli-jiraAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 240 |
|---|---|
| repo stars | ★ 12 |
| Last updated | July 21, 2026 |
| Repository | arjunmahishi/dotfiles ↗ |
What it does
Manage Jira Cloud tickets from the CLI with acli: search with JQL, create, edit, transition, assign, and comment on work items.
Who is it for?
Developers who want to manage Jira work items and JQL searches without leaving the terminal.
Skip if: Interactive shells without --json/--yes flags, which would hang on confirmation prompts.
When should I use this skill?
When you need to read, create, update, search, transition, assign, or comment on Jira tickets from the CLI.
What you get
Jira work items are searched, created, and updated entirely from the command line with machine-readable output.
- Created, updated, or transitioned Jira work items
- JQL search results
Files
Purpose
Use this skill when you need to interact with Jira: reading tickets, creating new work items, updating existing ones, searching with JQL, transitioning status, assigning, commenting, or browsing projects. acli jira provides full Jira Cloud management from the CLI.
When to use what
acli jira workitem view: View a specific ticket by key. Use to read ticket details, description, status, assignee, etc.acli jira workitem search: Find tickets using JQL queries. Use for any search, filtering, or listing of work items.acli jira workitem create: Create a new ticket. Use when the user wants to file a bug, task, story, or epic.acli jira workitem edit: Modify an existing ticket's summary, description, labels, type, or assignee.acli jira workitem transition: Move a ticket to a new status (e.g., "In Progress", "Done").acli jira workitem assign: Change or remove a ticket's assignee.acli jira workitem comment create: Add a comment to a ticket.acli jira workitem comment list: Read comments on a ticket.acli jira project list: List available projects. Use to discover project keys.acli jira project view: View details of a specific project.acli jira sprint list-workitems: List tickets in a sprint (requires--sprintand--boardIDs).acli jira board search: Find boards by name or keyword.
Core concepts
- Always use `--json` on read commands (
view,search,comment list,project list, etc.) to get machine-readable output. - Always use `--yes` on mutation commands (
edit,transition,assign) to skip interactive confirmation prompts that would hang in a non-interactive shell. - JQL (Jira Query Language) is used for searching. Pass it via
--jql "...". - `@me` is a shorthand for the authenticated user (works in
--assignee). - Labels are comma-separated:
--label "bug,backend,urgent". - Work item types use Jira issue types:
Task,Bug,Story,Epic,Sub-task, etc. Pass via--type. - Keys are project-prefixed IDs like
PROJ-123. Multiple keys are comma-separated:--key "PROJ-1,PROJ-2".
Recommended workflow
1. Discover projects: acli jira project list --json to find available project keys. 2. Search for tickets: acli jira workitem search --jql "project = PROJ AND ..." --json to find relevant work items. 3. View a ticket: acli jira workitem view PROJ-123 --json to read full details. 4. Create/edit/transition as needed using the commands below.
Common JQL patterns
# All open tickets in a project
--jql "project = PROJ AND status != Done"
# Tickets assigned to me
--jql "assignee = currentUser()"
# Bugs created this week
--jql "project = PROJ AND type = Bug AND created >= startOfWeek()"
# Tickets with a specific label
--jql "project = PROJ AND labels = backend"
# Search by summary text
--jql "project = PROJ AND summary ~ \"search term\""
# High priority open items
--jql "project = PROJ AND priority in (High, Highest) AND status != Done"
# Recently updated
--jql "project = PROJ AND updated >= -7d ORDER BY updated DESC"Examples
View a ticket
acli jira workitem view PROJ-123 --json
# View specific fields only
acli jira workitem view PROJ-123 --fields "summary,status,assignee,labels,comment" --jsonSearch for tickets
# Search with JQL, get JSON output
acli jira workitem search --jql "project = PROJ AND status = 'In Progress'" --json
# Search with specific fields and a result limit
acli jira workitem search --jql "project = PROJ AND assignee = currentUser()" \
--fields "key,summary,status,priority,labels" --limit 20 --json
# Get count of matching tickets
acli jira workitem search --jql "project = PROJ AND type = Bug" --countCreate a ticket
# Basic creation
acli jira workitem create \
--project "PROJ" \
--type "Task" \
--summary "Implement feature X" \
--description "Detailed description here" \
--label "backend,feature" \
--assignee "@me" \
--json
# Create a bug with a parent (sub-task)
acli jira workitem create \
--project "PROJ" \
--type "Bug" \
--summary "Fix login timeout" \
--description "Users report timeout after 30s on the login page" \
--label "bug,auth" \
--parent "PROJ-100" \
--json
# Create with description from a file
acli jira workitem create \
--project "PROJ" \
--type "Story" \
--summary "User onboarding flow" \
--description-file description.txt \
--jsonEdit a ticket
# Edit summary and labels
acli jira workitem edit --key "PROJ-123" \
--summary "Updated summary" \
--labels "backend,urgent" \
--yes --json
# Change assignee
acli jira workitem edit --key "PROJ-123" \
--assignee "user@company.com" \
--yes --json
# Remove labels
acli jira workitem edit --key "PROJ-123" \
--remove-labels "stale" \
--yes --jsonTransition a ticket
# Move to In Progress
acli jira workitem transition --key "PROJ-123" --status "In Progress" --yes --json
# Mark as Done
acli jira workitem transition --key "PROJ-123" --status "Done" --yes --json
# Transition multiple tickets
acli jira workitem transition --key "PROJ-1,PROJ-2,PROJ-3" --status "Done" --yes --jsonAssign a ticket
# Assign to self
acli jira workitem assign --key "PROJ-123" --assignee "@me" --yes --json
# Assign to someone else
acli jira workitem assign --key "PROJ-123" --assignee "user@company.com" --yes --json
# Remove assignee
acli jira workitem assign --key "PROJ-123" --remove-assignee --yes --jsonComments
# Add a comment
acli jira workitem comment create --key "PROJ-123" --body "This is ready for review"
# List comments
acli jira workitem comment list --key "PROJ-123" --jsonProjects
# List all projects
acli jira project list --json
# View a specific project
acli jira project view --key "PROJ" --json
# List recently viewed projects
acli jira project list --recent --jsonSprints and boards
# Find a board
acli jira board search --name "My Team" --json
# List sprints on a board
acli jira board list-sprints --id 42 --json
# List tickets in a sprint
acli jira sprint list-workitems --sprint 101 --board 42 --jsonImportant tips
- When creating tickets, always ask the user for the project key if not already known. Use
acli jira project list --jsonto discover available projects. - When creating tickets, infer appropriate labels from context (e.g., the area of the codebase, the type of work). Labels help with discoverability.
- Prefer
--jsonoutput for all read operations so you can parse and summarize results for the user. - Use
--yeson all write operations to avoid interactive prompts. - For large result sets, use
--limitto cap results or--paginateto fetch everything. - Status names for transitions are project-specific. If a transition fails, the error message will list valid statuses.
- To set custom fields (not exposed as CLI flags), use
--from-jsonwithadditionalAttributes. Generate a template withacli jira workitem create --generate-json.
Board-specific conventions
For project-specific board conventions (required fields, custom field mappings, labels, templates), read the file ~/.config/opencode/skills/acli-jira/boards.md if it exists. It contains board-specific conventions needed before creating or managing tickets on known boards.
This allows board conventions to be kept private (not checked into version control) while the core skill remains public.
Board-specific Jira conventions
This file contains project-specific and board-specific conventions for managing Jira tickets. Keep it private (not in version control).
Board: AI Supportability Kanban
Reference for creating and managing tickets on the AI Supportability Kanban board.
Board details
| Field | Value |
|---|---|
| Board ID | 1267 |
| Board type | Kanban |
| Project | CC (CockroachCloud) |
Required fields
| Field | Value / How to set |
|---|---|
| Project | --project "CC" |
| Type | --type "Task" (or "Bug" for defects) |
| Label | --label "ai-supportability" -- this is how tickets appear on the board |
| Engineering Team | customfield_10089 with value "Supportability" -- must be set via --from-json (see example below) |
Conventions
- Issue types:
Task(default) orBug. No Stories or Epics. - Statuses:
Backlog->To Do->Dev in Progress->Done - Priority: typically left as
None. - Components / Parent / Epic: not used on this board.
- Summary style: short, imperative descriptions (e.g., "Handle downloading state on the UI").
Creating a ticket
Since the Engineering Team field requires --from-json, write a temporary JSON file and pass it:
cat <<'EOF' > /tmp/jira-ticket.json
{
"projectKey": "CC",
"type": "Task",
"summary": "Your task description here",
"description": {
"type": "doc",
"version": 1,
"content": [{"type": "paragraph", "content": [{"type": "text", "text": "Detailed description here"}]}]
},
"labels": ["ai-supportability"],
"additionalAttributes": {
"customfield_10089": {"value": "Supportability"}
}
}
EOF
acli jira workitem create --from-json /tmp/jira-ticket.json --jsonSearching tickets on this board
acli jira workitem search --jql "project = CC AND labels = ai-supportability ORDER BY updated DESC" --jsonRelated skills
FAQ
How do I get machine-readable Jira output?
Always use --json on read commands like view, search, and comment list.
Why do mutations need --yes?
--yes skips interactive confirmation prompts that would hang in a non-interactive shell.