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. About 5 minutes. - How It Works: the gateway, workspace Role prompts, LLM/tool execution, sessions and pairing.
- Channels: Terminal, Telegram, Email, Slack, Discord, WhatsApp. Add with
sona channel add. - Machine-readable mode (
--json): the envelope contract for scripts and parent agents.
Related
- Install: the landing page and 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 and the streaming are all tnsai-core doing its job. Sona's contribution is deciding which agent should hear an inbound message, keeping a session for each workspace and (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, with no scraping of human text and no fragile regex.