
Безопасный постоянный персональный сервер агента на Rust. Один бинарный файл, изолированное выполнение, многопровайдерные LLM, голос, память, Telegram, WhatsApp, Discord, Teams и инструменты MCP. Безопасный по дизайну, работает на вашем оборудовании.
<div align="center">
<a href="https://moltis.org"><img src="https://raw.githubusercontent.com/moltis-org/moltis/main/website/favicon.svg" alt="Moltis" width="64"></a>
# Moltis — безопасный постоянный сервер персонального агента на Rust
Один бинарник — в песочнице, безопасный, ваш.
[](https://github.com/moltis-org/moltis/actions/workflows/ci.yml)
[](https://codecov.io/gh/moltis-org/moltis)
[](https://codspeed.io/moltis-org/moltis)
[](LICENSE)
[](https://www.rust-lang.org)
[](https://discord.gg/XnmrepsXp5)
[Установка](#installation) • [Сравнение](#comparison) • [Архитектура](#architecture--crate-map) • [Безопасность](#security) • [Возможности](#features) • [Как это работает](#how-it-works) • [Участие в разработке](https://github.com/moltis-org/moltis/blob/main/CONTRIBUTING.md)
</div>
---
Moltis недавно попал [на главную страницу Hacker News](https://news.ycombinator.com/item?id=46993587). Пожалуйста, [открывайте issue](https://github.com/moltis-org/moltis/issues) при любых затруднениях. Я сосредоточен на том, чтобы сделать Moltis превосходным.
**Безопасность по замыслу** — Ваши ключи никогда не покидают вашу машину. Каждая команда выполняется в контейнере-песочнице, а не на вашем хосте.
**Ваше оборудование** — Работает на Mac Mini, Raspberry Pi или любом сервере, которым вы владеете. Один бинарник на Rust, без Node.js, без npm, без рантайма.
**Полный набор функций** — Голос, память, кросс-сессионное вспоминание, автоматические контрольные точки редактирования, планирование, Telegram, Signal, Discord, автоматизация браузера, MCP-серверы, удалённое выполнение через SSH или узлы, управляемые ключи развёртывания с привязкой к хосту в веб-интерфейсе, живой инвентарь Settings → Tools, совместимый с Cursor контекст проекта и сканирование контекстных файлов на угрозы — всё встроено. Никакого маркетплейса плагинов, через который можно подвергнуться атаке на цепочку поставок.
**Аудируемость** — Раннер агента и интерфейс модели укладываются примерно в 7,5 тыс. строк, а провайдеры — ещё в ~19 тыс. Рабочее пространство Rust — около 270 тыс. строк в 59 модульных крейтах, которые можно аудировать независимо, при этом 470+ файлов Rust содержат тесты. Небезопасный код изолирован на границах FFI и предкомпилированного рантайма, а не в основном цикле агента.
## Установка
```bash
# One-liner install script (macOS / Linux)
curl -fsSL https://www.moltis.org/install.sh | sh
# macOS / Linux via Homebrew
brew install moltis-org/tap/moltis
# Docker (multi-arch: amd64/arm64)
docker pull ghcr.io/moltis-org/moltis:latest
# Or build from source
cargo install moltis --git https://github.com/moltis-org/moltis
```
## Сравнение
| | OpenClaw | Hermes Agent | **Moltis** |
|---|---|---|---|
| Основной стек | TypeScript + сопутствующие приложения на Swift/Kotlin | Python + TUI/web-интерфейсы на TypeScript | **Rust** |
| Среда выполнения | Node.js + npm/pnpm/bun | Python + uv/pip, опциональные компоненты UI на Node | **Единый бинарник на Rust** |
| Размер локального репозитория\* | ~1,1 млн строк кода приложения | ~152 тыс. строк кода приложения | **~270 тыс. строк кода на Rust** |
| Архитектура | Широкая экосистема шлюзов, каналов, узлов и приложений | CLI/gateway-агент с циклом обучения и исследовательскими инструментами | **Постоянный сервер персонального агента с модульными крейтами** |
| Крейты/модули | npm-пакеты, расширения, приложения | Python-пакеты, плагины, инструменты, TUI | **59 крейтов рабочего пространства Rust** |
| Песочница/бэкенды | Разрешения на уровне приложения, инструменты браузера/узла | Локально, Docker, SSH, Daytona, Singularity, Modal | **Docker/Podman + Apple Container + WASM** |
| Аутентификация/доступ | Сопряжение и локальное управление шлюзом | Настройка CLI и шлюза обмена сообщениями | **Пароль + Passkey + API-ключи + Vault** |
| Голосовой ввод/вывод | Режимы голосового пробуждения и разговора | Транскрипция голосовых заметок | **Встроенные провайдеры STT + TTS** |
| MCP | Поддержка плагинов/интеграций | Интеграция MCP | **stdio + HTTP/SSE** |
| Навыки | Встроенные, управляемые и рабочие навыки | Самоулучшающиеся навыки и поддержка Skills Hub | **Встроенные/рабочие навыки + автономное улучшение + импорт OpenClaw** |
| Память/RAG | Память и контекстный движок на основе плагинов | Курируемая агентом память, поиск по сессиям, моделирование пользователя | **SQLite + FTS + векторная память** |
\* Строки кода измерены с помощью `tokei`, без учёта `node_modules`, сгенерированных артефактов сборки, `dist` и `target`.
> [Полное сравнение в документации →](https://docs.moltis.org/comparison.html)
## Архитектура — карта крейтов
Текущее рабочее пространство Rust: ~270 тыс. строк кода в 59 крейтах. Таблица ниже группирует основные крейты по роли, чтобы архитектура оставалась обозримой.
**Ядро среды выполнения**:
| Крейт | Строк кода | Роль |
|-------|-----|------|
| `moltis-gateway` | 37,4 тыс. | HTTP/WS-сервер, RPC, аутентификация, связывание при запуске |
| `moltis-tools` | 37,0 тыс. | Выполнение инструментов, песочница, WASM-инструменты |
| `moltis-providers` | 18,9 тыс. | Реализации провайдеров LLM |
| `moltis-agents` | 14,5 тыс. | Цикл агента, потоковая передача, сборка промптов |
| `moltis-chat` | 14,2 тыс. | Чат-движок, оркестрация агентов |
| `moltis-config` | 10,3 тыс. | Конфигурация, валидация |
| `moltis-httpd` | 9,9 тыс. | Примитивы и middleware HTTP-сервера |
| `moltis` (CLI) | 4,7 тыс. | Точка входа, команды CLI |
| `moltis-sessions` | 3,5 тыс. | Сохранение сессий |
| `moltis-common` | 1,5 тыс. | Общие утилиты |
| `moltis-service-traits` | 1,2 тыс. | Общие интерфейсы сервисов |
| `moltis-protocol` | 0,7 тыс. | Типы сетевого протокола |
**Крейты функций и интеграций**:
| Категория | Крейты | Суммарно строк кода |
|----------|--------|-------------|
| Каналы | `moltis-telegram`, `moltis-whatsapp`, `moltis-signal`, `moltis-discord`, `moltis-msteams`, `moltis-matrix`, `moltis-slack`, `moltis-nostr`, `moltis-channels` | 34,0 тыс. |
| Web и API | `moltis-web`, `moltis-graphql`, `moltis-webhooks` | 10,8 тыс. |
| Расширяемость | `moltis-mcp`, `moltis-mcp-agent-bridge`, `moltis-skills`, `moltis-plugins` | 11,5 тыс. |
| Память и контекст | `moltis-memory`, `moltis-qmd`, `moltis-code-index`, `moltis-projects` | 11,7 тыс. |
| Голос и браузер | `moltis-voice`, `moltis-browser` | 9,2 тыс. |
| Аутентификация и безопасность | `moltis-auth`, `moltis-oauth`, `moltis-vault`, `moltis-secret-store`, `moltis-network-filter`, `moltis-tls` | 8,5 тыс. |
| Планирование и автоматизация | `moltis-cron`, `moltis-caldav`, `moltis-auto-reply` | 4,7 тыс. |
| Настройка и импорт | `moltis-provider-setup`, `moltis-openclaw-import`, `moltis-onboarding` | 11,7 тыс. |
| Нативные и узловые хосты | `moltis-swift-bridge`, `moltis-node-host`, `moltis-courier` | 5,7 тыс. |
| WASM-инструменты | `moltis-wasm-precompile`, `moltis-wasm-calc`, `moltis-wasm-web-fetch`, `moltis-wasm-web-search` | 1,4 тыс. |
| Вспомогательные крейты | `moltis-media`, `moltis-metrics`, `moltis-tailscale`, `moltis-routing`, `moltis-canvas`, `moltis-schema-export`, `benchmarks` | 2,1 тыс. |
Используйте `--no-default-features --features lightweight` для устройств с ограниченными ресурсами (Raspberry Pi и т. п.).
## Безопасность
- **Малая площадь небезопасного кода** — основной код агента/шлюза остаётся на безопасном Rust; небезопасный код изолирован в Swift FFI, обёртках локальных моделей и границах предкомпилированного WASM
- **Изолированное выполнение** — Docker + Apple Container, изоляция на уровне сессии
- **Обработка секретов** — `secrecy::Secret`, обнуление при удалении, скрытие из вывода инструментов
- **Аутентификация** — пароль + passkey (WebAuthn), ограничение частоты, троттлинг по IP
- **Защита от SSRF** — разрешение через DNS, блокировка loopback/private/link-local
- **Проверка Origin** — отклонение кросс-доменных WebSocket-апгрейдов
- **Управление хуками** — хуки `BeforeToolCall` могут проверять/блокировать любой вызов инструмента
- **Целостность цепочки поставок** — [аттестации артефактов](https://github.com/moltis-org/moltis/attestations), безключевая подпись Sigstore, подпись GPG (YubiKey), контрольные суммы SHA-256/SHA-512
Подробности см. в разделе [Архитектура безопасности](https://docs.moltis.org/security.html).
Проверяйте релизы командой `gh attestation verify <artifact> -R moltis-org/moltis` или см. [Проверка релизов](https://docs.moltis.org/release-verification.html).
## Возможности
- **Настройки рассуждений по умолчанию** — настраиваемое усилие обдумывания по умолчанию для сессий без модели и новых основных сессий, с явным переопределением на уровне сессии (Off или уровень)
- **AI-шлюз** — поддержка нескольких провайдеров LLM (OpenAI Codex, GitHub Copilot, Local), потоковые ответы, цикл агента с делегированием субагентам, режимы сессий, параллельное выполнение инструментов
- **Коммуникация** — веб-интерфейс с промптами агента через командную палитру и копированием/экспортом Markdown, Telegram, Signal, Microsoft Teams, Discord, Slack с нативными живыми карточками инструментов, личные сообщения Nostr + групповой чат NIP-29 (включая каналы Buzz от Block), доступ через API, голосовой ввод/вывод (8 провайдеров TTS + 7 провайдеров STT), мобильное PWA с push-уведомлениями
- **Настольное приложение** — нативный клиент на Rust/gpui, подключающийся к запущенному демону локально, по HTTPS или через SSH-туннель; хранящиеся в связке ключей API-ключи с ограниченной областью действия, закрепление сертификатов, потоковый нативный markdown, подтверждения с системными уведомлениями
- **Память и воспоминания** — рабочие пространства памяти для каждого агента, долговременная память на основе эмбеддингов, гибридный поиск (векторный + полнотекстовый), сохранение сессий с автосжатием, воспоминания между сессиями, совместимый с Cursor контекст проекта, сканирование безопасности контекстных файлов
- **Управляемые файлы** — аутентифицированное вложенное управление файлами в настройках, с объявляемым агентом путём хоста и независимыми монтированиями только для чтения по умолчанию для песочниц Docker, Podman и Apple Container
- **Более безопасное редактирование агентом** — автоматические контрольные точки перед изменениями встроенных навыков и памяти, инструменты восстановления, ветвление сессий
- **Расширяемость** — серверы MCP (stdio + HTTP/SSE), система навыков, 15 событий жизненного цикла хуков с предохранителем, защита от деструктивных команд
- **Agent Client Protocol** — управляет внешними ACP-агентами (`codex-acp`, `claude-agent-acp`, Cursor) и предоставляет Moltis ACP-клиентам через stdio с помощью `moltis acp`
- **Первый запуск** — открывает онбординг в браузере с предзаполненным кодом настройки, обслуживает `http://localhost` без сертификата, однократно предлагает доверять локальному CA с ограничением по имени для HTTPS в локальной сети и закрепляет URL веб-интерфейса под логами терминала (с подсказкой `ssh -L` при подключении по SSH)
- **Безопасность** — хранилище с шифрованием при хранении (XChaCha20-Poly1305 + Argon2id), аутентификация по паролю + passkey + API-ключу, изоляция песочницы, защита от SSRF/CSWSH
- **Эксплуатация** — планирование через Cron, надёжный локальный CalDAV, Gmail, почта Himalaya и переиспользуемые наборы сообщений Slack/Discord/Matrix/Teams, специфичные для провайдеров инструменты агента только для чтения, быстрый полнотекстовый поиск, проекции JSONL/Markdown, инструментирование агента (Langfuse для трассировок LLM, OTLP для Grafana/Datadog), метрики Prometheus, облачное развёртывание (Fly.io, DigitalOcean), интеграция с Tailscale, управляемые ключи развёртывания SSH, привязанные к хосту удалённые цели, живой инвентарь инструментов в настройках и потоки диагностики удалённого выполнения через CLI/веб
## Как это работает
Moltis — это **локальный постоянный сервер агента** — единый бинарник на Rust,
который находится между вами и несколькими провайдерами LLM, хранит постоянное
состояние сессий и может взаимодействовать с вами через разные каналы, не передавая
ваши данные в облачный ретранслятор.
```
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Web UI │ │ Telegram │ │ Discord │
└──────┬──────┘ └──────┬──────┘ └──────┬──────┘
│ │ │
└────────┬───────┴────────┬───────┘
│ WebSocket │
▼ ▼
┌─────────────────────────────────┐
│ Gateway Server │
│ (Axum · HTTP · WS · Auth) │
├─────────────────────────────────┤
│ Chat Service │
│ ┌───────────┐ ┌─────────────┐ │
│ │ Agent │ │ Tool │ │
│ │ Runner │◄┤ Registry │ │
│ └─────┬─────┘ └─────────────┘ │
│ │ │
│ ┌─────▼─────────────────────┐ │
│ │ Provider Registry │ │
│ │ Multiple providers │ │
│ │ (Codex · Copilot · Local)│ │
│ └───────────────────────────┘ │
├─────────────────────────────────┤
│ Sessions │ Memory │ Hooks │
│ (JSONL) │ (SQLite)│ (events) │
└─────────────────────────────────┘
│
┌───────▼───────┐
│ Sandbox │
│ Docker/Apple │
│ Container │
└───────────────┘
```
Подробности о запуске шлюза, потоке сообщений, сессиях и памяти см. в разделе [Quickstart](https://docs.moltis.org/quickstart.html).
## Начало работы
### Сборка и запуск
Требуются [just](https://github.com/casey/just) (средство запуска команд) и Node.js (для Tailwind CSS).
```bash
git clone https://github.com/moltis-org/moltis.git
cd moltis
just build-css # Build Tailwind CSS for the web UI
just build-release # Build in release mode
cargo run --release --bin moltis
```
Для полной сборки релиза, включая инструменты песочницы WASM:
```bash
just build-release-with-wasm # Builds WASM artifacts + release binary
cargo run --release --bin moltis
```
Откройте `https://moltis.localhost:3000`. При первом запуске в терминал выводится код настройки — введите его в веб-интерфейсе, чтобы задать пароль или зарегистрировать passkey.
Необязательные флаги: `--config-dir /path/to/config --data-dir /path/to/data`
### Docker
```bash
# Docker / OrbStack
docker run -d \
--name moltis \
-p 13131:13131 \
-p 13132:13132 \
-p 1455:1455 \
-v moltis-config:/home/moltis/.config/moltis \
-v moltis-data:/home/moltis/.moltis \
-v /var/run/docker.sock:/var/run/docker.sock \
ghcr.io/moltis-org/moltis:latest
```
Откройте `https://localhost:13131` и завершите настройку. Для неинтерактивных развёртываний Docker задайте `MOLTIS_PASSWORD`, `MOLTIS_PROVIDER` и `MOLTIS_API_KEY` перед первым запуском, чтобы пропустить мастер настройки. См. [документацию Docker](https://docs.moltis.org/docker.html) для получения сведений о Podman, OrbStack, доверии TLS и сохранении данных.
### Развёртывание в облаке
| Провайдер | Развёртывание |
|----------|--------|
| DigitalOcean | [](https://cloud.digitalocean.com/apps/new?repo=https://github.com/moltis-org/moltis/tree/main) |
**Fly.io** (CLI):
```bash
fly launch --image ghcr.io/moltis-org/moltis:latest
fly secrets set MOLTIS_PASSWORD="your-password"
```
Все облачные конфигурации используют `--no-tls`, поскольку провайдер выполняет терминацию TLS.
Подробности см. в [документации по облачному развёртыванию](https://docs.moltis.org/cloud-deploy.html).
## Лицензия
MIT