Skip to content

loonghao/vx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš€ vx - Universal Development Tool Manager

One command to rule them all β€” Zero setup, Zero learning curve

δΈ­ζ–‡ζ–‡ζ‘£ | πŸ“– Documentation | πŸš€ Quick Start | πŸ’‘ Examples

License: MIT Rust Test Release codecov GitHub release GitHub downloads


πŸ’‘ Design Philosophy

The Problem We Solve

Every time we start a new development project, we face the same frustrating cycle:

  • Install Node.js and npm for frontend tools
  • Set up Python and pip/uv for scripts and automation
  • Configure Go for backend services
  • Manage Rust toolchain for system tools
  • Deal with version conflicts and PATH issues
  • Repeat this process across different machines and environments

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.

Our Solution: Zero Learning Curve

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

πŸš€ Quick Start

Installation

Linux/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"

Start Using Immediately

# No setup needed - just prefix your commands with 'vx'
vx node --version               # Auto-installs Node.js
vx python --version             # Auto-installs Python via UV
vx go version                   # Auto-installs Go
vx cargo --version              # Auto-installs Rust

🎯 Two Ways to Use vx

1️⃣ Direct Execution (For Quick Tasks)

Just prefix any command with vx β€” tools are auto-installed on first use:

# Run any tool instantly
vx npx create-react-app my-app
vx uvx ruff check .
vx go run main.go
vx cargo build --release

2️⃣ Project Development Environment (For Teams)

Create a vx.toml file to define your project's tool requirements:

# Initialize a new project
vx init

# Or create vx.toml manually
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

Then use the development environment commands:

# One-click setup: install all project tools
vx setup

# Enter development shell with all tools available
vx dev

# Run project scripts
vx run dev
vx run test
vx run lint

# Manage project tools
vx add bun                      # Add a tool
vx remove go                    # Remove a tool
vx sync                         # Sync tools with vx.toml

πŸ“‹ Command Reference

Tool Execution

Command Description
vx <tool> [args...] Execute a tool (auto-installs if needed)
vx install <tool>[@version] Install a specific tool version
vx uninstall <tool> [version] Uninstall tool versions
vx switch <tool>@<version> Switch to a different version
vx which <tool> Show which version is being used
vx versions <tool> Show available versions
vx list List all supported tools
vx search <query> Search available tools

Project Environment

Command Description
vx init Initialize project configuration (vx.toml)
vx setup Install all tools defined in vx.toml
vx dev Enter development shell with project tools
vx dev -c <cmd> Run a command in the dev environment
vx sync Sync installed tools with vx.toml
vx add <tool> Add a tool to project configuration
vx remove <tool> Remove a tool from project configuration
vx run <script> Run a script defined in vx.toml

System Management

Command Description
vx stats Show disk usage and statistics
vx clean Clean up cache and orphaned packages
vx config Manage global configuration
vx self-update Update vx itself
vx plugin list List available plugins

πŸ“ Project Configuration (vx.toml)

# VX Project Configuration
# Run 'vx setup' to install all tools
# Run 'vx dev' to enter the development environment

[tools]
node = "20"                     # Major version
python = "3.12"                 # Minor version
uv = "latest"                   # Always latest
go = "1.21.6"                   # Exact version
rust = ">=1.70"                 # Version range

[settings]
auto_install = true             # Auto-install missing tools in dev shell
parallel_install = true         # Install tools in parallel

[env]
NODE_ENV = "development"
DEBUG = "true"

[scripts]
dev = "npm run dev"
test = "npm test && cargo test"
build = "npm run build"
lint = "uvx ruff check . && npm run lint"
format = "uvx black . && npm run format"

πŸ”Œ MCP Integration

vx was designed with MCP (Model Context Protocol) in mind. Just change the command from the tool name to vx:

Before (Complex Setup Required)

{
  "mcpServers": {
    "browsermcp": {
      "command": "npx",
      "args": ["-y", "@browsermcp/mcp@latest"]
    },
    "python-tool": {
      "command": "uvx",
      "args": ["some-python-tool@latest"]
    }
  }
}

After (Zero Setup with vx)

{
  "mcpServers": {
    "browsermcp": {
      "command": "vx",
      "args": ["npx", "-y", "@browsermcp/mcp@latest"]
    },
    "python-tool": {
      "command": "vx",
      "args": ["uvx", "some-python-tool@latest"]
    }
  }
}

🎯 Real-World Examples

Team Onboarding

# New team member joins the project
git clone https://github.com/your-org/your-project
cd your-project

# One command to set up everything
vx setup

# Start developing
vx dev

Multi-Language Project

# Frontend (Node.js) + Backend (Go) + Scripts (Python)
cat > vx.toml << 'EOF'
[tools]
node = "20"
go = "1.21"
uv = "latest"

[scripts]
frontend = "npm run dev"
backend = "go run cmd/server/main.go"
migrate = "uvx alembic upgrade head"
EOF

# Install everything
vx setup

# Run different parts
vx run frontend
vx run backend
vx run migrate

Python Development

vx uv init my-python-app
cd my-python-app
vx uv add fastapi uvicorn
vx uv add --dev pytest black ruff
vx uv run uvicorn main:app --reload
vx uvx ruff check .

Node.js Development

vx npx create-react-app my-app
cd my-app
vx npm install
vx npm run dev

Go Development

vx go mod init my-go-app
vx go run main.go
vx go build -o app

Rust Development

vx cargo new my-rust-app
cd my-rust-app
vx cargo add serde tokio
vx cargo run

πŸ“– Supported Tools

Language Runtimes

Tool Commands Description
Node.js node, npm, npx JavaScript runtime and package manager
Bun bun, bunx Fast all-in-one JavaScript runtime
Deno deno Secure JavaScript/TypeScript runtime
Go go Go programming language
Rust cargo, rustc, rustup Rust toolchain
Java java, javac Java Development Kit
Zig zig Zig programming language

Package Managers

Tool Commands Description
UV uv, uvx Fast Python package manager
pnpm pnpm, pnpx Fast, disk-efficient package manager
Yarn yarn JavaScript package manager

Build Tools

Tool Commands Description
Vite vite Next generation frontend tooling
Just just Command runner for project tasks
Task task Task runner / build tool (go-task)
CMake cmake Cross-platform build system generator
Ninja ninja Small build system focused on speed
protoc protoc Protocol Buffers compiler

DevOps Tools

Tool Commands Description
Docker docker Container runtime and tooling
Terraform terraform Infrastructure as Code
kubectl kubectl Kubernetes CLI
Helm helm Kubernetes package manager

Cloud CLI Tools

Tool Commands Description
AWS CLI aws Amazon Web Services CLI
Azure CLI az Microsoft Azure CLI
gcloud gcloud Google Cloud Platform CLI

Code Quality Tools

Tool Commands Description
pre-commit pre-commit Pre-commit hook framework

Other Tools

Tool Commands Description
VS Code code Visual Studio Code editor
Rez rez Package management system
rcedit rcedit Windows resource editor

🌟 Why vx?

Feature vx nvm/pyenv/etc.
Zero Learning Curve βœ… Same commands you know ❌ New commands to learn
Multi-Language βœ… One tool for all ❌ One tool per language
Auto-Install βœ… On first use ❌ Manual installation
Project Config βœ… vx.toml ❌ Varies by tool
Team Sync βœ… vx setup ❌ Manual coordination
MCP Ready βœ… Just add vx ❌ Complex setup
Cross-Platform βœ… Windows/macOS/Linux ⚠️ Varies

βš™οΈ Advanced Configuration

Global Configuration

~/.config/vx/config.toml:

[defaults]
auto_install = true
check_updates = true
update_interval = "24h"

[tools.node]
version = "20"

[tools.uv]
version = "latest"

Shell Integration

# Add to your shell profile for auto-completion
eval "$(vx shell init bash)"   # Bash
eval "$(vx shell init zsh)"    # Zsh
vx shell init fish | source    # Fish

Self-Update with GitHub Token

# Avoid rate limits in shared environments
vx self-update --token ghp_your_token_here

# Or set environment variable
export GITHUB_TOKEN=ghp_your_token_here
vx self-update

πŸ“¦ Installation Options

Package Managers

# Windows
winget install loonghao.vx
choco install vx
scoop install vx

# macOS
brew tap loonghao/vx && brew install vx

# Arch Linux
yay -S vx-bin

# Cargo
cargo install --git https://github.com/loonghao/vx

Docker

docker pull loonghao/vx:latest
docker run --rm loonghao/vx --version

GitHub Actions

Use vx in your CI/CD workflows:

- uses: loonghao/vx@vx-v0.5.15
  with:
    github-token: ${{ secrets.GITHUB_TOKEN }}

- run: vx node --version
- run: vx npm ci
- run: vx npm test

Note: Use a specific version tag (e.g., vx-v0.5.15) instead of v1. Check releases for the latest version.

See GitHub Action Guide for full documentation.


🀝 Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

  1. Report Issues: Open an issue
  2. Feature Requests: Start a discussion
  3. Code Contributions: Submit pull requests

πŸ“„ License

MIT License - see LICENSE for details.

πŸ“ž Support


Made with ❀️ for developers, by developers

About

Universal Development Tool Manager

Resources

License

Stars

Watchers

Forks

Packages