sladm — Slack Admin CLI for humans and AI agents
CLI & Agent Skill for managing Slack Enterprise Grid / Business+ workspaces via admin.* APIs.
日本語版 README
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
bun install -g sladm-cli
Or run directly without installing:
npx sladm-cli --help
bunx sladm-cli --help
Pre-built Binaries
Standalone binaries (no runtime required) are available on the Releases page:
| 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 |
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-cli
When 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-here
3. Verify
sladm token status
sladm teams list
Usage Examples
Invite a user
sladm users invite --team-id T024XCDSF --email new-member@example.com \
--channel-ids C01ABCD2EFG
sladm users invite --team-id T024XCDSF --email guest@partner.com \
--channel-ids C01ABCD2EFG --is-ultra-restricted true
Deactivate a user
sladm scim-users list --filter 'email eq "leaving@example.com"'
sladm scim-users deactivate --id U02T7QBTFGA
Authentication
Profile Management
sladm token add production xoxp-prod-token
sladm token add staging xoxp-staging-token
sladm token list
sladm token remove staging
Tokens 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
SLADM_PROFILE=staging sladm teams list
Priority: --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
sladm teams list --json
sladm teams list --plain
Commands
Token
token add <NAME> <TOKEN> | Add profile |
token list | List profiles |
token remove <NAME> | Remove profile |
token status | Check token status |
Teams
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
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
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
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
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
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
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
workflows search | Search workflows |
workflows unpublish | Unpublish workflow |
workflows permissions lookup | Lookup permissions |
workflows collaborators add | Add collaborator |
workflows collaborators remove | Remove collaborator |
Functions
functions list | List functions |
functions permissions lookup | Lookup permissions |
functions permissions set | Set permissions |
Auth Policy
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
barriers create | Create an information barrier |
barriers delete | Delete a barrier |
barriers list | List barriers |
barriers update | Update a barrier |
Emoji
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
roles add-assignments | Add role assignments |
roles list-assignments | List role assignments |
roles remove-assignments | Remove role assignments |
Usergroups
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)
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)
conversations list | List channels (conversations.list) |
conversations info | Get channel info (conversations.info) |
conversations members | List channel members (conversations.members) |
Teams (non-admin)
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
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
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>
bun test
bun run lint
bun link
Tech Stack
TypeScript / Bun / @slack/web-api / @optique/core
Architecture details: see CLAUDE.md
Related Links
License
MIT