An open source AI coding agent built in Rust. Sett provides an interactive terminal interface for AI-assisted software engineering tasks, with tool calling support for bash commands and filesystem operations.
- Multiple LLM providers (starting with OpenRouter)
- Built-in tools: bash execution, filesystem operations
- MCP (Model Context Protocol) support for external tool servers
- Streaming responses with real-time terminal updates
- Clean terminal interface using crossterm and rustyline
- Configurable via YAML files with environment variable fallback
- Agent architecture with tool calling and conversation history
curl -fsSL https://raw.githubusercontent.com/gothammm/sett/main/install.sh | shThis will download the appropriate pre-built binary for your system.
# Clone the repository
git clone git@github.com:gothammm/sett.git
cd sett
# Build and install
cargo install --path .Download pre-built binaries from the Releases page.
-
Set your OpenRouter API key:
export OPENROUTER_API_KEY=your-api-key-here -
Run the agent:
sett
-
Use the interactive prompt to:
- Ask coding questions
- Request file operations
- Execute shell commands
- Get help with development tasks
-
Type
quitorexitto leave the session.
Sett looks for configuration in these locations (in order):
.sett.yaml(current directory)sett.yaml(current directory)~/.config/sett/config.yaml~/.sett.yaml
Example sett.yaml:
model:
provider: openrouter
model: openai/gpt-4o-mini
api_key: ${OPENROUTER_API_KEY} # or set directly
base_url: https://openrouter.ai/api/v1 # optional
mcp_servers:
- name: "filesystem"
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "."]Execute shell commands with timeout and working directory control. Returns stdout, stderr, and exit code.
Perform file operations:
read- Read file contents (with optional offset/limit)read_multiple- Read multiple files at oncewrite- Write content to a fileedit- Replace text in files (search and replace)list- List directory contentsglob- Find files matching a patterngrep- Search file contents using regexinfo- Get file metadata (size, permissions)tree- Display directory tree structure
- Rust toolchain (stable)
- Git
- Optional: Node.js (for MCP server dependencies)
cargo build --releasecargo test# Check formatting
cargo fmt -- --check
# Run linter
cargo clippy -- -D warningsMIT License - see LICENSE file for details.