Not in the top 1,000 by GitHub stars
Shaivpidadi/FreeRide
FreeRide gives you unlimited free AI in OpenClaw by automatically managing OpenRouter's free models.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
SKILL.md
Week of Nov 2, 2026 · +0 / −0 lines
Before Network or broad shell → After Network or broad shell
c29105b10fd0 → c29105b10fd0
Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → c29105b10fd0
No earlier version was observed for comparison.
Heat
1.6- Star growth, last 7 daysNot available
- Star growth, last 24 hoursNot available
- Rank movement, last 7 daysNot available
- Commits, last 30 daysNot available
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekNot available
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
30-day change not yet available: not enough history.
Individual skills in this repository
- freeride
/
How it works
freeride
When your agent uses it
Manages free AI models from OpenRouter for OpenClaw. Automatically ranks models by quality, configures fallbacks for rate-limit handling, and updates openclaw.json. Optional Groq, Gemini and Cerebras free tiers are opt-in. Use when the user mentions free AI, OpenRouter, model switching, rate limits, or wants to reduce AI costs.
What it loads into context
Frontmatter
992 tokensAlways available to the agent
SKILL.md
3,189 tokensWhen the skill is activated
Reference documents
5,132 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- What This Skill Does
- Rules for the agent
- Prerequisites
- Primary Workflow
- Commands Reference
- What It Writes
- Who owns the primary
- Optional providers (opt-in)
- Watcher (Background Daemon)
- Troubleshooting
Scripts executed separately
keyguard.pymain.pyproviders.pysetup.pytests/conftest.pytests/test_config_safety.pytests/test_keys.pytests/test_manifest.pytests/test_ownership.pytests/test_providers.pywatcher.py
Files
.clawhubignoreasset138 bytes.gitignoreasset58 bytesCHANGELOG.mddoc2,083 bytesLICENSEasset910 bytesREADME.mddoc17,495 bytesSKILL.mdcore12,095 bytesSKILL.mdcore12,095 bytesSKILL.mdcore12,095 bytesSKILL.mdcore12,095 bytesSKILL.mdcore12,095 bytesSKILL.mdcore12,095 byteskeyguard.pyruns1,705 bytesmain.pyruns54,617 bytesproviders.pyruns13,334 bytesrequirements-dev.txtdoc40 bytesrequirements.txtdoc20 bytessetup.pyruns799 bytesskill.jsonasset4,088 bytestests/conftest.pyruns8,894 bytestests/test_config_safety.pyruns6,114 bytestests/test_keys.pyruns4,853 bytestests/test_manifest.pyruns8,237 bytestests/test_ownership.pyruns10,232 bytestests/test_providers.pyruns15,258 byteswatcher.pyruns6,352 bytes
No excerpt is shown for this license. Read the source on GitHub.
View the complete source on GitHubSkills included
- freeride
Repository facts
- License
- MIT-0
- Created
- Feb 5, 2026
- Last pushed
- Oct 24, 2026
- Forks
- 40
- Open issues
- 0
- Project activity
- Active
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 6, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 5 notes
SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedSKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- No dangerous shell commands
- 75 network referencesin 7 files: README.md:5 providers.py:64 main.py:29 and 4 more
- No hidden or obfuscated text
- No instruction overrides
- 11 executable scriptsin 11 files: keyguard.py:1 main.py:1 providers.py:1 and 8 more
- 109 references to secretsin 12 files: SKILL.md:6 main.py:39 tests/test_keys.py:31 and 9 more
- No requests to vote in Hot
Show all 195 signals by file
README.md
- Network accessline 5
[](https://opensource.org/license/mit-0) - Network accessline 6
[](https://github.com/openclaw/openclaw) - Network accessline 11
> This skill (1.x) is a small config writer: it picks OpenRouter free models > for OpenClaw and writes them into `openclaw.json`. > **[FreeRide v3](https://github.com/Shaivpidadi/FreeRideV3)** is a local - Network accessline 12
> for OpenClaw and writes them into `openclaw.json`. > **[FreeRide v3](https://github.com/Shaivpidadi/FreeRideV3)** is a local > gateway on `localhost:11343` that routes every request across free tiers - Network accessline 13
> **[FreeRide v3](https://github.com/Shaivpidadi/FreeRideV3)** is a local - Access to secretsline 22
[Credential-related source omitted] - Network accessline 26
> > See [Should I use v3?](#should-i-use-1x-or-v3) below for the differences before you switch. > 👉 **Repo:** https://github.com/Shaivpidadi/FreeRideV3 · **Site:** https://free-ride.xyz - Network accessline 28
> 👉 **Repo:** https://github.com/Shaivpidadi/FreeRideV3 · **Site:** https://free-ride.xyz - Network accessline 32
**FreeRide** gives you unlimited free AI in [OpenClaw](https://github.com/openclaw/openclaw) by automatically managing OpenRouter's free models. - Network accessline 81
Go to [openrouter.ai/keys](https://openrouter.ai/keys) → Create account → Generate key - Access to secretsline 90
[Credential-related source omitted] - Access to secretsline 93
[Credential-related source omitted] - Access to secretsline 184
[Credential-related source omitted] - Access to secretsline 185
[Credential-related source omitted] - Access to secretsline 186
[Credential-related source omitted] - Access to secretsline 278
[Credential-related source omitted] - Access to secretsline 297
[Credential-related source omitted] - Network accessline 326
- [OpenClaw](https://github.com/openclaw/openclaw) installed (Node ≥22) - Network accessline 327
- Python 3.8+ - Free OpenRouter account ([get key](https://openrouter.ai/keys)) - Optional: Groq / Gemini / Cerebras keys if you opt into those providers - Network accessline 328
- Free OpenRouter account ([get key](https://openrouter.ai/keys)) - Network accessline 403
- [OpenClaw](https://github.com/openclaw/openclaw) - The AI coding agent - Network accessline 404
- [OpenRouter](https://openrouter.ai) - The model router - Network accessline 405
- [ClawHub](https://github.com/clawhub) - Skill marketplace - Network accessline 415
<br> <br> <a href="https://github.com/Shaivpidadi/FreeRide">⭐ Star us on GitHub</a> - Network accessline 416
<br> <a href="https://github.com/Shaivpidadi/FreeRide">⭐ Star us on GitHub</a> · - Network accessline 417
<a href="https://github.com/Shaivpidadi/FreeRide">⭐ Star us on GitHub</a> - Network accessline 418
· <a href="https://openrouter.ai/keys">🔑 Get OpenRouter Key</a> · - Network accessline 419
<a href="https://openrouter.ai/keys">🔑 Get OpenRouter Key</a> - Network accessline 420
· <a href="https://github.com/openclaw/openclaw">🦞 Install OpenClaw</a> </p> - Network accessline 421
<a href="https://github.com/openclaw/openclaw">🦞 Install OpenClaw</a>
SKILL.md
- Access to secretsline 6
[Credential-related source omitted] - Access to secretsline 10
[Credential-related source omitted] - Access to secretsline 14
[Credential-related source omitted] - Access to secretsline 15
[Credential-related source omitted] - Access to secretsline 18
[Credential-related source omitted] - Access to secretsline 19
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 33
[Credential-related source omitted] - Access to secretsline 45
[Credential-related source omitted] - Network accessline 52
openclaw: emoji: "\U0001F3A2" homepage: https://github.com/Shaivpidadi/FreeRide - Network accessline 53
emoji: "\U0001F3A2" homepage: https://github.com/Shaivpidadi/FreeRide requires: - Network accessline 54
homepage: https://github.com/Shaivpidadi/FreeRide - Access to secretsline 57
[Credential-related source omitted] - Access to secretsline 63
[Credential-related source omitted] - Access to secretsline 65
[Credential-related source omitted] - Access to secretsline 68
[Credential-related source omitted] - Access to secretsline 71
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted] - Access to secretsline 76
[Credential-related source omitted] - Access to secretsline 77
[Credential-related source omitted] - Network accessline 105
[Credential-related source omitted] - Access to secretsline 105
[Credential-related source omitted] - Access to secretsline 107
[Credential-related source omitted] - Access to secretsline 161
[Credential-related source omitted] - Access to secretsline 194
[Credential-related source omitted] - Access to secretsline 195
[Credential-related source omitted] - Access to secretsline 196
[Credential-related source omitted] - Network accessline 229
[Credential-related source omitted] - Network accessline 230
[Credential-related source omitted] - Network accessline 231
[Credential-related source omitted] - Access to secretsline 231
[Credential-related source omitted]
keyguard.py
main.py
- Executable scriptline 1
#!/usr/bin/env python3 - Network accessline 29
OPENROUTER_API_URL = "https://openrouter.ai/api/v1/models" - Network accessline 30
OPENROUTER_CHAT_URL = "https://openrouter.ai/api/v1/chat/completions" - Access to secretsline 39
[Credential-related source omitted] - Network accessline 41
# OpenRouter app-attribution headers — applied to every request so all # FreeRide traffic shows up under one identity on OpenRouter's App Activity # page. https://openrouter.ai/docs/api-reference/overview#headers - Network accessline 43
# page. https://openrouter.ai/docs/api-reference/overview#headers - Network accessline 44
OPENROUTER_REFERER = "https://github.com/Shaivpidadi/FreeRide" - Access to secretsline 48
[Credential-related source omitted] - Access to secretsline 50
[Credential-related source omitted] - Access to secretsline 125
[Credential-related source omitted] - Access to secretsline 126
[Credential-related source omitted] - Access to secretsline 131
[Credential-related source omitted] - Access to secretsline 139
[Credential-related source omitted] - Network accessline 154
continue try: response = requests.get(OPENROUTER_API_URL, headers=_openrouter_headers(key), timeout=30) - Network accessline 155
try: response = requests.get(OPENROUTER_API_URL, headers=_openrouter_headers(key), timeout=30) except requests.RequestException as e: - Network accessline 156
response = requests.get(OPENROUTER_API_URL, headers=_openrouter_headers(key), timeout=30) - Access to secretsline 545
[Credential-related source omitted] - Access to secretsline 546
[Credential-related source omitted] - Access to secretsline 549
[Credential-related source omitted] - Access to secretsline 679
[Credential-related source omitted] - Access to secretsline 691
[Credential-related source omitted] - Network accessline 809
[Credential-related source omitted] - Access to secretsline 809
[Credential-related source omitted] - Network accessline 810
[Credential-related source omitted] - Access to secretsline 810
[Credential-related source omitted] - Network accessline 811
print("or export it in your shell. Get a free key at: https://openrouter.ai/keys") - Access to secretsline 866
[Credential-related source omitted] - Access to secretsline 939
[Credential-related source omitted] - Access to secretsline 1041
[Credential-related source omitted] - Access to secretsline 1042
[Credential-related source omitted] - Access to secretsline 1104
[Credential-related source omitted] - Access to secretsline 1116
[Credential-related source omitted] - Network accessline 1187
for key in available: try: response = requests.post(OPENROUTER_CHAT_URL, headers=_openrouter_headers(key), json=payload, timeout=30) - Network accessline 1188
try: response = requests.post(OPENROUTER_CHAT_URL, headers=_openrouter_headers(key), json=payload, timeout=30) except requests.Timeout: - Network accessline 1189
response = requests.post(OPENROUTER_CHAT_URL, headers=_openrouter_headers(key), json=payload, timeout=30) - Access to secretsline 1311
[Credential-related source omitted]
providers.py
- Executable scriptline 1
Executable file - Network accessline 64
prefix="groq", env_vars=("GROQ_API_KEY",), base_url="https://api.groq.com/openai/v1", - Network accessline 65
[Credential-related source omitted] - Access to secretsline 65
[Credential-related source omitted] - Network accessline 66
base_url="https://api.groq.com/openai/v1", - Network accessline 67
plugin_package="@openclaw/groq-provider", signup_url="https://console.groq.com/keys", ), - Network accessline 68
signup_url="https://console.groq.com/keys", - Network accessline 72
prefix="google", env_vars=("GEMINI_API_KEY", "GOOGLE_API_KEY"), base_url="https://generativelanguage.googleapis.com/v1beta/openai", - Network accessline 73
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted] - Network accessline 74
base_url="https://generativelanguage.googleapis.com/v1beta/openai", - Network accessline 75
plugin_package="@openclaw/google-plugin", signup_url="https://aistudio.google.com/apikey", id_strip="models/", - Network accessline 76
signup_url="https://aistudio.google.com/apikey", - Network accessline 83
prefix="cerebras", env_vars=("CEREBRAS_API_KEY",), base_url="https://api.cerebras.ai/v1", - Network accessline 84
[Credential-related source omitted] - Access to secretsline 84
[Credential-related source omitted] - Network accessline 85
base_url="https://api.cerebras.ai/v1", - Network accessline 86
plugin_package="@openclaw/cerebras-provider", signup_url="https://cloud.cerebras.ai", ), - Network accessline 87
signup_url="https://cloud.cerebras.ai", - Access to secretsline 123
[Credential-related source omitted] - Access to secretsline 149
[Credential-related source omitted] - Network accessline 281
for key in keys: try: response = requests.get(provider.models_url, headers=_headers(key), timeout=30) - Network accessline 282
try: response = requests.get(provider.models_url, headers=_headers(key), timeout=30) except requests.RequestException as e: - Network accessline 283
response = requests.get(provider.models_url, headers=_headers(key), timeout=30) - Network accessline 318
for key in keys: try: response = requests.post(provider.chat_url, headers=_headers(key), json=payload, timeout=30) - Network accessline 319
try: response = requests.post(provider.chat_url, headers=_headers(key), json=payload, timeout=30) except requests.Timeout: - Network accessline 320
response = requests.post(provider.chat_url, headers=_headers(key), json=payload, timeout=30)
setup.py
- Executable scriptline 1
Executable file - Network accessline 6
description="Free AI for OpenClaw - Automatic free model management via OpenRouter", author="Shaishav Pidadi", url="https://github.com/Shaivpidadi/FreeRide", - Network accessline 7
author="Shaishav Pidadi", url="https://github.com/Shaivpidadi/FreeRide", py_modules=["main", "watcher", "providers", "keyguard"], - Network accessline 8
url="https://github.com/Shaivpidadi/FreeRide",
skill.json
- Network accessline 5
"description": "Unlimited free AI access for OpenClaw via OpenRouter's free models with automatic fallback switching, plus opt-in Groq, Gemini and Cerebras free tiers", "author": "Shaishav Pidadi", "repository": "https://github.com/Shai - Network accessline 6
"author": "Shaishav Pidadi", "repository": "https://github.com/Shaivpidadi/FreeRide", "license": "MIT-0", - Network accessline 7
"repository": "https://github.com/Shaivpidadi/FreeRide", - Network accessline 8
"license": "MIT-0", "homepage": "https://github.com/Shaivpidadi/FreeRide", "commands": [ - Network accessline 9
"homepage": "https://github.com/Shaivpidadi/FreeRide", - Access to secretsline 27
[Credential-related source omitted] - Access to secretsline 28
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Access to secretsline 36
[Credential-related source omitted] - Access to secretsline 42
[Credential-related source omitted] - Access to secretsline 43
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Access to secretsline 49
[Credential-related source omitted] - Access to secretsline 54
[Credential-related source omitted] - Access to secretsline 76
[Credential-related source omitted] - Access to secretsline 90
[Credential-related source omitted] - Access to secretsline 107
[Credential-related source omitted] - Access to secretsline 108
[Credential-related source omitted]
tests/conftest.py
- Executable scriptline 1
Executable file - Access to secretsline 28
[Credential-related source omitted] - Access to secretsline 29
[Credential-related source omitted] - Access to secretsline 156
[Credential-related source omitted] - Access to secretsline 184
[Credential-related source omitted] - Access to secretsline 216
[Credential-related source omitted] - Access to secretsline 217
[Credential-related source omitted] - Access to secretsline 218
[Credential-related source omitted]
tests/test_config_safety.py
tests/test_keys.py
- Executable scriptline 1
Executable file - Access to secretsline 31
[Credential-related source omitted] - Access to secretsline 32
[Credential-related source omitted] - Access to secretsline 59
[Credential-related source omitted] - Network accessline 63
def test_network_error_is_redacted(home, or_key, monkeypatch, capsys): def boom(url, headers=None, timeout=None, **kw): raise requests.ConnectionError(f"bad header Bearer {OR_KEY}") - Network accessline 64
def boom(url, headers=None, timeout=None, **kw): raise requests.ConnectionError(f"bad header Bearer {OR_KEY}") monkeypatch.setattr(requests, "get", boom) - Network accessline 65
raise requests.ConnectionError(f"bad header Bearer {OR_KEY}") - Access to secretsline 94
[Credential-related source omitted] - Access to secretsline 95
[Credential-related source omitted] - Access to secretsline 101
[Credential-related source omitted] - Access to secretsline 103
[Credential-related source omitted] - Access to secretsline 107
[Credential-related source omitted] - Access to secretsline 108
[Credential-related source omitted] - Access to secretsline 111
[Credential-related source omitted] - Access to secretsline 114
[Credential-related source omitted] - Access to secretsline 119
[Credential-related source omitted] - Access to secretsline 124
[Credential-related source omitted] - Access to secretsline 129
[Credential-related source omitted] - Access to secretsline 135
[Credential-related source omitted]
tests/test_manifest.py
- Executable scriptline 1
Executable file - Access to secretsline 60
[Credential-related source omitted] - Access to secretsline 61
[Credential-related source omitted] - Access to secretsline 139
[Credential-related source omitted] - Access to secretsline 154
[Credential-related source omitted] - Access to secretsline 159
[Credential-related source omitted] - Access to secretsline 177
[Credential-related source omitted] - Access to secretsline 183
[Credential-related source omitted] - Access to secretsline 184
[Credential-related source omitted]
tests/test_ownership.py
- Executable scriptline 1
Executable file
tests/test_providers.py
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Declared and executed: 1 fact
- Contacts aistudio.google.com, which SKILL.md, the README and the plugin manifest do not mentionproviders.py:76High confidence
Signal confidence: 177 facts
- Network access in prose of documentationREADME.md:5Low confidence
- Network access in prose of documentationREADME.md:6Low confidence
- Network access in prose of documentationREADME.md:11Low confidence
- Network access in prose of documentationREADME.md:12Low confidence
- Network access in prose of documentationREADME.md:13Low confidence
- Access to secrets in prose of documentationREADME.md:22Low confidence
- Network access in prose of documentationREADME.md:26Low confidence
- Network access in prose of documentationREADME.md:28Low confidence
- Network access in prose of documentationREADME.md:32Low confidence
- Network access in prose of documentationREADME.md:81Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valueREADME.md:90Low confidence
- Access to secrets in prose of documentation: a variable, placeholder or call, not a stored valueREADME.md:93Low confidence
- Access to secrets in prose of documentationREADME.md:184Low confidence
- Access to secrets in prose of documentationREADME.md:185Low confidence
- Access to secrets in prose of documentationREADME.md:186Low confidence
- Access to secrets in prose of documentationREADME.md:278Low confidence
- Access to secrets in prose of documentationREADME.md:297Low confidence
- Network access in prose of documentationREADME.md:326Low confidence
- Network access in prose of documentationREADME.md:327Low confidence
- Network access in prose of documentationREADME.md:328Low confidence
- Network access in prose of documentationREADME.md:403Low confidence
- Network access in prose of documentationREADME.md:404Low confidence
- Network access in prose of documentationREADME.md:405Low confidence
- Network access in prose of documentationREADME.md:415Low confidence
- Network access in prose of documentationREADME.md:416Low confidence
- Network access in prose of documentationREADME.md:417Low confidence
- Network access in prose of documentationREADME.md:418Low confidence
- Network access in prose of documentationREADME.md:419Low confidence
- Network access in prose of documentationREADME.md:420Low confidence
- Network access in prose of documentationREADME.md:421Low confidence
- Access to secrets in the frontmatter of the SKILL.mdSKILL.md:6Low confidence
- Access to secrets in the frontmatter of the SKILL.mdSKILL.md:10Low confidence
- Access to secrets in the frontmatter of the SKILL.mdSKILL.md:14Low confidence
- Access to secrets in the frontmatter of the SKILL.md: a variable, placeholder or call, not a stored valueSKILL.md:15Low confidence
- Access to secrets in the frontmatter of the SKILL.mdSKILL.md:18Low confidence
- Access to secrets in the frontmatter of the SKILL.mdSKILL.md:19Low confidence
- Access to secrets in the frontmatter of the SKILL.mdSKILL.md:22Low confidence
- Access to secrets in the frontmatter of the SKILL.md: a variable, placeholder or call, not a stored valueSKILL.md:33Low confidence
- Access to secrets in the frontmatter of the SKILL.mdSKILL.md:45Low confidence
- Network access in the frontmatter of the SKILL.mdSKILL.md:52Low confidence
- Network access in the frontmatter of the SKILL.mdSKILL.md:53Low confidence
- Network access in the frontmatter of the SKILL.mdSKILL.md:54Low confidence
- Access to secrets in the frontmatter of the SKILL.mdSKILL.md:57Low confidence
- Access to secrets in the frontmatter of the SKILL.mdSKILL.md:63Low confidence
- Access to secrets in the frontmatter of the SKILL.mdSKILL.md:65Low confidence
- Access to secrets in the frontmatter of the SKILL.mdSKILL.md:68Low confidence
- Access to secrets in the frontmatter of the SKILL.mdSKILL.md:71Low confidence
- Access to secrets in the frontmatter of the SKILL.mdSKILL.md:74Low confidence
- Access to secrets in the frontmatter of the SKILL.mdSKILL.md:76Low confidence
- Access to secrets in the frontmatter of the SKILL.mdSKILL.md:77Low confidence
and 127 more
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Compatible | Standard SKILL.md SKILL.md | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.