Configuration
Git Vibe reads configuration in this order:
- local repo Git config
- checked-in
vibe.toml - global Git config
- built-in defaults
This gives teams a shared repository-level source of truth while still working well for solo developers who want one place to set the defaults.
Example vibe.toml
[vibe]
baseBranch = "main"
branchPrefix = "feat/"
worktreeRoot = "../.vibe"
openEditor = "auto"
openWorkspaceWith = "auto"
deleteRemoteOnFinish = true
issueBranchStyle = "number-and-title"
[release]
versioning = "npm"
[hooks]
post-create = "npm install"
pre-finish = "npm test"
pre-release = "npm test"Core vibe settings
baseBranchbranchPrefixworktreeRootopenEditoropenWorkspaceWithdeleteRemoteOnFinishissueBranchStyle
Release settings
versioningfile
Git config versions of the same release settings look like this:
git config vibe.releaseVersioning npm
git config vibe.releaseVersioning file
git config vibe.releaseFile VERSIONWorkspace behavior
vibe.openEditor=auto|always|never controls whether Git Vibe tries to launch a workspace app after opening a vibe.
vibe.openWorkspaceWith=auto|codex|vscode controls which workspace app Git Vibe prefers.
In auto, Git Vibe prefers Codex Desktop inside a Codex shell and otherwise uses VS Code when the code CLI is available.
Lifecycle hooks
Hooks live under [hooks] and run through sh -c.
post-createruns after Git Vibe creates or attaches a fresh worktreepre-finishruns after merge verification and before cleanuppre-releaseruns after release validation and before version updates, commit creation, and tagging
Environment variables available to hooks:
GIT_VIBE_HOOKGIT_VIBE_REPO_ROOTGIT_VIBE_BASE_BRANCHGIT_VIBE_BRANCHGIT_VIBE_WORKTREE_PATHGIT_VIBE_VERSIONGIT_VIBE_ISSUE_NUMBER
A few useful local overrides
git config vibe.openEditor never
git config vibe.openWorkspaceWith codex
git config vibe.issueBranchStyle number-only
git config vibe.deleteRemoteOnFinish trueThe result is a shared workflow with predictable defaults and room for local overrides where needed.