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.

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

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.

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.

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.