Skip to content

Nori Integrations

Claude Code Slack integration for teams

Use Claude Code from Slack threads, with per-thread machines, file uploads, and team-wide setup.

Quick answer

To use Claude Code from Slack as a team, connect Nori to your workspace and mention @nori in a thread. Each thread gets its own cloud machine with your repositories cloned and Claude Code running on your existing Claude subscription. Anyone in the thread can steer the work, attach screenshots or logs, and review the pull request that comes back. Skills, instructions and memories are set once for the organization, so every thread starts with the same setup.

How it works

Claude Code is a terminal program. It expects a shell, a checkout and one person at the keyboard. Nori gives it a machine in the cloud and puts Slack in front of it, so the thread becomes the terminal session.

  1. Someone mentions @nori in a channel or thread and describes the task in plain words.
  2. Nori starts an isolated cloud machine for that thread. Your setup script has already cloned the repositories and installed the toolchain, and the organization's skillset is in place.
  3. Claude Code runs on that machine with the Claude subscription, API key or LLM gateway your organization connected. Nori never charges for tokens.
  4. Progress and questions appear as replies in the thread. Anyone in the thread can answer, correct the direction or add a file.
  5. Claude Code commits, pushes a branch and opens a pull request, then posts the link with a short summary.
  6. The thread stays attached to the same conversation. A follow-up the next morning continues with the earlier context, the same branch and the same history.
  7. When the work is finished, reply !done to release the machine. The conversation and the branch are kept.

The same conversation is also open in the web app and the CLI. An engineer who wants to watch the terminal, read the full transcript or take over by hand can do that without leaving the thread behind.

What a team gets that a laptop install does not

One machine per thread

Two threads never share a checkout. One person can ask for a migration while another asks for a flaky-test fix, and neither session sees the other's working tree, branch or processes. Work keeps running when everyone's laptop is closed.

File uploads the agent can read

Drop a screenshot, a CSV export, a HAR file or a log into the thread. The file is placed on the thread's machine and Claude Code reads it as part of the task. A designer can attach a screenshot with an arrow on it and say what looks wrong; nobody has to translate that into a ticket first.

Team-wide setup

Your CLAUDE.md, skills and subagents are stored as an organization skillset and installed on every machine. Shared memories carry what earlier sessions learned, such as which test command is slow or which service owns a table. Integrations and MCP servers are connected once and scoped to the organization, a person or a specific agent.

The subscription you already pay for

Connect a Claude plan, an Anthropic API key or your own gateway. Nori bills a flat plan price for machines and nothing for model usage. The details are in run Claude Code in the cloud for your whole team.

The same sessions from schedules and webhooks

A thread is one way in. Cron schedules, one-time reminders and webhooks start the same kind of session and can post their result to a channel, so people and automations share one history. See scheduled coding agents.

Worked example: a bug report with a screenshot

A support lead sees a wrong total on an invoice. She posts in #billing-eng and attaches the screenshot. The names below are illustrative.

Dana  10:02
@nori invoice INV-2291 shows tax applied twice when a discount code is used.
Screenshot attached. Can you find the cause and fix it?
[invoice-2291.png]

Nori  10:03
On it. I have the screenshot and I am reading billing/invoice_totals.py.

Nori  10:09
Cause: apply_discount() recalculates tax on the discounted subtotal, then
compute_total() adds the original tax line again. It only happens when
discount_code is set.
I wrote a failing test: tests/billing/test_invoice_totals.py::test_discount_tax_applied_once
Fix is ready. Open a PR against main?

Priya  10:11
Yes. Please also check the credit note path, it calls the same helper.

Nori  10:19
PR: fix(billing): apply tax once when a discount code is used (#1841)
- invoice_totals.py: compute_total() no longer re-adds tax after apply_discount()
- credit_notes.py: same double count, same fix, covered by a new test
- 214 billing tests pass

Priya  10:40
Approved and merged. !done

What happened in that thread:

  1. A non-engineer started the work with a sentence and an image. No ticket template, no terminal.
  2. The machine already had the billing repository and the team's test command, because the setup is shared.
  3. An engineer joined the same thread, widened the scope, and the agent kept one conversation and one branch.
  4. Review happened on the pull request, as it does for any other change.
  5. !done released the machine. The thread remains as the record of why the change was made.

A broader walkthrough of the Slack workflow, with any harness, is in AI coding agent for Slack that opens pull requests.

Set it up for the whole team

Setup is done once by an admin. Everyone else only needs to be in the Slack workspace.

  1. Start a Nori trial and install the Nori Slack app in your workspace.
  2. Install the Nori GitHub app on the repositories the agent should work in.
  3. Connect a Claude subscription, an Anthropic API key or your LLM gateway.
  4. Pick the repositories every machine should start with and confirm the setup script that installs your toolchain.
  5. Add your existing CLAUDE.md and skills to the organization skillset. If you have none yet, Jiro, Nori's own agent, reads the repositories and drafts them for you to confirm.
  6. Mention @nori in a channel with a small, real task and review the pull request.

Two thread commands are worth teaching on day one. !done releases the machine when the work is finished. !tagonly lets people talk in the thread without the agent answering every message; it then replies only when mentioned.

How this differs from Claude Tag

Anthropic has its own Slack product, Claude Tag. As of November 2026, Anthropic documents it as a public beta for Team and Enterprise plans, and Slack channel work uses an organization-funded balance. Channel notes and workspace notes are separate, and public and private channels have different write rules. Routines are documented. The source is the Claude Tag overview and its memory page.

Nori takes a different shape. It runs the Claude Code harness itself on a machine per thread, on the subscription or keys you connect, and it is not tied to one vendor: the same thread workflow runs Codex, Gemini CLI, OpenCode or any ACP agent, and Jiro, Nori's ready-to-work engineering teammate. Enterprises can deploy the full Nori stack, control plane included, into their own AWS VPC or Azure VNet with SAML and SCIM.

The side-by-side, with sources, is in Nori vs Claude Tag.

Frequently asked questions

Does Claude Code have an official Slack integration?

Anthropic offers Claude Tag, a separate Slack product documented as a public beta for Team and Enterprise plans as of November 2026. Nori is an independent platform that runs the Claude Code harness on a cloud machine per Slack thread, using the Claude subscription or API key your organization connects.

Can several people work with the agent in the same Slack thread?

Yes. A thread is one conversation on one machine. Anyone in the thread can add context, answer the agent's questions, attach files or change the direction. The agent keeps the full history, so a reviewer who joins late does not need the task explained again.

What kinds of files can I upload to the thread?

Screenshots, logs, CSV exports, PDFs and similar attachments. The file is copied to the thread's machine and Claude Code reads it as part of the task. This is the fastest way to report a visual bug or hand over a sample of bad data.

Do we need a separate Claude seat for every Slack user?

Nori does not require one. The organization connects a Claude subscription, an API key or an LLM gateway, and sessions use it. People can also connect their own account. Nori charges a flat plan price for machines and never charges for tokens. Your model provider's own plan terms still apply.

What happens to the machine when the thread goes quiet?

Reply !done and the machine is released back to your pool. The conversation, the branch and the pull request are kept. If someone writes in the thread again later, Nori resumes the conversation on a machine with the saved workspace and the earlier context.

Can we use Codex or another agent in Slack instead of Claude Code?

Yes. Nori runs Claude Code, Codex, Gemini CLI, Cursor, OpenCode, Droid, Amp and any ACP agent, plus Jiro, its own engineering teammate. You can set a default for the organization and define custom agents per team, each with its own skillset and model.