# 🚀 vx - 通用开发工具管理器
**一个命令统治所有工具 — 零设置,零学习成本**
*为 AI 原生时代而生:Unix 哲学与可脚本化的完美结合*
[English](README.md) | [📖 文档](https://docs.rs/vx) | [🚀 快速开始](#-快速开始) | [💡 示例](#-实际示例)
[](https://opensource.org/licenses/MIT)
[](https://www.rust-lang.org)
[](https://github.com/loonghao/vx/actions)
[](https://github.com/loonghao/vx/actions)
[](https://codecov.io/gh/loonghao/vx)
[](https://github.com/loonghao/vx/releases)
[](https://github.com/loonghao/vx/releases)
---
## 🤖 为 AI 原生开发而生
> *"Claude Code 被设计为低层级且不强制特定工作流的工具……创建一个灵活、可定制、可脚本化且安全的强力工具。"*
> — [Anthropic 工程博客:Claude Code 最佳实践](https://www.anthropic.com/engineering/claude-code-best-practices)
vx 遵循 Anthropic 为 AI 原生开发工具推荐的 **Unix 哲学** 和 **可脚本化(Scriptability)** 原则:
| 原则 | vx 如何实现 |
|------|------------|
| **Unix 哲学** | 一个工具,一个职责 — `vx` 透明管理所有运行时 |
| **可脚本化** | 完整的 bash 集成,CI/CD 就绪,支持无头模式 |
| **可组合性** | 与任何 AI 编码助手协作(Claude Code、Cursor、Copilot) |
| **零配置** | AI 代理可以直接使用任何工具,无需环境设置 |
### 为什么这对 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/loonghao/vx/main/install.sh | bash
```
**Windows (PowerShell):**
```powershell
powershell -c "irm https://raw.githubusercontent.com/loonghao/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 [args...]` | 执行工具(需要时自动安装) |
| `vx install [@version]` | 安装特定工具版本 |
| `vx uninstall [version]` | 卸载工具版本 |
| `vx switch @` | 切换到不同版本 |
| `vx which ` | 显示正在使用的版本 |
| `vx versions ` | 显示可用版本 |
| `vx list` | 列出所有支持的工具 |
| `vx search ` | 搜索可用工具 |
### 项目环境
| 命令 | 描述 |
|---------|-------------|
| `vx init` | 初始化项目配置(`vx.toml`) |
| `vx setup` | 安装 `vx.toml` 中定义的所有工具 |
| `vx dev` | 进入带有项目工具的开发 shell |
| `vx dev -c ` | 在开发环境中运行命令 |
| `vx sync` | 同步已安装工具与 `vx.toml` |
| `vx add ` | 添加工具到项目配置 |
| `vx remove ` | 从项目配置移除工具 |
| `vx run