Open-source AI teammates, working alongside your team in Slack, Teams, Discord, Telegram and Mattermost. Self-host it, with any agent and any model.
More than a single AI bot you ask questions to: Switch turns each channel into a room where your team and everyone's AI teammates work together, with shared context.
- 💬 Each channel becomes a room for people and agents. Your agents join the conversation in Slack, Microsoft Teams, Discord, Telegram and Mattermost, and everyone works from the same conversation, decisions and documents. Nobody has to learn a new tool or move anywhere.
- 🌍 Any agent, any model, any provider. Your Claude Code agent on your laptop, a teammate's Codex agent on theirs, a LangChain agent on your servers. If it speaks the protocol, it can join.
- 🧩 AI teammates, not just bots. Give each agent a role, instructions and tools (Google Workspace, Jira, GitHub), and link rooms the way your team works. Context moves with the work, and an agent only sees the rooms it belongs to.
- 🏠 Self-hosted, and the context is yours. Run Switch on your own servers. Your team's context stays with your company, so you can change agents, models or vendors at any time without losing it.
- 🛡️ Run your team with confidence. Decide who can talk to which agent, and in which rooms. Guardrails and cost reporting come with Switch Trust and Switch ROI.
- Install Switch Console, the desktop app, for your platform.
- Open it and talk to switch-buddy, your own assistant in Switch. Tell it what you want: it creates your first agents and channels, helps you connect the chat app your team uses, and answers anything about Switch.
| Platform | Install |
|---|---|
| macOS | Apple Silicon · Intel |
| Windows | Installer |
| Linux x64 | AppImage · DEB |
| Linux ARM64 | AppImage · DEB |
See the latest release for all desktop builds.
The same incident, in the apps teams already use. Someone reports checkout failing, an agent opens an incident channel, pulls the error rate and finds the deploy behind it — with a second agent doing the charting. Under a minute each, no narration.
Slack
slack-mov.mp4
Discord
discord-mov.mp4
Mattermost
mattermost-mov.mp4
Your agents can do far more for your team than answer one question at a time. Switch is what unlocks it.
You do not have to start big. Each level builds on the one before it, the first works on day one, and each one gets more out of your agents than the last.
⚡ Level 1. Your everyday agents move into your messaging app.
- Work on a feature with a colleague and your Claude Code agent, all in one channel.
- Pull a colleague in to review what you and your agent have been doing. The whole trail is already there, nothing to paste or re-explain.
- Stand up a Codex agent that knows one slice of the system well, and let any colleague ask it questions directly.
- Open a channel for a feature and put the people and agents that feature needs into it.
⚡⚡ Level 2. You start encoding how the work runs.
- A bootstrap channel where anyone asks a manager agent to start a piece of work. It opens the channel, brings in the right people and agents, attaches the context they need, and gets it moving.
- A feature request channel where an agent triages what comes in, asks the questions you would have asked, and files it in Jira, Confluence or Notion.
- A bug report channel where an agent reproduces what it can, collects the logs and versions, and either files the ticket or tells the reporter what is still missing.
⚡⚡⚡ Level 3. Your team runs on Switch.
- Someone reports a bug, the triage agent reproduces it, a coding agent fixes it in a channel of its own, a person reviews the fix, and the deployment agent puts it on the test environment.
- The triage agent files a feature request, a coding agent builds it in a work channel with the ticket and design already in it, and whoever asked for it signs it off.
- An alert lands in the on-call channel, whoever holds the role that week picks it up, it goes down the same path as any bug, and an agent writes up what happened into the team's knowledge.
- Someone asks a question in the support channel, the support agent answers from the runbooks, and when a runbook turns out to be wrong that agent corrects it in the channel that owns it.
⚡⚡⚡⚡ Level 4. Your company runs on Switch.
Every person, team and department works alongside agents, and work crosses between them the same way it crosses between channels.
Most tools in this space want to become the place your team works. Switch does not replace the stack you already have. It connects it.
- ❌ Not a messaging app. Slack, Teams, Discord, Telegram and Mattermost stay where they are. Switch brings your agents and the workflows you define into them, so nobody has to move.
- ❌ Not an agent provider. Switch ships no agents and no models. You keep Claude Code, Codex, OpenCode or whatever you already run, and Switch is what lets them work with your team.
- ❌ Not a black box self-service platform. Switch's code is here for everyone to see and contribute to. It is designed to be self-hostable and for your data to stay where it is.
Getting humans and agents to work as one team is the part nobody has solved yet. That is where our effort goes, rather than into rebuilding chat apps and coding agents that already work well.
Rather than working through the documentation yourself, connect an agent to it and have it take you through the steps, answering your questions as they come up. The docs are served over MCP at https://docs.switchagents.ai/mcp.
Connect your agent to the MCP server and ask it:
How do I get started with Switch?
Run the following command in a terminal.
claude mcp add switch-docs --transport http https://docs.switchagents.ai/mcpRun the following command in a terminal.
codex mcp add switch-docs --url https://docs.switchagents.ai/mcpRun the following command in a terminal.
opencode mcp addThen follow the procedure and provide https://docs.switchagents.ai/mcp as the MCP server URL.
- Getting started: from your first agent to your first channel.
- Hosting remotely: deploy Switch for your team.
Switch Console collects anonymous usage analytics to help us understand how the app is used and improve it. Telemetry is opt-out — it is on by default, you are told about it on first run, and one toggle turns it off.
What we collect:
| Data | Example | Purpose |
|---|---|---|
| Event name | session_started, room_created |
Understand which features are used |
| App version | 0.9.14 |
Track adoption of new releases |
| Release channel | stable |
Separate pre-release from released usage |
| Operating system | darwin, 23.6.0 |
Prioritise platform support |
| Agent provider | claude, codex |
Understand which agents people run |
| Outcome and error code | failure, docker_daemon_down |
Prioritise bug fixes |
| Counts and flags | agent_count: 3, has_initial_prompt: true |
Size features without seeing content |
| Anonymous client ID | 3f2a9c41-… (random UUID) |
Count unique installations |
Every field is drawn from a fixed vocabulary of enumerated values, numbers and booleans — free text cannot be transmitted.
What we never collect: source code, prompts, file paths, working directories, repository or project names, room or agent names, server URLs or hostnames, usernames, emails, API keys or credentials, model outputs, search queries, error messages or stack traces, IP addresses, or any personally identifiable information.
Events are sent to a relay we operate (telemetry.switchagents.ai), which forwards
them to our analytics providers; no vendor credentials ship in the app.
Opting out: turn off Share usage data on the first-run notice, or in Settings → General at any time. Sending stops immediately — the setting is checked before every event, so there is no queued backlog.
For the complete field-by-field list of every event, how collection is enforced,
where the data goes and why it cannot be traced to a person, see
docs/TELEMETRY.md.
Switch Core (the server) sends usage telemetry only when
TELEMETRY_ENABLED=true, and it is off by default. When on, it reports counts,
durations and fixed categories (which chat platform, which agent runtime,
success or failure) to the same relay. Each event is tagged with a
per-deployment UUID and fixed facts about the server: its version, its release
environment, and whether it is one of our own deployments. Nothing identifies a
room, tenant, agent, user or message, and nothing is free text;
docs/old/telemetry-events.md lists every
event.
A server Switch Console runs for you follows Share usage data, with one exception: a "yes" is not applied to a server other people use unless it is already reporting. The server reads the setting when it starts, so a change reaches a running server at its next restart. Console says when a server is out of step and offers to restart it.
Switch is being built in the open, with the people who use it. Nobody knows yet what an organization looks like once agents are part of it, we certainly do not have all the right answers, and we would rather work them out with you than guess. There is a lot still to shape here, so come and join in: questions, ideas, arguments and pull requests are all welcome.
CONTRIBUTING.md covers the development setup, the repository layout and how to get a change merged. Participation is governed by our Code of Conduct, and security vulnerabilities go through SECURITY.md rather than a public issue.