Skip to content

Changelog

All notable changes to vibe are documented here.

Released: 2026-07-26

  • The nushell wrapper now actually works. The previous wrapper could never change your shell’s directory (nu -c ran cd in a child process), rejected every flagged invocation such as vibe start --dry-run (missing --wrapped), and could not handle paths containing a single quote. The new wrapper receives the worktree path as plain data, so vibe start / vibe jump land your nushell session in the right directory — including quoted paths. Action required: replace your pasted wrapper in config.nu with the new snippet from vibe 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.

Released: 2026-07-17

  • GitHub Releases no longer include stray package.json and THIRD-PARTY-LICENSES.md files among the downloadable assets. Release pages now list only the prebuilt binaries and .deb packages, so picking the right download is no longer confusing.

Released: 2026-06-23

  • .vibe.toml files 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.toml files 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.

Released: 2026-06-19

  • Native Windows (x64) support. Installing @kexi/vibe via npm on Windows now pulls in the @kexi/vibe-win32-x64 binary 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.
  • 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-platform optionalDependency. All commands, flags, output, and the SHA-256 trust model are unchanged — your existing eval "$(vibe start ...)" setup and .vibe.toml files 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.
  • Deno / JSR distribution (deno install jsr:@kexi/vibe) is no longer published. Install via npm, Homebrew, the .deb package, or a prebuilt binary instead.
  • vibe start --force now 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 (and vibe 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 --force and --reuse together is rejected as contradictory.
  • vibe scratch now 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 valid scratch/YYYYMMDD-HHMMSS name.
  • Hardened the worktree path emitted on stdout against newline injection, matching the existing protection on cd output, so a path containing a newline can no longer inject a second shell command.

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/store dynamic libraries.

Released: 2026-06-01

  • Windows now has a native robocopy copy strategy. When copy-on-write is unavailable, vibe falls back to robocopy for faster, more reliable worktree file copies on Windows.
  • 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 robocopy stdout in the error message, making failed copies easier to diagnose.

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.


Released: 2026-05-31

  • Recipes documentation for integrating vibe with external tools — tmux, cmux, and direnv. See the Recipes overview.
  • 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 #binary output (e.g. nix run github:kexi/vibe#binary). See Installation → Nix.

Released: 2026-05-16

  • Zsh shell autocompletion for vibe. Add autoload -Uz compinit && compinit and eval "$(vibe shell-setup --shell zsh --with-completion)" to ~/.zshrc (in that order — compinit must run before the eval) to get tab completion for subcommands, flags, local branch names on vibe start <Tab>, and worktree branch names on vibe jump <Tab>. See Shell Setup and vibe shell-setup for details.

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.


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.


Released: 2026-05-16

  • Fish shell autocompletion for vibe. Run vibe 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 on vibe start <Tab>, and worktree branch names on vibe jump <Tab>. See Shell Setup and vibe shell-setup for details.

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.


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.


Released: 2026-04-29

Maintenance release. Validates the restored Nix flake auto-update pipeline end-to-end. No user-facing changes.


Released: 2026-04-29

  • Restored automated Nix flake updates after each release — Nix users will once again get up-to-date flake.nix / flake.lock on develop for every release

Released: 2026-04-28

  • vibe scratch command — creates a worktree with an auto-generated scratch/<YYYYMMDD-HHMMSS> branch name for quick experimentation
  • vibe rename command — renames the current worktree’s branch and moves its directory in one step, useful for promoting a vibe scratch worktree to a real name
  • vibe jump now excludes scratch worktrees from non-exact matching to keep transient scratches out of jump suggestions
  • vibe rename feat/hoge now preserves slashes in branch names (previously sanitized to feat-hoge)
  • vibe rename is now runnable from secondary worktrees

Released: 2026-04-27

  • Nix installation support — vibe can now be installed via Nix flakes for reproducible installs

Released: 2026-04-08

  • Fix --force flag placement in worktree removal command

Released: 2026-03-08

  • Support remote branch checkout in vibe start via DWIM (Do What I Mean) - automatically detects and checks out remote branches

Released: 2026-02-26

  • Remove vibe copy command

Released: 2026-02-26

  • vibe copy command to copy files and directories from main worktree using Copy-on-Write
  • Claude Code worktree hook integration (--claude-code-worktree-hook mode for start and clean commands)
  • WorktreeCreate / WorktreeRemove hook support for Claude Code
  • Path validation for --target option
  • Defensive directory change before worktree removal in hook mode

Released: 2026-02-13

  • Embed native module (vibe-native) in compiled release binaries
  • Add direct .node require fallback for Bun compiled binaries

Released: 2026-02-12

  • Enable CoW (Copy-on-Write) native cloning on Bun runtime

Released: 2026-02-10

  • Fuzzy matching support for jump command (enables matching even with typos or partial input)
  • MRU (Most Recently Used) sorting for jump command (recently used worktrees appear first)

Released: 2026-02-08

  • vibe shell-setup command for automatic shell wrapper generation
  • Correct indentation in start command console.log statements

Released: 2026-02-08

  • vibe jump command for quick worktree navigation by branch name (supports partial matching, word boundary matching, and interactive selection)
  • vibe home command to navigate back to the main worktree
  • Shell injection prevention: escape single quotes and special characters in cd output
  • Success messages now display in green instead of appearing as error output
  • NO_COLOR environment variable support for ANSI color output

Released: 2026-02-08

  • Fixed brew upgrade command to use fully qualified tap name

Released: 2026-02-07

  • Internal build configuration fix for tsdown compatibility

Released: 2026-02-07

  • --track option for start command: explicitly enable remote tracking branch creation with --base
  • Default behavior changed to --no-track when using --base, preventing automatic remote tracking branch creation
  • Homebrew formula no longer conflicts with vibe-beta, allowing both stable and beta versions to coexist

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-beta for early feature testing

Released: 2026-01-31

  • Configurable copy concurrency with vibe.concurrency.copy config option

Released: 2026-01-26

  • Internal build configuration fix for tsdown v0.20.1 compatibility

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

Released: 2026-01-24

  • Internal build configuration fix for npm package

Released: 2026-01-24

  • --base option for vibe start command to explicitly specify base branch
  • Improved spinner stability by throttling render calls to prevent freezing

Released: 2026-01-19

  • XDG Trash support: vibe clean now uses system trash
    • Linux: XDG Base Directory spec compliant trash
    • macOS: Integration with Finder’s Trash
  • Improved vibe clean idempotency for concurrent execution stability

Released: 2026-01-18

  • Twitter announcement template for release workflow
  • Markdown file synchronization rules (_.md / _.ja.md pairs)
  • vibe-release-new-version Claude 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

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
  • 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

Released: 2026-01-16

  • GNU Coding Standards compliant CLI options
    • --verbose / -V: Enable verbose output
    • --quiet / -q: Suppress non-essential output
    • -n short alias for --dry-run
    • Unknown option detection with helpful error messages
  • Fast remove for vibe clean command
    • 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_remove config option (enabled by default)
  • Improved help text formatting with errorLog function
  • Shell injection prevention in clean command
  • Security improvements for clean operations

Released: 2026-01-14

  • vibe upgrade command to check for updates and show upgrade instructions
  • --dry-run option for vibe start to preview operations without executing
  • --delete-branch / --keep-branch options for vibe clean command
  • --force / -f option for vibe clean to skip confirmation prompts
  • [clean] delete_branch config option in .vibe.toml
  • Claude Actions switched from OAuth to API key authentication
  • Add --force flag when removing worktree with uncommitted changes

Released: 2026-01-13

  • OGP meta tags for SNS preview on documentation site
  • Converted to pnpm workspace with docs CI checks
  • Configured minimum release age for supply chain security
  • vibe clean now outputs cd command to return to main worktree

Released: 2026-01-13

  • Worktree path customization via external script
    • Configure path_script to dynamically determine worktree directory path
    • Environment variables: VIBE_REPO_NAME, VIBE_BRANCH_NAME, VIBE_SANITIZED_BRANCH, VIBE_REPO_ROOT
  • Unified deno compile commands into deno task

Released: 2026-01-13

  • Added --allow-ffi flag to all compile commands in CI/release workflows

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
  • Parallelized directory copy for improved performance
  • Display copy strategy name during file operations

Released: 2026-01-10

  • --no-hooks option to skip hook execution during vibe start
  • --no-copy option to skip file copying during vibe start
  • GitHub Sponsors and Patreon funding configuration
  • Improved documentation for development workflows

Released: 2026-01-08

  • Copy strategies with performance optimization
    • Native clone using FFI (clonefile on macOS, FICLONE on Linux)
    • Copy-on-Write (CoW) support for APFS and Btrfs/XFS
    • rsync fallback for cross-filesystem copies
  • Directory copy support with glob patterns
  • Progress display improvements with new marker format
  • Refactored CopyService for better performance
  • Enhanced progress display with cleaner output
  • Resource leaks in CopyService tests
  • Empty marker lines in progress display

Released: 2026-01-02

  • Trust system for repository security
    • Repositories must be explicitly trusted before running hooks
    • vibe trust command for managing trusted repositories
    • Security-first approach to prevent malicious hook execution
  • Idempotent vibe start - running on existing worktree reuses it
  • Replaced Japanese UI messages with English for international users
  • Improved repository root path normalization
  • Repository root normalization issues

Released: 2025-12-28

  • Hook system for automated workflows
    • pre_start, post_start, pre_clean, post_clean hooks
    • files configuration for copying files to worktrees
  • Local configuration support (.vibe.local.toml)
  • vibe config command for managing settings
  • Enhanced worktree management
  • Improved shell integration

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.toml configuration file support