Goal-Driven Agents ยท 18+ LLM Providers ยท 86+ Tools ยท DAG Workflows ยท MCP-Native ยท Constitutional AI Safety ยท Single Binary
Quick Start ยท Why Ryvos ยท Features ยท Architecture ยท Security ยท Roadmap
# One-line install (Linux / macOS)
curl -fsSL https://raw.githubusercontent.com/Ryvos/ryvos/main/install.sh | sh
ryvos init # pick your LLM provider, paste an API key
ryvos # start your AI coding assistantMost AI coding assistants are built on TypeScript or Python runtimes that were never designed for autonomous, always-on operation. They're heavy, insecure, and fragile to deploy.
Ryvos is a complete reimagination โ built in Rust from scratch as a true autonomous AI agent runtime:
| Typical AI assistants | Ryvos | |
|---|---|---|
| Language | TypeScript / Python | Rust |
| Memory (idle) | 200โ500 MB | 15โ30 MB |
| Execution model | Run until max_turns | Goal-driven with Judge verdict |
| Tool security | None (arbitrary code) | Constitutional AI safety + Docker sandboxing |
| Dangerous command detection | None | 9 built-in patterns (rm -rf, DROP TABLE, curl|bashโฆ) |
| Deployment | npm/pip + runtime + Docker | Single static binary |
| MCP support | Plugin/community | Native (stdio + SSE/Streamable HTTP) |
| Parallel tool execution | Rare | Built-in |
| Multi-agent workflows | Separate orchestration layer | Built-in DAG engine + orchestrator |
| Channel adapters | Separate projects | Built-in (Telegram, Discord, Slack, WhatsApp) |
| HTTP Gateway | Separate project | Built-in with Web UI + RBAC |
If you've used Claude Code, Aider, or Cursor and wanted something lighter, self-hosted, or with a proper security model โ Ryvos is built for you.
Ryvos is an open-source, autonomous AI coding assistant and agent runtime you run on your own hardware. It connects to 18+ LLM providers (Anthropic, OpenAI, Gemini, Azure, Cohere, Ollama, Groq, OpenRouter, Together, Fireworks, Cerebras, xAI, Mistral, Perplexity, DeepSeek, Bedrock, Claude Code, GitHub Copilot), executes tasks through 86+ sandboxed tools, and reaches you on the channels you already use โ Telegram, Discord, Slack, WhatsApp, Webhooks โ plus a built-in Web UI and terminal interface.
Written in Rust. Ships as a single binary. Uses 15โ30 MB of RAM.
Benchmarks from a live v0.8.2 instance on Linux x86_64 (Intel i3-10105, 12 GB RAM).
| Metric | Value |
|---|---|
| Binary size | 45 MB (stripped, thin LTO) |
| CLI startup | < 6 ms |
| Daemon RSS | 57 MB (9 threads, all subsystems active) |
| Heartbeat cycle | ~38 s average |
| Telegram response | ~11 s |
| Data on disk | ~9 MB (all databases combined) |
| Rust LOC | 39,863 |
| Dependencies | 467 transitive, 31 direct |
- Goals with weighted success criteria โ define what "done" means with
OutputContains,OutputEquals,LlmJudge, orCustomcriteria, each with individual weights - Constraints โ hard and soft limits on time, cost, safety, scope, and quality
- Two-level Judge โ Level 0 (deterministic fast-check) + LLM ConversationJudge that evaluates full conversation context
- Verdicts โ
Accept(confidence),Retry(reason, hint),Escalate(reason), orContinueโ the agent keeps going until the goal is met or turns run out
- ReAct agent loop with tool use, reflexion, and streaming responses
- Parallel tool execution โ multiple tools run concurrently when independent
- 18+ LLM providers โ Anthropic, OpenAI, Gemini, Azure, Cohere, Ollama, Groq, OpenRouter, Together, Fireworks, Cerebras, xAI, Mistral, Perplexity, DeepSeek, Bedrock, Claude Code, GitHub Copilot
- Session persistence โ SQLite-backed conversation history and memory across restarts
- Sub-agent spawning โ delegate tasks to child agents with stricter security
- Lifecycle hooks โ trigger shell commands on start, message, tool call, response, turn complete, tool error, session start/end
- Checkpoint / resume โ agent state persisted to SQLite after each turn; crashed runs resume automatically
- Decision tracking โ every tool call choice recorded with alternatives, confidence scores, and outcome (tokens, latency, success)
- Structured output validation โ heuristic repair (strip code fences, balance JSON braces, enforce max length) + optional LLM repair against expected schema
- Graph execution โ define multi-step workflows as directed acyclic graphs of agent nodes
- Node types โ each node is an independent agent run with its own system prompt, tools, goal, and max turns
- Edge conditions โ
Always,OnSuccess,OnFailure,Conditional(expression),LlmDecide(prompt) - Handoff context โ shared key-value store for passing data between nodes with JSON extraction
- Multi-agent orchestrator โ capability-based routing with
Parallel,Relay, andBroadcastdispatch modes
- Telegram, Discord, Slack, WhatsApp โ talk to your AI assistant on the platforms you already use
- Per-channel DM policies โ allowlist, open, or disabled access control per channel
- HTTP/WebSocket Gateway โ Axum-based server with embedded Web UI for browser access
- Terminal UI โ full ratatui-based TUI with adaptive banner and streaming output
- Interactive REPL โ quick command-line usage
- Daemon mode โ always-on background service with
--gatewayflag - Cron scheduler โ recurring tasks with cron expressions, persistent across restarts
- Heartbeat โ periodic proactive agent checks with smart suppression and alert routing
- Constitutional self-learning safety โ the agent reasons about every action using 7 built-in principles
- No tool is ever blocked โ safety comes from understanding, not prohibition
- Safety Memory โ the agent learns from past mistakes via SafetyMemory corrective rules
- Dangerous pattern detection โ 9 built-in patterns trigger explicit constitutional reasoning
- Docker sandboxing โ optional container isolation with memory limits, network isolation, and timeouts
- Optional checkpoints โ configure
pause_beforefor tools that should wait for human acknowledgment - Budget enforcement โ monthly dollar limits with soft warnings and hard stops
- Guardian watchdog โ detects stalls, doom loops (same tool called repeatedly), and budget overruns; injects corrective hints
- JSONL runtime logging โ three-level logging (L1 run summary, L2 per-turn detail, L3 tool execution) โ crash-resilient append-only format
- Decision journal โ SQLite-backed log of every tool call decision with alternatives and outcomes
- Scoped EventBus โ subscribe to filtered events by type, session, or node for monitoring and integrations
- Goal evaluation events โ stream
GoalEvaluatedandJudgeVerdictevents to TUI, gateway, or custom subscribers - Token usage tracking โ per-turn and per-run input/output token counts
- 86+ built-in tools โ shell, file I/O, git, code analysis, network/HTTP, system, data transform, scheduling, database, sessions, memory, notifications, browser, and more across 18 categories
- MCP-native โ connect to any Model Context Protocol server (stdio + SSE/Streamable HTTP transports)
- Drop-in skills โ Lua/Rhai scripts in
~/.ryvos/skills/with manifest-declared schemas and sandbox requirements - Tool registry โ built-in tools + custom tools via MCP or skills
- Role-based API keys โ Viewer, Operator, Admin roles for gateway access
- Soul interview โ
ryvos soulruns a 5-question personality interview that generates SOUL.md, shaping agent tone, proactivity, and operator context
- Hierarchical context database โ L0/L1/L2 tiered loading with FTS search for fast, relevant context retrieval
- 5 browser tools โ navigate, screenshot, click, type, extract (powered by Chromium)
- Cloud API adapter for WhatsApp Business โ full bidirectional messaging
- Monthly dollar limits with configurable warn/hard-stop thresholds
- Embedding-based search for long-term context retrieval across sessions
- Self-learning safety with 7 principles and SafetyMemory โ the agent improves its safety behavior over time
# One-line install (Linux / macOS) โ recommended
curl -fsSL https://raw.githubusercontent.com/Ryvos/ryvos/main/install.sh | sh
# Pin a specific version
RYVOS_VERSION=v0.8.2 curl -fsSL https://raw.githubusercontent.com/Ryvos/ryvos/main/install.sh | sh
# Custom install directory
RYVOS_INSTALL_DIR=/usr/local/bin curl -fsSL https://raw.githubusercontent.com/Ryvos/ryvos/main/install.sh | shBuild from source (Rust 1.75+)
cargo install --path .# Interactive setup โ pick a provider, configure security, install service
ryvos init
# Non-interactive setup (defaults to Ollama / qwen2.5:7b for local inference)
ryvos init -y --provider ollama --model-id qwen2.5:7b
# Start your AI coding assistant
ryvos
# Ask a quick question and exit
ryvos run "Summarize the last 5 git commits in this repo"
# Launch the terminal UI
ryvos tui
# Start the Web UI + HTTP/WebSocket gateway
ryvos serve
# Always-on: Telegram + Discord + Slack + WhatsApp + gateway in one process
ryvos daemon --gateway
# Check system health
ryvos doctorrm ~/.local/bin/ryvos
rm -rf ~/.ryvos # optional: remove config and dataryvos completions bash > ~/.local/share/bash-completion/completions/ryvos # bash
ryvos completions zsh > ~/.zfunc/_ryvos # zsh
ryvos completions fish > ~/.config/fish/completions/ryvos.fish # fish| Command | Description |
|---|---|
ryvos |
Interactive conversation (default) |
ryvos run <prompt> |
Ask a question, get an answer, exit |
ryvos tui |
Terminal UI with streaming output |
ryvos serve |
Web UI + HTTP/WebSocket gateway |
ryvos daemon |
Always-on assistant (Telegram, Discord, Slack, WhatsApp) |
ryvos daemon --gateway |
Always-on + Web UI in one process |
ryvos init |
Interactive setup wizard |
ryvos init -y |
Non-interactive setup with defaults |
ryvos soul |
Personalize your agent (5-question interview โ SOUL.md) |
ryvos config |
Print resolved configuration |
ryvos doctor |
System health checks (API, workspace, DB, channels, cron, MCP, security) |
ryvos health |
Tool health statistics |
ryvos mcp list |
List configured MCP servers |
ryvos mcp add <name> |
Add an MCP server |
ryvos completions <shell> |
Generate shell completions (bash, zsh, fish) |
Ryvos is a Cargo workspace with 10 crates. Together they form a complete autonomous AI agent runtime โ goal-driven LLM reasoning, DAG workflow orchestration, tool execution, security enforcement, persistent memory, multi-channel inbox, and observability โ all in one binary.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ryvos (CLI) โ
โโโโโโโโโโโโฌโโโโโโโโโโโฌโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโค
โ ryvos-tuiโ ryvos- โ ryvos- โ ryvos-channels โ
โ (TUI) โ gateway โ agent โ(Telegram/Discord/ โ
โ โ(HTTP/WS) โ โ Slack/WhatsApp) โ
โโโโโโโโโโโโดโโโโโโโโโโโค โโโโโโโโโโโโโโโโโโโโโค
โ ryvos-skills โ โ ryvos-mcp โ
โ (Lua/Rhai loader) โ โ (MCP client) โ
โโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโค
โ ryvos-tools โ ryvos-llm โ ryvos-memory โ
โ (tool registry) โ(streaming โ (SQLite store) โ
โ โ client) โ โ
โโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโค
โ ryvos-core โ
โ (config, error types, event bus, security, โ
โ goal system, traits, types) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
| Crate | Purpose |
|---|---|
ryvos-core |
Config, error types, scoped event bus, security policy, goal system, traits |
ryvos-llm |
LLM client abstraction with streaming support (18+ providers) |
ryvos-tools |
Tool registry, 86+ built-in tools across 18 categories |
ryvos-agent |
ReAct loop, SecurityGate, ApprovalBroker, Guardian watchdog, Judge, GoalEvaluator, OutputValidator, CheckpointStore, RunLogger, CronScheduler, GraphExecutor, MultiAgentOrchestrator |
ryvos-memory |
SQLite-backed session and history storage |
ryvos-gateway |
Axum HTTP/WS server, Web UI, role-based auth middleware |
ryvos-channels |
Telegram, Discord, Slack, WhatsApp adapters with DM policy enforcement |
ryvos-mcp |
MCP client (stdio + SSE transports) with sampling control |
ryvos-skills |
Drop-in skill loader (Lua/Rhai) with manifest validation |
ryvos-tui |
Terminal UI built on ratatui with adaptive banner |
Ryvos uses a constitutional self-learning safety model โ the agent reasons about the appropriateness of every action using 7 built-in principles.
No tool is ever blocked. Safety comes from understanding, not prohibition.
- Tool classification โ every tool has a security tier (T0 safe โ T4 critical) for audit and context
- Constitutional reasoning โ the agent evaluates each action against 7 principles: Preservation, Intent Match, Proportionality, Transparency, Boundaries, Secrets, Learning
- Safety Memory โ the agent learns from past mistakes. SafetyMemory stores lessons as corrective rules that improve behavior over time
- Full audit trail โ every tool call is logged with input, output, safety reasoning, and outcome
- Dangerous pattern detection โ 9 built-in patterns (rm -rf, DROP TABLE, curl|bash, etc.) trigger explicit constitutional reasoning
- Docker sandboxing โ optional isolated execution for file system and network operations
- Optional checkpoints โ configure
pause_beforefor tools that should wait for human acknowledgment - Budget enforcement โ monthly dollar limits with soft warnings and hard stops
The old tier-based blocking system has been replaced. Tiers are retained for classification and backward compatibility, but they do not gate execution. See the security documentation for details.
Configuration lives in ~/.ryvos/config.toml (created by ryvos init). You can also place a ryvos.toml in the current directory.
[agent]
max_turns = 25
parallel_tools = true
enable_self_eval = true
[agent.checkpoint]
enabled = true
[agent.log]
enabled = true
log_dir = "~/.ryvos/logs"
[agent.guardian]
stall_timeout_secs = 60
doom_loop_threshold = 5
budget_tokens = 100000
[model]
provider = "anthropic"
model_id = "claude-sonnet-4-20250514"
api_key = "${ANTHROPIC_API_KEY}"
# Local / self-hosted (no API key required):
# provider = "ollama"
# model_id = "qwen2.5:7b"
[security]
mode = "constitutional" # constitutional | legacy-tier
pause_before = ["shell_exec"] # optional human checkpoints
budget_monthly_usd = 50.0
budget_warn_pct = 80
[gateway]
bind = "127.0.0.1:18789"
[[gateway.api_keys]]
name = "web-ui"
key = "rk_..."
role = "operator" # viewer | operator | admin
[channels.telegram]
bot_token = "${TELEGRAM_BOT_TOKEN}"
dm_policy = "allowlist"
allowed_users = [123456789]
[mcp.servers.filesystem]
transport = { type = "stdio", command = "npx", args = ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"] }- Goal-driven execution with weighted success criteria
- Two-level Judge system (deterministic + LLM)
- Decision tracking and failure journal
- Structured output validation and repair
- JSONL runtime logging (L1/L2/L3)
- Phase-aware context compaction
- Three-layer prompt composition
- Checkpoint / resume
- DAG workflow engine (graph execution)
- Multi-agent orchestrator with capability-based routing
- Scoped EventBus with filtered subscriptions
- Cron scheduler with persistent resume
- Guardian watchdog (stall, doom loop, budget detection)
- Multi-channel inbox (Telegram, Discord, Slack)
- HTTP/WebSocket gateway with Web UI
- Heartbeat system with smart suppression and alert routing
- WhatsApp channel adapter (shipped in v0.5.0)
- Browser control โ navigate, click, extract, screenshot (shipped in v0.5.0)
- Ryvos Cloud โ hosted assistant with managed sessions (in preview at cloud.ryvos.dev)
- Pre-built binaries (Windows, macOS, Linux) via GitHub Releases
-
cargo install ryvosfrom crates.io - Signal, iMessage, and Google Chat channel adapters
- Voice mode โ wake word detection + speech-to-text + TTS
- Mobile companion apps (iOS, Android) via WebSocket
- Live Canvas โ real-time document/artifact editing in Web UI
- SOC 2 compliance documentation
- Signed & verified skill marketplace
- MCP sampling support (server-initiated LLM calls)
Ryvos stands on the shoulders of great projects:
- Claude Code โ Developer-first CLI patterns and ReAct loop design
- Aider โ Lightweight coding assistant philosophy
- Aden Hive โ Goal-driven graph execution and evolution loops
- OpenClaw โ Channel adapter architecture and skills marketplace model
- OpenViking โ Hierarchical context database with L0/L1/L2 tiered loading
- Paperclip โ Multi-agent fleet orchestration patterns
- Model Context Protocol โ Open standard for LLM tool integration
We welcome contributions. See CONTRIBUTING.md for guidelines.
- GitHub Issues โ bug reports and feature requests
- GitHub Discussions โ questions and community

