When one model fails, Ficelle tries the next.
If a model rate-limits, returns errors, or fails a capability check, Ficelle excludes it and tries the next eligible option.
When a free provider rate-limits or returns an error, Ficelle tries the next eligible free model in milliseconds. Paid fallback is blocked by design, so routed requests never incur paid-model charges.
Failover stays free, local, and controlled.
If a model rate-limits, returns errors, or fails a capability check, Ficelle excludes it and tries the next eligible option.
Ficelle only routes to models that are genuinely free and can run your tools. Nothing else qualifies.
Ficelle checks whether models handle tool calls, JSON, and vision, then continuously ranks working models by measured speed and reliability.
Paid fallback is hardcoded off: flip it on and Ficelle refuses to start. And the open core is inspectable, so you don't have to take our word for it.
allow_paid_fallback = False
# hardcoded, not a setting
config_store.py:96
In Ficelle's 76-task benchmark, free routing was quality-safe against gpt-5 for labelling, extraction, reasoning, and code. Route those workloads through Ficelle and keep a paid model for polished writing.
Tagging tickets, detecting intent, sorting inbound, picking a branch in an agent graph.
ficelle/auto-fast
Free tied the premium model on every task we tested.
Pulling fields out of invoices, emails, scraped pages, logs. Anything that ends as JSON.
ficelle/auto-json
95% quality-safe in the benchmark.
Multi-step logic, small refactors, test scaffolding, working through a plan.
ficelle/auto-reasoning
The one we expected free to fail. It held up.
Launch copy, customer emails, release notes. Prose someone will judge you on.
keep your paid model
Paid genuinely writes better here. We are not going to pretend otherwise.
Verdicts come from a 76-task benchmark against gpt-5. See the numbers below →
http://127.0.0.1:8646/v1
Cursor, Codex, Continue, Open WebUI, and your own scripts can point at Ficelle's OpenAI-compatible endpoint. Hermes and OpenClaw use packaged connectors.
Call ficelle/auto-tools, auto-json, or auto-fast. You say what the job needs; Ficelle picks the real model that delivers it.
It scores working free models, routes to the best available option, and tries another eligible model when one fails. You do not have to switch providers manually.
Set one base URL and keep the client-side API key as a placeholder. Your real provider keys stay inside Ficelle, on your machine. OpenAI-compatible clients need no adapter; Hermes uses a packaged connector.
from openai import OpenAI
client = OpenAI(
base_url="http://127.0.0.1:8646/v1",
api_key="ficelle-local",
)
client.chat.completions.create(
model="ficelle/auto-tools",
messages=[{"role": "user", "content": "..."}],
)
curl http://127.0.0.1:8646/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{
"model": "ficelle/auto-json",
"messages": [{"role": "user", "content": "..."}]
}'
export OPENAI_BASE_URL="http://127.0.0.1:8646/v1"
export OPENAI_API_KEY="ficelle-local"
# Tools that read these OpenAI environment variables now
# route through Ficelle without code changes.
Long-form content is the honest exception: paid still writes better. The whole 76-task benchmark cost $0.68 to run.
Read the method and the raw numbers →The core router and its built-in profiles are free. Pro adds custom virtual models and maintains the broader provider pool alongside fusion, prompt compression, one-command updates and support.
Open core (BSL 1.1). No account, no card.
InstallBilled monthly. Cancel anytime. 109 € billed once a year.
Start 14-day trialOne payment. No renewals, ever.
Get the Founder license14-day free trial, card required. Cancel anytime before it ends. The 199 € Founder license is capped to the first 200. Routing stays local; Pro periodically reconnects to refresh its entitlement.
Clear answers on cost, privacy, model quality, and what happens when a provider goes down.
The open core is free under BSL 1.1. It includes strict-zero routing, OpenRouter and Nous reference providers, and the one-command installer. Pro adds the maintained provider pool, model fusion, prompt compression and one-command updates. You never pay for models through Ficelle, on any plan.
Ficelle marks the model as cooling down, tries the best working free alternative, and probes the limited one until it recovers. When another eligible model is available, your agent receives its response instead of the provider's 429.
For labelling, triage, structured extraction and most reasoning: yes. We benchmarked 76 real agent tasks against gpt-5 and free routing was quality-safe on classification (100%), JSON extraction (95%) and reasoning (94%). Polished long-form writing is the exception, where the paid model still wins. Route the first three through Ficelle and keep your budget for the writing.
No. There is no middleman: the router runs on your machine, your API keys stay local, and prompts go straight to the provider you choose. Ficelle-operated servers receive only an optional update request and the Pro license check; set FICELLE_DISABLE_UPDATE_CHECK=1 to opt out of update checks. The license check carries license identity, never prompts or provider keys.
No. Paid fallback is hardcoded off. It is not a setting you can mis-toggle, and Ficelle refuses to start if the config claims otherwise. Any model that reports billing gets quarantined automatically. The core code is public to inspect, so you can verify all of it.
Yes. The 14-day trial requires a card. Stripe charges the selected Pro plan when the trial ends unless you cancel first. Annual costs 109 €/yr; Lifetime costs 199 € as a single payment with no renewals. Prices are in euros, and your bank converts the EUR amount at its usual card rate.
Ficelle supports Cursor, Codex, Continue, Open WebUI, LangChain, CrewAI and plain curl through its OpenAI-compatible endpoint at http://127.0.0.1:8646/v1. Hermes and OpenClaw use packaged connectors. Claude Code cannot connect directly today, but its scripts and hooks can use Ficelle.
Ficelle Pro includes Profile Studio. You can create a stable ID such as ficelle/custom/coding, start from a built-in routing policy, tune its model pool and export it to Hermes, OpenClaw or a generic OpenAI-compatible client. If Pro expires, Ficelle preserves the configuration but stops listing, exporting and routing that custom ID; direct requests fail explicitly instead of silently falling back.
One command. No account or card. Paid fallback is blocked by design.
curl -fsSL https://raw.githubusercontent.com/TheBlueHouse75/ficelle-open-core/v0.3.12/scripts/bootstrap-ficelle.py | python3 -
The command above installs the same version the footer advertises.