Skip to main content

vasted

CI License: MIT

vasted is a CLI that launches on-demand Vast.ai GPU workers for llama.cpp GGUF inference and exposes a stable OpenAI-compatible /v1 endpoint.

Built by deeflect.com · Follow on X: x.com/deeflectcom

Demo

vasted demo

Why vasted

  • Stable client endpoint while worker URLs rotate.
  • Setup wizard for local machine and VPS deployments.
  • Non-interactive automation mode for agents/CI.
  • OpenAI-compatible proxy for tools that expect /v1 APIs.
  • Session usage and cost tracking.
  • Optional Telegram bot control commands.

Requirements

  • Python 3.12+
  • uv
  • Vast.ai account + API key
  • Optional: Telegram bot token (telegram extra)

Install

git clone https://github.com/deeflect/vasted.git
cd vasted
uv sync --extra dev

Run CLI commands from the repo:

uv run vasted --help

Install as a tool

uv tool install "git+https://github.com/deeflect/vasted.git"

Upgrade later:

uv tool upgrade vasted

Quick Start

uv run vasted setup
uv run vasted up
uv run vasted status --verbose

Client connection values after setup:

  • Base URL: http://<host>:<port>/v1
  • Auth header: Authorization: Bearer <token>

When proxy_host is 0.0.0.0, use your real machine/VPS IP or domain in clients.

Automation / Unattended Mode

Use non-interactive commands to avoid prompts:

uv run vasted setup --non-interactive \
  --vast-api-key "$VASTED_API_KEY" \
  --bearer-token "$VASTED_BEARER_TOKEN" \
  --client openclaw \
  --deployment-mode local_pc \
  --model qwen3-coder-30b \
  --quality balanced \
  --gpu-mode auto

uv run vasted up --non-interactive --yes --jinja --model qwen3-coder-30b --quality balanced --gpu-mode auto --no-serve
uv run vasted status --verbose
uv run vasted usage
uv run vasted down --force

Environment variables accepted by setup --non-interactive:

  • VASTED_API_KEY
  • VASTED_BEARER_TOKEN
  • VASTED_CLIENT (openclaw, opencode, custom)
  • VASTED_LLAMA_JINJA (true/false)
  • VASTED_MODEL, VASTED_QUALITY, VASTED_GPU_MODE, VASTED_GPU_PRESET
  • VASTED_DEPLOYMENT_MODE, VASTED_PROXY_HOST, VASTED_PROXY_PORT, VASTED_PUBLIC_HOST

Client Profiles and Jinja Behavior

setup supports client presets that define default llama.cpp --jinja behavior:

  • --client openclaw: jinja on by default
  • --client opencode: jinja off by default
  • --client custom: keep/manual behavior

Per launch override is still available:

uv run vasted up --jinja
uv run vasted up --no-jinja

Command Reference

vasted setup [--non-interactive] [--manual] [--client openclaw|opencode|custom]
vasted up [--model ...] [--quality ...] [--gpu-mode auto|manual] [--gpu-preset ...] [--profile ...] [--max-price ...] [--jinja|--no-jinja] [--yes] [--non-interactive] [--serve|--no-serve]
vasted down [--force]
vasted status [--verbose]
vasted logs [--instance-id N] [--tail N]
vasted usage
vasted token show [--full]
vasted token rotate
vasted rotate-token
vasted config show
vasted profile list|add|use|remove
vasted completions <bash|zsh|fish>

Telegram Bot (Optional)

Install telegram extra and run:

uv sync --extra telegram
uv run python bot.py

Development

uv run ruff check .
uv run mypy app tests bot.py
uv run pytest -q

Project Layout

  • app/commands/*: CLI command handlers
  • app/service.py: worker lifecycle + launch policy
  • app/proxy.py: OpenAI-compatible reverse proxy
  • app/vast.py: Vast API integration + startup script generation
  • app/usage.py: token/time/cost accounting
  • app/user_config.py: persistent config + keyring integration
  • app/state.py: runtime state persistence
  • bot.py: optional Telegram control plane

Security

  • Keep Vast API keys and bearer tokens private.
  • Prefer localhost binds unless remote access is required.
  • See SECURITY.md for disclosure policy.

Contributing

See CONTRIBUTING.md and run the validation commands before opening a PR.

License

MIT — see LICENSE.

Metadata

Release files for vasted 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vasted 0.1.0
File Size Uploaded
vasted-0.1.0.tar.gz 21.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for vasted 0.1.0
File Interpreter ABI Platform
vasted-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 21.6 MB

Release files / vasted-0.1.0.tar.gz

Download URL vasted-0.1.0.tar.gz
Size 21.6 MB
Tags Source
SHA-256 checksum
How to use checksums
3e1c45d47e371ad4f646fea79f863b04342aad2d1fc54948e25c618eb63dfdb7
BLAKE2b-256 checksum
How to use checksums
f0dc01fd428c01390cc4d77918d52b7d093c5158a50f488cacbb392ef7208fbd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 1, 2026.

Transparency log

Release files / vasted-0.1.0-py3-none-any.whl

Download URL vasted-0.1.0-py3-none-any.whl
Size 51.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1e85287fec1d35a6ba8a1a42a55a7ec1fa6ba9fbfdadf1984999e21841802354
BLAKE2b-256 checksum
How to use checksums
ce251c01e0156b0aee1328aa3be66a5d5a8861f780f72c0ca8f83a8adb33d3c3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 1, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page