
Freeride
Configure OpenClaw to run on free OpenRouter models with ranked fallbacks so rate limits and API spend do not interrupt solo agent work.
Overview
FreeRide is an agent skill for the Operate phase that ranks free OpenRouter models and updates OpenClaw defaults with primary and fallback routing to handle rate limits and lower AI cost.
Install
npx skills add https://github.com/shaivpidadi/freeride --skill freerideWhat is this skill?
- Ranks free OpenRouter models by quality and picks a primary model for OpenClaw
- Adds ordered fallback models when the primary hits OpenRouter rate limits
- Writes only agents.defaults.model and agents.defaults.models in ~/.openclaw/openclaw.json while preserving other keys
- Maintains ~/.openclaw/.freeride-cache.json and .freeride-watcher-state.json for refresh and watcher continuity
- Installable freeride CLI via pip install -e . with OPENROUTER_API_KEY as the required secret
- Writes only two openclaw.json key paths: agents.defaults.model and agents.defaults.models
- Requires OPENROUTER_API_KEY with network access to openrouter.ai
Adoption & trust: 724 installs on skills.sh; 215 GitHub stars; 2/3 security scanners passed (skills.sh audits); trending (+100% hot-view momentum).
What problem does it solve?
You run OpenClaw but paid or single-model defaults stall when OpenRouter rate-limits you or when you want free inference without hand-editing openclaw.json.
Who is it for?
Solo builders already using OpenClaw who have an OpenRouter key and want free-tier models plus automatic fallback when limits trigger.
Skip if: Teams not on OpenClaw, builders who need guaranteed SLAs on proprietary models only, or anyone unwilling to store OPENROUTER_API_KEY for network calls to openrouter.ai.
When should I use this skill?
User mentions free AI, OpenRouter, model switching, rate limits, or wants to reduce AI costs for OpenClaw.
What do I get? / Deliverables
OpenClaw gets an updated primary free model and ranked fallbacks in openclaw.json so sessions keep running through rate limits with minimal manual config.
- Updated agents.defaults.model and agents.defaults.models in ~/.openclaw/openclaw.json
- Freeride cache and watcher state files under ~/.openclaw
Recommended Skills
Journey fit
Canonical shelf is Operate because the skill maintains live OpenClaw model defaults, fallbacks, and cost-related routing after the agent is already in use. Infra fits updating agents.defaults.model, cache, and watcher state in ~/.openclaw—runtime configuration rather than feature code.
How it compares
OpenClaw-focused OpenRouter config integration—not a generic Claude Code or Cursor model picker inside the IDE.
Common Questions / FAQ
Who is freeride for?
FreeRide is for solo and indie builders running OpenClaw who want free OpenRouter models, ordered fallbacks, and safer openclaw.json updates without rebuilding their agent stack.
When should I use freeride?
Use it in Operate (infra) when you need to cut inference cost or survive rate limits; it also helps in Build (agent-tooling) when you first wire OpenClaw to OpenRouter. Invoke when you mention free AI, OpenRouter, model switching, rate limits, or reducing AI costs.
Is freeride safe to install?
It requires a secret API key, network access to openrouter.ai, and writes under ~/.openclaw including openclaw.json—review the Security Audits panel on this Prism page and confirm the key scope before installing.
SKILL.md
READMESKILL.md - Freeride
# FreeRide - Free AI for OpenClaw ## What This Skill Does Configures OpenClaw to use **free** AI models from OpenRouter. Sets the best free model as primary, adds ranked fallbacks so rate limits don't interrupt the user, and preserves existing config. ## Prerequisites Before running any FreeRide command, ensure: 1. **OPENROUTER_API_KEY is set.** Check with `echo $OPENROUTER_API_KEY`. If empty, the user must get a free key at https://openrouter.ai/keys and set it: ```bash export OPENROUTER_API_KEY="sk-or-v1-..." # Or persist it: openclaw config set env.OPENROUTER_API_KEY "sk-or-v1-..." ``` 2. **The `freeride` CLI is installed.** Check with `which freeride`. If not found: ```bash cd ~/.openclaw/workspace/skills/free-ride pip install -e . ``` ## Primary Workflow When the user wants free AI, run these steps in order: ```bash # Step 1: Configure best free model + fallbacks freeride auto # Step 2: Restart gateway so OpenClaw picks up the changes openclaw gateway restart ``` That's it. The user now has free AI with automatic fallback switching. Verify by telling the user to send `/status` to check the active model. ## Commands Reference | Command | When to use it | |---------|----------------| | `freeride auto` | User wants free AI set up (most common) | | `freeride auto -f` | User wants fallbacks but wants to keep their current primary model | | `freeride auto -c 10` | User wants more fallbacks (default is 5) | | `freeride list` | User wants to see available free models | | `freeride list -n 30` | User wants to see all free models | | `freeride switch <model>` | User wants a specific model (e.g. `freeride switch qwen3-coder`) | | `freeride switch <model> -f` | Add specific model as fallback only | | `freeride status` | Check current FreeRide configuration | | `freeride fallbacks` | Update only the fallback models | | `freeride refresh` | Force refresh the cached model list | | `freeride rotate` | User is rate-limited / fallback chain is dead — live-test and rebuild | **After any command that changes config, always run `openclaw gateway restart`.** ## What It Writes to Config FreeRide updates only these keys in `~/.openclaw/openclaw.json`: - `agents.defaults.model.primary` — e.g. `openrouter/qwen/qwen3-coder:free` - `agents.defaults.model.fallbacks` — e.g. `["openrouter/free", "nvidia/nemotron:free", ...]` - `agents.defaults.models` — allowlist so `/model` command shows the free models Everything else (gateway, channels, plugins, env, customInstructions, named agents) is preserved. The first fallback is always `openrouter/free` — OpenRouter's smart router that auto-picks the best available model based on the request. ## Watcher (Background Daemon) For autonomous recovery from a "whole chain is rate-limited" deadlock — which the agent can't fix by itself, since calling `freeride rotate` requires inference and inference is exactly what's failing — the user can run a slim background daemon: ```bash # Foreground freeride-watcher # Persistent background nohup freeride-watcher > ~/.openclaw/freeride-watcher.log 2>&1 & # One-shot check (no loop) freeride-watcher --once # State / history freeride-watcher --status ``` The daemon probes the current primary every 60s; if it fails, it rebuilds the chain with live-verifi