A multi-process AI agent for teams and communities that thinks and executes concurrently, with native integrations for Discord, Slack, Telegram, and more.
Overview#
Spacebot is a multi-process AI agent developed by the Spacedrive team, built with Rust (74.7%) + TypeScript (21.7%), currently at version v0.1.15. Licensed under FSL-1.1-ALv2 (transitions to Apache 2.0 after two years).
Five-Process Architecture#
The project splits the traditional AI agent into five specialized processes:
- Channel: User-facing conversation ambassador, one per conversation, has personality/identity, never blocked
- Branch: Context branch thinking, clones Channel's full context, returns conclusions
- Worker: Task execution, no context, no personality, focused on execution
- Compactor: Context compression monitor, programmatic monitoring, triggers background compression at 80%
- Cortex: Global memory coordination, the only cross-process LLM process, generates memory summaries
Multi-Platform Messaging Support#
- Discord (Serenity): Full support for embeds, buttons, threads, reactions, typing indicators
- Slack (slack-morphism): Socket Mode, Block Kit, slash commands
- Telegram (teloxide): Media attachments, group/DM support
- Twitch (twitch-irc): Chat integration
- Webchat: Embeddable portal, SSE streaming
Message aggregation batches rapid messages into single LLM turns, avoiding spam responses.
Structured Memory System#
- 8 memory types: Fact / Preference / Decision / Identity / Event / Observation / Goal / Todo
- Graph edges: RelatedTo / Updates / Contradicts / CausedBy / PartOf
- Hybrid retrieval: Vector similarity + full-text search (Reciprocal Rank Fusion)
- Storage: SQLite (metadata + graph edges) + LanceDB (vector embeddings)
Intelligent Model Routing#
- Process-level defaults: Channel uses best conversation model, Worker uses fast cheap model
- Task-level overrides: coding tasks upgrade to stronger model
- Prompt complexity scoring: Lightweight keyword scoring, simple requests route to cheap model
- Fallback chain: 429/502 auto-switches to next model
Extension Capabilities#
- MCP Integration: Supports both stdio and HTTP transports
- Cron Scheduling: Natural language scheduling, clock-aligned intervals, circuit breaker protection
- Skills System: Compatible with skills.sh registry
- OpenCode Worker: Can launch full coding agent as persistent subprocess
Deployment#
Prerequisites: Rust 1.85+ (rustup), LLM API Key (Anthropic / OpenAI / OpenRouter etc.)
Build from source:
git clone https://github.com/spacedriveapp/spacebot
cd spacebot
cargo build --release
Docker deployment:
docker run -d --name spacebot -v spacebot-data:/data -p 19898:19898 ghcr.io/spacedriveapp/spacebot:latest
CLI Commands#
spacebot # Start background daemon
spacebot start --foreground # Run in foreground
spacebot stop # Graceful shutdown
spacebot restart # Restart
spacebot status # Show pid and uptime
spacebot auth login # Anthropic OAuth authentication
Core Tech Stack#
| Layer | Technology |
|---|---|
| Language | Rust (edition 2024) |
| Async Runtime | Tokio |
| LLM Framework | Rig v0.30 |
| Relational Data | SQLite (sqlx) |
| Vector + FTS | LanceDB (HNSW + Tantivy) |
| KV Storage | redb |
| Embedding Generation | FastEmbed |
| Encryption | AES-256-GCM |
| Browser Automation | Chromiumoxide (CDP) |
| CLI | Clap |
Design Philosophy#
- Single binary: No runtime dependencies, no GC pauses
- Embedded database: All data stored in local directory
- Rust strong typing: Compile-time guarantees for multi-process shared mutable state correctness