1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
# 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
= ["~/Code"]
# Maximum depth to walk when discovering repos (default: 2)
= 2
# Repos to always show at the top of the list
= []
# Patterns to exclude from repo discovery
# Matches against repo directory name or any path component
= ["node_modules", ".cargo"]
[]
# Filesystem change debounce interval in milliseconds (default: 500)
= 500
# Minimum time between watcher-triggered status refreshes for the same repo
# in milliseconds (default: 5000)
= 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).
= false
# Local status poll interval in seconds — catches missed watcher events (default: 5)
= 5
# Remote fetch poll interval in seconds — updates ahead/behind from origin (default: 30)
= 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).
= 5
[]
# Share additions and removals with other running instances. Use
# --no-sync-repos to disable this for one pane only.
= true
# Terminal refresh rate in frames per second (default: 10)
= 10
# Check GitHub for newer releases on startup (default: true)
= true
# Where to show the update notification: "top-right" or "top-left" (default: "top-right")
= "top-right"
# Mark repos/worktrees that have a live tmux pane (or herdr pane) cwd'd inside
# them with ◉ (tmux and herdr; default: true)
= true
# Show each repo's worktrees on startup (default: true). Set false if many
# repos with many worktrees make the list too tall; `w` still toggles either way.
= true
[]
# Branch filter for commit graph: "all", "local", "remote", or "none" (default: "all")
= "all"
# Max length for branch/tag labels in the graph (default: 24)
= 24
# Show +N/-M diff stats per commit (default: true)
= true
[]
# Show the GitHub panel (open issues/PRs for the selected repo) via the `gh` CLI.
# Opt-out: on by default. The 4th panel appears only for a selected repo whose
# origin is a github.com remote and that has open issues or PRs; press `p` to
# force it open (e.g. to browse closed items). Needs `gh` on PATH; without it
# gitpane keeps the usual three panels and shows no error (default: true).
= true
[]
# 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,
# or a herdr pane (right of gitpane) when inside herdr.
#
# 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.
# Under herdr, split-window -h/-v map to pane directions, new-window creates a
# new tab, and -t <pane-id> pins a herdr pane.
# placement = "command"
[]
# 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 (a new
# herdr tab when inside herdr).
# placement = "split-window -h" # beside gitpane instead of a new window
[]
# Directory new worktrees are created under, each as <repo>-<branch>.
# Unset (default): a worktree is created as a sibling of its repo.
# dir = "~/worktrees"
[]
# Ask herdr to forward right-click gestures to gitpane's pane at startup ("herdr pane
# input --current --right-click pane") so the context menu works despite herdr's own
# right-click menu. herdr's CLI cannot read the current routing back, so gitpane never
# restores it on exit — the pane keeps forwarding right-click after gitpane quits.
# Opt-in; the `Menu` key always works as the context-menu fallback (default: false).
= false
[]
# 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}"