A CLI wrapper for the Exa MCP server. Use Exa's powerful search, crawl, and research capabilities from the command line - optimized for LLM tool usage.
- Free tier support - Uses Exa's free MCP tier (no API key required)
- LLM-optimized - CLI tools are more efficient for LLMs than MCP protocol
- All Exa tools - Web search, code search, crawling, company research, people search, and deep research
curl -fsSL https://raw.githubusercontent.com/bigknoxy/exa-cli/main/install.sh | shnpm install -g @bigknoxy/exa-clinpx @bigknoxy/exa-cli search "your query"curl -fsSL https://raw.githubusercontent.com/bigknoxy/exa-cli/main/uninstall.sh | shOr with npm:
npm uninstall -g @bigknoxy/exa-cliNote: The uninstall script will leave your config file (
~/.exarc) in place. Remove it manually withrm ~/.exarcif desired.
Search the web for any topic.
exa search "latest AI news 2026" --num 10
exa search "typescript best practices" --type fast --format jsonOptions:
--num- Number of results (default: 8)--type- Search type:autoorfast(default: auto)--livecrawl- Live crawl mode:fallbackorpreferred(default: fallback)--format- Output format:text,json, ormarkdown(default: text)--api-key- Override API key
Search for code examples and documentation.
exa code "React useState hook TypeScript" --tokens 3000
exa code "express middleware authentication" --format markdownOptions:
--tokens- Token count 1000-50000 (default: 5000)--format- Output format (default: text)--api-key- Override API key
Extract content from a specific URL.
exa crawl https://docs.exa.ai --max-chars 5000
exa crawl https://example.com/article --format jsonOptions:
--max-chars- Maximum characters to extract (default: 3000)--format- Output format (default: text)--api-key- Override API key
Research a company.
exa company Anthropic --num 5
exa company "OpenAI" --format jsonOptions:
--num- Number of results (default: 3)--format- Output format (default: text)--api-key- Override API key
Search for people and professional profiles.
exa people "VP Engineering AI startups" --num 10
exa people "machine learning researcher" --format jsonOptions:
--num- Number of results (default: 5)--format- Output format (default: text)--api-key- Override API key
Advanced search with full filter control.
exa search-advanced "AI agents 2026" \
--category news \
--include-domains techcrunch.com,wired.com \
--start-date 2026-01-01 \
--highlightsOptions:
--num- Number of results, max 100 (default: 10)--type- Search type:auto,fast, orneural--category- Category filter:company,research paper,news,tweet,personal site,people,financial report--include-domains- Comma-separated domains to include--exclude-domains- Comma-separated domains to exclude--start-date- Start published date (YYYY-MM-DD)--end-date- End published date (YYYY-MM-DD)--highlights- Enable highlights--summary- Enable summaries--livecrawl- Mode:never,fallback,preferred,always--format- Output format (default: text)--api-key- Override API key
Start an AI research agent for complex questions.
exa research start "Compare flagship GPUs from NVIDIA, AMD, and Intel in 2026"
exa research start "Analyze the electric vehicle market trends" --model exa-research-proOptions:
--model- Research model:exa-research-fast,exa-research,exa-research-pro(default: exa-research-fast)--format- Output format (default: text)--api-key- Override API key
Check the status of a research task.
exa research check abc123...Manage configuration stored in ~/.exarc.
exa config list # Show all config
exa config set apiKey YOUR_KEY # Set API key
exa config set output json # Set default output format
exa config get apiKey # Get a config value
exa config clear # Reset to defaultsGenerate shell completion scripts.
# Auto-detect and install for current shell
exa completion --install
# Explicit shell
exa completion bash --install
# Dry-run to see what would happen
exa completion --install --dry-run
# Manual installation (output script to stdout)
exa completion bash > /etc/bash_completion.d/exa
exa completion zsh > ~/.zsh/completions/_exa
exa completion fish > ~/.config/fish/completions/exa.fishConfiguration is stored in ~/.exarc:
{
"apiKey": "your-api-key",
"output": "text",
"defaultNum": 8
}The CLI works with the free MCP tier by default (no API key required). To get higher rate limits:
- Get an API key from https://dashboard.exa.ai/api-keys
- Set it via config:
exa config set apiKey YOUR_KEY - Or use
--api-keyflag per command - Or set
EXA_API_KEYenvironment variable
text(default) - Human-readable with colorsjson- Raw JSON output for scriptingmarkdown- Markdown formatted with links
# Clone and install
git clone https://github.com/bigknoxy/exa-cli.git
cd exa-cli
npm install
# Build
npm run build
# Test
npm test
# Development mode
npm run dev search "test query"- Node.js 18+
- npm or bun
MIT