Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sett

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.

Features

  • 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

Installation

Shell Script (Recommended)

curl -fsSL https://raw.githubusercontent.com/gothammm/sett/main/install.sh | sh

This will download the appropriate pre-built binary for your system.

Build from Source

# Clone the repository
git clone git@github.com:gothammm/sett.git
cd sett

# Build and install
cargo install --path .

Download Binaries

Download pre-built binaries from the Releases page.

Usage

  1. Set your OpenRouter API key:

    export OPENROUTER_API_KEY=your-api-key-here
  2. Run the agent:

    sett
  3. Use the interactive prompt to:

    • Ask coding questions
    • Request file operations
    • Execute shell commands
    • Get help with development tasks
  4. Type quit or exit to leave the session.

Configuration

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", "."]

Available Tools

Bash Tool

Execute shell commands with timeout and working directory control. Returns stdout, stderr, and exit code.

Filesystem Tool

Perform file operations:

  • read - Read file contents (with optional offset/limit)
  • read_multiple - Read multiple files at once
  • write - Write content to a file
  • edit - Replace text in files (search and replace)
  • list - List directory contents
  • glob - Find files matching a pattern
  • grep - Search file contents using regex
  • info - Get file metadata (size, permissions)
  • tree - Display directory tree structure

Development

Prerequisites

  • Rust toolchain (stable)
  • Git
  • Optional: Node.js (for MCP server dependencies)

Building

cargo build --release

Running Tests

cargo test

Code Quality

# Check formatting
cargo fmt -- --check

# Run linter
cargo clippy -- -D warnings

License

MIT License - see LICENSE file for details.

About

No description, website, or topics provided.

Resources

Security policy

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages