> ## Documentation Index
> Fetch the complete documentation index at: https://docs.venice.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Venice CLI

> The official Venice command-line interface brings chat, web search, image generation, TTS, transcription, video, and embeddings to your terminal with optional end-to-end encryption.

The [Venice CLI](https://github.com/veniceai/venice-cli) is the official command-line interface for Venice. Chat with AI models, generate images, convert text to speech, transcribe audio, generate video, and more—all from your terminal, with optional end-to-end encryption.

<Card title="GitHub: veniceai/venice-cli" icon="github" href="https://github.com/veniceai/venice-cli">
  Published as [`veniceai-cli`](https://www.npmjs.com/package/veniceai-cli) on npm. MIT licensed.
</Card>

<CardGroup cols={3}>
  <Card title="Privacy-first" icon="lock">
    Optional E2EE and TEE attestation. No telemetry, no browser tracking.
  </Card>

  <Card title="Every modality" icon="layer-group">
    Chat, search, image, upscale, TTS, transcription, video, and embeddings
  </Card>

  <Card title="Scriptable" icon="terminal">
    JSON and raw output, stdin piping, and shell completions for bash, zsh, fish
  </Card>
</CardGroup>

## Quick start

<Steps>
  <Step title="Install the CLI">
    Install globally with npm:

    ```bash theme={"system"}
    npm install -g veniceai-cli
    ```

    Or run it without installing:

    ```bash theme={"system"}
    npx veniceai-cli chat 'Hello, world!'
    ```
  </Step>

  <Step title="Get a Venice API key">
    Generate one from [venice.ai/settings/api](https://venice.ai/settings/api). See the [API key guide](/guides/getting-started/generating-api-key) for step-by-step instructions.
  </Step>

  <Step title="Configure your key">
    Run the interactive setup and paste your key when prompted, so it never appears in your shell history or process list:

    ```bash theme={"system"}
    venice config init
    ```

    Or use an environment variable instead:

    ```bash theme={"system"}
    export VENICE_API_KEY=YOUR_API_KEY
    ```
  </Step>

  <Step title="Start chatting">
    ```bash theme={"system"}
    venice chat "What is the meaning of life?"
    ```
  </Step>
</Steps>

<Note>
  Requires Node.js 18.0.0 or higher. `VENICE_API_KEY` overrides any value stored in the config file.
</Note>

## Commands

| Command                               | What it does                                                           |
| ------------------------------------- | ---------------------------------------------------------------------- |
| `venice chat <prompt>`                | Chat with any Venice text model, with tools, characters, and streaming |
| `venice search <query>`               | Web search with AI synthesis and optional citations                    |
| `venice image <prompt>`               | Generate an image from a text prompt                                   |
| `venice upscale <file>`               | Upscale an existing image up to 4×                                     |
| `venice tts <text>`                   | Text-to-speech with 35+ voices                                         |
| `venice transcribe <file>`            | Speech-to-text with optional timestamps                                |
| `venice video <subcommand>`           | Queue, poll, and download AI-generated video                           |
| `venice embeddings <text>`            | Generate embedding vectors                                             |
| `venice models`                       | List and filter the live model catalog                                 |
| `venice tee <subcommand>`             | Fetch and verify TEE attestation                                       |
| `venice config <subcommand>`          | Manage API key and defaults                                            |
| `venice history <subcommand>`         | List, show, export, or clear conversations                             |
| `venice usage`                        | Show token usage over time                                             |
| `venice characters` / `venice voices` | List built-in personas and TTS voices                                  |
| `venice completions <shell>`          | Generate shell completions                                             |

### Chat

```bash theme={"system"}
# Basic chat
venice chat "Explain quantum computing in simple terms"

# Use a specific model and system prompt
venice chat -m deepseek-v3.2 -s "You are a helpful coding assistant" "Write fizzbuzz in Python"

# Continue the previous conversation
venice chat --continue "What about the next step?"

# Function calling with built-in tools
venice chat -t calculator,datetime "What's 25 * 4.5, and what day is it?"

# JSON output for scripting
venice chat -f json "List 3 colors" | jq '.content'
```

Common chat options:

| Option                   | Description                                         |
| ------------------------ | --------------------------------------------------- |
| `-m, --model <model>`    | Model to use (default: `kimi-k2-5`)                 |
| `-s, --system <prompt>`  | System prompt                                       |
| `-c, --character <name>` | Character persona                                   |
| `-t, --tools <tools>`    | Comma-separated list of built-in tools              |
| `--continue`             | Continue the last conversation                      |
| `--web-search`           | Enable web search for current information           |
| `--no-stream`            | Disable streaming output                            |
| `-f, --format <format>`  | Output format (`pretty`, `json`, `markdown`, `raw`) |
| `--e2ee` / `--no-e2ee`   | Force or disable end-to-end encryption              |
| `--tee-verify`           | Show TEE attestation details                        |
| `-q, --quiet`            | Hide E2EE/TEE status messages                       |

### Web search

```bash theme={"system"}
venice search "Latest developments in fusion energy"
venice search -n 10 --citations "Best practices for TypeScript"
venice search --scrape "Company research on Anthropic"
```

### Image generation & upscaling

```bash theme={"system"}
# Generate and save an image
venice image -o sunset.png "A serene mountain lake at sunset"

# Custom dimensions and model
venice image -w 1024 -h 768 -m flux-1-dev "Landscape photograph"

# Upscale an existing image 4×
venice upscale photo.jpg -s 4 -o photo_4x.jpg
```

### Text-to-speech & transcription

```bash theme={"system"}
# Speak with a specific voice
venice tts -v bf_emma -o greeting.mp3 "Good morning, everyone!"

# Pipe text in from stdin
echo "Text to speak" | venice tts -o output.mp3

# Transcribe audio with timestamps
venice transcribe -t recording.mp3

# Choose a model and language hint
venice transcribe -m openai/whisper-large-v3 -l es spanish_audio.mp3
```

### Video generation

Video generation is asynchronous (queue-based).

```bash theme={"system"}
# Queue a text-to-video generation
venice video generate -m veo3-fast-text-to-video "Cinematic sunset over mountains"

# Image-to-video with a reference image
venice video generate -m wan-2.6-image-to-video -i photo.jpg "The scene comes alive"

# Poll until done, then download
venice video status -w <queue_id>
venice video retrieve <queue_id> -o my_video.mp4

# List available video models
venice video models
```

### Models & embeddings

```bash theme={"system"}
# List and filter the catalog
venice models -t image
venice models --privacy
venice models --e2ee

# Generate embeddings
venice embeddings -o vectors.json "Text to embed"
```

### Configuration

```bash theme={"system"}
# Interactive setup
venice config init

# Set and inspect values
venice config set default_model kimi-k2-5
venice config get default_model
venice config show
venice config path
```

| Key                   | Description                     |
| --------------------- | ------------------------------- |
| `api_key`             | Your Venice API key             |
| `default_model`       | Default chat model              |
| `default_image_model` | Default image generation model  |
| `default_voice`       | Default TTS voice               |
| `output_format`       | Default output format           |
| `show_usage`          | Show token usage after requests |

## Privacy: E2EE & TEE

Venice CLI is built for privacy. It ships no telemetry, stores your API key locally with restricted permissions, and supports Venice's confidential compute models.

* **End-to-End Encryption (E2EE)**: Messages are encrypted client-side and decrypted only inside the TEE, so Venice cannot read your data. The CLI auto-enables E2EE when a model advertises the capability, generating an ephemeral key pair per session (ECDH + AES-GCM).
* **TEE Attestation**: Cryptographically verify that a model runs in a secure enclave before sending data.

```bash theme={"system"}
# Discover confidential-compute models
venice models --e2ee
venice models --tee

# Chat with E2EE (auto-enabled for capable models)
venice chat -m <e2ee-capable-model> "Your private message here"

# TEE-only mode: verify attestation without encryption
venice chat -m <e2ee-capable-model> --no-e2ee "TEE verified, not encrypted"

# Fetch and verify attestation directly
venice tee attestation <model>
venice tee verify <model>
```

<Note>
  E2EE mode disables tools and web search to preserve end-to-end encryption.
</Note>

## Output formats

| Format     | Use case                                                |
| ---------- | ------------------------------------------------------- |
| `pretty`   | Colored, formatted output for interactive use (default) |
| `json`     | Machine-readable JSON for scripting and piping          |
| `markdown` | Markdown-formatted output for documentation             |
| `raw`      | Plain text with no decoration, for pipes                |

The CLI auto-detects when output is piped and switches to `raw`.

```bash theme={"system"}
venice chat -f json "List items" | jq '.'
venice chat "Generate code" | pbcopy
```

## Resources

<CardGroup cols={2}>
  <Card title="GitHub" icon="github" href="https://github.com/veniceai/venice-cli">
    Source code, issues, and releases
  </Card>

  <Card title="npm" icon="npm" href="https://www.npmjs.com/package/veniceai-cli">
    `veniceai-cli`
  </Card>

  <Card title="Venice MCP Server" icon="plug" href="/guides/integrations/venice-mcp">
    Expose the same Venice tools to any MCP host
  </Card>

  <Card title="Venice API Reference" icon="book" href="/api-reference/api-spec">
    Full endpoint and parameter docs
  </Card>
</CardGroup>
