Skip to content

In-Session Commands

Once a session is active, you can control it from Slack using !-prefixed commands. Commands are detected anywhere in a message — you can embed them mid-sentence or chain multiple commands.

!help
Fix the login bug !stop
!model claude-opus-4-5 then continue with high effort !effort high

Command syntax

  • Commands start with ! (or / for Claude CLI passthroughs)
  • The command name is case-insensitive
  • Arguments follow the command name, separated by spaces
  • Commands may appear anywhere in a message — before, after, or between other text
  • Unknown commands return a helpful error message
!help
!help status
!model claude-opus-4-5
!effort high

Session commands

These commands are handled locally by summon without forwarding to Claude.

Command Aliases Description
!auto [on\|off\|rules] !automode Toggle or inspect auto-mode classifier
!changes Show all files changed in this session
!clear !new, !reset Clear conversation history
!compact [instructions] Compact conversation context
!diff [file_path] Show git diff (all changes, or specify a file)
!effort [level] Switch or display the effort level
!end !quit, !exit, !logout End this session
!help [command] Show available commands
!model [model] Switch or display the active model
!show <file> Show current file contents
!status Show session status
!stop Cancel the current Claude turn
!summon [start\|resume [id]] Spawn or resume a session

!help

!help
!help status
!help model
!help global-commands   # list a plugin's skills

Without arguments, lists all available commands grouped by type. With an argument, shows usage and description for that command, including its type (local, passthrough, or blocked) and any aliases.

!status

!status

Returns current session information:

*Session Status*
  Model: `claude-opus-4-6`
  Effort: `high`
  Session ID: `abc123...`
  Turns: 7
  Cost: $0.0342
  Uptime: 42m 15s

!model

!model                        # show current model
!model claude-opus-4-6        # switch model
!model claude-sonnet-4-6

Lists available models when called without arguments. Switching takes effect on the next turn.

!effort

!effort                 # show current effort
!effort low             # switch to low effort
!effort high            # switch to high effort
!effort max             # switch to max (extended thinking)

Valid levels: low, medium, high, max. Takes effect on the next turn.

Extended thinking

!effort max enables extended thinking (ultrathink mode). Claude will reason more deeply but responses will take longer and cost more.

!auto

!auto                   # show classifier status
!auto on                # enable the classifier
!auto off               # disable the classifier
!auto rules             # show effective allow/deny rules

Toggles the auto-mode classifier, which automatically approves or blocks tool calls based on configurable prose rules. See Permissions — Auto-mode classifier for details.

Requires worktree

!auto on only works after the agent has entered a worktree. Before worktree entry, the classifier is dormant regardless of configuration.

!auto off and !auto rules work at any time.

!compact

!compact
!compact Focus on the authentication module

Compacts the conversation context to reduce token usage. Optional instructions tell Claude what to emphasize when summarizing the context. The conversation history is replaced with a summary.

!summon

!summon start                   # spawn a new child session
!summon resume                  # resume most recent session
!summon resume <session-id>     # resume a specific session

Spawns or resumes sessions from within a running session. Child sessions appear as new Slack channels. Requires the PM agent feature — see Projects.

!diff

!diff
!diff src/auth/login.py
!diff package.json

Without arguments, shows all uncommitted changes — both staged and unstaged — compared to HEAD, plus synthetic new-file diffs for untracked files. With a file argument, shows the same for that specific file. Rendered as a Slack snippet with syntax highlighting.

!show

!show src/auth/login.py
!show config.yaml

Displays the contents of a file as a Slack snippet with syntax highlighting. Useful for reviewing file contents without switching context. Files are truncated if they exceed the upload size limit.

!changes

!changes

Lists all files created or modified during this session, with line addition/deletion counts.


Claude CLI passthroughs

These commands are forwarded directly to the Claude Code CLI subprocess. They trigger Claude's built-in slash commands.

Command Description
!claude-developer-platform Claude developer platform info
!debug Debug session issues
!init Initialize project configuration
!pr-comments Review PR comments
!review Review code changes
!security-review Run security review
!simplify Simplify and refine code

Passthrough commands produce output in the session channel, the same as if you had typed them in a local Claude terminal.


Blocked commands

Some Claude CLI commands are blocked in Slack sessions because they depend on a local terminal or produce output that can't be rendered in Slack.

Blocked with specific reasons

Command Reason
!context Use !status for context info
!cost Use !status for cost info
!insights Generates a local HTML report — not viewable in Slack
!login Not available in Slack sessions
!release-notes Not available in Slack sessions

CLI-only commands

These commands require the interactive Claude CLI and are blocked with: "Only available in the interactive CLI"

!add-dir, !agents, !batch, !chrome, !claude-api, !config (!settings), !copy, !desktop (!app), !doctor, !export, !extra-usage, !fast, !feedback (!bug), !fewer-permission-prompts, !fork, !heapdump, !hooks, !ide, !install-github-app, !install-slack-app, !keybindings, !loop, !mcp, !memory, !mobile (!ios, !android), !output-style, !passes, !permissions (!allowed-tools), !plan, !plugin, !privacy-settings, !reload-plugins, !remote-control (!rc), !remote-env, !rename, !resume (!continue), !rewind (!checkpoint), !sandbox, !skills, !stats, !statusline, !stickers, !tasks, !team-onboarding, !terminal-setup, !theme, !update-config, !upgrade, !usage, !vim

When a blocked command is used, summon responds with a clear explanation rather than forwarding it to Claude.


Plugin skills

If you have Claude Code plugins installed, their skills and commands are available in sessions using the plugin:skill syntax:

!global-commands:session-start
!dev-essentials:lint

Use !help PLUGIN to list all skills from a specific plugin:

!help global-commands

Plugin skills are discovered automatically at session startup from ~/.claude/plugins/installed_plugins.json. Unambiguous skill names can be used without the plugin prefix:

!session-start    # if only one plugin has a skill named "session-start"

If two plugins provide the same skill name, the short form is ambiguous and disabled — use the full plugin:skill form instead.


Mid-message detection

Commands are detected anywhere in a message using a regex that matches !cmd or /cmd tokens after whitespace or at the start of the message. URLs and file paths are excluded:

  • https://example.com — not a command (URL)
  • repo/review — not a command (path-like)
  • Run !review then !status — two commands detected

For local commands with arguments (like !model and !effort), arguments are consumed from the text immediately following the command. The regex stops consuming at the next !cmd or /cmd token, so you can chain commands naturally:

Switch to opus !model claude-opus-4-6 and max effort !effort max