Skip to content

felipeospina21/jiraf

Repository files navigation

🦒 jiraf

Jiraf

screenshot

Go Version License Go Report Card

jiraf is a TUI to manage Jira issues from the command line. Built on tuishell.

gif

Why "jiraf"?

jira + fetch = jiraf — and it sounds like giraffe 🦒, because sometimes you need a long neck to see across all your Jira boards.

Requirements

Install

go install github.com/felipeospina21/jiraf@latest

From source

git 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/

Usage

Launch the TUI:

jiraf

Demo mode

Run with mocked data (no API calls):

jiraf -demo

Features

  • 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 (-demo flag)
  • Custom theme colors via config with preset support
  • Full-screen help modal with all keybindings
  • Navigate between boards and issues panels

Keybindings

Global

Key Action
? Toggle help
ctrl+c Quit
ctrl+o Toggle side panel
@ Open full message modal
esc Close panel

Boards panel

Key Action
↑/k Move up
↓/j Move down
enter View issues
/ Filter

Issues panel

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

Details panel

Key Action
f Toggle fullscreen
C Add comment

Modal / Comment

Key Action
esc Close modal
ctrl+s Submit
ctrl+y Copy

Config

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"

Config properties

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

Board object

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)

Theme

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

Config example

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"

Related

  • mrglab — GitLab merge requests TUI
  • tuishell — Shared TUI framework

License

This project is licensed under the MIT License.

About

TUI to manage Jira issues from the command line

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors