Epics¶
Four verbs to work with epics: list them, add or remove child issues, and
board for a status roll-up. jira epic is a thin convenience layer over the
issue API; for the epic issue type's own lifecycle (create, edit, transition)
use the issue commands with --type Epic. JSON examples below
show the data block only — the envelope and exit codes live on
Output, and each command links to its reference page for the full
flag and output-field tables.
list¶
Page through every epic visible to the active profile, each with its summary
fields (status, summary):
{
"detail": false,
"jql": "issuetype = Epic",
"epics": [
{
"id": "10000",
"key": "PROJ-100",
"self": "https://example.atlassian.net/rest/api/3/issue/10000",
"fields": {
"status": { "name": "To Do" },
"summary": "Checkout rework"
}
}
]
}
The result is cached locally so later --epic <key> resolutions on
issue list and jql build skip the round
trip. See Cache › epics for the mechanics.
add¶
Attach one or more issues to a parent epic. The trailing argument is the epic;
everything before it is the child issue, list, or range. Add -p /
--parallelism to run the membership updates concurrently; multi-key output
uses ordered data.results[] entries.
jira epic add PROJ-123 PROJ-100
jira epic add PROJ-1..PROJ-10 PROJ-100 -p 4
jira epic add PROJ-123 PROJ-100 --dry-run
--dry-run skips the Jira call and echoes the resolved pair so you can check the
wiring first. Child and parent must live in the same project; a cross-project
attach is rejected upstream with validation / "Issues with this Issue Type must
be created in the same project as the parent."
remove¶
Detach an issue from its current epic. The issue stays put; only the epic link
clears. Accepts issue-key lists and ranges with -p / --parallelism.
The call is idempotent — epic remove against an issue with no epic still
returns removed: true.
board¶
A compact board report: list epics and count each one's child issues by status — a terminal summary instead of opening Jira in a browser. Takes no arguments.
It runs one child lookup per epic (capped by the epic list limit). The JSON
data carries per-epic rows under data.epics and the roll-up under
data.totals. With no profile configured it returns empty rows and zero totals.
See also¶
- Issues — create an epic with
--type Epic; transition or edit it via the issue commands - Cache › epics — the local epic-key cache
--epicfilters use - JQL —
issuetype = Epicis the query behindepic list - Output — the JSON envelope and exit codes