gitpane 0.8.2

Multi-repo Git workspace dashboard TUI
Documentation
# gitpane configuration
# gitpane checks (in order): $GITPANE_CONFIG, $XDG_CONFIG_HOME/gitpane/config.toml,
# ~/.config/gitpane/config.toml, then the OS-native location. See README "Configuration".

# Directories to scan for git repositories
root_dirs = ["~/Code"]

# Maximum depth to walk when discovering repos (default: 2)
scan_depth = 2

# Repos to always show at the top of the list
pinned_repos = []

# Patterns to exclude from repo discovery
# Matches against repo directory name or any path component
excluded_repos = ["node_modules", ".cargo"]

[watch]
# Filesystem change debounce interval in milliseconds (default: 500)
debounce_ms = 500

# Minimum time between watcher-triggered status refreshes for the same repo
# in milliseconds (default: 5000)
refresh_cooldown_ms = 5000

# Watch every gitignore-aware worktree directory for nested file changes.
# Disabled by default to keep Linux inotify quiet in busy generated workspaces.
# Local status polling still catches nested changes (default: false).
watch_worktree_dirs = false

# Local status poll interval in seconds — catches missed watcher events (default: 5)
poll_local_secs = 5

# Remote fetch poll interval in seconds — updates ahead/behind from origin (default: 30)
poll_fetch_secs = 30

# Minimum seconds between two auto-rescans triggered by root-dir filesystem
# changes (new clones, deleted repos). Higher values reduce wasted scans
# during long operations; lower values shorten the delay before a freshly
# cloned repo appears in the list (default: 5).
discovery_cooldown_secs = 5

[ui]
# Terminal refresh rate in frames per second (default: 10)
frame_rate = 10

# Check GitHub for newer releases on startup (default: true)
check_for_updates = true

# Where to show the update notification: "top-right" or "top-left" (default: "top-right")
update_position = "top-right"

# Mark repos/worktrees that have a live tmux pane cwd'd inside them with ◉
# (tmux-only; default: true)
show_liveness = true

[graph]
# Branch filter for commit graph: "all", "local", "remote", or "none" (default: "all")
branches = "all"

# Max length for branch/tag labels in the graph (default: 24)
label_max_len = 24

# Show +N/-M diff stats per commit (default: true)
show_stats = true

[open]
# Command run by `o` to open the selected repo/worktree. `{path}` is its dir.
# command = "cursor {path}"          # GUI editor (launched directly)
# Unset + placement "command": open a tmux pane (a shell) when inside tmux.
#
# placement controls WHERE/HOW the command runs:
#   "command" (default) the command IS the launcher, run directly as argv
#   "split-window"/"new-window" (+ tmux flags) gitpane runs it in a tmux
#       pane/window, e.g. "split-window -h -t agents" = right of window 'agents',
#       "split-window -v -t agents" = below it, "new-window -t work:" = a new
#       window in session 'work'.
#   "inline" suspend gitpane and run the command in this terminal.
#   "ask" pick where (right of / below a named window, or new window) each time.
# Outside tmux, a tmux placement runs inline automatically.
# placement = "command"

[review]
# Command run by `v` to review the selected repo/worktree. `{base}` is the base
# ref, `{path}` the dir. Unset (default): `git diff {base}...HEAD`.
# command = "git diff {base}...HEAD | delta --side-by-side"
# base ref to diff against. Unset: the repo's resolved default branch.
# base = "origin/main"
# placement: same vocabulary as [open]; default opens a new tmux window.
# placement = "split-window -h"      # beside gitpane instead of a new window

[worktree]
# Directory new worktrees are created under, each as <repo>-<branch>.
# Unset (default): a worktree is created as a sibling of its repo.
# dir = "~/worktrees"

[goto]
# Command run by `G` to open a repo's live tmux session, `{session}` = the
# session name (run as argv, no shell). By DEFAULT this is auto-detected from
# your terminal to open a new tab (WezTerm, kitty, GNOME Terminal, Konsole) or
# a new window (Ghostty, Alacritty). Override for an unsupported terminal (e.g.
# Windows Terminal/WSL) or different behavior:
# command = "wezterm cli spawn -- tmux attach -t {session}"
# command = "kitten @ launch --type=tab tmux attach -t {session}"