Status: Proposal
Author: Venice AI Team
Date: February 2026
Version: 2.0.0
We propose the creation and release of an official Venice CLI—a comprehensive, production-ready command-line interface for Venice AI. This tool enables developers, researchers, and power users to interact with all Venice AI capabilities directly from their terminal, embodying Venice's core value of privacy-first AI without browser tracking.
-
Developer Adoption: CLIs are the native interface for developers. An official CLI lowers the barrier to integration and experimentation.
-
Privacy Differentiator: "No browser, no tracking"—a CLI reinforces Venice's privacy-first positioning. Terminal interactions leave no browser fingerprints, cookies, or tracking pixels.
-
Workflow Integration: Enables piping, scripting, and automation. Users can integrate Venice AI into shell scripts, CI/CD pipelines, and local toolchains.
-
Power User Demand: Community feedback indicates strong demand for CLI access, especially among the privacy-conscious developer demographic.
-
Competitive Parity: OpenAI, Anthropic, and other providers have robust CLI offerings. An official Venice CLI is table stakes.
- Mature, well-documented
- Supports chat, embeddings, images, audio
- JSON output mode
- Missing: privacy focus, function calling from CLI
- Focus on chat and Claude models
- Clean, minimal interface
- Missing: image generation, TTS, shell completions
- Scattered, inconsistent quality
- No official endorsement
- Missing: completeness, support, updates
- Complete API coverage: chat, search, images, TTS, transcription, embeddings, upscale
- Privacy-first messaging: Built into the help text and documentation
- Function calling: Built-in tools (calculator, weather, datetime, etc.)
- Character personas: Fun, engaging character modes
- Configuration management: Persistent config file, environment variable support
- Usage tracking: Local tracking of token usage
- Shell completions: bash, zsh, fish support
| Command | Description |
|---|---|
venice chat <prompt> |
Chat with AI models |
venice search <query> |
Web search with AI synthesis |
venice image <prompt> |
Generate images |
venice upscale <file> |
Upscale images |
venice tts <text> |
Text-to-speech |
venice transcribe <audio> |
Speech-to-text |
venice embeddings <text> |
Generate embeddings |
venice models |
List available models |
| Command | Description |
|---|---|
venice config |
Manage configuration |
venice history |
View conversation history |
venice usage |
Show API usage statistics |
venice characters |
List chat personas |
venice voices |
List TTS voices |
venice completions |
Generate shell completions |
-m, --model <model> Model to use
-s, --system <prompt> System prompt
-c, --character <name> Character persona
-t, --tools <tools> Enable function calling
--interactive-tools Approve tool calls manually
--continue Continue last conversation
--no-stream Disable streaming
-f, --format <format> Output format (pretty|json|markdown|raw)
- pretty (default): Colored, formatted for terminal
- json: Machine-readable JSON output
- markdown: Markdown formatted
- raw: Plain text, pipe-friendly
Configuration stored in ~/.venice/config.json:
{
"api_key": "vn-...",
"default_model": "llama-3.3-70b",
"default_image_model": "fluently-xl",
"default_voice": "af_sky",
"output_format": "pretty",
"show_usage": true
}- Runtime: Node.js 18+
- Language: TypeScript with strict mode
- CLI Framework: Commander.js
- Styling: Chalk for colors, Ora for spinners
- Module System: ESM (ECMAScript modules)
venice-cli/
├── src/
│ ├── index.ts # Entry point
│ ├── commands/ # Command implementations
│ │ ├── chat.ts
│ │ ├── search.ts
│ │ ├── image.ts
│ │ ├── audio.ts
│ │ ├── models.ts
│ │ ├── config.ts
│ │ └── ...
│ ├── lib/ # Shared utilities
│ │ ├── api.ts # API client
│ │ ├── config.ts # Config management
│ │ ├── output.ts # Output formatting
│ │ └── tools.ts # Function calling
│ └── types/ # TypeScript types
├── dist/ # Compiled output
├── package.json
├── tsconfig.json
└── README.md
The CLI uses the Venice AI REST API:
- Base URL:
https://api.venice.ai/api/v1 - Authentication: Bearer token
- Streaming: SSE for chat completions
- Retry logic: Exponential backoff on 5xx and rate limits
- Network errors: Detect offline state, suggest checking connection
- Auth errors: Clear message pointing to API key setup
- Rate limits: Automatic retry with backoff
- Validation: Helpful messages for invalid inputs
"AI from your terminal. No browser. No tracking. Just you and the model."
- No browser fingerprinting: Terminal interactions don't expose browser metadata
- No cookies or localStorage: No persistent tracking mechanisms
- Local configuration: API key stored locally with restricted permissions (0600)
- No telemetry: CLI doesn't phone home (except to Venice API)
- Transparent requests: Users can see exactly what's being sent
- Pipe-friendly: Output can be processed without leaving traces
Every README, help text, and marketing material should reinforce:
- Venice's privacy-preserving infrastructure
- No data retention on privacy models
- CLI as the most private way to use AI
| Phase | Duration | Description |
|---|---|---|
| Core CLI | 2 weeks | Basic commands, API integration |
| Advanced Features | 2 weeks | Tools, history, config |
| Polish | 1 week | Shell completions, error handling |
| Documentation | 1 week | README, help text, examples |
| Testing | 1 week | E2E tests, edge cases |
| Total | 7 weeks |
- Engineering: 1 full-time developer
- Design: Help text and output format review
- Documentation: README, website integration
- DevOps: npm publishing, GitHub releases
- Ongoing: Bug fixes, API compatibility
- Quarterly: Feature additions based on API updates
- Version bumps when Venice API changes
| Metric | Target (6 months) |
|---|---|
| npm downloads | 10,000 |
| GitHub stars | 500 |
| Active weekly users | 1,000 |
| Metric | Target |
|---|---|
| CLI crash rate | < 0.1% |
| Average response time | < 2s for non-streaming |
| Help text coverage | 100% of commands |
| Metric | Target |
|---|---|
| GitHub issues resolved | > 80% within 1 week |
| Documentation completeness | All features documented |
| Shell completion coverage | bash, zsh, fish |
- Increased API usage from CLI users
- Developer mindshare and advocacy
- Reduced support burden (self-service tool)
| Risk | Mitigation |
|---|---|
| API changes break CLI | Semantic versioning, graceful degradation |
| Security vulnerabilities | Dependency audits, no credential logging |
| Low adoption | Developer marketing, integration guides |
| Maintenance burden | Clean code, comprehensive tests |
# Basic chat
venice chat "Explain quantum computing"
# With model selection
venice chat -m deepseek-r1 "Solve this math problem"
# With character persona
venice chat -c pirate "Tell me about the weather"
# With function calling
venice chat -t calculator,weather "What's 15% of 250?"
# Continue previous conversation
venice chat --continue "And what about the next step?"
# JSON output for scripting
venice chat -f json "List 3 colors" | jq '.content'# Generate and display URL
venice image "A sunset over mountains"
# Save to file
venice image -o sunset.png "A sunset over mountains"
# Custom dimensions
venice image -w 1024 -h 768 "Landscape photo"
# Specific model
venice image -m flux-1-dev "Artistic portrait"# Basic text to speech
venice tts "Hello, world"
# Custom voice and output
venice tts -v bf_emma -o greeting.mp3 "Good morning"
# From stdin
echo "Text from pipe" | venice tts -o output.mp3# Initialize interactively
venice config init
# Set API key
venice config set api_key vn-xxxxxxxx
# Set default model
venice config set default_model llama-3.3-70b
# View config
venice config showThe Venice CLI fills a critical gap in Venice AI's tooling ecosystem. It provides:
- Complete API coverage in a single, well-designed tool
- Privacy-first positioning reinforced through every interaction
- Developer experience that matches or exceeds competitors
- Foundation for ecosystem growth and community tools
We recommend immediate development and release, followed by active promotion in developer communities.
This proposal is open for feedback and revision.