| Crates.io | vx |
| lib.rs | vx |
| version | 0.4.1 |
| created_at | 2025-06-15 04:39:31.388683+00 |
| updated_at | 2025-06-19 15:13:30.722144+00 |
| description | Universal Development Tool Manager |
| homepage | https://github.com/loonghao/vx |
| repository | https://github.com/loonghao/vx |
| max_upload_size | |
| id | 1712900 |
| size | 1,231,616 |
The Ultimate Development Tool Manager - One Tool to Rule Them All
δΈζζζ‘£ | π Documentation | π Quick Start | π‘ Examples
Lightning-fast, format-agnostic development tool manager with beautiful progress tracking
vx is a powerful, fast, and extensible development tool manager that provides a unified interface for managing, installing, and executing development tools across different languages and ecosystems. Think of it as a combination of nvm, rustup, pyenv, and package managers, all in one lightning-fast tool.
Every time we start a new development project, we face the same frustrating cycle:
With the rise of MCP (Model Context Protocol), this problem has become even more pronounced. Many MCP servers require uvx for Python tools and npx for Node.js packages, forcing developers to manage multiple tool ecosystems just to get AI assistance working.
vx eliminates this complexity while maintaining zero learning curve:
# Instead of learning and managing multiple tools:
npx create-react-app my-app # Requires Node.js setup
uvx ruff check . # Requires Python/UV setup
go run main.go # Requires Go installation
# Just use vx with the same commands you already know:
vx npx create-react-app my-app # Auto-installs Node.js if needed
vx uvx ruff check . # Auto-installs UV if needed
vx go run main.go # Auto-installs Go if needed
npx, uvx, go, etc.)vxlist and which commands with detailed status information--use-system-path flag for flexible tool execution~/.vx/tools/<tool>/<version>/) across all platformsLinux/macOS:
curl -fsSL https://raw.githubusercontent.com/loonghao/vx/main/install.sh | bash
Windows (PowerShell):
powershell -c "irm https://raw.githubusercontent.com/loonghao/vx/main/install.ps1 | iex"
For the most reliable installation experience with automatic fallback to multiple distribution channels:
Linux/macOS:
curl -fsSL https://raw.githubusercontent.com/loonghao/vx/main/install-smart.sh | bash
This smart installer automatically:
Install specific version:
# Linux/macOS
VX_VERSION="0.1.0" curl -fsSL https://raw.githubusercontent.com/loonghao/vx/main/install.sh | bash
# Windows
$env:VX_VERSION="0.1.0"; powershell -c "irm https://raw.githubusercontent.com/loonghao/vx/main/install.ps1 | iex"
Install with GitHub token (avoids rate limits):
# Linux/macOS
GITHUB_TOKEN="your_token_here" curl -fsSL https://raw.githubusercontent.com/loonghao/vx/main/install.sh | bash
# Windows
$env:GITHUB_TOKEN="your_token_here"; powershell -c "irm https://raw.githubusercontent.com/loonghao/vx/main/install.ps1 | iex"
Install to custom directory:
# Linux/macOS
VX_INSTALL_DIR="$HOME/bin" curl -fsSL https://raw.githubusercontent.com/loonghao/vx/main/install.sh | bash
# Windows
$env:VX_INSTALL_DIR="C:\tools\vx"; powershell -c "irm https://raw.githubusercontent.com/loonghao/vx/main/install.ps1 | iex"
Force specific distribution channel:
# Use jsDelivr CDN (good for China/Asia)
VX_FORCE_CHANNEL="jsdelivr" curl -fsSL https://raw.githubusercontent.com/loonghao/vx/main/install-smart.sh | bash
# Use Fastly CDN (good for Europe)
VX_FORCE_CHANNEL="fastly" curl -fsSL https://raw.githubusercontent.com/loonghao/vx/main/install-smart.sh | bash
# Use GitHub directly (good for Americas)
VX_FORCE_CHANNEL="github" curl -fsSL https://raw.githubusercontent.com/loonghao/vx/main/install-smart.sh | bash
vx uses a sophisticated multi-channel distribution system to ensure reliable downloads worldwide:
| Channel | Description | Best For | Rate Limits |
|---|---|---|---|
| GitHub Releases | Primary distribution | Americas, authenticated users | 60/hour (unauth), 5000/hour (auth) |
| jsDelivr CDN | Global CDN with China support | Asia-Pacific, China | Unlimited |
| Fastly CDN | High-performance global CDN | Europe, global | Unlimited |
Automatic Fallback: If one channel fails, the installer automatically tries the next available channel.
Chocolatey (Windows):
choco install vx
Scoop (Windows):
scoop bucket add loonghao https://github.com/loonghao/scoop-vx.git
scoop install vx
WinGet (Windows):
winget install loonghao.vx
Homebrew (macOS):
brew tap loonghao/vx
brew install vx
Arch Linux (AUR):
# Using yay
yay -S vx-bin
# Using paru
paru -S vx-bin
Cargo (from source):
cargo install --git https://github.com/loonghao/vx
Download the latest release from GitHub Releases and extract to your PATH.
git clone https://github.com/loonghao/vx
cd vx
# Build and install using the installer (recommended)
# Linux/macOS
BUILD_FROM_SOURCE=true ./install.sh
# Windows
.\install.ps1 -BuildFromSource
# Or build manually
cargo build --release
cp target/release/vx ~/.local/bin/ # Linux/macOS
# copy target\release\vx.exe %USERPROFILE%\.local\bin\ # Windows
# π― Use the EXACT same commands you already know - just add 'vx'!
# Python development (no Python setup required)
vx uv pip install requests # Auto-installs UV if needed
vx uvx ruff check . # Auto-installs ruff via UV
vx uvx black --check . # Auto-installs black via UV
# Node.js development (no Node.js setup required)
vx npm install react # Auto-installs Node.js if needed
vx npx create-react-app my-app # Auto-installs create-react-app
vx npx -y cowsay "Hello from vx!" # One-time tool execution
# Go development (no Go setup required)
vx go build # Auto-installs Go if needed
vx go run main.go # Same commands you know
# Rust development (no Rust setup required)
vx cargo run # Auto-installs Rust if needed
vx cargo build --release # Same Cargo commands
# π€ Perfect for MCP servers - just prefix with 'vx':
# Instead of: npx @browsermcp/mcp@latest
# Use: vx npx @browsermcp/mcp@latest
# Instead of: uvx some-python-tool
# Use: vx uvx some-python-tool
# π§ Advanced features when you need them
vx --use-system-path python --version # Use system tools when needed
vx list --status # Show all tools with installation status
vx which node --all # Show all installed versions of a tool
vx stats # Package statistics and usage
# π Self-update with GitHub token support (solves rate limit issues)
vx self-update --check # Check for updates
vx self-update --token ghp_xxxx # Update with GitHub token (recommended for teams)
vx self-update --prerelease # Include pre-release versions
# π― Version management with beautiful progress bars
vx install uv@0.7.12 # Install specific versions
vx install node@20.0.0 # Rich progress tracking
vx switch node@18.19.0 # Instant version switching
# βοΈ Project configuration
vx init # Initialize project configuration
vx config # Manage global settings
| Tool | Commands | Category | Auto-Install | Progress Bars | Description |
|---|---|---|---|---|---|
| UV | vx uv pip, vx uv venv, vx uv run, vx uv add |
Python | β | β | Extremely fast Python package installer |
| UVX | vx uvx <package>, vx uvx ruff, vx uvx black |
Python | β | β | Python application runner (via UV) |
| Node.js | vx node, vx npm, vx npx |
JavaScript | β | β | JavaScript runtime and package manager |
| NPX | vx npx <package>, vx npx create-react-app |
JavaScript | β | β | Node.js package runner |
| Go | vx go build, vx go run, vx go test |
Go | β | β | Go programming language toolchain |
| Rust | vx cargo build, vx cargo run, vx cargo test |
Rust | β | β | Rust programming language and Cargo |
vx is powered by the vx-installer engine, a state-of-the-art installation system that provides:
| Method | Description | Use Case | Progress |
|---|---|---|---|
| Archive | Extract from compressed archives | Tools distributed as ZIP/TAR | β |
| Binary | Direct binary installation | Single executable tools | β |
| Script | Run installation scripts | Custom installation logic | β |
| Package Manager | Use system package managers | System-wide installations | β |
| Operation | Archive Size | Time | Memory Usage |
|---|---|---|---|
| Download | 50MB | 2.3s | 8MB |
| Extract ZIP | 100MB | 1.8s | 12MB |
| Extract TAR.GZ | 100MB | 2.1s | 10MB |
| Install Binary | 25MB | 0.5s | 4MB |
Benchmarks on Intel i7-10700K, 32GB RAM, SSD storage
vx was designed with MCP (Model Context Protocol) in mind. Many MCP servers require uvx and npx, but setting up these tools can be complex and error-prone. vx solves this with zero configuration and zero learning curve.
MCP servers often require multiple tool ecosystems:
# Traditional setup requires managing multiple tools:
npm install -g some-package # Requires Node.js setup
uvx install some-python-tool # Requires Python/UV setup
# Plus dealing with PATH conflicts, version mismatches, etc.
vxWith vx, you simply prefix your existing commands with vx - no learning curve, no configuration:
{
"mcpServers": {
"browsermcp": {
"command": "npx",
"args": ["-y", "@browsermcp/mcp@latest"]
},
"python-tool": {
"command": "uvx",
"args": ["some-python-tool@latest"]
}
}
}
{
"mcpServers": {
"browsermcp": {
"command": "vx",
"args": ["npx", "-y", "@browsermcp/mcp@latest"]
},
"python-tool": {
"command": "vx",
"args": ["uvx", "some-python-tool@latest"]
}
}
}
npx and uvx commands you already knowvx is built with a modern, modular architecture that emphasizes performance, extensibility, and maintainability. The recent vx-installer integration brings state-of-the-art installation capabilities.
vx/
βββ vx-cli/ # Command-line interface with rich UX
βββ vx-core/ # Core functionality and utilities
βββ vx-installer/ # π Universal installation engine
βββ vx-config/ # Configuration management (TOML-based)
βββ vx-plugin/ # Plugin system and trait definitions
βββ vx-tools/ # Built-in tool plugins
β βββ vx-tool-node/ # Node.js support with NPX integration
β βββ vx-tool-go/ # Go toolchain support
β βββ vx-tool-rust/ # Rust and Cargo support
β βββ vx-tool-uv/ # UV (Python) with UVX support
βββ vx-package-managers/ # Package manager plugins
βββ vx-pm-npm/ # NPM package manager integration
The heart of vx's installation system, providing:
~/.config/vx/config.toml:
[defaults]
auto_install = true # Auto-install missing tools
check_updates = true # Check for updates
update_interval = "24h" # Update check frequency
[tools.uv]
version = "0.5.26"
install_method = "official"
[tools.node]
version = "20.11.0"
install_method = "official"
[tools.go]
version = "1.21.6"
.vx.toml:
[tools]
uv = "0.5.26"
node = "20.11.0"
go = "1.21.6"
[defaults]
auto_install = true
# List all plugins
vx plugin list
# Get plugin info
vx plugin info uv
# Enable/disable plugins
vx plugin enable rust
vx plugin disable go
# Search plugins
vx plugin search python
# Create a new Python project
vx uv init my-python-app
cd my-python-app
# Add dependencies
vx uv add fastapi uvicorn
vx uv add --dev pytest black
# Run the application
vx uv run uvicorn main:app --reload
# Run tests
vx uv run pytest
# Use uvx for Python applications (with environment isolation)
vx uvx ruff check .
vx uvx black --check .
vx uvx cowsay -t "Hello from vx uvx!"
# All tools run in vx-managed environments
vx uv --version # Uses vx-managed uv
# Install and use Node.js
vx npm install express
vx node server.js
# Use npx for one-time tools (with environment isolation)
vx npx create-react-app my-app
vx npx -y typescript --init
vx npx cowsay "Hello from vx!"
# All tools run in vx-managed environments
vx npm --version # Uses vx-managed npm
vx node --version # Uses vx-managed Node.js
# Initialize Go module
vx go mod init my-go-app
# Build and run
vx go build
vx go run main.go
# Test
vx go test ./...
# Create new Rust project
vx cargo new my-rust-app
cd my-rust-app
# Add dependencies
vx cargo add serde tokio
# Build and run
vx cargo run
# Frontend (Node.js) + Backend (Go) + Scripts (Python)
vx npm install # Frontend dependencies
vx go mod tidy # Backend dependencies
vx uv pip install -r requirements.txt # Script dependencies
# Run different parts
vx npm run dev # Frontend dev server
vx go run cmd/server/main.go # Backend server
vx uv run python scripts/deploy.py # Deployment script
vx includes a powerful self-update system that solves GitHub API rate limit issues commonly encountered in shared environments.
# Check for updates
vx self-update --check
# Update to latest version
vx self-update
# Update with GitHub token (recommended for teams/shared networks)
vx self-update --token ghp_your_github_token_here
# Include pre-release versions
vx self-update --prerelease
# Force update even if already up to date
vx self-update --force
Problem: GitHub's public API has a rate limit of 60 requests per hour for unauthenticated users. In shared environments (offices, schools, apartments), multiple users may hit this limit.
Solution: Use a GitHub token to increase the rate limit to 5,000 requests per hour:
# Create a GitHub token at: https://github.com/settings/tokens
# No special permissions needed - just basic access
# Use token for updates
vx self-update --token ghp_xxxxxxxxxxxxxxxxxxxx
# Or set as environment variable
export GITHUB_TOKEN=ghp_xxxxxxxxxxxxxxxxxxxx
vx self-update
# Install multiple versions
vx install go@1.20.0
vx install go@1.21.6
# List installed versions with detailed status
vx list --status
vx stats
# Show tool installation paths
vx which go --all
vx which node --all
# Switch between versions
vx switch go@1.20.0
vx switch go@1.21.6
# Remove specific versions
vx remove go 1.20.0
vx remove go --all
# Cleanup orphaned packages
vx cleanup
# View package statistics
vx stats
# Output:
# π Package Statistics:
# π¦ Total packages: 3
# π’ Total versions: 5
# πΎ Total size: 2.1 GB
# π Last updated: 2025-01-30 10:30:00 UTC
Problem: Getting "API rate limit exceeded" error during installation.
Solutions:
Use GitHub Token (Recommended):
# Linux/macOS
GITHUB_TOKEN="your_token_here" curl -fsSL https://raw.githubusercontent.com/loonghao/vx/main/install.sh | bash
# Windows
$env:GITHUB_TOKEN="your_token_here"; powershell -c "irm https://raw.githubusercontent.com/loonghao/vx/main/install.ps1 | iex"
Specify Version Explicitly:
VX_VERSION="0.1.0" curl -fsSL https://raw.githubusercontent.com/loonghao/vx/main/install.sh | bash
Use Smart Installer with CDN Fallback:
curl -fsSL https://raw.githubusercontent.com/loonghao/vx/main/install-smart.sh | bash
Use Package Managers:
# Windows
winget install loonghao.vx
scoop install vx
# macOS
brew install loonghao/vx/vx
Problem: Downloads fail or are very slow.
Solutions:
Force Specific Channel:
# Use jsDelivr CDN (good for Asia/China)
VX_FORCE_CHANNEL="jsdelivr" curl -fsSL https://raw.githubusercontent.com/loonghao/vx/main/install-smart.sh | bash
# Use Fastly CDN (good for Europe)
VX_FORCE_CHANNEL="fastly" curl -fsSL https://raw.githubusercontent.com/loonghao/vx/main/install-smart.sh | bash
Enable Debug Mode:
VX_DEBUG=true curl -fsSL https://raw.githubusercontent.com/loonghao/vx/main/install-smart.sh | bash
Build from Source:
BUILD_FROM_SOURCE=true curl -fsSL https://raw.githubusercontent.com/loonghao/vx/main/install.sh | bash
Problem: Slow or failed downloads due to network restrictions.
Solutions:
Use jsDelivr CDN:
VX_FORCE_CHANNEL="jsdelivr" curl -fsSL https://raw.githubusercontent.com/loonghao/vx/main/install-smart.sh | bash
Use Mirror URLs:
curl -fsSL https://fastly.jsdelivr.net/gh/loonghao/vx@main/install-smart.sh | bash
Problem: vx: command not found after installation.
Solutions:
Add to PATH manually:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
Check installation location:
which vx
ls -la ~/.local/bin/vx
Problem: Permission errors when running vx.
Solutions:
Fix permissions:
chmod +x ~/.local/bin/vx
Check ownership:
ls -la ~/.local/bin/vx
chown $USER:$USER ~/.local/bin/vx
If you're still experiencing issues:
Enable Debug Mode:
VX_DEBUG=true vx your-command
Check System Requirements:
Report Issues:
git clone https://github.com/loonghao/vx
cd vx
cargo build --release
cargo test
cargo run -- --help
See MODULAR_ARCHITECTURE.md for detailed plugin development guide.
~/.vx/tools/<tool>/<version>/)list --status and which --all commandsvx just --list, vx just build)vx kubectl get pods, vx kubectl apply)vx deno run, vx deno task)vx podman run, vx podman build)vx zig build, vx zig run)We welcome contributions! Here's how you can help:
This project uses Release Please for automated releases:
# New feature (bumps minor version)
git commit -m "feat: add Python plugin support"
# Bug fix (bumps patch version)
git commit -m "fix: resolve installation issue on Windows"
# Breaking change (bumps major version)
git commit -m "feat!: redesign plugin API"
See Release Guide for detailed guidelines.
This project is licensed under the MIT License - see the LICENSE file for details.
asdf, mise, proto, and chocolateyMade with β€οΈ for developers, by developers