jiraf is a TUI to manage Jira issues from the command line. Built on tuishell.
jira + fetch = jiraf — and it sounds like giraffe 🦒, because sometimes you need a long neck to see across all your Jira boards.
- Nerd Font (Symbols) v3.2.1 or higher download
go install github.com/felipeospina21/jiraf@latestgit clone https://github.com/felipeospina21/jiraf.git
cd jiraf
go build -o jiraf .To make it available system-wide:
sudo mv jiraf /usr/local/bin/Launch the TUI:
jirafRun with mocked data (no API calls):
jiraf -demo- Browse Jira issues for your configured boards
- View issues by board with sprint filtering
- Filter issues server-side by status, priority, type, and sprint number
- View issue details with markdown rendering and comments
- Add comments to issues with confirmation
- Transition issue status with confirmation
- Open issues in browser
- Fullscreen details view
- Copy modal content to clipboard
- Demo mode with mocked data (
-demoflag) - Custom theme colors via config with preset support
- Full-screen help modal with all keybindings
- Navigate between boards and issues panels
| Key | Action |
|---|---|
? |
Toggle help |
ctrl+c |
Quit |
ctrl+o |
Toggle side panel |
@ |
Open full message modal |
esc |
Close panel |
| Key | Action |
|---|---|
↑/k |
Move up |
↓/j |
Move down |
enter |
View issues |
/ |
Filter |
| Key | Action |
|---|---|
↑/k |
Move up |
↓/j |
Move down |
enter/l |
View details |
x |
Open in browser |
T |
Transition status |
r |
Refetch issues |
/ |
Open filter |
F |
Clear filters |
| Key | Action |
|---|---|
f |
Toggle fullscreen |
C |
Add comment |
| Key | Action |
|---|---|
esc |
Close modal |
ctrl+s |
Submit |
ctrl+y |
Copy |
Config file is read from ~/.config/jiraf/jiraf.toml.
You need to set a Jira API token as an environment variable. Add it to your shell config (e.g. .zshrc) to persist it:
export JIRAF_TOKEN="YOUR_JIRA_API_TOKEN"| Option | Description | Default | Required |
|---|---|---|---|
base_url |
Jira instance URL | — | Yes |
filters.boards |
List of board objects | — | Yes |
theme |
Color overrides (see Theme) | Jira blue | No |
Each board in filters.boards has the following fields:
| Field | Type | Description |
|---|---|---|
name |
string |
Display name shown in the board list |
id |
string |
Jira board ID |
key |
string |
Jira project key (e.g. PROJ) |
You can customize the color theme by adding a [theme] section to your config file.
Presets: Use a preconfigured palette by name. Individual overrides can be combined with a preset.
| Preset | Description |
|---|---|
catppuccin-mocha |
Catppuccin Mocha (dark) |
catppuccin-macchiato |
Catppuccin Macchiato |
catppuccin-frappe |
Catppuccin Frappé |
catppuccin-latte |
Catppuccin Latte (light) |
rose-pine |
Rosé Pine |
tokyo-night |
Tokyo Night |
dracula |
Dracula |
[theme]
preset = "catppuccin-mocha"Individual overrides: Each property accepts a hex color string. Only the tokens you specify are overridden — everything else falls back to the preset (or the default Jira blue palette if no preset is set).
| Token | Description | Default |
|---|---|---|
primary |
Primary accent color | #2684FF |
primary_bright |
Brighter primary variant | #8AC4FF |
primary_fg |
Foreground on primary backgrounds | #DEEBFF |
primary_dim |
Dimmed primary for subtle accents | #002B6B |
info |
Informational color | #4C9AFF |
info_bright |
Brighter info variant | #2684FF |
success |
Success / positive state | #6beaaf |
success_bright |
Brighter success variant | #3ad994 |
danger |
Error / destructive state | #f9a8a8 |
danger_bright |
Brighter danger variant | #f47575 |
warning |
Warning state | #ffe043 |
warning_bright |
Brighter warning variant | #ffcc14 |
caution |
Caution / attention state | #ff8237 |
text |
Default text color | #C4C4C4 |
text_inverse |
Text on light backgrounds | #111 |
text_dimmed |
Dimmed / secondary text | #777777 |
muted |
Muted text | #999999 |
dim |
Dimmed UI elements | #444444 |
border |
Panel borders | #3f4145 |
modal_border |
Modal overlay border | #666666 |
surface_dim |
Dark surface background | #091E42 |
selection_border |
Selected item border | #0052CC |
status_text |
Status bar text | #FFFDF5 |
status_normal |
Status bar normal mode | #0747A6 |
status_loading |
Status bar loading state | #1A7A94 |
status_error |
Status bar error state | #CE3060 |
status_dev |
Status bar dev mode indicator | #4E8212 |
status_accent1 |
Status bar accent 1 | #0065FF |
status_accent2 |
Status bar accent 2 | #003884 |
base_url = "https://your-org.atlassian.net"
[filters]
boards = [
{ name = "Some Board", id = "3588", key = "SMB" },
{ name = "Platform Sprint", id = "42", key = "PLAT" },
]
# Optional: use a preset theme
[theme]
preset = "catppuccin-mocha"
# Or override specific colors (works with or without a preset)
# primary = "#0052CC"
# success = "#22C55E"
# danger = "#EF4444"This project is licensed under the MIT License.

