Free Ride - Unlimited free AI
Manages free AI models from OpenRouter for OpenClaw. Automatically ranks models by quality, configures fallbacks for rate-limit handling, and updates opencla...
$ openclaw install free-ride --registry http://localhost:13001下载说明
--- 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:
description: OpenRouter API key — get a free one at openrouter.ai/keys required: true secret: true network:
writes:
install: pip install -e . ---
- name: OPENROUTER_API_KEY
- openrouter.ai
- ~/.openclaw/openclaw.json (keys: agents.defaults.model, agents.defaults.models only)
- ~/.openclaw/.freeride-cache.json
- ~/.openclaw/.freeride-watcher-state.json
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 restartThat'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 --statusThe 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.
Troubleshooting
| 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` |
安装解析
{
"artifact": {
"downloadUrl": "/api/v1/download?slug=free-ride&version=1.0.11&ownerHandle=shaivpidadi",
"format": "zip",
"generated": true,
"kind": "skillArchive",
"sha256": "3820db163fc16175d29e43276829dcf908fbaf80cd361f0c3e681988aa6e10de",
"size": 5882
},
"owner": {
"displayName": "Shaishav Pidadi",
"handle": "shaivpidadi",
"id": "00b75c50-9fc3-45bf-a6af-98a26b6050cb",
"verified": false
},
"skill": {
"displayName": "Free Ride - Unlimited free AI",
"latestVersion": "1.0.11",
"license": "MIT-0",
"name": "free-ride",
"ownerHandle": "shaivpidadi",
"slug": "free-ride",
"stats": {
"downloads": 68100,
"installs": 2347,
"stars": 471
},
"summary": "Manages free AI models from OpenRouter for OpenClaw. Automatically ranks models by quality, configures fallbacks for rate-limit handling, and updates opencla...",
"tags": [
"integrations",
"Json"
],
"type": "skill",
"updatedAt": "2026-07-06T10:48:49.188Z"
},
"sourceHandoff": null,
"version": {
"checksum": null,
"checksumAlgorithm": null,
"id": "b8f1a685-52de-4e08-aaa4-107644891961",
"publishedAt": "2026-05-06T20:05:14.776Z",
"size": null,
"version": "1.0.11",
"artifactStorageKey": null,
"changelog": "- Added .gitignore file to manage untracked files in the repository.\n- Documentation improvements in SKILL.md: clarified the daemon usage in the Watcher section, added the freeride rotate command description, and expanded instructions for unattended setups.\n- No changes to user-facing commands or logic.",
"manifest": {
"clawhub": {
"tags": {
"latest": "1.0.11"
},
"owner": "shaivpidadi",
"stats": {
"stars": 471,
"comments": 25,
"installs": 2347,
"versions": 9,
"downloads": 68100
},
"topics": [
"Json"
],
"categories": [
"integrations"
]
},
"install": "openclaw skills install @shaivpidadi/free-ride"
},
"readme": "---\nname: freeride\ndescription: 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.\nenv:\n - name: OPENROUTER_API_KEY\n description: OpenRouter API key — get a free one at openrouter.ai/keys\n required: true\n secret: true\nnetwork:\n - openrouter.ai\nwrites:\n - ~/.openclaw/openclaw.json (keys: agents.defaults.model, agents.defaults.models only)\n - ~/.openclaw/.freeride-cache.json\n - ~/.openclaw/.freeride-watcher-state.json\ninstall: pip install -e .\n---\n\n# FreeRide - Free AI for OpenClaw\n\n## What This Skill Does\n\nConfigures 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.\n\n## Prerequisites\n\nBefore running any FreeRide command, ensure:\n\n1. **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:\n ```bash\n export OPENROUTER_API_KEY=\"sk-or-v1-...\"\n # Or persist it:\n openclaw config set env.OPENROUTER_API_KEY \"sk-or-v1-...\"\n ```\n\n2. **The `freeride` CLI is installed.** Check with `which freeride`. If not found:\n ```bash\n cd ~/.openclaw/workspace/skills/free-ride\n pip install -e .\n ```\n\n## Primary Workflow\n\nWhen the user wants free AI, run these steps in order:\n\n```bash\n# Step 1: Configure best free model + fallbacks\nfreeride auto\n\n# Step 2: Restart gateway so OpenClaw picks up the changes\nopenclaw gateway restart\n```\n\nThat's it. The user now has free AI with automatic fallback switching.\n\nVerify by telling the user to send `/status` to check the active model.\n\n## Commands Reference\n\n| Command | When to use it |\n|---------|----------------|\n| `freeride auto` | User wants free AI set up (most common) |\n| `freeride auto -f` | User wants fallbacks but wants to keep their current primary model |\n| `freeride auto -c 10` | User wants more fallbacks (default is 5) |\n| `freeride list` | User wants to see available free models |\n| `freeride list -n 30` | User wants to see all free models |\n| `freeride switch <model>` | User wants a specific model (e.g. `freeride switch qwen3-coder`) |\n| `freeride switch <model> -f` | Add specific model as fallback only |\n| `freeride status` | Check current FreeRide configuration |\n| `freeride fallbacks` | Update only the fallback models |\n| `freeride refresh` | Force refresh the cached model list |\n| `freeride rotate` | User is rate-limited / fallback chain is dead — live-test and rebuild |\n\n**After any command that changes config, always run `openclaw gateway restart`.**\n\n## What It Writes to Config\n\nFreeRide updates only these keys in `~/.openclaw/openclaw.json`:\n\n- `agents.defaults.model.primary` — e.g. `openrouter/qwen/qwen3-coder:free`\n- `agents.defaults.model.fallbacks` — e.g. `[\"openrouter/free\", \"nvidia/nemotron:free\", ...]`\n- `agents.defaults.models` — allowlist so `/model` command shows the free models\n\nEverything else (gateway, channels, plugins, env, customInstructions, named agents) is preserved.\n\nThe first fallback is always `openrouter/free` — OpenRouter's smart router that auto-picks the best available model based on the request.\n\n## Watcher (Background Daemon)\n\nFor autonomous recovery from a \"whole chain is rate-limited\" deadlock — which\nthe agent can't fix by itself, since calling `freeride rotate` requires\ninference and inference is exactly what's failing — the user can run a slim\nbackground daemon:\n\n```bash\n# Foreground\nfreeride-watcher\n\n# Persistent background\nnohup freeride-watcher > ~/.openclaw/freeride-watcher.log 2>&1 &\n\n# One-shot check (no loop)\nfreeride-watcher --once\n\n# State / history\nfreeride-watcher --status\n```\n\nThe daemon probes the current primary every 60s; if it fails, it rebuilds the\nchain with live-verified models. Recommend this whenever the user is leaving\nan unattended OpenClaw setup running.\n\n## Troubleshooting\n\n| Problem | Fix |\n|---------|-----|\n| `freeride: command not found` | `cd ~/.openclaw/workspace/skills/free-ride && pip install -e .` |\n| `OPENROUTER_API_KEY not set` | User needs a key from https://openrouter.ai/keys |\n| Changes not taking effect | `openclaw gateway restart` then `/new` for fresh session |\n| Agent shows 0 tokens | Check `freeride status` — primary should be `openrouter/<provider>/<model>:free` |"
}
}