Skip to content

Configuration Reference

Field-by-field lookup for both config files. For explanations and examples, see the Configuration guide.

Global config

Path: $XDG_CONFIG_HOME/workFlow/config.yaml (typically ~/.config/workFlow/config.yaml). All fields optional. Manage with wf config path | show | edit.

FieldTypeDefaultDescription
clipboard_cmdstringbuilt-in clipboardCopy command, run as sh -c <cmd> with the path on stdin
default_basestringdetected default branchFallback base branch for new workspaces
worktree_dirstringsibling <repo>_worktreesDefault base directory for all worktrees
default_idestringfirst detected editorFallback editor id for wf edit / wf open when a repo pins none (Editors)
ideslistnoneCustom editors merged into the picker's catalog (id, name, cmd, gui)
statusmapnerdfont defaultsAgent-status icons/colours (preset, color_mode, scope, ttl, glyphs, colors)
yaml
# ~/.config/workFlow/config.yaml
clipboard_cmd: "xclip -selection clipboard"
default_base: development
worktree_dir: ~/worktrees
default_ide: code
ides:
  - id: lapce
    name: Lapce
    cmd: lapce
    gui: true
status:
  preset: nerdfont

Per-repo .workFlow.yaml

Path: .workFlow.yaml at the repository root. All fields optional. Generate a documented starter with wf init.

FieldTypeDefaultDescription
basestringglobal/detected defaultDefault base branch for new workspaces in this repo
default_idestringglobal default_ideEditor id wf edit prefers for this repo (Editors)
autolaunchboolfalseOpen default_ide without showing the picker
worktree_dirstringglobal setting, else sibling dirWhere this repo's worktrees are created (overrides global)
setuplist of stringsnoneCommands run via sh -c in each new worktree after creation
copylist of stringsnoneRepo-root-relative files copied into each new worktree
symlinklist of stringsnoneRepo-root-relative files symlinked into each new worktree
yaml
# .workFlow.yaml
base: development
# default_ide: goland
# autolaunch: true
# worktree_dir: ../myrepo_worktrees
setup:
  - npm install
copy:
  - .env.example
symlink:
  - .env

Base-branch resolution

The base for a new workspace is the first of these that's set (details):

  1. wf add --base <branch>
  2. .workFlow.yamlbase
  3. global config → default_base
  4. the repo's detected default (origin/HEAD, else developmentmainmaster)
  5. the current branch

State & paths

PathWhat
$XDG_CONFIG_HOME/workFlow/config.yamlGlobal config
$XDG_CONFIG_HOME/workFlow/registry.jsonThe registry — registered projects + tracked worktrees (the only persisted state)
<repo>_worktrees/<branch-slug>Default location of a workspace's worktree (a sibling of the repo)

$XDG_CONFIG_HOME defaults to ~/.config.

WorkFlow — orchestrate git worktrees from one cockpit.