Sona
Sona is a self-hosted personal AI assistant. Install it, talk in the terminal, add messaging channels when you want them. Your data stays under ~/.sona/.
This section walks you from a fresh shell to a conversation, then explains the pieces underneath.
Pages
- Quickstart — Install,
sona init,sona chat. Telegram is optional. ≈ 5 minutes. - How It Works — Gateway, workspaces, sessions, pairing.
- Channels — Terminal, Telegram, Email, Slack, Discord, WhatsApp. Add with
sona channel add. - Machine-readable mode (
--json) — Envelope contract for scripts and parent agents.
Related
- Install — landing + the three commands.
- TnsAI Quickstart — build an agent inside your own code (not as a daemon).
- TnsAI channels — the adapter SPI, if you are writing one.
How Sona Works
Sona is mostly routing. The LLM, the tool calls, the streaming — all of that is tnsai-core doing its job. Sona's contribution is deciding which agent should hear an inbound message, keeping a session for each (channel, sender) pair, and enforcing a pairing policy so strangers can't burn your LLM budget.
Machine-readable mode
Every non-streaming sona command accepts --json and emits a single-line envelope. Streaming commands (chat) emit one envelope per chunk (ndJSON). This is the surface you wire orchestrators, CI pipelines, and parent agents against — no scraping of human text, no fragile regex.