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
# 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
[]
# 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 cwd'd inside them with ◉
# (tmux-only; default: true)
= 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
[]
# 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"
[]
# 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
[]
# Directory new worktrees are created under, each as <repo>-<branch>.
# Unset (default): a worktree is created as a sibling of its repo.
# dir = "~/worktrees"
[]
# 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}"