Venice Ai

v2.1.1

Complete Venice AI platform — text generation, vision/image analysis, web search, X/Twitter search, embeddings, TTS, speech-to-text, image generation, backgr...

3· 2.7k·7 current·9 all-time
Security Scan
Capability signals
Crypto
These labels describe what authority the skill may exercise. They are separate from suspicious or malicious moderation verdicts.
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
Name/description (complete Venice AI client) matches the code and declared requirements: Python scripts that call Venice endpoints and a single required credential VENICE_API_KEY. The brew install for python is reasonable. Minor note: the SKILL.md and SECURITY.md reference reading the Clawdbot config (~/.clawdbot/clawdbot.json) as a fallback for the API key, but the registry metadata did not list that config path as a required config path — this is a small metadata omission rather than a functional mismatch.
Instruction Scope
Runtime instructions and scripts accept and fetch user-supplied URLs (images, videos, etc.) and upload content to api.venice.ai. That behavior is legitimate for an image/video/audio processing client, but it creates SSRF risk if untrusted/internal URLs are supplied. The project documents this risk in SECURITY.md but does not enforce any outbound URL restrictions in code. Also some small coding oddities exist (e.g., GET request constructed with a JSON body in one function) that look like bugs rather than malicious behavior.
Install Mechanism
Install spec only recommends installing Python via Homebrew (formula: python). No downloads from arbitrary URLs or extract/install steps are present. The skill ships as Python source scripts (no opaque binary installs).
Credentials
Only a single credential (VENICE_API_KEY) is required and used as the Authorization bearer token to contact api.venice.ai. That is proportional to the functionality. The fallback to read ~/.clawdbot/clawdbot.json for the key is documented but not declared in registry config paths — users should be aware the skill may read that file if present.
Persistence & Privilege
The skill does not request always:true or other elevated platform privileges and appears not to modify other skills or global config. It runs as CLI scripts invoked by the agent and only writes files the user requests via --output or --out-dir.
Assessment
This skill is a coherent Venice AI CLI client and requires only python3 and a Venice API key. Main things to consider before installing: 1) The scripts will fetch any HTTP(S) URL you pass (images/videos/audio). Do not supply internal or metadata URLs (localhost, 169.254.x.x, internal hostnames) in multi-tenant or exposed environments — this is an SSRF risk. 2) The skill will look for your VENICE_API_KEY in the environment and, as a documented fallback, in ~/.clawdbot/clawdbot.json; if you store the key there, treat that file as sensitive. 3) The code is pure Python and open-source (no obfuscated binaries), but some small coding bugs/quirks exist (e.g., unusual GET-with-body usage); these look like bugs, not malicious behavior. 4) If you run this on a shared host, sandbox or restrict outbound network access to prevent accidental requests to internal resources. If you need higher assurance, review venice_common.py to confirm API_BASE points to api.venice.ai and verify key-handling behavior before use.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

🏛️ Clawdis
Binspython3
EnvVENICE_API_KEY
Primary envVENICE_API_KEY

Install

Install Python (brew)
Bins: python3
brew install python
latestvk97apqc8mt13mbwh5pjh7abgkd84bj58
2.7kdownloads
3stars
5versions
Updated 2w ago
v2.1.1
MIT-0

Venice AI — Complete Platform Skill

What is Venice AI?

Venice AI is the AI platform for people who don't want Big Tech watching over their shoulder. Unlike OpenAI, Anthropic, and Google — where every prompt is logged, analyzed, and potentially used to train future models — Venice offers true privacy with zero data retention on private models. Your conversations stay yours.

Venice is also uncensored: no content filters, no refusals, no "I can't help with that." The AI answers what you actually ask, whether that's creative fiction, security research, controversial topics, or anything else mainstream AI platforms won't touch.

Why agents should care:

  • Private inference — Models marked "Private" have zero data retention. Process sensitive data without it leaking into training sets.
  • TEE (Trusted Execution Environment) — Hardware-secured inference; Venice's own servers cannot access the computation.
  • E2EE (End-to-End Encryption) — Prompts encrypted client-side before they reach Venice's servers. Maximum privacy.
  • Uncensored responses — No guardrails blocking legitimate use cases.
  • OpenAI-compatible API — Drop-in replacement. Same API format, just change the base URL.
  • 30+ models — From tiny efficient models to Claude Opus 4.6, GPT-5.2, Grok-4, Gemini Pro, and Venice's own uncensored models.
  • Built-in web search — LLMs can search the web (and X/Twitter via Grok) and cite sources in a single API call.
  • Vision/multimodal — Analyze images, audio, and video in chat completions.
  • Image & video generation — Flux, Sora, Runway, WAN models for visual content.
  • Music generation — AI-composed music with optional lyrics support.
  • Background removal — One-click transparent PNG output.

This skill gives you the complete Venice platform in one place.

⚠️ API changes: If something doesn't work as expected, check docs.venice.ai — the API specs may have been updated since this skill was written.

Prerequisites

Setup

Get Your API Key

  1. Create account at venice.ai
  2. Go to venice.ai/settings/api
  3. Click "Create API Key" → copy the key (starts with vn_...)

Configure

Option A: Environment variable

export VENICE_API_KEY="vn_your_key_here"

Option B: Clawdbot config (recommended)

// ~/.clawdbot/clawdbot.json
{
  skills: {
    entries: {
      "venice-ai": {
        env: { VENICE_API_KEY: "vn_your_key_here" }
      }
    }
  }
}

Verify

python3 {baseDir}/scripts/venice.py models --type text

Scripts Overview

ScriptPurpose
venice.pyText generation, vision analysis, models, embeddings, TTS, transcription
venice-image.pyImage generation, background removal
venice-video.pyVideo generation (Sora, WAN, Runway)
venice-music.pyMusic generation (queue-based async)
venice-upscale.pyImage upscaling
venice-edit.pyAI image editing, multi-image editing

Part 1: Text, Vision & Audio

Model Discovery & Selection

Venice has a huge model catalog spanning text, image, video, audio, and embeddings.

Browse Models

# List all text models
python3 {baseDir}/scripts/venice.py models --type text

# List image models
python3 {baseDir}/scripts/venice.py models --type image

# List all model types
python3 {baseDir}/scripts/venice.py models --type text,image,video,audio,embedding

# Get details on a specific model
python3 {baseDir}/scripts/venice.py models --filter grok

Model Selection Guide

NeedRecommended ModelWhy
Cheapest textqwen3-4bTiny, fast, efficient
Best uncensoredvenice-uncensoredVenice's own uncensored model
Best private + smartdeepseek-v3.2Great reasoning, efficient
Vision/multimodalqwen3-vl-235b-a22bAnalyze images, video, audio
Best codingqwen3-coder-480b-a35b-instructMassive coder model
Frontier fastgrok-41-fastFast, 262K context
X/Twitter searchgrok-4-20-beta or grok-41-fastGrok models + --x-search
Frontier max qualityclaude-opus-4-6Best overall quality
Reasoningkimi-k2-5Strong chain-of-thought
Web searchAny model + --web-searchBuilt-in web search

Text Generation (Chat Completions)

Basic Generation

# Simple prompt
python3 {baseDir}/scripts/venice.py chat "What is the meaning of life?"

# Choose a model
python3 {baseDir}/scripts/venice.py chat "Explain quantum computing" --model deepseek-v3.2

# System prompt
python3 {baseDir}/scripts/venice.py chat "Review this code" --system "You are a senior engineer."

# Read from stdin
echo "Summarize this" | python3 {baseDir}/scripts/venice.py chat --model qwen3-4b

# Stream output
python3 {baseDir}/scripts/venice.py chat "Write a story" --stream

Web Search Integration

# Auto web search (model decides when to search)
python3 {baseDir}/scripts/venice.py chat "What happened in tech news today?" --web-search auto

# Force web search with citations
python3 {baseDir}/scripts/venice.py chat "Current Bitcoin price" --web-search on --web-citations

# Web scraping (extracts content from URLs in prompt)
python3 {baseDir}/scripts/venice.py chat "Summarize: https://example.com/article" --web-scrape

X/Twitter Search (via Grok)

Use Grok models to search X (Twitter) for real-time posts and discussions:

# Search X for latest AI news
python3 {baseDir}/scripts/venice.py chat "latest AI news from X today" \
  --model grok-41-fast --x-search

# Combine X search with web search
python3 {baseDir}/scripts/venice.py chat "What are people saying about OpenAI?" \
  --model grok-4-20-beta --x-search --web-search auto

Note: --x-search only works with Grok models (grok-*). It sets enable_x_search: true in venice_parameters, which routes search through xAI's infrastructure.

Uncensored Mode

# Use Venice's own uncensored model
python3 {baseDir}/scripts/venice.py chat "Your question" --model venice-uncensored

# Disable Venice system prompts for raw model output
python3 {baseDir}/scripts/venice.py chat "Your prompt" --no-venice-system-prompt

Reasoning Models

Venice supports extended reasoning/thinking modes with fine-grained effort control:

# Use a reasoning model with effort control
python3 {baseDir}/scripts/venice.py chat "Solve this math problem..." \
  --model kimi-k2-5 --reasoning-effort high

# Minimal reasoning (faster, cheaper)
python3 {baseDir}/scripts/venice.py chat "Simple question" \
  --model qwen3-4b --reasoning-effort minimal

# Maximum reasoning (slowest, most thorough)
python3 {baseDir}/scripts/venice.py chat "Complex analysis" \
  --model claude-opus-4-6 --reasoning-effort max

# Strip thinking from output (result only)
python3 {baseDir}/scripts/venice.py chat "Debug this code" --model qwen3-4b --strip-thinking

# Disable reasoning entirely
python3 {baseDir}/scripts/venice.py chat "Quick answer" --model qwen3-4b --disable-thinking

Reasoning effort values (not all models support all levels):

ValueDescription
noneNo reasoning (fastest)
minimalVery brief thinking
lowLight reasoning
mediumBalanced (often default)
highThorough reasoning
xhighExtended reasoning
maxMaximum reasoning budget

Privacy: E2EE Mode

For maximum privacy, use End-to-End Encryption with supported models:

# Enable E2EE (prompts encrypted client-side before reaching Venice)
python3 {baseDir}/scripts/venice.py chat "sensitive analysis" \
  --model some-e2ee-model --enable-e2ee

Privacy tiers on Venice:

  • Standard — Anonymized inference, no persistent logs
  • Private inference — Hardware-isolated, zero retention
  • TEE (Trusted Execution Environment) — Hardware-secured; Venice servers cannot access computation
  • E2EE (End-to-End Encryption) — Prompts encrypted client-side; Venice has zero visibility

Advanced Options

# Temperature and token control
python3 {baseDir}/scripts/venice.py chat "Be creative" --temperature 1.2 --max-tokens 4000

# JSON output mode
python3 {baseDir}/scripts/venice.py chat "List 5 colors as JSON" --json

# Prompt caching (for repeated context — up to 90% cost savings)
python3 {baseDir}/scripts/venice.py chat "Question" --cache-key my-session-123

# Show usage stats and balance
python3 {baseDir}/scripts/venice.py chat "Hello" --show-usage

# Use a Venice character
python3 {baseDir}/scripts/venice.py chat "Tell me about yourself" --character venice-default

Vision / Image Analysis

Analyze images using multimodal vision models. Supports local files, URLs, and data URLs.

# Analyze a local image
python3 {baseDir}/scripts/venice.py analyze photo.jpg "What's in this image?"

# Analyze with default prompt (describe in detail)
python3 {baseDir}/scripts/venice.py analyze photo.jpg

# Analyze from URL
python3 {baseDir}/scripts/venice.py analyze "https://example.com/image.jpg" "Describe the scene"

# Choose vision model
python3 {baseDir}/scripts/venice.py analyze diagram.png "Explain this diagram" \
  --model qwen3-vl-235b-a22b

# Stream the analysis
python3 {baseDir}/scripts/venice.py analyze photo.jpg "Identify all objects" --stream

# Count tokens used
python3 {baseDir}/scripts/venice.py analyze photo.jpg "Analyze this" --show-usage

Vision-capable models: qwen3-vl-235b-a22b, claude-opus-4-6, gpt-5.2, and others — check --list-models for current availability.

Supported image formats: JPEG, PNG, WebP, GIF, BMP


Embeddings

Generate vector embeddings for semantic search, RAG, and recommendations:

# Single text
python3 {baseDir}/scripts/venice.py embed "Venice is a private AI platform"

# Multiple texts (batch)
python3 {baseDir}/scripts/venice.py embed "first text" "second text" "third text"

# From file (one text per line)
python3 {baseDir}/scripts/venice.py embed --file texts.txt

# Output as JSON
python3 {baseDir}/scripts/venice.py embed "some text" --output json

Model: text-embedding-bge-m3 (private, $0.15/M tokens)


Text-to-Speech (TTS)

Convert text to speech with 60+ multilingual voices:

# Default voice
python3 {baseDir}/scripts/venice.py tts "Hello, welcome to Venice AI"

# Choose a voice
python3 {baseDir}/scripts/venice.py tts "Exciting news!" --voice af_nova

# List available voices
python3 {baseDir}/scripts/venice.py tts --list-voices

# Custom output path
python3 {baseDir}/scripts/venice.py tts "Some text" --output /tmp/speech.mp3

# Adjust speed
python3 {baseDir}/scripts/venice.py tts "Speaking slowly" --speed 0.8

Popular voices: af_sky, af_nova, am_liam, bf_emma, zf_xiaobei (Chinese), jm_kumo (Japanese)

Model: tts-kokoro (private, $3.50/M characters)


Speech-to-Text (Transcription)

Transcribe audio files to text:

# Transcribe a file
python3 {baseDir}/scripts/venice.py transcribe audio.wav

# With timestamps
python3 {baseDir}/scripts/venice.py transcribe recording.mp3 --timestamps

# From URL
python3 {baseDir}/scripts/venice.py transcribe --url https://example.com/audio.wav

Supported formats: WAV, FLAC, MP3, M4A, AAC, MP4

Model: nvidia/parakeet-tdt-0.6b-v3 (private, $0.0001/audio second)


Check Balance

python3 {baseDir}/scripts/venice.py balance

Part 2: Images & Video

Pricing Overview

FeatureCost
Image generation~$0.01-0.03 per image
Background removal~$0.02
Image upscale~$0.02-0.04
Image edit (single)~$0.04
Image multi-edit~$0.04-0.08
Video (WAN)~$0.10-0.50
Video (Sora)~$0.50-2.00
Video (Runway)~$0.20-1.00
Music generationvaries by model/duration

Use --quote with video/music commands to check pricing before generation.


Image Generation

# Basic generation
python3 {baseDir}/scripts/venice-image.py --prompt "a serene canal in Venice at sunset"

# Multiple images
python3 {baseDir}/scripts/venice-image.py --prompt "cyberpunk city" --count 4

# Custom dimensions
python3 {baseDir}/scripts/venice-image.py --prompt "portrait" --width 768 --height 1024

# List available models and styles
python3 {baseDir}/scripts/venice-image.py --list-models
python3 {baseDir}/scripts/venice-image.py --list-styles

# Use specific model and style
python3 {baseDir}/scripts/venice-image.py --prompt "fantasy" --model flux-2-pro \
  --style-preset "Cinematic"

# Reproducible results with seed
python3 {baseDir}/scripts/venice-image.py --prompt "abstract" --seed 12345

# PNG format with no watermark
python3 {baseDir}/scripts/venice-image.py --prompt "product shot" \
  --format png --hide-watermark

Key flags: --prompt, --model (default: flux-2-max), --count, --width, --height, --format (webp/png/jpeg), --resolution (1K/2K/4K), --aspect-ratio, --negative-prompt, --style-preset, --cfg-scale (0-20), --seed, --safe-mode, --hide-watermark, --embed-exif, --steps


Background Removal

Remove the background from any image, producing a transparent PNG:

# From local file
python3 {baseDir}/scripts/venice-image.py --background-remove photo.jpg

# Specify output path
python3 {baseDir}/scripts/venice-image.py --background-remove photo.jpg --output cutout.png

# From URL
python3 {baseDir}/scripts/venice-image.py --background-remove \
  "https://example.com/product.jpg" --output product-transparent.png

The output is always a PNG with a transparent background (alpha channel). Works best with clear subject/background separation.


Image Upscale

# 2x upscale
python3 {baseDir}/scripts/venice-upscale.py photo.jpg --scale 2

# 4x with AI enhancement
python3 {baseDir}/scripts/venice-upscale.py photo.jpg --scale 4 --enhance

# Enhanced with custom prompt
python3 {baseDir}/scripts/venice-upscale.py photo.jpg --enhance --enhance-prompt "sharpen details"

# From URL
python3 {baseDir}/scripts/venice-upscale.py --url "https://example.com/image.jpg" --scale 2

Key flags: --scale (1-4, default: 2), --enhance (AI enhancement), --enhance-prompt, --enhance-creativity (0.0-1.0), --url, --output


Image Edit (AI-powered)

Single Image Edit

AI-powered editing where the model interprets your prompt to modify the image:

# Add elements
python3 {baseDir}/scripts/venice-edit.py photo.jpg --prompt "add sunglasses"

# Modify scene
python3 {baseDir}/scripts/venice-edit.py photo.jpg --prompt "change the sky to sunset"

# Remove objects
python3 {baseDir}/scripts/venice-edit.py photo.jpg --prompt "remove the person in background"

# From URL
python3 {baseDir}/scripts/venice-edit.py --url "https://example.com/image.jpg" \
  --prompt "colorize this black and white photo"

# Specify output location
python3 {baseDir}/scripts/venice-edit.py photo.jpg --prompt "add snow" --output result.png

Multi-Image Edit (up to 3 images)

Compose or blend multiple images together using advanced edit models:

# Combine 2 images
python3 {baseDir}/scripts/venice-edit.py --multi-edit base.jpg overlay.png \
  --prompt "merge these images seamlessly"

# Layer 3 images with model selection
python3 {baseDir}/scripts/venice-edit.py --multi-edit bg.jpg subject.png detail.png \
  --prompt "compose these layers into one image" --model flux-2-max-edit

# Mix local file and URL
python3 {baseDir}/scripts/venice-edit.py --multi-edit local.jpg "https://example.com/img.png" \
  --prompt "blend these two photos" --output blended.png

Multi-edit models: flux-2-max-edit (default), qwen-edit, gpt-image-1-5-edit

Note: The standard edit endpoint uses Qwen-Image which has some content restrictions. Multi-edit uses Flux-based models.


Video Generation

# Get price quote first
python3 {baseDir}/scripts/venice-video.py --quote --model wan-2.6-image-to-video --duration 10s

# Image-to-video (WAN - default)
python3 {baseDir}/scripts/venice-video.py --image photo.jpg --prompt "camera pans slowly" \
  --duration 10s

# Image-to-video (Sora)
python3 {baseDir}/scripts/venice-video.py --image photo.jpg --prompt "cinematic" \
  --model sora-2-image-to-video --duration 8s --aspect-ratio 16:9 --skip-audio-param

# Video-to-video (Runway Gen4)
python3 {baseDir}/scripts/venice-video.py --video input.mp4 --prompt "anime style" \
  --model runway-gen4-turbo-v2v

# List models with available durations
python3 {baseDir}/scripts/venice-video.py --list-models

Key flags: --image or --video, --prompt, --model (default: wan-2.6-image-to-video), --duration, --resolution (480p/720p/1080p), --aspect-ratio, --audio/--no-audio, --quote, --timeout

Models:

  • WAN — Image-to-video, configurable audio, 5s-21s
  • Sora — Requires --aspect-ratio, use --skip-audio-param
  • Runway — Video-to-video transformation

Part 3: Music Generation

Music Generation (AI Composed)

Venice supports AI music generation via a queue-based async API (similar to video generation). Music is generated server-side and polled for completion.

# Get price quote first
python3 {baseDir}/scripts/venice-music.py --quote --model elevenlabs-music --duration 60

# Generate instrumental music
python3 {baseDir}/scripts/venice-music.py --prompt "epic orchestral battle theme" --instrumental

# Generate music with lyrics
python3 {baseDir}/scripts/venice-music.py \
  --prompt "upbeat pop summer song" \
  --lyrics "Verse 1: Walking down the beach / feeling the heat..."

# Control duration
python3 {baseDir}/scripts/venice-music.py --prompt "ambient piano meditation" --duration 30

# Specify output location
python3 {baseDir}/scripts/venice-music.py --prompt "jazz café background" \
  --output ~/Music/venice-jazz.mp3

# List available audio models
python3 {baseDir}/scripts/venice-music.py --list-models

# Don't delete from server after download (useful for re-downloading)
python3 {baseDir}/scripts/venice-music.py --prompt "..." --no-delete

# Clean up server-side media after downloading with --no-delete
python3 {baseDir}/scripts/venice-music.py --complete QUEUE_ID

Parameters:

FlagDescription
--promptMusic description (style, mood, genre, instruments)
--modelModel ID (default: elevenlabs-music)
--durationDuration in seconds
--lyricsOptional lyrics text for vocal generation
--instrumentalForce instrumental (no vocals)
--voiceVoice selection for vocal tracks
--languageLanguage code (e.g., en, es, fr)
--quoteGet price estimate without generating
--timeoutMax wait time in seconds (default: 300)
--poll-intervalStatus check interval (default: 10s)

Prompt tips for music:

  • Be specific: genre, tempo, instruments, mood
  • e.g., "chill lo-fi hip hop with piano and rain ambiance, 85 BPM"
  • e.g., "cinematic orchestral swell, strings and brass, dramatic tension"
  • e.g., "acoustic folk guitar, warm and intimate, fingerpicking style"

Tips & Ideas

🔍 Web Search + LLM = Research Assistant

Use --web-search on --web-citations to build a research workflow. Venice searches the web, synthesizes results, and cites sources — all in one API call.

🐦 X/Twitter Search via Grok

With Grok models and --x-search, you get real-time access to X posts and discussions. Great for trend monitoring, social listening, and news research.

🔓 Uncensored Creative Content

Venice's uncensored models work for both text AND images. No guardrails blocking legitimate creative use cases.

🔒 Maximum Privacy with TEE/E2EE

When processing sensitive data:

  • Use models with private inference for zero data retention
  • Use TEE models when you need hardware-level isolation
  • Use --enable-e2ee for encrypted prompt delivery

🎯 Prompt Caching for Agents

If you're running an agent loop that sends the same system prompt repeatedly, use --cache-key to get up to 90% cost savings.

👁️ Vision Pipeline

# Analyze → describe → generate matching image
python3 scripts/venice.py analyze original.jpg "describe the style and composition" > desc.txt
python3 scripts/venice-image.py --prompt "$(cat desc.txt)" --model flux-2-max

🎤 Audio Pipeline

Combine TTS and transcription: generate spoken content with tts, process audio with transcribe. Both are private inference.

🎬 Video Workflow

  1. Generate or find a base image
  2. Use --quote to estimate video cost
  3. Generate with appropriate duration/model
  4. Videos take 1-5 minutes depending on settings

🎵 Music + Video

# Generate background music, then use it for video
python3 scripts/venice-music.py --prompt "cinematic adventure theme" --output bgm.mp3
python3 scripts/venice-video.py --image scene.jpg --prompt "epic journey" --audio-url bgm.mp3

🖼️ Image Cleanup Pipeline

# Generate → remove background → use in video
python3 scripts/venice-image.py --prompt "product on white background" --format png
python3 scripts/venice-image.py --background-remove output.png --output product-clean.png

Troubleshooting

ProblemSolution
VENICE_API_KEY not setSet env var or configure in ~/.clawdbot/clawdbot.json
Invalid API keyVerify at venice.ai/settings/api
Model not foundRun --list-models to see available; use --no-validate for new models
Rate limitedCheck --show-usage output
Video stuckVideos can take 1-5 min; use --timeout 600 for long ones
Vision not workingEnsure you're using a vision-capable model (e.g., qwen3-vl-235b-a22b)
--x-search no effectOnly works with Grok models (grok-*)
Music timeoutMusic can take 2-5 min; increase --timeout
Background removal qualityWorks best with clear subject/background contrast

Resources

Comments

Loading comments...