sladm-cli
v0.5.1
Published
Slack Admin CLI for humans and AI agents — manage Enterprise Grid via admin.* APIs
Maintainers
Readme
sladm — Slack Admin CLI for humans and AI agents
CLI & Agent Skill for managing Slack Enterprise Grid / Business+ workspaces via admin.* APIs.
Features
- 130 commands covering admin.* and standard Slack APIs: teams, users, conversations, apps, invite-requests, workflows, functions, scim-users, scim-groups, auth-policy, barriers, emoji, roles, usergroups, and token management
- Agent Skill — ships with a Claude Code / Codex skill so AI agents can drive Slack admin tasks using the CLI as a tool
- Bulk operations — archive, delete, or move hundreds of channels at once with
conversations bulk-* - Output formats — table (human), JSON (programmatic), TSV (pipe-friendly)
- Multi-org support — switch between orgs with
--profile, tokens stored in OS keychain
Note: This CLI is in alpha. Use at your own risk. Only a subset of features have been verified.
Installation
Requires Bun runtime:
npm install -g sladm-cli
# or
bun install -g sladm-cliOr run directly without installing:
npx sladm-cli --help
# or
bunx sladm-cli --helpPre-built Binaries
Standalone binaries (no runtime required) are available on the Releases page:
| Platform | File |
|----------|------|
| macOS (Apple Silicon) | sladm-darwin-arm64 |
| macOS (Intel) | sladm-darwin-x64 |
| Linux (x64) | sladm-linux-x64 |
| Linux (arm64) | sladm-linux-arm64 |
| Windows (x64) | sladm-windows-x64.exe |
# Example: download and install on macOS (Apple Silicon)
curl -L https://github.com/yamitzky/slack-admin-cli/releases/latest/download/sladm-darwin-arm64 -o sladm
chmod +x sladm
sudo mv sladm /usr/local/bin/Agent Skill
To use this CLI as an agent skill in Claude Code, Cursor, OpenCode, etc.:
npx skills add yamitzky/slack-admin-cliWhen the skill is active, agents automatically use sladm commands for Slack admin operations, with per-command-group recipes providing API reference context.
Quick Start
1. Create a Slack App
Create an app at Slack API and grant the required admin.* scopes (see Required Scopes).
2. Register Token
sladm token add default xoxp-your-token-here3. Verify
sladm token status
sladm teams listUsage Examples
Invite a user
# Invite as a full member
sladm users invite --team-id T024XCDSF --email [email protected] \
--channel-ids C01ABCD2EFG
# Invite as a single-channel guest
sladm users invite --team-id T024XCDSF --email [email protected] \
--channel-ids C01ABCD2EFG --is-ultra-restricted trueDeactivate a user
# Find the user
sladm scim-users list --filter 'email eq "[email protected]"'
# Deactivate their account (org-wide, via SCIM API)
sladm scim-users deactivate --id U02T7QBTFGAAuthentication
Profile Management
sladm token add production xoxp-prod-token # Add profile
sladm token add staging xoxp-staging-token # Add another
sladm token list # List profiles
sladm token remove staging # Remove profileTokens are stored in the OS keychain (macOS Keychain / Linux Secret Service). Falls back to ~/.config/sladm/.token-<name> if keychain is unavailable.
Switching Profiles
sladm --profile production teams list # Via flag
SLADM_PROFILE=staging sladm teams list # Via env varPriority: --profile flag > SLADM_PROFILE env var > default profile
If you only have one profile, --profile is not needed.
Output
All data-returning commands support three output formats:
sladm teams list # Table (default)
sladm teams list --json # JSON
sladm teams list --plain # TSV (for scripting)Commands
Token
| Command | Description |
|---------|-------------|
| token add <NAME> <TOKEN> | Add profile |
| token list | List profiles |
| token remove <NAME> | Remove profile |
| token status | Check token status |
Teams
| Command | Description |
|---------|-------------|
| teams create | Create team |
| teams list | List teams |
| teams admins list | List admins |
| teams owners list | List owners |
| teams settings info | Get team settings |
| teams settings set-name | Set team name |
| teams settings set-icon | Set team icon |
| teams settings set-description | Set description |
| teams settings set-discoverability | Set discoverability |
| teams settings set-default-channels | Set default channels |
Users
| Command | Description |
|---------|-------------|
| users list | List users |
| users invite | Invite user |
| users assign | Assign to team |
| users remove | Remove from team |
| users set-admin | Promote to admin |
| users set-owner | Promote to owner |
| users set-regular | Demote to regular user |
| users set-expiration | Set guest account expiration |
| users unsupported-versions export | Export users on unsupported Slack versions |
| users session reset | Reset session |
| users session list | List active sessions |
| users session invalidate | Invalidate a session |
| users session reset-bulk | Bulk reset sessions |
| users session get-settings | Get session settings |
| users session set-settings | Set session settings |
| users session clear-settings | Clear session settings |
Conversations
| Command | Description |
|---------|-------------|
| conversations create | Create channel |
| conversations delete | Delete channel |
| conversations archive | Archive channel |
| conversations unarchive | Unarchive channel |
| conversations rename | Rename channel |
| conversations search | Search channels |
| conversations invite | Invite user to channel |
| conversations convert-to-private | Convert to private |
| conversations convert-to-public | Convert to public |
| conversations get-prefs | Get channel preferences |
| conversations set-prefs | Set channel preferences |
| conversations get-custom-retention | Get retention policy |
| conversations set-custom-retention | Set retention policy |
| conversations remove-custom-retention | Remove retention policy |
| conversations get-teams | List associated teams |
| conversations set-teams | Set team associations |
| conversations disconnect-shared | Disconnect shared channel |
| conversations bulk-archive | Bulk archive |
| conversations bulk-delete | Bulk delete |
| conversations bulk-move | Bulk move across teams |
| conversations lookup | Lookup by criteria |
| conversations restrict-access add-group | Add access group |
| conversations restrict-access list-groups | List access groups |
| conversations restrict-access remove-group | Remove access group |
| conversations ekm list-original-connected-channel-info | EKM channel info |
SCIM Users
| Command | Description |
|---------|-------------|
| scim-users list | List users (SCIM) |
| scim-users get | Get user details (SCIM) |
| scim-users create | Create user (SCIM) |
| scim-users update | Update user attributes (SCIM) |
| scim-users deactivate | Deactivate user (SCIM) |
SCIM Groups
| Command | Description |
|---------|-------------|
| scim-groups list | List groups (SCIM) |
| scim-groups get | Get group details (SCIM) |
| scim-groups create | Create group (SCIM) |
| scim-groups update | Update group (SCIM) |
| scim-groups delete | Delete group (SCIM) |
Apps
| Command | Description |
|---------|-------------|
| apps approve | Approve app |
| apps restrict | Restrict app |
| apps clear-resolution | Clear approval/restriction |
| apps uninstall | Uninstall app |
| apps activities list | Activity log |
| apps approved list | List approved apps |
| apps restricted list | List restricted apps |
| apps requests list | List requests |
| apps requests cancel | Cancel request |
| apps config lookup | Lookup app config |
| apps config set | Set app config |
Invite Requests
| Command | Description |
|---------|-------------|
| invite-requests approve | Approve request |
| invite-requests deny | Deny request |
| invite-requests list | List pending requests |
| invite-requests approved list | List approved requests |
| invite-requests denied list | List denied requests |
Workflows
| Command | Description |
|---------|-------------|
| workflows search | Search workflows |
| workflows unpublish | Unpublish workflow |
| workflows permissions lookup | Lookup permissions |
| workflows collaborators add | Add collaborator |
| workflows collaborators remove | Remove collaborator |
Functions
| Command | Description |
|---------|-------------|
| functions list | List functions |
| functions permissions lookup | Lookup permissions |
| functions permissions set | Set permissions |
Auth Policy
| Command | Description |
|---------|-------------|
| auth-policy assign-entities | Assign entities to an auth policy |
| auth-policy get-entities | List entities assigned to a policy |
| auth-policy remove-entities | Remove entities from a policy |
Barriers
| Command | Description |
|---------|-------------|
| barriers create | Create an information barrier |
| barriers delete | Delete a barrier |
| barriers list | List barriers |
| barriers update | Update a barrier |
Emoji
| Command | Description |
|---------|-------------|
| emoji add | Add a custom emoji |
| emoji add-alias | Add an emoji alias |
| emoji list | List custom emoji |
| emoji remove | Remove an emoji |
| emoji rename | Rename an emoji |
Roles
| Command | Description |
|---------|-------------|
| roles add-assignments | Add role assignments |
| roles list-assignments | List role assignments |
| roles remove-assignments | Remove role assignments |
Usergroups
| Command | Description |
|---------|-------------|
| usergroups add-channels | Add default channels to a usergroup |
| usergroups add-teams | Add teams to a usergroup |
| usergroups list-channels | List default channels of a usergroup |
| usergroups remove-channels | Remove default channels from a usergroup |
| usergroups list | List usergroups |
| usergroups create | Create a usergroup |
| usergroups update | Update a usergroup |
| usergroups enable | Enable a usergroup |
| usergroups disable | Disable a usergroup |
| usergroups users list | List members of a usergroup |
| usergroups users update | Update members of a usergroup |
Users (non-admin)
| Command | Description |
|---------|-------------|
| users info | Get user info (users.info) |
| users lookup-by-email | Look up user by email (users.lookupByEmail) |
| users get-presence | Get user presence (users.getPresence) |
| users set-presence | Set user presence (users.setPresence) |
| users conversations | List user's conversations (users.conversations) |
| users identity | Get caller's identity (users.identity) |
| users profile get | Get user profile (users.profile.get) |
| users profile set | Set user profile fields (users.profile.set) |
Conversations (non-admin)
| Command | Description |
|---------|-------------|
| conversations list | List channels (conversations.list) |
| conversations info | Get channel info (conversations.info) |
| conversations members | List channel members (conversations.members) |
Teams (non-admin)
| Command | Description |
|---------|-------------|
| teams info | Get team info (team.info) |
| teams profile get | Get team profile (team.profile.get) |
| teams billable-info | Get billable info per user (team.billableInfo) |
| teams access-logs | Get access logs (team.accessLogs) |
| teams integration-logs | Get integration logs (team.integrationLogs) |
Required Scopes
| Scope | Purpose |
|-------|---------|
| admin.teams:read | List teams, get settings |
| admin.teams:write | Create teams, update settings |
| admin.users:read | List users |
| admin.users:write | Invite users, manage roles |
| admin.conversations:read | Search channels, get settings |
| admin.conversations:write | Channel operations, bulk actions |
| admin.apps:read | List apps, get config |
| admin.apps:write | Approve/restrict apps, set config |
| admin.invites:read | List invite requests |
| admin.invites:write | Approve/deny invite requests |
| admin.workflows:read | List workflows and functions |
| admin.workflows:write | Manage workflows, set permissions |
| admin | SCIM user and group management |
Non-admin API Scopes
| Scope | Purpose |
|-------|---------|
| users:read | User info, presence, conversations |
| users:read.email | Look up user by email |
| users.profile:read | Read user profile |
| users.profile:write | Update user profile |
| channels:read | List public channels, get channel info/members |
| groups:read | Private channel info/members |
| mpim:read | Multi-party DM info/members |
| im:read | DM info/members |
| usergroups:read | List and read usergroups |
| usergroups:write | Create, update, enable, disable usergroups |
| team:read | Team info and profile |
| admin (user token) | team.accessLogs and team.billableInfo require admin privilege |
Development
git clone https://github.com/mitsuki-ogasahara/slack-admin-cli.git
cd slack-admin-cli
bun install
bun run dev -- <command> # Run in development
bun test # Run tests
bun run lint # Type check (tsc --noEmit)
bun link # Link as global commandTech Stack
TypeScript / Bun / @slack/web-api / @optique/core
Architecture details: see CLAUDE.md
Related Links
License
MIT
