Profile
Back to NewsBack
GitHub Trending 8 min
Reader Mode
hquip/Vaelen: vsm — 多语言版本管理器

hquip/Vaelen: vsm — 多语言版本管理器

10 hours ago

vsm — 多语言版本管理器

vsm(Versatile Versions Manager)用一套工具统一管理 Go / Node / Java / Python / Zig / Deno / Bun 等多语言运行环境的安装、版本切换与激活。设计对标 asdf / mise / vfox,核心追求 全链路零 CGO 的 Go 单体: 一键交叉编译全平台、单二进制分发、内置版本切换。

CLI 为纯标准库实现、零外部依赖,内置 78 种语言/工具:其中 17 种可直接安装
(go node java python zig deno bun gleam vlang kotlin tinygo nushell cmake ninja typst just uv),
其余 50+ 种支持 识别与版本切换(涵盖 rust/dart/php/dotnet/elixir/swift/scala/elm/purescript/lean/solidity/maven/gradle/haskell/r/vala 等;
下载源可按需在 manifest 中补充即变为可安装)。另支持 ~/.vsm/plugins/*.json 无限扩展、
vsm detect 双路探测系统已装版本(PATH + 环境变量)、vsm adopt 一键纳管——不止管"自己装的",更能接管机器上"已有的"。
打通 install / use / list / current / which / exec 主流程。
跨平台桌面 GUI(gui/,Wails v2;Windows / macOS / Linux):语言列表与安装/卸载、系统版本检测与一键纳管、
镜像切换、网络代理设置、安装进度条、当前目录 local 设置、一键写入用户级 PATH。
macOS 版为 Universal 通用二进制(Apple Silicon + Intel),隐藏式标题栏 + 原生菜单,内置 CLI,一个 .app 开箱即用。

v1.1.1 数据库实例与已有环境修复

  • 数据库版本切换:PostgreSQL、MySQL、MariaDB、Redis、Valkey,支持 Docker 官方镜像和已安装原生程序;GUI 左侧新增「数据库版本 / 实例」。
  • 独立数据:每个实例、版本独立保存数据,支持启动、停止、切换、日志、连接信息和客户端执行;切换失败尝试恢复旧版本。
  • 全局切换:修复旧 shim 和终端 PATH 优先级导致的无效切换,显示全局设置、项目覆盖和实际命令来源,补齐终端激活指引。
  • 已有环境:按工具准确扫描,支持手动添加路径,识别已有 Conda 环境及 Maven 完整安装,保留环境内原有依赖。
  • 日志时间:CLI 和 GUI 按本地时区显示,JSON 与导出保留 UTC。
vsm db use postgres 17-alpine --name dev --port 15432
vsm db start dev
vsm db switch dev 18-alpine
vsm db list --json

数据库切换会短暂重启服务,新版本使用独立数据;跨版本数据迁移需要另行备份、导入。原生方式需要完整的服务端与客户端程序;Docker 方式需要已启动的 Docker。详见数据库说明和发布说明。

下载 v1.1.1 正式版;已有版本可运行 vsm update --gui 同步更新 CLI 和 GUI。

v1.1.0 项目工作台

新增可复现工具链与项目自动化,CLI、GUI、MCP 共用核心:

  • 工具链锁定:vsm.lock 固定各平台的版本、安装定义与发布方摘要,install --locked / run --locked 拒绝静默使用不同构建。
  • 项目配置:vsm.json 管理工具、dotenv、项目变量和命名任务;本机内容信任在配置变更后失效。
  • 任务执行:依赖图、并行、超时/取消、退出码透传和输入/输出内容缓存。
  • GUI 工作台:编辑配置、锁定和安装、运行/停止任务、实时输出、工具目录与 GitHub 来源添加。
  • 安装来源:通用 GitHub 发布包及原生可执行文件,唯一平台匹配与官方 SHA256;Temurin 精确构建、Zulu、Zig 官方摘要。
  • AI:14 个 MCP 工具,其中 7 个只读;支持锁定工具与受信任任务,不能自行授予信任。
  • 迁移与安装:从 mise 版本 JSON 预览导入;Windows/Unix 安装脚本校验 SHA256 并保留旧程序。
vsm project init
vsm project configure
vsm lock
vsm install --locked
vsm project trust
vsm tasks run test --locked

先检查生成的配置,再执行 trust。具体能力与边界见项目工作台说明。

设计要点

  • 三大职责:install(装版本)/ resolve(选版本)/ activate(让命令生效)。
  • 多版本隔离:每个版本独立存放在 ~/.vsm/installs//,切换只改“指针”,不重装。
  • 版本解析优先级(高 → 低):
1. 环境变量 VSM__VERSION(如 VSM_GO_VERSION=1.22) 2. 当前目录向上逐级查找的 .tool-versions,以及各生态惯用版本文件(同目录内 .tool-versions 优先): .nvmrc / .node-version、.python-version、.ruby-version、.java-version、.go-version、 .sdkmanrc,及构建文件 go.mod(go x.y)、package.json(engines.node)、 pyproject.toml(requires-python)、Gemfile(ruby)、runtime.txt 3. 全局 ~/.vsm/.tool-versions
  • 激活机制:PATH 注入(shell hook)为主 + shim 兜底(IDE/CI 等无 hook 环境)。
  • 配置格式:兼容 asdf 的 .tool-versions。
  • 插件化:核心不含语言知识,新增语言只需实现 plugin.Plugin 接口。

目录结构

.
├── main.go                      # 入口
├── go.mod
└── internal/
    ├── cli/                     # 命令行界面与子命令分发
    │   ├── app.go
    │   └── commands.go
    ├── core/                    # 核心引擎(前端 CLI/TUI/GUI 共用)
    │   ├── paths.go             # ~/.vsm 磁盘布局
    │   ├── archive.go           # tar.gz / zip 解压(含 zip-slip 防护)
    │   ├── installer.go         # 下载(跟随重定向)+ 解压 + 安装
    │   ├── registry.go          # 已装版本索引(支持 junction/符号链接)
    │   ├── resolver.go          # 版本解析与匹配
    │   ├── activator.go         # which/exec、shim、shell hook
    │   └── detect.go            # 探测系统 PATH/环境变量已装版本
    ├── config/
    │   └── toolversions.go      # .tool-versions 读写
    └── plugin/                  # 语言插件(各实现 Plugin 接口)
        ├── plugin.go            # Plugin 接口
        ├── registry.go          # 插件注册表
        ├── util.go              # HTTP / GitHub releases / 版本比较工具
        ├── golang.go            # go     (go.dev/dl)
        ├── node.go              # node   (nodejs.org/dist)
        ├── java.go              # java   (Adoptium Temurin,端点 302 重定向)
        ├── python.go            # python (python-build-standalone,免编译)
        ├── zig.go               # zig    (ziglang.org/index.json)
        ├── deno.go              # deno   (GitHub releases)
        ├── bun.go               # bun    (GitHub releases)
        ├── manifest.go          # 声明式 manifest 引擎(数据驱动 + 外部加载)
        └── manifests/           # 内置 manifest(gleam / vlang / kotlin …)

gui/ # 跨平台桌面 GUI(Wails v2:Windows / macOS / Linux) ├── main.go app.go wails.json └── frontend/dist/{index.html, style.css, app.js}

构建

go build -o vsm .        # Linux/macOS
go build -o vsm.exe .    # Windows

CLI 无任何第三方依赖。交叉编译(得益于零 CGO,一键出全平台):

GOOS=linux   GOARCH=amd64 go build -o vsm .
GOOS=darwin  GOARCH=arm64 go build -o vsm .
GOOS=windows GOARCH=amd64 go build -o vsm.exe .

GUI 各平台构建 —— CLI 可零 CGO 一键交叉编译,但 GUI 用 Wails:macOS/Linux 依赖系统 WebView + CGO,必须在对应平台本地编译(不能从 Windows 交叉编译);Windows GUI 用 go-webview2,免 CGO:

# Windows(免 CGO,无需 wails CLI)
go build -tags production -ldflags "-H windowsgui" -o vsm-gui.exe ./gui
# macOS(在 Mac 上,需 Xcode 命令行工具)
CGO_ENABLED=1 go build -tags production -o vsm-gui ./gui

Linux(需 GTK3 + WebKit2GTK 开发库)

sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev CGO_ENABLED=1 go build -tags production -o vsm-gui ./gui

macOS GUI

Release 提供 Universal 通用版 vsm-gui-macos-universal.zip(一个 .app 同时支持 Apple Silicon 与 Intel Mac), 已做 ad-hoc 签名。首次打开如提示「无法验证开发者」:右键 VSM.app → 打开,或执行

xattr -dr com.apple.quarantine /Applications/VSM.app

VSM.app 内置了 vsm CLI(VSM.app/Contents/MacOS/vsm),拖到「应用程序」即可使用; 点界面顶部「⚡ 激活PATH」会把激活语句写进 ~/.zshrc,之后新开的终端里 go / node 等即按目录自动切换。 想在终端直接敲 vsm,可再建一个软链:

sudo ln -sf /Applications/VSM.app/Contents/MacOS/vsm /usr/local/bin/vsm

自行打包(需在 Mac 上,产出与 Release 相同的通用版 zip):

bash scripts/package-macos.sh 1.1.1 dist
打 v* tag 即可由 GitHub Actions 在 Windows / macOS / Linux 三个 runner 上分别本地编译,
自动产出全平台 CLI + GUI 并发布到 Release(见 .github/workflows/release.yml)。

命令

| 命令 | 说明 | |------|------| | vsm install [version] | 安装某版本(省略或 latest 装最新稳定版;支持模糊版本如 20) | | vsm uninstall | 卸载某版本 | | vsm use [-g] | 设为当前目录版本(写 .tool-versions);-g 设为全局 | | vsm list [tool] | 列出已安装版本(* 为当前生效) | | vsm list-all | 列出可安装的远端版本 | | vsm current [--all] | 显示已启用工具的版本及来源;--all 包含未启用项 | | vsm context [--json] [--check] | Agent/AI 只读版本上下文:项目要求、解析/已激活版本、冲突和建议命令 | | vsm run [--install-missing] -- [args...] | 自动采用项目版本执行命令;可补装缺失工具,补装必须校验 SHA256 | | vsm project init [--mode local\|versions\|docker] [--image 镜像] | 一个项目一个环境,默认本地隔离 | | vsm project status [--json] | 查看项目环境和隔离模式 | | vsm mcp [serve\|config] --project <目录> [--read-only] | MCP 服务或 AI 客户端配置,固定绑定项目;config --client <客户端> 输出对应 JSON / TOML | | vsm which | 打印当前版本主命令的完整路径 | | vsm exec [args...] | 在当前解析版本环境下执行工具主命令 | | vsm exec -- [args...] | 在该工具环境下执行任意命令(如 npm) | | vsm reshim | 为已安装工具重新生成 shim | | vsm activate | 输出 shell 激活脚本(含进目录自动切换 hook) | | vsm env [shell] | 输出当前目录应生效的环境(供 hook 调用,一般不手动用) | | vsm detect | 探测系统 PATH / 环境变量中已安装的语言运行时及版本 | | vsm adopt [--all] [ver] | 纳管系统已装版本(链接进 vsm,可 use/卸载,不动原目录) | | vsm mirror [cn\|off] | 设置下载镜像(cn 国内加速 go/node/github / off 关闭) | | vsm proxy [url\|off\|system] | 设置网络代理(http/https/socks5;off 强制直连 / system 跟随系统环境变量) | | vsm path-init | Windows 写入用户级 PATH 和 PowerShell 启动钩子;macOS / Linux 写入当前 shell 的启动配置 | | vsm doctor [--json] | 环境体检:shims 是否在 PATH、是否被同名命令抢占、PATH 重复、shim 残留、配置异常 | | vsm shell | 打开临时子 shell 使用某版本(不写任何配置,exit 即恢复) | | vsm completion | 输出 bash / zsh / fish / powershell 补全脚本 | | vsm size [tool] [--json] | 统计各版本占用的磁盘空间 | | vsm clean | 清理下载缓存(安装完成后的压缩包) | | vsm help [command [subcommand]] | 查看总览或指定命令的详细用法、选项与示例;支持命令别名 | | vsm update [--check] [--gui] | 从官方 GitHub 校验并更新 VSM;--check 只检查,--gui 同步相邻 GUI |

更新 VSM

从 v1.0.5 起,CLI 与 GUI 可从官方 GitHub Release 更新 VSM 自身:

vsm update --check
vsm update
vsm update --gui

GUI 左下角提供「检查 VSM 更新」。Windows / Linux GUI 更新时同时更新同目录的 CLI;macOS 应用内会整体更新 VSM.app,验证签名与内置 CLI。更新完成后重新启动程序。所有资源必须通过官方 SHA256 校验,替换失败时尝试恢复旧文件,不改项目和语言安装。

旧于 v1.0.5 的程序尚无更新命令,需要先从 Releases 手动升级一次。程序所在目录需可写;macOS 应用请先移出只读磁盘映像。仍在使用的旧程序可能保留备份路径,重启后可按提示删除。详细参数见 vsm help update。

镜像、代理与终端显示

vsm mirror set github https://mirror.example/
vsm mirror set github-api https://api-mirror.example/
vsm mirror set node https://mirror.example/node/
vsm mirror set npm https://registry.example/
vsm mirror list --json
vsm proxy socks5h://127.0.0.1:1080
vsm proxy --json
vsm current --all

以上镜像域名为格式示例,请替换为自己的可用服务。github 将完整原始 URL 附加到代理前缀;github-api、go、node、npm 替换对应基地址。npm 也通过 vsm run 的子进程环境设置 registry,不改 .npmrc。vsm mirror off 禁用所有镜像,cn 使用内置规则,custom 使用自定义规则;可用 vsm mirror unset <源> 删除单项。发布方摘要和 VSM 更新始终走官方来源,不接受镜像提供的 SHA256。

代理支持 http / https / socks5 / socks5h;不带参数查看当前配置。网络设置保存到全局 VSM 数据目录,隔离项目中的 CLI 和 GUI 同样生效。VSM_PROXY / VSM_MIRROR 环境变量优先。current 在可用终端中显示彩色工具/版本,重定向及 JSON 输出不插入颜色;NO_COLOR 或 TERM=dumb 禁用颜色。

list / list-all / current / detect / doctor / size / clean / context 均支持 --json,便于编辑器插件与 CI 集成。 vsm exec 会原样透传子进程退出码,可直接用于 vsm exec go test ./... && deploy 这类脚本。

查看单个命令的详细帮助:

vsm help install
vsm install --help
vsm help project init
vsm help mcp config

help 支持别名,例如 vsm help i 等同于 vsm help install。未知命令或子命令会给出提示并返回非零退出码。帮助可在项目配置损坏时查看,不会初始化环境或执行安装。vsm run -- node --help、vsm exec node --help 仍将帮助参数交给对应工具。

快速上手

vsm install go 1.22.0
vsm use go 1.22.0          # 当前目录用这个版本
vsm use -g node 20         # 全局默认 node 20.x
vsm current
vsm exec go version

Shell 补全

eval "$(vsm completion bash)"                                   # bash(写进 ~/.bashrc 永久生效)
eval "$(vsm completion zsh)"                                    # zsh
vsm completion fish | source                                    # fish
vsm completion powershell | Out-String | Invoke-Expression      # PowerShell(写进 $PROFILE)

激活(让 PATH 自动指向所选版本)

vsm reshim                 # 生成 shim

最省事的方式——一条命令配置好新终端:

vsm path-init              # Windows:用户 PATH + cmd / PowerShell 钩子;macOS / Linux:~/.zshrc、~/.bashrc 等

macOS / Linux 也可以手动写进 shell 配置(用 eval 的动态写法,vsm 升级后无需重写):

echo 'eval "$(vsm activate zsh)"'  >> ~/.zshrc     # zsh(macOS 默认)
echo 'eval "$(vsm activate bash)"' >> ~/.bashrc    # bash
vsm path-init powershell  # 自动发现 Windows PowerShell / pwsh 配置位置,保留自定义提示符
vsm activate powershell | Out-String | Invoke-Expression # 立即激活已有 PowerShell

Windows 的系统 PATH 排在用户 PATH 前面;只写用户 PATH,可能仍命中系统 Java 等旧版本。「激活 PATH」/ path-init 会配置 cmd 和 PowerShell 启动钩子,把 VSM 放在系统工具之前,并自动验证已配置工具的命令入口。已经通过 VSM 的 cmd 后续全局切换即时生效,无需重开;从未加载 VSM 的已有 cmd 需执行弹窗中的 cmd 命令一次。PowerShell 随提示符刷新;不修改执行策略。GUI 的 PATH 不代表其它终端;IDE 需单独配置工具链。详见Windows 激活说明。

全局默认是兜底设置:项目的 vsm.json / .tool-versions 和 VSM__VERSION 仍有更高优先级。GUI 详情会分别显示全局默认、VSM 选择和 GUI 进程 PATH 命中位置,不代表所有终端都已切换。CLI 与 GUI 应使用同一版本,并放在同一目录;切换全局版本会更新 shim,避免继续调用旧 CLI。

离开项目目录时,PATH 与 GOROOT / JAVA_HOME 等变量会自动还原,不会把上一个项目的版本带到别处。

激活后,在配置了 .tool-versions 的目录里直接运行 go / node,会自动解析到对应版本。

数据库版本与实例

支持 PostgreSQL、MySQL、MariaDB、Redis、Valkey 的 Docker / 原生版本切换,按实例和版本独立保存数据。GUI 左侧打开「数据库版本 / 实例」。

vsm db use postgres 17-alpine --name api-pg --port 15432
vsm db start api-pg
vsm db switch api-pg 18-alpine
vsm db connection api-pg

原生方式先纳管完整数据库程序,再使用 --backend native。切回旧版本恢复原数据,切换失败尝试恢复旧服务;跨版本数据迁移单独处理。详见数据库版本切换。

Agent / AI 与切换提示

系统检测支持已有 Conda Python 环境和手动添加安装路径;纳管后复用扫描结果,单语言详情不会混入其他工具。详见已有运行时与 Conda。

新增 MCP 与三种项目环境:见 MCP 接入 和 项目隔离。GUI 的「隔离环境 / MCP」可初始化环境并生成配置。

vsm project init                     # 独立工具、缓存、Python venv
vsm mcp config --project /path/to/app # 生成 MCP 客户端配置

执行 vsm context --json 获取项目要求、版本来源、解析版本、shell 已激活版本以及建议命令;该命令不安装工具、不修改项目和终端环境。 AI 可直接执行 vsm run -- go test ./...、vsm run -- node app.js,自动选择项目声明的工具版本;vsm run --install-missing -- go test ./... 还会补装缺失工具。 run 的项目声明优先于继承的版本覆盖,作用于这次命令及其子进程,并透传退出码;不会修改项目声明或父终端。 CI 或 Agent 可用 vsm context --json --check:存在缺失版本、覆盖冲突或尚未激活时返回非零状态。

需要看到版本变化时,激活 shell hook 后设置 VSM_NOTIFY=1(bash/zsh:export VSM_NOTIFY=1;PowerShell:$env:VSM_NOTIFY='1')。 仅版本组合实际变化时向 stderr 提示,重复进入同一环境不会重复提示;默认保持静默。 完整示例见 Agent 接入说明。

下载与目录安全

vsm install go 1.25.11 --require-checksum 要求发布方提供 SHA256;也可设置 VSM_REQUIRE_CHECKSUM=1 对 CLI 和 GUI 统一启用。 GUI 安装区提供「要求发布方 SHA256 校验」选项。Go、Node 从官方元数据获取校验值,GitHub Release 使用可用的资产摘要,manifest 支持固定摘要。 获取校验元数据失败、摘要不匹配时停止安装;默认模式遇到发布方没有摘要会明确提示,严格模式会拒绝安装。

解压使用受目录边界约束的文件操作,拒绝路径穿越、越界链接、设备文件与重复文件,并限制展开大小与文件数量。 卸载自定义安装时同时验证 registry 侧记录和安装目录中的随机令牌;纳管目录始终只删除链接。 完整边界、限制与兼容性说明见 安全设计。

数据目录

默认 ~/.vsm,可用环境变量 VSM_HOME 覆盖(便于隔离测试)。

扩展更多语言

两种方式,优先用 manifest(无需改代码、无需重新编译):

方式一:声明式 manifest(推荐)

往 ~/.vsm/plugins/(或 $VSM_HOME/plugins/)放一个 .json,即可新增一门语言:

[
  {
    "name": "deno",
    "source": { "type": "github-releases", "repo": "denoland/deno", "stripPrefix": "v" },
    "url": "https://github.com/denoland/deno/releases/download/v{version}/{asset}",
    "assets": {
      "windows/amd64": "deno-x86_64-pc-windows-msvc.zip",
      "linux/amd64":   "deno-x86_64-unknown-linux-gnu.zip",
      "darwin/arm64":  "deno-aarch64-apple-darwin.zip"
    },
    "bin": "",
    "env": {}
  }
]

字段说明:

  • source.type:github-releases 或 github-tags;stripPrefix 去掉 tag 前缀(如 v)。
  • url / assets:模板占位符 {version} {os} {arch} {asset}。
  • bin:可执行所在子目录(空 = 安装根目录),用 / 分隔。
  • env:要注入的环境变量,值里 {dir} 代表该版本安装目录(如 Java 的 JAVA_HOME)。
内置样板见 internal/plugin/manifests/languages.json,可复制的示例见 examples/plugins/。 这样要支持几十种语言,只是往 plugins/ 目录加 JSON 而已。

方式二:Go 原生插件

当下载/版本逻辑需要特殊处理(如重定向、解析 assets)时,实现 internal/plugin.Plugin 接口并在 init() 中 register。参考 golang.go / java.go / zig.go。

JDK 下载加速

Java 使用 Adoptium 官方元数据中的具体 Temurin 安装包、大小和 SHA256;开启国内镜像后直接下载清华 Adoptium 镜像,避免先经过 Adoptium 再跳转 GitHub:

vsm mirror cn
vsm install java 21 --require-checksum

GUI 顶部选择「镜像:国内」后安装 JDK,行为相同。镜像缺包、返回错误或校验不符时,回退同一官方文件,始终使用原发布方 SHA256。需要自建镜像可用 vsm mirror set java https://mirror.example/Adoptium/,目录结构为 /jdk///;vsm mirror off 关闭镜像。

大包在服务器支持 Range 且有稳定 ETag 或官方 SHA256 时使用 4 连接并行下载。HEAD 不可用时用 1 字节 Range 探测;断流仅续传失败分块的剩余字节,成功分块保留,进度包含速度。此续传发生在本次下载任务内,尚不支持关闭程序后继续。源站不支持 Range 时自动回退单连接。实际速度仍取决于网络和镜像限速。

本地运行日志

CLI、GUI 和 MCP 统一记录操作、下载重试与失败原因,文件自动轮换(最多约 8 MiB)。 GUI 左下角「日志」支持筛选、导出和清理。

vsm logs --tail 100
vsm logs --level error
vsm logs export vsm-report.jsonl
vsm logs clear

默认保存在 ~/.vsm/logs(或 VSM_HOME/logs),通过 VSM_LOG_LEVEL=debug|info|warn|error|off 控制记录级别。 日志保存在本地,代理凭据、URL 查询参数与常见密钥会脱敏。详见日志说明。

许可证

Apache 2.0

路线图

  • 已完成:7 个语言插件(go / node / java / python / zig / deno / bun)、CLI 全流程、桌面 GUI(Wails)。
  • 已完成(增强):
- 系统版本探测 detect(双路发现:扫全 PATH + 从 JAVA_HOME/GOROOT/各 *_HOME 环境变量定位;识别同一语言多版本、过滤 WindowsApps 占位、两路合并去重)。 - 一键纳管 adopt(junction/symlink 链接系统版本,卸载只删链接、不动原目录)。 - 镜像源加速 mirror(go/node/github 国内镜像,下载与元数据均走镜像)。 - 网络代理 proxy(http/https/socks5,统一作用于所有下载与元数据请求;环境变量 VSM_PROXY 优先,off 强制直连 / system 跟随系统环境变量)。 - .tar.xz 解压(调用系统 tar,零新增依赖;zig / typst 等 xz 发行包在 Windows/macOS/Linux 均可安装)。 - 并行分块下载 + 进度百分比 + SHA256 校验(Go / Node 官方校验值、GitHub 资产摘要、manifest 固定摘要)+ 失败重试。 - shell hook 进目录自动切换(activate 安装 hook,env 输出当前目录环境)。 - Windows 用户级 PATH 广播及 PowerShell 启动钩子(path-init)。 - 自动识别各生态惯用版本文件(.nvmrc/.python-version/.ruby-version/.java-version/.go-version + go.mod/package.json engines/pyproject.toml/Gemfile/runtime.txt),无需手写 .tool-versions。 - 核心单元测试 + GitHub Actions(CI 跨平台编译、打 tag 自动 release)。 - GUI:系统检测面板与一键纳管、镜像切换、安装进度条、当前目录 local 设置。
  • 已完成(v1.0.1):vsm doctor 环境体检、vsm shell 会话级临时切换、shell 补全、--json 输出、vsm size / vsm clean、vsm exec 退出码透传、macOS 原生 GUI(Universal,内置 CLI)、vsm path-init 支持 macOS / Linux。
  • 已完成(v1.0.2):MCP stdio 服务与 7 个 AI 工具、每项目独立环境(local / versions / docker)、Python venv、GUI「隔离环境 / MCP」入口,并修复 Go 版本探测与项目版本约束。详见 发布说明。
  • 已完成(v1.0.3):多 AI 客户端配置预设与只读模式、项目选择和使用引导、Docker 镜像工具视图,以及 Python venv、预发布版本选择和 MCP 安装超时修复。详见 发布说明。
  • 已完成(v1.0.4):help 详细帮助、嵌套子命令帮助、命令别名与 -h / --help,以及帮助主题的 shell 补全。详见 发布说明。
  • 已完成(v1.0.5):GitHub 自更新、Python 元数据 EOF 修复、自定义来源镜像、代理/镜像 JSON 查看,以及精简和彩色 current 输出。详见 发布说明。
  • 已完成(v1.0.6):CLI / GUI / MCP 统一本地运行日志、日志筛选与导出、自动轮换与敏感信息脱敏。详见 发布说明。
  • 已完成(v1.0.7):GitHub 自更新显示实时下载进度、速度、整体大小、重试与校验/替换阶段。详见 发布说明。
  • 已完成(v1.0.8):JDK 清华镜像与官方回退、官方元数据固定 SHA256、4 连接分块探测与任务内续传、下载速度显示,以及 macOS Java 路径修复。详见 发布说明。
  • v1(待办):Lua 插件运行时(gopher-lua)外部扩展、.zst 解压。
  • v2(待办):Bubble Tea TUI(vsm ui)、远程插件仓库。
Chat with me