Agent Browser CLI
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking…
CCSC lifecycle command center — fresh install walkthrough, health doctor, verify round-trip, auto-repair, Slack app manifest export, reset, tour, and uninstall.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill install -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace install --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/mcp/slack-channel/skills/install .claude/skills/install && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "install" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/plugins/mcp/slack-channel/skills/install into .claude/skills/install/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "install", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/plugins/mcp/slack-channel/skills/installType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill install -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace install --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/mcp/slack-channel/skills/install .agents/skills/install && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "install" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/plugins/mcp/slack-channel/skills/install into .agents/skills/install/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "install", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill install -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace install --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/mcp/slack-channel/skills/install .cursor/skills/install && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "install" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/plugins/mcp/slack-channel/skills/install into .cursor/skills/install/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "install", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jeremylongshore/tons-of-skills-marketplace.git --path plugins/mcp/slack-channel/skills/install--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill install -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace install --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/mcp/slack-channel/skills/install .gemini/skills/install && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "install" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/plugins/mcp/slack-channel/skills/install into .gemini/skills/install/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "install", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jeremylongshore/tons-of-skills-marketplace installInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill install -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/mcp/slack-channel/skills/install .github/skills/install && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "install" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/plugins/mcp/slack-channel/skills/install into .github/skills/install/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "install", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jeremylongshore/tons-of-skills-marketplace --skill install -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jeremylongshore/tons-of-skills-marketplace install --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jeremylongshore/tons-of-skills-marketplace.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/mcp/slack-channel/skills/install .opencode/skills/install && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "install" agent skill from https://github.com/jeremylongshore/tons-of-skills-marketplace/tree/main/plugins/mcp/slack-channel/skills/install into .opencode/skills/install/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "install", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
installCCSC lifecycle command center — fresh install walkthrough, health doctor, verify round-trip, auto-repair, Slack app manifest export, reset, tour, and uninstall.
Install is an agent skill from jeremylongshore/tons-of-skills-marketplace. CCSC lifecycle command center — fresh install walkthrough, health doctor, verify round-trip, auto-repair, Slack app manifest export, reset, tour, and uninstall. Use when installing the Slack channel for the first time, diagnosing or repairing an existing install, exporting a Slack app manifest, or tearing an install down. Trigger with "/slack-channel:install", "install the slack channel", "slack channel doctor", or "uninstall the slack channel".
Its SKILL.md is about 5.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/prerequisites.md`, `references/slack-app-setup.md` and `references/troubleshooting.md`). Compatibility notes: Requires Claude Code = v2.1.80 with a claude.ai login (Channels research preview rejects API-key-only auth), Bun = 1.0 (Node.js fallback supported), and a…
It works with Slack. The repository describes itself as: Model-agnostic agent-skills platform with a harness-free canonical layer, verified adapters, and the ccpi package manager. Explore at tonsofskills.com. The licence is Apache-2.0.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit cfae287. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadWriteBash(bun:*)Bash(claude:*)Bash(curl:*)Bash(jq:*)Bash(chmod:*)Bash(mkdir:*)Bash(mv:*)Bash(command:*)…and 1 more on the same allowed-tools line.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
claudebunjqcurlaptFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
api.slack.comslack.comAlso links to:
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
SLACK_BOT_TOKENSLACK_APP_TOKENANTHROPIC_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Requires Claude Code >= v2.1.80 with a claude.ai login (Channels research preview rejects API-key-only auth), Bun >= 1.0 (Node.js fallback supported), and a Slack workspace where you can create apps. Doctor mode additionally shells out to curl and jq.
From compatibility in the SKILL.md frontmatter.
Install loads about 5.8k tokens when it runs, and up to ~9.6k if it reads all its reference files. Until then it costs about 114 tokens; SKILL.md has 1,905 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
efixes, writes `~/.claude/channels/slack/.env`Install jq: brew install jq (macOS) | sudo apt install jq (Debian/Ubuntu)"environment. Load them from the user's `.env` before running any checkset -a; . ~/.claude/channels/slack/.env; set +a2. **`.env` exists, is mode `0600`, owned by current user**.3. **`.env` contains both tokens** with valid prefixes (`xoxb-` and `xapp-`).✅ Token file .env (0600)| `.env` perms wrong | `chmod 0600 ~/.claude/channels/slack/.env` |aude/channels/slack/sessions/`. Tokens (`.env`) and audit logNEVER touch `.env` — Slack tokens are reusable.Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from jeremylongshore/tons-of-skills-marketplace at commit cfae287, republished under its Apache-2.0 licence (© jeremylongshore). 1,905 words, ~5,833 tokens.
.claude/skills/install/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.CCSC lifecycle command center. One skill, eight modes — fresh install through teardown. No subcommand defaults to the full install walkthrough.
/slack-channel:install [mode]
Modes:
install full fresh-clone walkthrough (default) ← new user starts here
doctor run a health check against an existing install
verify run the verification round-trip only
repair auto-fix common issues surfaced by doctor
manifest export a Slack app manifest.json (one-click import — saves 10 min of scope clicking)
reset wipe state and restart from Step 3 (keeps Slack app)
tour explain CCSC features without installing (for evaluators)
uninstall clean teardown — remove state dir, optionally guide Slack app deletionThis skill orchestrates. It delegates token configuration to
/slack-channel:configure and pairing to /slack-channel:access pair —
do not re-implement those.
Three prerequisites gate a fresh install; install mode checks them as Step 0
and doctor re-checks them on demand. See
references/prerequisites.md for the exact
commands and recovery paths.
bun --version. Node.js fallback is fine (see the prerequisites doc).claude --version. Older versions cannot load Channels.claude.ai login (NOT API-key-only) — Channels is Research Preview and rejects pure API-key auth.Doctor mode additionally shells out to curl and jq (see "Doctor
dependencies" below), and every mode past Step 1 assumes a Slack workspace
where you can create an app.
$ARGUMENTS.install, run the install mode.Mode: section is the complete procedure for that mode.install (default)End-to-end fresh-clone walkthrough.
┌────────────────────────────────────────────────────────┐
│ 0. Prerequisite check (Bun, Claude Code, claude.ai) │
│ 1. Slack app creation (or skip → /install manifest) │
│ 2. Add bot to channel ← THE silent killer step │
│ 3. Configure tokens → /slack-channel:configure │
│ 4. Start MCP server │
│ 5. Pair account → /slack-channel:access pair │
│ 6. Verification round-trip │
│ 7. Offer optional next steps │
└────────────────────────────────────────────────────────┘See references/prerequisites.md for the
exact commands and recovery paths. Three checks in order:
bun --version. If missing, show install command (Node fallback is fine — see prerequisites doc).claude --version. Older versions cannot load Channels.claude.ai login (NOT API-key-only): Channels is Research Preview and rejects pure API-key auth. If ANTHROPIC_API_KEY is set but no claude.ai session exists, instruct claude login.If any check fails, give the recovery command, wait for the user to fix, then re-check. Don't proceed with broken prerequisites.
Two paths: offer the manifest path (faster) or walk the manual UI:
/slack-channel:install manifest first to download
a slack-app-manifest.json, then at https://api.slack.com/apps click
Create New App → From an app manifest and paste it. All 8 scopes
and 4 event subscriptions are pre-configured. User just clicks
Install to Workspace and copies the two tokens.references/slack-app-setup.md for
the full step-by-step.Tokens stay in a scratch buffer at this point — they're written to disk in Step 3.
Most common silent failure. Slack installs apps to the workspace without joining channels. The pairing DM (Step 5) works because DMs auto-route, but a channel test message (Step 6) hits silence — the bot literally isn't in the channel to see the event.
Walk the user:
Private channels need explicit invitation. If multiple channels, repeat. Wait for confirmation before proceeding.
Delegate:
/slack-channel:configure <xoxb-...> <xapp-...>That skill validates token prefixes, writes ~/.claude/channels/slack/.env
with 0o600 permissions, never echoes tokens back. Do not re-implement.
bun install # if not already
claude --channels plugin:slack-channel@claude-code-pluginsNode.js or Docker alternatives: see
README.md § Quick Start
Options B/C.
/slack-channel:access pair <code>.User sends @<bot> hello in the channel from Step 2.
/slack-channel:install doctor to diagnose, then
/slack-channel:install repair to fix.Ask the user if they want any of these:
| Want | Run |
|---|---|
| Author a custom policy rule | /slack-channel:policy |
| Enable signed audit log (Ed25519) | bun scripts/audit-key.ts init — see 000-docs/key-management.md |
| Wire in a second bot (multi-agent) | See 000-docs/multi-agent-channels.md |
| Tighten access (allowlist mode) | /slack-channel:access policy allowlist, then add <user-id> per user |
| Run a health check anytime | /slack-channel:install doctor |
doctorHealth check an existing install. Reports a structured pass/fail per check,
no mutations. Suggests /slack-channel:install repair if fixable issues
are found.
The doctor checks below shell out to curl and jq. curl is preinstalled
on virtually every dev system; jq may not be. Verify before running:
command -v curl >/dev/null && command -v jq >/dev/null || echo "Install jq: brew install jq (macOS) | sudo apt install jq (Debian/Ubuntu)"The checks also need $SLACK_BOT_TOKEN and $SLACK_APP_TOKEN in the
environment. Load them from the user's .env before running any check
that references them:
set -a; . ~/.claude/channels/slack/.env; set +aIf the user prefers not to export the tokens (some shells leak env to child processes / process listings), substitute the literal token values inline — the doctor commands tolerate either form.
Run all in order:
~/.claude/channels/slack/ is a directory with mode 0700..env exists, is mode 0600, owned by current user..env contains both tokens with valid prefixes (xoxb- and xapp-).curl -s -H "Authorization: Bearer $SLACK_BOT_TOKEN" https://slack.com/api/auth.test | jq -e '.ok == true'. Reports the bot_id and team if live; "invalid_auth" / "token_revoked" / "account_inactive" if not.connections:write: curl -s -X POST -H "Authorization: Bearer $SLACK_APP_TOKEN" https://slack.com/api/apps.connections.open | jq -e '.ok == true and (.url | startswith("wss://"))'. Expects ok: true and a wss:// URL. Failure modes: "not_authed" (token missing), "missing_scope" (token lacks connections:write), "token_revoked" (regenerate).access.json exists, is mode 0600, parses as valid JSON: [ -f ~/.claude/channels/slack/access.json ] && jq empty ~/.claude/channels/slack/access.json.allowFrom is non-empty: jq -e '.allowFrom | length > 0' ~/.claude/channels/slack/access.json. If empty, user has not completed Step 5.audit.log exists, run bun server.ts --verify-audit-log ~/.claude/channels/slack/audit.log. Report hash-chain status.claude.ai login present: claude --version and claude auth status.access.json.channels: for each opted-in channel, curl -s -H "Authorization: Bearer $SLACK_BOT_TOKEN" "https://slack.com/api/conversations.members?channel=$CHANNEL_ID" | jq -e --arg bot "$BOT_USER_ID" '.members | index($bot) != null'. THIS catches the silent-killer Step 2 omission.Report format:
✅ State directory /home/.../slack (0700)
✅ Token file .env (0600)
✅ Bot token active — team=acme, bot_id=U0123
✅ App token active — connections:write
✅ Access file access.json (0600, valid JSON)
⚠️ Paired users 0 (run pairing flow — Step 5)
✅ Audit chain verified — 1247 events, no breaks # event count is an example
✅ Claude Code v2.4.1, claude.ai session active
❌ Bot in channel C_OPS opted-in but bot is NOT a member ← silent killer
Fix: open #ops → Integrations → Add an AppExit code: 0 if all green, 1 if any ⚠️ or ❌. Print
Suggested next: /slack-channel:install repair if any fixable issue.
verifyJust the Step 6 verification round-trip. Useful after repair or after
restarting Claude. Tells the user:
Send
@<bot> helloin any channel where the bot is added. I'll wait up to 30 seconds for a reply event in the journal.
Tail audit.log for the next 30s looking for gate.allowed followed by
reply.sent. Report success or timeout. On timeout, suggest doctor.
repairAuto-fix the issues doctor found that are safely fixable:
| Doctor finding | Repair action |
|---|---|
| State dir missing | mkdir -p ~/.claude/channels/slack && chmod 0700 ~/.claude/channels/slack |
.env perms wrong | chmod 0600 ~/.claude/channels/slack/.env |
access.json perms wrong | chmod 0600 ~/.claude/channels/slack/access.json |
access.json corrupt JSON | TS=$(date +%s); mv ~/.claude/channels/slack/access.json ~/.claude/channels/slack/access.json.broken.$TS && echo '{ "allowFrom": [], "channels": {}, "pending": [] }' > ~/.claude/channels/slack/access.json && chmod 0600 ~/.claude/channels/slack/access.json |
| Audit log hash break | DO NOT repair — surface for incident review (this means tampering or write loss) |
| Bot not in channel | Cannot fix from the terminal — print the exact Slack click-path |
| Token invalid | Cannot fix — instruct user to regenerate at api.slack.com/apps |
NEVER auto-modify access.json content beyond the corrupt-restart case
above. NEVER auto-modify the audit log. Both are append-only / engineer-edit-only.
After repair, re-run doctor and show before/after.
manifestGenerate a Slack app manifest JSON that pre-configures all 8 OAuth scopes and 4 event subscriptions in one import. Saves a fresh user ~10 minutes of UI clicking and eliminates the "did I add the right scopes" failure mode.
Write slack-app-manifest.json to the user's current directory:
{
"display_information": {
"name": "Claude Code Channel",
"description": "Bridge between Claude Code and Slack via Socket Mode + MCP",
"background_color": "#1a1a1a"
},
"features": {
"bot_user": {
"display_name": "Claude Code",
"always_online": true
}
},
"oauth_config": {
"scopes": {
"bot": [
"chat:write",
"channels:history",
"groups:history",
"im:history",
"reactions:write",
"files:read",
"files:write",
"users:read"
]
}
},
"settings": {
"event_subscriptions": {
"bot_events": [
"message.im",
"message.channels",
"message.groups",
"app_mention"
]
},
"interactivity": {
"is_enabled": true
},
"socket_mode_enabled": true,
"org_deploy_enabled": false,
"token_rotation_enabled": false
}
}Then print:
✅ Wrote slack-app-manifest.json
Next steps:
1. Open https://api.slack.com/apps
2. Click "Create New App" → "From an app manifest"
3. Choose your workspace
4. Paste the contents of slack-app-manifest.json
5. Click "Next" → "Create"
6. On the next screen: "Install to Workspace" → "Allow"
7. Copy the Bot Token (xoxb-...) from "OAuth & Permissions"
8. Copy the App-Level Token (xapp-...) from "Basic Information" → "App-Level Tokens"
(You may need to generate it; required scope: connections:write)
9. Run: /slack-channel:install
(it will pick up from Step 2 — adding the bot to a channel)resetWipe local state and re-pair, keeping the Slack app intact. Useful when:
access.json (revoked allowlist, etc.)Steps:
~/.claude/channels/slack/access.json
and ~/.claude/channels/slack/sessions/. Tokens (.env) and audit log
stay. Proceed? [y/N]"access.json to access.json.reset.<timestamp> (don't delete — keep one rollback)sessions/ to sessions.reset.<timestamp>/ (archive, never rm -rf — keep one rollback path per the skill's safety invariants)access.json with mode 0600/slack-channel:install from Step 5 (pairing) to re-enroll."NEVER touch audit.log in reset — the journal is permanent record.
NEVER touch .env — Slack tokens are reusable.
tourFor someone evaluating CCSC without installing. No mutations, no prerequisites required. Walk through:
README.md § Security.000-docs/audit-journal-architecture.md.auto_approve / deny / require_approval, two-person integrity, TTL windows. Reference README.md § Policy Engine.allowBotIds, !mute / !unmute. Reference 000-docs/multi-agent-channels.md.ARCHITECTURE.md.End with: "Ready to install? Run /slack-channel:install."
uninstallClean teardown.
~/.claude/channels/slack/ (tokens, access, sessions, audit log)~/.claude/channels/slack.uninstalled.<timestamp>
(don't rm -rf — keep one rollback path)Local state archived to ~/.claude/channels/slack.uninstalled.<timestamp>.
To delete it permanently:
rm -rf ~/.claude/channels/slack.uninstalled.<timestamp>
To revoke the Slack app:
1. Open https://api.slack.com/apps
2. Select your app
3. Settings → Basic Information → scroll down → "Delete App"
OR if you just want to revoke tokens without deleting the app:
- OAuth & Permissions → "Revoke Tokens"What each mode leaves behind, and what it prints:
| Mode | Output |
|---|---|
install | .env (0600) + access.json (0600) under ~/.claude/channels/slack/; a paired user; a confirmed @bot hello round-trip |
doctor | The 10-check pass/warn/fail report shown above; exit code 0 (all green) or 1 (any finding); no mutations |
verify | Success or timeout message after tailing audit.log for gate.allowed + reply.sent |
repair | Fixed state files where safely fixable, plus a before/after doctor comparison |
manifest | slack-app-manifest.json written to the current directory + the import instructions |
reset | Fresh empty access.json; prior state archived as *.reset.<timestamp>; .env and audit.log untouched |
tour | Conversation only — no filesystem changes |
uninstall | State dir archived to slack.uninstalled.<timestamp> + Slack-app revocation instructions |
verify) — almost always the
silent-killer Step 2 omission (bot not in channel). Run doctor; check 10
catches it and prints the exact Slack click-path.invalid_auth, token_revoked, missing_scope) —
cannot be repaired locally; instruct the user to regenerate tokens at
api.slack.com/apps, then re-run /slack-channel:configure.access.json — repair archives it as
access.json.broken.<timestamp> and writes a fresh empty file; pairing must
be redone.references/troubleshooting.md./slack-channel:install # full fresh-clone walkthrough
/slack-channel:install manifest # write slack-app-manifest.json, then import at api.slack.com/apps
/slack-channel:install doctor # 10-point health check, no mutations
/slack-channel:install repair # fix what doctor found, show before/after
/slack-channel:install tour # evaluate CCSC without touching the filesystem
/slack-channel:install uninstall # archive state, print Slack-app revocation stepsTypical recovery sequence after a silent channel:
/slack-channel:install doctor # → "❌ Bot in channel — C_OPS opted-in but bot is NOT a member"
# add the bot via Slack UI (channel → Integrations → Add an App)
/slack-channel:install verify # → round-trip confirmed| Mode | Success means |
|---|---|
install | .env exists (0600), user is paired, @bot hello round-trip works |
doctor | All 10 checks reported with pass/warn/fail status; exit code reflects state |
verify | Round-trip succeeds within 30s, journal records gate.allowed + reply.sent |
repair | All fixable findings cleared; doctor re-run shows green or only unfixable issues |
manifest | slack-app-manifest.json written to cwd, instructions printed |
reset | access.json rotated, sessions cleared, .env + audit.log preserved |
tour | User has a mental model of what CCSC does without touching their filesystem |
uninstall | State dir archived, Slack-app deletion instructions printed |
configure handles them; this skill
only orchestrates.~/.claude/channels/slack/.env./slack-channel:access).access.json content beyond the
corrupt-restart case. Never modify audit.log. Both are
append-only / engineer-edit-only.rm -rf. One rollback path
is always preserved.references/prerequisites.md — Bun, Claude Code, claude.ai login check detailsreferences/slack-app-setup.md — Manual Slack app creation step-by-stepreferences/troubleshooting.md — Top silent-failure modes + recoveryskills/configure/SKILL.md — Token configuration (delegated to)skills/access/SKILL.md — Pairing + allowlist (delegated to)skills/policy/SKILL.md — Policy authoring (optional next step)README.md — Human-readable quick startAGENTS.md — Cross-tool agent referenceACCESS.md — Full access-control schema000-docs/key-management.md — Audit-signing key lifecycle000-docs/multi-agent-channels.md — Multi-agent recipe© jeremylongshore, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in plugins/mcp/slack-channel/skills/install of jeremylongshore/tons-of-skills-marketplace.
Open the folder on GitHubat commit cfae287
Install next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Install this skilljeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~5.8k | Automated safety check: Notes | Apache-2.0 | |
| Agent Browser CLIvercel-labs/agent-browser | 44k | 24 repos | ~864 | Automated safety check: Pass | Apache-2.0 | |
| Slack GIF Creatoranthropics/skills | 180k | 29 repos | ~2k | Automated safety check: Pass | Apache-2.0 | |
| Code Design Rationale Investigatorcursor/plugins | 11k | 9 repos | ~2.6k | Automated safety check: Pass | None | |
| Electron App Automationvercel-labs/agent-browser | 44k | 5 repos | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Slack Browser Automationvercel-labs/agent-browser | 44k | 1 repos | ~2.1k | Automated safety check: Pass | Apache-2.0 |
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking…
anthropics/skills
Provides Slack size and frame limits, Python animation helpers and validators for building animated GIFs sized for emoji and messages.
cursor/plugins
Digs into why code is shaped the way it is by checking git history, pull requests and connected tools in parallel, then reporting a cited read on the tradeoffs.
vercel-labs/agent-browser
Automates Electron desktop apps such as VS Code, Slack or Discord by connecting agent-browser to their Chrome DevTools Protocol port.
vercel-labs/agent-browser
Drives the Slack web app with the agent-browser CLI to check unread channels, search, read channel details and extract information, with screenshots as evidence.
ComposioHQ/composio
Route and complete Composio work across Composio For You and Composio Platform.
jeremylongshore/tons-of-skills-marketplace
Execute this skill enables AI assistant to conduct a security-focused code review using the security-agent plugin.
jeremylongshore/tons-of-skills-marketplace
Build this skill automates the adaptation of pre-trained machine learning models using transfer learning techniques.
jeremylongshore/tons-of-skills-marketplace
Execute proactive auto-loading: automatically detects and loads agents.md files.
jeremylongshore/tons-of-skills-marketplace
Aggregate and centralize performance metrics from applications, systems, databases, caches, and services.
jeremylongshore/tons-of-skills-marketplace
Execute this skill enables AI assistant to analyze capacity requirements and plan for future growth.
jeremylongshore/tons-of-skills-marketplace
Process use when you need to work with database indexing. An agent skill from jeremylongshore/tons-of-skills-marketplace.
Works with
CCSC lifecycle command center — fresh install walkthrough, health doctor, verify round-trip, auto-repair, Slack app manifest export, reset, tour, and uninstall. Install is an agent skill from jeremylongshore/tons-of-skills-marketplace. CCSC lifecycle command center — fresh install walkthrough, health doctor, verify round-trip, auto-repair, Slack app manifest export, reset, tour, and uninstall.
Install fits situations like: installing the Slack channel for the first time; repairing an existing install; exporting a Slack app manifest; tearing an install down.
Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill install -a claude-code`. Or copy the skill folder (plugins/mcp/slack-channel/skills/install in jeremylongshore/tons-of-skills-marketplace) into .claude/skills/install in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill install -a codex`. Or copy the skill folder (plugins/mcp/slack-channel/skills/install in jeremylongshore/tons-of-skills-marketplace) into .agents/skills/install in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jeremylongshore/tons-of-skills-marketplace --skill install -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/install, .gemini/skills/install, .github/skills/install and .opencode/skills/install in your project.
Going by SKILL.md and its folder, Install needs the command-line tools its instructions call (claude, bun, jq, curl and apt) and credentials named SLACK_BOT_TOKEN, SLACK_APP_TOKEN and ANTHROPIC_API_KEY. Our summary lists: Node.js; Docker; A credential in ANTHROPIC_API_KEY; A credential in SLACK_BOT_TOKEN. Its frontmatter pre-approves these tools: Read, Write, Bash(bun:*), Bash(claude:*), Bash(curl:*), Bash(jq:*), Bash(chmod:*), Bash(mkdir:*), Bash(mv:*), Bash(command:*), Bash(date:*). Compatibility (from SKILL.md): Requires Claude Code >= v2.1.80 with a claude.ai login (Channels research preview rejects API-key-only auth), Bun >= 1.0 (Node.js fallback supported), and a Slack workspace where you can create apps. Doctor mode additionally shells out to curl and jq..
SKILL.md names 3 domains. In commands or code: api.slack.com and slack.com; the agent is likely to contact these when it follows the instructions. As links in the text: github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (mentions a .env file; runs commands with sudo), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Install is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.8k tokens (SKILL.md is roughly 23k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Install: Agent Browser CLI (vercel-labs/agent-browser, 44k stars), Slack GIF Creator (anthropics/skills, 180k stars), Code Design Rationale Investigator (cursor/plugins, 11k stars) and Electron App Automation (vercel-labs/agent-browser, 44k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jeremylongshore (a GitHub user) maintains it in jeremylongshore/tons-of-skills-marketplace, which has 2,827 GitHub stars. The repository holds 3,342 skills in this directory. The repository was last updated on October 10, 2026.
Source: jeremylongshore/tons-of-skills-marketplace on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.