Skip to content

Slack commands

A thread message starting with ! is a command the model does not see; !!, +<tier> and ch are prefixes

Command words are not case-sensitive. An unknown command answers unknown command `!x`, try `!help` .

Session commands

CommandArgumentsEffect
!helpnoneLists the commands, the current model and mode.
!stop, !escnoneStops the current turn and cancels its open approval prompts and questions.
!modea mode nameSets the permission mode. An unknown name lists the modes.
!modelsmart, fast, default, or a model idSwitches the model from the next model request, including mid-turn. Kept across restarts. No argument: shows the model and the choices.
!effortlow, medium, high, xhigh, maxSets reasoning effort. Default medium. No or invalid argument: shows the level and the choices.
!speedfast, standardSets output speed. Default fast: Claude’s fast mode on models that have it. No argument: shows the value.
!statusnoneShows model, effort (once set), mode (unless bypassPermissions), context use, cost, thread id, session directory, harness session id and Computer’s commit.
!diffnoneShows the session directory’s git diff. In a workspace session it answers no changes.
!restartnoneAfter the current turn, restarts the runner on the newest deployed version. The conversation carries over. Not in one-machine mode (npm start).
!donenoneArchives a code channel. In a thread it only answers that this is a thread.

Mode names

!mode argumentMode
default, askdefault
accept, acceptedits, editsacceptEdits
planplan
autoauto
bypass, yolobypassPermissions

A new session starts in bypassPermissions unless the gateway’s PERMISSION_MODE says otherwise.

Message prefixes

PrefixEffectNotes
!! <text>Interrupts the running turn and sends <text> as the next message.No turn running: an ordinary message. A tier may follow: !! +fast summarize what you have.
+smart, +fast, +defaultSwitches the session’s model and sends the rest to the agent.A tier alone only switches. Not case-sensitive. Same mapping as !model smart.
@computer ch <task>, @computer channel <task>Runs the session in a new code channel.New mention only, not in a direct message. A tier may come before or after ch. If the channel cannot be created, the session runs in the thread.

A message without !! reaches the running turn at its next tool boundary. See Messages during a turn.

Model tiers

Not in the public code yet: launch blocker 3 (model proxy). The public build runs Claude Code only.
TierClaude CodeCodex
+smartclaude-fable-5-2gpt-6-astra
+fastclaude-sonnet-5-5gpt-6-luna
+defaultThe host’s MODEL setting, else claude-opus-5-5gpt-6.1-sol

In a Codex session !effort also accepts ultra, and !speed fast selects Codex’s priority tier.

Secrets

!secret and !secrets are the same command. The gateway handles it: the message never reaches the session, and only the sender sees the answers. Not in one-machine mode (npm start). See Secrets and variables.

CommandEffect
!secret, !secret list, !secret lsLists secret names by scope, never values.
!secret helpShows the usage.
!secret NAME, !secret set NAME, !secret add NAMEShows a button that opens a private form for the value, its scope, and whether it is a file.
!secret NAME file, !secret set NAME fileThe same, with the file option already chosen.
!secret rm NAME [scope] (also remove, delete, unset)Removes the secret from the scope. No scope: the narrowest scope that has it.
ScopeCovers
sessionThe session.
me, userEvery session the person owns.
workspaceThe workspace. Admins only.

The narrowest scope that has the name wins.

Variables

!var, !vars, !variable and !variables are the same command, handled by the gateway like !secret. Lists show values.

CommandEffect
!var, !var list, !var lsLists names and values, by scope.
!var helpShows the usage.
!var NAME value [scope], !var NAME=value [scope], !var set NAME value [scope] (also add)Sets a variable. The value may be wrapped in backticks or a code block. At most 3,000 characters.
!var rm NAME [scope] (also remove, delete, unset)Removes the variable from the scope.

Scopes: session (the default in a session’s thread), me or user (the default elsewhere), workspace or org (admins only). A name or value that looks like a credential asks for confirmation. A secret and a variable cannot share a name in one scope.