cheapskate
extension
Free-tier provider auto-rotation — select cheapskate/auto as your model and it transparently routes across configured free-tier backends (Gemini, Cerebras, Groq, SambaNova, OpenRouter, OpenCode Zen, NVIDIA, Cloudflare)
cost-optimizationfree-tiermodelsprovidersrotation
Open Settings → Add-Ons and pick cheapskate
Source: addons/cheapskate

Free-tier provider auto-rotation for piclaw. Select cheapskate/auto as your model and requests are transparently routed to whichever free-tier backend is available, rotating on rate-limit errors.

Requires Piclaw >=1.8.0.

Install

Open Settings → Add-Ons and install cheapskate from the catalog.

How it works

The addon registers a cheapskate provider with an auto model. When selected, it tries each enabled backend in order, skipping any that are rate-limited or have exhausted their free quota. If one backend fails, it rotates to the next.

Context-length errors also trigger rotation, so long conversations don't get stuck on a backend with a small context window. The registered model metadata always reflects the currently active backend's real limits — context window, max tokens, and reasoning support are not merged across all configured backends.

Backends

Provider Model Context Reasoning Keychain entry
Google Gemini Gemini 2.5 Flash 1M google/generative-ai-api-key
Cerebras Qwen 3 235B 131K cerebras/api-key
Groq QwQ 32B 131K groq/api-key
SambaNova DeepSeek R1 65K sambanova/api-key
OpenRouter DeepSeek R1 (free) 163K openrouter/api-key
OpenCode Zen GPT OSS 120B 128K opencode/api-key
NVIDIA NIM Llama 3.3 70B 131K nvidia/api-key
Cloudflare Workers AI Llama 3.3 70B 131K cloudflare/api-token plus CLOUDFLARE_ACCOUNT_ID

Settings pane

Open Settings → Cheapskate to:

The pane reads/writes non-secret config through the direct backend add-on config API (/agent/addons/api/cheapskate/config) and uses /agent/keychain for secrets.

Cheapskate settings pane on the microVM test instance

A restart is needed after adding or changing a key for the runtime to pick it up. The settings pane stores the Cloudflare token but does not collect CLOUDFLARE_ACCOUNT_ID; set that non-secret account ID in the runtime environment.

Storage model

What Where
API keys Keychain — each backend has a named entry (see table above). Keys are auto-injected as environment variables at runtime.
Backend enabled/disabled Runtime database — extension KV store (SQLite, global scope, extension ID cheapskate)
Safety cap toggles Runtime database — same KV store as above

No config files are written to disk. Legacy .pi/cheapskate.json is auto-migrated to the runtime database on first load.

Management tool

The cheapskate tool supports status, list, usage, and rotate actions for inspecting or changing the active backend.

Outside piclaw, the extension still imports and runs in a vanilla Pi/Bun environment: piclaw-specific config hooks are optional, and KV storage falls back to an in-memory store.