Your terminal, supercharged

File management, content analysis, web research, and shell help โ€” all from a single command.

rename photos โ€” ai
$ ai run -w=./** "rename all .jpeg photos to .jpg and make everything lowercase"
Scanning the project for .jpeg files...
๐Ÿ—‚ list_dir ./
โ†— move_file Vacation/IMG_001.JPEG โ†’ vacation/img_001.jpg (x57)
Done. Renamed 57 files across 3 subdirectories. All extensions normalized to .jpg, names lowercased.
๐Ÿ“ˆ (800, 200, 120)
analyze document โ€” ai
$ ai run -r=./ "summarize this 10-K filing for me"
Extracting text from the SEC filing PDF...
๐Ÿ‘ file_view sec-filings/10k-2025.pdf
Apple Inc. fiscal year 2025 10-K filing:
โ€ข Total revenue: $418B (+6% YoY), Services up to 28% of revenue
โ€ข R&D spending rose 12% to $34B. 164,000 employees.
๐Ÿ“ˆ (2.1k, 600, 400)
shell help โ€” ai
$ ai run -r=./ "find all git repos in ~/projects that have unpushed commits over a week old"
I'll find every git working tree and check its status against the remote...
๐Ÿš€ execute find ~/projects -name .git -type d -exec sh -c 'cd ...' _ {} \;
Here's a one-liner that lists stale branches with unpushed commits in every repo under ~/projects, sorted by age:
find ~/projects -name .git -type d -exec sh -c 'cd "$(dirname "$1")" && git log --oneline @{u}..' _ {} \;
๐Ÿ“ˆ (400, 200, 600)
find a deal โ€” ai
$ ai run --web "find the best price on a refurbished ThinkPad X1 Carbon Gen 11"
Searching across refurbished electronics marketplaces...
๐ŸŒ web_search "refurbished ThinkPad X1 Carbon Gen 11 price best deal"
๐ŸŒ web_fetch https://backmarket.com/thinkpad-x1-carbon...
Best deals right now on a Gen 11 (16GB/512GB):
โ€ข Back Market โ€” $749 (Grade A, 1yr warranty)
โ€ข eBay Certified โ€” $689 (Grade B, 30-day returns)
โ€ข Amazon Renewed โ€” $799 (Grade A, 32GB/1TB)
๐Ÿ“ˆ (600, 300, 500)
work recap โ€” ai
$ ai run -x git "what did the team ship this week?"
Pulling commit history and diff stats for the last 7 days...
๐Ÿš€ execute git log -n50 --pretty=short
This week: 3 features landed, 11 bugs fixed across 5 repos.
โ€ข Rate-limiter middleware (alex, 8 commits)
โ€ข Dark mode in settings panel (jess, 12 commits)
โ€ข Fixed WebSocket reconnect race (reza, 5 commits)
๐Ÿ“ˆ (500, 200, 400)
scrape product โ€” ai
$ ai run --web "get the specs and price of the MacBook Pro on apple.com"
Launching headless browser to extract product details...
๐Ÿ’ป browser_navigate https://www.apple.com/macbook-pro/
๐Ÿ’ป browser_get_element #specs
MacBook Pro 16\": M4 Max, up to 128GB unified memory, 36hr battery
โ€ข Starting at $2,499 ยท 512GB SSD standard
๐Ÿ“ˆ (600, 200, 300)
recall context โ€” ai
$ ai run "how does our API want request payloads formatted?"
๐Ÿง  from memory (score 0.86): the API uses snake_case JSON bodies
๐Ÿง  from transcript 2026-09-12_backend (score 0.81): pagination is page / per_page
Request bodies are JSON in snake_case, and pagination uses page and per_page.
๐Ÿ“ˆ (300, 120, 180)
release skill โ€” ai
$ ai run -r=./ -w=./ "cut a release"
๐Ÿ“– load_skill release
bundled: scripts/bump.sh, docs/RELEASE.md
Following the release skill: bumped the version, updated the changelog, committed and tagged.
๐Ÿš€ execute git tag v0.5.1
๐Ÿ“ˆ (500, 250, 220)

AI as a command

Pipe data in. Tell it what to do. Pipe results wherever you like.

The model, your data, nothing else

Work with any LLM like a normal shell command: ai run "explain this", pipe data in via stdin, and pipe the response out wherever you need it. Bare ai starts an interactive session. The AI sees only what you give it โ€” no filesystem, no network, no shell unless you grant it โ€” and every capability beyond a plain answer is an explicit, independently gated choice. Local semantic memory is on by default and can be turned off with --no-memory.

File access: off Shell: off Web: off Declarative policy engine Runs fully local for memory
Capabilities you opt into
🌐

Web Access

Search the web through a configurable provider ladder (Brave, Tavily, Exa, Serper, SearXNG, or keyless DuckDuckGo/Google/Bing). Fetch any URL and convert HTML to readable text, all gated with URL allowlists.

💻

Browser Automation

Navigate, click, extract โ€” drive a stealth headless browser for JavaScript-heavy sites, login flows, and dynamic content. Requires web-fetch permission.

📁

Filesystem Access

Read-only or read-write with fine-grained permissions. Paths are resolved (symlinks included) before policy, so deny rules inside an allowed tree hold. Policy files and interactive ask mode.

$>

Shell Commands

150+ built-in commands (grep, sed, awk, find, tar, curl, git, โ€ฆ) run in-process via bashkit. Only external commands need allowlisting, and read/write policy still governs the files they touch.

📦

Container Isolation

Run external commands inside a session container (-X). Only the policy-granted paths are bind-mounted, and it gets no network unless web access is granted.

🧠

Semantic Memory

Facts and past exchanges are embedded locally (ONNX) and searched with sqlite-vec. Relevant hits are injected per message with a match score โ€” no API round-trips, no data leaving your machine.

🌙

Memory Maintenance

ai dream distills conversations into durable facts, prunes stale transcripts, and reviews old entries. Run it on demand, automatically at session end, or schedule it.

📜

Skills

Drop a SKILL.md into the skills folder and the model can load it on demand, along with any bundled scripts and docs. With skills.auto_create, ai dream can even author skills from your past sessions.

💾

Persistent Sessions

Conversations auto-saved to disk with the full tool history. Continue the newest one automatically, resume by date-aware name, fork on a provider/model change, or run stateless.

⚙️

MCP Tool Servers

Connect external MCP servers via --tool URL or mcp.servers in the config. IDE integrations, database agents, API gateways โ€” a bad config entry warns and is skipped.

✨

Two-Phase Setup

ai setup walks you through a provider and model (browsing the models.dev catalog), proves the connection, then lets the AI finish the config through a sandboxed, approval-gated edit.

📖

Inline Help

Ask the agent about ai itself โ€” commands, flags, config keys, behavior โ€” and it answers from a built-in manual instead of guessing. Shell completions included (ai completions).

Pricing & Tiers

Monthly
Yearly (−20%)
Core
$0/mo

The AI, your data, nothing else. Perfect for questions, research, and content analysis.

  • Chat with any LLM
  • Pipe data in and out
  • Declarative policy engine
  • Two-phase ai setup
  • Local semantic memory
  • Built-in manual & shell completions
Get started
Pro
$0/mo

The full arsenal. Web, skills, and maintenance. Unlock everything.

  • Everything in Plus
  • Web search & fetch
  • Browser automation
  • Skills (incl. AI-authored)
  • ai dream maintenance
  • MCP tool server support
Get started

Open source & free forever 😉

Speaks any LLM

One binary, any backend. Native OpenAI and Anthropic APIs, every OpenAI/Anthropic-compatible endpoint, and the full models.dev catalog. Configure once, switch anytime.

OpenAI Anthropic DeepSeek Ollama Groq Google Gemini Mistral OpenRouter xAI llamafile

Get started

One command, no signup required.

Install as user (installs to ~/.bin, adds it to your $PATH)

$> curl -fsSL https://dswd.github.io/ai/install.sh | sh

Install system-wide (requires root, installs to /usr/local/bin)

$> curl -fsSL https://dswd.github.io/ai/install.sh | sudo sh -s -- --global

Prebuilt binaries for Linux and Windows. On macOS, build from source (cargo build --release).