{"id":"baf6ecb4-0542-4432-ae0f-16eafc87c755","entityType":"agent","slug":"clawhub-shaivpidadi-free-ride","name":"Free Ride - Unlimited free AI","canonicalUrl":"https://www.xpersona.co/agent/clawhub-shaivpidadi-free-ride","canonicalPath":"/agent/clawhub-shaivpidadi-free-ride","generatedAt":"2026-10-08T23:23:34.299Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-05-31T07:01:56.461Z","emptyReason":null},"description":"Manages free AI models from OpenRouter for OpenClaw. Automatically ranks models by quality, configures fallbacks for rate-limit handling, and updates opencla...","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 65.5K downloads reported by the source. Last updated 5/31/2026.","installCommand":"clawhub skill install s176gtst9b3sj98jytmvxc17gd83ggrw:free-ride","sourceUrl":"https://clawhub.ai/shaivpidadi/free-ride","homepage":"https://clawhub.ai/shaivpidadi/free-ride","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/shaivpidadi/free-ride","kind":"source"}],"safetyScore":84,"overallRank":62,"popularityScore":96,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Free Ride - Unlimited free AI technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-05-31T07:01:56.461Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-05-31T07:01:56.461Z","emptyReason":null},"stars":null,"forks":null,"downloads":65463,"packageName":null,"latestVersion":"1.0.11","tractionLabel":"65.5K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-05-31T07:01:56.461Z","emptyReason":null},"lastUpdatedAt":"2026-05-31T07:01:56.461Z","lastCrawledAt":"2026-05-31T07:01:56.461Z","lastIndexedAt":null,"nextCrawlAt":"2026-06-01T07:01:56.461Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.11","createdAt":"2026-05-06T20:05:14.776Z","changelog":"- Added .gitignore file to manage untracked files in the repository. - 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. - No changes to user-facing commands or logic.","fileCount":9,"zipByteSize":20105},{"version":"1.0.9","createdAt":"2026-04-15T18:14:37.028Z","changelog":"- Automatically configures OpenClaw to use free AI models from OpenRouter, ranking by quality and setting up fallback models to handle rate limits. - Updates only specific keys in `~/.openclaw/openclaw.json` to preserve the user's existing configuration. - Provides a detailed command reference, including model switching, fallback configuration, and cache refresh. - Introduces a watcher utility for automatic fallback rotation. - Includes setup, troubleshooting guidance, and clear prerequisites for seamless integration.","fileCount":8,"zipByteSize":18644},{"version":"1.0.8","createdAt":"2026-04-02T14:43:18.807Z","changelog":"- Added formal SKILL metadata section with required environment variable (OPENROUTER_API_KEY), network permissions (openrouter.ai), install instructions, and files written by the skill. - No changes to functionality or commands; documentation and configuration remain the same. - Clarified and documented file writes to openclaw-related JSON files for transparency and stronger integration.","fileCount":8,"zipByteSize":18590},{"version":"1.0.7","createdAt":"2026-03-27T13:32:26.215Z","changelog":"- Adds detailed SKILL.md documentation for the freeride skill. - Clearly explains prerequisites, primary workflow, command reference, config changes, optional watcher, and troubleshooting steps. - No code changes or functionality updates detailed.","fileCount":8,"zipByteSize":16932},{"version":"1.0.5","createdAt":"2026-03-16T13:54:01.979Z","changelog":"- No code or documentation changes detected in this version. - This release maintains all previous functionality and instructions.","fileCount":8,"zipByteSize":16827},{"version":"1.0.4","createdAt":"2026-02-18T15:46:40.089Z","changelog":"- Added Python packaging support with a new setup.py file to enable installation via pip. - Updated documentation in SKILL.md for clearer, step-by-step installation and usage instructions. - Expanded troubleshooting section and clarified prerequisites for smoother user onboarding. - Added new watcher command documentation for advanced auto-rotation features.","fileCount":8,"zipByteSize":16727},{"version":"1.0.3","createdAt":"2026-02-14T18:55:41.291Z","changelog":"- Added installation instructions for FreeRide using npx clawhub. - No other changes detected to functionality, commands, or flags. - Documentation now helps users install the skill more easily if it's missing.","fileCount":7,"zipByteSize":14940},{"version":"1.0.2","createdAt":"2026-02-05T17:53:58.059Z","changelog":"- Initial release of the FreeRide skill for OpenClaw. - Automatically ranks and configures free OpenRouter AI models by quality. - Sets up automatic fallback handling for rate limits, including the OpenRouter smart router. - Updates only the model configuration in openclaw.json, preserving other user settings. - Includes commands for listing models, auto-configuration, switching models, updating fallbacks, checking status, and refreshing the model cache.","fileCount":7,"zipByteSize":15002}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s176gtst9b3sj98jytmvxc17gd83ggrw:free-ride","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s176gtst9b3sj98jytmvxc17gd83ggrw:free-ride` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/shaivpidadi/free-ride before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-shaivpidadi-free-ride/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-shaivpidadi-free-ride/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-shaivpidadi-free-ride/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-shaivpidadi-free-ride/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-shaivpidadi-free-ride/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-shaivpidadi-free-ride/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-08T23:23:34.294Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-shaivpidadi-free-ride/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-shaivpidadi-free-ride/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-shaivpidadi-free-ride/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-shaivpidadi-free-ride/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-05-31T07:01:56.461Z","emptyReason":null},"readme":"Skill: Free Ride - Unlimited free AI\n\nOwner: shaivpidadi\n\nSummary: Manages free AI models from OpenRouter for OpenClaw. Automatically ranks models by quality, configures fallbacks for rate-limit handling, and updates opencla...\n\nTags: latest:1.0.11\n\nVersion history:\n\nv1.0.11 | 2026-05-06T20:05:14.776Z | user\n\n- 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.\n\nv1.0.9 | 2026-04-15T18:14:37.028Z | user\n\n- Automatically configures OpenClaw to use free AI models from OpenRouter, ranking by quality and setting up fallback models to handle rate limits.\n- Updates only specific keys in `~/.openclaw/openclaw.json` to preserve the user's existing configuration.\n- Provides a detailed command reference, including model switching, fallback configuration, and cache refresh.\n- Introduces a watcher utility for automatic fallback rotation.\n- Includes setup, troubleshooting guidance, and clear prerequisites for seamless integration.\n\nv1.0.8 | 2026-04-02T14:43:18.807Z | user\n\n- Added formal SKILL metadata section with required environment variable (OPENROUTER_API_KEY), network permissions (openrouter.ai), install instructions, and files written by the skill.\n- No changes to functionality or commands; documentation and configuration remain the same.\n- Clarified and documented file writes to openclaw-related JSON files for transparency and stronger integration.\n\nv1.0.7 | 2026-03-27T13:32:26.215Z | user\n\n- Adds detailed SKILL.md documentation for the freeride skill.\n- Clearly explains prerequisites, primary workflow, command reference, config changes, optional watcher, and troubleshooting steps.\n- No code changes or functionality updates detailed.\n\nv1.0.5 | 2026-03-16T13:54:01.979Z | user\n\n- No code or documentation changes detected in this version.\n- This release maintains all previous functionality and instructions.\n\nv1.0.4 | 2026-02-18T15:46:40.089Z | user\n\n- Added Python packaging support with a new setup.py file to enable installation via pip.\n- Updated documentation in SKILL.md for clearer, step-by-step installation and usage instructions.\n- Expanded troubleshooting section and clarified prerequisites for smoother user onboarding.\n- Added new watcher command documentation for advanced auto-rotation features.\n\nv1.0.3 | 2026-02-14T18:55:41.291Z | user\n\n- Added installation instructions for FreeRide using npx clawhub.\n- No other changes detected to functionality, commands, or flags.\n- Documentation now helps users install the skill more easily if it's missing.\n\nv1.0.2 | 2026-02-05T17:53:58.059Z | user\n\n- Initial release of the FreeRide skill for OpenClaw.\n- Automatically ranks and configures free OpenRouter AI models by quality.\n- Sets up automatic fallback handling for rate limits, including the OpenRouter smart router.\n- Updates only the model configuration in openclaw.json, preserving other user settings.\n- Includes commands for listing models, auto-configuration, switching models, updating fallbacks, checking status, and refreshing the model cache.\n\nv1.0.0 | 2026-02-05T17:42:17.350Z | user\n\nInitial release of FreeRide, a tool to manage free AI models for OpenClaw via OpenRouter.\n\n- Automatically ranks and configures the best free AI models with fallback options to handle rate limits.\n- Supports listing available models, auto-configuring with best-ranked and fallback models, and switching models as needed.\n- Preserves non-model sections of OpenClaw configuration during updates.\n- Uses a quality-based ranking system factoring in context length, capabilities, recency, and provider trust.\n- Provides clear commands for refreshing model data, checking status, and troubleshooting setup issues.\n\nArchive index:\n\nArchive v1.0.11: 9 files, 20105 bytes\n\nFiles: main.py (35211b), README.md (9697b), requirements.txt (16b), setup.py (674b), skill-card.md (2443b), skill.json (1295b), SKILL.md (4548b), watcher.py (5381b), _meta.json (129b)\n\nFile v1.0.11:SKILL.md\n\n---\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` |\n\nFile v1.0.11:README.md\n\n# 🎢 FreeRide\n\n### Stop paying for AI. Start riding free.\n\n[![ClawHub Downloads](https://api.clawhub-badge.xyz/badge/free-ride/downloads.svg)](https://clawhub.ai/skills/free-ride)\n[![ClawHub Current Installs](https://api.clawhub-badge.xyz/badge/free-ride/installs-current.svg)](https://clawhub.ai/skills/free-ride)\n[![ClawHub Stars](https://api.clawhub-badge.xyz/badge/free-ride/stars.svg)](https://clawhub.ai/skills/free-ride)\n[![ClawHub Version](https://api.clawhub-badge.xyz/badge/free-ride/version.svg)](https://clawhub.ai/skills/free-ride)\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n[![OpenClaw Compatible](https://img.shields.io/badge/OpenClaw-Compatible-blue.svg)](https://github.com/openclaw/openclaw)\n---\n\n**FreeRide** gives you unlimited free AI in [OpenClaw](https://github.com/openclaw/openclaw) by automatically managing OpenRouter's free models.\n\n```\nYou: *hits rate limit*\nFreeRide: \"I got you.\" *switches to next best model*\nYou: *keeps coding*\n```\n\n## The Problem\n\nYou're using OpenClaw. You love it. But:\n\n- 💸 API costs add up fast\n- 🚫 Free models have rate limits\n- 😤 Manually switching models is annoying\n- 🤷 You don't know which free model is actually good\n\n## The Solution\n\nOne command. Free AI. Forever.\n\n```bash\nfreeride auto\n```\n\nThat's it. FreeRide:\n\n1. **Finds** the 30+ free models on OpenRouter\n2. **Ranks** them by quality (context length, capabilities, speed)\n3. **Sets** the best one as your primary\n4. **Configures** smart fallbacks for when you hit rate limits\n5. **Preserves** your existing OpenClaw config\n\n## Installation\n\n```bash\nnpx clawhub@latest install free-ride\ncd ~/.openclaw/workspace/skills/free-ride\npip install -e .\n```\n\nThat's it. `freeride` and `freeride-watcher` are now available as global commands.\n\n## Quick Start\n\n### 1. Get a Free OpenRouter Key\n\nGo to [openrouter.ai/keys](https://openrouter.ai/keys) → Create account → Generate key\n\nNo credit card. No trial. Actually free.\n\n### 2. Set Your Key\n\n```bash\nexport OPENROUTER_API_KEY=\"sk-or-v1-...\"\n\n# Or, multiple keys (shown in `freeride status`):\nexport OPENROUTER_API_KEY='[\"sk-or-v1-key1\",\"sk-or-v1-key2\"]'\n```\n\nOr add it to your OpenClaw config:\n\n```bash\nopenclaw config set env.OPENROUTER_API_KEY \"sk-or-v1-...\"\n```\n\n### 3. Run FreeRide\n\n```bash\nfreeride auto\n```\n\n### 4. Restart OpenClaw\n\n```bash\nopenclaw gateway restart\n```\n\n### 5. Verify It Works\n\nMessage your agent on WhatsApp/Telegram/Discord or the dashboard:\n\n```\nYou:    /status\nAgent:  (shows the free model name + token count)\n```\n\nDone. You're now running on free AI with automatic fallbacks.\n\n## What You Get\n\n```\nPrimary Model: openrouter/nvidia/nemotron-3-nano-30b-a3b:free (256K context)\n\nFallbacks:\n  1. openrouter/free          ← Smart router (auto-picks best available)\n  2. qwen/qwen3-coder:free    ← Great for coding\n  3. stepfun/step-3.5:free    ← Fast responses\n  4. deepseek/deepseek:free   ← Strong reasoning\n  5. mistral/mistral:free     ← Reliable fallback\n```\n\nWhen you hit a rate limit, OpenClaw automatically tries the next model. You keep working. No interruptions.\n\n## Commands\n\n| Command | What it does |\n|---------|--------------|\n| `freeride auto` | Auto-configure best model + fallbacks |\n| `freeride list` | See all 30+ free models ranked |\n| `freeride switch <model>` | Use a specific model |\n| `freeride status` | Check your current setup |\n| `freeride fallbacks` | Update fallbacks only |\n| `freeride refresh` | Force refresh model cache |\n| `freeride rotate` | Live-test primary; swap to a working model if it's failing |\n\n### Pro Tips\n\n```bash\n# Already have a model you like? Just add fallbacks:\nfreeride auto -f\n\n# Want more fallbacks for maximum uptime?\nfreeride auto -c 10\n\n# Coding? Switch to the best coding model:\nfreeride switch qwen3-coder\n\n# See what's available:\nfreeride list -n 30\n\n# Always restart OpenClaw after changes:\nopenclaw gateway restart\n```\n\n## How It Ranks Models\n\nFreeRide scores each model (0-1) based on:\n\n| Factor | Weight | Why |\n|--------|--------|-----|\n| Context Length | 40% | Longer = handle bigger codebases |\n| Capabilities | 30% | Vision, tools, structured output |\n| Recency | 20% | Newer models = better performance |\n| Provider Trust | 10% | Google, Meta, NVIDIA, etc. |\n\nThe **smart fallback** `openrouter/free` is always first - it auto-selects based on what your request needs.\n\n## Testing with Your OpenClaw Agent\n\nAfter running `freeride auto` and `openclaw gateway restart`:\n\n```bash\n# Check OpenClaw sees the models\nopenclaw models list\n\n# Validate config\nopenclaw doctor --fix\n\n# Open the dashboard and chat\nopenclaw dashboard\n# Or message your agent on WhatsApp/Telegram/Discord\n```\n\nUseful agent commands to verify:\n\n| Command | What it tells you |\n|---------|-------------------|\n| `/status` | Current model + token usage |\n| `/model` | Available models (your free models should be listed) |\n| `/new` | Start fresh session with the new model |\n\n## Watcher (Background Daemon)\n\nThe watcher is a long-running process that probes your current primary model\nevery minute and rotates the config the moment it starts failing. Because it\nruns **outside** the agent's inference loop, it can recover from a \"everything\nis 429\" deadlock that the agent itself can't escape (the agent would need\ninference to call `freeride rotate`, but inference is exactly what's broken).\n\n```bash\n# Foreground (good for trying it out)\nfreeride-watcher\n\n# Background, persistent across logout\nnohup freeride-watcher > ~/.openclaw/freeride-watcher.log 2>&1 &\n\n# One-off check (no loop)\nfreeride-watcher --once\n\n# See state (rotation count, last reason)\nfreeride-watcher --status\n\n# Custom interval (seconds)\nfreeride-watcher --interval 120\n```\n\nFor an actual service, point your favorite supervisor (launchd, systemd,\ntmux, pm2) at `freeride-watcher`. There is no PID file — stop it with\n`Ctrl-C` or `kill <pid>`.\n\n## FAQ\n\n**Is this actually free?**\n\nYes. OpenRouter provides free tiers for many models. You just need an account (no credit card).\n\n**What about rate limits?**\n\nThree layers of defense:\n1. **OpenClaw's runtime fallback chain** — when the primary returns 429, the gateway transparently tries fallback 1, 2, 3 at routing time. The agent never sees the 429.\n2. **`openrouter/free` smart router** is always fallback #1 — server-side smart routing onto whatever free model is actually available.\n3. **`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.\n\nIf you've set multiple keys via `OPENROUTER_API_KEY='[\"key1\",\"key2\"]'`, every layer above also rotates through them on 429.\n\n**Will it mess up my OpenClaw config?**\n\nNo. FreeRide only touches `agents.defaults.model` and `agents.defaults.models`. Your gateway, channels, plugins, workspace, customInstructions - all preserved.\n\n**Which models are free?**\n\nRun `freeride list` to see current availability. It changes, which is why FreeRide exists.\n\n**Do I need to restart OpenClaw after changes?**\n\nYes. Run `openclaw gateway restart` after any FreeRide command that changes your config.\n\n## The Math\n\n| Scenario | Monthly Cost |\n|----------|--------------|\n| GPT-4 API | $50-200+ |\n| Claude API | $50-200+ |\n| OpenClaw + FreeRide | **$0** |\n\nYou're welcome.\n\n## Requirements\n\n- [OpenClaw](https://github.com/openclaw/openclaw) installed (Node ≥22)\n- Python 3.8+\n- Free OpenRouter account ([get key](https://openrouter.ai/keys))\n\n## Architecture\n\n```\n┌──────────────┐     ┌──────────────┐     ┌──────────────────┐\n│  You         │ ──→ │  FreeRide    │ ──→ │  OpenRouter API  │\n│  \"freeride   │     │              │     │  (30+ free       │\n│   auto\"      │     │  • Fetch     │     │   models)        │\n└──────────────┘     │  • Rank      │     └──────────────────┘\n                     │  • Configure │\n                     └──────┬───────┘\n                            │\n                            ▼\n                     ┌──────────────┐\n                     │ ~/.openclaw/ │\n                     │ openclaw.json│\n                     └──────┬───────┘\n                            │\n                     openclaw gateway restart\n                            │\n                            ▼\n                     ┌──────────────┐\n                     │  OpenClaw    │\n                     │  (free AI!)  │\n                     └──────────────┘\n```\n\n## Contributing\n\nFound a bug? Want a feature? PRs welcome.\n\n```bash\ncd ~/.openclaw/workspace/skills/free-ride\n\n# Test commands\nfreeride list\nfreeride status\nfreeride auto --help\n```\n\n## Related Projects\n\n- [OpenClaw](https://github.com/openclaw/openclaw) - The AI coding agent\n- [OpenRouter](https://openrouter.ai) - The model router\n- [ClawHub](https://github.com/clawhub) - Skill marketplace\n\n## License\n\nMIT - Do whatever you want.\n\n---\n\n<p align=\"center\">\n  <b>Stop paying. Start riding.</b>\n  <br>\n  <br>\n  <a href=\"https://github.com/Shaivpidadi/FreeRide\">⭐ Star us on GitHub</a>\n  ·\n  <a href=\"https://openrouter.ai/keys\">🔑 Get OpenRouter Key</a>\n  ·\n  <a href=\"https://github.com/openclaw/openclaw\">🦞 Install OpenClaw</a>\n</p>\n\nFile v1.0.11:_meta.json\n\n{\n  \"ownerId\": \"kn7eepf540q01kxs5gzwnvsp5s80hhje\",\n  \"slug\": \"free-ride\",\n  \"version\": \"1.0.11\",\n  \"publishedAt\": 1778097914776\n}\n\nFile v1.0.11:skill-card.md\n\n## Description: <br>\nManages free AI models from OpenRouter for OpenClaw by ranking available free models, configuring fallbacks for rate-limit handling, and updating OpenClaw model configuration. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[shaivpidadi](https://clawhub.ai/user/shaivpidadi) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and OpenClaw users use this skill to configure OpenClaw with free OpenRouter-hosted models, ranked fallbacks, and optional rotation when rate limits interrupt agent use. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can change OpenClaw default and fallback model routing. <br>\nMitigation: Back up ~/.openclaw/openclaw.json before running commands that update configuration, and review model settings before restarting OpenClaw. <br>\nRisk: The optional watcher can keep changing model settings as a background process. <br>\nMitigation: Run freeride-watcher only when continuous automatic rotation is intended, and supervise or stop the process when unattended rotation is no longer needed. <br>\nRisk: The skill requires an OpenRouter API key. <br>\nMitigation: Store OPENROUTER_API_KEY as a secret, avoid sharing logs or shell history that expose it, and rotate the key if disclosure is suspected. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/shaivpidadi/free-ride) <br>\n- [Publisher profile](https://clawhub.ai/user/shaivpidadi) <br>\n- [OpenRouter API keys](https://openrouter.ai/keys) <br>\n- [OpenRouter model API](https://openrouter.ai/api/v1/models) <br>\n- [OpenClaw](https://github.com/openclaw/openclaw) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with CLI commands and OpenClaw configuration changes] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires an OpenRouter API key and may write OpenClaw model, fallback, cache, and watcher state files.] <br>\n\n## Skill Version(s): <br>\n1.0.11 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.11:skill.json\n\n{\n  \"name\": \"freeride\",\n  \"displayName\": \"FreeRide - Free AI for OpenClaw\",\n  \"version\": \"1.1.0\",\n  \"description\": \"Unlimited free AI access for OpenClaw via OpenRouter's free models with automatic fallback switching\",\n  \"author\": \"Shaishav Pidadi\",\n  \"repository\": \"https://github.com/Shaivpidadi/FreeRide\",\n  \"license\": \"MIT\",\n  \"commands\": [\n    \"list\",\n    \"switch\",\n    \"auto\",\n    \"status\",\n    \"refresh\",\n    \"fallbacks\"\n  ],\n  \"binaries\": {\n    \"freeride\": \"main:main\",\n    \"freeride-watcher\": \"watcher:main\"\n  },\n  \"dependencies\": {\n    \"requests\": \">=2.31.0\"\n  },\n  \"secrets\": [\"OPENROUTER_API_KEY\"],\n  \"requiredEnv\": [\"OPENROUTER_API_KEY\"],\n  \"config\": {\n    \"OPENROUTER_API_KEY\": {\n      \"description\": \"Your OpenRouter API key (get free at openrouter.ai/keys)\",\n      \"required\": true,\n      \"secret\": true,\n      \"env\": true\n    }\n  },\n  \"network\": [\"openrouter.ai\"],\n  \"openclaw\": {\n    \"compatible\": true,\n    \"minVersion\": \"1.0.0\",\n    \"configPath\": \"~/.openclaw/openclaw.json\",\n    \"configKeys\": [\n      \"agents.defaults.model\",\n      \"agents.defaults.models\"\n    ],\n    \"requiredSecrets\": [\"OPENROUTER_API_KEY\"],\n    \"networkAccess\": [\"openrouter.ai\"]\n  },\n  \"install\": \"npx clawhub@latest install free-ride && cd ~/.openclaw/workspace/skills/free-ride && pip install -e .\"\n}\n\nFile v1.0.11:requirements.txt\n\nrequests>=2.31.0\n\nArchive v1.0.9: 8 files, 18644 bytes\n\nFiles: main.py (27521b), README.md (8543b), requirements.txt (16b), setup.py (674b), skill.json (1295b), SKILL.md (3993b), watcher.py (18246b), _meta.json (128b)\n\nFile v1.0.9:SKILL.md\n\n---\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\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 (Optional)\n\nFor auto-rotation when rate limited, the user can run:\n\n```bash\nfreeride-watcher --daemon    # Continuous monitoring\nfreeride-watcher --rotate    # Force rotate now\nfreeride-watcher --status    # Check rotation history\n```\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` |\n\nFile v1.0.9:README.md\n\n# 🎢 FreeRide\n\n### Stop paying for AI. Start riding free.\n\n[![ClawHub Downloads](https://api.clawhub-badge.xyz/badge/free-ride/downloads.svg)](https://clawhub.ai/skills/free-ride)\n[![ClawHub Current Installs](https://api.clawhub-badge.xyz/badge/free-ride/installs-current.svg)](https://clawhub.ai/skills/free-ride)\n[![ClawHub Stars](https://api.clawhub-badge.xyz/badge/free-ride/stars.svg)](https://clawhub.ai/skills/free-ride)\n[![ClawHub Version](https://api.clawhub-badge.xyz/badge/free-ride/version.svg)](https://clawhub.ai/skills/free-ride)\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n[![OpenClaw Compatible](https://img.shields.io/badge/OpenClaw-Compatible-blue.svg)](https://github.com/openclaw/openclaw)\n---\n\n**FreeRide** gives you unlimited free AI in [OpenClaw](https://github.com/openclaw/openclaw) by automatically managing OpenRouter's free models.\n\n```\nYou: *hits rate limit*\nFreeRide: \"I got you.\" *switches to next best model*\nYou: *keeps coding*\n```\n\n## The Problem\n\nYou're using OpenClaw. You love it. But:\n\n- 💸 API costs add up fast\n- 🚫 Free models have rate limits\n- 😤 Manually switching models is annoying\n- 🤷 You don't know which free model is actually good\n\n## The Solution\n\nOne command. Free AI. Forever.\n\n```bash\nfreeride auto\n```\n\nThat's it. FreeRide:\n\n1. **Finds** the 30+ free models on OpenRouter\n2. **Ranks** them by quality (context length, capabilities, speed)\n3. **Sets** the best one as your primary\n4. **Configures** smart fallbacks for when you hit rate limits\n5. **Preserves** your existing OpenClaw config\n\n## Installation\n\n```bash\nnpx clawhub@latest install free-ride\ncd ~/.openclaw/workspace/skills/free-ride\npip install -e .\n```\n\nThat's it. `freeride` and `freeride-watcher` are now available as global commands.\n\n## Quick Start\n\n### 1. Get a Free OpenRouter Key\n\nGo to [openrouter.ai/keys](https://openrouter.ai/keys) → Create account → Generate key\n\nNo credit card. No trial. Actually free.\n\n### 2. Set Your Key\n\n```bash\nexport OPENROUTER_API_KEY=\"sk-or-v1-...\"   OR\nexport OPENROUTER_API_KEY=[\"sk-or-v1-...\",\"sk-or-v2-...\" ] # By passing multiple keys it swaps the key on 429 \n```\n\nOr add it to your OpenClaw config:\n\n```bash\nopenclaw config set env.OPENROUTER_API_KEY \"sk-or-v1-...\"\n```\n\n### 3. Run FreeRide\n\n```bash\nfreeride auto\n```\n\n### 4. Restart OpenClaw\n\n```bash\nopenclaw gateway restart\n```\n\n### 5. Verify It Works\n\nMessage your agent on WhatsApp/Telegram/Discord or the dashboard:\n\n```\nYou:    /status\nAgent:  (shows the free model name + token count)\n```\n\nDone. You're now running on free AI with automatic fallbacks.\n\n## What You Get\n\n```\nPrimary Model: openrouter/nvidia/nemotron-3-nano-30b-a3b:free (256K context)\n\nFallbacks:\n  1. openrouter/free          ← Smart router (auto-picks best available)\n  2. qwen/qwen3-coder:free    ← Great for coding\n  3. stepfun/step-3.5:free    ← Fast responses\n  4. deepseek/deepseek:free   ← Strong reasoning\n  5. mistral/mistral:free     ← Reliable fallback\n```\n\nWhen you hit a rate limit, OpenClaw automatically tries the next model. You keep working. No interruptions.\n\n## Commands\n\n| Command | What it does |\n|---------|--------------|\n| `freeride auto` | Auto-configure best model + fallbacks |\n| `freeride list` | See all 30+ free models ranked |\n| `freeride switch <model>` | Use a specific model |\n| `freeride status` | Check your current setup |\n| `freeride fallbacks` | Update fallbacks only |\n| `freeride refresh` | Force refresh model cache |\n\n### Pro Tips\n\n```bash\n# Already have a model you like? Just add fallbacks:\nfreeride auto -f\n\n# Want more fallbacks for maximum uptime?\nfreeride auto -c 10\n\n# Coding? Switch to the best coding model:\nfreeride switch qwen3-coder\n\n# See what's available:\nfreeride list -n 30\n\n# Always restart OpenClaw after changes:\nopenclaw gateway restart\n```\n\n## How It Ranks Models\n\nFreeRide scores each model (0-1) based on:\n\n| Factor | Weight | Why |\n|--------|--------|-----|\n| Context Length | 40% | Longer = handle bigger codebases |\n| Capabilities | 30% | Vision, tools, structured output |\n| Recency | 20% | Newer models = better performance |\n| Provider Trust | 10% | Google, Meta, NVIDIA, etc. |\n\nThe **smart fallback** `openrouter/free` is always first - it auto-selects based on what your request needs.\n\n## Testing with Your OpenClaw Agent\n\nAfter running `freeride auto` and `openclaw gateway restart`:\n\n```bash\n# Check OpenClaw sees the models\nopenclaw models list\n\n# Validate config\nopenclaw doctor --fix\n\n# Open the dashboard and chat\nopenclaw dashboard\n# Or message your agent on WhatsApp/Telegram/Discord\n```\n\nUseful agent commands to verify:\n\n| Command | What it tells you |\n|---------|-------------------|\n| `/status` | Current model + token usage |\n| `/model` | Available models (your free models should be listed) |\n| `/new` | Start fresh session with the new model |\n\n## Watcher (Auto-Rotation)\n\nFreeRide includes a watcher daemon that monitors for rate limits and automatically rotates models:\n\n```bash\n# Run once (check + rotate if needed)\nfreeride-watcher\n\n# Run as daemon (continuous monitoring)\nfreeride-watcher --daemon\n\n# Force rotate to next model\nfreeride-watcher --rotate\n\n# Check watcher status\nfreeride-watcher --status\n\n# Clear rate limit cooldowns\nfreeride-watcher --clear-cooldowns\n```\n\n## FAQ\n\n**Is this actually free?**\n\nYes. OpenRouter provides free tiers for many models. You just need an account (no credit card).\n\n**What about rate limits?**\n\nThat's the whole point. FreeRide configures multiple fallbacks. When one model rate-limits you, OpenClaw automatically switches to the next.\n\n**Will it mess up my OpenClaw config?**\n\nNo. FreeRide only touches `agents.defaults.model` and `agents.defaults.models`. Your gateway, channels, plugins, workspace, customInstructions - all preserved.\n\n**Which models are free?**\n\nRun `freeride list` to see current availability. It changes, which is why FreeRide exists.\n\n**Do I need to restart OpenClaw after changes?**\n\nYes. Run `openclaw gateway restart` after any FreeRide command that changes your config.\n\n## The Math\n\n| Scenario | Monthly Cost |\n|----------|--------------|\n| GPT-4 API | $50-200+ |\n| Claude API | $50-200+ |\n| OpenClaw + FreeRide | **$0** |\n\nYou're welcome.\n\n## Requirements\n\n- [OpenClaw](https://github.com/openclaw/openclaw) installed (Node ≥22)\n- Python 3.8+\n- Free OpenRouter account ([get key](https://openrouter.ai/keys))\n\n## Architecture\n\n```\n┌──────────────┐     ┌──────────────┐     ┌──────────────────┐\n│  You         │ ──→ │  FreeRide    │ ──→ │  OpenRouter API  │\n│  \"freeride   │     │              │     │  (30+ free       │\n│   auto\"      │     │  • Fetch     │     │   models)        │\n└──────────────┘     │  • Rank      │     └──────────────────┘\n                     │  • Configure │\n                     └──────┬───────┘\n                            │\n                            ▼\n                     ┌──────────────┐\n                     │ ~/.openclaw/ │\n                     │ openclaw.json│\n                     └──────┬───────┘\n                            │\n                     openclaw gateway restart\n                            │\n                            ▼\n                     ┌──────────────┐\n                     │  OpenClaw    │\n                     │  (free AI!)  │\n                     └──────────────┘\n```\n\n## Contributing\n\nFound a bug? Want a feature? PRs welcome.\n\n```bash\ncd ~/.openclaw/workspace/skills/free-ride\n\n# Test commands\nfreeride list\nfreeride status\nfreeride auto --help\n```\n\n## Related Projects\n\n- [OpenClaw](https://github.com/openclaw/openclaw) - The AI coding agent\n- [OpenRouter](https://openrouter.ai) - The model router\n- [ClawHub](https://github.com/clawhub) - Skill marketplace\n\n## License\n\nMIT - Do whatever you want.\n\n---\n\n<p align=\"center\">\n  <b>Stop paying. Start riding.</b>\n  <br>\n  <br>\n  <a href=\"https://github.com/Shaivpidadi/FreeRide\">⭐ Star us on GitHub</a>\n  ·\n  <a href=\"https://openrouter.ai/keys\">🔑 Get OpenRouter Key</a>\n  ·\n  <a href=\"https://github.com/openclaw/openclaw\">🦞 Install OpenClaw</a>\n</p>\n\nFile v1.0.9:_meta.json\n\n{\n  \"ownerId\": \"kn7eepf540q01kxs5gzwnvsp5s80hhje\",\n  \"slug\": \"free-ride\",\n  \"version\": \"1.0.9\",\n  \"publishedAt\": 1776276877028\n}\n\nFile v1.0.9:skill.json\n\n{\n  \"name\": \"freeride\",\n  \"displayName\": \"FreeRide - Free AI for OpenClaw\",\n  \"version\": \"1.1.0\",\n  \"description\": \"Unlimited free AI access for OpenClaw via OpenRouter's free models with automatic fallback switching\",\n  \"author\": \"Shaishav Pidadi\",\n  \"repository\": \"https://github.com/Shaivpidadi/FreeRide\",\n  \"license\": \"MIT\",\n  \"commands\": [\n    \"list\",\n    \"switch\",\n    \"auto\",\n    \"status\",\n    \"refresh\",\n    \"fallbacks\"\n  ],\n  \"binaries\": {\n    \"freeride\": \"main:main\",\n    \"freeride-watcher\": \"watcher:main\"\n  },\n  \"dependencies\": {\n    \"requests\": \">=2.31.0\"\n  },\n  \"secrets\": [\"OPENROUTER_API_KEY\"],\n  \"requiredEnv\": [\"OPENROUTER_API_KEY\"],\n  \"config\": {\n    \"OPENROUTER_API_KEY\": {\n      \"description\": \"Your OpenRouter API key (get free at openrouter.ai/keys)\",\n      \"required\": true,\n      \"secret\": true,\n      \"env\": true\n    }\n  },\n  \"network\": [\"openrouter.ai\"],\n  \"openclaw\": {\n    \"compatible\": true,\n    \"minVersion\": \"1.0.0\",\n    \"configPath\": \"~/.openclaw/openclaw.json\",\n    \"configKeys\": [\n      \"agents.defaults.model\",\n      \"agents.defaults.models\"\n    ],\n    \"requiredSecrets\": [\"OPENROUTER_API_KEY\"],\n    \"networkAccess\": [\"openrouter.ai\"]\n  },\n  \"install\": \"npx clawhub@latest install free-ride && cd ~/.openclaw/workspace/skills/free-ride && pip install -e .\"\n}\n\nFile v1.0.9:requirements.txt\n\nrequests>=2.31.0\n\nArchive v1.0.8: 8 files, 18590 bytes\n\nFiles: main.py (27521b), README.md (8427b), requirements.txt (16b), setup.py (674b), skill.json (1295b), SKILL.md (3993b), watcher.py (18246b), _meta.json (128b)\n\nFile v1.0.8:SKILL.md\n\n---\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\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 (Optional)\n\nFor auto-rotation when rate limited, the user can run:\n\n```bash\nfreeride-watcher --daemon    # Continuous monitoring\nfreeride-watcher --rotate    # Force rotate now\nfreeride-watcher --status    # Check rotation history\n```\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` |\n\nFile v1.0.8:README.md\n\n# 🎢 FreeRide\n\n### Stop paying for AI. Start riding free.\n\n[![ClawHub Downloads](https://api.clawhub-badge.xyz/badge/free-ride/downloads.svg)](https://clawhub.ai/skills/free-ride)\n[![ClawHub Current Installs](https://api.clawhub-badge.xyz/badge/free-ride/installs-current.svg)](https://clawhub.ai/skills/free-ride)\n[![ClawHub Stars](https://api.clawhub-badge.xyz/badge/free-ride/stars.svg)](https://clawhub.ai/skills/free-ride)\n[![ClawHub Version](https://api.clawhub-badge.xyz/badge/free-ride/version.svg)](https://clawhub.ai/skills/free-ride)\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n[![OpenClaw Compatible](https://img.shields.io/badge/OpenClaw-Compatible-blue.svg)](https://github.com/openclaw/openclaw)\n---\n\n**FreeRide** gives you unlimited free AI in [OpenClaw](https://github.com/openclaw/openclaw) by automatically managing OpenRouter's free models.\n\n```\nYou: *hits rate limit*\nFreeRide: \"I got you.\" *switches to next best model*\nYou: *keeps coding*\n```\n\n## The Problem\n\nYou're using OpenClaw. You love it. But:\n\n- 💸 API costs add up fast\n- 🚫 Free models have rate limits\n- 😤 Manually switching models is annoying\n- 🤷 You don't know which free model is actually good\n\n## The Solution\n\nOne command. Free AI. Forever.\n\n```bash\nfreeride auto\n```\n\nThat's it. FreeRide:\n\n1. **Finds** the 30+ free models on OpenRouter\n2. **Ranks** them by quality (context length, capabilities, speed)\n3. **Sets** the best one as your primary\n4. **Configures** smart fallbacks for when you hit rate limits\n5. **Preserves** your existing OpenClaw config\n\n## Installation\n\n```bash\nnpx clawhub@latest install free-ride\ncd ~/.openclaw/workspace/skills/free-ride\npip install -e .\n```\n\nThat's it. `freeride` and `freeride-watcher` are now available as global commands.\n\n## Quick Start\n\n### 1. Get a Free OpenRouter Key\n\nGo to [openrouter.ai/keys](https://openrouter.ai/keys) → Create account → Generate key\n\nNo credit card. No trial. Actually free.\n\n### 2. Set Your Key\n\n```bash\nexport OPENROUTER_API_KEY=\"sk-or-v1-...\"\n```\n\nOr add it to your OpenClaw config:\n\n```bash\nopenclaw config set env.OPENROUTER_API_KEY \"sk-or-v1-...\"\n```\n\n### 3. Run FreeRide\n\n```bash\nfreeride auto\n```\n\n### 4. Restart OpenClaw\n\n```bash\nopenclaw gateway restart\n```\n\n### 5. Verify It Works\n\nMessage your agent on WhatsApp/Telegram/Discord or the dashboard:\n\n```\nYou:    /status\nAgent:  (shows the free model name + token count)\n```\n\nDone. You're now running on free AI with automatic fallbacks.\n\n## What You Get\n\n```\nPrimary Model: openrouter/nvidia/nemotron-3-nano-30b-a3b:free (256K context)\n\nFallbacks:\n  1. openrouter/free          ← Smart router (auto-picks best available)\n  2. qwen/qwen3-coder:free    ← Great for coding\n  3. stepfun/step-3.5:free    ← Fast responses\n  4. deepseek/deepseek:free   ← Strong reasoning\n  5. mistral/mistral:free     ← Reliable fallback\n```\n\nWhen you hit a rate limit, OpenClaw automatically tries the next model. You keep working. No interruptions.\n\n## Commands\n\n| Command | What it does |\n|---------|--------------|\n| `freeride auto` | Auto-configure best model + fallbacks |\n| `freeride list` | See all 30+ free models ranked |\n| `freeride switch <model>` | Use a specific model |\n| `freeride status` | Check your current setup |\n| `freeride fallbacks` | Update fallbacks only |\n| `freeride refresh` | Force refresh model cache |\n\n### Pro Tips\n\n```bash\n# Already have a model you like? Just add fallbacks:\nfreeride auto -f\n\n# Want more fallbacks for maximum uptime?\nfreeride auto -c 10\n\n# Coding? Switch to the best coding model:\nfreeride switch qwen3-coder\n\n# See what's available:\nfreeride list -n 30\n\n# Always restart OpenClaw after changes:\nopenclaw gateway restart\n```\n\n## How It Ranks Models\n\nFreeRide scores each model (0-1) based on:\n\n| Factor | Weight | Why |\n|--------|--------|-----|\n| Context Length | 40% | Longer = handle bigger codebases |\n| Capabilities | 30% | Vision, tools, structured output |\n| Recency | 20% | Newer models = better performance |\n| Provider Trust | 10% | Google, Meta, NVIDIA, etc. |\n\nThe **smart fallback** `openrouter/free` is always first - it auto-selects based on what your request needs.\n\n## Testing with Your OpenClaw Agent\n\nAfter running `freeride auto` and `openclaw gateway restart`:\n\n```bash\n# Check OpenClaw sees the models\nopenclaw models list\n\n# Validate config\nopenclaw doctor --fix\n\n# Open the dashboard and chat\nopenclaw dashboard\n# Or message your agent on WhatsApp/Telegram/Discord\n```\n\nUseful agent commands to verify:\n\n| Command | What it tells you |\n|---------|-------------------|\n| `/status` | Current model + token usage |\n| `/model` | Available models (your free models should be listed) |\n| `/new` | Start fresh session with the new model |\n\n## Watcher (Auto-Rotation)\n\nFreeRide includes a watcher daemon that monitors for rate limits and automatically rotates models:\n\n```bash\n# Run once (check + rotate if needed)\nfreeride-watcher\n\n# Run as daemon (continuous monitoring)\nfreeride-watcher --daemon\n\n# Force rotate to next model\nfreeride-watcher --rotate\n\n# Check watcher status\nfreeride-watcher --status\n\n# Clear rate limit cooldowns\nfreeride-watcher --clear-cooldowns\n```\n\n## FAQ\n\n**Is this actually free?**\n\nYes. OpenRouter provides free tiers for many models. You just need an account (no credit card).\n\n**What about rate limits?**\n\nThat's the whole point. FreeRide configures multiple fallbacks. When one model rate-limits you, OpenClaw automatically switches to the next.\n\n**Will it mess up my OpenClaw config?**\n\nNo. FreeRide only touches `agents.defaults.model` and `agents.defaults.models`. Your gateway, channels, plugins, workspace, customInstructions - all preserved.\n\n**Which models are free?**\n\nRun `freeride list` to see current availability. It changes, which is why FreeRide exists.\n\n**Do I need to restart OpenClaw after changes?**\n\nYes. Run `openclaw gateway restart` after any FreeRide command that changes your config.\n\n## The Math\n\n| Scenario | Monthly Cost |\n|----------|--------------|\n| GPT-4 API | $50-200+ |\n| Claude API | $50-200+ |\n| OpenClaw + FreeRide | **$0** |\n\nYou're welcome.\n\n## Requirements\n\n- [OpenClaw](https://github.com/openclaw/openclaw) installed (Node ≥22)\n- Python 3.8+\n- Free OpenRouter account ([get key](https://openrouter.ai/keys))\n\n## Architecture\n\n```\n┌──────────────┐     ┌──────────────┐     ┌──────────────────┐\n│  You         │ ──→ │  FreeRide    │ ──→ │  OpenRouter API  │\n│  \"freeride   │     │              │     │  (30+ free       │\n│   auto\"      │     │  • Fetch     │     │   models)        │\n└──────────────┘     │  • Rank      │     └──────────────────┘\n                     │  • Configure │\n                     └──────┬───────┘\n                            │\n                            ▼\n                     ┌──────────────┐\n                     │ ~/.openclaw/ │\n                     │ openclaw.json│\n                     └──────┬───────┘\n                            │\n                     openclaw gateway restart\n                            │\n                            ▼\n                     ┌──────────────┐\n                     │  OpenClaw    │\n                     │  (free AI!)  │\n                     └──────────────┘\n```\n\n## Contributing\n\nFound a bug? Want a feature? PRs welcome.\n\n```bash\ncd ~/.openclaw/workspace/skills/free-ride\n\n# Test commands\nfreeride list\nfreeride status\nfreeride auto --help\n```\n\n## Related Projects\n\n- [OpenClaw](https://github.com/openclaw/openclaw) - The AI coding agent\n- [OpenRouter](https://openrouter.ai) - The model router\n- [ClawHub](https://github.com/clawhub) - Skill marketplace\n\n## License\n\nMIT - Do whatever you want.\n\n---\n\n<p align=\"center\">\n  <b>Stop paying. Start riding.</b>\n  <br>\n  <br>\n  <a href=\"https://github.com/Shaivpidadi/FreeRide\">⭐ Star us on GitHub</a>\n  ·\n  <a href=\"https://openrouter.ai/keys\">🔑 Get OpenRouter Key</a>\n  ·\n  <a href=\"https://github.com/openclaw/openclaw\">🦞 Install OpenClaw</a>\n</p>\n\nFile v1.0.8:_meta.json\n\n{\n  \"ownerId\": \"kn7eepf540q01kxs5gzwnvsp5s80hhje\",\n  \"slug\": \"free-ride\",\n  \"version\": \"1.0.8\",\n  \"publishedAt\": 1775140998807\n}\n\nFile v1.0.8:skill.json\n\n{\n  \"name\": \"freeride\",\n  \"displayName\": \"FreeRide - Free AI for OpenClaw\",\n  \"version\": \"1.1.0\",\n  \"description\": \"Unlimited free AI access for OpenClaw via OpenRouter's free models with automatic fallback switching\",\n  \"author\": \"Shaishav Pidadi\",\n  \"repository\": \"https://github.com/Shaivpidadi/FreeRide\",\n  \"license\": \"MIT\",\n  \"commands\": [\n    \"list\",\n    \"switch\",\n    \"auto\",\n    \"status\",\n    \"refresh\",\n    \"fallbacks\"\n  ],\n  \"binaries\": {\n    \"freeride\": \"main:main\",\n    \"freeride-watcher\": \"watcher:main\"\n  },\n  \"dependencies\": {\n    \"requests\": \">=2.31.0\"\n  },\n  \"secrets\": [\"OPENROUTER_API_KEY\"],\n  \"requiredEnv\": [\"OPENROUTER_API_KEY\"],\n  \"config\": {\n    \"OPENROUTER_API_KEY\": {\n      \"description\": \"Your OpenRouter API key (get free at openrouter.ai/keys)\",\n      \"required\": true,\n      \"secret\": true,\n      \"env\": true\n    }\n  },\n  \"network\": [\"openrouter.ai\"],\n  \"openclaw\": {\n    \"compatible\": true,\n    \"minVersion\": \"1.0.0\",\n    \"configPath\": \"~/.openclaw/openclaw.json\",\n    \"configKeys\": [\n      \"agents.defaults.model\",\n      \"agents.defaults.models\"\n    ],\n    \"requiredSecrets\": [\"OPENROUTER_API_KEY\"],\n    \"networkAccess\": [\"openrouter.ai\"]\n  },\n  \"install\": \"npx clawhub@latest install free-ride && cd ~/.openclaw/workspace/skills/free-ride && pip install -e .\"\n}\n\nFile v1.0.8:requirements.txt\n\nrequests>=2.31.0\n\nArchive v1.0.7: 8 files, 16932 bytes\n\nFiles: main.py (26735b), README.md (8612b), requirements.txt (16b), setup.py (674b), skill.json (1074b), SKILL.md (3614b), watcher.py (11711b), _meta.json (128b)\n\nFile v1.0.7:SKILL.md\n\n---\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.\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\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 (Optional)\n\nFor auto-rotation when rate limited, the user can run:\n\n```bash\nfreeride-watcher --daemon    # Continuous monitoring\nfreeride-watcher --rotate    # Force rotate now\nfreeride-watcher --status    # Check rotation history\n```\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` |\n\nFile v1.0.7:README.md\n\n⚠️ Note: The FreeRide skill was recently removed from ClawHub without prior explanation.\nWe’ve opened an issue for clarification: https://github.com/openclaw/clawhub/issues/1262\n\n# 🎢 FreeRide\n\n### Stop paying for AI. Start riding free.\n\n[![ClawHub Downloads](https://api.clawhub-badge.xyz/badge/free-ride/downloads.svg)](https://clawhub.ai/skills/free-ride)\n[![ClawHub Current Installs](https://api.clawhub-badge.xyz/badge/free-ride/installs-current.svg)](https://clawhub.ai/skills/free-ride)\n[![ClawHub Stars](https://api.clawhub-badge.xyz/badge/free-ride/stars.svg)](https://clawhub.ai/skills/free-ride)\n[![ClawHub Version](https://api.clawhub-badge.xyz/badge/free-ride/version.svg)](https://clawhub.ai/skills/free-ride)\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n[![OpenClaw Compatible](https://img.shields.io/badge/OpenClaw-Compatible-blue.svg)](https://github.com/openclaw/openclaw)\n---\n\n**FreeRide** gives you unlimited free AI in [OpenClaw](https://github.com/openclaw/openclaw) by automatically managing OpenRouter's free models.\n\n```\nYou: *hits rate limit*\nFreeRide: \"I got you.\" *switches to next best model*\nYou: *keeps coding*\n```\n\n## The Problem\n\nYou're using OpenClaw. You love it. But:\n\n- 💸 API costs add up fast\n- 🚫 Free models have rate limits\n- 😤 Manually switching models is annoying\n- 🤷 You don't know which free model is actually good\n\n## The Solution\n\nOne command. Free AI. Forever.\n\n```bash\nfreeride auto\n```\n\nThat's it. FreeRide:\n\n1. **Finds** the 30+ free models on OpenRouter\n2. **Ranks** them by quality (context length, capabilities, speed)\n3. **Sets** the best one as your primary\n4. **Configures** smart fallbacks for when you hit rate limits\n5. **Preserves** your existing OpenClaw config\n\n## Installation\n\n```bash\nnpx clawhub@latest install free-ride\ncd ~/.openclaw/workspace/skills/free-ride\npip install -e .\n```\n\nThat's it. `freeride` and `freeride-watcher` are now available as global commands.\n\n## Quick Start\n\n### 1. Get a Free OpenRouter Key\n\nGo to [openrouter.ai/keys](https://openrouter.ai/keys) → Create account → Generate key\n\nNo credit card. No trial. Actually free.\n\n### 2. Set Your Key\n\n```bash\nexport OPENROUTER_API_KEY=\"sk-or-v1-...\"\n```\n\nOr add it to your OpenClaw config:\n\n```bash\nopenclaw config set env.OPENROUTER_API_KEY \"sk-or-v1-...\"\n```\n\n### 3. Run FreeRide\n\n```bash\nfreeride auto\n```\n\n### 4. Restart OpenClaw\n\n```bash\nopenclaw gateway restart\n```\n\n### 5. Verify It Works\n\nMessage your agent on WhatsApp/Telegram/Discord or the dashboard:\n\n```\nYou:    /status\nAgent:  (shows the free model name + token count)\n```\n\nDone. You're now running on free AI with automatic fallbacks.\n\n## What You Get\n\n```\nPrimary Model: openrouter/nvidia/nemotron-3-nano-30b-a3b:free (256K context)\n\nFallbacks:\n  1. openrouter/free          ← Smart router (auto-picks best available)\n  2. qwen/qwen3-coder:free    ← Great for coding\n  3. stepfun/step-3.5:free    ← Fast responses\n  4. deepseek/deepseek:free   ← Strong reasoning\n  5. mistral/mistral:free     ← Reliable fallback\n```\n\nWhen you hit a rate limit, OpenClaw automatically tries the next model. You keep working. No interruptions.\n\n## Commands\n\n| Command | What it does |\n|---------|--------------|\n| `freeride auto` | Auto-configure best model + fallbacks |\n| `freeride list` | See all 30+ free models ranked |\n| `freeride switch <model>` | Use a specific model |\n| `freeride status` | Check your current setup |\n| `freeride fallbacks` | Update fallbacks only |\n| `freeride refresh` | Force refresh model cache |\n\n### Pro Tips\n\n```bash\n# Already have a model you like? Just add fallbacks:\nfreeride auto -f\n\n# Want more fallbacks for maximum uptime?\nfreeride auto -c 10\n\n# Coding? Switch to the best coding model:\nfreeride switch qwen3-coder\n\n# See what's available:\nfreeride list -n 30\n\n# Always restart OpenClaw after changes:\nopenclaw gateway restart\n```\n\n## How It Ranks Models\n\nFreeRide scores each model (0-1) based on:\n\n| Factor | Weight | Why |\n|--------|--------|-----|\n| Context Length | 40% | Longer = handle bigger codebases |\n| Capabilities | 30% | Vision, tools, structured output |\n| Recency | 20% | Newer models = better performance |\n| Provider Trust | 10% | Google, Meta, NVIDIA, etc. |\n\nThe **smart fallback** `openrouter/free` is always first - it auto-selects based on what your request needs.\n\n## Testing with Your OpenClaw Agent\n\nAfter running `freeride auto` and `openclaw gateway restart`:\n\n```bash\n# Check OpenClaw sees the models\nopenclaw models list\n\n# Validate config\nopenclaw doctor --fix\n\n# Open the dashboard and chat\nopenclaw dashboard\n# Or message your agent on WhatsApp/Telegram/Discord\n```\n\nUseful agent commands to verify:\n\n| Command | What it tells you |\n|---------|-------------------|\n| `/status` | Current model + token usage |\n| `/model` | Available models (your free models should be listed) |\n| `/new` | Start fresh session with the new model |\n\n## Watcher (Auto-Rotation)\n\nFreeRide includes a watcher daemon that monitors for rate limits and automatically rotates models:\n\n```bash\n# Run once (check + rotate if needed)\nfreeride-watcher\n\n# Run as daemon (continuous monitoring)\nfreeride-watcher --daemon\n\n# Force rotate to next model\nfreeride-watcher --rotate\n\n# Check watcher status\nfreeride-watcher --status\n\n# Clear rate limit cooldowns\nfreeride-watcher --clear-cooldowns\n```\n\n## FAQ\n\n**Is this actually free?**\n\nYes. OpenRouter provides free tiers for many models. You just need an account (no credit card).\n\n**What about rate limits?**\n\nThat's the whole point. FreeRide configures multiple fallbacks. When one model rate-limits you, OpenClaw automatically switches to the next.\n\n**Will it mess up my OpenClaw config?**\n\nNo. FreeRide only touches `agents.defaults.model` and `agents.defaults.models`. Your gateway, channels, plugins, workspace, customInstructions - all preserved.\n\n**Which models are free?**\n\nRun `freeride list` to see current availability. It changes, which is why FreeRide exists.\n\n**Do I need to restart OpenClaw after changes?**\n\nYes. Run `openclaw gateway restart` after any FreeRide command that changes your config.\n\n## The Math\n\n| Scenario | Monthly Cost |\n|----------|--------------|\n| GPT-4 API | $50-200+ |\n| Claude API | $50-200+ |\n| OpenClaw + FreeRide | **$0** |\n\nYou're welcome.\n\n## Requirements\n\n- [OpenClaw](https://github.com/openclaw/openclaw) installed (Node ≥22)\n- Python 3.8+\n- Free OpenRouter account ([get key](https://openrouter.ai/keys))\n\n## Architecture\n\n```\n┌──────────────┐     ┌──────────────┐     ┌──────────────────┐\n│  You         │ ──→ │  FreeRide    │ ──→ │  OpenRouter API  │\n│  \"freeride   │     │              │     │  (30+ free       │\n│   auto\"      │     │  • Fetch     │     │   models)        │\n└──────────────┘     │  • Rank      │     └──────────────────┘\n                     │  • Configure │\n                     └──────┬───────┘\n                            │\n                            ▼\n                     ┌──────────────┐\n                     │ ~/.openclaw/ │\n                     │ openclaw.json│\n                     └──────┬───────┘\n                            │\n                     openclaw gateway restart\n                            │\n                            ▼\n                     ┌──────────────┐\n                     │  OpenClaw    │\n                     │  (free AI!)  │\n                     └──────────────┘\n```\n\n## Contributing\n\nFound a bug? Want a feature? PRs welcome.\n\n```bash\ncd ~/.openclaw/workspace/skills/free-ride\n\n# Test commands\nfreeride list\nfreeride status\nfreeride auto --help\n```\n\n## Related Projects\n\n- [OpenClaw](https://github.com/openclaw/openclaw) - The AI coding agent\n- [OpenRouter](https://openrouter.ai) - The model router\n- [ClawHub](https://github.com/clawhub) - Skill marketplace\n\n## License\n\nMIT - Do whatever you want.\n\n---\n\n<p align=\"center\">\n  <b>Stop paying. Start riding.</b>\n  <br>\n  <br>\n  <a href=\"https://github.com/Shaivpidadi/FreeRide\">⭐ Star us on GitHub</a>\n  ·\n  <a href=\"https://openrouter.ai/keys\">🔑 Get OpenRouter Key</a>\n  ·\n  <a href=\"https://github.com/openclaw/openclaw\">🦞 Install OpenClaw</a>\n</p>\n\nFile v1.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn7eepf540q01kxs5gzwnvsp5s80hhje\",\n  \"slug\": \"free-ride\",\n  \"version\": \"1.0.7\",\n  \"publishedAt\": 1774618346215\n}\n\nFile v1.0.7:skill.json\n\n{\n  \"name\": \"freeride\",\n  \"displayName\": \"FreeRide - Free AI for OpenClaw\",\n  \"version\": \"1.0.1\",\n  \"description\": \"Unlimited free AI access for OpenClaw via OpenRouter's free models with automatic fallback switching\",\n  \"author\": \"Shaishav Pidadi\",\n  \"repository\": \"https://github.com/Shaivpidadi/FreeRide\",\n  \"license\": \"MIT\",\n  \"commands\": [\n    \"list\",\n    \"switch\",\n    \"auto\",\n    \"status\",\n    \"refresh\",\n    \"fallbacks\"\n  ],\n  \"binaries\": {\n    \"freeride\": \"main:main\",\n    \"freeride-watcher\": \"watcher:main\"\n  },\n  \"dependencies\": {\n    \"requests\": \">=2.31.0\"\n  },\n  \"config\": {\n    \"OPENROUTER_API_KEY\": {\n      \"description\": \"Your OpenRouter API key (get free at openrouter.ai/keys)\",\n      \"required\": true,\n      \"env\": true\n    }\n  },\n  \"openclaw\": {\n    \"compatible\": true,\n    \"minVersion\": \"1.0.0\",\n    \"configPath\": \"~/.openclaw/openclaw.json\",\n    \"configKeys\": [\n      \"agents.defaults.model\",\n      \"agents.defaults.models\"\n    ]\n  },\n  \"install\": \"npx clawhub@latest install freeride && cd ~/.openclaw/workspace/skills/free-ride && pip install -e .\"\n}\n\nFile v1.0.7:requirements.txt\n\nrequests>=2.31.0\n\nArchive v1.0.5: 8 files, 16827 bytes\n\nFiles: main.py (26735b), README.md (8427b), requirements.txt (16b), setup.py (674b), skill.json (1074b), SKILL.md (3614b), watcher.py (11711b), _meta.json (128b)\n\nFile v1.0.5:SKILL.md\n\n---\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.\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\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 (Optional)\n\nFor auto-rotation when rate limited, the user can run:\n\n```bash\nfreeride-watcher --daemon    # Continuous monitoring\nfreeride-watcher --rotate    # Force rotate now\nfreeride-watcher --status    # Check rotation history\n```\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` |\n\nFile v1.0.5:README.md\n\n# 🎢 FreeRide\n\n### Stop paying for AI. Start riding free.\n\n[![ClawHub Downloads](https://api.clawhub-badge.xyz/badge/free-ride/downloads.svg)](https://clawhub.ai/skills/free-ride)\n[![ClawHub Current Installs](https://api.clawhub-badge.xyz/badge/free-ride/installs-current.svg)](https://clawhub.ai/skills/free-ride)\n[![ClawHub Stars](https://api.clawhub-badge.xyz/badge/free-ride/stars.svg)](https://clawhub.ai/skills/free-ride)\n[![ClawHub Version](https://api.clawhub-badge.xyz/badge/free-ride/version.svg)](https://clawhub.ai/skills/free-ride)\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n[![OpenClaw Compatible](https://img.shields.io/badge/OpenClaw-Compatible-blue.svg)](https://github.com/openclaw/openclaw)\n---\n\n**FreeRide** gives you unlimited free AI in [OpenClaw](https://github.com/openclaw/openclaw) by automatically managing OpenRouter's free models.\n\n```\nYou: *hits rate limit*\nFreeRide: \"I got you.\" *switches to next best model*\nYou: *keeps coding*\n```\n\n## The Problem\n\nYou're using OpenClaw. You love it. But:\n\n- 💸 API costs add up fast\n- 🚫 Free models have rate limits\n- 😤 Manually switching models is annoying\n- 🤷 You don't know which free model is actually good\n\n## The Solution\n\nOne command. Free AI. Forever.\n\n```bash\nfreeride auto\n```\n\nThat's it. FreeRide:\n\n1. **Finds** the 30+ free models on OpenRouter\n2. **Ranks** them by quality (context length, capabilities, speed)\n3. **Sets** the best one as your primary\n4. **Configures** smart fallbacks for when you hit rate limits\n5. **Preserves** your existing OpenClaw config\n\n## Installation\n\n```bash\nnpx clawhub@latest install free-ride\ncd ~/.openclaw/workspace/skills/free-ride\npip install -e .\n```\n\nThat's it. `freeride` and `freeride-watcher` are now available as global commands.\n\n## Quick Start\n\n### 1. Get a Free OpenRouter Key\n\nGo to [openrouter.ai/keys](https://openrouter.ai/keys) → Create account → Generate key\n\nNo credit card. No trial. Actually free.\n\n### 2. Set Your Key\n\n```bash\nexport OPENROUTER_API_KEY=\"sk-or-v1-...\"\n```\n\nOr add it to your OpenClaw config:\n\n```bash\nopenclaw config set env.OPENROUTER_API_KEY \"sk-or-v1-...\"\n```\n\n### 3. Run FreeRide\n\n```bash\nfreeride auto\n```\n\n### 4. Restart OpenClaw\n\n```bash\nopenclaw gateway restart\n```\n\n### 5. Verify It Works\n\nMessage your agent on WhatsApp/Telegram/Discord or the dashboard:\n\n```\nYou:    /status\nAgent:  (shows the free model name + token count)\n```\n\nDone. You're now running on free AI with automatic fallbacks.\n\n## What You Get\n\n```\nPrimary Model: openrouter/nvidia/nemotron-3-nano-30b-a3b:free (256K context)\n\nFallbacks:\n  1. openrouter/free          ← Smart router (auto-picks best available)\n  2. qwen/qwen3-coder:free    ← Great for coding\n  3. stepfun/step-3.5:free    ← Fast responses\n  4. deepseek/deepseek:free   ← Strong reasoning\n  5. mistral/mistral:free     ← Reliable fallback\n```\n\nWhen you hit a rate limit, OpenClaw automatically tries the next model. You keep working. No interruptions.\n\n## Commands\n\n| Command | What it does |\n|---------|--------------|\n| `freeride auto` | Auto-configure best model + fallbacks |\n| `freeride list` | See all 30+ free models ranked |\n| `freeride switch <model>` | Use a specific model |\n| `freeride status` | Check your current setup |\n| `freeride fallbacks` | Update fallbacks only |\n| `freeride refresh` | Force refresh model cache |\n\n### Pro Tips\n\n```bash\n# Already have a model you like? Just add fallbacks:\nfreeride auto -f\n\n# Want more fallbacks for maximum uptime?\nfreeride auto -c 10\n\n# Coding? Switch to the best coding model:\nfreeride switch qwen3-coder\n\n# See what's available:\nfreeride list -n 30\n\n# Always restart OpenClaw after changes:\nopenclaw gateway restart\n```\n\n## How It Ranks Models\n\nFreeRide scores each model (0-1) based on:\n\n| Factor | Weight | Why |\n|--------|--------|-----|\n| Context Length | 40% | Longer = handle bigger codebases |\n| Capabilities | 30% | Vision, tools, structured output |\n| Recency | 20% | Newer models = better performance |\n| Provider Trust | 10% | Google, Meta, NVIDIA, etc. |\n\nThe **smart fallback** `openrouter/free` is always first - it auto-selects based on what your request needs.\n\n## Testing with Your OpenClaw Agent\n\nAfter running `freeride auto` and `openclaw gateway restart`:\n\n```bash\n# Check OpenClaw sees the models\nopenclaw models list\n\n# Validate config\nopenclaw doctor --fix\n\n# Open the dashboard and chat\nopenclaw dashboard\n# Or message your agent on WhatsApp/Telegram/Discord\n```\n\nUseful agent commands to verify:\n\n| Command | What it tells you |\n|---------|-------------------|\n| `/status` | Current model + token usage |\n| `/model` | Available models (your free models should be listed) |\n| `/new` | Start fresh session with the new model |\n\n## Watcher (Auto-Rotation)\n\nFreeRide includes a watcher daemon that monitors for rate limits and automatically rotates models:\n\n```bash\n# Run once (check + rotate if needed)\nfreeride-watcher\n\n# Run as daemon (continuous monitoring)\nfreeride-watcher --daemon\n\n# Force rotate to next model\nfreeride-watcher --rotate\n\n# Check watcher status\nfreeride-watcher --status\n\n# Clear rate limit cooldowns\nfreeride-watcher --clear-cooldowns\n```\n\n## FAQ\n\n**Is this actually free?**\n\nYes. OpenRouter provides free tiers for many models. You just need an account (no credit card).\n\n**What about rate limits?**\n\nThat's the whole point. FreeRide configures multiple fallbacks. When one model rate-limits you, OpenClaw automatically switches to the next.\n\n**Will it mess up my OpenClaw config?**\n\nNo. FreeRide only touches `agents.defaults.model` and `agents.defaults.models`. Your gateway, channels, plugins, workspace, customInstructions - all preserved.\n\n**Which models are free?**\n\nRun `freeride list` to see current availability. It changes, which is why FreeRide exists.\n\n**Do I need to restart OpenClaw after changes?**\n\nYes. Run `openclaw gateway restart` after any FreeRide command that changes your config.\n\n## The Math\n\n| Scenario | Monthly Cost |\n|----------|--------------|\n| GPT-4 API | $50-200+ |\n| Claude API | $50-200+ |\n| OpenClaw + FreeRide | **$0** |\n\nYou're welcome.\n\n## Requirements\n\n- [OpenClaw](https://github.com/openclaw/openclaw) installed (Node ≥22)\n- Python 3.8+\n- Free OpenRouter account ([get key](https://openrouter.ai/keys))\n\n## Architecture\n\n```\n┌──────────────┐     ┌──────────────┐     ┌──────────────────┐\n│  You         │ ──→ │  FreeRide    │ ──→ │  OpenRouter API  │\n│  \"freeride   │     │              │     │  (30+ free       │\n│   auto\"      │     │  • Fetch     │     │   models)        │\n└──────────────┘     │  • Rank      │     └──────────────────┘\n                     │  • Configure │\n                     └──────┬───────┘\n                            │\n                            ▼\n                     ┌──────────────┐\n                     │ ~/.openclaw/ │\n                     │ openclaw.json│\n                     └──────┬───────┘\n                            │\n                     openclaw gateway restart\n                            │\n                            ▼\n                     ┌──────────────┐\n                     │  OpenClaw    │\n                     │  (free AI!)  │\n                     └──────────────┘\n```\n\n## Contributing\n\nFound a bug? Want a feature? PRs welcome.\n\n```bash\ncd ~/.openclaw/workspace/skills/free-ride\n\n# Test commands\nfreeride list\nfreeride status\nfreeride auto --help\n```\n\n## Related Projects\n\n- [OpenClaw](https://github.com/openclaw/openclaw) - The AI coding agent\n- [OpenRouter](https://openrouter.ai) - The model router\n- [ClawHub](https://github.com/clawhub) - Skill marketplace\n\n## License\n\nMIT - Do whatever you want.\n\n---\n\n<p align=\"center\">\n  <b>Stop paying. Start riding.</b>\n  <br>\n  <br>\n  <a href=\"https://github.com/Shaivpidadi/FreeRide\">⭐ Star us on GitHub</a>\n  ·\n  <a href=\"https://openrouter.ai/keys\">🔑 Get OpenRouter Key</a>\n  ·\n  <a href=\"https://github.com/openclaw/openclaw\">🦞 Install OpenClaw</a>\n</p>\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn7eepf540q01kxs5gzwnvsp5s80hhje\",\n  \"slug\": \"free-ride\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1773669241979\n}\n\nFile v1.0.5:skill.json\n\n{\n  \"name\": \"freeride\",\n  \"displayName\": \"FreeRide - Free AI for OpenClaw\",\n  \"version\": \"1.0.1\",\n  \"description\": \"Unlimited free AI access for OpenClaw via OpenRouter's free models with automatic fallback switching\",\n  \"author\": \"Shaishav Pidadi\",\n  \"repository\": \"https://github.com/Shaivpidadi/FreeRide\",\n  \"license\": \"MIT\",\n  \"commands\": [\n    \"list\",\n    \"switch\",\n    \"auto\",\n    \"status\",\n    \"refresh\",\n    \"fallbacks\"\n  ],\n  \"binaries\": {\n    \"freeride\": \"main:main\",\n    \"freeride-watcher\": \"watcher:main\"\n  },\n  \"dependencies\": {\n    \"requests\": \">=2.31.0\"\n  },\n  \"config\": {\n    \"OPENROUTER_API_KEY\": {\n      \"description\": \"Your OpenRouter API key (get free at openrouter.ai/keys)\",\n      \"required\": true,\n      \"env\": true\n    }\n  },\n  \"openclaw\": {\n    \"compatible\": true,\n    \"minVersion\": \"1.0.0\",\n    \"configPath\": \"~/.openclaw/openclaw.json\",\n    \"configKeys\": [\n      \"agents.defaults.model\",\n      \"agents.defaults.models\"\n    ]\n  },\n  \"install\": \"npx clawhub@latest install freeride && cd ~/.openclaw/workspace/skills/free-ride && pip install -e .\"\n}\n\nFile v1.0.5:requirements.txt\n\nrequests>=2.31.0\n\nArchive v1.0.4: 8 files, 16727 bytes\n\nFiles: main.py (26586b), README.md (8052b), requirements.txt (16b), setup.py (674b), skill.json (1074b), SKILL.md (3614b), watcher.py (11711b), _meta.json (128b)\n\nFile v1.0.4:SKILL.md\n\n---\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.\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\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 (Optional)\n\nFor auto-rotation when rate limited, the user can run:\n\n```bash\nfreeride-watcher --daemon    # Continuous monitoring\nfreeride-watcher --rotate    # Force rotate now\nfreeride-watcher --status    # Check rotation history\n```\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` |\n\nFile v1.0.4:README.md\n\n# 🎢 FreeRide\n\n### Stop paying for AI. Start riding free.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n[![OpenClaw Compatible](https://img.shields.io/badge/OpenClaw-Compatible-blue.svg)](https://github.com/openclaw/openclaw)\n[![OpenRouter](https://img.shields.io/badge/OpenRouter-30%2B%20Free%20Models-orange.svg)](https://openrouter.ai)\n\n---\n\n**FreeRide** gives you unlimited free AI in [OpenClaw](https://github.com/openclaw/openclaw) by automatically managing OpenRouter's free models.\n\n```\nYou: *hits rate limit*\nFreeRide: \"I got you.\" *switches to next best model*\nYou: *keeps coding*\n```\n\n## The Problem\n\nYou're using OpenClaw. You love it. But:\n\n- 💸 API costs add up fast\n- 🚫 Free models have rate limits\n- 😤 Manually switching models is annoying\n- 🤷 You don't know which free model is actually good\n\n## The Solution\n\nOne command. Free AI. Forever.\n\n```bash\nfreeride auto\n```\n\nThat's it. FreeRide:\n\n1. **Finds** the 30+ free models on OpenRouter\n2. **Ranks** them by quality (context length, capabilities, speed)\n3. **Sets** the best one as your primary\n4. **Configures** smart fallbacks for when you hit rate limits\n5. **Preserves** your existing OpenClaw config\n\n## Installation\n\n```bash\nnpx clawhub@latest install freeride\ncd ~/.openclaw/workspace/skills/free-ride\npip install -e .\n```\n\nThat's it. `freeride` and `freeride-watcher` are now available as global commands.\n\n## Quick Start\n\n### 1. Get a Free OpenRouter Key\n\nGo to [openrouter.ai/keys](https://openrouter.ai/keys) → Create account → Generate key\n\nNo credit card. No trial. Actually free.\n\n### 2. Set Your Key\n\n```bash\nexport OPENROUTER_API_KEY=\"sk-or-v1-...\"\n```\n\nOr add it to your OpenClaw config:\n\n```bash\nopenclaw config set env.OPENROUTER_API_KEY \"sk-or-v1-...\"\n```\n\n### 3. Run FreeRide\n\n```bash\nfreeride auto\n```\n\n### 4. Restart OpenClaw\n\n```bash\nopenclaw gateway restart\n```\n\n### 5. Verify It Works\n\nMessage your agent on WhatsApp/Telegram/Discord or the dashboard:\n\n```\nYou:    /status\nAgent:  (shows the free model name + token count)\n```\n\nDone. You're now running on free AI with automatic fallbacks.\n\n## What You Get\n\n```\nPrimary Model: openrouter/nvidia/nemotron-3-nano-30b-a3b:free (256K context)\n\nFallbacks:\n  1. openrouter/free          ← Smart router (auto-picks best available)\n  2. qwen/qwen3-coder:free    ← Great for coding\n  3. stepfun/step-3.5:free    ← Fast responses\n  4. deepseek/deepseek:free   ← Strong reasoning\n  5. mistral/mistral:free     ← Reliable fallback\n```\n\nWhen you hit a rate limit, OpenClaw automatically tries the next model. You keep working. No interruptions.\n\n## Commands\n\n| Command | What it does |\n|---------|--------------|\n| `freeride auto` | Auto-configure best model + fallbacks |\n| `freeride list` | See all 30+ free models ranked |\n| `freeride switch <model>` | Use a specific model |\n| `freeride status` | Check your current setup |\n| `freeride fallbacks` | Update fallbacks only |\n| `freeride refresh` | Force refresh model cache |\n\n### Pro Tips\n\n```bash\n# Already have a model you like? Just add fallbacks:\nfreeride auto -f\n\n# Want more fallbacks for maximum uptime?\nfreeride auto -c 10\n\n# Coding? Switch to the best coding model:\nfreeride switch qwen3-coder\n\n# See what's available:\nfreeride list -n 30\n\n# Always restart OpenClaw after changes:\nopenclaw gateway restart\n```\n\n## How It Ranks Models\n\nFreeRide scores each model (0-1) based on:\n\n| Factor | Weight | Why |\n|--------|--------|-----|\n| Context Length | 40% | Longer = handle bigger codebases |\n| Capabilities | 30% | Vision, tools, structured output |\n| Recency | 20% | Newer models = better performance |\n| Provider Trust | 10% | Google, Meta, NVIDIA, etc. |\n\nThe **smart fallback** `openrouter/free` is always first - it auto-selects based on what your request needs.\n\n## Testing with Your OpenClaw Agent\n\nAfter running `freeride auto` and `openclaw gateway restart`:\n\n```bash\n# Check OpenClaw sees the models\nopenclaw models list\n\n# Validate config\nopenclaw doctor --fix\n\n# Open the dashboard and chat\nopenclaw dashboard\n# Or message your agent on WhatsApp/Telegram/Discord\n```\n\nUseful agent commands to verify:\n\n| Command | What it tells you |\n|---------|-------------------|\n| `/status` | Current model + token usage |\n| `/model` | Available models (your free models should be listed) |\n| `/new` | Start fresh session with the new model |\n\n## Watcher (Auto-Rotation)\n\nFreeRide includes a watcher daemon that monitors for rate limits and automatically rotates models:\n\n```bash\n# Run once (check + rotate if needed)\nfreeride-watcher\n\n# Run as daemon (continuous monitoring)\nfreeride-watcher --daemon\n\n# Force rotate to next model\nfreeride-watcher --rotate\n\n# Check watcher status\nfreeride-watcher --status\n\n# Clear rate limit cooldowns\nfreeride-watcher --clear-cooldowns\n```\n\n## FAQ\n\n**Is this actually free?**\n\nYes. OpenRouter provides free tiers for many models. You just need an account (no credit card).\n\n**What about rate limits?**\n\nThat's the whole point. FreeRide configures multiple fallbacks. When one model rate-limits you, OpenClaw automatically switches to the next.\n\n**Will it mess up my OpenClaw config?**\n\nNo. FreeRide only touches `agents.defaults.model` and `agents.defaults.models`. Your gateway, channels, plugins, workspace, customInstructions - all preserved.\n\n**Which models are free?**\n\nRun `freeride list` to see current availability. It changes, which is why FreeRide exists.\n\n**Do I need to restart OpenClaw after changes?**\n\nYes. Run `openclaw gateway restart` after any FreeRide command that changes your config.\n\n## The Math\n\n| Scenario | Monthly Cost |\n|----------|--------------|\n| GPT-4 API | $50-200+ |\n| Claude API | $50-200+ |\n| OpenClaw + FreeRide | **$0** |\n\nYou're welcome.\n\n## Requirements\n\n- [OpenClaw](https://github.com/openclaw/openclaw) installed (Node ≥22)\n- Python 3.8+\n- Free OpenRouter account ([get key](https://openrouter.ai/keys))\n\n## Architecture\n\n```\n┌──────────────┐     ┌──────────────┐     ┌──────────────────┐\n│  You         │ ──→ │  FreeRide    │ ──→ │  OpenRouter API  │\n│  \"freeride   │     │              │     │  (30+ free       │\n│   auto\"      │     │  • Fetch     │     │   models)        │\n└──────────────┘     │  • Rank      │     └──────────────────┘\n                     │  • Configure │\n                     └──────┬───────┘\n                            │\n                            ▼\n                     ┌──────────────┐\n                     │ ~/.openclaw/ │\n                     │ openclaw.json│\n                     └──────┬───────┘\n                            │\n                     openclaw gateway restart\n                            │\n                            ▼\n                     ┌──────────────┐\n                     │  OpenClaw    │\n                     │  (free AI!)  │\n                     └──────────────┘\n```\n\n## Contributing\n\nFound a bug? Want a feature? PRs welcome.\n\n```bash\ncd ~/.openclaw/workspace/skills/free-ride\n\n# Test commands\nfreeride list\nfreeride status\nfreeride auto --help\n```\n\n## Related Projects\n\n- [OpenClaw](https://github.com/openclaw/openclaw) - The AI coding agent\n- [OpenRouter](https://openrouter.ai) - The model router\n- [ClawHub](https://github.com/clawhub) - Skill marketplace\n\n## License\n\nMIT - Do whatever you want.\n\n---\n\n<p align=\"center\">\n  <b>Stop paying. Start riding.</b>\n  <br>\n  <br>\n  <a href=\"https://github.com/Shaivpidadi/FreeRide\">⭐ Star us on GitHub</a>\n  ·\n  <a href=\"https://openrouter.ai/keys\">🔑 Get OpenRouter Key</a>\n  ·\n  <a href=\"https://github.com/openclaw/openclaw\">🦞 Install OpenClaw</a>\n</p>\n\nFile v1.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn7eepf540q01kxs5gzwnvsp5s80hhje\",\n  \"slug\": \"free-ride\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1771429600089\n}\n\nFile v1.0.4:skill.json\n\n{\n  \"name\": \"freeride\",\n  \"displayName\": \"FreeRide - Free AI for OpenClaw\",\n  \"version\": \"1.0.1\",\n  \"description\": \"Unlimited free AI access for OpenClaw via OpenRouter's free models with automatic fallback switching\",\n  \"author\": \"Shaishav Pidadi\",\n  \"repository\": \"https://github.com/Shaivpidadi/FreeRide\",\n  \"license\": \"MIT\",\n  \"commands\": [\n    \"list\",\n    \"switch\",\n    \"auto\",\n    \"status\",\n    \"refresh\",\n    \"fallbacks\"\n  ],\n  \"binaries\": {\n    \"freeride\": \"main:main\",\n    \"freeride-watcher\": \"watcher:main\"\n  },\n  \"dependencies\": {\n    \"requests\": \">=2.31.0\"\n  },\n  \"config\": {\n    \"OPENROUTER_API_KEY\": {\n      \"description\": \"Your OpenRouter API key (get free at openrouter.ai/keys)\",\n      \"required\": true,\n      \"env\": true\n    }\n  },\n  \"openclaw\": {\n    \"compatible\": true,\n    \"minVersion\": \"1.0.0\",\n    \"configPath\": \"~/.openclaw/openclaw.json\",\n    \"configKeys\": [\n      \"agents.defaults.model\",\n      \"agents.defaults.models\"\n    ]\n  },\n  \"install\": \"npx clawhub@latest install freeride && cd ~/.openclaw/workspace/skills/free-ride && pip install -e .\"\n}\n\nFile v1.0.4:requirements.txt\n\nrequests>=2.31.0\n\nArchive v1.0.3: 7 files, 14940 bytes\n\nFiles: main.py (26229b), README.md (6231b), requirements.txt (17b), skill.json (719b), SKILL.md (3088b), watcher.py (10519b), _meta.json (128b)\n\nFile v1.0.3:SKILL.md\n\n---\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.\n---\n\n# FreeRide - Free AI for OpenClaw\n\nConfigures OpenClaw to use free AI models from OpenRouter with automatic fallback switching.\n\n## Installation\n\nIf FreeRide is not installed, install it automatically:\n\n```bash\nnpx clawhub@latest install freeride\n```\n\n## Quick Start\n\n```bash\n# Set API key (free at openrouter.ai/keys)\nexport OPENROUTER_API_KEY=\"sk-or-v1-...\"\n\n# Auto-configure best model + fallbacks\nfreeride auto\n```\n\n## Commands\n\n### `list` - View available models\n\n```bash\nfreeride list              # Top 15 models\nfreeride list -n 30        # More models\nfreeride list --refresh    # Force API refresh\n```\n\n### `auto` - Auto-configure\n\n```bash\nfreeride auto              # Best model + 5 fallbacks\nfreeride auto -f           # Fallbacks only (keep current primary)\nfreeride auto -c 10        # 10 fallbacks\nfreeride auto --setup-auth # Also configure auth profile\n```\n\n### `switch` - Set specific model\n\n```bash\nfreeride switch qwen3-coder         # Set as primary\nfreeride switch deepseek -f         # Add to fallbacks only\nfreeride switch nvidia/nemotron --no-fallbacks\n```\n\n### `status` - Check configuration\n\n```bash\nfreeride status\n```\n\n### `fallbacks` - Update fallbacks only\n\n```bash\nfreeride fallbacks         # 5 fallbacks\nfreeride fallbacks -c 10   # 10 fallbacks\n```\n\n### `refresh` - Update model cache\n\n```bash\nfreeride refresh\n```\n\n## Behavior\n\n**Primary model**: Best specific model (not router) for consistent responses.\n\n**First fallback**: Always `openrouter/free` - OpenRouter's smart router that auto-selects based on request features (vision, tools, etc.).\n\n**Additional fallbacks**: Ranked by quality score.\n\n**Config preservation**: Only updates model-related sections; preserves gateway, channels, plugins, etc.\n\n## Model Ranking\n\nScore (0-1) based on:\n- Context length (40%)\n- Capabilities (30%)\n- Recency (20%)\n- Provider trust (10%)\n\n## Flags\n\n| Flag | Commands | Description |\n|------|----------|-------------|\n| `-f` | switch, auto | Fallback only, keep primary |\n| `-c N` | auto, fallbacks | Number of fallbacks |\n| `--no-fallbacks` | switch | Skip fallback configuration |\n| `--setup-auth` | switch, auto | Add OpenRouter auth profile |\n| `-n N` | list | Models to display |\n| `-r` | list | Force refresh |\n\n## Config Output\n\nUpdates `~/.openclaw/openclaw.json`:\n\n```json\n{\n  \"agents\": {\n    \"defaults\": {\n      \"model\": {\n        \"primary\": \"openrouter/qwen/qwen3-coder:free\",\n        \"fallbacks\": [\n          \"openrouter/free:free\",\n          \"nvidia/nemotron-3-nano-30b-a3b:free\"\n        ]\n      }\n    }\n  }\n}\n```\n\n## Troubleshooting\n\n**\"OPENROUTER_API_KEY not set\"**: Export the key or add to shell profile.\n\n**Config not updating**: Check file permissions on `~/.openclaw/openclaw.json`.\n\n**Changes not taking effect**: Restart OpenClaw.\n\nFile v1.0.3:README.md\n\n# 🎢 FreeRide\n\n### Stop paying for AI. Start riding free.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n[![OpenClaw Compatible](https://img.shields.io/badge/OpenClaw-Compatible-blue.svg)](https://github.com/openclaw/openclaw)\n[![OpenRouter](https://img.shields.io/badge/OpenRouter-30%2B%20Free%20Models-orange.svg)](https://openrouter.ai)\n\n---\n\n**FreeRide** gives you unlimited free AI in [OpenClaw](https://github.com/openclaw/openclaw) by automatically managing OpenRouter's free models.\n\n```\nYou: *hits rate limit*\nFreeRide: \"I got you.\" *switches to next best model*\nYou: *keeps coding*\n```\n\n## The Problem\n\nYou're using OpenClaw. You love it. But:\n\n- 💸 API costs add up fast\n- 🚫 Free models have rate limits\n- 😤 Manually switching models is annoying\n- 🤷 You don't know which free model is actually good\n\n## Installation\n\n```bash\nnpx clawhub@latest install free-ride\n```\n\nOr clone manually:\n\n```bash\ngit clone https://github.com/Shaivpidadi/FreeRide.git\ncd FreeRide\npip install -r requirements.txt\n```\n\n## The Solution\n\nOne command. Free AI. Forever.\n\n```bash\nfreeride auto\n```\n\nThat's it. FreeRide:\n\n1. **Finds** the 30+ free models on OpenRouter\n2. **Ranks** them by quality (context length, capabilities, speed)\n3. **Sets** the best one as your primary\n4. **Configures** smart fallbacks for when you hit rate limits\n5. **Preserves** your existing OpenClaw config\n\n## Quick Start\n\n### 1. Get a Free OpenRouter Key\n\nGo to [openrouter.ai/keys](https://openrouter.ai/keys) → Create account → Generate key\n\nNo credit card. No trial. Actually free.\n\n### 2. Set Your Key\n\n```bash\nexport OPENROUTER_API_KEY=\"sk-or-v1-...\"\n```\n\n### 3. Run FreeRide\n\n```bash\nfreeride auto\n```\n\n### 4. Restart OpenClaw\n\nDone. You're now running on free AI with automatic fallbacks.\n\n## What You Get\n\n```\nPrimary Model: nvidia/nemotron-3-nano-30b-a3b:free (256K context)\n\nFallbacks:\n  1. openrouter/free         ← Smart router (auto-picks best available)\n  2. qwen/qwen3-coder:free   ← Great for coding\n  3. stepfun/step-3.5:free   ← Fast responses\n  4. deepseek/deepseek:free  ← Strong reasoning\n  5. mistral/mistral:free    ← Reliable fallback\n```\n\nWhen you hit a rate limit, OpenClaw automatically tries the next model. You keep working. No interruptions.\n\n## Commands\n\n| Command | What it does |\n|---------|--------------|\n| `freeride auto` | Auto-configure best model + fallbacks |\n| `freeride list` | See all 30+ free models ranked |\n| `freeride switch <model>` | Use a specific model |\n| `freeride status` | Check your current setup |\n\n### Pro Tips\n\n```bash\n# Already have a model you like? Just add fallbacks:\nfreeride auto -f\n\n# Want more fallbacks for maximum uptime?\nfreeride auto -c 10\n\n# Coding? Switch to the best coding model:\nfreeride switch qwen3-coder\n\n# See what's available:\nfreeride list -n 30\n```\n\n## How It Ranks Models\n\nFreeRide scores each model (0-1) based on:\n\n| Factor | Weight | Why |\n|--------|--------|-----|\n| Context Length | 40% | Longer = handle bigger codebases |\n| Capabilities | 30% | Vision, tools, structured output |\n| Recency | 20% | Newer models = better performance |\n| Provider Trust | 10% | Google, Meta, NVIDIA, etc. |\n\nThe **smart fallback** `openrouter/free` is always first - it auto-selects based on what your request needs.\n\n## FAQ\n\n**Is this actually free?**\n\nYes. OpenRouter provides free tiers for many models. You just need an account (no credit card).\n\n**What about rate limits?**\n\nThat's the whole point. FreeRide configures multiple fallbacks. When one model rate-limits you, OpenClaw automatically switches to the next.\n\n**Will it mess up my OpenClaw config?**\n\nNo. FreeRide only touches the model settings. Your gateway, channels, plugins, workspace - all preserved.\n\n**Which models are free?**\n\nRun `freeride list` to see current availability. It changes, which is why FreeRide exists.\n\n## The Math\n\n| Scenario | Monthly Cost |\n|----------|--------------|\n| GPT-4 API | $50-200+ |\n| Claude API | $50-200+ |\n| OpenClaw + FreeRide | **$0** |\n\nYou're welcome.\n\n## Requirements\n\n- [OpenClaw](https://github.com/openclaw/openclaw) installed\n- Python 3.8+\n- `requests` library (`pip install requests`)\n- Free OpenRouter account\n\n## Architecture\n\n```\n┌──────────────┐     ┌──────────────┐     ┌──────────────────┐\n│  You         │ ──→ │  FreeRide    │ ──→ │  OpenRouter API  │\n│  \"freeride   │     │              │     │  (30+ free       │\n│   auto\"      │     │  • Fetch     │     │   models)        │\n└──────────────┘     │  • Rank      │     └──────────────────┘\n                     │  • Configure │\n                     └──────┬───────┘\n                            │\n                            ▼\n                     ┌──────────────┐\n                     │ ~/.openclaw/ │\n                     │ openclaw.json│\n                     └──────┬───────┘\n                            │\n                            ▼\n                     ┌──────────────┐\n                     │  OpenClaw    │\n                     │  (free AI!)  │\n                     └──────────────┘\n```\n\n## Contributing\n\nFound a bug? Want a feature? PRs welcome.\n\n```bash\n# Run tests\npython main.py list\npython main.py status\npython main.py auto --help\n```\n\n## Related Projects\n\n- [OpenClaw](https://github.com/openclaw/openclaw) - The AI coding agent\n- [OpenRouter](https://openrouter.ai) - The model router\n- [ClaHub](https://github.com/clawhub) - Skill marketplace\n\n## License\n\nMIT - Do whatever you want.\n\n---\n\n<p align=\"center\">\n  <b>Stop paying. Start riding.</b>\n  <br>\n  <br>\n  <a href=\"https://github.com/Shaivpidadi/FreeRide\">⭐ Star us on GitHub</a>\n  ·\n  <a href=\"https://openrouter.ai/keys\">🔑 Get OpenRouter Key</a>\n  ·\n  <a href=\"https://github.com/openclaw/openclaw\">🦞 Install OpenClaw</a>\n</p>\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn7eepf540q01kxs5gzwnvsp5s80hhje\",\n  \"slug\": \"free-ride\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1771095341291\n}\n\nFile v1.0.3:skill.json\n\n{\n  \"name\": \"freeride\",\n  \"displayName\": \"FreeRide - Free AI for OpenClaw\",\n  \"version\": \"1.0.0\",\n  \"description\": \"Unlimited free AI access for OpenClaw via OpenRouter's free models with automatic fallback switching\",\n  \"author\": \"OpenClaw Community\",\n  \"license\": \"MIT\",\n  \"commands\": [\n    \"list\",\n    \"switch\",\n    \"auto\",\n    \"status\",\n    \"refresh\",\n    \"fallbacks\"\n  ],\n  \"dependencies\": {\n    \"requests\": \">=2.31.0\"\n  },\n  \"config\": {\n    \"OPENROUTER_API_KEY\": {\n      \"description\": \"Your OpenRouter API key (get free at openrouter.ai)\",\n      \"required\": true,\n      \"env\": true\n    }\n  },\n  \"openclaw\": {\n    \"compatible\": true,\n    \"minVersion\": \"1.0.0\",\n    \"configPath\": \"~/.openclaw/openclaw.json\"\n  }\n}\n\nFile v1.0.3:requirements.txt\n\nrequests>=2.31.0\n\nArchive v1.0.2: 7 files, 15002 bytes\n\nFiles: main.py (26229b), README.md (6607b), requirements.txt (17b), skill.json (719b), SKILL.md (2965b), watcher.py (10519b), _meta.json (128b)\n\nFile v1.0.2:SKILL.md\n\n---\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.\n---\n\n# FreeRide - Free AI for OpenClaw\n\nConfigures OpenClaw to use free AI models from OpenRouter with automatic fallback switching.\n\n## Quick Start\n\n```bash\n# Set API key (free at openrouter.ai/keys)\nexport OPENROUTER_API_KEY=\"sk-or-v1-...\"\n\n# Auto-configure best model + fallbacks\nfreeride auto\n```\n\n## Commands\n\n### `list` - View available models\n\n```bash\nfreeride list              # Top 15 models\nfreeride list -n 30        # More models\nfreeride list --refresh    # Force API refresh\n```\n\n### `auto` - Auto-configure\n\n```bash\nfreeride auto              # Best model + 5 fallbacks\nfreeride auto -f           # Fallbacks only (keep current primary)\nfreeride auto -c 10        # 10 fallbacks\nfreeride auto --setup-auth # Also configure auth profile\n```\n\n### `switch` - Set specific model\n\n```bash\nfreeride switch qwen3-coder         # Set as primary\nfreeride switch deepseek -f         # Add to fallbacks only\nfreeride switch nvidia/nemotron --no-fallbacks\n```\n\n### `status` - Check configuration\n\n```bash\nfreeride status\n```\n\n### `fallbacks` - Update fallbacks only\n\n```bash\nfreeride fallbacks         # 5 fallbacks\nfreeride fallbacks -c 10   # 10 fallbacks\n```\n\n### `refresh` - Update model cache\n\n```bash\nfreeride refresh\n```\n\n## Behavior\n\n**Primary model**: Best specific model (not router) for consistent responses.\n\n**First fallback**: Always `openrouter/free` - OpenRouter's smart router that auto-selects based on request features (vision, tools, etc.).\n\n**Additional fallbacks**: Ranked by quality score.\n\n**Config preservation**: Only updates model-related sections; preserves gateway, channels, plugins, etc.\n\n## Model Ranking\n\nScore (0-1) based on:\n- Context length (40%)\n- Capabilities (30%)\n- Recency (20%)\n- Provider trust (10%)\n\n## Flags\n\n| Flag | Commands | Description |\n|------|----------|-------------|\n| `-f` | switch, auto | Fallback only, keep primary |\n| `-c N` | auto, fallbacks | Number of fallbacks |\n| `--no-fallbacks` | switch | Skip fallback configuration |\n| `--setup-auth` | switch, auto | Add OpenRouter auth profile |\n| `-n N` | list | Models to display |\n| `-r` | list | Force refresh |\n\n## Config Output\n\nUpdates `~/.openclaw/openclaw.json`:\n\n```json\n{\n  \"agents\": {\n    \"defaults\": {\n      \"model\": {\n        \"primary\": \"openrouter/qwen/qwen3-coder:free\",\n        \"fallbacks\": [\n          \"openrouter/free:free\",\n          \"nvidia/nemotron-3-nano-30b-a3b:free\"\n        ]\n      }\n    }\n  }\n}\n```\n\n## Troubleshooting\n\n**\"OPENROUTER_API_KEY not set\"**: Export the key or add to shell profile.\n\n**Config not updating**: Check file permissions on `~/.openclaw/openclaw.json`.\n\n**Changes not taking effect**: Restart OpenClaw.\n\nFile v1.0.2:README.md\n\n# 🎢 FreeRide\n\n### Stop paying for AI. Start riding free.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n[![OpenClaw Compatible](https://img.shields.io/badge/OpenClaw-Compatible-blue.svg)](https://github.com/openclaw/openclaw)\n[![OpenRouter](https://img.shields.io/badge/OpenRouter-30%2B%20Free%20Models-orange.svg)](https://openrouter.ai)\n\n---\n\n**FreeRide** gives you unlimited free AI in [OpenClaw](https://github.com/openclaw/openclaw) by automatically managing OpenRouter's free models.\n\n```\nYou: *hits rate limit*\nFreeRide: \"I got you.\" *switches to next best model*\nYou: *keeps coding*\n```\n\n## The Problem\n\nYou're using OpenClaw. You love it. But:\n\n- 💸 API costs add up fast\n- 🚫 Free models have rate limits\n- 😤 Manually switching models is annoying\n- 🤷 You don't know which free model is actually good\n\n## The Solution\n\nOne command. Free AI. Forever.\n\n```bash\nfreeride auto\n```\n\nThat's it. FreeRide:\n\n1. **Finds** the 30+ free models on OpenRouter\n2. **Ranks** them by quality (context length, capabilities, speed)\n3. **Sets** the best one as your primary\n4. **Configures** smart fallbacks for when you hit rate limits\n5. **Preserves** your existing OpenClaw config\n\n## Quick Start\n\n### 1. Get a Free OpenRouter Key\n\nGo to [openrouter.ai/keys](https://openrouter.ai/keys) → Create account → Generate key\n\nNo credit card. No trial. Actually free.\n\n### 2. Set Your Key\n\n```bash\nexport OPENROUTER_API_KEY=\"sk-or-v1-...\"\n```\n\n### 3. Run FreeRide\n\n```bash\nfreeride auto\n```\n\n### 4. Restart OpenClaw\n\nDone. You're now running on free AI with automatic fallbacks.\n\n## What You Get\n\n```\nPrimary Model: nvidia/nemotron-3-nano-30b-a3b:free (256K context)\n\nFallbacks:\n  1. openrouter/free         ← Smart router (auto-picks best available)\n  2. qwen/qwen3-coder:free   ← Great for coding\n  3. stepfun/step-3.5:free   ← Fast responses\n  4. deepseek/deepseek:free  ← Strong reasoning\n  5. mistral/mistral:free    ← Reliable fallback\n```\n\nWhen you hit a rate limit, OpenClaw automatically tries the next model. You keep working. No interruptions.\n\n## Commands\n\n| Command | What it does |\n|---------|--------------|\n| `freeride auto` | Auto-configure best model + fallbacks |\n| `freeride list` | See all 30+ free models ranked |\n| `freeride switch <model>` | Use a specific model |\n| `freeride status` | Check your current setup |\n\n### Pro Tips\n\n```bash\n# Already have a model you like? Just add fallbacks:\nfreeride auto -f\n\n# Want more fallbacks for maximum uptime?\nfreeride auto -c 10\n\n# Coding? Switch to the best coding model:\nfreeride switch qwen3-coder\n\n# See what's available:\nfreeride list -n 30\n```\n\n## How It Ranks Models\n\nFreeRide scores each model (0-1) based on:\n\n| Factor | Weight | Why |\n|--------|--------|-----|\n| Context Length | 40% | Longer = handle bigger codebases |\n| Capabilities | 30% | Vision, tools, structured output |\n| Recency | 20% | Newer models = better performance |\n| Provider Trust | 10% | Google, Meta, NVIDIA, etc. |\n\nThe **smart fallback** `openrouter/free` is always first - it auto-selects based on what your request needs.\n\n## FAQ\n\n**Is this actually free?**\n\nYes. OpenRouter provides free tiers for many models. You just need an account (no credit card).\n\n**What about rate limits?**\n\nThat's the whole point. FreeRide configures multiple fallbacks. When one model rate-limits you, OpenClaw automatically switches to the next.\n\n**Will it mess up my OpenClaw config?**\n\nNo. FreeRide only touches the model settings. Your gateway, channels, plugins, workspace - all preserved.\n\n**Which models are free?**\n\nRun `freeride list` to see current availability. It changes, which is why FreeRide exists.\n\n## The Math\n\n| Scenario | Monthly Cost |\n|----------|--------------|\n| GPT-4 API | $50-200+ |\n| Claude API | $50-200+ |\n| OpenClaw + FreeRide | **$0** |\n\nYou're welcome.\n\n## Requirements\n\n- [OpenClaw](https://github.com/openclaw/openclaw) installed\n- Python 3.8+\n- `requests` library (`pip install requests`)\n- Free OpenRouter account\n\n## Installation\n\n### Option 1: Download\n\n```bash\n# Download and extract\ncurl -L https://github.com/Shaivpidadi/agent-security-bonds-arc/releases/download/v1.0/freeride.zip -o freeride.zip\nunzip freeride.zip\ncd freeride\npip install -r requirements.txt\n```\n\n### Option 2: Clone\n\n```bash\ngit clone https://github.com/Shaivpidadi/agent-security-bonds-arc.git\ncd agent-security-bonds-arc/server/skills/freeride\npip install -r requirements.txt\n```\n\n### Option 3: ClaHub (Coming Soon)\n\n```bash\nclahub install freeride\n```\n\n## Architecture\n\n```\n┌──────────────┐     ┌──────────────┐     ┌──────────────────┐\n│  You         │ ──→ │  FreeRide    │ ──→ │  OpenRouter API  │\n│  \"freeride   │     │              │     │  (30+ free       │\n│   auto\"      │     │  • Fetch     │     │   models)        │\n└──────────────┘     │  • Rank      │     └──────────────────┘\n                     │  • Configure │\n                     └──────┬───────┘\n                            │\n                            ▼\n                     ┌──────────────┐\n                     │ ~/.openclaw/ │\n                     │ openclaw.json│\n                     └──────┬───────┘\n                            │\n                            ▼\n                     ┌──────────────┐\n                     │  OpenClaw    │\n                     │  (free AI!)  │\n                     └──────────────┘\n```\n\n## Contributing\n\nFound a bug? Want a feature? PRs welcome.\n\n```bash\n# Run tests\npython main.py list\npython main.py status\npython main.py auto --help\n```\n\n## Related Projects\n\n- [OpenClaw](https://github.com/openclaw/openclaw) - The AI coding agent\n- [OpenRouter](https://openrouter.ai) - The model router\n- [Arc Security](https://github.com/Shaivpidadi/agent-security-bonds-arc) - Secure skill marketplace\n\n## License\n\nMIT - Do whatever you want.\n\n---\n\n<p align=\"center\">\n  <b>Stop paying. Start riding.</b>\n  <br>\n  <br>\n  <a href=\"https://github.com/Shaivpidadi/agent-security-bonds-arc\">⭐ Star us on GitHub</a>\n  ·\n  <a href=\"https://openrouter.ai/keys\">🔑 Get OpenRouter Key</a>\n  ·\n  <a href=\"https://github.com/openclaw/openclaw\">🦞 Install OpenClaw</a>\n</p>\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn7eepf540q01kxs5gzwnvsp5s80hhje\",\n  \"slug\": \"free-ride\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1770314038059\n}\n\nFile v1.0.2:skill.json\n\n{\n  \"name\": \"freeride\",\n  \"displayName\": \"FreeRide - Free AI for OpenClaw\",\n  \"version\": \"1.0.0\",\n  \"description\": \"Unlimited free AI access for OpenClaw via OpenRouter's free models with automatic fallback switching\",\n  \"author\": \"OpenClaw Community\",\n  \"license\": \"MIT\",\n  \"commands\": [\n    \"list\",\n    \"switch\",\n    \"auto\",\n    \"status\",\n    \"refresh\",\n    \"fallbacks\"\n  ],\n  \"dependencies\": {\n    \"requests\": \">=2.31.0\"\n  },\n  \"config\": {\n    \"OPENROUTER_API_KEY\": {\n      \"description\": \"Your OpenRouter API key (get free at openrouter.ai)\",\n      \"required\": true,\n      \"env\": true\n    }\n  },\n  \"openclaw\": {\n    \"compatible\": true,\n    \"minVersion\": \"1.0.0\",\n    \"configPath\": \"~/.openclaw/openclaw.json\"\n  }\n}\n\nFile v1.0.2:requirements.txt\n\nrequests>=2.31.0\n\nArchive v1.0.0: 7 files, 15001 bytes\n\nFiles: main.py (26229b), README.md (6607b), requirements.txt (17b), skill.json (719b), SKILL.md (2965b), watcher.py (10519b), _meta.json (128b)\n\nFile v1.0.0:SKILL.md\n\n---\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.\n---\n\n# FreeRide - Free AI for OpenClaw\n\nConfigures OpenClaw to use free AI models from OpenRouter with automatic fallback switching.\n\n## Quick Start\n\n```bash\n# Set API key (free at openrouter.ai/keys)\nexport OPENROUTER_API_KEY=\"sk-or-v1-...\"\n\n# Auto-configure best model + fallbacks\nfreeride auto\n```\n\n## Commands\n\n### `list` - View available models\n\n```bash\nfreeride list              # Top 15 models\nfreeride list -n 30        # More models\nfreeride list --refresh    # Force API refresh\n```\n\n### `auto` - Auto-configure\n\n```bash\nfreeride auto              # Best model + 5 fallbacks\nfreeride auto -f           # Fallbacks only (keep current primary)\nfreeride auto -c 10        # 10 fallbacks\nfreeride auto --setup-auth # Also configure auth profile\n```\n\n### `switch` - Set specific model\n\n```bash\nfreeride switch qwen3-coder         # Set as primary\nfreeride switch deepseek -f         # Add to fallbacks only\nfreeride switch nvidia/nemotron --no-fallbacks\n```\n\n### `status` - Check configuration\n\n```bash\nfreeride status\n```\n\n### `fallbacks` - Update fallbacks only\n\n```bash\nfreeride fallbacks         # 5 fallbacks\nfreeride fallbacks -c 10   # 10 fallbacks\n```\n\n### `refresh` - Update model cache\n\n```bash\nfreeride refresh\n```\n\n## Behavior\n\n**Primary model**: Best specific model (not router) for consistent responses.\n\n**First fallback**: Always `openrouter/free` - OpenRouter's smart router that auto-selects based on request features (vision, tools, etc.).\n\n**Additional fallbacks**: Ranked by quality score.\n\n**Config preservation**: Only updates model-related sections; preserves gateway, channels, plugins, etc.\n\n## Model Ranking\n\nScore (0-1) based on:\n- Context length (40%)\n- Capabilities (30%)\n- Recency (20%)\n- Provider trust (10%)\n\n## Flags\n\n| Flag | Commands | Description |\n|------|----------|-------------|\n| `-f` | switch, auto | Fallback only, keep primary |\n| `-c N` | auto, fallbacks | Number of fallbacks |\n| `--no-fallbacks` | switch | Skip fallback configuration |\n| `--setup-auth` | switch, auto | Add OpenRouter auth profile |\n| `-n N` | list | Models to display |\n| `-r` | list | Force refresh |\n\n## Config Output\n\nUpdates `~/.openclaw/openclaw.json`:\n\n```json\n{\n  \"agents\": {\n    \"defaults\": {\n      \"model\": {\n        \"primary\": \"openrouter/qwen/qwen3-coder:free\",\n        \"fallbacks\": [\n          \"openrouter/free:free\",\n          \"nvidia/nemotron-3-nano-30b-a3b:free\"\n        ]\n      }\n    }\n  }\n}\n```\n\n## Troubleshooting\n\n**\"OPENROUTER_API_KEY not set\"**: Export the key or add to shell profile.\n\n**Config not updating**: Check file permissions on `~/.openclaw/openclaw.json`.\n\n**Changes not taking effect**: Restart OpenClaw.\n\nFile v1.0.0:README.md\n\n# 🎢 FreeRide\n\n### Stop paying for AI. Start riding free.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n[![OpenClaw Compatible](https://img.shields.io/badge/OpenClaw-Compatible-blue.svg)](https://github.com/openclaw/openclaw)\n[![OpenRouter](https://img.shields.io/badge/OpenRouter-30%2B%20Free%20Models-orange.svg)](https://openrouter.ai)\n\n---\n\n**FreeRide** gives you unlimited free AI in [OpenClaw](https://github.com/openclaw/openclaw) by automatically managing OpenRouter's free models.\n\n```\nYou: *hits rate limit*\nFreeRide: \"I got you.\" *switches to next best model*\nYou: *keeps coding*\n```\n\n## The Problem\n\nYou're using OpenClaw. You love it. But:\n\n- 💸 API costs add up fast\n- 🚫 Free models have rate limits\n- 😤 Manually switching models is annoying\n- 🤷 You don't know which free model is actually good\n\n## The Solution\n\nOne command. Free AI. Forever.\n\n```bash\nfreeride auto\n```\n\nThat's it. FreeRide:\n\n1. **Finds** the 30+ free models on OpenRouter\n2. **Ranks** them by quality (context length, capabilities, speed)\n3. **Sets** the best one as your primary\n4. **Configures** smart fallbacks for when you hit rate limits\n5. **Preserves** your existing OpenClaw config\n\n## Quick Start\n\n### 1. Get a Free OpenRouter Key\n\nGo to [openrouter.ai/keys](https://openrouter.ai/keys) → Create account → Generate key\n\nNo credit card. No trial. Actually free.\n\n### 2. Set Your Key\n\n```bash\nexport OPENROUTER_API_KEY=\"sk-or-v1-...\"\n```\n\n### 3. Run FreeRide\n\n```bash\nfreeride auto\n```\n\n### 4. Restart OpenClaw\n\nDone. You're now running on free AI with automatic fallbacks.\n\n## What You Get\n\n```\nPrimary Model: nvidia/nemotron-3-nano-30b-a3b:free (256K context)\n\nFallbacks:\n  1. openrouter/free         ← Smart router (auto-picks best available)\n  2. qwen/qwen3-coder:free   ← Great for coding\n  3. stepfun/step-3.5:free   ← Fast responses\n  4. deepseek/deepseek:free  ← Strong reasoning\n  5. mistral/mistral:free    ← Reliable fallback\n```\n\nWhen you hit a rate limit, OpenClaw automatically tries the next model. You keep working. No interruptions.\n\n## Commands\n\n| Command | What it does |\n|---------|--------------|\n| `freeride auto` | Auto-configure best model + fallbacks |\n| `freeride list` | See all 30+ free models ranked |\n| `freeride switch <model>` | Use a specific model |\n| `freeride status` | Check your current setup |\n\n### Pro Tips\n\n```bash\n# Already have a model you like? Just add fallbacks:\nfreeride auto -f\n\n# Want more fallbacks for maximum uptime?\nfreeride auto -c 10\n\n# Coding? Switch to the best coding model:\nfreeride switch qwen3-coder\n\n# See what's available:\nfreeride list -n 30\n```\n\n## How It Ranks Models\n\nFreeRide scores each model (0-1) based on:\n\n| Factor | Weight | Why |\n|--------|--------|-----|\n| Context Length | 40% | Longer = handle bigger codebases |\n| Capabilities | 30% | Vision, tools, structured output |\n| Recency | 20% | Newer models = better performance |\n| Provider Trust | 10% | Google, Meta, NVIDIA, etc. |\n\nThe **smart fallback** `openrouter/free` is always first - it auto-selects based on what your request needs.\n\n## FAQ\n\n**Is this actually free?**\n\nYes. OpenRouter provides free tiers for many models. You just need an account (no credit card).\n\n**What about rate limits?**\n\nThat's the whole point. FreeRide configures multiple fallbacks. When one model rate-limits you, OpenClaw automatically switches to the next.\n\n**Will it mess up my OpenClaw config?**\n\nNo. FreeRide only touches the model settings. Your gateway, channels, plugins, workspace - all preserved.\n\n**Which models are free?**\n\nRun `freeride list` to see current availability. It changes, which is why FreeRide exists.\n\n## The Math\n\n| Scenario | Monthly Cost |\n|----------|--------------|\n| GPT-4 API | $50-200+ |\n| Claude API | $50-200+ |\n| OpenClaw + FreeRide | **$0** |\n\nYou're welcome.\n\n## Requirements\n\n- [OpenClaw](https://github.com/openclaw/openclaw) installed\n- Python 3.8+\n- `requests` library (`pip install requests`)\n- Free OpenRouter account\n\n## Installation\n\n### Option 1: Download\n\n```bash\n# Download and extract\ncurl -L https://github.com/Shaivpidadi/agent-security-bonds-arc/releases/download/v1.0/freeride.zip -o freeride.zip\nunzip freeride.zip\ncd freeride\npip install -r requirements.txt\n```\n\n### Option 2: Clone\n\n```bash\ngit clone https://github.com/Shaivpidadi/agent-security-bonds-arc.git\ncd agent-security-bonds-arc/server/skills/freeride\npip install -r requirements.txt\n```\n\n### Option 3: ClaHub (Coming Soon)\n\n```bash\nclahub install freeride\n```\n\n## Architecture\n\n```\n┌──────────────┐     ┌──────────────┐     ┌──────────────────┐\n│  You         │ ──→ │  FreeRide    │ ──→ │  OpenRouter API  │\n│  \"freeride   │     │              │     │  (30+ free       │\n│   auto\"      │     │  • Fetch     │     │   models)        │\n└──────────────┘     │  • Rank      │     └──────────────────┘\n                     │  • Configure │\n                     └──────┬───────┘\n                            │\n                            ▼\n                     ┌──────────────┐\n                     │ ~/.openclaw/ │\n                     │ openclaw.json│\n                     └──────┬───────┘\n                            │\n                            ▼\n                     ┌──────────────┐\n                     │  OpenClaw    │\n                     │  (free AI!)  │\n                     └──────────────┘\n```\n\n## Contributing\n\nFound a bug? Want a feature? PRs welcome.\n\n```bash\n# Run tests\npython main.py list\npython main.py status\npython main.py auto --help\n```\n\n## Related Projects\n\n- [OpenClaw](https://github.com/openclaw/openclaw) - The AI coding agent\n- [OpenRouter](https://openrouter.ai) - The model router\n- [Arc Security](https://github.com/Shaivpidadi/agent-security-bonds-arc) - Secure skill marketplace\n\n## License\n\nMIT - Do whatever you want.\n\n---\n\n<p align=\"center\">\n  <b>Stop paying. Start riding.</b>\n  <br>\n  <br>\n  <a href=\"https://github.com/Shaivpidadi/agent-security-bonds-arc\">⭐ Star us on GitHub</a>\n  ·\n  <a href=\"https://openrouter.ai/keys\">🔑 Get OpenRouter Key</a>\n  ·\n  <a href=\"https://github.com/openclaw/openclaw\">🦞 Install OpenClaw</a>\n</p>\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn7eepf540q01kxs5gzwnvsp5s80hhje\",\n  \"slug\": \"free-ride\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1770313337350\n}\n\nFile v1.0.0:skill.json\n\n{\n  \"name\": \"freeride\",\n  \"displayName\": \"FreeRide - Free AI for OpenClaw\",\n  \"version\": \"1.0.0\",\n  \"description\": \"Unlimited free AI access for OpenClaw via OpenRouter's free models with automatic fallback switching\",\n  \"author\": \"OpenClaw Community\",\n  \"license\": \"MIT\",\n  \"commands\": [\n    \"list\",\n    \"switch\",\n    \"auto\",\n    \"status\",\n    \"refresh\",\n    \"fallbacks\"\n  ],\n  \"dependencies\": {\n    \"requests\": \">=2.31.0\"\n  },\n  \"config\": {\n    \"OPENROUTER_API_KEY\": {\n      \"description\": \"Your OpenRouter API key (get free at openrouter.ai)\",\n      \"required\": true,\n      \"env\": true\n    }\n  },\n  \"openclaw\": {\n    \"compatible\": true,\n    \"minVersion\": \"1.0.0\",\n    \"configPath\": \"~/.openclaw/openclaw.json\"\n  }\n}\n\nFile v1.0.0:requirements.txt\n\nrequests>=2.31.0","readmeExcerpt":"Skill: Free Ride - Unlimited free AI Owner: shaivpidadi Summary: Manages free AI models from OpenRouter for OpenClaw. Automatically ranks models by quality, configures fallbacks for rate-limit handling, and updates opencla... Tags: latest:1.0.11 Version history: v1.0.11 | 2026-05-06T20:05:14.776Z | user - Added .gitignore file to manage untracked files in the repository. - Documentation improvements in SKILL.md: clar","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"export OPENROUTER_API_KEY=\"sk-or-v1-...\"\n   # Or persist it:\n   openclaw config set env.OPENROUTER_API_KEY \"sk-or-v1-...\""},{"language":"bash","snippet":"cd ~/.openclaw/workspace/skills/free-ride\n   pip install -e ."},{"language":"bash","snippet":"# Step 1: Configure best free model + fallbacks\nfreeride auto\n\n# Step 2: Restart gateway so OpenClaw picks up the changes\nopenclaw gateway restart"},{"language":"bash","snippet":"# 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"},{"language":"text","snippet":"You: *hits rate limit*\nFreeRide: \"I got you.\" *switches to next best model*\nYou: *keeps coding*"},{"language":"bash","snippet":"freeride auto"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\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.mod"},{"path":"README.md","content":"# 🎢 FreeRide\n\n### Stop paying for AI. Start riding free.\n\n[![ClawHub Downloads](https://api.clawhub-badge.xyz/badge/free-ride/downloads.svg)](https://clawhub.ai/skills/free-ride)\n[![ClawHub Current Installs](https://api.clawhub-badge.xyz/badge/free-ride/installs-current.svg)](https://clawhub.ai/skills/free-ride)\n[![ClawHub Stars](https://api.clawhub-badge.xyz/badge/free-ride/stars.svg)](https://clawhub.ai/skills/free-ride)\n[![ClawHub Version](https://api.clawhub-badge.xyz/badge/free-ride/version.svg)](https://clawhub.ai/skills/free-ride)\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n[![OpenClaw Compatible](https://img.shields.io/badge/OpenClaw-Compatible-blue.svg)](https://github.com/openclaw/openclaw)\n---\n\n**FreeRide** gives you unlimited free AI in [OpenClaw](https://github.com/openclaw/openclaw) by automatically managing OpenRouter's free models.\n\n```\nYou: *hits rate limit*\nFreeRide: \"I got you.\" *switches to next best model*\nYou: *keeps coding*\n```\n\n## The Problem\n\nYou're using OpenClaw. You love it. But:\n\n- 💸 API costs add up fast\n- 🚫 Free models have rate limits\n- 😤 Manually switching models is annoying\n- 🤷 You don't know which free model is actually good\n\n## The Solution\n\nOne command. Free AI. Forever.\n\n```bash\nfreeride auto\n```\n\nThat's it. FreeRide:\n\n1. **Finds** the 30+ free models on OpenRouter\n2. **Ranks** them by quality (context length, capabilities, speed)\n3. **Sets** the best one as your primary\n4. **Configures** smart fallbacks for when you hit rate limits\n5. **Preserves** your existing OpenClaw config\n\n## Installation\n\n```bash\nnpx clawhub@latest install free-ride\ncd ~/.openclaw/workspace/skills/free-ride\npip install -e .\n```\n\nThat's it. `freeride` and `freeride-watcher` are now available as global commands.\n\n## Quick Start\n\n### 1. Get a Free OpenRouter Key\n\nGo to [openrouter.ai/keys](https://openrouter.ai/keys) → Create account → Generate key\n\nNo credit card. No trial. Actually free.\n\n### 2. Set Your Key\n\n```bash\nexport OPENROUTER_API_KEY=\"sk-or-v1-...\"\n\n# Or, multiple keys (shown in `freeride status`):\nexport OPENROUTER_API_KEY='[\"sk-or-v1-key1\",\"sk-or-v1-key2\"]'\n```\n\nOr add it to your OpenClaw config:\n\n```bash\nopenclaw config set env.OPENROUTER_API_KEY \"sk-or-v1-...\"\n```\n\n### 3. Run FreeRide\n\n```bash\nfreeride auto\n```\n\n### 4. Restart OpenClaw\n\n```bash\nopenclaw gateway restart\n```\n\n### 5. Verify It Works\n\nMessage your agent on WhatsApp/Telegram/Discord or the dashboard:\n\n```\nYou:    /status\nAgent:  (shows the free model name + token count)\n```\n\nDone. You're now running on free AI with automatic fallbacks.\n\n## What You Get\n\n```\nPrimary Model: openrouter/nvidia/nemotron-3-nano-30b-a3b:free (256K context)\n\nFallbacks:\n  1. openrouter/free          ← Smart router (auto-picks best available)\n  2. qwen/qwen3-coder:free    ← Great for coding\n  3. stepfun/step-3.5:free    ← Fast responses\n  4. deepseek/deepseek:free   ← Strong reasoning\n  5. mistral/mistral:free     ← Rel"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7eepf540q01kxs5gzwnvsp5s80hhje\",\n  \"slug\": \"free-ride\",\n  \"version\": \"1.0.11\",\n  \"publishedAt\": 1778097914776\n}"},{"path":"skill-card.md","content":"## Description: <br>\nManages free AI models from OpenRouter for OpenClaw by ranking available free models, configuring fallbacks for rate-limit handling, and updating OpenClaw model configuration. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[shaivpidadi](https://clawhub.ai/user/shaivpidadi) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and OpenClaw users use this skill to configure OpenClaw with free OpenRouter-hosted models, ranked fallbacks, and optional rotation when rate limits interrupt agent use. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can change OpenClaw default and fallback model routing. <br>\nMitigation: Back up ~/.openclaw/openclaw.json before running commands that update configuration, and review model settings before restarting OpenClaw. <br>\nRisk: The optional watcher can keep changing model settings as a background process. <br>\nMitigation: Run freeride-watcher only when continuous automatic rotation is intended, and supervise or stop the process when unattended rotation is no longer needed. <br>\nRisk: The skill requires an OpenRouter API key. <br>\nMitigation: Store OPENROUTER_API_KEY as a secret, avoid sharing logs or shell history that expose it, and rotate the key if disclosure is suspected. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/shaivpidadi/free-ride) <br>\n- [Publisher profile](https://clawhub.ai/user/shaivpidadi) <br>\n- [OpenRouter API keys](https://openrouter.ai/keys) <br>\n- [OpenRouter model API](https://openrouter.ai/api/v1/models) <br>\n- [OpenClaw](https://github.com/openclaw/openclaw) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with CLI commands and OpenClaw configuration changes] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires an OpenRouter API key and may write OpenClaw model, fallback, cache, and watcher state files.] <br>\n\n## Skill Version(s): <br>\n1.0.11 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>"},{"path":"skill.json","content":"{\n  \"name\": \"freeride\",\n  \"displayName\": \"FreeRide - Free AI for OpenClaw\",\n  \"version\": \"1.1.0\",\n  \"description\": \"Unlimited free AI access for OpenClaw via OpenRouter's free models with automatic fallback switching\",\n  \"author\": \"Shaishav Pidadi\",\n  \"repository\": \"https://github.com/Shaivpidadi/FreeRide\",\n  \"license\": \"MIT\",\n  \"commands\": [\n    \"list\",\n    \"switch\",\n    \"auto\",\n    \"status\",\n    \"refresh\",\n    \"fallbacks\"\n  ],\n  \"binaries\": {\n    \"freeride\": \"main:main\",\n    \"freeride-watcher\": \"watcher:main\"\n  },\n  \"dependencies\": {\n    \"requests\": \">=2.31.0\"\n  },\n  \"secrets\": [\"OPENROUTER_API_KEY\"],\n  \"requiredEnv\": [\"OPENROUTER_API_KEY\"],\n  \"config\": {\n    \"OPENROUTER_API_KEY\": {\n      \"description\": \"Your OpenRouter API key (get free at openrouter.ai/keys)\",\n      \"required\": true,\n      \"secret\": true,\n      \"env\": true\n    }\n  },\n  \"network\": [\"openrouter.ai\"],\n  \"openclaw\": {\n    \"compatible\": true,\n    \"minVersion\": \"1.0.0\",\n    \"configPath\": \"~/.openclaw/openclaw.json\",\n    \"configKeys\": [\n      \"agents.defaults.model\",\n      \"agents.defaults.models\"\n    ],\n    \"requiredSecrets\": [\"OPENROUTER_API_KEY\"],\n    \"networkAccess\": [\"openrouter.ai\"]\n  },\n  \"install\": \"npx clawhub@latest install free-ride && cd ~/.openclaw/workspace/skills/free-ride && pip install -e .\"\n}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1794,"uniquenessScore":36,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-05-31T07:01:56.461Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-05-31T07:01:56.461Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-08T23:23:34.299Z","emptyReason":null},"items":[{"id":"959108e7-5f7c-45ac-bea0-9ab67f017226","entityType":"agent","canonicalPath":"/agent/langchain-x1pay-langchain","slug":"langchain-x1pay-langchain","name":"@x1pay/langchain","description":"LangChain/LangGraph tools for AI agent x402 payments on X1","url":"https://www.npmjs.com/package/@x1pay/langchain","homepage":null,"source":"GITHUB_OPENCLEW","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":70,"overallRank":65,"updatedAt":"2026-06-01T00:29:07.099Z","createdAt":"2026-05-23T06:52:58.553Z","downloads":null},{"id":"4f8f8f95-34f7-49a9-b516-391d1c355d6c","entityType":"agent","canonicalPath":"/agent/langchain-langchain-langgraph-swarm","slug":"langchain-langchain-langgraph-swarm","name":"@langchain/langgraph-swarm","description":"An implementation of a multi-agent swarm using LangGraph","url":"git+ssh://git@github.com/langchain-ai/langgraphjs.git","homepage":"https://github.com/langchain-ai/langgraphjs#readme","source":"GITHUB_OPENCLEW","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":70,"overallRank":65,"updatedAt":"2026-06-01T00:29:03.792Z","createdAt":"2026-05-23T06:52:55.396Z","downloads":null},{"id":"e36fd59b-38d7-4e73-aa20-c1431a8f7434","entityType":"agent","canonicalPath":"/agent/langchain-langchain-langgraph-supervisor","slug":"langchain-langchain-langgraph-supervisor","name":"@langchain/langgraph-supervisor","description":"LangGraph Multi-Agent Supervisor","url":"git+ssh://git@github.com/langchain-ai/langgraphjs.git","homepage":"https://github.com/langchain-ai/langgraphjs#readme","source":"GITHUB_OPENCLEW","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":70,"overallRank":65,"updatedAt":"2026-06-01T00:29:03.756Z","createdAt":"2026-05-23T06:52:55.353Z","downloads":null},{"id":"d1d0f93e-b722-4791-9bbf-2532470054c2","entityType":"agent","canonicalPath":"/agent/langchain-oceanbus-langchain","slug":"langchain-oceanbus-langchain","name":"oceanbus-langchain","description":"LangChain tools for OceanBus — give your LangChain and CrewAI agents a global identity, encrypted messaging, and Yellow Pages service discovery with a single import.","url":"git+https://github.com/oceanbus/oceanbus.git","homepage":"https://github.com/oceanbus/oceanbus#readme","source":"GITHUB_OPENCLEW","protocols":["OPENCLAW"],"capabilities":["oceanbus","langchain","langchain-tools","agent-to-agent","ai-agent","communication","messaging","e2ee","structured-tool","yellow-pages","service-discovery","reputation","crewai"],"safetyScore":70,"overallRank":65,"updatedAt":"2026-06-01T00:29:02.595Z","createdAt":"2026-05-23T06:52:54.240Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}