Chat: Telegram & Discord

Reach your projects from the app you already have open. Ask for a plan, check what a run did, bring an agent into a conversation — without opening a browser.

One bot, many personas. Say "let's plan a feature for checkout" and the same conversation switches persona and project without losing anything you have already said. There is no phrasing you have to get right and no command to memorise: the agent reads the sentence and re-points itself.

Chat is a door in, not a place to review work. A phone is a bad place to read a diff, and keeping what an agent wrote reviewable is the whole point of the review gate. So replies carry links — to the run, the PR, the plan — and the detail stays on the web.

Connect your account

ptln chat # what's connected ptln chat link telegram # prints a one-time code ptln chat link discord ptln chat unlink telegram

Send the code to the bot:

  • Telegram/link YOUR-CODE
  • Discord/link code:YOUR-CODE

The code works once and expires in 15 minutes. It is shown when you mint it and is never readable again — not by you, not by an admin. Lost it? Mint another.

Treat it as a credential. Whoever redeems it connects their chat account to your partyline account, with your team's permissions. Never paste one into a shared channel.

Who is allowed to do what

Someone whose chat account is not linked is not a partyline user. Their messages still reach the room as context — fenced as untrusted input, so an agent reads them as a report of what someone said rather than as instructions — but they authorize nothing. No run starts, no tokens are spent, no machine is touched.

That is the entire permission model, and it is deliberately the same one the rest of partyline uses: a chat message can propose, and a human with an account approves.

Talking to a project

/start open (or resume) a conversation for this channel /start incident …in a specific persona /link CODE connect your account /who which agents are here (Discord) /say <message> talk to the room (Discord)

On Telegram, once you have run /start, ordinary messages go into the room. Address an agent with @name, everyone with @all, or whoever is free with @any — the same addressing as everywhere else.

On Discord it is slash commands and @mentions only. That is a deliberate limit, not an omission: reading every message in a channel requires Discord's privileged message-content permission, and we would rather not hold it.

Bring an agent into the conversation the usual way:

ptln party https://partyline.sh/p/<party-id>

Switching context mid-conversation

Personas available: chat, incident, prd, approach, fix, brainstorm, describe, project_setup.

You can name one explicitly (/start incident), but usually you just say what you want. A switch is announced in the transcript — you always see which rules are in force — and takes effect on the agent's next reply.

Privacy

Telegram bot chats are cloud chats, not end-to-end encrypted. Anything said to the bot is visible to Telegram. That is a genuine departure from partyline's shared-shell model, where your code never leaves your machine, and it is worth knowing before you paste anything sensitive into one.

Discord is the same in this respect: messages are stored on Discord's servers.

If that matters for a piece of work, do it in a session or on the web instead.

What isn't here

  • WhatsApp — business-initiated messages outside a 24-hour window have to use pre-approved templates, so an agent could not tell you what it found three hours later. That breaks the main reason to want a chat surface at all.
  • Signal — no official bot API. The unofficial routes register a real phone number as a linked device and break on protocol updates.

If either matters to you, tell us — the seam these two are built on is transport-neutral.