
Security News
pnpm 12’s Rust Rewrite Cuts Install Times by Up to 90%
pnpm 12 rewrites the package manager in Rust, cutting install times by up to 90% while preserving pnpm 11 workflows and lockfiles.
@fuzzyos/fuzzy
Advanced tools
Deploy and manage LLMs on GPU pods with automatic vLLM configuration for agentic workloads.
npm install -g @fuzzyos/fuzzy
fuzzy simplifies running large language models on remote GPU pods. It automatically:
# Set required environment variables
export HF_TOKEN=your_huggingface_token # Get from https://huggingface.co/settings/tokens
export FUZZY_API_KEY=your_api_key # Any string you want for API authentication
# Setup a DataCrunch pod with NFS storage (models path auto-extracted)
fuzzy pods setup dc1 "ssh root@1.2.3.4" \
--mount "sudo mount -t nfs -o nconnect=16 nfs.fin-02.datacrunch.io:/your-pseudo /mnt/hf-models"
# Start a model (automatic configuration for known models)
fuzzy start Qwen/Qwen2.5-Coder-32B-Instruct --name qwen
# Send a single message to the model
fuzzy agent qwen "What is the Fibonacci sequence?"
# Interactive chat mode with file system tools
fuzzy agent qwen -i
# Use with any OpenAI-compatible client
export OPENAI_BASE_URL='http://1.2.3.4:8001/v1'
export OPENAI_API_KEY=$FUZZY_API_KEY
DataCrunch - Best for shared model storage
RunPod - Good persistent storage
fuzzy pods setup <name> "<ssh>" [options] # Setup new pod
--mount "<mount_command>" # Run mount command during setup
--models-path <path> # Override extracted path (optional)
--vllm release|nightly|gpt-oss # vLLM version (default: release)
fuzzy pods # List all configured pods
fuzzy pods active <name> # Switch active pod
fuzzy pods remove <name> # Remove pod from local config
fuzzy shell [<name>] # SSH into pod
fuzzy ssh [<name>] "<command>" # Run command on pod
Note: When using --mount, the models path is automatically extracted from the mount command's target directory. You only need --models-path if not using --mount or to override the extracted path.
release (default): Stable vLLM release, recommended for most usersnightly: Latest vLLM features, needed for newest models like GLM-4.5gpt-oss: Special build for OpenAI's GPT-OSS models onlyfuzzy start <model> --name <name> [options] # Start a model
--memory <percent> # GPU memory: 30%, 50%, 90% (default: 90%)
--context <size> # Context window: 4k, 8k, 16k, 32k, 64k, 128k
--gpus <count> # Number of GPUs to use (predefined models only)
--pod <name> # Target specific pod (overrides active)
--vllm <args...> # Pass custom args directly to vLLM
fuzzy stop [<name>] # Stop model (or all if no name given)
fuzzy list # List running models with status
fuzzy logs <name> # Stream model logs (tail -f)
fuzzy agent <name> "<message>" # Single message to model
fuzzy agent <name> "<msg1>" "<msg2>" # Multiple messages in sequence
fuzzy agent <name> -i # Interactive chat mode
fuzzy agent <name> -i -c # Continue previous session
# Standalone OpenAI-compatible agent (works with any API)
fuzzy-agent --base-url http://localhost:8000/v1 --model llama-3.1 "Hello"
fuzzy-agent --api-key sk-... "What is 2+2?" # Uses OpenAI by default
fuzzy-agent --json "What is 2+2?" # Output event stream as JSONL
fuzzy-agent -i # Interactive mode
The agent includes tools for file operations (read, list, bash, glob, rg) to test agentic capabilities, particularly useful for code navigation and analysis tasks.
fuzzy includes predefined configurations for popular agentic models, so you do not have to specify --vllm arguments manually. fuzzy will also check if the model you selected can actually run on your pod with respect to the number of GPUs and available VRAM. Run fuzzy start without additional arguments to see a list of predefined models that can run on the active pod.
# Qwen2.5-Coder-32B - Excellent coding model, fits on single H100/H200
fuzzy start Qwen/Qwen2.5-Coder-32B-Instruct --name qwen
# Qwen3-Coder-30B - Advanced reasoning with tool use
fuzzy start Qwen/Qwen3-Coder-30B-A3B-Instruct --name qwen3
# Qwen3-Coder-480B - State-of-the-art on 8xH200 (data-parallel mode)
fuzzy start Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8 --name qwen-480b
# Requires special vLLM build during setup
fuzzy pods setup gpt-pod "ssh root@1.2.3.4" --models-path /workspace --vllm gpt-oss
# GPT-OSS-20B - Fits on 16GB+ VRAM
fuzzy start openai/gpt-oss-20b --name gpt20
# GPT-OSS-120B - Needs 60GB+ VRAM
fuzzy start openai/gpt-oss-120b --name gpt120
# GLM-4.5 - Requires 8-16 GPUs, includes thinking mode
fuzzy start zai-org/GLM-4.5 --name glm
# GLM-4.5-Air - Smaller version, 1-2 GPUs
fuzzy start zai-org/GLM-4.5-Air --name glm-air
For models not in the predefined list, use --vllm to pass arguments directly to vLLM:
# DeepSeek with custom settings
fuzzy start deepseek-ai/DeepSeek-V3 --name deepseek --vllm \
--tensor-parallel-size 4 --trust-remote-code
# Mistral with pipeline parallelism
fuzzy start mistralai/Mixtral-8x22B-Instruct-v0.1 --name mixtral --vllm \
--tensor-parallel-size 8 --pipeline-parallel-size 2
# Any model with specific tool parser
fuzzy start some/model --name mymodel --vllm \
--tool-call-parser hermes --enable-auto-tool-choice
DataCrunch offers the best experience with shared NFS storage across pods:
sudo mount -t nfs -o nconnect=16 nfs.fin-02.datacrunch.io:/hf-models-fin02-8ac1bab7 /mnt/hf-models-fin02)# Get mount command from DataCrunch dashboard
fuzzy pods setup dc1 "ssh root@instance.datacrunch.io" \
--mount "sudo mount -t nfs -o nconnect=16 nfs.fin-02.datacrunch.io:/your-pseudo /mnt/hf-models"
# Models automatically stored in /mnt/hf-models (extracted from mount command)
RunPod offers good persistent storage with network volumes:
/runpod-volume# With network volume
fuzzy pods setup runpod "ssh root@pod.runpod.io" --models-path /runpod-volume
# Or use workspace (persists with pod but not shareable)
fuzzy pods setup runpod "ssh root@pod.runpod.io" --models-path /workspace
When running multiple models, fuzzy automatically assigns them to different GPUs:
fuzzy start model1 --name m1 # Auto-assigns to GPU 0
fuzzy start model2 --name m2 # Auto-assigns to GPU 1
fuzzy start model3 --name m3 # Auto-assigns to GPU 2
For predefined models with multiple configurations, use --gpus to control GPU usage:
# Run Qwen on 1 GPU instead of all available
fuzzy start Qwen/Qwen2.5-Coder-32B-Instruct --name qwen --gpus 1
# Run GLM-4.5 on 8 GPUs (if it has an 8-GPU config)
fuzzy start zai-org/GLM-4.5 --name glm --gpus 8
If the model doesn't have a configuration for the requested GPU count, you'll see available options.
For models that don't fit on a single GPU:
# Use all available GPUs
fuzzy start meta-llama/Llama-3.1-70B-Instruct --name llama70b --vllm \
--tensor-parallel-size 4
# Specific GPU count
fuzzy start Qwen/Qwen3-Coder-480B-A35B-Instruct-FP8 --name qwen480 --vllm \
--data-parallel-size 8 --enable-expert-parallel
All models expose OpenAI-compatible endpoints:
from openai import OpenAI
client = OpenAI(
base_url="http://your-pod-ip:8001/v1",
api_key="your-fuzzy-api-key"
)
# Chat completion with tool calling
response = client.chat.completions.create(
model="Qwen/Qwen2.5-Coder-32B-Instruct",
messages=[
{"role": "user", "content": "Write a Python function to calculate fibonacci"}
],
tools=[{
"type": "function",
"function": {
"name": "execute_code",
"description": "Execute Python code",
"parameters": {
"type": "object",
"properties": {
"code": {"type": "string"}
},
"required": ["code"]
}
}
}],
tool_choice="auto"
)
fuzzy includes a standalone OpenAI-compatible agent that can work with any API:
# Install globally to get fuzzy-agent command
npm install -g @fuzzyos/fuzzy
# Use with OpenAI
fuzzy-agent --api-key sk-... "What is machine learning?"
# Use with local vLLM
fuzzy-agent --base-url http://localhost:8000/v1 \
--model meta-llama/Llama-3.1-8B-Instruct \
--api-key dummy \
"Explain quantum computing"
# Interactive mode
fuzzy-agent -i
# Continue previous session
fuzzy-agent --continue "Follow up question"
# Custom system prompt
fuzzy-agent --system-prompt "You are a Python expert" "Write a web scraper"
# Use responses API (for GPT-OSS models)
fuzzy-agent --api responses --model openai/gpt-oss-20b "Hello"
The agent supports:
fuzzy automatically configures appropriate tool calling parsers for known models:
hermes parser (Qwen3-Coder uses qwen3_coder)glm4_moe parser with reasoning support/v1/responses endpoint, as tool calling (function calling in OpenAI parlance) is currently a WIP with the v1/chat/completions endpoint.--vllm --tool-call-parser <parser> --enable-auto-tool-choiceTo disable tool calling:
fuzzy start model --name mymodel --vllm --disable-tool-call-parser
Controls how much GPU memory vLLM pre-allocates:
--memory 30%: High concurrency, limited context--memory 50%: Balanced (default)--memory 90%: Maximum context, low concurrencySets maximum input + output tokens:
--context 4k: 4,096 tokens total--context 32k: 32,768 tokens total--context 128k: 131,072 tokens totalExample for coding workload:
# Large context for code analysis, moderate concurrency
fuzzy start Qwen/Qwen2.5-Coder-32B-Instruct --name coder \
--context 64k --memory 70%
Note: When using --vllm, the --memory, --context, and --gpus parameters are ignored. You'll see a warning if you try to use them together.
The interactive agent mode (-i) saves sessions for each project directory:
# Start new session
fuzzy agent qwen -i
# Continue previous session (maintains chat history)
fuzzy agent qwen -i -c
Sessions are stored in ~/.fuzzy/sessions/ organized by project path and include:
The agent uses a unified event-based architecture where all interactions flow through AgentEvent types. This enables:
Events are automatically converted to the appropriate API format (Chat Completions or Responses) based on the model type.
Use --json flag to output the event stream as JSONL (JSON Lines) for programmatic consumption:
fuzzy-agent --api-key sk-... --json "What is 2+2?"
Each line is a complete JSON object representing an event:
{"type":"user_message","text":"What is 2+2?"}
{"type":"assistant_start"}
{"type":"assistant_message","text":"2 + 2 = 4"}
{"type":"token_usage","inputTokens":10,"outputTokens":5,"totalTokens":15,"cacheReadTokens":0,"cacheWriteTokens":0}
--memory percentage--context size# Check GPU usage
fuzzy ssh "nvidia-smi"
# Check if port is in use
fuzzy list
# Force stop all models
fuzzy stop
--vllm --tool-call-parser mistral--vllm --disable-tool-call-parserSome models (Llama, Mistral) require HuggingFace access approval. Visit the model page and click "Request access".
If using --vllm nightly fails, try:
--vllm release for stable versionfuzzy ssh "nvidia-smi"If the agent shows configuration instead of your message, ensure quotes around messages with special characters:
# Good
fuzzy agent qwen "What is this file about?"
# Bad (shell might interpret special chars)
fuzzy agent qwen What is this file about?
# Override active pod for any command
fuzzy start model --name test --pod dev-pod
fuzzy list --pod prod-pod
fuzzy stop test --pod dev-pod
# Pass any vLLM argument after --vllm
fuzzy start model --name custom --vllm \
--quantization awq \
--enable-prefix-caching \
--max-num-seqs 256 \
--gpu-memory-utilization 0.95
# Watch GPU utilization
fuzzy ssh "watch -n 1 nvidia-smi"
# Check model downloads
fuzzy ssh "du -sh ~/.cache/huggingface/hub/*"
# View all logs
fuzzy ssh "ls -la ~/.vllm_logs/"
# Check agent session history
ls -la ~/.fuzzy/sessions/
HF_TOKEN - HuggingFace token for model downloadsFUZZY_API_KEY - API key for vLLM endpointsFUZZY_CONFIG_DIR - Config directory (default: ~/.fuzzy)OPENAI_API_KEY - Used by fuzzy-agent when no --api-key providedMIT
FAQs
CLI tool for managing vLLM deployments on GPU pods
The npm package @fuzzyos/fuzzy receives a total of 14 weekly downloads. As such, @fuzzyos/fuzzy popularity was classified as not popular.
We found that @fuzzyos/fuzzy demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.

Security News
pnpm 12 rewrites the package manager in Rust, cutting install times by up to 90% while preserving pnpm 11 workflows and lockfiles.

Security News
Socket CTO Ahmad Nassri joins AppSec leaders at Black Hat to discuss active malware, package manager risks, and software supply chain defense.

Research
/Security News
Thirteen malicious Packagist themes expose visitors on unpatched iPhones to a WebKit-to-kernel exploit chain that steals device data and wallet seeds.