A terminal interface for Jira. Fast, keyboard-driven, and built for people who find the web UI insufferable.
Demo:
demo.mov
Features
- Create and edit issues
- Organize issues across sprints
- Set issue status, assignee, story points, epics, and more
- Fuzzy search picker for setting assignees and parent issues
- Copy issue links to clipboard, or open them directly in your browser
- Vim-inspired keybindings
- Optimized for speed and responsiveness - no more fighting with the Jira web ui!
Getting Started
Installation
Install the tool with curl:
curl -fsSL https://raw.githubusercontent.com/justinmklam/tira/main/bin/install.sh | bashOr with go:
go install github.com/justinmklam/tira/cmd/tira@latest
Then create ~/.config/tira/config.yaml and add a default profile:
profiles: default: jira_url: https://yourorg.atlassian.net email: you@example.com # token can also be set via JIRA_TOKEN or JIRA_API_TOKEN env vars (recommended) token: your_api_token_here project: MYPROJ board_id: 42 classic_project: true # Optional, set to true for company-managed (classic) projects
Alternatively, set values via environment variables (takes precedence over the config file):
export JIRA_TOKEN="your_api_token_here" # or export JIRA_API_TOKEN="your_api_token_here" # Full overrides: export TIRA_JIRA_URL="https://myorg.atlassian.net" export TIRA_EMAIL="me@myorg.com" export TIRA_TOKEN="my-token" export TIRA_PROJECT="MYPROJ"
For clipboard support, install xclip (e.g. sudo apt install xclip) for Linux. macOS uses pbcopy, which is built in to the OS.
Usage
Board TUI
Launch the interactive board TUI:
# Start in backlog view tira backlog # Start in kanban view tira kanban
Common keybindings:
| Key | Action |
|---|---|
Tab |
Toggle between backlog and kanban |
j/k |
Move cursor to next/prev issue |
J/K |
Move cursor to next/prev sprint |
Enter |
Open issue detail in fullscreen / Toggle sprint collapse |
e |
Edit issue |
c |
Add comment |
s |
Set status |
A |
Set assignee |
S |
Set story points |
P |
Set parent |
f<num> |
Jump to issue by number |
/<keyword> |
Filter issues by keyword |
F |
Open parent issue picker to filter issues by parent |
Space |
Select issue |
v |
Visual mode (multi-select) |
x / p |
Cut / Paste selected issue(s) |
| < / > | Move selected issue(s) to prev/next sprint |
R |
Refresh from Jira |
? |
Show help |
q |
Quit |
See Keybindings for the complete reference.
CLI Commands
View an issue:
Edit an issue in your editor:
Create a new issue:
# Interactive with defaults tira create # Specify project and type tira create --project DEV --type Bug
Build & Development
Clone the repository and build the CLI:
make check # Run all checks (fmt, vet, lint, test) make build # Compile the binary make run # Run the tui using your default profile
For development, a second dev profile can be added to your ~/.config/tira.yaml:
profiles: ... dev: jira_url: https://dev-domain.atlassian.net email: dev@example.com token: dev_token_here project: DEVPROJ board_id: 43
Other useful commands:
make run-dev # Run the tui using your dev profile, with debug enabled make test # Run all tests make test-race # Run tests with race detector make fmt # Format code in-place make vet # Run go vet make lint # Run golangci-lint (requires golangci-lint installation)
Documentation
| Document | Description |
|---|---|
| Architecture | System architecture and package structure |
| CLI Commands | Detailed CLI command documentation |
| Configuration | Configuration system details |
| TUI Architecture | TUI model architecture |
| API Client | API client implementation |
| Keybindings | Complete keybinding reference |
| Glossary | Glossary and key types |
Acknowledgements
This project was built with the excellent bubbletea framework by Charm.
Inspiration for this tool was taken from:
Developed with the help of Claude and Qwen. Thanks pals.
License
MIT

