Important
This project is in beta.
Full documentation is available at ruri.vince-g.xyz.
| Section | Description |
|---|---|
| Getting Started | Installation & first launch guide |
| Model Providers | Configure OpenAI, Anthropic, Gemini, Ollama |
| Built-in Tools | File ops, shell, web search, image analysis |
| Skills | Create custom AI behaviors |
| Personas | Customize AI personality |
| MCP Client | Connect external tool servers |
| Knowledge Base | RAG document search |
| Chat Platforms | DingTalk, Discord, WeChat, OneBot12 |
| Computer Use | Sandboxed command execution |
| API Reference | Complete REST API documentation |
| Developer Guide | Build, integrate, and contribute |
Connect to multiple AI model providers simultaneously — OpenAI, Anthropic (Claude), Google Gemini, DeepSeek, Ollama (local), and any OpenAI-compatible API. Switch between models instantly with Config Profiles.
Give the AI real capabilities beyond chat:
- File Operations — Read, write, create, edit, and delete files
- Shell Execution — Run commands in isolated Docker sandboxes or directly on your system
- Web Search — DuckDuckGo, Tavily, Brave, Baidu, and more
- Directory Browsing — List and search files with regex and glob patterns
- Image Analysis — Multimodal support for vision-capable models
Teach the AI new tricks with Markdown-based skills. Each skill defines custom behavior with YAML frontmatter, tool restrictions, model overrides, shell hooks, and auto-triggers. Package and share skills as ZIP files.
Customize the AI's personality — switch between a Code Expert, Creative Writer, Learning Tutor, or any persona you create. Define system prompts, swap personalities with a single click, and bind them to config profiles.
Connect to external Model Context Protocol servers via Stdio, SSE, WebSocket, or HTTP. Extend the AI with filesystem servers, database tools, browser automation, and more.
Upload PDFs, Excel spreadsheets, Word documents, and text files. The AI searches your documents using embedding models with optional reranking for better accuracy.
Use Ruri from your favorite messaging apps:
- DingTalk (钉钉)
- Discord
- WeChat (微信) via Wechat ClawBot
- OneBot12 (QQ, Lark, and more)
Hot-reload platform configs, restart individual adapters, and persist credentials automatically.
Execute AI commands safely inside isolated Docker containers via AIO Sandbox. Automatic retry with exponential backoff for transient errors.
Handy slash commands for session control: /help, /new, /reset, /sid, /whoami, /set, /stop, and more.
Use Ruri as an AI coding assistant inside Zed and JetBrains IDEs via the Agent Client Protocol (JSON-RPC over stdio).
Create scene-based configuration profiles (Coding, Writing, Research, Casual) that bundle providers, personas, skills, platforms, knowledge bases, and proxy settings — switch everything with one click.
HTTP, HTTPS, SOCKS4, and SOCKS5 proxy support with Clash-style rule-based routing. Per-profile proxy configuration with localhost bypass.
- An API key from an AI provider (OpenAI, Anthropic, DeepSeek, etc.) or
- Ollama installed for free local models
- Download the latest release from GitHub Releases
- Add the binary to your
PATH - Run the server:
# Show available options
ruri -h
# Start with default settings (port 3000)
ruri
# Use a custom port
ruri --port 8080
# Expose to the local network
ruri --remote- Open
http://localhost:3000in your browser - Log in with default credentials (
ruri/ruri) — you'll be prompted to change your password - Add a model provider on the Providers page and activate it
- Start chatting!
📖 For detailed setup guides, see the Getting Started documentation.
| Layer | Technology |
|---|---|
| Backend | Rust + Axum + Tokio + SQLx (SQLite) |
| Frontend | Vue 3 + TypeScript + Vite + Pinia + UnoCSS + vue-i18n |
| Docs | VitePress + Teek Theme + Twoslash |
# Clone the repository
git clone https://github.com/Vincent-the-gamer/ruri.git
cd ruri
# Build the frontend (required for embedded assets)
pnpm -C webui run build
# Build and run the backend
cargo runFor frontend development with hot reload:
# Terminal 1: Start the Rust backend
cargo run
# Terminal 2: Start the Vite dev server
cd webui && pnpm devThe Vite dev server proxies API requests to the backend and provides instant HMR for Vue components.
# Build for production
cargo build --release
# Run with verbose logging
RUST_LOG=debug cargo run
# Run all tests
cargo test
# Build and serve docs locally
cd docs && pnpm devcargo run -- --acpAdd to your Zed/JetBrains/... config:
{
"agent_servers": {
"ruri": {
"type": "custom",
"command": "/path/to/ruri",
"args": ["--acp"]
}
}
}ruri/
├── src/ # Rust backend
│ ├── main.rs # Entry point, CLI args, server setup
│ ├── api/ # REST API handlers, routes, models
│ ├── agent/ # AI agent chat loop & tool dispatch
│ ├── acp/ # Agent Client Protocol (IDE integration)
│ ├── auth/ # Session auth + Argon2 password hashing
│ ├── command/ # Slash command system
│ ├── computer_use/ # Shell execution & sandbox
│ ├── conversation/ # Conversation persistence
│ ├── db/ # SQLite initialization & pooling
│ ├── knowledge/ # RAG knowledge base
│ ├── logging/ # Logging infrastructure
│ ├── mcp/ # MCP client for external tool servers
│ ├── platform/ # Chat platform adapters
│ ├── provider/ # AI model provider abstractions
│ ├── transport/ # Transport layer (stdio, SSE, WS, HTTP)
│ ├── types/ # Shared types
│ └── web_dist/ # Embedded frontend build output
├── webui/ # Vue 3 frontend
│ └── src/
│ ├── api/ # API client modules
│ ├── components/ # Reusable Vue components
│ ├── composables/ # Vue composables
│ ├── locales/ # i18n translations
│ ├── router/ # Vue Router config
│ ├── stores/ # Pinia state stores
│ ├── views/ # Page-level components
│ └── App.vue # Root component
├── docs/ # VitePress documentation
│ └── contents/ # English + Chinese docs
├── Cargo.toml # Rust dependencies
└── pnpm-workspace.yaml # pnpm workspace config
Contributions are welcome! Here's how you can help:
- Report bugs — Open an issue on GitHub Issues
- Suggest features — Share your ideas for new capabilities
- Submit PRs — Fix bugs, add features, or improve documentation
- Write skills — Share useful AI skills with the community
- Improve docs — Help translate or fix documentation errors
Please read the Developer Guide before submitting code changes.
Copyright (C) 2026-PRESENT Vincent-the-gamer https://github.com/Vincent-the-gamer