Skip to main content

Multi-provider free-model manager for Hermes AI agents. Browse, switch, and auto-rotate across 9 providers and 43+ free models.

Project description

๐Ÿ„ FreeRide-H

Multi-provider free-model manager for Hermes AI agents.

Browse, switch, and auto-rotate across 9 providers and 43+ free AI models โ€” cloud and local. Run it mid-task without breaking your flow.

FreeRide-H Banner

Why FreeRide-H?

AI agents burn through API quota fast. FreeRide-H solves this with a model browser + auto-fallback daemon:

  • freeride list โ€” see every free model across every provider, with context size and details
  • freeride switch big-pickle โ€” switch models mid-task, auto-detects the provider
  • freeride-watcher โ€” background daemon that probes your current model and rotates to the next free one when quota runs out
  • freeride auto โ€” configure all free providers in Hermes with one command

Supported Providers

Provider Env Var Free Tier Free Models
OpenRouter OPENROUTER_API_KEY ~6M/mo per model owl-alpha, elephant-alpha, hy3-preview, nemotron-3-120b, ring-2.6-1t, pareto-code
OpenCode Zen OPENCODE_ZEN_API_KEY Free tier big-pickle, deepseek-v4-flash-free, qwen3.6-plus-free, minimax-m2.5-free, nemotron-3-super-free
Mistral MISTRAL_API_KEY ~1B/mo shared Mistral Large, Ministral 8B, Codestral (256K ctx)
Groq GROQ_API_KEY ~30M/mo per model Llama 3.3 70B, Llama 4 Scout, Qwen3 32B, GPT-OSS 120B
Cerebras CEREBRAS_API_KEY ~30M/mo shared Qwen3 235B, GPT-OSS 120B, Llama 3.1 8B
SambaNova SAMBANOVA_API_KEY ~3M/mo shared DeepSeek V3.1/V3.2, Llama 4 Maverick, Llama 3.3 70B, Gemma 3 12B, GPT-OSS 120B
NVIDIA NIM NVIDIA_API_KEY Credit-based Llama 3.1 70B, Nemotron 4 340B, Mistral Large
Ollama Local (none) Local GPU qwen3.5, gemma4, nemotron-3-nano, llama3.2
Ollama Cloud OLLAMA_API_KEY Free GPU-time GPT-OSS, GLM-4.7, Qwen3, Kimi K2

Total: 43 free models across 9 providers. All OpenAI-compatible.

Quick Start

# 1. Set API keys for the providers you want to use
export OPENROUTER_API_KEY="sk-or-v1-..."
export MISTRAL_API_KEY="..."
export GROQ_API_KEY="..."

# 2. Configure all free providers in Hermes
freeride auto

# 3. Browse available models
freeride list

# 4. Switch to a specific model
freeride switch big-pickle

# 5. Start the background watcher (optional)
freeride-watcher

CLI Reference

freeride list

Show all models across all providers with context size, tier, and details.

freeride list                       # all 46 models
freeride free                       # only free-tier (43 models)
freeride list --provider mistral    # filter by provider
freeride list --provider ollama     # local + cloud Ollama

Output:

Provider         Model ID                                        Ctx Tier    Details
------------------------------------------------------------------------------------
OpenRouter       openrouter/owl-alpha                        131,072 free    General purpose
OpenRouter       openrouter/elephant-alpha                   131,072 free    General purpose
...
Ollama Local     ollama-local/qwen3.5:9b                      32,768 free    RTX 3080 Ti, 6.6 GB

Total: 46 models  |  Free: 43  |  Providers: 9

freeride switch <model>

Switch Hermes to a specific model. Auto-detects which provider owns it.

freeride switch big-pickle         # OpenCode Zen
freeride switch qwen3.5:9b         # Ollama Local
freeride switch codestral          # Mistral
freeride switch llama-3.3-70b      # Groq
freeride switch gpt-5.4-mini       # OpenCode Zen (partial match works)

freeride auto

Configure all free providers in Hermes config at once. Sets model.provider, model.default, model.base_url, and provider-specific fields.

freeride status

Run hermes config check to verify current configuration.

Background Watcher

The freeride-watcher daemon runs as a background process and:

  1. Probes your current model every 60 seconds with a lightweight ping
  2. Detects failures โ€” 4xx/5xx errors, timeouts, quota exhaustion
  3. Measures speed โ€” rotates off models slower than 12s response time
  4. Rotates to the next free model across all providers (cyclic)
freeride-watcher              # run as daemon
freeride-watcher --once       # run one check-and-rotate cycle
freeride-watcher --status     # show rotation state
freeride-watcher -i 300       # custom interval (300s)

Rotation state is persisted to ~/.hermes/.freeride-watcher-state.json:

{
  "rotation_count": 12,
  "last_rotation_at": "2026-06-06T21:18:46",
  "last_rotation_reason": "quota",
  "last_model": "opencode-zen/big-pickle",
  "last_provider": "opencode-zen"
}

How It Works

                    โ”Œโ”€ freeride list โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚ Browse 46 models across 9 providers   โ”‚
                    โ”‚ Filter by provider, tier, context     โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                               โ”‚
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚ freeride switch <model>              โ”‚
                    โ”‚ Auto-detects provider from registry  โ”‚
                    โ”‚ Sets model.provider, model.default,  โ”‚
                    โ”‚ model.base_url, provider config      โ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                               โ”‚
                    โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
                    โ”‚ freeride-watcher (daemon)            โ”‚
                    โ”‚ 1. Probes current model every 60s    โ”‚
                    โ”‚ 2. On fail/slow โ†’ pick next free     โ”‚
                    โ”‚ 3. Set config โ†’ switch provider+modelโ”‚
                    โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

Provider Registry

Providers are defined as data in freeride.py:

Provider(
    name="Groq",
    env_var="GROQ_API_KEY",
    base_url="https://api.groq.com/openai/v1",
    hermes_name="groq",
    models=[
        {"id": "groq/llama-3.3-70b-versatile", ...},
        {"id": "groq/llama-4-scout", ...},
    ],
)

To add a new provider, just append to the PROVIDERS list. The CLI, watcher, and config auto-discover it.

Installation

Hermes Skill (recommended)

# Clone the repo
git clone https://github.com/YOUR_USER/freeride-h.git ~/.hermes/skills/freeride-h

# Make commands available
ln -sf ~/.hermes/skills/freeride-h/freeride.py ~/.local/bin/freeride
chmod +x ~/.local/bin/freeride
ln -sf ~/.hermes/skills/freeride-h/watcher.py ~/.local/bin/freeride-watcher
chmod +x ~/.local/bin/freeride-watcher

Standalone

pip install freeride-h

Requirements: Python 3.10+, Hermes CLI (for freeride auto / freeride switch)

Ollama Local Setup

If you run Ollama locally, no API key is needed:

# Start Ollama
ollama serve

# Pull models
ollama pull qwen3.5:9b
ollama pull llama3.2:1b

# Browse local models
freeride list --provider ollama

# Switch to local inference
freeride switch qwen3.5:9b

The watcher automatically detects local models and skips API key checks.

Adding a New Provider

  1. Edit freeride.py and add a Provider(...) to the PROVIDERS list
  2. Set the env var, base URL, and model list
  3. The CLI, auto-config, and watcher pick it up automatically
Provider(
    name="MyProvider",
    env_var="MY_API_KEY",
    base_url="https://api.myprovider.com/v1",
    hermes_name="my-provider",
    models=[
        {"id": "my-provider/model-1", "label": "Model 1", "context_length": 128_000, "tier": "free", "details": "Description"},
    ],
)

Why "H"?

The "H" stands for Hermes. This is a complete rewrite of the original FreeRide skill (by Shaishav Pidadi) as a Hermes-native multi-provider model manager. The original was OpenRouter-only; FreeRide-H covers 9 providers with auto-rotation.

License

MIT โ€” use it, ship it, fork it.


Built for Hermes Agent by Nous Research.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

freeride_h-1.0.0.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

freeride_h-1.0.0-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file freeride_h-1.0.0.tar.gz.

File metadata

  • Download URL: freeride_h-1.0.0.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for freeride_h-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ba81ae921d31be23993c9e7d6fb837321180d12e2e961731b3ef2046e8a9a562
MD5 a283d6af1cc6b0ccafc48b87188d32c8
BLAKE2b-256 c5b38655f9ecc5c08d842b627f11cbdce54a496e94ef3fec134a9f3a9ebd6e37

See more details on using hashes here.

File details

Details for the file freeride_h-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: freeride_h-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for freeride_h-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4bc797a50e218d03f8758d7ac5a96b103a4e35c854bf8a5bc59d469a2b82a05c
MD5 0b3d88749f409dd5b00e588222f2d63b
BLAKE2b-256 75ac67cf3b4575cd3ba4119040db7dcb7ff695c79e9cc49c4880136709c22e16

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page