Fast, cross-platform environment version switcher
中文文档 · Architecture · Releases
fnva is a cross-platform environment switcher for Java, Claude Code (CC), and general LLM setups. Written in Rust, it starts instantly, has zero runtime dependencies, and works via shell snippets without background daemons.
- ⚡ Fast & Zero Dependencies: Single static binary.
- 🔄 Session & Global Switching: Per-shell activation and global defaults.
- 🐚 Broad Shell Support: PowerShell, Bash, Zsh, Fish, CMD.
- 🧠 Auto-restore: Opening a new terminal automatically restores your last active environment.
- ☕ Smart Java Management: Scan and dedupe local JDKs.
- 🤖 Unified LLM Setup: Configure LLM API keys in one place.
- Core Architecture (Chinese)
- Roadmap (Chinese)
- Contributing (Chinese)
- Shell Integration Guide
# npm (recommended)
npm install -g fnva
# Cargo
cargo install fnvaOr download from Releases and add to PATH.
- Shell Integration:
eval "$(fnva env env --shell bash)" - Scan Java:
fnva java scan - Switch Java:
fnva java use jdk-17(with shell integration) - Switch CC profile:
fnva cc use glmcc
Config is stored at ~/.fnva/config.toml (Windows: %USERPROFILE%\.fnva\config.toml).
MIT License.