Providers
Venice AI
Venice AI provides privacy-focused inference: open models run
with no logging, plus anonymized proxy access to Claude, GPT, Gemini, and Grok.
All endpoints are OpenAI-compatible (/v1).
Privacy modes
| Mode | Behavior | Models |
|---|---|---|
| Private | Prompts/responses are never stored or logged. Ephemeral. | GLM, Gemma, Grok, Qwen, DeepSeek, Kimi, Venice Uncensored, etc. |
| Anonymized | Proxied through Venice with metadata stripped before forwarding. | Claude, GPT, and selected Qwen models |
Getting started
Install the plugin
openclaw plugins install @openclaw/venice-providerGet your API key
- Sign up at venice.ai
- Go to Settings > API Keys > Create new key
- Copy your API key (format:
vapi_xxxxxxxxxxxx)
Configure OpenClaw
Interactive (recommended)
openclaw onboard --auth-choice venice-api-keyPrompts for the API key (or reuses an existing VENICE_API_KEY), lists available Venice models, and sets your default model.
Environment variable
export VENICE_API_KEY="vapi_xxxxxxxxxxxx"Non-interactive
openclaw onboard --non-interactive --accept-risk --skip-health \ --auth-choice venice-api-key \ --venice-api-key "vapi_xxxxxxxxxxxx"Verify setup
openclaw agent --model venice/zai-org-glm-4.7 --message "Hello, are you working?"Model selection
- Default:
venice/zai-org-glm-4.7(private reasoning). - Strongest anonymized option:
venice/claude-opus-5.
openclaw models set venice/zai-org-glm-4.7openclaw models list --all --provider veniceYou can also run openclaw configure and pick Model/auth provider > Venice AI.
Built-in catalog (16 visible models)
Private models (10) — fully private, no logging
| Model ID | Name | Context | Notes |
|---|---|---|---|
zai-org-glm-5-2 |
GLM 5.2 | 1M | Recommended, coding |
zai-org-glm-4.7 |
GLM 4.7 | 198k | Private reasoning |
venice-uncensored-1-2 |
Venice Uncensored 1.2 | 128k | Most uncensored, vision |
google-gemma-4-31b-it |
Google Gemma 4 31B Instruct | 256k | Recommended, vision |
kimi-k2-6 |
Kimi K2.6 | 256k | Recommended, coding, vision |
deepseek-v3.2 |
DeepSeek V3.2 | 160k | Recommended, reasoning |
qwen3-235b-a22b-thinking-2507 |
Qwen3 235B Thinking | 128k | Default reasoning |
qwen3-coder-480b-a35b-instruct-turbo |
Qwen3 Coder 480B Turbo | 256k | Default coding |
qwen3-vl-235b-a22b |
Qwen3 VL 235B | 128k | Default vision |
grok-4-5 |
Grok 4.5 | 500k | Recommended, coding, vision |
Anonymized models (6) — via Venice proxy
| Model ID | Name | Context | Notes |
|---|---|---|---|
qwen-3-7-max |
Qwen 3.7 Max (via Venice) | 1M | Recommended, coding, vision |
qwen-3-7-plus |
Qwen 3.7 Plus (via Venice) | 1M | Recommended, coding, vision |
claude-fable-5 |
Claude Fable 5 (via Venice) | 1M | Recommended, coding, vision |
claude-opus-5 |
Claude Opus 5 (via Venice) | 1M | Recommended, coding, vision |
claude-sonnet-4-6 |
Claude Sonnet 4.6 (via Venice) | 1M | Recommended, coding, vision |
openai-gpt-56-sol |
GPT-5.6 Sol (via Venice) | 1M | Recommended, vision |
Grok-backed Venice models (grok-4-3 and similar) get the same tool-schema
compat patch as the native xAI provider, since they share the same upstream
tool-call format.
Model discovery
The bundled catalog above is a manifest-backed seed list. At runtime OpenClaw
refreshes it from the Venice /models API and falls back to the seed list if
the API is unreachable. The /models endpoint is public (no auth needed for
listing), but inference requires a valid API key.
Venice may continue accepting retired model IDs as provider-owned aliases. The
OpenClaw catalog advertises only the canonical model IDs returned by /models.
DeepSeek V4 replay behavior
If Venice exposes DeepSeek V4 models such as deepseek-v4-pro or
deepseek-v4-flash, OpenClaw fills the required reasoning_content replay
field on assistant messages when Venice omits it, and strips thinking/
reasoning/reasoning_effort from the request payload (Venice rejects
DeepSeek's native thinking control on these models). This replay fix is
separate from the native DeepSeek provider's own thinking controls.
Streaming and tool support
| Feature | Support |
|---|---|
| Streaming | All models |
| Function calling | All visible seed models; live rows follow API metadata |
| Vision/Images | Models marked "Vision" above |
| JSON mode | Via response_format |
Pricing
Venice uses a credit-based system. Anonymized models cost roughly the same as direct API pricing plus a small Venice fee. See venice.ai/pricing for current rates.
OpenClaw reads live prices from Venice's public
GET /api/v1/models
response during model discovery. The same plugin parser supplies the hosted
catalog publisher. Known and newly discovered models use the API's complete
schedule in USD per million tokens; the manifest prices are an offline seed.
Missing or invalid live prices retain the complete seed schedule for known
models. Unknown models without valid pricing keep zero estimates; that does not
mean the model is free. Explicit API zero rates are valid.
When the API supplies extended pricing, its rates apply to the entire request
only when total prompt input exceeds context_token_threshold. Prompt input
includes uncached input, cache reads, and cache writes; output tokens do not
select the tier. A request exactly at the threshold still uses base rates.
Base and extended rates always come from one schedule. An invalid extended
schedule is not combined with seed or other-source prices.
Explicit models.providers.venice.models[].cost entries override catalog
estimates, including zero. Omitted cost or {} inherits the catalog schedule.
Partial flat overrides inherit missing base rates and remove inherited tiers;
explicit tieredPricing wins, and tieredPricing: [] selects flat pricing.
Agent-local root models.json prices retain highest priority.
New onboarding in models.mode: "merge" leaves generated catalog rows out of the
configuration so they cannot become price pins. Re-onboarding preserves existing
model entries, aliases, and model selection. In models.mode: "replace",
onboarding retains explicit seed rows because that mode disables discovery.
Existing serialized costs are never automatically removed or migrated, even if
they match an old seed. With merge mode enabled, back up your configuration and
remove only unwanted cost fields to resume catalog pricing; keep intentional
overrides.
Discovery reuses its existing fetched rows and cache. Usage display makes no price requests, and a running Gateway does not immediately adopt every upstream price change. Hosted catalog updates activate at the existing restart boundary; see Hosted model catalog. Make sizing-only edits in your source configuration without copying generated model rows back into it: replacing an entire model array from a runtime snapshot can persist inherited costs as explicit overrides. Historical recorded costs are preserved; current pricing fills only missing costs or unknown-price zero placeholders. See Token use and costs.
Usage examples
# Default private modelopenclaw agent --model venice/zai-org-glm-4.7 --message "Quick health check" # Claude Opus via Venice (anonymized)openclaw agent --model venice/claude-opus-5 --message "Summarize this task" # Uncensored modelopenclaw agent --model venice/venice-uncensored-1-2 --message "Draft options" # Vision model with imageopenclaw agent --model venice/qwen3-vl-235b-a22b --message "Review attached image" # Coding modelopenclaw agent --model venice/qwen3-coder-480b-a35b-instruct-turbo --message "Refactor this function"Troubleshooting
API key not recognized
openclaw models list --provider veniceConfirm the API key is configured and starts with vapi_; do not print or
share its value.
Model not available
Run openclaw models list --all --provider venice to see currently
available models; the catalog changes as Venice adds or retires models.
Connection issues
Venice API is at https://api.venice.ai/api/v1. Confirm your network allows HTTPS to that host.
Advanced configuration
Config file example
{ env: { vars: { VENICE_API_KEY: "vapi_..." } }, agents: { defaults: { model: { primary: "venice/zai-org-glm-4.7" } } }, models: { mode: "merge", providers: { venice: { baseUrl: "https://api.venice.ai/api/v1", apiKey: "${VENICE_API_KEY}", api: "openai-completions", models: [ { id: "zai-org-glm-4.7", name: "GLM 4.7", reasoning: true, input: ["text"], contextWindow: 198000, maxTokens: 16384, }, ], }, }, },}