원클릭으로
add-slack
Add Slack as a channel. Can replace WhatsApp entirely or run alongside it. Uses Socket Mode (no public URL needed).
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Add Slack as a channel. Can replace WhatsApp entirely or run alongside it. Uses Socket Mode (no public URL needed).
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Save this session to the vault and update the semantic memory index
Capture a repeatable task procedure from the just-completed work as a durable, queryable memory node, so the steps are recalled automatically next time instead of re-derived. Triggers on "learn this procedure", "remember how to do this", "save this as a procedure", "/learn-procedure".
Add Asana project management MCP integration to Deus. Gives host-side Claude Code sessions read/write access to Asana tasks, projects, sections, and tags via @roychri/mcp-server-asana.
[DEPRECATED] Replaced by scripts/code_search.py (native sqlite-vec + Ollama). Do not use.
Add OpenAI/Codex as a backend. Guides through API key setup, service backend configuration, optional CLI setup, and verification. Can run alongside Claude (default) or replace it.
Add /compact command for manual context compaction. Solves context rot in long sessions by forwarding the SDK's built-in /compact slash command. Main-group or trusted sender only.
| name | add-slack |
| description | Add Slack as a channel. Can replace WhatsApp entirely or run alongside it. Uses Socket Mode (no public URL needed). |
| disable-model-invocation | true |
Status: Coming soon — this channel will be available as
@deus-ai/slack-mcp. The MCP package is not yet available.
This skill will add Slack support to Deus once the MCP package is released. In the meantime, the setup/config/registration phases below describe what the integration will look like.
If the user doesn't have a Slack app, share SLACK_SETUP.md which has step-by-step instructions with screenshots guidance, troubleshooting, and a token reference table.
Quick summary of what's needed:
xapp-...)message.channels, message.groups, message.imchat:write, channels:history, groups:history, im:history, channels:read, groups:read, users:readxoxb-...)Add to .env:
SLACK_BOT_TOKEN=xoxb-your-bot-token
SLACK_APP_TOKEN=xapp-your-app-token
Channels auto-enable when their credentials are present — no extra configuration needed.
Sync to container environment:
mkdir -p data/env && cp .env data/env/env
The container reads environment from data/env/env, not .env directly.
Tell the user:
- Add the bot to a Slack channel (right-click channel → View channel details → Integrations → Add apps)
- In that channel, the channel ID is in the URL when you open it in a browser:
https://app.slack.com/client/T.../C0123456789— theC...part is the channel ID- Alternatively, right-click the channel name → Copy link — the channel ID is the last path segment
The JID format for Deus is:
slack:C0123456789
The channel ID, name, and folder name are needed. Use npx tsx setup/index.ts --step register with the appropriate flags.
For a main channel (responds to all messages):
npx tsx setup/index.ts --step register -- --jid "slack:<channel-id>" --name "<channel-name>" --folder "slack_main" --trigger "@${ASSISTANT_NAME}" --channel slack --no-trigger-required --is-main
For additional channels (trigger-only):
npx tsx setup/index.ts --step register -- --jid "slack:<channel-id>" --name "<channel-name>" --folder "slack_<channel-name>" --trigger "@${ASSISTANT_NAME}" --channel slack
Run the automated smoke test to verify service, DB, and channel connection:
npx tsx setup/index.ts --step smoke-test -- --channel slack
The smoke test checks: service running, registered group exists, DB write/read works, and channel connection appears in logs.
If the smoke test passes, tell the user "Slack channel is working."
If it fails, check the STATUS output for the specific failure (service down, no registered group, DB error, or no log connection). Guide the user to fix the issue before proceeding.
After the automated check, also ask the user to send a test message to verify real-time delivery:
Send a message in your registered Slack channel to confirm real-time delivery.
- For main channel: Any message works
- For non-main: @mention the bot
SLACK_BOT_TOKEN and SLACK_APP_TOKEN are set in .env AND synced to data/env/envsqlite3 store/messages.db "SELECT * FROM registered_groups WHERE jid LIKE 'slack:%'"launchctl list | grep deusmessage.channels, message.groups, message.im)By default, bots only see messages in channels they've been explicitly added to. Make sure to:
channels:history and/or groups:history scopesIf the bot logs missing_scope errors:
.envmkdir -p data/env && cp .env data/env/envlaunchctl kickstart -k gui/$(id -u)/com.deusIf the channel ID is hard to find:
C... ID from the URLhttps://app.slack.com/client/TXXXXXXX/C0123456789curl -s -H "Authorization: Bearer $SLACK_BOT_TOKEN" "https://slack.com/api/conversations.list" | jq '.channels[] | {id, name}'The Slack channel supports:
NewMessage type, Channel.sendMessage interface, and routing logic.setTyping() method is a no-op. Users won't see "bot is typing..." while the agent works.syncChannelMetadata() paginates through all channels the bot is a member of, but has no upper bound or timeout. Workspaces with thousands of channels may experience slow startup.