Channels
Connecting X, Telegram, Discord, and manual-posting platforms.
Every platform Pegacraft supports connects a different way, because none of them are wired through the same kind of credential.
| Platform | Connection type | What you provide |
|---|---|---|
| X (Twitter) | Browser session | Two session cookies (auth_token, ct0), or a raw Playwright storageState in advanced mode |
| Telegram | Bot token | A bot token from BotFather |
| Discord | Bot token | A bot token from the Discord Developer Portal |
| Manual | Nothing. Content is drafted, you copy and post it | |
| Manual | Nothing. Content is drafted, you copy and post it |
X: browser-session posting, and the risk that comes with it
X has no first-party posting API cheap enough to run at Pegacraft's scale, so X accounts post by replaying a logged-in browser session through headless Chromium: the same as staying signed in on a second device, except the "device" is a bot. X can suspend an account it detects doing this. Before you can add an X account, you have to explicitly check a box accepting that risk. Pegacraft records the timestamp you accepted it.
To connect, paste auth_token and ct0 from your browser's cookies for x.com (the connect modal
walks through where to find them), or paste a full Playwright storageState JSON in advanced
mode if you already have one. Pegacraft verifies the session actually works: it launches a
headless browser, loads X with your session, and confirms you're logged in, before marking the
account Active.
Telegram and Discord: bot tokens
Both connect with a bot token instead of a user session, so there's no suspension risk in the same sense. You're posting as a bot, which is what bots are for. Paste the token in the connect modal; Pegacraft verifies it against the platform's bot API before activating the account.
LinkedIn and Instagram: manual posting
Neither platform has a bot-friendly posting path Pegacraft uses, so these accounts have no credential at all. Generation still happens normally (brand voice, topics, dedup, length limits), but a post produced for one of these accounts skips scheduling and publishing entirely and lands in a Ready to copy state instead. Open it, copy the text, paste it into the platform yourself, and mark it posted.
What "Connect" actually checks
Adding a channel just creates the row. Pressing Connect on that row is what stores the credential and runs a live check against the platform. That's the step that can fail, and it's the one that flips an account's status to Active, Needs reauth, or leaves it disconnected with a reason shown inline.