fnva 0.0.32

跨平台环境切换工具,支持 Java 和 LLM 环境配置
Documentation

fnva - Fast Environment Version Alter

fnva 是一个现代化的跨平台环境管理工具,支持 Java、Claude Code (CC) 和 LLM 环境的快速切换与管理。它采用 Rust 编写,具有高性能、零依赖和即时响应的特点。

✨ 核心特性

  • ⚡ 高性能:基于 Rust 构建,启动速度极快。
  • ☕ Java 环境管理:智能扫描、版本识别、快速切换 JDK。
  • 🤖 Claude Code (CC) 支持:专为 Claude Code 设计的多环境切换(支持 GLM-4, AnyCC, Kimi 等)。
  • 🧠 LLM 环境配置:统一管理 OpenAI, Anthropic, Local LLM 等 API 配置。
  • 🐚 多 Shell 支持:完美支持 PowerShell, Bash, Zsh, Fish, CMD。
  • 🔄 自动加载:Shell 启动时自动应用默认环境。
  • 🔍 智能扫描:自定义路径扫描,自动去重。

🚀 快速开始

1. 安装

方式一:使用 NPM (推荐)

npm install -g fnva

方式二:下载二进制文件

前往 Releases 页面 下载对应系统的二进制文件,解压并添加到系统的 PATH 环境变量中。

方式三:源码编译

git clone https://github.com/Protagonistss/fnva.git

cd fnva

cargo build --release

# 产物位于 target/release/fnva (或 fnva.exe)

2. 初始化 (Shell 集成)

为了启用环境自动加载和切换功能,请根据您的 Shell 配置集成脚本。

PowerShell:

# 添加到 $PROFILE
fnva env env --shell powershell | Out-String | Invoke-Expression

Bash / Zsh:

# 添加到 ~/.bashrc 或 ~/.zshrc

eval "$(fnva env env --shell bash)"

# 或 zsh

eval "$(fnva env env --shell zsh)"

Fish:

# 添加到 ~/.config/fish/config.fish
fnva env env --shell fish | source

📖 使用指南

☕ Java 环境管理

fnva 可以扫描并管理系统中的 JDK 版本。

  • 扫描环境
    fnva java scan
    
    
  • 列出环境
    fnva java list
    
    
  • 切换环境 (当前会话)
    # PowerShell
    
    fnva java use jdk-17 | Invoke-Expression
    
    
    # Bash/Zsh
    
    eval "$(fnva java use jdk-17)"
    
    
  • 设置默认环境 (全局生效)
    fnva java default jdk-17
    
    
  • 手动添加环境
    fnva java add --name jdk-8 --home "C:\Java\jdk1.8.0" --description "Legacy JDK"
    
    

🤖 Claude Code (CC) 环境

专为 Claude Code 工具链设计的环境切换功能,支持配置不同的 API 端点和密钥。

  • 查看环境列表

    fnva cc list
    
    
  • 添加 CC 环境

    示例:添加 GLM-4 兼容环境

    fnva cc add glmcc '{
      "provider": "anthropic",
      "api_key": "your-api-key",
      "base_url": "https://open.bigmodel.cn/api/anthropic",
      "model": "glm-4.6",
      "description": "智谱 GLM-4"
    }'
    
    
  • 切换 CC 环境

    # PowerShell
    
    fnva cc use glmcc | Invoke-Expression
    
    
    # Bash/Zsh
    
    eval "$(fnva cc use glmcc)"
    
    

    此操作会设置 ANTHROPIC_API_KEY, ANTHROPIC_BASE_URL 等必要环境变量。

  • 常用预设

    • glmcc: 智谱 GLM-4
    • anycc: AnyCC 代理
    • kimicc: Moonshot Kimi

🧠 LLM 环境管理

统一管理各类 LLM API 密钥和配置。

  • 添加环境
    fnva llm add --name openai-dev --provider openai --api-key "sk-..." --model gpt-4
    
    
  • 切换环境
    # PowerShell
    
    fnva llm use openai-dev | Invoke-Expression
    
    

⚙️ 配置说明

首次运行后,配置文件会自动创建。

  • 路径:
    • Windows: ~/.fnva/config.toml
    • macOS/Linux: ~/.fnva/config.toml

配置文件示例

# ~/.fnva/config.toml



# 自定义 Java 扫描路径

custom_java_scan_paths = [

    "D:\\Environment\\Java",

    "/opt/java"

]



# Java 环境定义

[[java_environments]]

name = "jdk-21"

java_home = "C:\\Program Files\\Java\\jdk-21"

description = "Oracle JDK 21"



# CC 环境定义

[[cc_environments]]

name = "glmcc"

provider = "anthropic"

api_key = "sk-..."

base_url = "https://open.bigmodel.cn/api/anthropic"

model = "glm-4.6"


🛠️ 常用命令速查

命令 说明
fnva env env 生成 Shell 初始化脚本 (用于配置 Shell 环境加载)
fnva <type> list 列出指定类型的所有环境 (type: java/cc/llm)
fnva <type> use <name> 生成切换环境的脚本 (需执行输出内容)
fnva <type> current 查看当前激活的环境
fnva <type> default <name> 查看或设置默认环境 (仅 java/cc)
fnva <type> remove <name> 删除环境配置
fnva java scan 扫描本机 Java 环境
fnva config sync 同步/更新配置文件结构

📄 许可证

MIT License