rs-code 0.1.1

An AI-powered coding agent for the terminal, written in pure Rust
rs-code-0.1.1 is not a library.

rust-code

An AI-powered coding agent for the terminal, written in pure Rust.

Features

  • Interactive REPL with streaming responses, markdown rendering, and syntax highlighting
  • 23 built-in tools for file operations, shell commands, code search, web access, and more
  • 26 slash commands for git, session management, diagnostics, and agent control
  • Permission system with configurable rules (allow/deny/ask per tool and pattern)
  • Agent loop that autonomously executes multi-step coding tasks with error recovery
  • MCP support for connecting external tool servers (stdio + SSE transports)
  • Memory system for persistent context across sessions (project + user level)
  • Skills for custom reusable workflows loaded from markdown files
  • Plugin system for bundling skills, hooks, and config as packages
  • Session persistence with save, resume, and history
  • Plan mode for safe read-only exploration before making changes
  • Multi-agent coordination with typed agent definitions (general, explore, plan)
  • IDE bridge protocol for VS Code and JetBrains integration
  • Vi/Emacs editing modes with customizable keybindings

Architecture

┌───────────────────────────────────────────────────────┐
│               ENTRYPOINT (main.rs / cli)               │
│          CLI parsing, initialization, bootstrap        │
└─────────────────────────┬─────────────────────────────┘
                          │
┌─────────────────────────▼─────────────────────────────┐
│            CONFIG & BOOTSTRAP (config/)                 │
│      Settings loading, environment, MCP connect        │
└─────────────────────────┬─────────────────────────────┘
                          │
┌─────────────────────────▼─────────────────────────────┐
│             QUERY ENGINE (query/)                       │
│    Agent loop: compact → stream → tools → loop         │
└────────┬────────────┬──────────────┬──────────────────┘
         │            │              │
┌────────▼───┐  ┌─────▼─────┐  ┌────▼───────┐
│ TOOL LAYER │  │ PERMISSION │  │   HOOKS    │
│            │  │   SYSTEM   │  │            │
│ 23 tools   │  │ Rules      │  │ Pre/Post   │
│ MCP proxy  │  │ Plan mode  │  │ Shell/HTTP │
│ Executor   │  │ Ask/Deny   │  │ Lifecycle  │
└────────────┘  └────────────┘  └────────────┘
         │            │              │
┌────────▼────────────▼──────────────▼──────────────────┐
│                  SERVICES (12)                          │
│  LLM Client │ Compact │ MCP │ LSP │ Git │ Session     │
│  Tokens │ Bridge │ Coordinator │ Background │ Plugins  │
└───────────────────────────────────────────────────────┘

Quick Start

# Build
cargo build --release

# Set your API key
export RC_API_KEY="your-api-key"

# Run interactive mode
./target/release/rc

# One-shot mode
./target/release/rc --prompt "explain this codebase"

Configuration

Configuration is loaded from (highest to lowest priority):

  1. CLI flags and environment variables
  2. Project-local .rc/settings.toml
  3. User config ~/.config/rust-code/config.toml
[api]
base_url = "https://api.anthropic.com/v1"
model = "claude-sonnet-4-20250514"

[permissions]
default_mode = "ask"

[[permissions.rules]]
tool = "Bash"
pattern = "git *"
action = "allow"

[mcp_servers.filesystem]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/path"]

[ui]
markdown = true
syntax_highlight = true

Tools

Tool Description Read-only
Agent Spawn subagents for parallel tasks No
AskUserQuestion Interactive multi-choice prompts Yes
Bash Execute shell commands No
FileEdit Search-and-replace editing No
FileRead Read files with line ranges Yes
FileWrite Create or overwrite files No
Glob Find files by pattern Yes
Grep Regex content search (ripgrep) Yes
LSP Language server diagnostics Yes
McpProxy Bridge to MCP server tools No
NotebookEdit Edit Jupyter notebook cells No
EnterPlanMode Switch to read-only mode Yes
ExitPlanMode Re-enable all tools Yes
SendMessage Inter-agent communication No
Sleep Async pause with cancellation Yes
TaskCreate Create progress tracking tasks Yes
TaskUpdate Update task status Yes
TodoWrite Structured todo list management Yes
ToolSearch Find tools by keyword Yes
EnterWorktree Create isolated git worktree No
ExitWorktree Clean up git worktree No
WebFetch Fetch content from URLs Yes
WebSearch Search the web Yes

Commands

Command Description
/help Show available commands
/exit Exit the REPL
/clear Clear conversation history
/compact Free context by clearing old tool results
/cost Show session cost and token usage
/model Show or change the current model
/diff Show git diff
/status Show git status
/commit Commit current changes
/review Review current diff for issues
/branch Show or switch git branch
/resume Resume a previous session
/sessions List saved sessions
/memory Show loaded memory context
/skills List available skills
/doctor Check environment health
/mcp List MCP server connections
/plan Toggle plan mode
/init Initialize project config
/export Export conversation as markdown
/context Show context window usage
/agents List agent types
/hooks Show hook configuration
/plugins List loaded plugins
/verbose Toggle verbose output
/version Show version

License

MIT