# vx - 通用开发工具管理器
**一个命令统治所有工具 -- 零设置,零学习成本**
*为 AI 原生时代而生:Unix 哲学与可脚本化的完美结合*
[English](README.md) | [文档](https://docs.rs/vx) | [快速开始](#快速开始) | [示例](#实际示例)
[](https://opensource.org/licenses/MIT)
[](https://www.rust-lang.org)
[](https://github.com/vx-org/vx/actions)
[](https://github.com/vx-org/vx/actions)
[](https://codecov.io/gh/vx-org/vx)
[](https://github.com/vx-org/vx/releases)
[](https://github.com/vx-org/vx/releases)
---
## 为 AI 原生开发而生
vx 遵循 Anthropic 为 AI 原生开发工具推荐的 **Unix 哲学** 和 **可脚本化(Scriptability)** 原则:
| 原则 | vx 如何实现 |
|------|------------|
| **Unix 哲学** | 一个工具,一个职责 -- `vx` 透明管理所有运行时 |
| **可脚本化** | 完整的 bash 集成,CI/CD 就绪,支持无头模式 |
| **可组合性** | 与任何 AI 编码助手协作(Claude Code、Cursor、Copilot) |
| **零配置** | AI 代理可以直接使用任何工具,无需环境设置 |
当 Claude Code 等 AI 代理需要跨不同生态系统执行命令时:
```bash
# 没有 vx:AI 必须处理复杂的环境设置
# "首先安装 Node.js,然后配置 npm,设置 PATH..."
# 有了 vx:AI 直接运行命令
vx npx create-react-app my-app # 立即可用
vx uvx ruff check . # 立即可用
vx cargo build --release # 立即可用
```
**vx 让 AI 具备完整的全栈开发能力,无需为环境管理和依赖发愁。**
---
## 设计理念
### 我们解决的问题
每次开始新的开发项目时,我们都面临同样令人沮丧的循环:
- 为前端工具安装 Node.js 和 npm
- 为脚本和自动化设置 Python 和 pip/uv
- 为后端服务配置 Go
- 为系统工具管理 Rust 工具链
- 处理版本冲突和 PATH 问题
- 在不同机器和环境中重复这个过程
随着 **MCP(模型上下文协议)** 的兴起,这个问题变得更加突出。许多 MCP 服务器需要 `uvx` 用于 Python 工具,需要 `npx` 用于 Node.js 包,迫使开发者管理多个工具生态系统才能让 AI 辅助正常工作。
### 我们的解决方案:零学习成本
vx 在保持**零学习成本**的同时消除了这种复杂性:
```bash
# 不再需要学习和管理多个工具:
npx create-react-app my-app # 需要 Node.js 设置
uvx ruff check . # 需要 Python/UV 设置
go run main.go # 需要 Go 安装
# 只需使用 vx 和您已经知道的相同命令:
vx npx create-react-app my-app # 需要时自动安装 Node.js
vx uvx ruff check . # 需要时自动安装 UV
vx go run main.go # 需要时自动安装 Go
```
---
## 快速开始
### 安装
**Linux/macOS:**
```bash
curl -fsSL https://raw.githubusercontent.com/vx-org/vx/main/install.sh | bash
```
**Windows (PowerShell):**
```powershell
powershell -c "irm https://raw.githubusercontent.com/vx-org/vx/main/install.ps1 | iex"
```
### 在限流网络中稳定安装
```bash
# 1)固定稳定安装版本(推荐用于 CI 与企业网络)
VX_VERSION="0.9.6" curl -fsSL https://raw.githubusercontent.com/vx-org/vx/main/install.sh | bash
# 2)配置多源发布镜像(逗号分隔)
VX_RELEASE_BASE_URLS="https://mirror.example.com/vx/releases,https://github.com/vx-org/vx/releases" \
curl -fsSL https://raw.githubusercontent.com/vx-org/vx/main/install.sh | bash
```
```powershell
# Windows 镜像回退(逗号或分号分隔)
$env:VX_RELEASE_BASE_URLS="https://mirror.example.com/vx/releases,https://github.com/vx-org/vx/releases"
powershell -c "irm https://raw.githubusercontent.com/vx-org/vx/main/install.ps1 | iex"
```
> 安装器会自动遍历所有配置的发布基址,并对不同资产命名模式执行回退重试。
### 立即开始使用
```bash
# 无需设置 - 只需在命令前加上 'vx'
vx node --version # 自动安装 Node.js
vx python --version # 通过 UV 自动安装 Python
vx go version # 自动安装 Go
vx cargo --version # 自动安装 Rust
```
---
## 两种使用方式
### 1. 直接执行(用于快速任务)
只需在任何命令前加上 `vx` -- 工具在首次使用时自动安装:
```bash
# 即时运行任何工具
vx npx create-react-app my-app
vx uvx ruff check .
vx go run main.go
vx cargo build --release
```
### 2. 项目开发环境(用于团队协作)
创建 `vx.toml` 文件来定义项目的工具需求:
```bash
# 初始化新项目
vx init
# 或手动创建 vx.toml
cat > vx.toml << 'EOF'
[tools]
node = "20"
python = "3.12"
uv = "latest"
go = "1.21"
[scripts]
dev = "npm run dev"
test = "npm test"
lint = "uvx ruff check ."
EOF
```
然后使用开发环境命令:
```bash
# 一键设置:安装所有项目工具
vx setup
# 进入开发 shell,所有工具都可用
vx dev
# 运行项目脚本
vx run dev
vx run test
vx run lint
# 管理项目工具
vx add bun # 添加工具
vx remove go # 移除工具
vx sync # 同步工具与 vx.toml
```
---
## 命令参考
### 工具执行
| 命令 | 描述 |
|---------|-------------|
| `vx [@version] [args...]` | 执行运行时(需要时自动安装) |
| `vx [@version]:: [args...]` | 执行运行时中的特定可执行文件 |
| `vx :[::executable] [args...]` | 执行包(RFC 0027) |
| `vx --with [@version] ` | 为本次调用注入伴随运行时 |
| `vx install @` | 安装特定运行时版本 |
| `vx uninstall [@version]` | 卸载运行时版本 |
| `vx switch @` | 切换到不同版本 |
| `vx which ` | 显示正在使用的版本 |
| `vx versions ` | 显示可用版本 |
| `vx list` | 列出所有支持的运行时 |
| `vx search ` | 搜索可用运行时 |
### Shell 与环境
| 命令 | 描述 |
|---------|-------------|
| `vx shell launch [@version] [shell]` | 启动带有运行时环境的 shell(规范形式) |
| `vx dev` | 进入带有项目工具的开发 shell |
| `vx dev -c ` | 在开发环境中运行命令 |
### 全局包管理 (`vx pkg`)
| 命令 | 描述 |
|---------|-------------|
| `vx pkg install :` | 安装全局包 |
| `vx pkg uninstall :` | 卸载全局包 |
| `vx pkg list` | 列出全局安装的包 |
| `vx pkg info :` | 显示包信息 |
### 项目管理
| 命令 | 描述 |
|---------|-------------|
| `vx init` | 初始化项目配置(`vx.toml`) |
| `vx setup` | 安装 `vx.toml` 中定义的所有工具 |
| `vx sync` | 同步已安装工具与 `vx.toml` |
| `vx lock` | 生成或更新 `vx.lock` 以确保可复现性 |
| `vx check` | 检查版本约束和工具可用性 |
| `vx add ` | 添加运行时到项目配置 |
| `vx remove ` | 从项目配置移除运行时 |
| `vx run