Shell Setup
vibe needs a shell wrapper function to change directories after creating or cleaning up worktrees. Add the appropriate configuration to your shell.
Shell Configuration
Section titled “Shell Configuration”Add one of the following to ~/.zshrc. Do not add both — the wrapper would be defined twice.
Recommended — wrapper function with tab completion (subcommands, flags, and branch names for vibe start / vibe jump):
autoload -Uz compinit && compiniteval "$(vibe shell-setup --shell zsh --with-completion)"The two lines define the vibe wrapper and register the zsh completion together. The compinit line is required for zsh’s completion system — if you already invoke compinit elsewhere in your ~/.zshrc, place the eval line after that call. If compinit has not run, the completion registration is silently skipped and the vibe wrapper is still defined.
Wrapper only (no tab completion):
vibe() { eval "$(command vibe "$@")" }Add to ~/.bashrc:
vibe() { eval "$(command vibe "$@")"; }Add one of the following to ~/.config/fish/config.fish. Do not add both — the wrapper would be defined twice.
Recommended — wrapper function with tab completion (subcommands, flags, and branch names for vibe start / vibe jump):
vibe shell-setup --shell fish --with-completion | sourceThis single line both defines the vibe wrapper and registers fish completions.
Wrapper only (no tab completion):
function vibe eval (command vibe $argv)endAdd to ~/.config/nushell/config.nu:
def --env vibe [...args] { ^vibe ...$args | lines | each { |line| nu -c $line }}Add to your $PROFILE:
function vibe { Invoke-Expression (& vibe.exe $args) }Using mise (automatic setup)
Section titled “Using mise (automatic setup)”If you installed vibe with mise, you can automate shell setup using mise’s hooks feature.
Add the following to your project’s .mise.toml:
[hooks]enter = 'eval "$(vibe shell-setup)"'Why is this needed?
Section titled “Why is this needed?”When vibe creates a worktree, it needs to change your current working directory to the new worktree. However, a subprocess cannot change the parent process’s directory directly.
The shell wrapper function captures vibe’s output (which contains shell commands like cd /path/to/worktree) and executes it in the current shell context.
Verify Installation
Section titled “Verify Installation”After adding the shell configuration, reload your shell and verify:
# Reload your shell or open a new terminalsource ~/.zshrc # or ~/.bashrc, etc.
# Check vibe is workingvibe --helpNext Steps
Section titled “Next Steps”- Configuration - Set up
.vibe.tomlfor automated workflows - Commands - Learn about available commands