Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
B

bob

> 编程语言
Open source

A version manager for neovim

2.1K stars0 likes1 views
WebsiteGitHub

About

A version manager for neovim

Bob

Struggle to keep your Neovim versions in check? Bob provides an easy way to install and switch versions on any system!

Bob is a cross-platform and easy-to-use Neovim version manager, allowing for easy switching between versions right from the command line.

See in Action

Video tutorial by Marco Peluso

Showcase

Notices

  • 2022-10-29: Moved bob's symbolic link and downloads folder on macos from /Users/user/Library/Application Support to ~/.local/share please make sure to move all of your downloads to the new folder, run bob use <your desired version> and update your PATH

  • 2023-02-13: Bob has recently switched to using a proxy executable for running Neovim executables. To switch from the old method that Bob used, follow these steps:

    1. Remove the current Neovim path from your global $PATH environment variable.
    2. Delete the following directory: On Unix: ~/.local/share/neovim On Windows: C:\Users\<username>\AppData\Local\neovim

    Secondly the name of the downloads directory property in the configuration file has changed. Please refer to the updated list of properties for the new name.

  • 2024-03-04: Due to Neovim's recent MacOS binary changes, bob now supports arm completely, but unfortunately, it comes with some breaking changes specifically for bob's proxy executable. To fix that, follow these steps (which will not be necessary soon):

    1. Remove nvim binary from nvim-bin which is located in the same directory the same as the neovim binaries downloads folder.
    2. Copy your newly downloaded bob binary and put the copy inside of nvim-bin
    3. Rename your bob binary inside nvim-bin to nvim.
  • 2024-05-17: Support for nvim-qt is now deprecated as Neovim no longer supports it in newer releases. If you're currently using nvim-qt, we recommend switching to a different Neovim GUI or using Neovim in the terminal. Please refer to the Neovim documentation for more information on supported GUIs.

  • 2024-05-19: Important notice for users who built Neovim from source using a commit hash before the newest Bob version: Due to recent changes in Bob, these versions will need to be rebuilt. Alternatively, you can manually add a file named full-hash.txt at the root of the directory. This file should contain the full hash of the commit used to build Neovim. This change ensures better tracking and management of versions built from source. We apologize for any inconvenience and appreciate your understanding.

  • 2025-12-30: OpenSSL builds are now fully deprecated due to redundancy and maintenance overhead. Please switch to the standard bob builds.

Requirements

Make sure you don't have Neovim already installed via other ways e.g. a package manager.

Building bob

Make sure rustup is installed.

Building Neovim

For further information refer to the Neovim wiki.

All platforms
  • CMake
  • Git
Windows
  • Visual Studio Build Tools with C++ extension pack
Unix
  • Clang or GCC

MacOS note: follow these instructions

Installation

Install with the bundled script (recommended)

bash
# on Unix
curl -fsSL https://raw.githubusercontent.com/MordechaiHadad/bob/master/scripts/install.sh | bash

# on Windows (PowerShell)
powershell -c "irm https://raw.githubusercontent.com/MordechaiHadad/bob/master/scripts/install.ps1 | iex"

Each script downloads the latest release for your platform and links the bob binary into a user-local bin directory. If the installer warns about your PATH, add the printed directory to make bob callable from any shell.

Install from releases

  1. Download the bob release suitable for your platform bob-{platform}-x86_64.zip
  2. Unzip it
  3. Run it with bob
  4. Linux users can also grab the AppImage artifacts (e.g., bob-linux-x86_64-appimage.zip or bob-linux-arm-appimage.zip) and follow the same unpack-and-run steps.

Install from nightly releases

Nightly releases are built every 72 hours and contain the latest changes from the dev branch. Please note that these are pre-releases and may contain bugs or unstable features. Use them at your own risk.

  1. Go to the Releases page and look for the release tagged with nightly.
  2. Download the bob release suitable for your platform bob-{platform}-x86_64.zip
  3. Unzip it
  4. Run it with bob

Install with pacman

  1. On Arch Linux, you can install bob from the extra repository using pacman: pacman -S bob
  2. Run it with bob

Install from source

  1. cargo install --git https://github.com/MordechaiHadad/bob.git
  2. Run Bob with bob

Install from crates.io

  1. cargo install bob-nvim
  2. Run bob with bob

❓ Usage

A version-string can either be vx.x.x or x.x.x examples: v0.6.1 and 0.6.0


  • bob use |nightly|stable|latest|<version-string>|<commit-hash>|

--no-install flag will prevent bob from auto invoking install command when using use

Switch to the specified version, by default will auto-invoke install command if the version is not installed already


  • bob run |nightly|stable|latest|<version-string>|<commit-hash>| [args...]

Run a specific installed Neovim version with the provided arguments. [args...] are passed directly to the Neovim instance.

Example: bob run nightly --clean my_file.txt


  • bob install |nightly|stable|latest|<version-string>|<commit-hash>|

Install the specified version, can also be used to update out-of-date nightly version.


  • bob sync

If Config::version_sync_file_location is set, the version in that file will be parsed and installed.


  • bob uninstall [|nightly|stable|latest|<version-string>|<commit-hash>|]

Uninstall the specified version. If no version is specified a prompt is used to select all the versions to be uninstalled.


  • bob rollback

Rollback to an existing nightly rollback


  • bob erase

Erase any change bob ever made including Neovim installation, Neovim version downloads and registry changes.


  • bob list

List all installed and used versions.


  • bob complete bash|elvish|fish|powershell|zsh|nushell

Generate shell completion.


  • bob update |nightly|stable|--all|

Update existing version, can specify either a version or the flag --all


  • bob list-remote

List all remote neovim versions available for download.


⚙ Configuration

This section is a bit more advanced and thus the user will have to do the work himself since bob doesn't do that.

Bob's configuration file can be written in either JSON or TOML format. The file should be located at config_dir/bob/config.json or config_dir/bob/config.toml respectively. However, the location of the configuration file can be customized as explained below, to be more specific:

On Linux

/home/user/.config/bob/config.json|toml

On Windows

C:\Users\\user\AppData\Roaming\bob\config.json|toml

On MacOS

/Users/user/Library/Application Support/bob/config.json|toml

Increasing Github rate-limit

It is possible to use GITHUB_TOKEN to prevent rate-limit for API calls. There are two ways to do it:

  • You can prepend any of the bob commands with GITHUB_TOKEN=<your token>
bash
GITHUB_TOKEN=<some token> bob update -a
  • perform export GITHUB_TOKEN=<your token> and then run bob commands.
bash
export GITHUB_TOKEN=<some token>
bob update -a

Custom Location

Bob's config file location can be configured by using an environment variable called $BOB_CONFIG. Example: export BOB_CONFIG=/path/to/config/config.json|toml

Syntax

Property Description Default Value
enable_nightly_info Will show new commits associated with new nightly release if enabled true
enable_release_build Compile neovim nightly or a certain hash version as a release build (slightly improved performance, no debug info) false
downloads_location The folder in which neovim versions will be downloaded to, bob will error if this option is specified but the folder doesn't exist unix: /home/<username>/.local/share/bob, windows: C:\Users\<username>\AppData\Local\bob
installation_location The path in which the proxied neovim installation will be located in unix: /home/<username>/.local/share/bob/nvim-bin, windows: C:\Users\<username>\AppData\Local\bob\nvim-bin
version_sync_file_location The path to a file that will hold the neovim version string, useful for config version tracking, bob will error if the specified file is not a valid file path Disabled by default
rollback_limit The amount of rollbacks before bob starts to delete older ones, can be up to 255 3
github_mirror Specify the github mirror to use instead of https://github.com, example: https://mirror.ghproxy.com Disabled by default
add_neovim_binary_to_path Whether bob should automatically add the neovim proxy to the system PATH. If disabled, you'll need to manually add it Prompts user on first use
ignore_running_instances If true, bob will block install, update, sync, uninstall, erase, rollback, and use commands while Neovim is running. If false, these actions are allowed even if Neovim is running. false

Example

…

Shell Completion

  • Bash

Completion files are commonly stored in /etc/bash_completion.d/ for system-wide commands, but can be stored in ~/.local/share/bash-completion/completions for user-specific commands. Run the command:

bash
mkdir -p ~/.local/share/bash-completion/completions
bob complete bash >> ~/.local/share/bash-complet

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Rustcommand-linehacktoberfestneovimneovim-version-manager

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言