Skip to content

Config Reference

pertmux uses a TOML configuration file. It looks for ~/.config/pertmux.toml by default, or you can specify a path with -c:

Terminal window
pertmux -c ./path/to/config.toml serve
KeyTypeDefaultDescription
refresh_intervalinteger2How often (in seconds) to poll tmux panes and agent status
mr_detail_intervalinteger60How often (in seconds) to refresh MR detail and pipeline status
worktree_intervalinteger30How often (in seconds) to refresh worktree list
mr_list_intervalinteger300How often (in seconds) to refresh the MR/PR list from the forge
default_agent_commandstringCommand to run in a split pane when focusing a worktree (e.g. "opencode")
default_worktree_with_promptstringCommand template for creating a worktree with an injected prompt. Use {{msg}} as the placeholder (e.g. "opencode run {{msg}}"). Enables the w keybinding — see Worktree with Prompt.
KeyTypeDefaultDescription
hoststringgitlab.comGitLab instance hostname
tokenstringPersonal access token (or set PERTMUX_GITLAB_TOKEN env var)
KeyTypeDefaultDescription
hoststringgithub.comGitHub hostname (use custom host for GitHub Enterprise)
tokenstringPersonal access token (or set PERTMUX_GITHUB_TOKEN env var). Needs repo scope for private repos.
KeyTypeRequiredDescription
namestringyesDisplay name (shown in overview)
sourcestringyes"gitlab" or "github"
projectstringyesFull project path (e.g. team/app or org/repo)
local_pathstringyesAbsolute path to local repo (validated at startup)
usernamestringnoYour username (for filtering MRs/PRs to your own)

Including this section enables the opencode agent. Omit or comment it out to disable.

KeyTypeDefaultDescription
db_pathstring~/.local/share/opencode/opencode.dbPath to the opencode SQLite database

Including this section enables the Claude Code agent. No configuration options needed.

Including this section enables the Codex CLI agent. Omit or comment it out to disable.

KeyTypeDefaultDescription
codex_homestring~/.codexOverride the Codex home directory (contains state_5.sqlite and logs_2.sqlite)

Remap action keys. Navigation keys (j/k///Tab/Enter/Esc/q) are not configurable. Each action must have a unique key — duplicates are rejected at startup with a clear error message.

KeyTypeDefaultDescription
refreshstring"r"Refresh all data
open_browserstring"o"Open selected MR in browser
copy_branchstring"b"Copy selected branch name to clipboard
filter_projectsstring"f"Fuzzy filter to switch project
create_worktreestring"c"Create new worktree
open_worktree_with_promptstring"w"Create worktree and inject a prompt into the agent (requires default_worktree_with_prompt)
delete_worktreestring"d"Delete selected worktree
merge_worktreestring"M"Merge selected worktree into default branch
mr_overviewstring"m"Open MR Overview popup (all your open MRs across all forges)
agent_actionsstring"a"Open agent actions panel
activity_feedstring"A"Open Activity Feed popup — navigate recent events and jump to the relevant pane or MR

Define custom agent actions that can be sent to coding agent instances from the dashboard. When any [[agent_action]] entries are present, they replace the built-in defaults. Omit this section entirely to use the two default actions (rebase, pipeline fix).

KeyTypeRequiredDefaultDescription
namestringyesDisplay name shown in the actions popup
promptstringyesPrompt template sent to the agent
requires_mrbooleannofalseIf true, action is skipped when no MR is linked

Prompts support template variables: {target_branch}, {source_branch}, {mr_url}, {mr_iid}, {project_name}. See Agent Actions for details and examples.

VariableOverridesDescription
PERTMUX_GITLAB_TOKEN[gitlab].tokenGitLab personal access token
PERTMUX_GITHUB_TOKEN[github].tokenGitHub personal access token