Skip to content

Releases: jambuai/gpu4agents

v0.7.0: any GPU provider

Choose a tag to compare

@jgabriellima jgabriellima released this 02 Nov 21:12

Added

  • Any GPU provider. An adapter can live in the project (provider.plugin: ./gpu_providers/acme.py:AcmeProvider in jambu.yaml) or in an installed package that declares a gpu4agents.providers entry point. Neither needs a change to gpu4agents. Vast.ai stays built in.
  • gpu providers new NAME writes an adapter skeleton with every method that needs the provider's API marked. gpu init --provider NAME writes a jambu.yaml that loads it.
  • PROVIDERS.md, served at gpu4agents.jambu.ai/providers.md: the steps an agent follows to add a provider, from the skeleton to one test rental with the user's approval.
  • The provider contract has credentials_url and verify_credentials(), which gpu login uses for every provider.
  • Plugin manifests in the style of Humanizer: a Claude Code marketplace (/plugin marketplace add jambuai/gpu4agents), a Cursor plugin, and Codex metadata in skills/gpu4agents/agents/openai.yaml. Each release attaches gpu4agents-skill.zip for Claude.ai and Claude Desktop.

Changed

  • gpu login works with any provider: --provider NAME picks it (default: the project's, else GPU_PROVIDER, else Vast.ai), it prompts for each credential the adapter declares, and it saves GPU_PROVIDER so account-wide commands outside a project use that provider. --json output now includes provider.
  • The skill, INSTALL.md, the MCP server's instructions and the installer no longer assume Vast.ai. When no account is connected, the agent asks which provider the user wants.
  • Docs and the website were edited for plain language.

Install

Paste into Claude Code, Codex, Gemini CLI or Cursor:

Set up GPU for Agents for me. I'm using Claude Code. Fetch https://gpu4agents.jambu.ai/install.md with curl and follow its steps.

Or install the skill the agent's own way: /plugin marketplace add jambuai/gpu4agents in Claude Code, npx skills add jambuai/gpu4agents --global --agent codex for Codex, gpu4agents-skill.zip below for Claude.ai and Claude Desktop.

To add a GPU provider: Add RunPod as a GPU provider to GPU for Agents. Fetch https://gpu4agents.jambu.ai/providers.md with curl and follow its steps.

GPU for Agents 0.6.0: agents install it themselves

Choose a tag to compare

@jgabriellima jgabriellima released this 02 Nov 19:10

Your agent installs GPU for Agents itself

Paste one line into Claude Code, Codex, Gemini CLI or Cursor:

Set up GPU for Agents for me. I'm using Claude Code. Fetch https://gpu4agents.jambu.ai/install.md with curl and follow its steps.

The agent installs the gpu command (uv brings its own Python: nothing to install first on Linux or macOS), the skill and the MCP tools, and rents nothing. You connect your GPU account in your own terminal, so the agent never sees the key:

gpu login

Prefer a terminal? curl -fsSL https://gpu4agents.jambu.ai/install.sh | sh, or npx skills add jambuai/gpu4agents for just the skill.

Added

  • install.sh: needs only curl. Installs uv if missing, then gpu4agents on a Python uv downloads when needed, removes an old jambu-gpu tool, and sets up every agent runtime it finds (--agent to pick one).
  • INSTALL.md (served at /install.md): the steps an agent follows from the pasted prompt.
  • gpu login: hidden prompt, checks the key against Vast.ai, saves it in ~/.gpu/credentials (mode 600). --check reports whether a working key is found; --stdin reads it from a pipe.
  • gpu agent install -t codex, -t gemini and -t auto. Codex, Gemini CLI and Cursor share the skill in .agents/skills/gpu4agents/; Codex gets the MCP server in ~/.codex/config.toml, Gemini CLI in .gemini/settings.json.
  • The skill is published at skills/gpu4agents/, works with npx skills add, and now covers installing, connecting the account, monitoring (status, logs, events, ls, sweep) and exit codes.

Changed

  • The skill is named gpu4agents (was gpu); gpu agent install replaces the old folder it wrote before.
  • Cursor gets the skill in .agents/skills/ instead of .claude/skills/.

Validated: a headless Claude Code, in an empty home with no Python tools, installed and configured everything from the one-line prompt and sent the user to gpu login without asking for the key. See docs/ACCEPTANCE.md.

Full changelog: CHANGELOG.md

GPU for Agents 0.5.0

Choose a tag to compare

@jgabriellima jgabriellima released this 02 Nov 18:31

GPU for Agents

jambu-gpu is now GPU for Agents

Your agent rents the GPU it needs, on its own. You pay only while it works: we watch every machine and shut down the idle ones.

pipx install gpu4agents            # or: uv tool install gpu4agents
gpu agent install                  # Claude Code; -t cursor, -t desktop

Website and 1-minute video: https://gpu4agents.jambu.ai

Changed

  • The package is gpu4agents on PyPI and the module is gpu4agents. The gpu command, MCP tool names, jambu.yaml, .gpu/, ~/.gpu and the labels on running instances are unchanged, so existing projects and machines keep working.
  • The repository moved to jambuai/gpu4agents; old URLs redirect.

Added

  • gpu --version.
  • Code of Conduct, security policy, issue and PR templates, CI on Python 3.10 to 3.13, and a release workflow that attaches the wheel and sdist to each release.

Migrating from jambu-gpu

pipx uninstall jambu-gpu && pipx install gpu4agents

jambu-gpu 0.5.0 is a transition release that installs gpu4agents. Sweep timers that run python -m jambu_gpu keep working through an alias module; gpu sweep --install-timer rewrites them.

The VSL (gpu4agents-vsl.mp4) is attached for anyone who wants to share it.

Full changelog: CHANGELOG.md

v0.4.1

Choose a tag to compare

@jgabriellima jgabriellima released this 26 Oct 00:45

A stalled image pull no longer costs 30 minutes per host

gpu setup now replaces a host when its image pull shows no progress for health.pull_stall_timeout (default 10m): the provider's boot message is the same line, empty, or only Retrying in N seconds. Before, such a host was kept until health.boot_timeout (30 minutes), and live, none of the stalled hosts ever recovered. The host is destroyed, remembered as bad for 24h, and another is rented, as before.

  • Healthy pulls measured live showed a new line at least every 8 minutes, hence the 10-minute default. off disables it; changing it needs no --recreate.
  • Replaying the live status log, the stalled hosts are dropped at 10, 11 and 27 minutes instead of 30; the healthy boots are untouched.
  • A host that pulls slowly but steadily still waits for boot_timeout.
pip install -U jambu-gpu==0.4.1

v0.4.0 — coding agents can rent GPUs

Choose a tag to compare

@jgabriellima jgabriellima released this 26 Oct 00:45

New: Claude Code, Cursor and Claude Desktop

  • gpu mcp — a local MCP server (stdio, nothing hosted) with 13 tools: gpu_init, gpu_validate, gpu_offers, gpu_setup, gpu_status, gpu_connection, gpu_run, gpu_logs, gpu_lock, gpu_unlock, gpu_stop, gpu_destroy (needs confirm=true), gpu_ls. gpu_setup runs in the background and re-attaches on each call, so a 15-minute first rent never hits a tool timeout; gpu_stop/gpu_destroy cancel a setup in progress.
  • A bundled skill that teaches the agent to show the price and ask before renting, wait out a slow setup, never touch VAST_API_KEY, and clean up.
  • gpu agent install (-t claude | cursor | desktop, --global) writes the skill and registers the server, merging existing configs.

Guide: docs/AGENTS.md. Validated live: a headless Claude Code with no context rented a GPU, queried the model, destroyed it and checked the account was empty.

Fixes

  • gpu status / gpu logs work during a setup ("busy": true); a held project lock is now exit code 12.
  • The last host that failed when setup gave up is remembered as bad.
  • On Vast the vLLM image defaults to vastai/vllm:v0.32.0-cuda-13.0 (cached on Vast hosts) instead of the 12 GB Docker Hub image that stalled 30 min per host. Pin compute.image to keep the old one.

pip install jambu-gpu==0.4.0

v0.3.1

Choose a tag to compare

@jgabriellima jgabriellima released this 26 Oct 00:45

Fix

  • Vast: floor GPU compute capability. The offer search only floored the host driver's CUDA, so old cards (GTX 1080, V100) behind a CUDA-13 driver were rented and vLLM crashed at startup. Cheapest-first ordering made this common. Now the runtime declares a minimum compute capability (vLLM: 8.0 on CUDA-13 images, 7.0 on CUDA-12), overridable with compute.gpu.compute_cap_min, enforced in the Vast query and checked client-side.

pip install jambu-gpu==0.3.1

jambu-gpu 0.3.0

Choose a tag to compare

@jgabriellima jgabriellima released this 26 Oct 00:45

gpu keeps its files in .gpu/ (per project) and ~/.gpu (per user) instead of .jambu.

Upgrading is automatic: the first command renames an existing .jambu/ or ~/.jambu, so an instance a project already tracks is kept, not rented again. GPU_HOME overrides ~/.gpu (JAMBU_HOME is still read).

Includes everything in 0.2.0: per-instance endpoint keys, the JSON integration contract and docs/INTEGRATION.md.

pip install jambu-gpu==0.3.0

jambu-gpu 0.2.0

Choose a tag to compare

@jgabriellima jgabriellima released this 26 Oct 00:45

GPUs that cannot keep billing, and a contract any application can integrate.

Lifecycle

  • The watchdog retries a failed stop (destroys after 30 min of failures), re-arms on every restart, and runs under a supervisor.
  • Inference traffic counts as activity; stopped instances are destroyed after lifecycle.stopped_ttl (default 24h).
  • gpu ls and gpu sweep (with a systemd timer) guard every project by its own rules and clean up orphans.
  • Failed setups always clean up; bad hosts are replaced automatically and remembered for a day.

Integration

  • The model endpoint now requires a key, generated per instance.
  • gpu --json setup / gpu env return base_url, api_key and model for any OpenAI SDK.
  • docs/INTEGRATION.md: commands, JSON, exit codes, lifecycle, recipes for TypeScript, Python and shell.
  • examples/typescript-client: a one-file helper that ensures the GPU and heals the connection after an idle stop.

Validated on real Vast.ai hardware: see docs/ACCEPTANCE.md.

pip install jambu-gpu==0.2.0