by Shaivpidadi
FreeRide gives you unlimited free AI in OpenClaw by automatically managing OpenRouter's free models.
# Add to your Claude Code skills
git clone https://github.com/Shaivpidadi/FreeRideGuides for using ide extensions skills like FreeRide.
name: freeride description: Manages free AI models from OpenRouter for OpenClaw. Automatically ranks models by quality, configures fallbacks for rate-limit handling, and updates openclaw.json. Use when the user mentions free AI, OpenRouter, model switching, rate limits, or wants to reduce AI costs. env:
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.
Before running any FreeRide command, ensure:
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:
export OPENROUTER_API_KEY="sk-or-v1-..."
# Or persist it:
openclaw config set env.OPENROUTER_API_KEY "sk-or-v1-..."
The freeride CLI is installed. Check with which freeride. If not found:
cd ~/.openclaw/workspace/skills/free-ride
pip install -e .
When the user wants free AI, run these steps in order:
# 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.
| Command | When to use it |
|---------|----------------|
| freeride auto | User wants free AI set up (most common) |
| | User wants fallbacks but wants to keep their current primary model |
| | User wants more fallbacks (default is 5) |
| | User wants to see available free models |
| | User wants to see all free models |
| | User wants a specific model (e.g. ) |
| | Add specific model as fallback only |
| | Check current FreeRide configuration |
| | Update only the fallback models |
| | Force refresh the cached model list |
| | User is rate-limited / fallback chain is dead — live-test and rebuild |
🚀 FreeRide v3 is out — works with any OpenAI-compatible agent
The version on this repo (v2) is OpenClaw-specific and OpenRouter-only. FreeRide v3 is a local OpenAI-compatible gateway that routes across 5 free-tier providers (OpenRouter, Groq, NVIDIA NIM, Cloudflare Workers AI, HuggingFace) with automatic failover, and works with Aider, Continue, Hermes, OpenClaw, the OpenAI Python SDK, and any other OpenAI-shaped client.
curl -sSL https://api.free-ride.xyz/install.sh | sh export OPENROUTER_API_KEY=sk-or-v1-... freeride serveThen point any agent at
http://localhost:11343/v1— or use a binder:freeride bind aider # writes ~/.aider.conf.yml freeride bind continue # writes ~/.continue/config.yaml freeride bind hermes # writes ~/.hermes/config.yaml freeride bind openclaw # writes ~/.openclaw/openclaw.json
No comments yet. Be the first to share your thoughts!
Top skills in this category by stars
freeride auto -ffreeride auto -c 10freeride listfreeride list -n 30freeride switch <model>freeride switch qwen3-coderfreeride switch <model> -ffreeride statusfreeride fallbacksfreeride refreshfreeride rotateAfter any command that changes config, always run openclaw gateway restart.
FreeRide updates only these keys in ~/.openclaw/openclaw.json:
agents.defaults.model.primary — e.g. openrouter/qwen/qwen3-coder:freeagents.defaults.model.fallbacks — e.g. ["openrouter/free", "nvidia/nemotron:free", ...]agents.defaults.models — allowlist so /model command shows the free modelsEverything 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.
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:
# 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-verified models. Recommend this whenever the user is leaving an unattended OpenClaw setup running.
| Problem | Fix |
|---------|-----|
| freeride: command not found | cd ~/.openclaw/workspace/skills/free-ride && pip install -e . |
| OPENROUTER_API_KEY not set | User needs a key from https://openrouter.ai/keys |
| Changes not taking effect | openclaw gateway restart then /new for fresh session |
| Agent shows 0 tokens | Check freeride status — primary should be openrouter/<provider>/<model>:free |
👉 Repo: https://github.com/Shaivpidadi/FreeRideV3 · Site: https://free-ride.xyz · PyPI: pip install freeride-gateway
The v2 surface below still works for existing OpenClaw users — v3 ships
v2 backwards-compat shims (freeride auto/list/switch/...), so an
in-place upgrade preserves your existing setup.
FreeRide gives you unlimited free AI in OpenClaw by automatically managing OpenRouter's free models.
You: *hits rate limit*
FreeRide: "I got you." *switches to next best model*
You: *keeps coding*
You're using OpenClaw. You love it. But:
One command. Free AI. Forever.
freeride auto
That's it. FreeRide:
npx clawhub@latest install free-ride
cd ~/.openclaw/workspace/skills/free-ride
pip install -e .
That's it. freeride and freeride-watcher are now available as global commands.
Go to openrouter.ai/keys → Create account → Generate key
No credit card. No trial. Actually free.
export OPENROUTER_API_KEY="sk-or-v1-..."
# Or, multiple keys (shown in `freeride status`):
export OPENROUTER_API_KEY='["sk-or-v1-key1","sk-or-v1-key2"]'
Or add it to your OpenClaw config:
openclaw config set env.OPENROUTER_API_KEY "sk-or-v1-..."
freeride auto
openclaw gateway restart
Message your agent on WhatsApp/Telegram/Discord or the dashboard:
You: /status
Agent: (shows the free model name + token count)
Done. You're now running on free AI with automatic fallbacks.
Primary Model: openrouter/nvidia/nemotron-3-nano-30b-a3b:free (256K context)
Fallbacks:
1. openrouter/free ← Smart router (auto-picks best available)
2. qwen/qwen3-coder:free ← Great for coding
3. stepfun/step-3.5:free ← Fast responses
4. deepseek/deepseek:free ← Strong reasoning
5. mistral/mistral:free ← Reliable fallback
When you hit a rate limit, OpenClaw automatically tries the next model. You keep working. No interruptions.
| Command | What it does |
|---------|--------------|
| freeride auto | Auto-configure best model + fallbacks |
| freeride list | See all 30+ free models ranked |
| freeride switch <model> | Use a specific model |
| freeride status | Check your current setup |
| freeride fallbacks | Update fallbacks only |
| freeride refresh | Force refresh model cache |
| freeride rotate | Live-test primary; swap to a working model if it's failing |
# Already have a model you like? Just add fallbacks:
freeride auto -f
# Want more fallbacks for maximum uptime?
freeride auto -c 10
# Coding? Switch to the best coding model:
freeride switch qwen3-coder
# See what's available:
freeride list -n 30
# Always restart OpenClaw after changes:
openclaw gateway restart
FreeRide scores each model (0-1) based on:
| Factor | Weight | Why | |--------|--------|-----| | Context Length | 40% | Longer = handle bigger codebases | | Capabilities | 30% | Vision, tools, structured output | | Recency | 20% | Newer models = better performance | | Provider Trust | 10% | Google, Meta, NVIDIA, etc. |
The smart fallback openrouter/free is always first - it auto-selects based on what your request needs.
After running freeride auto and openclaw gateway restart:
# Check OpenClaw sees the models
openclaw models list
# Validate config
openclaw doctor --fix
# Open the dashboard and chat
openclaw dashboard
# Or message your agent on WhatsApp/Telegram/Discord
Useful agent commands to verify:
| Command | What it tells you |
|---------|-------------------|
| /status | Current model + token usage |
| /model | Available models (your free models should be listed) |
| /new | Start fresh session with the new model |
The watcher is a long-running process that probes your current primary model
every minute and rotates the config the moment it starts failing. Because it
runs outside the agent's inference loop, it can recover from a "everything
is 429" deadlock that the agent itself can't escape (the agent would need
inference to call freeride rotate, but inference is exactly what's broken).
# Foreground (good for trying it out)
freeride-watcher
# Background, persistent across logout
nohup freeride-watcher > ~/.openclaw/freeride-watcher.log 2>&1 &
# One-off check (no loop)
freeride-watcher --once
# See state (rotation count, last reason)
freeride-watcher --status
# Custom interval (seconds)
freeride-watcher --interval 120
For an actual service, point your favorite supervisor (launchd, systemd,
tmux, pm2) at freeride-watcher. There is no PID file — stop it with
Ctrl-C or kill <pid>.
Is this actually free?
Yes. OpenRouter provides free tiers for many models. You just need an account (no credit card).
What about rate limits?
Three layers of defense:
openrouter/free smart router is always fallback #1 — server-side smart routing onto whatever free model is actually available.freeride-watcher daemon — runs in the background, probes the primary every 60s, rotates the config the moment it starts failing. This is what saves you when the entire fallback chain is dead and the agent has nothing left to route to.If you've set multiple keys via OPENROUTER_API_KEY='["key1","key2"]', every layer above also rotates through them on 429.
Will it mess up my OpenClaw config?
No. FreeRide only touches agents.defaults.model and agents.defaults.models. Your gateway, channels, plugins, workspace, customInstructions - all preserved.
Which models are free?
Run freeride list to see current availability. It changes, which is why FreeRide exists.
Do I need to restart OpenClaw after changes?
Yes. Run openclaw gateway restart after any FreeRide command that changes your config.
| Scenario | Monthly Cost | |----------|--------------| | GPT-4 API | $50-200+ | | Claude API | $50-200+ | | OpenClaw + FreeRide | $0 |
You're welcome.
┌──────────────┐ ┌──────────────┐ ┌──────────────────┐
│ You │ ──→ │ FreeRide │ ──→ │ OpenRouter API │
│ "freeride │ │ │ │ (30+ free │
│ auto" │ │ • Fetch │ │ models) │
└──────────────┘ │ • Rank │ └──────────────────┘
│ • Configure │
└──────┬───────┘
│
▼
┌──────────────┐
│ ~/.openclaw/ │
│ openclaw.json│
└──────┬───────┘
│
openclaw gateway restart
│
▼
┌──────────────┐
│ OpenClaw │
│ (free AI!) │
└──────────────┘
Found a bug? Want a feature? PRs welcome.
cd ~/.openclaw/workspace/skills/free-ride
# Test commands
freeride list
freeride status
freeride auto --help