📌 This is a community fork of the original FreeRide by Shaishav Pidadi.
What's fixed: Model ID prefix routing in the
format_model_for_openclaw()function. The original skill wrote fallback model IDs without theopenrouter/routing prefix, causing OpenClaw to fail with "Unknown model" errors. This fork ensures all specific models are prefixed withopenrouter/while preserving theopenrouter/freesmart router ID.
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.
OPENROUTER_API_KEY is set: bash
export OPENROUTER_API_KEY="sk-or-v1-..."
# Or persist it:
openclaw config set env.OPENROUTER_API_KEY "sk-or-v1-..."
The freeride-fix CLI is installed:
bash
cd ~/.openclaw/workspace/skills/free-ride-prefix-fix
pip install -e .
bash
# Step 1: Configure best free model + fallbacks
freeride-fix auto
# Step 2: Restart gateway
openclaw gateway restart
CommandWhen to use itfreeride-fix autoAuto-select best free model (most common)freeride-fix auto -fAdd fallbacks only, keep current primaryfreeride-fix auto -c 10More fallbacks (default: 5)freeride-fix listList available free modelsfreeride-fix list -n 30Show more modelsfreeride-fix switch <model>Switch to a specific modelfreeride-fix switch <model> -fAdd as fallback onlyfreeride-fix statusCheck current configfreeride-fix fallbacksUpdate fallback modelsfreeride-fix refreshRefresh model cache
After any config change, run openclaw gateway restart.
Before (broken):
json
{
"primary": "openrouter/qwen/qwen3.6-plus-preview:free", // ✅ had prefix
"fallbacks": [
"openrouter/free", // ✅ smart router (ID includes prefix)
"nvidia/nemotron-3-super-120b-a12b:free" // ❌ missing openrouter/ prefix!
]
}
After (fixed):
json
{
"primary": "openrouter/qwen/qwen3.6-plus-preview:free", // ✅
"fallbacks": [
"openrouter/free", // ✅ preserved (no double-prefix)
"openrouter/nvidia/nemotron-3-super-120b-a12b:free" // ✅ correct routing prefix
]
}
format_model_for_openclaw)#Original (buggy):
python
if with_provider_prefix:
return f"openrouter/{base_id}"
return base_id # ❌ fallbacks get NO prefix → "Unknown model" error
Fixed:
python
# openrouter/free is already a fully-qualified router ID, don't double-prefix
if model_id in ("openrouter/free", "openrouter/free:free"):
return "openrouter/free"
# All other specific models need the routing prefix
# Remove existing prefix first, normalize, then add it back
if base_id.startswith("openrouter/"):
base_id = base_id[len("openrouter/"):]
if append_free and ":free" not in base_id:
base_id = f"{base_id}:free"
return f"openrouter/{base_id}" # ✅ always prefixed (except smart router)
ProblemFixfreeride-fix: command not found``cd skills/free-ride-prefix-fix && pip install -e .``OPENROUTER_API_KEY not setGet a free key at https://openrouter.ai/keysChanges not taking effectopenclaw gateway restart then /new