dot-ai 0.2.0

A minimal AI agent that lives in your terminal
Documentation

A terminal-native AI coding agent with tool execution, MCP support, and persistent conversations. Built in Rust with a TUI interface designed to stay out of your way.

Features

  • Multi-Provider: Supports Anthropic Claude and OpenAI with automatic fallback
  • Tool Execution: Built-in file operations, shell commands, and pattern search
  • MCP Integration: Connect any Model Context Protocol server for extensible tooling
  • Persistent Sessions: SQLite-backed conversation history, resumable across restarts
  • Agent Profiles: Define custom agents with specific models, prompts, and tool sets
  • Skills System: Discovers and loads skill definitions from configurable directories
  • Context-Aware: Auto-loads project-level and global AGENTS.md instructions
  • Vim Keybindings: Modal editing with full vim-style navigation

Install

cargo install dot-ai

Or from source:

git clone https://github.com/plyght/dot.git
cd dot
cargo install --path .

Setup

# Authenticate with a provider
dot login

# Or set environment variables
export ANTHROPIC_API_KEY="..."
export OPENAI_API_KEY="..."

Usage

# Launch the TUI
dot

# Resume a previous session
dot -s <session-id>

# Show config paths and current settings
dot config

# List MCP servers and discovered tools
dot mcp

Inside the TUI: i to enter insert mode, Enter to send, Esc to return to normal mode, Ctrl+C to cancel a stream or quit.

Configuration

All configuration lives in ~/.config/dot/config.toml:

default_provider = "anthropic"
default_model = "claude-sonnet-4-20250514"

[theme]
name = "dark"

[tui]
vim_mode = true

[context]
auto_load_global = true
auto_load_project = true

MCP Servers

[mcp.filesystem]
command = ["npx", "-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
enabled = true
env = {}
timeout = 30

Agent Profiles

[agents.reviewer]
description = "Code review agent"
model = "claude-sonnet-4-20250514"
system_prompt = "You are a thorough code reviewer."
enabled = true

[agents.reviewer.tools]
run_command = false

Architecture

src/
  main.rs          CLI entry point and provider/tool wiring
  config.rs        TOML configuration loading
  context.rs       AGENTS.md discovery and injection
  mcp.rs           MCP client (stdio transport, JSON-RPC)
  skills.rs        Skill discovery and loading
  agent/           Conversation loop, profiles, event types
  provider/        Provider trait + Anthropic and OpenAI implementations
  tools/           Tool trait, file operations, shell execution
  tui/             Ratatui-based interface, input handling, markdown rendering
  auth/            OAuth and API key credential management
  db/              SQLite session and message persistence

Development

cargo build
cargo test

Requires Rust nightly (edition 2024). Key dependencies: ratatui, crossterm, tokio, clap, reqwest, rusqlite, async-openai, syntect.

License

MIT