Context-first CLI for AI coding agents.
Ivo helps you gather the right repository context fast: file tree, structural codemaps, keyword snippets, and saved context bundles you can pipe into your agent.
- Reduces prompt bloat by prioritizing relevant files.
- Supports multiple context strategies (
keyword,skeleton,diff,graph, etc.). - Saves reusable context snapshots with short IDs.
- Works well in terminal-first agent workflows.
bun installRun in dev mode:
bun run dev -- --helpBuild a standalone binary:
bun run build
./dist/ivo --help# 1) Understand structure
ivo tree --depth 3
ivo structure src
# 2) Build task-focused context
ivo context "auth, session, jwt, token"
# 3) Fetch saved context by ID and pipe to your agent
ivo get <id> --raw | codex exec --
ivo tree
Print workspace tree. -
ivo search <pattern>
Search code or paths. -
ivo structure [paths...]
Extract codemaps (functions, classes, types, imports). -
ivo select <list|add|set|remove|clear> [paths...]
Manage manual file selection. -
ivo context [keywords]
Build context for a task. Saves by default; use--fullto print inline. -
ivo bucket [keywords]
Advanced context planning with strategy controls and budget caps. -
ivo get [id]
List and retrieve saved contexts. -
ivo recipe <save|run|list|show|delete>
Store reusable context presets. -
ivo index/ivo map
Build embedding index and inspect semantic clusters.
ivo bucket can combine:
inventory: repo tree snapshotskeleton: entrypoints and structural fileskeyword: snippet matches for search termssymbols: codemaps for matched filesconfig: config/build filesdiff: git-changed filesgraph: import-graph neighborsast: codemap-heavy keyword analysiscomplexity: large/complex filesdocs: markdown and docs filesforest: external knowledge graph (ifforestCLI is installed)apple-notes: snippets from Apple Notes export JSONdiscord: snippets from Discord export JSON
External adapter paths:
- Apple Notes:
IVO_APPLE_NOTES_FILEor.ivo/adapters/apple-notes.json - Discord:
IVO_DISCORD_FILEor.ivo/adapters/discord.json
Ivo loads config from:
- Global:
~/.config/ivo/config.json - Project:
.ivo/config.json(overrides global)
Interactive setup:
ivo setupYou can configure:
- LLM endpoint/model for query expansion and operator features.
- Default budget, intensity, and output format.
- Embedding provider/model settings.
By default, ivo context and ivo recipe run save outputs in:
.ivo/contexts/<id>.xml.ivo/contexts/<id>.meta.json
Useful retrieval commands:
ivo get --list
ivo get <id>
ivo get <id> --meta
ivo get <id> --raw
ivo pin <id>
ivo unpin <id>Build an embedding index:
ivo select set src
ivo indexShow semantic clusters:
ivo map
ivo map --labelbun run typecheck
bun run buildProject is TypeScript + Bun + Commander + Tree-sitter.
Main entrypoints:
src/cli.ts(CLI)src/index.ts(library export)src/slicer/(strategy engine)src/codemap/(AST extraction)src/commands/(command handlers)