---
title: Slack
description: Drive cloud agent sessions from Slack threads — mentions, commands, and access control.
status: draft
sidebar:
  order: 1
---

Mention the bot in a channel to start a session. It replies in a thread, and
every plain reply in that thread continues the same session — no re-mention
needed. The first word after the mention can name a skillset to start with.

While the agent works, a progress message updates on a 10-second cadence.
Files you attach are fetched by the agent inside the session (size caps in
[limits](/sessions/reference/limits/)).

## Commands

Slack reserves `/`, so Nori commands use `!`. In a session thread:

| Command | What it does |
|---|---|
| `!help` | list commands |
| `!status` | session status card |
| `!shell` / `!ide` / `!chat` / `!urls` | links into the running session |
| `!interrupt <prompt>` | interrupt the current turn with a new instruction |
| `!thoughts` | show the agent's current reasoning |
| `!restart` | restart the agent on the same machine |
| `!skillsets [pick\|list\|info\|switch <name>]` | switch skillset mid-thread |
| `!model [name\|pick]` · `!provider [id\|pick]` | switch model or provider |
| `!resume` | pick from your resumable sessions, started on any surface |
| `!catchup` | replay the thread's history |
| `!admin` | request admin escalation (single-use link, expires in 5 minutes) |
| `!done` / `!release` | end the session and release the machine |

Fleet-wide, outside a session thread: `!fleet-status`, `!free-oldest`.

Switching providers with `!provider` moves the conversation to a fresh
machine: history carries over as a transcript bridge, working files do not.

## Ending vs idling

`!done` is the only action that makes a thread human-only — after it, plain
replies are ignored until a new mention. Every other way a session winds down
(idle timeout, restart, transport drop) keeps reply-to-resume working: your
next thread reply revives the session, with a catch-up digest if it advanced
elsewhere.

## Access control

Three modes govern who can drive the bot (set in Fleet Setup):

| Mode | Behavior |
|---|---|
| `open` | anyone in the workspace can start and drive sessions |
| `guarded` | org members trusted; other users' thread messages are queued as context, not executed |
| `strict` | only allowlisted emails and admins; others are blocked |

A separate knob controls the agent's own reach into Slack, from
`channel-only` (default: proxied, scoped to the thread's channel) up to
`direct-token` (raw token in the session; internal environments only).

## Install

The Integrations checklist installs the app with least-privilege scopes.
DM support, file upload, and file download are optional scope groups you can
toggle off before installing. Both socket mode and HTTP mode are supported.
