# macOS / Linux (Homebrew)
brew install zx0r/tap/nvimx# Rust Toolchain (Cargo)
cargo install nvimxnvimx setupnvimx setup shellIt 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
- 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# 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 nvimCommands:
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- 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"# The `sandbox` command executes a profile in a temporary environment
nvimx sandbox lazyvimnvimx 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...
