Getting Started
What is vibe?
Section titled “What is vibe?”vibe is a CLI tool that simplifies Git Worktree management. It helps you:
- Create worktrees for new features without leaving your main repository
- Automatically copy configuration files and dependencies
- Run setup hooks when creating or cleaning up worktrees
- Safely manage worktree lifecycle with interactive prompts
Quick Start
Section titled “Quick Start”1. Install vibe
Section titled “1. Install vibe”brew install kexi/tap/vibe# Global installnpm install -g @kexi/vibe
# Or run directly with npxnpx @kexi/vibe start feat/my-feature# Global installbun add -g @kexi/vibe
# Or run directly with bunxbunx @kexi/vibe start feat/my-feature# Ubuntu/Debian (x64)curl -LO https://github.com/kexi/vibe/releases/latest/download/vibe_amd64.debsudo apt install ./vibe_amd64.deb
# Other distributions (x64)curl -L https://github.com/kexi/vibe/releases/latest/download/vibe-linux-x64 -o vibechmod +x vibe && sudo mv vibe /usr/local/bin/npm install -g @kexi/vibeWindows x64 is supported through the @kexi/vibe-win32-x64 binary package. WSL2 users can also use the Linux instructions above.
2. Set up your shell
Section titled “2. Set up your shell”Add one of the following to your shell configuration (choose based on your installation method):
# Add to ~/.zshrc (choose one)
# For global install (Homebrew, npm -g, bun -g)vibe() { eval "$(command vibe "$@")" }
# For npx (without global install)vibe() { eval "$(npx @kexi/vibe "$@")" }# Or for bunx:# vibe() { eval "$(bunx @kexi/vibe "$@")" }# Add to ~/.bashrc (choose one)
# For global install (Homebrew, npm -g, bun -g)vibe() { eval "$(command vibe "$@")"; }
# For npx (without global install)vibe() { eval "$(npx @kexi/vibe "$@")"; }# Or for bunx:# vibe() { eval "$(bunx @kexi/vibe "$@")"; }# Add to ~/.config/fish/config.fish (choose one)
# For global install (Homebrew, npm -g, bun -g)function vibe eval (command vibe $argv)end
# For npx (without global install)function vibe eval (npx @kexi/vibe $argv)end# Or for bunx:# function vibe# eval (bunx @kexi/vibe $argv)# end# Add to ~/.config/nushell/config.nu (choose one)
# For global install (Homebrew, npm -g, bun -g)def --env --wrapped vibe [...args] { let out = (^vibe --eval-dialect nu ...$args) for line in ($out | lines) { if ($line | str starts-with "__VIBE_CD__") { cd ($line | str replace "__VIBE_CD__" "") } else { print $line } }}
# For npx (without global install)def --env --wrapped vibe [...args] { let out = (npx @kexi/vibe --eval-dialect nu ...$args) for line in ($out | lines) { if ($line | str starts-with "__VIBE_CD__") { cd ($line | str replace "__VIBE_CD__" "") } else { print $line } }}# Or for bunx:# def --env --wrapped vibe [...args] {# let out = (bunx @kexi/vibe --eval-dialect nu ...$args)# for line in ($out | lines) {# if ($line | str starts-with "__VIBE_CD__") {# cd ($line | str replace "__VIBE_CD__" "")# } else {# print $line# }# }# }# Add to your $PROFILE (choose one)
# For global install (Homebrew, npm -g, bun -g)function vibe { $out = & vibe.exe --eval-dialect powershell @args; if ($out) { Invoke-Expression ($out -join "`n") } }
# For npx (without global install)function vibe { $out = & npx @kexi/vibe --eval-dialect powershell @args; if ($out) { Invoke-Expression ($out -join "`n") } }# Or for bunx:# function vibe { $out = & bunx @kexi/vibe --eval-dialect powershell @args; if ($out) { Invoke-Expression ($out -join "`n") } }3. Create your first worktree
Section titled “3. Create your first worktree”# Start working on a new featurevibe start feat/my-new-feature
# Your terminal is now in the new worktree!# Make your changes, commit, push, etc.
# When done, clean up the worktreevibe cleanBasic Workflow
Section titled “Basic Workflow”main repository │ ├── vibe start feat/feature-a → repo-feat-feature-a/ │ │ │ └── (work on feature) │ └── vibe clean ←─────────────────────────┘ (returns to main, removes worktree)Next Steps
Section titled “Next Steps”- Installation - Detailed installation instructions
- Shell Setup - Configure your shell
- Configuration - Set up
.vibe.toml