Features
| Feature | Description |
| Tools | Built-in tools + custom tools via Go plugins |
| Slash Commands | Built-in commands + user-defined custom commands |
| Skills | LLM-invocable capabilities with progressive disclosure |
| Sessions | Save, resume, and fork conversations |
| Embeddings | Embedding-based codebase search with AST-aware chunking |
| Compaction | Automatic context compression via dedicated agent |
| Thinking | Extended reasoning with configurable levels |
| Sandboxing | Landlock LSM filesystem restrictions with per-tool path declarations |
| MCP | Model Context Protocol support |
| Directives | Input preprocessing directives: @Image, @Bash, @File, @Path |
| Auto Mode | Continuous execution while TODOs are pending or in-progress |
| Hooks | User-configurable shell commands that run before or after tool execution |
| LSP | Language server diagnostics appended to tool results after execution |
| Guardrail | Secondary LLM validation of tool calls and user messages |
| Synthetic Injectors | Plugin-based lifecycle hooks and condition-based message injectors |
| Plugins | User-defined Go plugins via Yaegi for programmatic lifecycle hooks |
| Memory | Persistent key-value storage across sessions and compactions |
| Deferred Tools | On-demand tool loading to reduce initial context usage |
| Scheduled Tasks | Cron-based task scheduling with foreach iteration and runtime templates |
| Replay | YAML-based command sequences with Go templating and conditional logic |
| Web UI | Browser-based chat interface with SSE streaming |
Table of contents