https://github.com/protagonistss/fnva
Management environment Java、Maven、Node、LLM
https://github.com/protagonistss/fnva
cc env java llm maven node
Last synced: 2 months ago
JSON representation
Management environment Java、Maven、Node、LLM
- Host: GitHub
- URL: https://github.com/protagonistss/fnva
- Owner: Protagonistss
- License: mit
- Created: 2021-11-23T02:26:07.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-12-24T10:34:28.000Z (6 months ago)
- Last Synced: 2025-12-26T00:58:51.262Z (6 months ago)
- Topics: cc, env, java, llm, maven, node
- Language: Rust
- Homepage:
- Size: 4.24 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
# fnva - Fast Environment Version Alter
[](https://www.npmjs.com/package/fnva) [](https://crates.io/crates/fnva) [](LICENSE)
[中文文档](README_zh.md) · [Full English](README_en.md) · [Docs](docs/)
Cross-platform environment switcher for Java, Claude Code (CC), and LLM setups. Rust single binary with fast startup and zero runtime dependencies.
## Install
- npm: `npm install -g fnva`
- Cargo: `cargo install fnva`
- Binary: download from [Releases](https://github.com/Protagonistss/fnva/releases) and add to `PATH`.
## Quick start
- Init shell (Bash/Zsh): `eval "$(fnva env env --shell bash)"`
PowerShell: `fnva env env --shell powershell | Out-String | Invoke-Expression`
Fish: `fnva env env --shell fish | source`
- Scan Java: `fnva java scan`
- Switch Java for current session: `fnva java use jdk-17` (with shell integration)
- Switch CC profile: `fnva cc use glmcc` (with shell integration)
- New terminals auto-restore your last active environment
## What it does
- Manages multiple Java, CC, and generic LLM configurations.
- Generates shell snippets to activate environments per session or by default.
- **Auto-restore** — new terminals automatically restore the last active CC/Java environment.
- Stores config at `~/.fnva/config.toml` (Windows: `%USERPROFILE%\.fnva\config.toml`).
- Ships as a single binary; no background daemon.
## Build/test locally
```
cargo fmt && cargo clippy --all-targets -- -D warnings
cargo test
cargo build --release
```
For platform bundles: `npm run build:platforms`