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.mdinstructions - Vim Keybindings: Modal editing with full vim-style navigation
Install
Or from source:
Setup
# Authenticate with a provider
# Or set environment variables
Usage
# Launch the TUI
# Resume a previous session
# Show config paths and current settings
# List MCP servers and discovered tools
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:
= "anthropic"
= "claude-sonnet-4-20250514"
[]
= "dark"
[]
= true
[]
= true
= true
MCP Servers
[]
= ["npx", "-y", "@modelcontextprotocol/server-filesystem", "/tmp"]
= true
= {}
= 30
Agent Profiles
[]
= "Code review agent"
= "claude-sonnet-4-20250514"
= "You are a thorough code reviewer."
= true
[]
= 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
Requires Rust nightly (edition 2024). Key dependencies: ratatui, crossterm, tokio, clap, reqwest, rusqlite, async-openai, syntect.
License
MIT