🚀 B200 bare metal now at $5.6/hr. The best price you'll find. DC in US West → (Access it from Bare metal button on top after login).

Get Your B200 →
Start Building
Developer tools · packet-gpu-cli

GPU cloud from your terminal.

One command to provision a GPU. No dashboards, no clicking. JSON output, CI/CD-ready, works on macOS, Linux, and Windows.

$npm install -g packet-gpu-cli
macOS · Linux · Windows · Node.js 18+
packet ~ /workspace
# Authenticate with your API key
$ packet login
✓ Logged in as developer@company.com
# See available GPUs and pricing
$ packet gpus
┌────────────────┬──────┬──────────┬───────────┐
GPU VRAM Price/hr Status
├────────────────┼──────┼──────────┼───────────┤
RTX PRO 6000 96GB $1.29 available
H100 80GB $1.95 available
B200 180GB $3.75 available
└────────────────┴──────┴──────────┴───────────┘
# Launch a GPU with VS Code pre-installed
$ packet launch --gpu rtx-pro-6000 --setup vscode
⠋ Launching RTX PRO 6000 with VS Code in Browser...
✓ Launched RTX PRO 6000
Instance ID: 12847
Setup: 💻 VS Code in Browser
✓ Instance is ready!
SSH: ssh ubuntu@gpu-12847.packet.ai -p 30122
# Or setup Jupyter on an existing instance
$ packet setup jupyter-torch 12847
⠋ Running 🔥 Jupyter + PyTorch setup (~5 min)...
✓ 🔥 Jupyter + PyTorch is ready!
jupyter port 8888 (token: packet)
# SSH directly into your instance
$ packet ssh 12847
ubuntu@gpu-12847:~$ nvidia-smi
# When you're done
$ packet terminate 12847
✓ Instance 12847 terminated
Built for developers

Everything you need. Nothing you don't.

The packet-gpu-cli was designed by developers who got tired of clicking through cloud dashboards. Every feature exists to keep you in flow.

Launch in seconds
One command to provision a GPU. No clicking through dashboards. Provisioning typically under 60 seconds.
Secure auth
API key stored locally in ~/.packet/config. Supports PACKET_API_KEY env var for CI/CD pipelines.
Auto-setup
Launch with VS Code, Jupyter, or PyTorch pre-installed. One flag: --setup vscode.
Scriptable
Use in bash scripts, Makefiles, zx, or CI/CD. --json output for piping into jq or your tooling.
Direct SSH
packet ssh connects instantly. No ~/.ssh/config edits, no port juggling.
Cost tracking
See pricing and runtime costs directly in your terminal. Per-instance and per-account spend on demand.
Cross-platform
Works on macOS, Linux, and Windows. Node.js 18+. Single binary install via Homebrew also available.
Open source
Source on GitHub. MIT licensed. Issues, PRs, and feature requests welcome.
Quick start

From npm install to SSH in under a minute.

1
Install the CLI
Available via npm. Node.js 18 or higher required.
$npm install -g packet-gpu-cli
2
Authenticate
Run packet login and enter your API key. Generate one from your account settings →
$packet login --key your-api-key
3
Launch a GPU
Pick a GPU and wait for it to be ready. Provisioning is typically under 60 seconds.
$packet launch --gpu rtx-pro-6000 --wait
4
Connect via SSH
Drop into your instance. Your SSH key is auto-injected.
$packet ssh <instance-id>
Command reference

Every command, one page.

Run packet --help for the live version, or browse here.

packet login
Authenticate with your API key
packet logout
Remove stored credentials
packet whoami
Show current account and wallet balance
packet gpus
List available GPU types and pricing
packet launch --gpu <type>
Launch a new GPU instance
packet launch --setup <preset>
Launch with auto-setup (vscode, jupyter, jupyter-torch, etc.)
packet setup list
List available auto-setup presets
packet setup <preset> <id>
Run a setup on an existing instance
packet ps
List your running instances
packet ssh <id>
SSH into an instance
packet logs <id>
View instance status and info
packet terminate <id>
Terminate an instance
CI/CD

Use in CI/CD.

Run GPU workloads in GitHub Actions, GitLab CI, CircleCI, or any pipeline. Launch a GPU, train, evaluate, push results, terminate. All in one job.

.github/workflows/train.yml
# Run a GPU training job on every push
name: Train Model
on: [push]
jobs:
train:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install packet CLI
run: npm install -g packet-gpu-cli
- name: Launch GPU and train
env:
PACKET_API_KEY: ${{ secrets.PACKET_API_KEY }}
run: |
packet login --key $PACKET_API_KEY
# Launch GPU and capture the instance ID
INSTANCE=$(packet launch --gpu h100 --wait --json | jq -r '.id')
# Run training
packet ssh $INSTANCE -c "cd /workspace && python train.py"
# Cleanup
packet terminate $INSTANCE -f
CLI FAQ

Questions about the CLI.

The things developers ask before npm install.

Which operating systems are supported?
macOS, Linux, and Windows. Node.js 18 or higher. The CLI is a single npm package. No native compilation step. Also available as a standalone binary via Homebrew on macOS/Linux.
How do I use it in CI/CD without an interactive login?
Set the PACKET_API_KEY environment variable. The CLI picks it up automatically. No packet login step required. Works with GitHub Actions secrets, GitLab CI variables, CircleCI contexts, and any other secret manager.
What output formats does the CLI support?
Human-readable by default. Add --json to any command for machine-readable output. Pipe straight into jq, parse in Python, or assert in your test suite.
Can I run GPU workloads in a Makefile?
Yes. The CLI is designed to be composable. Make targets, bash scripts, and zx scripts all work cleanly. --wait blocks until the instance is ready; exit codes are stable for scripting.
What auto-setup presets are available?
vscode (VS Code in browser), jupyter, jupyter-torch (Jupyter + PyTorch + CUDA), vllm (vLLM inference server), ollama, and others. Run packet setup list for the live list.
How does authentication work?
API keys are stored locally at ~/.packet/config (mode 0600). You can also pass --key per command, or set PACKET_API_KEY in the environment. Rotate keys anytime in your dashboard. Old keys revoke instantly.
Is the CLI open source?
Yes. MIT licensed on GitHub. Issues, PRs, and feature requests welcome. We also accept community contributions to the auto-setup preset library.
What happens if my SSH disconnects mid-training?
The job keeps running on the GPU. packet.ai doesn't kill processes on SSH disconnect. Reconnect with packet ssh <id>. We recommend tmux or screen for long jobs, or packet ssh -c "..." for fire-and-forget commands.

Install. Launch. Ship.

Install the CLI and launch your first GPU in under a minute.