<!-- Markdown mirror. Canonical: https://empryo.com/docs/tools/hearth -->

# Hearth - Remote control [deprecated]

> Deprecated. Hearth controlled Empryo from Telegram or Discord. It is turned off, so its commands only print a notice and start nothing.

> **Warning:**
> Hearth is deprecated and turned off. `/hearth`, `empryo hearth` and `empryo remote` only print a notice and start nothing. The rest of this page describes how Hearth worked before it was turned off.

Hearth let you control the Empryo running on your computer from a Telegram or Discord chat. You sent it a task from your phone, got approval requests as buttons, and tapped to approve or deny.

Your code stayed on your machine. Hearth only made outgoing connections to the messaging service, and your computer had to be on and running Hearth.

## Set it up in 4 steps

**1. Start Hearth**

```bash
empryo hearth start
```
Leave this running. It listens only on your machine, through a local socket that only your user can open.

**2. Create a bot and save its token**

Create a bot with [@BotFather](https://t.me/BotFather) on Telegram, or in the [Discord Developer Portal](https://discord.com/developers/applications). Then save its token:

```bash
# Piping the token keeps it out of your shell history and process list
cat token.txt | empryo hearth login telegram:<botId>
```
The token is stored in your operating system's keychain, not in a config file.

**3. Pair your chat**

```bash
empryo hearth pair telegram:<botId> --issue
# prints a 6-character code
```
Send your bot a direct message with the code:
```
/pair ABC123
```

**4. Start chatting**

Any message you send the bot now goes to Empryo as a prompt. When a tool call needs approval, you get Approve and Deny buttons.

## Commands in the chat

Plain text is sent as a prompt to the active tab. Commands start with `/`. The most useful ones:

| Command | What it does |
|---------|--------------|
| `/pair <code>` | Pair this chat using a code |
| `/unpair` | Remove this chat's pairing |
| `/new [label]` | Open a new tab |
| `/tabs` | List tabs |
| `/tab <n> [text]` | Switch tab; any extra words are sent as a prompt |
| `/rename <name>` | Rename the active tab. The name is kept across restarts |
| `/close [n]` | Close a tab (default: the active one) |
| `/stop` | Stop the current turn |
| `/status` | Quick summary of the tab |
| `/diff` | Files the agent edited |
| `/undo [n]` | Undo recent changes |
| `/model [name]` | Show or change the model |
| `/cost` | Token usage |
| `/help` | Show every command |

`/help` in the chat lists the full set, including sessions, checkpoints, background agents, MCP servers and notification filters.

## Command-line reference

```bash
empryo hearth start [--detach]                    # run Hearth (--detach: in the background)
empryo hearth stop                                # stop it
empryo hearth status                              # health and paired chats
empryo hearth login <surface>:<id> [token]        # save a bot token
empryo hearth pair <surface>:<id> --issue         # create a pairing code
empryo hearth pair <surface>:<id> <code>          # redeem a code from the command line
empryo hearth unpair <surface>:<id> <chatId>      # remove a chat's access
empryo hearth doctor                              # check your setup
empryo hearth logs [--follow]                     # show the log
```

Inside Empryo, `/hearth` opens a settings panel with the same controls. `/hearth bind` connects the current tab to a paired chat.

## Keep it running

To keep Hearth available after you log out, install it as a background service from the `/hearth` settings panel. Empryo uses launchd on macOS, systemd on Linux and a scheduled task on Windows.

Or run it in the background yourself:

```bash
empryo hearth start --detach
empryo hearth stop
```

`empryo hearth status` shows whether it's running at any time.

## Supported chat apps

| App | Who can send commands |
|---------|----------|
| **Telegram** | Only the Telegram user IDs you paired |
| **Discord** | Only the Discord user IDs you paired |

Messages from anyone else are ignored without a reply, so strangers can't tell the bot is active.

## Security

**Paired users only**

Only chats you paired can send commands. Everyone else is ignored.

**Approval buttons**

Risky tool calls, such as edits, shell commands and git operations, wait for you to tap Approve.

**Secrets hidden from logs**

Bot tokens, API keys, access tokens and similar secrets are removed from Hearth's logs.

**Sensitive files blocked**

Files such as `.env`, `*.pem`, `*.key`, SSH keys and `~/.aws/credentials` can't be read.

**Tokens in the keychain**

Bot tokens are stored in your OS keychain, never in a plain config file.

## Config

Hearth's settings live in `~/.empryo/hearth.json`, and a project can add its own `.empryo/hearth.json`. Most people never edit it; the commands above manage it. Edit it directly for advanced setups, such as per-chat settings or extra file patterns to block (`readDenylistExtra`).

## What Hearth doesn't do

- **No cloud service.** Hearth connects your chat to your own computer. If your computer is off, Hearth is off.
- **No WhatsApp.** Its terms of service don't allow this kind of bot.
- **One writer per tab.** Several chats can read the same tab, but only one can send it work.
