Moltis - Self-Hosted Agent Server in Rust
Moltis is a secure, persistent personal agent server written in Rust. One binary, sandboxed execution, multi-provider LLMs, voice, memory, and built-in integrations for Telegram, Discord, Slack, Matrix, Nostr, Teams, and MCP tools.
TL;DR
TL;DR: Moltis is a self-hosted agent server written in Rust that runs as a single binary on your own hardware, with sandboxed tool execution, multi-provider LLM support, voice I/O, persistent memory, and deep integrations with Telegram, Discord, Slack, Matrix, Nostr, Teams, and MCP.
Source and Accuracy Notes
⚠️ This section is MANDATORY. All links must be verified from actual source, not guessed.
- Project page: moltis.org
- Source repository: github.com/moltis-org/moltis — README read 2026-08-21
- License: MIT — verified via GitHub API
license.spdx_id - GitHub stars: 2,832 (as of 2026-08-20) — verified via GitHub REST API
- Latest release: v0.9.9 — verified via
git ls-remote --tags - HN launch thread: news.ycombinator.com/item?id=46993587 — Show HN with 131 points (2026-02-12)
- Docs: docs.moltis.org
What Is Moltis?
Moltis is a local-first persistent agent server written in Rust. It sits between you and multiple LLM providers, maintains durable session state across conversations, and can reach you over messaging platforms without routing your data through a third-party cloud service.
From the README:
One binary — sandboxed, secure, yours.
The project is published under the MIT license and runs on a Mac Mini, a Raspberry Pi, or any server you own. No Node.js, no npm, no runtime to manage.
Setup Workflow
Step 1: Install
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
Step 2: Start and Configure
Open localhost:13131 in your browser. Paste your LLM provider API key and pick a model. OAuth providers like GitHub Copilot work with zero configuration.
Step 3: Connect a Channel
Moltis ships with built-in integrations for:
- Messaging: Telegram, Signal, Discord, Slack, Microsoft Teams, Matrix, Nostr (DMs + NIP-29 group chat including Block’s Buzz channels)
- Voice: 8 TTS + 7 STT providers, built-in
- Web: Web UI with command-palette agent prompts and Markdown copy/export, PWA with push notifications for mobile
Step 4: Enable MCP Tools
Moltis supports MCP servers over both stdio and HTTP/SSE. From the web UI Settings, you get a live tool inventory showing every available MCP tool as you connect servers.
Deeper Analysis
Architecture
Moltis is organized as a Rust workspace of 59 crates totaling approximately 270K lines of code (measured with tokei, excluding node_modules, generated build output, dist, and target).
Core runtime crates:
| Crate | Approx. LoC | Role |
|---|---|---|
| moltis-gateway | 37.4K | HTTP/WS server, RPC, auth, startup wiring |
| moltis-tools | 37.0K | Tool execution, sandboxing, WASM tools |
| moltis-providers | 18.9K | LLM provider implementations |
| moltis-agents | 14.5K | Agent loop, streaming, prompt assembly |
| moltis-chat | 14.2K | Chat engine, agent orchestration |
Feature crates cover channels (Telegram, WhatsApp, Signal, Discord, Slack, Matrix, Nostr, MS Teams), web/APIs, MCP, memory/RAG, voice, browser automation, auth/vault, scheduling, and more.
Security Model
- Sandboxed execution: Docker + Podman + Apple Container, per-session isolation
- Secret handling:
secrecy::Secret, zeroed on drop, redacted from tool output - Auth: Password + Passkey (WebAuthn), rate-limited, per-IP throttle
- SSRF protection: DNS-resolved, blocks loopback/private/link-local addresses
- Supply chain integrity: artifact attestations, Sigstore keyless signing, GPG signing (YubiKey), SHA-256/SHA-512 checksums
- Small unsafe surface: unsafe code isolated to Swift FFI, local model wrappers, and precompiled WASM boundaries
To verify a release:
gh attestation verify <artifact> -R moltis-org/moltis
Memory and Context
Moltis includes a hybrid memory system:
- SQLite + FTS for full-text search
- Vector memory for embeddings-powered long-term recall
- Cross-session recall — the agent remembers across restarts
- Cursor-compatible project context — attach a project folder and the agent understands your codebase
- Context-file safety scanning — automatically scans files before using them as context
Comparison with Similar Tools
| | OpenClaw | Hermes Agent | Moltis | |---|---|---|---| | Primary stack | TypeScript + Swift/Kotlin | Python + TypeScript | Rust | | Runtime | Node.js + npm/pnpm/bun | Python + uv/pip | Single Rust binary | | Local checkout* | ~1.1M app LoC | ~152K app LoC | ~270K Rust LoC | | Architecture | Gateway + channel + node ecosystem | CLI/gateway agent with learning loop | Persistent server with modular crates | | Sandbox/backends | App-level permissions | Local, Docker, SSH, Daytona, Singularity, Modal | Docker/Podman + Apple Container + WASM | | Voice I/O | Voice wake and talk modes | Voice memo transcription | Built-in STT + TTS providers | | Memory/RAG | Plugin-backed memory | Agent-curated memory, session search | SQLite + FTS + vector memory |
*LoC measured with tokei, excluding node_modules, generated build output, dist, and target.
Lightweight Mode
For constrained devices like a Raspberry Pi, use:
moltis --no-default-features --features lightweight
Practical Evaluation Checklist
- [ ] Installs via
curl | shone-liner on macOS or Linux - [ ] Starts with
moltis(no额外 runtime needed) - [ ] Web UI reachable at
localhost:13131 - [ ] Connects to an LLM provider (OpenAI, Anthropic, GitHub Copilot, or local model)
- [ ] MCP server can be connected via stdio or HTTP/SSE
- [ ] Messages persist across server restarts (SQLite session storage)
- [ ] Docker sandbox isolates tool execution
- [ ] Passkey (WebAuthn) enrollment works in the web UI
Security Notes
- API keys never leave your machine — all execution is local
- Tools run in Docker/Podman containers by default, not on the host filesystem
- Vault encryption uses XChaCha20-Poly1305 + Argon2id
- Hook system (
BeforeToolCall) can inspect or block any tool invocation before it runs - The Rust codebase’s unsafe code is isolated to FFI and WASM precompilation boundaries — not the core agent loop
FAQ
Q: Does Moltis require an API key for an LLM provider? A: Yes, you provide your own API key. Moltis supports OpenAI, Anthropic, GitHub Copilot, and local models (via Ollama or similar). Your key is stored locally and never transmitted to a third-party relay.
Q: How does Moltis differ from running a local LLM with Ollama? A: Ollama manages the model runtime. Moltis sits above the model, providing the agent loop (tool execution, memory, multi-turn sessions, sandboxing), a web UI, and integrations with messaging platforms. They are complementary — Moltis can use an Ollama-hosted model as its provider.
Q: Can Moltis run on a Raspberry Pi?
A: Yes. Use the lightweight feature flag (--no-default-features --features lightweight) for ARM builds. Docker on a Raspberry Pi 4 with 4GB RAM handles basic agent workloads.
Q: What messaging platforms are supported out of the box? A: Telegram, Signal, Discord, Slack, Microsoft Teams, Matrix, Nostr (DMs and NIP-29 group chats), and a Web UI with PWA and push notifications. All integrations are built-in, no plugin marketplace required.
Q: Is there an MCP server implementation?
A: Yes — Moltis itself can act as an MCP server (stdio + HTTP/SSE modes), and can also connect to external MCP servers as a client. The moltis-mcp and moltis-mcp-agent-bridge crates handle this.
Conclusion
Moltis fills a specific niche: the self-hosted agent server for developers who want full ownership of their agent’s state, tools, and messaging integrations without assembling a custom stack from separate projects. Its Rust codebase delivers a small attack surface, fast startup, and a modular crate architecture that lets you audit or swap individual components.
The ~270K lines across 59 crates sounds large until you notice the actual agent runner and model interface fit in roughly 7.5K lines — the rest is providers, channel integrations, and tooling. If you want a persistent agent that talks to you on Discord, Telegram, or Nostr, runs your MCP tools in a sandbox, and never calls home without your permission, Moltis is a credible single-binary solution.
Install it with curl -fsSL https://www.moltis.org/install.sh | sh, open localhost:13131, and you are running a personal agent server in under a minute.
Related Posts
ai-setup
Recall – Persistent Memory for Claude Code via MCP Hooks
Recall gives Claude Code a permanent memory store that survives session restarts and context compaction. Four hooks capture and restore context automatically — with cloud SaaS or self-hosted options.
2/28/2026
dev-tools
CodexPlusPlus Setup and Risk Guide
Evaluate CodexPlusPlus for Codex launcher enhancements, API relay mode, provider sync, local state handling, update flow, and rollback planning.
5/28/2026
dev-tools
RMUX Terminal Multiplexer Guide
Set up RMUX for detachable agent terminals, tmux-like sessions, Rust SDK control, diagnostics, migration checks, and terminal automation.
5/28/2026