agentleFS
jalbarrangjalbarrang/skills/slack/SKILL.md

slack

Skill2 starsChanged 3 months agoMITView on GitHub

Read Slack channels and threads, search the workspace, post/edit/delete bot messages, and download shared files via the Slack Web API. Use when the user asks to read Slack, list channels, fetch channel history, open a thread, search Slack messages, download a Slack file or image, post to Slack, edit a bot message, delete a bot message, or work with SLACK_BOT_TOKEN / SLACK_USER_TOKEN.

64 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use taskflow-inbox-triage, BlueBubbles and 9 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • AtomicBot-aiSkill

    taskflow-inbox-triage

    Also in 6 projects that use this

  • jiulingyunSkill

    BlueBubbles

    为Clawdbot构建或更新BlueBubbles外部通道插件(扩展包,REST发送/探测,webhook入站)。

    Also in 18 projects that use this

  • seedprodSkill

    voice-call

    Start voice calls via the OpenClaw voice-call plugin.

    Also in 16 projects that use this

  • hkyutongSkill

    openclaw-release-maintainer

    Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.

    Also in 4 projects that use this

  • seedprodSkill

    session-logs

    Search and analyze your own session logs (older/parent conversations) using jq.

    Also in 16 projects that use this

  • AtomicBot-aiSkill

    taskflow

    Also in 6 projects that use this

  • +5 more from seedprod

The file

We split this skill into the rules it gives an agent

4 rules. 0 are common, 1 is distinctive, and 3 are very specific to this project.

  • 0

    Common

    Most of the 61 edited versions we read keep these.

  • 1

    Distinctive

    This author's own choices. Worth a look.

  • 3

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Create a Slack app at api.slack.com/apps and install it to the workspace.

    line 12
  2. Very specific:

    Run from any cwd as node <skill-dir>/scripts/<name>.mjs ….

    line 36
  3. Very specific:

    Read with read.mjs / thread.mjs.

    line 54
  4. Very specific:

    Search with search.mjs only when SLACK_USER_TOKEN is set.

    line 55

“Common” is measured: kept by at least 6 in 10 of the 61 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

slack

Self-contained Slack Web API skill. Scripts use Node ≥20 fetch only — no npm dependencies.

Setup

  1. Create a Slack app at api.slack.com/apps and install it to the workspace.
  2. Set env tokens (secrets stay in the environment, never in JSON config):
export SLACK_BOT_TOKEN=xoxb-...   # required for most commands
export SLACK_USER_TOKEN=xoxp-...  # required for search only
  1. Bot token scopes (SLACK_BOT_TOKEN): channels:read, channels:history, groups:read, groups:history, im:history, files:read, chat:write.
  2. User token scope (SLACK_USER_TOKEN): search:read (bots cannot call search.messages).
  3. Invite the bot into each channel it should read or post to (/invite @app). Otherwise history/post returns not_in_channel.
  4. Optional non-secret defaults in .agents/slack.json (project) or ~/.agents/slack.json:
{
  "defaultChannel": "C0123ABC456",
  "messageLimit": 50
}

IDs: channel IDs look like C0123ABC456; thread/message timestamps look like 1512085950.000216. Edits and deletes only work on messages the bot itself posted.

Scripts

Run from any cwd as node <skill-dir>/scripts/<name>.mjs ….

ScriptUsage
channels.mjsnode scripts/channels.mjs [--types t] [--limit N] [--cursor c]
read.mjsnode scripts/read.mjs <channel> [--oldest ts] [--latest ts] [--limit N] [--cursor c]
thread.mjsnode scripts/thread.mjs <channel> <thread_ts> [--limit N] [--cursor c]
search.mjsnode scripts/search.mjs <query> [--count N] [--sort score|timestamp] [--sort-dir asc|desc]
download.mjsnode scripts/download.mjs <fileId>
post.mjsnode scripts/post.mjs <channel> <text> [--thread ts] [--broadcast]
edit.mjsnode scripts/edit.mjs <channel> <ts> <text>
delete.mjsnode scripts/delete.mjs <channel> <ts>

Deep docs: reference/channels.md, reference/messages.md, reference/search.md, reference/files.md, reference/posting.md.

Workflow

  1. List channels with channels.mjs to get IDs.
  2. Read with read.mjs / thread.mjs; when a message shows 📎 name (F…), download with download.mjs.
  3. Search with search.mjs only when SLACK_USER_TOKEN is set.
  4. Post/edit/delete sparingly; confirm channel membership and that edits/deletes target the bot's own ts.

Large read/search payloads print a digest and also write full JSON under the OS temp dir (path printed on stdout).

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.