> ## Documentation Index
> Fetch the complete documentation index at: https://cofounder.appeeky.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Telegram

> Receive briefings on Telegram and chat with the agent from your phone.

Telegram is the easiest way to keep your AI co-founder in your pocket. Briefings land in your DM with the bot (or a group you've added it to) and you can ask it anything in plain text — same brain as the dashboard, same memory, same persona.

Unlike Slack, Telegram has no OAuth — pairing happens in 10 seconds with a one-time deep link.

***

## Setup

1. In the dashboard, open **Co-founder → Integrations → Telegram** and click **Connect Telegram**.
2. You'll get a `t.me/<bot>?start=<code>` link. Open it on your phone — Telegram launches and shows a **Start** button.
3. Tap **Start**. The bot replies with `✅ Connected to <your email>`. That's it.

The link is single-use and expires in 30 minutes. You can re-pair (or pair from a different chat) any time by clicking **Connect Telegram** again.

To pair a **group** instead of a DM: add the bot to the group first, then `/start <code>` from inside the group. The agent will use that group as the briefing destination.

***

## Daily briefing

Once paired, your daily briefing is delivered to that chat as a Markdown message right after the run completes. Same content as Slack and email — headline, top highlights, prioritized actions.

To stop briefings without disconnecting: turn off Telegram in `Preferences → Enabled integrations`. To unpair entirely: send `/disconnect` from the chat.

***

## Conversational chat

Just send the bot a message. It picks up your most-recent live app's context and answers using your latest briefing plus the full memory.

```
You:  How's the Mexico funnel doing this week?
Bot:  Mexico is still 25% of downloads with no localization — same gap I
      flagged Monday. Conversion from MX impressions is 0.8% vs 2.1% for
      US. Recommendation hasn't moved.

You:  what did we try last time we changed the screenshots?
Bot:  Two episodes — Apr 14 (subtitle + screenshot 1 swap) lifted downloads
      ~31% over 14d. Mar 2 (full reorder) had no measurable impact.
```

The agent has the same tool set in chat as in the briefing pipeline — keyword tracking, competitor lookups, ASO, ASC metrics, and **semantic memory search** so it can recall what you've tried even when the wording is different.

***

## Approve actions with one tap

When the agent proposes a write action (metadata update, review reply, version create…), you get a per-action card in the chat with inline **✅ Approve** / **❌ Reject** buttons:

```
🔔 Action needs your approval

Update subtitle (en-US)
Rewrite to lead with "screenshot stitching" — current subtitle
doesn't match any searched term.

[ ✅ Approve ]  [ ❌ Reject ]
```

* Tapping Approve executes the action immediately (same path as the dashboard's Approve button) and replies with the result.
* Buttons disappear after a decision — no double-approves from an old message.
* Button presses are cryptographically signed, so a forged Telegram update can't approve someone else's action.

You can also approve/reject conversationally ("approve the subtitle change") — the chat agent has the same action tools.

***

## Slash commands

| Command                    | What it does                                                     |
| -------------------------- | ---------------------------------------------------------------- |
| `/help`                    | Show available commands                                          |
| `/memory <query>`          | Semantic search across your facts and past episodes for this app |
| `/remember <key>: <value>` | Save a high-confidence preference fact (auto-snake\_cased key)   |
| `/pending`                 | List facts waiting for your approval                             |
| `/reflect`                 | Distill recent measured outcomes into stable facts right now     |
| `/disconnect`              | Unpair this chat                                                 |
| `/start`                   | First-time pairing only                                          |

Examples:

```
/memory tr localization
→ 📌 Facts:
  💜 brand_voice: minimal, premium, no exclamation marks
  • tr_localization_works: TR localization on similar apps consistently lifted non-US downloads ~22% in 14d.
  🕰 Past actions:
  • Localized metadata to TR → +28% downloads from TR in 14d

/remember brand voice: warm, slightly nerdy, never corporate
→ ✅ Saved as `brand_voice`. I'll remember this on every future run.

/reflect
→ 🧠 Reflection done.
  Episodes read: 12
  New facts: 3
  Refined: 1
```

`/remember` is the fastest way to teach the agent something on the go — you'll typically use it the moment you make a decision ("OK, we've decided we won't localize to JP") so the agent stops re-proposing it.

***

## Privacy & security

* The bot only stores: your `chat_id`, the chat type (private/group), the username that paired it, and the time of pairing.
* Webhook delivery is verified with a `secret_token` shared header — Telegram replays are deduped in-process by `update_id`.
* Messages from other bots in a group are ignored.
* The agent never echoes credentials or API keys, even if you paste them.
* `/disconnect` instantly stops all delivery and disables tool execution from that chat. Re-pair any time.

***

## API

Programmatic equivalents (for scripted setup):

* `POST /v1/cofounder/oauth/telegram/start` — mints a fresh link code, returns the deep-link URL.
* `GET /v1/cofounder/integrations/telegram` — current pairing status.
* `DELETE /v1/cofounder/integrations/telegram` — unpair from the dashboard side.
