TypeClawTypeClaw
Guides

Add a channel

Give the agent another inbox — Slack, Discord, Telegram, GitHub, or KakaoTalk

A channel is any platform the agent talks through — Slack, Discord, Telegram, GitHub, KakaoTalk. Same agent, many inboxes.

You already wired your first channel during typeclaw init (and, if you accepted the claim prompt it offered, you're paired as its owner too). This guide is for adding another one — a second platform, or your first if you chose "skip" back in init. The flow is the same either way.

It walks through Slack, the most common case; the other platforms follow the same shape, with only the sign-in details differing (covered at the bottom).

Wire the agent into Slack

Tell TypeClaw to add Slack

From inside your agent folder:

typeclaw channel add slack-bot

The CLI asks for two tokens — a bot token (xoxb-…) and an app token (xapp-…). You get both from a Slack app, which you'll create in the next step. The CLI stores them safely in secrets.json (git-ignored, so nothing leaks into your repo) and switches the channel on.

Create the Slack app

The fastest way to create a Slack app with exactly the right permissions is to paste a ready-made manifest. Go to api.slack.com/apps → Create New App → From a manifest, pick your workspace, and paste the manifest below. Then install it to your workspace.

After installing, you get the bot token (xoxb-…) under OAuth & Permissions → Bot User OAuth Token. The app token (xapp-…) is separate — see the box below for where to find it.

Don't skip reactions:write

Without reactions:write, the agent's automatic :eyes: acknowledgement (and any reaction it tries to add) fails with Slack's missing_scope error — and that error shows up in your logs on every message until you fix it. If you already created the app without it, add it under OAuth & Permissions → Bot Token Scopes, then reinstall the app to the workspace so the new scope takes effect.

Reload

typeclaw reload

The agent picks up the new Slack connection without a full restart. (Slack uses Socket Mode, so you don't need a public URL or any tunnel — skip ngrok and friends.)

Pair yourself on the new platform

If you message the bot in Slack right now, nothing happens. That's not a bug.

Being owner on your first channel doesn't carry over automatically — the agent recognizes you per platform, by the account you're speaking from. On a brand-new platform you're an unrecognized author, which resolves to guest: no permission to talk, so the message is dropped before the agent ever sees it. That's the safety floor — a stranger on any platform can't make your agent do anything until you've explicitly let them in.

So pair yourself here too:

typeclaw role claim --as owner --channel slack-bot

The CLI prints a one-time code. DM that code to your bot from your Slack account. The agent matches it, records you as owner on Slack, and from then on it answers you there.

Talk to it

Mention the bot in any channel it's been invited to, or DM it. It answers.

Replies in a thread stay in that thread's conversation, so the agent keeps context. A new top-level message starts a fresh conversation.

Want to lock it down for a public channel?

The pairing above is enough for a personal agent in a private workspace. The moment the bot is somewhere strangers can reach it — like #general — you'll want finer control over who can do what. That's the Lock down a public channel guide, and the reasoning behind it is in the Permissions model.

Other platforms

The wiring is the same shape everywhere — typeclaw channel add <platform>, then pair yourself. Only the sign-in changes.

typeclaw channel add discord-bot     # bot token
typeclaw channel add telegram-bot    # bot token
typeclaw channel add github          # PAT or GitHub App; needs a public URL
typeclaw channel add kakaotalk       # email + password, stored encrypted

Rotating credentials

If a token leaks or expires, swap it without re-adding the channel:

typeclaw channel set slack-bot      # most adapters
typeclaw channel reauth kakaotalk   # KakaoTalk needs an interactive re-login


Next: Add a plugin — extend the agent with new tools, skills, and channels.

On this page