# vx - 通用开发工具管理器
**一个命令统治所有工具 -- 零设置,零学习成本** *为 AI 原生时代而生:Unix 哲学与可脚本化的完美结合* [English](README.md) | [文档](https://docs.rs/vx) | [快速开始](#快速开始) | [示例](#实际示例) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Rust](https://img.shields.io/badge/rust-1.95.0+-blue.svg)](https://www.rust-lang.org) [![Test](https://github.com/vx-org/vx/workflows/Test/badge.svg)](https://github.com/vx-org/vx/actions) [![Release](https://github.com/vx-org/vx/workflows/Release/badge.svg)](https://github.com/vx-org/vx/actions) [![codecov](https://codecov.io/gh/vx-org/vx/branch/main/graph/badge.svg)](https://codecov.io/gh/vx-org/vx) [![GitHub release](https://img.shields.io/github/release/vx-org/vx.svg)](https://github.com/vx-org/vx/releases) [![GitHub downloads](https://img.shields.io/github/downloads/vx-org/vx/total.svg)](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