Are you an LLM? Read llms.txt for a summary of the docs, or llms-full.txt for the full context.
Skip to content

Practical Examples

These examples emphasize composition and explicit permissions. Substitute a different built-in or configured model when useful.

Ask and explain

zo Why does Rust require mutable bindings
zo /flash 'Explain this error in two sentences'
man rg | zo 'Show the five options I am most likely to use'

Review code and Git changes

# Review an explicit file
zo @src/main.rs 'Find correctness issues and suggest focused fixes'
 
# Review current changes without granting command execution
git diff | zo /sonnet 'Review for bugs, regressions, and missing tests'
 
# Compare selected files
zo @src/old.rs @src/new.rs 'Explain the behavioral differences'

Write selected files

# Create one new file
zo @src/lib.rs 'Write focused tests in !tests/lib_test.rs'
 
# Read and update one existing file with diff approval
zo 'Improve the error messages in @!src/main.rs'
 
# Keep broad reads but narrow writes
zo --files read 'Inspect this project and document it in !ARCHITECTURE.md'

The destination directory must already exist. Add --accept-writes only when skipping review is intentional.

Work across a repository

# Dynamic project inspection
zo --files read 'Trace how configuration reaches the API request'
 
# Dynamic project edits
zo --files write 'Rename the parser type and update all affected tests'
 
# Iterative exploration
zo --chat --files read 'Help me understand the request lifecycle'

Diagnose failures

Choose between a pipeline and shell tools based on who should execute the command:

# You run it; zo analyzes captured output
cargo test 2>&1 | zo 'Group the failures by root cause'
 
# The model runs approved commands and can follow up
zo --shell 'Run the failing tests, inspect the output, and summarize the cause'
 
# Combine file discovery and command execution
zo --files read --shell 'Locate the relevant tests, run them, and explain the failure'

Git workflows

git diff --cached | zo 'Write a concise conventional commit message'
git diff main...HEAD | zo 'Draft a PR summary with testing notes'
git log --oneline -20 | zo 'Summarize the recent development themes'
git show HEAD | zo 'Explain this commit and flag risky changes'

Logs and structured data

Filter or sample large inputs before sending them:

grep 'ERROR' app.log | tail -n 200 | zo 'Group these errors and identify likely causes'
head -n 1000 data.csv | zo 'Describe columns, missing values, and suspicious rows'
curl -s https://api.example.com/data | zo @schema.json 'Check this response against the schema'

Web-assisted research

zo --web 'Compare the latest stable releases of Rust and Go'
zo --chat --web 'Help me research terminal UI libraries and narrow the options'

A reusable reviewer

# ~/.config/zo/config.toml
[[custom_models]]
name = "reviewer"
model = "anthropic/claude-sonnet-5"
system_prompt = "Review concisely. Prioritize correctness, security, and concrete fixes."
reasoning_effort = "high"
git diff | zo /reviewer 'Review these changes'

Generate an image from project context

zo --files read 'Summarize the architecture as short component relationships' \
  | zo --image diagrams/architecture.png /banana 'Create a clean C4-style diagram'

Create diagrams/ first. The first zo process can inspect the project; the image process receives only the summary and can write only its requested output.

Quick Start → · CLI Usage → · Configuration →