Chat surfaces
Chat surfaces are external messaging apps—today primarily Slack—that Toby can both use as tools and listen to as a conversation channel. This page is the map for that story. Provider-specific credentials and app setup live in the Slack guide; global switches live under Inbound chat.
Two directions
| Direction | What it means | Who starts the conversation |
|---|---|---|
| Outbound (tools) | From Toby.app (or schedules), the model searches channels, reads history, or posts messages through the chat integration | You, in Toby |
| Inbound (@mentions) | Someone messages or @mentions Toby in Slack; the local service runs a full chat turn and replies in the thread | Coworkers (or you) in Slack |
You can enable tools only, inbound only, or both. They use related but not identical credentials—especially on Slack.
Outbound: use Slack from Toby
- Connect the Slack integration (OAuth is recommended for chat tools).
- In Toby.app chat, ask about channels, history, or posting—or scope with the integration picker /
slack …prefix. - Optionally set Chat as your default provider under Settings → Default Providers when multiple chat apps exist later.
Outbound tools do not require inbound to be on. For Slack, OAuth stores a user token so actions run as you, not as a bot (unless you use the bot-token auth path for tools).
Deep dive: Slack integration — app manifest, OAuth, scopes, Connect.
Inbound: let Slack drive Toby
Inbound turns use the same assistant pipeline as the Mac app: persona, skills, memory, and other connected integrations (for example “check my email” from a Slack mention can still load Email tools).
Requirements (conceptual)
- Local service running — Toby.app normally starts it; inbound listens in the background.
- Global inbound settings — Settings → Chat: enable, pick Active integration (e.g. Slack), choose a persona.
Details: Inbound chat. - Integration connected and inbound-capable credentials filled in (Slack needs bot + app tokens and Socket Mode—not just OAuth user token).
Details: Slack → Inbound @mentions.
What users experience
- @mention Toby (or message the bot per your Slack app setup) in a channel or thread.
- Toby processes the turn under the inbound persona and replies in context.
- Conversation maps to a Toby session keyed by the external thread so follow-ups stay coherent.
Only one inbound integration is active globally at a time.
Slack checklist (both modes)
Use this when you want Slack as a full chat surface:
| Step | Tools (outbound) | Inbound |
|---|---|---|
| Create Slack app (manifest recommended) | Yes | Yes (include bot + Socket Mode) |
| OAuth Client ID/Secret + Connect | Recommended | Optional for tools; still useful |
Bot Token (xoxb-…) | Bot-token auth path only | Required |
App Token (xapp-…, Socket Mode) | No | Required |
| Settings → Chat enable + active = Slack | No | Required |
| Setup Guide in Toby.app | Recommended | Recommended |
Step-by-step Slack UI and token tables: Slack.
Global switches only: Inbound chat.
How this fits the rest of Toby
| Topic | Role with chat surfaces |
|---|---|
| Personas | Inbound uses the persona selected under Settings → Chat (or default) |
| Default providers | Prefer Slack for the Chat category in multi-integration chat and schedules |
| Schedules | Can use Slack tools on a cron; inbound is separate (event-driven) |
| Architecture | Daemon + plugins share one harness; inbound is a long-lived plugin process |
| Plugins | New chat apps implement protocol tools and optional inbound run |
Adding another chat app later
Slack is the reference Chat provider. A future messaging integration would:
- Ship as a plugin with chat tools and
providerCategories: ["chat"]. - Optionally implement inbound (Socket Mode / webhooks / long-lived
inbound run) so it can appear under Active integration. - Follow the same split: Connect for tools, Settings → Chat for listening.
Until then, treat Slack as the complete setup guide and this page as the product overview.
Related
- Slack — credentials, app setup, inbound deep dive
- Inbound chat — Settings → Chat
- Integrations overview — provider categories
- Configure and connect — general connect pattern
- Your first chat — chatting inside Toby.app
- Toby.app — native UI and local service