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.

Claude Code for Slack is Anthropic's official Slack integration, announced in December 2025 as a research preview. When a user @mentions Claude in a Slack channel, Anthropic spins up a Claude Code on the web session in a fresh sandbox VM under that user's own Anthropic account, runs the coding task against a connected GitHub repo, posts progress back to the thread, and opens a pull request. It only works in channels (not DMs) and only with GitHub repos today. It rides on the existing Claude for Slack app with an intent classifier deciding when to route to Claude Code.
They overlap in surface (a Slack agent that can open PRs) but solve different jobs. Claude Code for Slack is a per-user experience. Each developer needs their own Anthropic seat, connects their own GitHub repos, and burns their own quota. Nairi is built around an org-shared agent: one agent the whole team can mention, one org vault, one set of rules, one billing relationship. Beyond the per-user-vs-per-org split, Nairi also lets you pick the harness (Claude Code, Codex, OpenCode, Cursor), works in Discord as well as Slack, and runs as a self-hostable Go daemon if you don't want the agent on Anthropic's infra.
Because of how rate limits, repo access, and audit play out in real teams. With Claude Code for Slack, two engineers in #ops can authorize different GitHub repo sets, hit different Anthropic plan limits, and have different session histories. The agent isn't a shared object that the team owns. It's a thin convenience over each developer's personal Claude Code seat. With Nairi, the org owns the agent. The vault, the channels it's allowed in, the rules it follows, the repos it sees, the audit trail of what it did. A new teammate gets access by being added to the org, not by buying a seat and re-authorizing their GitHub from scratch.
No. Claude Code for Slack runs Claude Code on Anthropic's cloud with Anthropic models. The /model command is documented as unavailable in cloud sessions, so even picking between Sonnet and Opus from Slack isn't exposed. Nairi treats the harness as configurable per agent. You can run one agent on Claude Code, one on Codex, one on OpenCode, one on Cursor. Mix them across the same org, depending on which harness fits the workload.
Anthropic's Claude Code for Slack does not extend to Discord. They ship a separate Claude Code feature called Channels that pushes events from Discord, Telegram, and iMessage into a local Claude Code session you run on your own machine, which is a completely different architecture from the cloud Slack agent. Nairi treats Slack and Discord as symmetric chat surfaces: the same agent, the same vault, the same rules, the same audit. If your team's primary surface is Discord (common for dev tools, open-source communities, gaming, and DAOs), Nairi is the realistic pick.
Anthropic's own docs are explicit: "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." That's fine for personal experimentation, less fine for a team that wants real separation between, say, a customer support agent and a database-touching analytics agent. Nairi has an org-scoped vault. Secrets are scoped per agent, injected at request time by a secret proxy, and never sit as plaintext in the agent's process environment. Same model the rest of the platform uses for production credentials.
Claude Code for Slack is cloud-only. The agent runs in Anthropic-managed VMs and you can't move it to your own infra. Orgs with Zero Data Retention or strict IP allowlisting are explicitly blocked from cloud sessions, which knocks them out of Claude Code for Slack entirely. Nairi's nairid daemon is open-source Go. You can run it in Docker, on Kubernetes, on a single VM, or on an air-gapped box. The managed offering is the default because most teams don't want to operate a daemon, but the self-hosted path exists and is supported.
Not from Slack. The docs are clear that the Slack flow only supports GitHub repositories today. If your code lives on GitLab, Bitbucket, or a self-hosted Git server, the Slack integration won't pick it up. Nairi's daemon clones from anywhere you have credentials for, so the repo source isn't a constraint.
Their Slack-triggered sessions stop working until the quota resets, even if other teammates have plenty of headroom. Rate limits are per-user because billing and authentication are per-user. Nairi pools usage at the org level: one subscription, one quota, the team shares it. A heavy week for one engineer doesn't stop the rest of the team from using the agent.
Not yet. Claude Code's ability to watch a PR after opening it and respond to CI failures and review comments unattended is a real strength of their cloud model. It's on Nairi's roadmap but not in the product today. If review-cycle automation is the main job-to-be-done and your team is fine with the per-user model, Claude Code for Slack is the better option for that specific workflow.
Pick Claude Code for Slack if all of these apply: every engineer on the team has their own Claude Code seat already; every repo you'd want the agent to touch is on GitHub; you don't need Discord; you're fine with Anthropic's models and don't want harness optionality; the auto-fix PR loop is core to the workflow; and you don't need a dedicated secrets store or a self-host option.
Pick Nairi if any of these match: you want one shared team agent rather than per-user sessions; you want to choose the harness (Claude Code, Codex, OpenCode, Cursor) per agent; your team lives in Discord or needs both Slack and Discord; you need an org vault for secrets; you have GitLab/Bitbucket/self-hosted Git repos; you have compliance requirements that block cloud-only AI infra (ZDR, IP allowlists, air gap); or you want the option to self-host the agent runtime.

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.