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.
npx skills add https://github.com/Shaivpidadi/FreeRide --skill freeride
Configures OpenClaw to use free AI models from OpenRouter. Sets the best free model as primary, adds ranked fallbacks so rate limits don't interrupt the user, and preserves existing config.
Before running any FreeRide command, ensure:
echo $OPENROUTER_API_KEY. If empty, the user must get a free key at https://openrouter.ai/keys and set it: export OPENROUTER_API_KEY="sk-or-v1-..."
# Or persist it:
openclaw config set env.OPENROUTER_API_KEY "sk-or-v1-..."
freeride CLI is installed. Check with which freeride. If not found: cd ~/.openclaw/workspace/skills/free-ride
pip install -e .
When the user wants free AI, run these steps in order:
# Step 1: Configure best free model + fallbacks
freeride auto
# Step 2: Restart gateway so OpenClaw picks up the changes
openclaw gateway restart
That's it. The user now has free AI with automatic fallback switching.
Verify by telling the user to send /status to check the active model.
| Command | When to use it |
|---------|----------------|
| freeride auto | User wants free AI set up (most common) |
| freeride auto -f | User wants fallbacks but wants to keep their current primary model |
| freeride auto -c 10 | User wants more fallbacks (default is 5) |
| freeride list | User wants to see available free models |
| freeride list -n 30 | User wants to see all free models |
| freeride switch <model> | User wants a specific model (e.g. freeride switch qwen3-coder) |
| freeride switch <model> -f | Add specific model as fallback only |
| freeride status | Check current FreeRide configuration |
| freeride fallbacks | Update only the fallback models |
| freeride refresh | Force refresh the cached model list |
| freeride rotate | User is rate-limited / fallback chain is dead — live-test and rebuild |
After any command that changes config, always run openclaw gateway restart.
FreeRide updates only these keys in ~/.openclaw/openclaw.json:
agents.defaults.model.primary — e.g. openrouter/qwen/qwen3-coder:freeagents.defaults.model.fallbacks — e.g. ["openrouter/free", "nvidia/nemotron:free", ...]agents.defaults.models — allowlist so /model command shows the free modelsEverything else (gateway, channels, plugins, env, customInstructions, named agents) is preserved.
The first fallback is always openrouter/free — OpenRouter's smart router that auto-picks the best available model based on the request.
For autonomous recovery from a "whole chain is rate-limited" deadlock — which
the agent can't fix by itself, since calling freeride rotate requires
inference and inference is exactly what's failing — the user can run a slim
background daemon:
# Foreground
freeride-watcher
# Persistent background
nohup freeride-watcher > ~/.openclaw/freeride-watcher.log 2>&1 &
# One-shot check (no loop)
freeride-watcher --once
# State / history
freeride-watcher --status
The daemon probes the current primary every 60s; if it fails, it rebuilds the
chain with live-verified models. Recommend this whenever the user is leaving
an unattended OpenClaw setup running.
| Problem | Fix |
|---------|-----|
| freeride: command not found | cd ~/.openclaw/workspace/skills/free-ride && pip install -e . |
| OPENROUTER_API_KEY not set | User needs a key from https://openrouter.ai/keys |
| Changes not taking effect | openclaw gateway restart then /new for fresh session |
| Agent shows 0 tokens | Check freeride status — primary should be openrouter/<provider>/<model>:free |
Integration with protocols.io API for managing scientific protocols. This skill should be used when working with protocols.io to search, create, update, or publish protocols; manage protocol steps and materials; handle discussions and comments; organize workspaces; upload and manage files; or integrate protocols.io functionality into workflows. Applicable for protocol discovery, collaborative protocol development, experiment tracking, lab protocol management, and scientific documentation.
Analyzes job descriptions and generates tailored resumes that highlight relevant experience, skills, and achievements to maximize interview chances
Generate Excalidraw diagrams from natural language descriptions. Use when asked to "create a diagram", "make a flowchart", "visualize a process", "draw a system architecture", "create a mind map", or "generate an Excalidraw file". Supports flowcharts, relationship diagrams, mind maps, and system architecture diagrams. Outputs .excalidraw JSON files that can be opened directly in Excalidraw.
Build and distribute Expo development clients locally or via TestFlight
Use when you have a written implementation plan to execute in a separate session with review checkpoints
Data structure for annotated matrices in single-cell analysis. Use when working with .h5ad files or integrating with the scverse ecosystem. This is the data format skill—for analysis workflows use scanpy; for probabilistic models use scvi-tools; for population-scale queries use cellxgene-census.
Benchling R&D platform integration. Access registry (DNA, proteins), inventory, ELN entries, workflows via API, build Benchling Apps, query Data Warehouse, for lab data management automation.
Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use bioservices.
Take shaivpidadi/freeride from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.
The instructions reference pip.
Without those the skill loads but fails at the first command.