| name | access |
| description | Manage Slack channel access control — pairing, allowlist, channel opt-in. Use when approving a pairing code, changing the DM policy, editing the user allowlist, or opting a channel in or out. Trigger with "/slack-channel:access", "pair my slack account", "add user to slack allowlist", or "opt in a slack channel". |
| version | 1.0.1 |
| author | Jeremy Longshore <jeremy@intentsolutions.io> |
| license | Apache-2.0 |
| compatibility | Requires Claude Code with the slack-channel plugin installed (state under ~/.claude/channels/slack/); pairing confirmations additionally need the MCP server running. |
| tags | ["slack","access-control","pairing","allowlist"] |
| user-invocable | true |
| argument-hint | pair <code> | policy <mode> | add <user_id> | remove <user_id> | channel <id> [opts] | status |
| allowed-tools | ["Read","Write","Bash(chmod:*)","Bash(mv:*)"] |
/slack-channel:access
Overview
Manage who can reach your Claude Code session through Slack. This skill is the
terminal-side half of the access-control model: it approves pairing codes,
sets the DM policy, maintains the user allowlist, and opts channels in or out
with an interaction mode. Every subcommand reads and rewrites the single state
file (access.json) atomically.
Usage
/slack-channel:access pair <code> # Approve a pending pairing
/slack-channel:access policy <pairing|allowlist|disabled> # Set DM policy
/slack-channel:access add <slack_user_id> # Add user to allowlist
/slack-channel:access remove <slack_user_id> # Remove from allowlist
/slack-channel:access channel <channel_id> [--ambient] [--allow <user_id,...>] # Opt in a channel (default: mention-to-engage)
/slack-channel:access channel remove <channel_id> # Remove channel opt-in
/slack-channel:access status # Show current config
Prerequisites
- A completed install (
/slack-channel:install) — the state directory
~/.claude/channels/slack/ must exist.
- State file:
~/.claude/channels/slack/access.json — every subcommand
operates on this one file. It holds the DM policy, allowlist, channel
opt-ins, and pending pairing codes, and must stay mode 0o600.
- For
pair, the MCP server should be running so the confirmation message
can be delivered back to the Slack user.
Instructions
Parse $ARGUMENTS and execute the matching subcommand:
pair <code>
- Load
access.json
- Find the pending entry matching
<code> (case-insensitive)
- If not found or expired: show "No pending pairing with that code."
- If found:
- Add
entry.senderId to allowFrom
- Remove the pending entry
- Save
access.json with permissions 0o600
- Show:
Approved! User <senderId> can now DM this session.
- Send a confirmation message to the user in Slack (via the reply tool if the MCP server is running)
policy <mode>
- Validate mode is one of:
pairing, allowlist, disabled