Changelog
All notable changes to vibe are documented here.
v2.2.0
Section titled “v2.2.0”Released: 2026-07-26
- The nushell wrapper now actually works. The previous wrapper could never change your shell’s directory (
nu -crancdin a child process), rejected every flagged invocation such asvibe start --dry-run(missing--wrapped), and could not handle paths containing a single quote. The new wrapper receives the worktree path as plain data, sovibe start/vibe jumpland your nushell session in the right directory — including quoted paths. Action required: replace your pasted wrapper inconfig.nuwith the new snippet fromvibe shell-setup --shell nushell(requires vibe 2.2.0 or later; the old wrapper keeps the old behavior). - The PowerShell wrapper now handles paths containing single quotes or wildcard characters (
[,]) correctly, and no longer errors when a command produces no output (e.g.vibe config). Action required: re-paste the wrapper from the setup docs (requires vibe 2.2.0 or later). - bash, zsh, and fish are unaffected: their wrappers and output are byte-identical to previous releases.
v2.1.1
Section titled “v2.1.1”Released: 2026-07-17
- GitHub Releases no longer include stray
package.jsonandTHIRD-PARTY-LICENSES.mdfiles among the downloadable assets. Release pages now list only the prebuilt binaries and.debpackages, so picking the right download is no longer confusing.
v2.1.0
Section titled “v2.1.0”Released: 2026-06-23
.vibe.tomlfiles inside git submodules are now loaded end-to-end. Trusted submodule configs are read, configs are picked up from inside worktrees (not just the origin checkout), and submodule directories are copied from the correct source so submodule contents are present at the worktree path. If your repository uses submodules, their.vibe.tomlfiles now contribute to the merged configuration as you would expect.
- The progress tree is now shown again during worktree creation. The interactive progress display had regressed and stayed hidden until the operation finished; it now streams as the worktree is created.
v2.0.0
Section titled “v2.0.0”Released: 2026-06-19
- Native Windows (x64) support. Installing
@kexi/vibevia npm on Windows now pulls in the@kexi/vibe-win32-x64binary package and runs the native binary. Copy-on-Write cloning is not available on Windows, so worktree creation falls back to a standard file copy; all commands and behavior otherwise match Linux and macOS.
Changed
Section titled “Changed”- vibe is now a standalone Rust binary instead of a Node.js/Bun application. The npm package (
@kexi/vibe) ships a thin launcher shim that runs the prebuilt binary for your platform, pulled in as a per-platformoptionalDependency. All commands, flags, output, and the SHA-256 trust model are unchanged — your existingeval "$(vibe start ...)"setup and.vibe.tomlfiles keep working exactly as before. This is a major version bump to mark the runtime and distribution overhaul, not because of any change to CLI behavior.
Removed
Section titled “Removed”- Deno / JSR distribution (
deno install jsr:@kexi/vibe) is no longer published. Install via npm, Homebrew, the.debpackage, or a prebuilt binary instead.
vibe start --forcenow honors the flag. Previously it was parsed but ignored; it now skips the confirmation prompts — navigating to an existing branch’s worktree, or overwriting a conflicting worktree for a different branch.vibe start --reuse(andvibe scratch --reuse) now honors the flag. Previously it was parsed but ignored; it now auto-selects “reuse the existing worktree” when the target path conflicts with a different branch (the opposite of--force). Passing both--forceand--reusetogether is rejected as contradictory.vibe scratchnow generates correctly-dated branch names on Windows. Previously the timestamp fell back to a broken date (always year 1970) on the Windows binary; it now produces a validscratch/YYYYMMDD-HHMMSSname.- Hardened the worktree path emitted on stdout against newline injection, matching the existing protection on
cdoutput, so a path containing a newline can no longer inject a second shell command.
v1.8.1
Section titled “v1.8.1”Released: 2026-06-02
- Homebrew-distributed binaries no longer abort at launch with a dyld error on non-Nix hosts. Release binaries are now built with the official Bun toolchain so they don’t depend on
/nix/storedynamic libraries.
v1.8.0
Section titled “v1.8.0”Released: 2026-06-01
- Windows now has a native
robocopycopy strategy. When copy-on-write is unavailable, vibe falls back torobocopyfor faster, more reliable worktree file copies on Windows.
Changed
Section titled “Changed”- Documented how to mount a Btrfs volume inside WSL2 so that copy-on-write copies are enabled on Windows. See Installation.
- Copy failures on Windows now surface the underlying
robocopystdout in the error message, making failed copies easier to diagnose.
v1.7.1
Section titled “v1.7.1”Released: 2026-05-31
Maintenance release that hardens the Nix release pipeline. The flake version is now derived from package.json (a single source of truth) instead of a hardcoded literal, so a release tag can no longer carry a stale version. The post-release flake update was also scoped to leave the pnpm/native tool-version pins untouched — a blanket version rewrite had broken the v1.7.0 source build. No user-facing changes.
v1.7.0
Section titled “v1.7.0”Released: 2026-05-31
- Recipes documentation for integrating vibe with external tools — tmux, cmux, and direnv. See the Recipes overview.
Changed
Section titled “Changed”- The Nix flake’s default package (
nix run github:kexi/vibe,nix profile install github:kexi/vibe) now builds vibe from source for a reproducible install instead of fetching a prebuilt release binary. If you prefer the prebuilt fast path, use the#binaryoutput (e.g.nix run github:kexi/vibe#binary). See Installation → Nix.
v1.6.0
Section titled “v1.6.0”Released: 2026-05-16
- Zsh shell autocompletion for
vibe. Addautoload -Uz compinit && compinitandeval "$(vibe shell-setup --shell zsh --with-completion)"to~/.zshrc(in that order —compinitmust run before theeval) to get tab completion for subcommands, flags, local branch names onvibe start <Tab>, and worktree branch names onvibe jump <Tab>. See Shell Setup andvibe shell-setupfor details.
v1.5.2
Section titled “v1.5.2”Released: 2026-05-16
Maintenance release that recovers v1.5.1. The first CI fix attempt (--force npm@11) still failed because the bundled npm 10.x in Node 22.22 was missing @npmcli/arborist’s promise-retry dependency and could not self-upgrade. This release switches the publish jobs to Node 24, whose bundled npm 11.x already supports OIDC trusted publishing — no self-upgrade needed. v1.5.0 / v1.5.1 user-facing changes (fish shell autocompletion) ship for the first time here.
v1.5.1
Section titled “v1.5.1”Released: 2026-05-16
Maintenance release that recovers v1.5.0. The v1.5.0 tag was cut but never reached the npm registry — the publish workflow failed during npm install -g npm@latest (npm self-upgrade race surfacing as Cannot find module 'promise-retry'). This release pins the upgrade to npm@11 with --force and ships the v1.5.0 content (fish shell autocompletion) for the first time. See the v1.5.0 entry below for the feature description.
v1.5.0
Section titled “v1.5.0”Released: 2026-05-16
- Fish shell autocompletion for
vibe. Runvibe shell-setup --shell fish --with-completion | source(or add the line to~/.config/fish/config.fish) to get tab completion for subcommands, flags, local branch names onvibe start <Tab>, and worktree branch names onvibe jump <Tab>. See Shell Setup andvibe shell-setupfor details.
v1.4.3
Section titled “v1.4.3”Released: 2026-05-12
Maintenance release. Hardens the release and CI pipelines against supply chain attacks informed by recent npm compromise patterns. No user-facing changes.
v1.4.2
Section titled “v1.4.2”Released: 2026-04-29
Maintenance release. Confirms the Nix flake auto-update pipeline runs to completion after the PAT permissions were corrected. No user-facing changes.
v1.4.1
Section titled “v1.4.1”Released: 2026-04-29
Maintenance release. Validates the restored Nix flake auto-update pipeline end-to-end. No user-facing changes.
v1.4.0
Section titled “v1.4.0”Released: 2026-04-29
Changed
Section titled “Changed”- Restored automated Nix flake updates after each release — Nix users will once again get up-to-date
flake.nix/flake.lockondevelopfor every release
v1.3.0
Section titled “v1.3.0”Released: 2026-04-28
vibe scratchcommand — creates a worktree with an auto-generatedscratch/<YYYYMMDD-HHMMSS>branch name for quick experimentationvibe renamecommand — renames the current worktree’s branch and moves its directory in one step, useful for promoting avibe scratchworktree to a real namevibe jumpnow excludes scratch worktrees from non-exact matching to keep transient scratches out of jump suggestions
vibe rename feat/hogenow preserves slashes in branch names (previously sanitized tofeat-hoge)vibe renameis now runnable from secondary worktrees
v1.2.0
Section titled “v1.2.0”Released: 2026-04-27
- Nix installation support — vibe can now be installed via Nix flakes for reproducible installs
v1.1.1
Section titled “v1.1.1”Released: 2026-04-08
- Fix
--forceflag placement in worktree removal command
v1.1.0
Section titled “v1.1.0”Released: 2026-03-08
- Support remote branch checkout in
vibe startvia DWIM (Do What I Mean) - automatically detects and checks out remote branches
v1.0.0
Section titled “v1.0.0”Released: 2026-02-26
Changed
Section titled “Changed”- Remove
vibe copycommand
v0.23.0
Section titled “v0.23.0”Released: 2026-02-26
vibe copycommand to copy files and directories from main worktree using Copy-on-Write- Claude Code worktree hook integration (
--claude-code-worktree-hookmode forstartandcleancommands) WorktreeCreate/WorktreeRemovehook support for Claude Code
- Path validation for
--targetoption - Defensive directory change before worktree removal in hook mode
v0.22.2
Section titled “v0.22.2”Released: 2026-02-13
- Embed native module (vibe-native) in compiled release binaries
- Add direct
.noderequire fallback for Bun compiled binaries
v0.22.1
Section titled “v0.22.1”Released: 2026-02-12
- Enable CoW (Copy-on-Write) native cloning on Bun runtime
v0.22.0
Section titled “v0.22.0”Released: 2026-02-10
- Fuzzy matching support for
jumpcommand (enables matching even with typos or partial input) - MRU (Most Recently Used) sorting for
jumpcommand (recently used worktrees appear first)
v0.21.0
Section titled “v0.21.0”Released: 2026-02-08
vibe shell-setupcommand for automatic shell wrapper generation
- Correct indentation in
startcommand console.log statements
v0.20.0
Section titled “v0.20.0”Released: 2026-02-08
vibe jumpcommand for quick worktree navigation by branch name (supports partial matching, word boundary matching, and interactive selection)vibe homecommand to navigate back to the main worktree
- Shell injection prevention: escape single quotes and special characters in
cdoutput - Success messages now display in green instead of appearing as error output
NO_COLORenvironment variable support for ANSI color output
v0.19.2
Section titled “v0.19.2”Released: 2026-02-08
- Fixed
brew upgradecommand to use fully qualified tap name
v0.19.1
Section titled “v0.19.1”Released: 2026-02-07
- Internal build configuration fix for tsdown compatibility
v0.19.0
Section titled “v0.19.0”Released: 2026-02-07
--trackoption forstartcommand: explicitly enable remote tracking branch creation with--base- Default behavior changed to
--no-trackwhen using--base, preventing automatic remote tracking branch creation
- Homebrew formula no longer conflicts with
vibe-beta, allowing both stable and beta versions to coexist
v0.18.0
Section titled “v0.18.0”Released: 2026-02-02
- Deno/JSR distribution: vibe can now be run directly via
deno run jsr:@kexi/vibe - Beta channel: Homebrew beta formula available as
vibe-betafor early feature testing
v0.17.0
Section titled “v0.17.0”Released: 2026-01-31
- Configurable copy concurrency with
vibe.concurrency.copyconfig option
v0.16.1
Section titled “v0.16.1”Released: 2026-01-26
- Internal build configuration fix for tsdown v0.20.1 compatibility
v0.16.0
Section titled “v0.16.0”Released: 2026-01-26
- Error detection when main worktree has been deleted, with actionable error message
- Native clone support now works correctly with proper import map configuration
v0.15.1
Section titled “v0.15.1”Released: 2026-01-24
- Internal build configuration fix for npm package
v0.15.0
Section titled “v0.15.0”Released: 2026-01-24
--baseoption forvibe startcommand to explicitly specify base branch
- Improved spinner stability by throttling render calls to prevent freezing
v0.14.0
Section titled “v0.14.0”Released: 2026-01-19
- XDG Trash support:
vibe cleannow uses system trash- Linux: XDG Base Directory spec compliant trash
- macOS: Integration with Finder’s Trash
- Improved
vibe cleanidempotency for concurrent execution stability
v0.13.0
Section titled “v0.13.0”Released: 2026-01-18
- Twitter announcement template for release workflow
- Markdown file synchronization rules (_.md / _.ja.md pairs)
vibe-release-new-versionClaude Code command for guided releases
- PR review feedback addressed
- JSR dependencies moved to devDependencies for proper build
- JSR dependencies bundled to fix npx usage without registry config
v0.12.0
Section titled “v0.12.0”Released: 2026-01-18
- Multi-runtime support: Run vibe in Node.js/npm/npx and Bun environments
- RuntimeAbstractionLayer: Unified runtime abstraction for Node.js and Bun
- AppContext dependency injection: Improved testability through DI pattern
Changed
Section titled “Changed”- vibe-native: Migrated from C to Rust (napi-rs) for better safety and maintainability
- vibe-native: Consolidated multiple packages into a single unified package
- Improved native module error handling
- Better Windows detection logic
- Extended mise HTTP timeout for slower connections
- Various e2e test fixes and improvements
v0.9.0
Section titled “v0.9.0”Released: 2026-01-16
- GNU Coding Standards compliant CLI options
--verbose/-V: Enable verbose output--quiet/-q: Suppress non-essential output-nshort alias for--dry-run- Unknown option detection with helpful error messages
- Fast remove for
vibe cleancommand- O(1) instant directory removal by renaming to
.vibe-trash-* - Background cleanup for improved user experience
- Benchmark: 29s → 2s (342K files, 14x faster)
[clean] fast_removeconfig option (enabled by default)
- O(1) instant directory removal by renaming to
Changed
Section titled “Changed”- Improved help text formatting with
errorLogfunction
- Shell injection prevention in
cleancommand - Security improvements for clean operations
v0.8.0
Section titled “v0.8.0”Released: 2026-01-14
vibe upgradecommand to check for updates and show upgrade instructions--dry-runoption forvibe startto preview operations without executing--delete-branch/--keep-branchoptions forvibe cleancommand--force/-foption forvibe cleanto skip confirmation prompts[clean] delete_branchconfig option in.vibe.toml
Changed
Section titled “Changed”- Claude Actions switched from OAuth to API key authentication
- Add
--forceflag when removing worktree with uncommitted changes
v0.7.0
Section titled “v0.7.0”Released: 2026-01-13
- OGP meta tags for SNS preview on documentation site
Changed
Section titled “Changed”- Converted to pnpm workspace with docs CI checks
- Configured minimum release age for supply chain security
vibe cleannow outputs cd command to return to main worktree
v0.6.0
Section titled “v0.6.0”Released: 2026-01-13
- Worktree path customization via external script
- Configure
path_scriptto dynamically determine worktree directory path - Environment variables:
VIBE_REPO_NAME,VIBE_BRANCH_NAME,VIBE_SANITIZED_BRANCH,VIBE_REPO_ROOT
- Configure
Changed
Section titled “Changed”- Unified deno compile commands into deno task
v0.5.2
Section titled “v0.5.2”Released: 2026-01-13
- Added
--allow-ffiflag to all compile commands in CI/release workflows
v0.5.1
Section titled “v0.5.1”Released: 2026-01-13
- Documentation site (Starlight-based)
- GitHub Star button in header
- Windows, Nushell, PowerShell, and Linux installation guides
- Automated documentation deployment via GitHub Actions
Changed
Section titled “Changed”- Parallelized directory copy for improved performance
- Display copy strategy name during file operations
v0.5.0
Section titled “v0.5.0”Released: 2026-01-10
--no-hooksoption to skip hook execution duringvibe start--no-copyoption to skip file copying duringvibe start- GitHub Sponsors and Patreon funding configuration
Changed
Section titled “Changed”- Improved documentation for development workflows
v0.4.0
Section titled “v0.4.0”Released: 2026-01-08
- Copy strategies with performance optimization
- Native clone using FFI (
clonefileon macOS,FICLONEon Linux) - Copy-on-Write (CoW) support for APFS and Btrfs/XFS
- rsync fallback for cross-filesystem copies
- Native clone using FFI (
- Directory copy support with glob patterns
- Progress display improvements with new marker format
Changed
Section titled “Changed”- Refactored CopyService for better performance
- Enhanced progress display with cleaner output
- Resource leaks in CopyService tests
- Empty marker lines in progress display
v0.3.0
Section titled “v0.3.0”Released: 2026-01-02
- Trust system for repository security
- Repositories must be explicitly trusted before running hooks
vibe trustcommand for managing trusted repositories- Security-first approach to prevent malicious hook execution
- Idempotent
vibe start- running on existing worktree reuses it
Changed
Section titled “Changed”- Replaced Japanese UI messages with English for international users
- Improved repository root path normalization
- Repository root normalization issues
v0.2.0
Section titled “v0.2.0”Released: 2025-12-28
- Hook system for automated workflows
pre_start,post_start,pre_clean,post_cleanhooksfilesconfiguration for copying files to worktrees
- Local configuration support (
.vibe.local.toml) vibe configcommand for managing settings
Changed
Section titled “Changed”- Enhanced worktree management
- Improved shell integration
v0.1.0
Section titled “v0.1.0”Released: 2025-12-28
- Initial release
- Basic worktree creation with
vibe start - Worktree cleanup with
vibe clean - Multi-shell support (Bash, Zsh, Fish, Nushell, PowerShell)
.vibe.tomlconfiguration file support