npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

sladm-cli

v0.5.1

Published

Slack Admin CLI for humans and AI agents — manage Enterprise Grid via admin.* APIs

Readme

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
# or
bun install -g sladm-cli

Or run directly without installing:

npx sladm-cli --help
# or
bunx sladm-cli --help

Pre-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-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

# 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 true

Deactivate 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 U02T7QBTFGA

Authentication

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 profile

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          # Via flag
SLADM_PROFILE=staging sladm teams list         # Via env var

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                 # 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 command

Tech Stack

TypeScript / Bun / @slack/web-api / @optique/core

Architecture details: see CLAUDE.md

Related Links

License

MIT