moltis

Moltis is a secure, persistent personal agent server built in Rust, designed for sandboxed execution on your hardware.

<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 — A secure persistent personal agent server in Rust

One binary — sandboxed, secure, yours.

CI codecov CodSpeed License: MIT Rust Discord

InstallationComparisonArchitectureSecurityFeaturesHow It WorksContributing

</div>

Moltis recently hit the front page of Hacker News. Please open an issue for any friction at all. I'm focused on making Moltis excellent.

Secure by design — Your keys never leave your machine. Every command runs in a sandboxed container, never on your host.

Your hardware — Runs on a Mac Mini, a Raspberry Pi, or any server you own. One Rust binary, no Node.js, no npm, no runtime.

Full-featured — Voice, memory, cross-session recall, automatic edit checkpoints, scheduling, Telegram, Discord, browser automation, MCP servers, SSH or node-backed remote exec, managed deploy keys with host pinning in the web UI, a live Settings → Tools inventory, Cursor-compatible project context, and context-file threat scanning — all built-in. No plugin marketplace to get supply-chain attacked through.

Auditable — The agent loop + provider model fits in ~5K lines. The core (excluding the optional web UI) is ~196K lines across 46 modular crates you can audit independently, with 3,100+ tests and zero unsafe code*.

Installation

# 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

Comparison

OpenClawPicoClawNanoClawZeroClawMoltis
LanguageTypeScriptGoTypeScriptRustRust
Agent loop~430K LoCSmall~500 LoC~3.4K LoC~5K LoC (runner.rs + model.rs)
Full codebase1,000+ tests~124K LoC (2,300+ tests)
RuntimeNode.js + npmSingle binaryNode.jsSingle binary (3.4 MB)Single binary (44 MB)
SandboxApp-levelDockerDockerDocker + Apple Container
Memory safetyGCGCGCOwnershipOwnership, zero unsafe*
AuthBasicAPI keysNoneToken + OAuthPassword + Passkey + API keys + Vault
Voice I/OPluginBuilt-in (15+ providers)
MCPYesYes (stdio + HTTP/SSE)
HooksYes (limited)15 event types
SkillsYes (store)YesYesYesYes (+ OpenClaw Store)
Memory/RAGPluginPer-groupSQLite + FTSSQLite + FTS + vector

* unsafe is denied workspace-wide. The only exceptions are opt-in FFI wrappers behind the local-embeddings feature flag, not part of the core.

Full comparison with benchmarks →

Architecture — Crate Map

Core (always compiled):

CrateLoCRole
moltis (cli)4.0KEntry point, CLI commands
moltis-agents9.6KAgent loop, streaming, prompt assembly
moltis-providers17.6KLLM provider implementations
moltis-gateway36.1KHTTP/WS server, RPC, auth
moltis-chat11.5KChat engine, agent orchestration
moltis-tools21.9KTool execution, sandbox
moltis-config7.0KConfiguration, validation
moltis-sessions3.8KSession persistence
moltis-plugins1.9KHook dispatch, plugin formats
moltis-service-traits1.3KShared service interfaces
moltis-common1.1KShared utilities
moltis-protocol0.8KWire protocol types

Optional (feature-gated or additive):

CategoryCratesCombined LoC
Web UImoltis-web4.5K
GraphQLmoltis-graphql4.8K
Voicemoltis-voice6.0K
Memorymoltis-memory, moltis-qmd5.9K
Channelsmoltis-telegram, moltis-whatsapp, moltis-discord, moltis-msteams, moltis-channels14.9K
Browsermoltis-browser5.1K
Schedulingmoltis-cron, moltis-caldav5.2K
Extensibilitymoltis-mcp, moltis-skills, moltis-wasm-tools9.1K
Auth & Securitymoltis-auth, moltis-oauth, moltis-onboarding, moltis-vault6.6K
Networkingmoltis-network-filter, moltis-tls, moltis-tailscale3.5K
Provider setupmoltis-provider-setup4.3K
Importmoltis-openclaw-import7.6K
Apple nativemoltis-swift-bridge2.1K
Metricsmoltis-metrics1.7K
Othermoltis-projects, moltis-media, moltis-routing, moltis-canvas, moltis-auto-reply, moltis-schema-export, moltis-benchmarks2.5K

Use --no-default-features --features lightweight for constrained devices (Raspberry Pi, etc.).

Security

  • Zero unsafe code* — denied workspace-wide; only opt-in FFI behind local-embeddings flag
  • Sandboxed execution — Docker + Apple Container, per-session isolation
  • Secret handlingsecrecy::Secret, zeroed on drop, redacted from tool output
  • Authentication — password + passkey (WebAuthn), rate-limited, per-IP throttle
  • SSRF protection — DNS-resolved, blocks loopback/private/link-local
  • Origin validation — rejects cross-origin WebSocket upgrades
  • Hook gatingBeforeToolCall hooks can inspect/block any tool invocation
  • Supply chain integrityartifact attestations, Sigstore keyless signing, GPG signing (YubiKey), SHA-256/SHA-512 checksums

See Security Architecture for details. Verify releases with gh attestation verify <artifact> -R moltis-org/moltis or see Release Verification.

Features

  • AI Gateway — Multi-provider LLM support (OpenAI Codex, GitHub Copilot, Local), streaming responses, agent loop with sub-agent delegation, parallel tool execution
  • Communication — Web UI, Telegram, Microsoft Teams, Discord, API access, voice I/O (8 TTS + 7 STT providers), mobile PWA with push notifications
  • Memory & Recall — Per-agent memory workspaces, embeddings-powered long-term memory, hybrid vector + full-text search, session persistence with auto-compaction, cross-session recall, Cursor-compatible project context, context-file safety scanning
  • Safer Agent Editing — Automatic checkpoints before built-in skill and memory mutations, restore tooling, session branching
  • Extensibility — MCP servers (stdio + HTTP/SSE), skill system, 15 lifecycle hook events with circuit breaker, destructive command guard
  • Security — Encryption-at-rest vault (XChaCha20-Poly1305 + Argon2id), password + passkey + API key auth, sandbox isolation, SSRF/CSWSH protection
  • Operations — Cron scheduling, OpenTelemetry tracing, Prometheus metrics, cloud deploy (Fly.io, DigitalOcean), Tailscale integration, managed SSH deploy keys, host-pinned remote targets, live tool inventory in Settings, and CLI/web remote-exec doctor flows

How It Works

Moltis is a local-first persistent agent server — a single Rust binary that sits between you and multiple LLM providers, keeps durable session state, and can meet you across channels without handing your data to a cloud relay.

┌─────────────┐  ┌─────────────┐  ┌─────────────┐
│   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    │
               └───────────────┘

See Quickstart for gateway startup, message flow, sessions, and memory details.

Getting Started

Build & Run

Requires just (command runner) and Node.js (for Tailwind CSS).

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

For a full release build including WASM sandbox tools:

just build-release-with-wasm    # Builds WASM artifacts + release binary
cargo run --release --bin moltis

Open https://moltis.localhost:3000. On first run, a setup code is printed to the terminal — enter it in the web UI to set your password or register a passkey.

Optional flags: --config-dir /path/to/config --data-dir /path/to/data

Docker

# 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

Open https://localhost:13131 and complete the setup. For unattended Docker deployments, set MOLTIS_PASSWORD, MOLTIS_PROVIDER, and MOLTIS_API_KEY before first boot to skip the setup wizard. See Docker docs for Podman, OrbStack, TLS trust, and persistence details.

Cloud Deployment

ProviderDeploy
DigitalOceanDeploy to DO

Fly.io (CLI):

fly launch --image ghcr.io/moltis-org/moltis:latest
fly secrets set MOLTIS_PASSWORD="your-password"

All cloud configs use --no-tls because the provider handles TLS termination. See Cloud Deploy docs for details.

Star History

Star History Chart

License

MIT