E.X.O.

E.X.O.

A local, context-aware command-line assistant powered by a vector-first cascade architecture. Translate natural language into precise shell commands with local-first privacy.

exo "find all large logs and compress them"
# E.X.O. Routing: Semantic Search (FAISS)
Proposed: find . -name "*.log" -size +100M -exec gzip {} +
Execute? Y/n

Why E.X.O.?

Vector-First Cascade

Uses direct matches, Gemini embeddings (FAISS), and local resolvers before falling back to an LLM. Faster, cheaper, and more accurate.

Local-First Privacy

Your history and commands stay on your machine. External APIs are only used for embeddings and optional fallback.

Human-in-the-loop

E.X.O. never executes a command without your explicit confirmation. Destructive commands are clearly flagged.

Context Aware

Learns from your unique terminal history to suggest commands that match your specific workflow and environment.

Install

macOS / Linux

Run the automated installer in your terminal:

curl -fsSL https://raw.githubusercontent.com/LightPeacock/exo_cli/main/scripts/install.sh | bash

Windows

Use WSL2 (Ubuntu) or Git Bash for the best experience:

# Inside WSL2 or Git Bash
curl -fsSL https://raw.githubusercontent.com/LightPeacock/exo_cli/main/scripts/install.sh | bash

Initialize Your Brain

E.X.O. becomes powerful when it learns from your unique terminal history.

Step 1: Feed the History

Copy your shell history to the E.X.O. home directory so it can be indexed.

macOS (Zsh)

cp ~/.zsh_history ~/.exo/history_snapshot.txt

Linux (Bash)

cp ~/.bash_history ~/.exo/history_snapshot.txt

Windows (PowerShell)

cp (Get-PSReadlineOption).HistorySavePath $HOME/.exo/history_snapshot.txt

Step 2: Configure API Key

Set your Gemini API Key in ~/.exo/.env to enable embeddings.

GOOGLE_API_KEY=your_api_key_here

Step 3: Build the Database

Run these scripts from the exo_cli folder to initialize FAISS and index your commands.

# 1. Initiate FAISS vector store
python step2_init_faiss.py

# 2. Load brain with your history
python step3_index_gemini.py

Ready to Run

exo "list my running docker containers"