원클릭으로
slack
Slack skill: per-agent Slack skill + Socket Mode listener server. Run the server on lifecycle start.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Slack skill: per-agent Slack skill + Socket Mode listener server. Run the server on lifecycle start.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Create, list, and configure OrgOps agents from native agents. Use when the user asks an agent to create agents, list agents, set up WRAPPED agents, OpenClaw wrappers, sidecars, or Cursor coding harnesses.
Manage package secrets (write, list keys, delete). Secrets are stored encrypted; agents can set values and list or delete keys but cannot read secret values. Use for API keys and tokens (e.g. OPENAI_API_KEY). Values are injected as env when running skills and LLM.
Thin CLI bridge to Cursor via official @cursor/sdk (prompt -> streamed stdout)
Use Google Cloud CLI (gcloud) for project/account checks and Google API operations. Use when users ask for gcloud commands, Google Cloud auth, project configuration, IAM, or cloud resource inspection and updates.
Use Trello CLI in orgops agents for Trello board/list/card operations with non-interactive command patterns.
Install and use Tavily CLI (tvly) for web search/extract/crawl. Uses secret/env TAVILY_API_KEY.
| name | slack |
| description | Slack skill: per-agent Slack skill + Socket Mode listener server. Run the server on lifecycle start. |
This skill lets OrgOps agents act as Slack apps using per-agent tokens stored in OrgOps secrets.
It provides:
channel.event.created events.event-shapes.ts) consumed by runner/API validation.Store secrets under the slack package using the secrets skill.
Per-agent keys (recommended):
SLACK_BOT_TOKEN__<AGENT_NAME> (xoxb-...)SLACK_APP_TOKEN__<AGENT_NAME> (xapp-...; required for Socket Mode)Example:
node --import tsx skills/secrets/assets/set.ts -- slack SLACK_BOT_TOKEN__worker1 xoxb-...
node --import tsx skills/secrets/assets/set.ts -- slack SLACK_APP_TOKEN__worker1 xapp-...
connections:write (this is the xapp-... token)chat:writechannels:read, groups:read, im:read, mpim:readchannels:history, groups:history, im:history, mpim:historyim:writeusers:readsearch:readfiles:read (required for file download helpers)xoxb-... bot tokenmessage.channels, message.groups, message.im, message.mpimapp_mentionAll scripts accept --agent <agentName> and use:
SLACK_BOT_TOKEN__<agentName>SLACK_APP_TOKEN__<agentName>Agent operating rule:
events_* tools only. Do not use Slack CLI helpers for runtime interaction.events_emit for outbound Slack-bound events during execution, then return a final validated event object for the runner.For agent-to-Slack delivery through a bridged OrgOps channel, emit:
message.created for common text replieschannel.command.requested for explicit Slack Web API commandsPreferred tool call from agents:
{
"tool": "events_emit",
"args": {
"type": "message.created",
"channelId": "<orgops-bridge-channel-id>",
"payload": {
"text": "hello from OrgOps"
}
}
}
Reply in a Slack thread (tool call example):
{
"tool": "events_emit",
"args": {
"type": "message.created",
"channelId": "<orgops-bridge-channel-id>",
"payload": {
"text": "Thanks — here are examples.",
"threadTs": "1710000000.000100"
}
}
}
Explicit command example (channel.command.requested):
{
"tool": "events_emit",
"args": {
"type": "channel.command.requested",
"channelId": "<orgops-bridge-channel-id>",
"payload": {
"channel": {
"provider": "slack",
"connection": "worker1",
"workspaceId": "T123",
"spaceId": "C456"
},
"command": {
"action": "chat.postMessage",
"payload": {
"text": "hello via command envelope"
}
}
}
}
}
Validation notes:
message.created: requires non-empty payload.text; optional payload.threadTschannel.command.requested: requires payload.channel + payload.command.action and optional payload.command.payloadsource like agent:<name>)The exact typed validators live in skills/slack/event-shapes.ts and are dynamically loaded by enabled skills.
Run one listener process per agent:
node --import tsx skills/slack/assets/socket-listen.ts -- --agent worker1
Optional routing granularity:
--route-mode channel (default): one OrgOps channel per Slack team+channel--route-mode thread: one OrgOps channel per Slack thread--route-mode person: one OrgOps channel per sender in a Slack channelThis emits OrgOps channel.event.created events via the Events API.
When emitting, the listener auto-ensures an OrgOps channel exists and subscribes
the target agent, so incoming Slack events are routable to the runner without manual setup.
Channel metadata includes Slack routing info (provider/teamId/channelId, and optional thread/person).
Notes:
channel.event.created (source: channel:slack:<agent>)message.created and channel.command.requested (agent source in slack bridge channels) -> Slack Web API