How Synthetic works
Synthetic is a subscription service that runs open-source coding LLMs on dedicated infrastructure and serves them over an OpenAI-compatible (and Anthropic-compatible) API. Instead of paying per-token, you pay a flat monthly subscription and get a generous rate-limit budget covering every model on the platform. It’s positioned as a direct alternative to Claude’s 200/month plans for developers who do a lot of coding: the same price point, several-times-higher rate limits, and your choice of open-source models. Kodus reaches Synthetic through the OpenAI-compatible endpoint, so there are no adapter changes — just BYOK credentials.Plans at a glance
Pricing and rate limits change. Always confirm at synthetic.new/pricing before choosing a tier.
Subscription (recommended for code review)
- All standard models are covered by the subscription — pick any of them by changing the
modelfield. - Rate limits are enforced on a 5-hour rolling window, not per month — plan concurrency to fit inside that window.
- Synthetic does not train on your prompts/completions and deletes API data within 14 days.
Recommended models
Synthetic exposes models using a HuggingFace-style prefix (hf:org/model). A few strong picks for code review:
See the full catalog at dev.synthetic.new/docs/openai/models.
Creating an API Key
- Go to synthetic.new and sign up or log in.
- Subscribe to a plan at synthetic.new/pricing.
- Open the developer console and create an API key. Copy it immediately — you will not see the full key again.
Configure Synthetic in Kodus
The primary flow is BYOK on Kodus Cloud. Self-hosted installs can use environment variables as a secondary option.Option 1 — BYOK on Kodus Cloud (recommended)
- In the sidebar, open AI providers (app.kodus.io/byok).
- Synthetic has no dedicated tile — on the Providers tab, pick OpenAI-compatible under Custom. Which model runs by default and which is the fallback is set afterwards on the Routing tab.
-
Fill the form:
- Click Test & save. Kodus probes the endpoint and persists the config on success. 401 means the key is wrong; 404 usually means the base URL or model path is wrong.
On the Routing tab, set Synthetic as Model for all tasks and an OpenAI or Anthropic model as Fallback (optional) — when the 5-hour window fills up, Kodus automatically fails over and reviews keep flowing.
Option 2 — Self-hosted (environment variables)
If you run Kodus in Fixed Mode (single global provider, no per-org BYOK), configure Synthetic in the.env of your API + worker containers:
This path is only needed for self-hosted Kodus installs that deliberately disable BYOK. If BYOK is enabled on your self-hosted instance, prefer Option 1 — the UI-based flow is the same as on Cloud.
.env, then verify:
When to pick Synthetic
- Your primary model is open-source (Kimi, DeepSeek, Qwen Coder, GLM) and you want a single flat-rate bill instead of juggling per-provider token spend.
- **You’re comparing to Claude Max (30/mo delivers several times the rate-limit budget for similarly-capable coding models.
- You want strong data posture — Synthetic is explicit about no-training and 14-day prompt/completion retention.
Troubleshooting
429 Too Many Requests inside the 5-hour window
429 Too Many Requests inside the 5-hour window
- The subscription budget is per 5-hour rolling window, not per hour or per month. Check how many requests you’ve sent recently in the Synthetic dashboard.
- Either wait for the window to roll forward, lower Max concurrent requests on the model (AI providers → Edit model), or upgrade/stack plans.
- Set a Fallback (optional) model on the Routing tab so reviews keep running while you’re rate-limited.
401 / authentication errors
401 / authentication errors
- Confirm the key is active and the subscription is current in the Synthetic dashboard.
- Make sure there are no trailing spaces or quotes in the
.envvalue.
Model not found
Model not found
- Synthetic uses the
hf:org/modelformat. Leaving off thehf:prefix or using a different capitalization will 404. - Cross-check against dev.synthetic.new/docs/openai/models.
Long cold-start on first call
Long cold-start on first call
- Some larger models may cold-start the first time they’re used after a period of inactivity.
- If first-call latency is blocking Kodus health checks, warm the model by issuing a tiny test request before opening PRs.
Connection errors
Connection errors
- Confirm your server can reach
api.synthetic.new. - Review API and worker logs for the exact upstream error.