Docs
Persona mode
Register your own Telegram bot. Each remote user becomes a stable ghost Delta Chat account that talks to you as themselves.
Why it exists
Personal mode is you, the portal bot, and one Delta Chat chat. That is enough for “my stickers, my chat.”
Persona mode is for someone who already has (or wants) a Telegram bot of their own. Friends and groups write to your bot. On Delta Chat you should see those people, not a labeled dump from a shared bridge account.
How ghosts work
For each person who messages your bot, Portal creates a real Delta Chat account (name and photo from Telegram). The next time, it is the same account.
That ghost delivers the person’s message to you as a normal 1:1 — no prefix, no “via Portal.” When you reply, the program sends the reply out through your BotFather bot.
Ghost tables are separate from personal-mode pairs. If Alice pairs with the public portal bot, that does not reuse Alice’s persona ghost.
Owner setup
- Set
mode: personaormode: both, andPERSONA_ACCOUNT_QR(adcaccount:/dclogin:URI used to provision ghosts). - Send
/pairon the portal bot and finish on Delta Chat. This stores your Delta Chat identity so ghosts can write to you without another invite. - Create a bot with BotFather. Copy the token. Never paste it into issues or chats.
- In a private chat with the portal bot:
/pair-bot <TOKEN> [https://t.me/YourBot]
Limits: persona.max_ghosts, persona.max_bots. List with /bots. Stop with /unpair-bot [id|@user]. After unpair, run /pair-bot again to start the same bot.
Groups
Off by default. Set persona.allow_groups: true, then:
- Add the persona bot to the Telegram group.
- BotFather → your bot → Bot Settings → Group Privacy → Turn off. Otherwise Telegram only delivers mentions and commands.
- Posts become a Delta Chat group named
TG: …. Each speaker is their ghost; you are a member. - Your replies in that DC group go to Telegram as the bot, not as the original users.
Trust
The instance that stores the BotFather token is your Telegram bot. Ghost account keys live under ./data. If you send /pair-bot to someone else’s public Portal, you are handing them the bot and every conversation it will carry. Prefer self-host. See trust.
Operator notes in the repo: docs/persona.md · persona-design.md.