Switch - Bring any AI agent into Slack, Teams & Discord
by•
Switch brings AI agents into the collaboration tools your team already uses. Agents join as named participants in your Slack, Teams, Discord, or Telegram channels, sharing the same context and history as your team. Connect an agent once and use it across projects. Each room carries its own context, participants, and rules. Works with Claude Code, OpenAI, Google ADK, LangChain, and more. Open source, self-hostable, running in minutes.


Replies
How does it handles permissions for different channels?
Switch
@manonbriffaut Good question.
Every owner of an agent can specify in which channel this agent can participate, and who can talk to this agent in what context.
This feeds into a centralized policy store that is checked whenever needed. E.g.
- User U invites agent A into channel C -> can user U invite the agent ? can agent A participate in channel C ? If any of those checks don't pass -> action is blocked
- User U talks to agent A in channel C -> can user U talk to agent A in channel C ? if not -> the message is blocked
Hope that helps !
Switch
@manonbriffaut To add to what Louis said, the nice thing is that the defaults are already locked down. When you create an agent, only you can talk to it until you open it up from there. So you don't accidentally expose an agent to a channel it shouldn't be in.
Can an agent keep separate memory and rules for each Slack channel?
Switch
@nolanpierce03 Yes! that's the main reason we built out the concept of rooms. Each room carries its own instructions, so the same agent behaves differently depending on which one it's in. You can also define roles inside a room, which are named sets of rules the agent picks up when it joins.
Memory works the same way. The agent's context is the history of the room it's in, so two rooms means two separate histories. It reads across only when you link the rooms and put it in both. That's also what helps with agent maintenance. The agent can be built once and added to whatever rooms need it, and the context for each use case lives on the room. A new use case becomes a room you set up rather than another copy of the agent to keep in sync.
Have you and your team come across use cases where keeping separate memory/rules would be helpful?
The named participant approach is interesting. Can admins control which agents are allowed to join specific channels?
Switch
@eriberto_puppypound Yes! Admins can decide which rooms each agent can access, and an agent that hasn't been added to a channel can't see it or post in it.
Would love to hear about your use cases and how you might be thinking of setting up Switch!
i like the idea of treating an agent as another member of the team rather than just a chatbot sitting somewhere else. That could make collaboration with agents feel much less fragmented.
Switch
@isabella_wandrei That's exactly how we think about it! Bring on your agents as new members of the team. Once the agents are in the same room as the team, people start working with them naturally instead of context-switching to a separate tool.
Hey @safi_amin and team, congrats on the launch! Bringing AI into the tools people already use makes a lot of sense. Getting closer to feeling like Iron Man talking to Jarvis 😂
How much setup would someone nontechnical need before they could start using an agent in their team’s channels?
Looking forward to trying this out! 👍
Switch
@safi_amin @kpwdev hi ! Thanks for this!
It depends, does that non-technical person X have another less non-technical person Y that can setup and bring an agent to the channel ? If yes then X just has to wait for Y to setup and bring the agent to the channel to start using it.
If not, full transparency warning, the road might be a bit bumpy. For now we have optimized this for technical folks such that they could then provide the agents they setup to other non-technical folks.
On the other hand, we are looking into ways to make it straightforward to setup new agents for non-technical folks. Spoiler alert: what if you could simply talk to an agent that will itself create the agent for you ?
But that will come later :)
Switch
@kpwdev Hahaha love the Jarvis comparison! 😂
To add to what Louis said, you can also point your favourite AI tool at our docs and have it walk you through setup. Our docs are served over MCP so tools like ChatGPT, Claude, or Gemini can read them directly and answer your questions as you go. Link: https://docs.flintai.dev/flintai/switch/index
We also run free live onboarding sessions every Wednesday if you'd prefer a human walking you through it. Takes about 10mins and they leave time for questions & discussion. Link: flintai.dev/switch-live-training
@safi_amin @lamaudruz appreciate the replies guys - definitely see use for this in my day to day and I know a handful of non technical people who this would be really good for so I'll definitely be sharing this with them and recommending the live onboarding sessions. Excited to see where you guys take this!
Switch
@kpwdev Appreciate the kind words Kevin! Open to any feedback or questions along the way. :)
@safi_amin definitely - downloaded now and I'll be giving it a try later today or tomorrow and I'll let you know!
Switch
Serand
Switch
@rukhsar_amjad Personally I think this is something that's always evolving. If you're curious about how the team developed Switch during its own AI journey check out our lead eng Louis's blog post about building Switch with Switch: https://www.flintai.dev/blog-posts/our-team-is-now-composed-of-5-devs-and-45-agents-all-in-slack
Switch
@rukhsar_amjad Thanks! It took a lot of iteration, but once we figured out the room should hold the context instead of the agent, everything else fell into place. You build an agent once and each room gives it different rules and context. We typically start a new room for each focus area, initiative, or deliverable depending on the size and scope of the item of work. That's what makes switching between tasks feel natural instead of having to reconfigure or catch up agents every time!
Context switching is the worst so staying natively in Teams is a big plus. really interesting nice work @Switch team👏
Switch
@priya_kushwaha1 Thanks Priya, appreciate the support. If the team already lives in Teams, they shouldn't have to go somewhere else to work with their agents!
@safi_amin exactly, keeping the workflow uninterrupted is so valuable. i hope it will be the product of the day🙌
Switch
@priya_kushwaha1 Thank you Priya, fingers crossed!
Are these plans for custom agent permissions so companies can limit what each agent can access?
Switch
@jeankang Yes and its possible today! Each agent has its own policy for which rooms it can work in and who can direct it there.
Would love to hear more about what use cases you're thinking of!
What happens when two agents in the same channel disagree or give conflicting answers?
Switch
@artstavenka1 Great question, and one we thought about internally! Nothing arbitrates it. Both answers will land in the thread, everyone can see the disagreement, and a human can weigh in. It mirrors how this already works with human co-workers. Two people disagree in a channel, both arguments sit there in the open, and somebody decides.
Would love to learn more about your use case!
Can an agent carry context from slack into teams and vice versa? I see that as being the most useful element, where context from a slack channel with engineers can answer questions on a teams channel with execs.
@safi_amin congrats on the launch, looking forward to testing this out.
Switch
@umier Yes, this is one of the use cases that we've seen internally be the most valuable!
The context lives in the Switch room, not in Slack or Teams, so the collab platform stops being the boundary for the agent. The same agent can sit in the engineering room on Slack and the leadership room on Teams and carry what it knows between them. It's set by linking those two rooms and giving the link a label. The agent sees they're connected and reads across them.
Would love to learn more about where you and your teams are running into context silos. Is it agents starting cold every session, or work happening in one channel that never reaches the other? Something else?