Skip to content

What is Peri?

Peri is a terminal AI Agent written in Rust — not an API gateway, not a chatbot, but a complete programming assistant that reads files, runs commands, searches code, and spawns sub-agents.

What It Does

Peri runs on a ReAct loop: receive your question → think → call tools → observe results → keep thinking, until the task is done.

12 core tools are always visible to the LLM:

ToolPurpose
Read / Write / EditRead, write, and precisely replace files
Glob / GrepFind files by pattern, search content by regex
folder_operationsCreate, list, and check directories
BashExecute terminal commands
WebFetch / WebSearchFetch web pages, search the internet
AgentSpawn sub-agents for sub-tasks
AskUserQuestion / TodoWriteAsk the user questions, maintain task lists

Additionally, MCP tools, Cron tools, and others are loaded on-demand via Tool Search, keeping the LLM context lean.

Relationship with Claude Code

Peri is compatible with the .claude/ directory structure. If you're already using Claude Code:

File/DirectoryPeri's Handling
.claude/agents/*.mdAuto-scanned as available Agent definitions
.claude/skills/*.mdProgressively injected into the system prompt
.claude/settings.jsonPermissions and MCP config read
CLAUDE.md / AGENTS.mdInjected as project-level guidance

This means you can use Peri in existing Claude Code projects without modifying any configuration.

Comparison with Other Terminal Agents

PeriClaude CodeAider
LanguageRustTypeScriptPython
Memory Usage~50MB~200MB~100MB
.claude/ Compatible
Sub-Agents✅ fork + background
Middleware System✅ Programmable
LLM SupportOpenAI + AnthropicAnthropicMultiple
TUI Interface✅ Ratatui✅ Ink
IDE Integration✅ ACP Protocol✅ LSP

Project Structure

peri/
├── peri-agent/        # Core: ReAct loop, middleware chain, LLM interface, Thread persistence
├── peri-middlewares/   # Built-in middleware: filesystem, terminal, web, sub-agent, Tool Search, etc.
├── peri-tui/          # TUI application, CLI entry point
├── peri-acp/          # ACP service layer: SessionManager, Langfuse tracing
├── peri-widgets/      # TUI component library
├── peri-lsp/          # LSP client
└── langfuse-client/   # Langfuse observability client

System Requirements

  • OS: macOS (Apple Silicon / Intel), Linux (x86_64 / aarch64 / riscv64), Windows (x86_64)
  • Network: Access to LLM API endpoints (OpenAI-compatible or Anthropic)
  • Optional: MCP servers, Langfuse instance, LSP server

Next Steps

Released under the Apache 2.0 License.