Start in 4 steps
1
Start the daemon
0600 permissions, local only).2
Create a bot and store the token
Create a bot on @BotFather (Telegram) or the Discord Developer Portal.
3
Pair your chat
4
Talk
Any message you send the bot now goes to your forge. Tool calls that need approval arrive as inline buttons — tap Approve or Deny.
Commands (in the chat)
Plain text becomes a prompt to the active tab.
CLI reference
/hearth opens the settings panel with the same controls.
Always-on (service)
Run Hearth as a background service so your forge is reachable even after logout:soulforge hearth status.
Surfaces
Unknown senders are silently dropped — their existence is not revealed.
Security
Hearth layers several protections on top of SoulForge’s existing hook system:Identity allowlist
Only paired identities can send. Unknown senders are dropped.
Approval prompts
Destructive tool calls (edit, shell, git) arrive as tap-to-approve buttons.
Secret redaction
Bot tokens, API keys, PATs, AWS keys, bearer tokens — auto-redacted from all logs.
Read denylist
.env, *.pem, ~/.ssh/**, ~/.aws/credentials — blocked before every read.Sandboxed caps
Optional: route destructive ops through Docker with
caps: "sandboxed".Bot tokens in keychain
Tokens live in macOS Keychain / Linux secret-tool. Never in plain config.
Config
Default config lives at~/.soulforge/hearth.json. Most users never edit it — the CLI manages everything. For advanced setups (multiple chats, read denylists, capability caps), see the config schema.
Non-goals
- No cloud. Hearth is “reach your host” — not a hosted service. Your machine must be running.
- No WhatsApp. Terms of service forbid it.
- No concurrent writers. Reads ok across chats; writes are single-owner per tab.

