Self-hosted AI assistant that runs as a single binary. Multi-provider, voice-enabled, with remote satellite clients.
- 🧠 6 LLM Providers — Claude, OpenAI, Groq, Gemini, Ollama, OpenRouter
- 🎙️ Voice System — STT (Groq Whisper, OpenAI, whisper.cpp) + TTS (OpenAI, ElevenLabs, Piper)
- 🛰️ Satellite System — JARVIS-style remote clients with audio, shell exec, system management
- 🔌 Hot-Reload Integrations — Home Assistant, Jellyfin, qBittorrent (add your own!)
- 💾 Flexible Memory — BadgerDB (default) or PostgreSQL with pgvector
- 🔍 Semantic Search — Embedding-based long-term memory (OpenAI, Ollama)
- 🌐 Web Admin Panel — Dark theme dashboard with config editor
- 📱 Channels — Telegram, WhatsApp
- 🔐 Security-First — Shell blocklist, token auth, basic auth, TLS support
- 📦 Single Binary — No runtime dependencies, cross-platform (Linux, macOS, Windows)
# One-liner install
curl -sSL https://raw.githubusercontent.com/brooqs/steward/main/install.sh | bash
# Configure
sudo cp /etc/steward/core.yml.example /etc/steward/core.yml
sudo nano /etc/steward/core.yml # set provider + api_key
# Start
sudo systemctl enable --now steward
# Logs
journalctl -u steward -fgit clone https://github.com/brooqs/steward.git
cd steward
go build -o steward ./cmd/steward
go build -o steward-satellite ./cmd/satellite
./steward --config config/core.yml --channel telegramcp config/core.yml.example config/core.yml
docker compose up -dFull documentation available in the Wiki.
| Page | Description |
|---|---|
| Installation | Binary, deb/rpm, Docker, install script |
| Configuration | core.yml reference, environment variables |
| Providers | LLM provider setup guide |
| Voice | STT/TTS setup |
| Satellite | JARVIS-style remote client |
| Integrations | Built-in + custom development |
| Admin Panel | Web UI for config & monitoring |
| Security | Hardening guide |
| Architecture | System design & module graph |
steward/
├── cmd/
│ ├── steward/ # Main server binary
│ └── satellite/ # Remote client binary
├── internal/
│ ├── admin/ # Web admin panel (embedded)
│ ├── channel/ # Telegram, WhatsApp
│ ├── config/ # YAML + env config loader
│ ├── core/ # Provider-agnostic agent loop
│ ├── embedding/ # Vector embeddings (OpenAI, Ollama)
│ ├── integration/ # Hot-reload integration system
│ ├── memory/ # BadgerDB, PostgreSQL, semantic search
│ ├── provider/ # LLM adapters (6 providers)
│ ├── satellite/ # WebSocket server + management tools
│ ├── tools/ # Tool registry + shell tool
│ └── voice/ # STT + TTS engine
├── config/ # Example configurations
├── docs/ # Wiki documentation
└── init/ # systemd service
| Feature | Default | Notes |
|---|---|---|
| Shell tool | Disabled | Command blocklist + timeout |
| Telegram | No whitelist | Configure allowed_ids |
| Satellite | Disabled | Token auth + TLS |
| Admin panel | Disabled | Basic auth required |
See CONTRIBUTING.md for development setup and guidelines.
Built with ❤️ by brooqs
Architecture design, codebase implementation, and documentation proudly crafted with Claude Opus 4 — Anthropic's most capable AI model.
"From zero to a production-ready AI assistant in a single session."