gitminal v1.3.0 ~/repos/gitminal main origin/main ahead 0 behind 0 [v] up to date
[00 // COMMAND DECK] @im4all/gitminal
[v] GUARDED CLI BUN >= 1.3.14 GIT >= 2.31.0 OPENTUI 0.6.6
> KEYBOARD-FIRST TERMINAL GIT CLIENT WITH FULL MOUSE PARITY

Precision Git control inside a multi-pane terminal instrument.

Built on Bun, React 19, and OpenTUI. Inspect lazygit-style commit graphs, syntax-highlighted Tree-sitter diffs, branches, remotes, tags, stashes, and linked worktrees with zero shell interpolation and single-mutation safety.

PACKAGE @im4all/gitminal RELEASE v1.3.0 AUTHOR Hadi LICENSE MIT
┌─ Quick Launch & Install
bun add -g @im4all/gitminal

Install the global `gitminal` binary via Bun (>= 1.3.14).

[01 // INTERACTIVE TUI WORKBENCH]

Live Multi-Pane Terminal Simulation

Press 1-8 to focus regions, j/k to inspect commits, g to toggle graph box-drawing style, or 9 to open the Console drawer.

gitminal - ~/repos/gitminal (Active Region: [6] Commits)
142x42 // TRUECOLOR
~/repos/gitminal
> main origin/main ahead 0 behind 0 ✓ up to date
Branches (6) [1]
* main [LR] origin/main
Remotes (5) [2]
Tags (4) [3]
Stashes (2) [4]
Worktrees (2) [5]
Commits [6] j/k g/G /
all refs | 37 commits
○ feat(config): load settings from the environment
1
│ [main] Ada Lovelace
14 Sep 16:26
Commit 1f901cb [7] c
Commit 1f901cb 1 file changed +32 -1
feat(config): load settings from the environment
Diff 1f901cb (Tree-sitter WASM) [8] J/K H/L
▼ M src/config.py +32 -1
@@ -1,4 +1,18 @@
1 - # feat: config loader
1 + from __future__ import annotations
Console (Serialized Git Command Log) 0 shell interpolations // argv[] only
[9 / Ctrl+`]
✓ 0$ git status --porcelain=v2 --branch 9ms
? Help | Up/k Move up | Down/j Move down | g/G First/Last | / Search commits | J/K/H/L Scroll diff | Ctrl+P Command palette | r Refresh
[02 // SYSTEM ARCHITECTURE & CAPABILITIES]

Engineered Like a Systems Runtime, Not a Wrapper Script

Strict unidirectional layering (features -> ui/app -> domain -> lib), deterministic command serialization, and native terminal rendering.

01 // GRAPH ENGINE domain/graph

Two-Cell Lazygit Box-Drawing Lanes

Renders complex branch topologies and octopus merges using East Asian Ambiguous 1-cell glyphs. Switch seamlessly between rounded arc corners (╭ ╮ ╰ ╯ ○ ◎) and WGL4/CP437-safe sharp corners (┌ ┐ └ ┘ +) with cursor-paginated history and instant commit search (/).

Glyphs: U+2500..U+257F Page window: 500 commits
02 // GUARDED GIT CLI domain/git + commands

Serialized Runner & Zero Shell Interpolation

Every Git subprocess spawns via argument arrays with no shell interpretation. Write operations are strictly serialized (one mutation at a time with explicit blocked reasons), credentials in URLs and stderr are automatically redacted, and branch deletion inspects unmerged commit risk before confirmation.

Spawn: argv[] only Safety: Credential Redaction
03 // DIFF & TREE-SITTER features/diff + parsers

Vendored WASM Syntax Highlighting

Working tree, staged, untracked, commit, stash, and conflict diffs render through OpenTUI's unified <diff> primitive with vendored Tree-sitter WASM grammars (TypeScript, Python, Rust, Go, Bash, JSON, YAML, HTML, CSS, Java, PHP). Unchanged context runs collapse cleanly and scroll via J/K/H/L.

View: Unified 1-Gutter Parsers: Offline WASM
04 // INPUT & FOCUS AUTHORITY app/hooks/useHotkeys

Context-Sensitive Keys + Full Mouse Support

A single global key dispatcher resolves precedence (Overlay -> Text Editor -> Native Select -> Focused Region -> Global). Every keyboard action has mouse parity: click to focus and select, double-click to trigger primary actions, click checkboxes/headers, and scroll any viewport with the wheel.

Regions: 1..9 + Tab Mouse: Click / DblClick / Wheel
05 // COMPLETE REPO SURFACES features/branches..worktrees

Branches, Remotes, Tags [LR], Stashes & Worktrees

Manage the entire Git lifecycle without leaving the viewport: checkout/create/delete branches, prune remotes, inspect tag presence via the fixed-width [LR] / [L↑] / [L?] matrix, pop/apply stashes with untracked files, and create or prune linked Git worktrees.

Tag Matrix: [L R ↑ ?] Frame-Buffer Progress Bar
06 // CATPPUCCIN & COLOR ENGINE domain/theme

Truecolor, 256-Color & Monochrome Fallback

Ships with four official Catppuccin flavors (mocha, macchiato, frappe, latte). Inspects NO_COLOR, COLORTERM, and TERM at startup to adapt automatically between 24-bit truecolor, quantized xterm-256color, and high-contrast monochrome.

Default: catppuccin-mocha Live Reload: Ctrl+P
[03 // KEYMAP & CONFIGURATION BLUEPRINTS]

Interactive Keybinding Explorer & Config Reference

Every keybinding is scoped to its active region and customizable via keybindings.json. Search by key chord, action ID, or command name below.

┌─ Default Keybindings (56 Actions) Showing 56 actions
Action Action ID Scope Default Keys
Command palette app.palette global ctrl+p
┌─ Configuration & Environment
PATH RESOLUTION: $GITMINAL_CONFIG -> ~/.config/gitminal/config.json
BUILT-IN CATPPUCCIN FLAVORS (CLICK TO PREVIEW IN WORKBENCH)