slack
Atomic Slack primitives for agents. Send, reply, DM, read history, threads, list channels/users, search, react. Use when you need to interact with Slack.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Atomic Slack primitives for agents. Send, reply, DM, read history, threads, list channels/users, search, react. Use when you need to interact with Slack.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Generate images using OpenAI (default) or Gemini. Use when asked to generate, create, or make images. Supports text-to-image and image editing with reference images.
Plans, audits, and implements scalable programmatic SEO systems with URL inventory, intent mapping, metadata, schema, internal linking, sitemaps, ISR/static rendering, and quality gates. Use when the user mentions 'programmatic SEO,' 'pSEO,' '100k pages,' 'generate SEO pages,' 'scaled landing pages,' 'template pages,' 'SEO page factory,' 'dynamic SEO routes,' 'sitemap shards,' 'keyword cannibalization,' 'doorway pages,' or 'thin content at scale.' Does not replace general SEO audits, AI SEO citation work, or llms.txt tasks unless PSEO scale is central.
Use when setting up, deploying, or debugging Nia's Twilio-based channels: voice (phone), SMS, and WhatsApp. All three share one Twilio number, one webhook server, and one set of credentials under channels.twilio. Covers config schema, cloudflared named-tunnel setup, Twilio Console webhook wiring, `nia phone` CLI, `place_call` / `send_message` MCP tools, the WhatsApp Sandbox 24h customer-service window, and the shared TwilioWebhookServer's dedup + rate-limit middleware. Trigger on mentions of "phone", "call", "voice", "sms", "whatsapp", "twilio", "realtime", "media stream", "cloudflared", or when deploying Nia to a new machine and a Twilio surface needs to come up.
Persistent task management via Beads CLI (bd). Use when user mentions tasks, todos, issues, or tracking work. Check `which bd` first — if missing, offer: `npm install -g @beads/bd`. All commands: run from `$BEATS_DIR` (for example `~/.niahere/beads`) and use `bd <command>`. Always label: `--label project:<project-name>`. Run `bd --help` or `bd help --all` for available commands. Not for ephemeral in-conversation tracking.
QA test a web application using Playwright. Use when asked to "qa", "QA", "test this site", "find bugs", "dogfood", "verify frontend behavior", "check UI rendering", "test user flows", "debug visual issues", "take a snapshot", "take a screenshot", "browser automation", "Playwright MCP", "ref system", or review quality of any web app (local or deployed). Five modes: diff-aware (auto on feature branches), full (systematic exploration), quick (30-second smoke test), single-page (verify one page or component), regression (compare against baseline). Produces structured report with health score, screenshots, and repro steps. Uses Playwright MCP tools or CLI fallback. Includes Playwright MCP reference (tool selection, ref system, token optimization, session management).
Transcribe or subtitle audio/video files using whisper.cpp (whisper-cpp), with a default medium model path and ffmpeg-based extraction.
| name | slack |
| description | Atomic Slack primitives for agents. Send, reply, DM, read history, threads, list channels/users, search, react. Use when you need to interact with Slack. |
Single entry point, one subcommand per API call. Agents compose these to build any Slack workflow.
Credentials: ~/.niahere/config.yaml → channels.slack.bot_token
S=~/.shared/skills/slack/slack.py
# Send & reply
python3 $S send --channel C... --text "message"
python3 $S reply --channel C... --thread-ts 1... --text "reply"
python3 $S dm --text "message" # DMs dm_user_id
python3 $S dm --text "message" --user U... # DMs specific user
# Read
python3 $S history --channel C... [--limit 20]
python3 $S thread --channel C... --thread-ts 1... [--limit 50]
# Discovery
python3 $S channels [--limit 200]
python3 $S users [--limit 200]
python3 $S user-info --user U...
python3 $S search --query "text" [--limit 10]
python3 $S identity
# React
python3 $S react --channel C... --ts 1... --emoji thumbsup
URL format: https://<workspace>.slack.com/archives/<CHANNEL_ID>/p<THREAD_TS_NO_DOT>
/archives/p number with a . inserted before the last 6 digitsThese commands cover common operations but the Slack API has 200+ methods. If you need something not listed here (e.g. managing bookmarks, setting channel topics, pinning messages, scheduling messages, managing user groups):
slack.py --help for available subcommands first.curl with the bot token from slack_helper.load_slack_config()["token"]. The pattern is always: curl -H "Authorization: Bearer $TOKEN" https://slack.com/api/<method>.history + LLM reasoning. "Find discussions about X" is search + thread.The bot token and auth pattern are consistent across all Slack APIs. Don't limit yourself to what's explicitly in slack.py — treat it as a starting point, not a boundary.
Each subcommand = one Slack API call. No bundled workflows. Features are outcomes achieved by an agent composing these primitives in a loop.