Skip to content

zx0r/nvimx

nvimx opengraph

Stop juggling configs → run Neovim side-by-side in isolation

nvimx demo — run isolated Neovim configs side-by-side


Quick Start

1. Installation
# macOS / Linux (Homebrew)
brew install zx0r/tap/nvimx
# Rust Toolchain (Cargo)
cargo install nvimx
2. Initialization
nvimx setup
3. Shell Integration (Recommended)
nvimx setup shell

0verview

It works as a transparent layer over Neovim:

  • no wrappers, patches, or feature limitations
  • everything runs as if you launched nvim directly
  • configs, plugins, LSPs, DAPs, and CLI flags behave exactly as usual

Each profile is completely independent, enabling reproducible and conflict-free setups

Features

  • profile install from Git or registry
  • sandbox execution (ephemeral environments)
  • environment diagnostics (doctor)
  • registry inspection
  • shell completion
# Install from Git (available)
nvimx install https://github.com/LazyVim/starter lazyvim

# Install from registry (planned)
nvimx install lazyvim

# Set default profile (planned)
nvimx use lazyvim

Usage

# Launch Neovim with a profile
nvimx [PROFILE] [FILES...][-- ARGS...] 

# Manage profiles & environment
nvimx <COMMAND> [ARGS...] 

Arguments:
  [PROFILE]                      # Profile to run (defaults to configured profile)
  [FILES...]                     # Files to open
  [ARGS...]                      # Arguments passed to Neovim (after `--`)

EXAMPLES:
   nvimx                         # Launch with default profile
   nvimx list                    # List available profiles  
   nvimx lazyvim main.py         # Open main.py using the 'python' profile
   nvimx -- -c 'echo "hello"'    # Pass arguments directly to nvim

Commands

Commands:
  list         List all locally installed profiles
  install      Install a new profile from a git repository or registry
  clean        Safely remove data, state, and cache for a profile
  doctor       Check system dependencies and environment health
  setup        Initialize environment, config, and install initial profiles
  sandbox      Run a profile in an isolated environment
  registry     Inspect and manage configured profile registries
  update       Self-update the nvimx binary to the latest version
  completions  Generate auto-completion scripts for your shell

Configuration

  • strong defaults. zero-config
  • if no profile is specified, an interactive picker (fzf) is used automatically
# Optional configuration file
cp config.example.toml ~/.config/nvimx/config.toml
# Default profile (skips fzf when set)
default_profile = "lazyvim"

# Remote registry for profile installation
registry_url = "https://raw.githubusercontent.com/zx0r/nvimx-registry/main/index.json"

Sandbox Mode

# The `sandbox` command executes a profile in a temporary environment
nvimx sandbox lazyvim

[ n v i m x ]

nvimx demo

nvimx lazyvim --headless -c "lua print(vim.fn.stdpath('config'))" +qa

[✓] zero-overhead
[✓] isolated environment
[✓] argv passthrough

you bring args → we don't touch them  
you choose a profile → we don't leak state

that's it... happy coding...