Venice AI - OpenClaw

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

    bash
    openclaw plugins install @openclaw/venice-provider
  • Get your API key

    1. Sign up at venice.ai
    2. Go to Settings > API Keys > Create new key
    3. Copy your API key (format: vapi_xxxxxxxxxxxx)
  • Configure OpenClaw

    Environment variable

    bash
    export VENICE_API_KEY="vapi_xxxxxxxxxxxx"

    Non-interactive

    bash
    openclaw onboard --non-interactive --accept-risk --skip-health \  --auth-choice venice-api-key \  --venice-api-key "vapi_xxxxxxxxxxxx"
  • Verify setup

    bash
    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.
    bash
    openclaw models set venice/zai-org-glm-4.7openclaw models list --all --provider venice

    You 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
    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

    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

    bash
    # 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
    bash
    openclaw models list --provider venice

    Confirm 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
    json5
    {  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,          },        ],      },    },  },}
    Was this useful?
    On this page

    On this page