Comparison
Nairi vs Claude Code for Slack
Anthropic's Claude Code for Slack gives each developer their own Slack-triggered Claude session. Nairi gives the team one shared, multiplayer agent: pick your harness, add it to Slack or Discord, store secrets in an org vault, self-host the runtime if you need to. Here's an honest side-by-side.
TL;DR
Claude Code for Slack is Anthropic's official Slack integration (research preview, December 2025). When someone @mentions Claude in a channel, Anthropic spins up a Claude Code on the web session in a sandbox VM under that user's own Anthropic account, runs the task against a connected GitHub repo, and opens a PR back in the thread. It's a real cloud agent with a heavy runtime, and it's free with any plan that includes Claude Code.
Nairi solves a different shape of problem. The unit is the org, not the developer. One agent that the whole team can mention. One vault for secrets. One subscription. You also pick the harness per agent (Claude Code, Codex, OpenCode, Cursor), the agent works in Discord as well as Slack, and the runtime is an open-source Go daemon you can self-host if you need to.
Honest framing: if every developer on your team already has a Claude Code seat, every repo is on GitHub, and you're happy on Anthropic's models on Anthropic's infra, Claude Code for Slack is the simpler choice. Pick Nairi if you want one shared team agent rather than a session per developer, harness choice, Discord support, an org vault, or the ability to run the agent on your own hardware.
Side by side
Structural differences first, then the areas where Claude Code for Slack matches or wins.
Who the agent belongs to
The org. One agent the whole team can mention, with shared rate limits, shared repo access, and shared credentials at the org level.
The individual developer. Every @Claude in a channel spins up a session under that user's own Anthropic account. Limits, repo access, and billing all charge to them.
Pick your harness and model
Per-agent choice of Claude Code, Codex, OpenCode, or Cursor. Bring the provider key you want. Mix harnesses across the same org.
Claude Code on Anthropic's cloud, running Anthropic models. /model selection is documented as disabled in cloud sessions. No Codex, no OpenCode, no Cursor.
Discord support
Slack and Discord are both first-class. The same agent runs in either, with the same rules, skills, and vault.
Slack only. Anthropic's Channels feature for Discord, Telegram, and iMessage is a separate product that pushes events to a local harness on your own machine, not the cloud agent.
Secrets management
Org-scoped vault. Per-agent env vars. Secrets get proxied in at request time, never written to the agent's environment as plaintext.
No dedicated secrets store. Anthropic's docs: env vars and setup scripts "are stored in the environment configuration, visible to anyone who can edit that environment."
Run the agent on your own hardware
The nairid daemon is open-source Go. Run the full agent loop in your own infra (Docker, Kubernetes, a VM, an air-gapped box).
Anthropic-managed cloud VMs only. Orgs with Zero Data Retention or strict IP allowlisting can't use cloud sessions at all, which means no Claude Code for Slack.
Customization scope
Per-org rules + per-agent rules + per-agent MCP + org-wide shared skill library. Set once at the org level, applies to every channel and every thread.
Per-repo only. CLAUDE.md, .claude/skills/, and .mcp.json have to be committed to each repo the agent works in. No workspace-level system prompt, no per-channel policy.
Repo sources
Any. The daemon clones from anywhere you have credentials for: GitHub, GitLab, Bitbucket, self-hosted Git.
GitHub only for the Slack flow. GitLab and Bitbucket users have to fall back to the local harness with a bundle upload.
PRs per session
No documented cap. One session can land several PRs across one or more repos.
One PR per session, per the docs. Multi-PR work has to be split across multiple sessions.
Pricing model
One team subscription starting at $20/month. Every teammate uses every agent. No per-seat Claude Code license.
No separate Slack fee. Rolls up into the user's existing Claude Code plan (Pro, Max, Team, or Enterprise) and consumes that user's quota.
Cloud runtime power
Org-scoped container with the harness, MCP servers, and tools you configure. Resource ceilings tuned for agent workloads.
Per-session Ubuntu 24.04 VM with ~4 vCPU, 16GB RAM, 30GB disk, and Python, Node, Ruby, Go, Rust, Docker, Postgres, Redis pre-installed. Heavy out of the box.
Auto-fix PR loop
PR auto-fix is on the roadmap, not in the product today.
After a session opens a PR, Claude can watch CI failures and review comments and respond on its own. Real win for review cycles.
Bidirectional session handoff
Slack and Discord threads are the primary surface. No teleport to a local Claude Code session today.
A session started in Slack can be picked up on the web UI or teleported into a local Claude Code session. Genuine differentiator.
Claude Code for Slack descriptions reflect Anthropic's public docs as of June 2026. Claude Code for Slack is still labeled research preview. Verify the current behavior at docs.claude.com.
One Anthropic seat per developer, or one shared agent for the team
The biggest structural difference is who the agent belongs to. In Claude Code for Slack, every @mention spawns a session under the individual user's own Anthropic account. Their rate limits, their connected GitHub repos, their session history, their billing. Anthropic documents this explicitly: "Each user runs sessions under their own Claude account. Sessions count against the individual user's plan limits. Users can only access repositories they've personally connected."
That's a per-user model layered onto a Slack channel. The Slack thread is shared but the agent isn't. Two engineers in #ops can have different repo authorizations and different quotas. A new teammate doesn't inherit the team's agent. They buy a seat, install the app, click connect, re-authorize GitHub from scratch, and start over.
Nairi inverts that. The unit is the org. One agent the whole team can mention. One vault. One set of rules. One audit log. One subscription. When a teammate joins the org they can immediately mention every agent the team has set up. The agent is a shared object that the team owns, not a thin convenience over each person's individual Claude Code seat.
For a single developer who wants a personal coding assistant in Slack and already has a Claude Code seat, the per-user model is fine. For a team that wants a shared agent for support triage, on-call response, PR review, or scheduled jobs that post back to a channel, the multiplayer model is the reason teams pick Nairi over Claude Code for Slack.
Bring your harness. Bring your model.
Claude Code for Slack runs Claude Code on Anthropic's cloud with Anthropic models. That's the product. The /model command is documented as unavailable in cloud sessions, so even picking between Sonnet and Opus from Slack isn't exposed. There's no Codex, no OpenCode, no Cursor, no GPT, no Gemini, no local model. If you've standardized on a different harness or a different provider, the Slack integration isn't an option.
Nairi treats the harness as a per-agent decision. Run one agent on Claude Code for the writing-heavy work, one on Codex for the tasks where it has the edge, one on OpenCode for the open-source path, one on Cursor for the IDE-integrated workflow. Each agent has its own provider key. You can mix them in the same org and pick the right tool per job instead of being locked to one vendor's roadmap.
The bet here is that harness optionality matters more over time, not less. New harnesses ship every few weeks. New models with new capability curves arrive every few months. Teams that get locked to one provider pay the switching cost later. Nairi makes the harness a config setting on an agent, not a structural choice baked into the platform.
Same agent in Slack and Discord
Claude Code for Slack works in Slack. That's it. Anthropic does ship something called Channels for Discord, Telegram, and iMessage, but it's a different architecture: events get pushed into a local Claude Code session running on your own machine. That's a different product with a different workflow. It isn't a substitute if your team's primary surface is Discord and you want the Slack-style "mention an agent in a channel, get work done" experience.
Discord is the workspace surface for a lot of teams Slack doesn't reach. Dev tools companies. Open-source maintainers. Gaming teams. DAOs. Internal community ops at consumer products. A real chunk of the team-AI-agent market lives there and Anthropic's Slack-only design forecloses it.
Nairi treats Slack and Discord symmetrically. Same agent, same vault, same rules, same audit, same skill library. Add the agent to a Slack channel, add it to a Discord channel, mention it from either. Internally the integration is the same. Teams that run both surfaces (engineering on Slack, community on Discord) can have one agent answer in both.
An actual secrets vault, not env vars in a shared config
Anthropic's own docs are honest about this one. From the Claude Code on the web documentation: "A dedicated secrets store is not yet available. Both environment variables and setup scripts are stored in the environment configuration, visible to anyone who can edit that environment." Translation: the Anthropic API key, the Slack webhook, the Postgres connection string, the GitHub PAT all sit in a config that any environment editor can read. That's workable for personal exploration. For a team agent that talks to customer systems, it's a hard ceiling.
Nairi has an org-scoped vault. Secrets are scoped per agent, audited at the org level, and injected at request time by a secret proxy. The agent's process environment never holds plaintext credentials. If a customer-support agent and an analytics agent live in the same org, they can have entirely separate credential scopes, and neither's secrets are readable by the other.
This matters less if your agent only ever talks to one GitHub repo. It matters a lot once the agent is wired into Postgres, internal APIs, Linear, Notion, support tools, and external services. The vault is the difference between an agent that's safe to give real work to and one that has to stay in a sandbox.
Run the agent on your own hardware
Claude Code for Slack is cloud-only. The agent runs in Anthropic-managed VMs and there's no path to move it onto your own infra. Anthropic is explicit that orgs with Zero Data Retention enabled can't use cloud session features, and that strict IP allowlisting breaks cloud sessions outright unless you exempt Anthropic-hosted services. For most teams that's fine. For regulated industries, government contractors, financial services, healthcare, or any org with a real compliance bar, it's a hard blocker.
Nairi's nairid daemon is open-source Go. The full agent loop runs inside the daemon: receiving messages from Slack/Discord, talking to the harness, executing tools, posting back. You can run it in Docker, on Kubernetes, on a single VM, on an air-gapped box, anywhere the binary fits. Most teams take the managed offering because they don't want to run a daemon. The self-hosted path exists for the teams that need it.
Honest framing: if your team has no compliance constraint and no preference for owning the runtime, this difference doesn't matter day to day. If you've ever had to pull a vendor's product out of procurement because the data-residency or self-host story didn't check out, you know how often this kind of thing decides the deal.
Where Claude Code for Slack wins
Honest comparison pages are honest both ways. Here's where we wouldn't try to claim parity.
Frictionless install if you're already on the Claude Slack app. No new product to onboard. Existing users flip a per-user "routing mode" toggle in the Claude app's home tab and they're done. If your team is already paying for Claude Code seats and using the Claude Slack app for chat, picking up the coding agent is genuinely a two-click affair.
A heavy cloud runtime out of the box. Every session gets a fresh Ubuntu 24.04 VM with ~4 vCPU, 16GB RAM, 30GB disk, and Python, Node (with nvm), Ruby, PHP, Java, Go, Rust, C/C++, Docker, Postgres, and Redis pre-installed. That's a lot of toolchain to bring without configuration.
Auto-fix PR loop. Once Claude opens a PR, it can watch CI failures and review comments on the PR and respond to them on its own. That's a real workflow win for teams that want the agent to close the loop on small review cycles without a human in the middle every round.
Bidirectional session handoff. A session that starts in Slack can be opened in the web UI, or teleported into a local Claude Code session to keep working with full session context. The continuity across surfaces is a real strength of the cloud model and we don't match it today.
No extra Slack fee. Claude Code for Slack is included in any plan that already includes Claude Code (Pro, Max, Team, Enterprise per the Claude Code docs). For teams already paying for the Claude Code seats, there's no additional line item.
All the Claude Code features baked in. Skills, MCP, subagents, hooks, plugins, CLAUDE.md memory, the whole Claude Code config surface carries through (when committed to the repo). If your team has already invested in Claude Code customization at the repo level, the Slack agent inherits it for free.
Common questions
What teams ask when they're weighing the two.
Try Nairi in Slack or Discord
Install the Slack or Discord app, pick your channels, mention an agent. Two minutes, no infra to deploy. Pick the harness you want per agent.