# 🚀 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.80+-blue.svg)](https://www.rust-lang.org) [![Test](https://github.com/loonghao/vx/workflows/Test/badge.svg)](https://github.com/loonghao/vx/actions) [![Release](https://github.com/loonghao/vx/workflows/Release/badge.svg)](https://github.com/loonghao/vx/actions) [![codecov](https://codecov.io/gh/loonghao/vx/branch/main/graph/badge.svg)](https://codecov.io/gh/loonghao/vx) [![GitHub release](https://img.shields.io/github/release/loonghao/vx.svg)](https://github.com/loonghao/vx/releases) [![GitHub downloads](https://img.shields.io/github/downloads/loonghao/vx/total.svg)](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