Venice AI Privacy Models in OpenClaw
Set up Venice AI in OpenClaw to run privacy-focused open models with no logging, plus anonymized proxy access to Claude, GPT, Gemini, and Grok. Covers privacy modes and plugin install.
Read this when
- You want privacy-focused inference in OpenClaw
- You want Venice AI setup guidance
Venice AI offers inference built around privacy: open models execute without any logging, and you also get anonymized proxy access to Claude, GPT, Gemini, and Grok. Every endpoint speaks the OpenAI-compatible protocol (/v1).
Privacy modes
| Mode | Behavior | Models |
|---|---|---|
| Private | No prompt or response is ever stored or logged. Ephemeral. | GLM, Gemma, Grok, Qwen, DeepSeek, Kimi, Venice Uncensored, etc. |
| Anonymized | Proxied via Venice, with metadata removed prior to forwarding. | Claude, GPT, and selected Qwen models |
Warning
Full privacy does not apply to anonymized models. Metadata is stripped by Venice before the request is forwarded, yet the provider behind it (OpenAI, Anthropic, Google, xAI) still handles that request. Choose Private models whenever complete privacy is needed.
Getting started
Install the plugin
openclaw plugins install @openclaw/venice-provider
Get your API key
- Create an account at venice.ai
- Navigate to Settings > API Keys > Create new key
- Save a copy of your API key (format:
vapi_xxxxxxxxxxxx)
Configure OpenClaw
Interactive (recommended)
openclaw onboard --auth-choice venice-api-key
Asks for the API key (or reuses a VENICE_API_KEY that already exists), shows the Venice models on offer, and configures 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.7
openclaw models list --all --provider venice
Another route: run openclaw configure and choose Model/auth provider > Venice AI.
Tip
Use case Model Why General chat (default) zai-org-glm-4.7Venice live default trait Best overall quality claude-opus-5Current promoted anonymized Opus model Privacy + coding qwen3-coder-480b-a35b-instruct-turboPrivate coding model with large context Fast + cheap google-gemma-4-31b-itLow-cost promoted private vision model Complex private tasks deepseek-v3.2Promoted private reasoning model Uncensored venice-uncensored-1-2Current uncensored Venice model
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 |
Deprecated compatibility rows (3) — hidden from pickers
| Model ID | Replacement |
|---|---|
zai-org-glm-4.6 | zai-org-glm-4.7 |
google-gemma-3-27b-it | google-gemma-4-31b-it |
kimi-k2-5 | kimi-k2-6 |
Because Grok-backed Venice models (grok-4-5 and similar) share the same upstream tool-call format as the native xAI provider, they receive the identical tool-schema compat patch.
Model discovery
The catalog shown above is the manifest-backed seed. During runtime, OpenClaw pulls a fresh copy from the Venice /models API, and if that API cannot be reached it reverts to the seed catalog. Listing on the /models endpoint is public and needs no auth, while inference demands a valid API key.
Retired model IDs might still be accepted by Venice as provider-owned aliases. Only the model IDs that /models returns are advertised in the OpenClaw catalog.
DeepSeek V4 replay behavior
When Venice serves DeepSeek V4 models, including deepseek-v4-pro or deepseek-v4-flash, and leaves out the reasoning_content replay field on assistant messages, OpenClaw supplies it. OpenClaw also removes thinking/reasoning/reasoning_effort from the request payload, since Venice refuses DeepSeek's native thinking control on those models. Note that this replay handling is independent of the thinking controls that belong to the native DeepSeek provider.
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 |
Prompt caching
Against the native https://api.venice.ai/api/v1 endpoint, OpenClaw attaches a stable prompt_cache_key to related requests so that cache affinity improves. A cache key given explicitly in the request outranks the session ID. If cacheRetention: "none" is set, that routing hint is suppressed, though Venice's automatic caching stays on. Endpoints you define yourself keep whatever behavior you configured. Caching specific to the provider, Claude cache markers included, is handled by Venice. See Venice prompt caching.
Pricing
Credits are the billing unit for Venice. Prices for anonymized models come to about the same as calling the API directly, with a modest Venice surcharge added. Current rates appear at venice.ai/pricing.
During model discovery, OpenClaw pulls live prices from the public GET /api/v1/models response that Venice exposes. That same plugin parser feeds the hosted catalog publisher. For both known and newly discovered models, the API's full schedule applies, quoted in USD per million tokens; the seed catalog prices serve as the offline fallback. Should live prices be absent or invalid, known models fall back to the complete seed catalog schedule. Models that are unknown and lack valid pricing keep zero estimates, which is not the same as being free. Zero rates explicitly returned by the API are honored.
Where the API provides extended pricing, those rates cover the whole request only if total prompt input exceeds context_token_threshold. Uncached input, cache reads, and cache writes all count as prompt input; output tokens play no part in picking the tier. A request sitting exactly at the threshold is still billed at base rates. Base and extended rates are always drawn from a single schedule. If an extended schedule is invalid, it is never mixed with seed catalog prices or prices from any other source.
Any models.providers.venice.models[].cost entry you state explicitly overrides catalog estimates, zero included. When cost or {} is omitted, the catalog schedule is inherited. Partial flat overrides take the missing base rates from the catalog and drop inherited tiers; an explicit tieredPricing takes precedence, while tieredPricing: [] chooses flat pricing. Prices set on the agent-local root models.json carry the highest priority.
When onboarding runs fresh in models.mode: "merge", generated catalog rows are kept out of the configuration, so they can never turn into price pins. Running onboarding again keeps existing model entries, aliases, and model selection intact. In models.mode: "replace", onboarding keeps explicit seed catalog rows, because discovery is disabled in that mode. Costs already serialized in your configuration are never deleted or migrated automatically, even when they happen to match an older seed catalog entry. If merge mode is on, back up the configuration first, then delete only the cost fields you no longer want so catalog pricing resumes; leave deliberate overrides in place.
Discovery makes use of the rows and cache it already fetched. Showing usage triggers no price requests, and a Gateway that is already running will not pick up every upstream price change right away. Hosted catalog rows and prices go live together once the Gateway prepares a replacement generation, with no restart needed; see Hosted model catalog. Make sizing-only edits in your source configuration and avoid copying generated model rows back into it: if you replace a whole model array from a runtime snapshot, inherited costs can end up stored as explicit overrides. Costs already recorded in history stay as they are; current pricing only fills in missing costs or unknown-price zero placeholders. See Token use and costs.
Usage examples
# Default private model
openclaw 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 model
openclaw agent --model venice/venice-uncensored-1-2 --message "Draft options"
# Vision model with image
openclaw agent --model venice/qwen3-vl-235b-a22b --message "Review attached image"
# Coding model
openclaw agent --model venice/qwen3-coder-480b-a35b-instruct-turbo --message "Refactor this function"
Troubleshooting
API key not recognized
openclaw models list --provider venice
Check that the API key is configured and begins with vapi_; never print or share the key's value.
Model not available
Execute openclaw models list --all --provider venice to list the models available right now; the catalog shifts as Venice introduces or retires models.
Connection issues
The Venice API lives at https://api.venice.ai/api/v1. Make sure your network permits HTTPS traffic to that host.
Note
Further assistance: Troubleshooting and FAQ.
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,
},
],
},
},
},
}
Related
-
Model selection, Picking providers, model refs, and how failover works.
-
Venice AI, Venice AI's homepage, where you can sign up for an account.
-
API documentation, Reference and developer documentation for the Venice API.
-
Pricing, Venice's present credit rates and plans.