By circlesac
Slack app lifecycle CLI — create, install, and manage Slack apps from the terminal
Slack app lifecycle CLI — create, install, inspect, and manage Slack apps (and their incoming webhooks) from the terminal, using your existing browser session. No bot token juggling, no clicking through api.slack.com/apps.
slack2 list # apps you can manage
slack2 import A0123456789 # pull an app's credentials into local config
slack2 webhook get A0123456789 --channel ops # print a channel's incoming webhook URL
# Homebrew (recommended)
brew install circlesac/tap/slack2
# npm
npm install -g @circlesac/slack2-cli
slack2 drives the Slack app-management UI/APIs as you, via your browser session — there's no separate API token to provision.
slack2 login # reads the Slack session cookie from Chrome / the Slack app
The session is saved to ~/.config/slack2/cookies.json. Re-run slack2 login if a command reports the session expired. App credentials imported with slack2 import are stored in ~/.config/slack2/apps.json.
| Command | Args / options | What it does |
|---|---|---|
login | — | Save the Slack session from browser cookies |
create | <manifest> | Create an app via the Manifest API |
install | <APP-ID> | Install a created app to the workspace (OAuth) → bot token |
list | — | List Slack apps from api.slack.com |
update | <APP-ID> | Update an app's manifest |
delete | <APP-ID> | Delete an app via the Manifest API |
token | <APP-ID> | Print the bot token for an app |
import | <APP-ID> -w/--workspace -f/--force | Import an externally-created app into local config (scrapes client/signing secret) |
webhook list | <APP-ID> --json | List the app's incoming webhooks (channel + URL) |
webhook get | <APP-ID> --channel <name> | Print one channel's incoming webhook URL (scriptable) |
webhook add | <APP-ID> | Mint a new incoming webhook via OAuth (pick the channel on the consent screen) |
App IDs look like A0123456789 — find them with slack2 list.
Slack incoming webhooks belong to a specific app + channel, and their URLs aren't exposed by the Slack Web API — normally you have to dig them out of the app's config page. webhook list/get read them from that page using your saved session; webhook add runs the OAuth install flow to create a new one.
# See every webhook configured on an app
slack2 webhook list A0123456789
# Grab one channel's URL (e.g. to feed an alerting integration)
HOOK=$(slack2 webhook get A0123456789 --channel alerts)
# Create a new webhook — choose the target channel in the browser
slack2 webhook add A0123456789
<APP-ID>); there is no workspace-wide aggregation — that mirrors Slack's own model, where webhooks and credentials are app-scoped.~/.config/slack2/ accordingly and don't commit captured values.Releases run through GitHub Actions (CalVer via @circlesac/oneup) — multi-platform binaries, npm publish, and a Homebrew tap update. Do not bump versions or publish by hand. See CLAUDE.md.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Interact with Slack as yourself — send messages, read threads, search, and create canvases via holla CLI
Set up and use cgrok for Cloudflare-based secure tunneling to local development servers
CalVer-based version management with oneup
Notion CLI reference for Claude Code — search, create, and manage Notion pages, databases, blocks, and more
Query Flex HR — list employees, search by name/department, view org structure via flex CLI
npx claudepluginhub circlesac/slack2-cli --plugin slack2Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Frontend design skill for UI/UX implementation
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Memory compression system for Claude Code - persist context across sessions
Marketing skills for AI agents — conversion optimization, copywriting, SEO, paid ads, ad creative, and growth
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.