A small command-line tool for managing Jira issues and sprints, built on the standard library and go-atlassian.
It is instance-agnostic: your site URL, projects and workflow are read from a config file, and custom fields (story points, sprint) and workflow transitions are resolved from the Jira API at runtime — no instance-specific IDs are baked into the binary.
- List issues in your open sprints
- List sprints
- Create an issue
- Change an issue's status (run, resolve, qa, done, close)
- Open an issue in the browser
- Describe an issue
go build -o jira ./cmd-
Create a Jira API token: https://id.atlassian.com/manage-profile/security/api-tokens
-
Register your credentials and site:
jira config -id <email> -pw <token> -d https://your-domain.atlassian.net -j <PROJECT>This writes ~/.jira.
jira sprint # list sprints
jira ls # list your issues in the open sprints
jira open -m "message" -s <sprint id> -p <points>
jira describe -i <ISSUE-123>
jira view -i <ISSUE-123>
jira run -i <ISSUE-123> # transition to "In Progress"
jira resolve -i <ISSUE-123>
jira qa -i <ISSUE-123>
jira done -i <ISSUE-123>
jira close -i <ISSUE-123>
jira helpusername: you@example.com # email
password: <api token>
domain: https://your-domain.atlassian.net
project: PROJ # default project for `open`
projects: # optional: projects included in `ls`/`sprint`
- PROJ
- QA
transitions: # optional: override workflow transition names
run: In Progress
resolve: Resolved
qa: In QA
done: Done
close: Closed
storyPointField: "" # optional: customfield_xxxxx, else auto-detected
sprintField: "" # optional: customfield_xxxxx, else auto-detectedtransitionsmap each status command to a transition name. At runtime the tool fetches the transitions available on the issue and matches by name, so it works with any workflow. If a name is not found, the available options are printed.storyPointField/sprintFieldare auto-detected from the field catalog by name when left empty. Set them explicitly if detection picks the wrong field.