Vayu — AI-powered coding assistant for the terminal. Built in Rust.
- Multi-provider: Anthropic (Claude), OpenAI, Azure, Ollama, MLX (Apple Silicon)
- Interactive TUI: Rich terminal UI with markdown rendering, tables, code blocks
- Tool calling: bash, read_file, write_file, edit_file, glob, grep
- Inline diffs: File edits show colored diff snippets with context
- Conversation history: JSONL storage with SQLite index, resume/continue sessions
- Image support:
/image <path>, Ctrl+V clipboard paste, drag-and-drop - Streaming: Live token streaming in both TUI and exec modes
- Mouse scroll + copy: Scroll wheel works alongside native text selection
- Tool approval: Per-call approval, approve-all (
[a]), or--yolomode - Context tracking: Live context size and peak usage in status bar
- macOS (primary target)
- Rust (stable, edition 2024)
# Install Rust if needed
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"Download the latest release for your platform from GitHub Releases:
# macOS Apple Silicon (M1/M2/M3/M4)
curl -L https://github.com/Sravani2201/Vayu/releases/latest/download/vayu-aarch64-apple-darwin.tar.gz | tar xz
sudo mv vayu /usr/local/bin/
# macOS Intel
curl -L https://github.com/Sravani2201/Vayu/releases/latest/download/vayu-x86_64-apple-darwin.tar.gz | tar xz
sudo mv vayu /usr/local/bin/
# Linux x86_64
curl -L https://github.com/Sravani2201/Vayu/releases/latest/download/vayu-x86_64-unknown-linux-gnu.tar.gz | tar xz
sudo mv vayu /usr/local/bin/git clone https://github.com/Sravani2201/Vayu.git
cd Vayu
cargo install --path crates/vayu-clicargo install --git https://github.com/Sravani2201/Vayu.git vayu-clicargo build --release
./target/release/vayu --help# Interactive TUI (current directory as workspace)
vayu
# One-shot prompt
vayu "explain this code"
# Auto-approve all tools
vayu --yolo
# Continue last conversation
vayu --continue # or vayu -c
# Pick a past conversation
vayu --resume # or vayu -r
# Verbose logging (writes to ~/.vayu/logs/)
vayu -v| Flag | Short | Description |
|---|---|---|
--continue |
-c |
Resume the most recent conversation |
--resume |
-r |
Pick a past conversation interactively |
--session <ID> |
Resume a specific session by UUID | |
--yolo |
Auto-approve all tool calls | |
--model <M> |
-m |
Override model (e.g. ollama:llama3.2:8b) |
--autonomy <A> |
-a |
Override autonomy: ask, auto-read, auto-all |
--verbose |
-v |
Debug logging to ~/.vayu/logs/ |
--format <F> |
Output format: human (default), json |
vayu exec "prompt" # One-shot execution
vayu history [--limit N] # List past conversations
vayu config # Print resolved configuration
vayu version # Show version info| Key | Action |
|---|---|
| Enter | Send message |
| Shift+Enter | Newline |
| Ctrl+C | Quit / Cancel |
| Ctrl+L | Clear screen |
| Ctrl+U / Ctrl+K | Kill line |
| PgUp / PgDn | Scroll chat |
| Up / Down | Scroll (empty input) or history (with text) |
| Ctrl+V | Paste image from clipboard |
| Ctrl+O | Expand/collapse tool output |
| Command | Description |
|---|---|
/help |
Show help |
/clear |
Clear conversation |
/cost |
Show token usage and context size |
/history |
List past conversations |
/image <path> |
Attach an image |
/model <name> |
Switch model |
/quit |
Exit |
When a tool needs approval, you'll see:
[y]— approve this call[a]— approve all for the rest of the session[n]— deny
Or start with vayu --yolo to skip all prompts.
Config files are loaded in order (later overrides earlier):
- Built-in defaults
~/.vayu/config.toml(user-level).vayu/config.toml(project-level)- Environment variables (
VAYU_MODEL,VAYU_AUTONOMY) - CLI flags
[model]
provider = "anthropic"
model = "claude-sonnet-4-20250514"
max_tokens = 16384
[providers.anthropic]
api_key = "sk-..." # or set ANTHROPIC_API_KEY[model]
provider = "azure"
model = "gpt-4o"
max_tokens = 32768
[providers.azure]
chat_url = "https://your-resource.openai.azure.com/openai/v1/chat/completions"
deployment = "gpt-4o"
api_key = "..." # or set AZURE_OPENAI_API_KEY[model]
provider = "mlx"
model = "mlx-community/Qwen3.5-9B-MLX-4bit"
max_tokens = 32768
[providers.mlx]
auto_start = true
default_model = "mlx-community/Qwen3.5-9B-MLX-4bit"
server_command = "mlx_vlm.server"
python_path = "/path/to/venv/bin/python3"
port = 8080[model]
provider = "ollama"
model = "llama3.2:8b"
[providers.ollama]
base_url = "http://localhost:11434"
default_model = "llama3.2:8b"
auto_pull = false[tools]
autonomy = "ask" # ask | auto-read | auto-all
shell_auto_approve = ["git status", "git diff", "ls"]
file_edit_auto_approve = false| Path | Purpose |
|---|---|
~/.vayu/config.toml |
User configuration |
~/.vayu/sessions/*.jsonl |
Conversation data (JSONL, source of truth) |
~/.vayu/index.db |
SQLite index for listing/search |
~/.vayu/logs/vayu-*.log |
Verbose debug logs (one per session) |
Vayu is a Rust workspace with these crates:
| Crate | Purpose |
|---|---|
vayu-cli |
CLI entry point, argument parsing |
vayu-tui |
Terminal UI (ratatui), markdown rendering |
vayu-exec |
Headless/non-interactive runner |
vayu-core |
Agent loop, session management, events |
vayu-provider |
LLM providers (Anthropic, OpenAI, Azure, MLX, Ollama) |
vayu-tools |
Built-in tools (bash, file ops, glob, grep) |
vayu-context |
Conversation history, JSONL+SQLite store |
vayu-config |
Configuration loading and merging |
vayu-sandbox |
Tool approval policies |
vayu-mcp |
Model Context Protocol support |
cargo test # Run all tests
cargo build # Debug build
cargo build --release # Optimized buildMIT