zo - Zettabyte Oracle
A blazing fast CLI tool for AI interaction 🚀
zo brings the power of 50+ AI models directly to your terminal with progressive streaming, fuzzy model selection, and seamless Unix pipeline integration.
zo 'What is Rust?'Why zo?
âš¡ Speed First
Progressive streaming displays responses as they're generated. See the first token in ~1 second, not after the entire response is complete.
🎯 Developer UX
Fuzzy matching for model selection (/son → sonnet), file references (@file.txt), and STDIN support make AI feel native to your terminal workflow.
🔄 Flexibility
Access 50+ models through OpenRouter with zero lock-in. Switch between Claude, GPT, Gemini, and more with a single command. Already have API keys? Use OpenRouter's BYOK to route through your existing accounts.
Key Features
Progressive Streaming with Rich Rendering
Responses appear in real-time with beautiful markdown formatting and syntax-highlighted code blocks.
zo /sonnet 'Write a Rust HTTP server with error handling'
# See code appear with instant syntax highlighting- Dual-mode rendering: regular text streams immediately, code blocks buffer for syntax highlighting
- 100+ programming languages supported
- Same highlighting engine as VS Code and bat
- No lag, no buffering delay
Intelligent Fuzzy Model Selection
Use short, memorable names instead of full model IDs. 3-stage matching (exact → substring → fuzzy) ensures you get what you want.
zo /son 'test' # Matches 'sonnet'
zo /gpt 'test' # Matches 'gpt4'
zo /pro 'test' # Matches 'geminipro'Default models: (All models available via OpenRouter.ai can be configured)
| Short Name | Full Model ID | Best For |
|---|---|---|
sonnet | anthropic/claude-sonnet-4.5 | Default - Complex reasoning, code analysis |
opus | anthropic/claude-opus-4.5 | Highest quality Claude |
haiku | anthropic/claude-3-haiku | Fast, simple tasks |
flash | google/gemini-2.5-flash | Fast, balanced |
geminipro | google/gemini-3-pro-preview | Google's most capable |
gpt4o | openai/gpt-4o | GPT-4 Optimized |
o1 | openai/o1 | Reasoning-focused |
grok | x-ai/grok-4 | X.AI's latest |
File Reference System
Include file contents in your prompts using @filename syntax. Learn more →
# Single file analysis
zo @data.csv 'Analyze this dataset'
# Multiple file comparison
zo @v1.rs @v2.rs 'What are the key differences?'
# Code review
zo /sonnet @src/main.rs 'Review for bugs and performance'You can mix file references with slash commands and STDIN.
STDIN Pipeline Integration
Pipe output from any command directly to zo for AI analysis. Learn more →
# Code review from git
git diff | zo 'Summarize changes and check for bugs'
# Error analysis
cargo build 2>&1 | zo /sonnet 'Explain these errors'
# Log analysis
tail -n 100 error.log | zo 'Find patterns in these errors'
# System diagnostics
ps aux | zo 'Which processes are using too much memory?'Interactive Chat Mode
Have multi-turn conversations with full context preservation. Learn more →
zo --chat 'Let us discuss Rust lifetimes'
> What happens if I violate the rules?
> exit- Full conversation history maintained
- File references work in every message
- Works with initial STDIN
- Error recovery with retry option
- Exit with
exit,quit,q, or Ctrl+D
Custom Models with System Prompts
Define specialized AI assistants with custom system prompts.
# ~/.config/zo/config.toml
[[custom_models]]
name = "coder"
model = "anthropic/claude-sonnet-4.5"
system_prompt = "You are an expert programmer. Provide concise, well-commented code with error handling."
[[custom_models]]
name = "reviewer"
model = "anthropic/claude-sonnet-4.5"
system_prompt = "You are a senior code reviewer. Focus on bugs, performance, security, and best practices."zo /coder 'Implement a LRU cache in Rust'
zo /reviewer @pull_request.diff 'Review this PR'Quick Start
# 1. Get OpenRouter API key from https://openrouter.ai/keys
# Already have OpenAI/Anthropic/Google keys? Use OpenRouter's BYOK (Bring Your Own Key)
# to route through your existing accounts: https://openrouter.ai/settings/keys
# 2. Set up zo
export OPENROUTER_API_KEY="sk-or-v1-..."
# or
zo +init-config
# 3. Start using
zo 'What is Rust?'
zo /sonnet 'Explain async/await'
git diff | zo 'Summarize these changes'
# 4. Try chat mode
zo --chat 'Let us discuss system design'Advanced Use Cases
Shell Integration
# Explain command before running
explain() {
echo "$*" | zo 'Explain this command and what it does'
}
# Get command suggestions
howto() {
zo 'How do I $* in bash/zsh? Give me the exact command'
}
# Analyze errors
fix() {
"$@" 2>&1 | zo 'Why did this fail and how do I fix it?'
}Git Workflows
# Commit message generation
git diff --cached | zo 'Generate a concise git commit message'
# PR description
git diff main...feature | zo 'Generate a detailed PR description'
# Code review
git diff main...feature | zo /reviewer 'Review this PR'Development Workflows
# Error diagnosis
make 2>&1 | zo /debugger 'Explain and fix'
# Test generation
zo @src/lib.rs 'Generate comprehensive unit tests'
# Documentation
zo @*.rs 'Generate README.md with API docs'Philosophy
zo embodies several design philosophies:
Unix Philosophy- Do one thing well (AI interaction)
- Compose with other tools (pipelines)
- Text-based interface (universal format)
- Sensible defaults, minimal configuration
- Fast feedback loops (streaming)
- Helpful errors with actionable suggestions
- 50+ models via OpenRouter
- Switch models per-request
- No vendor lock-in
- Streaming first (don't wait for completion)
- Minimal startup time
- Efficient resource usage
Get Started
Ready to bring AI to your terminal?