Documentation
1. Connect
- In Claude (claude.ai or the desktop app), open Settings → Connectors → Add custom connector.
- Name it “Koi Launch”, enter
https://launch.koiswarm.com/mcpas the URL, add it and press “Connect”. - On the confirmation page press “Verify with Telegram”. The bot opens in Telegram — tap “Approve”.
- Return to the page and press “Allow”. Claude can now manage apps under your Telegram account.
You can disconnect anytime in Claude's settings.
2. Build & publish
Just ask in the conversation:
- “Build me a chemistry exam coach. Quiz me by topic and let me review mistakes.”
- “Show me a preview” → try it inside Claude in the same runtime as Telegram.
- “Make the buttons bigger”, “Add 30 more questions” → Claude edits only what changed.
- “Publish it to Telegram” → you get a
t.me/…?startapp=…link; the bot notifies you too.
Each publish creates a new version; the link stays the same. Ask “Roll back to the previous version” anytime.
3. Apps & sharing
- The bot's “Apps” menu button opens the list of all your apps.
- Share three ways: the ↗ button in the list, a share button inside an app, or type
@koilaunch_botin any chat and pick an app. - Apps friends open appear in their “Shared & recent” tab. Each friend's data is kept separately.
- Visibility is “anyone with the link” (default) or “only me”. Ask Claude “Make this app private” to switch.
4. Runtime & SDK
Before building, Claude reads the platform guide (get_platform_guide) and follows this runtime:
- Apps are served from a separate domain and run in a sandboxed iframe with an isolated (opaque) origin.
localStoragejust works and is saved on the server per user × app.window.TgAppprovidesstorage,shared(leaderboards),haptic,share,mainButton/backButton,alert, theme CSS variables (--tg-bg…) and safe areas (--tg-safe-top…).- The main parts of
window.Telegram.WebApp(HapticFeedback, MainButton, BackButton, CloudStorage, showAlert…) are available as a compatibility layer.
const p = TgApp.storage.get("progress", { correct: 0 });
p.correct++;
TgApp.storage.set("progress", p);
await TgApp.shared.put("scores", { name: TgApp.user.firstName }, { score: p.correct });
const top = await TgApp.shared.list("scores", { order: "score", limit: 10 });
TgApp.share({ text: "9/10 correct!" });
5. Limits
| Item | Limit |
|---|---|
| File | 5 MB |
| Total per app | 25 MB / 300 files |
| Apps | 100 per user |
| Saved data | 64 KB per value, 1000 keys per user × app |
| Shared data | 16 KB per record, 200 per user × collection |
| External scripts | cdnjs / jsDelivr / unpkg / esm.sh / Google Fonts / Tailwind CDN |
6. Publishing policy
Not allowed: phishing, collecting passwords or card details, impersonating real services or people, malware, or illegal content. Reported apps are reviewed and suspended. Report from the menu (⋯) while an app is open.
7. Privacy
We store your Telegram user ID, display name and username, the files of apps you create, and data saved inside apps.
An app's code can read the data you use in that app and your Telegram display name and ID, and could send them to outside servers — only use apps from people you trust. Anything you write to shared data such as leaderboards is visible to everyone using that app. Apps are isolated from each other and cannot touch your KoiSwarm or Telegram account. Deleting an app deletes all of its data.