Install any skill in seconds. Free to start, no credit card required.
Get Started Free →veniceai/venice-text-routing
Route a prompt to the right Venice text model based on privacy tier (anonymized / private / TEE / E2EE), modality (vision / audio / video input), capability (reasoning, code, function calling, web search, large context, structured output), and cost.
Passed 22 of 25 test cases with the skill, and 7 of 25 without it.
and 16 more in the full report
15 fixed7 passed either way3 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 15 test cases the skill fixed. Same model, same prompt, with and without the skill.
A text model has an input price of $0.85 per 1 million tokens. Which Venice cost tier bucket (XS, S, M, L, or Frontier) does this model fall into based on the classification boundaries?
| Checked | Without skill | With skill |
|---|---|---|
| The output classifies the model into tier S. | Missed | Passed |
The instructions your model reads when the skill loads.
This skill encodes the decision logic for "which Venice text model do I call?" — the routing layer that sits above venice-chat (the call surface) and consumes venice-models (the discovery API).
Primary use case: a local agent receives a prompt, decides whether the local model can handle it, and — if not — picks the cheapest Venice model that satisfies the privacy / modality / capability requirements.
Before applying the matrix below, read
snapshots/text-routing.json. If the file is missing, orsnapshot_dateis older than 30 days, runpython scripts/refresh_routing.pyto regenerate it fromGET /models?type=text+GET /models/traits?type=text. Otherwise trust the cached file — do not hit/modelson every routing decision.
refresh_routing.py rewrites both snapshots/text-routing.json and routing-matrix.md. Both endpoints are public, so no key is needed; VENICE_API_KEY / --api-key is optional and tailors the result to that key (a modelPrivacy-restricted key sees a filtered catalog). Run it once on first install, then ~monthly (CI nightly is also fine).
In the snapshot, each model's privacy label is e2ee when supportsE2EE is true, tee when only supportsTeeAttestation is true, and otherwise the model's own private / anonymized value (every TEE/E2EE model is private in /models, so treat tee and e2ee as private too); tier is bucketed by input price only; beta_access mirrors model_spec.beta (only listed to beta-access keys, so it is always false in the shipped keyless snapshot) and beta_status mirrors model_spec.betaModel (callable, but may change or disappear).
Per model the snapshot carries only: the 13 capability flags shown in the matrix, max_images, available_context_tokens, max_completion_tokens, input/output price per 1M, beta_access, beta_status, offline, region_restrictions and deprecation_date. Filters that need anything else (uncensored, supportsLogProbs, reasoningEffortOptions, maxVideos, cache_input / extended pricing, replacementModelId) have to read GET /models?type=text.
default_reasoning, most_intelligent, …) and a hand-filtered candidate.For the chat call surface itself, see venice-chat. For raw discovery of every model field, see venice-models.
Pick the least restrictive tier that satisfies the request — restricting tier shrinks the candidate pool and often raises cost.
model_spec.privacy has only two values, private and anonymized. TEE and E2EE are capability flags on top of private.
| Tier | Selector (GET /models) | Guarantee | Use when |
|---|---|---|---|
| Anonymized | privacy: "anonymized" | Venice hides your identity from the upstream provider, but the provider may still see the prompt | Non-sensitive workloads; the only path to several closed frontier models (Claude, GPT, Gemini). |
| Private | privacy: "private" | Zero data retention, contract-enforced: content is processed for inference only and not retained | Default for user data, business logic, anything you wouldn't paste into a public chatbot. |
| TEE | capabilities.supportsTeeAttestation: true | Runs inside a hardware Trusted Execution Environment with remote attestation (GET /api/v1/tee/attestation) | Regulated data, verifiable/signed inference. |
| E2EE | capabilities.supportsE2EE: true | TEE + client-side encryption (ECDH secp256k1 → HKDF-SHA256 → AES-256-GCM); Venice relays ciphertext only | Strongest. Healthcare, legal, secrets. Requires the E2EE flow in venice-chat. |
Today every listed TEE model is also E2EE-capable and uses an e2ee-* ID (e.g. e2ee-glm-5-3-p, e2ee-kimi-k3-p, e2ee-qwen3-8-27b). TEE and E2EE use the same model ID: send E2EE headers for E2EE, omit them (or set venice_parameters.enable_e2ee: false) for TEE-only. Legacy tee-* IDs are unlisted aliases of e2ee-* models — don't route on the prefix; use the capability flags.
test cases passed, vs 7 / 25 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.