一键导入
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 职业分类
"自动化论文检索、翻译、导入和学习闭环系统。每日从 arXiv 检索论文、自动翻译标题和摘要、导入 Zotero、生成 Obsidian 笔记和学习报告。"
"生成各种类型的图表和流程图:流程图、时序图、类图、甘特图、思维导图等。支持 Mermaid、PlantUML、Graphviz 等格式。"
"GitHub CLI (gh) 自动化操作。管理仓库、Issues、Pull Requests、Workflows、Releases 等。支持所有 gh 命令。"
"深度反思学习过程,巩固知识,发现盲点,优化学习策略。基于笔记内容生成反思报告、学习建议、知识图谱。"
"从 arXiv 自动检索论文、翻译标题摘要、导入 Zotero、生成 Obsidian 笔记。支持关键词检索、自动去重、中文翻译。"
"生成论文学习报告:每日总结、每周总结、月度报告、季度报告、年度总结。统计学习进度、分析研究方向、追踪知识积累。"
| name | add-slack |
| description | Add Slack as a channel. Can replace WhatsApp entirely or run alongside it. Uses Socket Mode (no public URL needed). |
This skill configures Slack for AcademiClaw. The channel code is already included in this minimal installation. This skill handles authentication, registration, and configuration.
Note: Slack support is in beta. The channel implementation may have limitations compared to WhatsApp/Telegram.
Check if Slack tokens are set in .env:
grep -q "SLACK_BOT_TOKEN=" .env 2>/dev/null && echo "Slack configured" || echo "Not configured"
Do they already have a Slack app configured? If yes, collect the Bot Token and App Token now. If no, we'll create one in Phase 3.
Verify the Slack channel code is present:
test -f src/channels/slack.ts && echo "Slack channel code present" || echo "ERROR: Slack channel code not included in minimal build"
If Slack code is missing, inform the user that Slack is not included in the minimal installation. They can either:
npm list @slack/bolt 2>/dev/null && echo "@slack/bolt installed" || echo "Installing @slack/bolt..."
If not installed:
npm install @slack/bolt
npm run build
Build must be clean before proceeding.
If the user doesn't have a Slack app, guide them:
I need you to create a Slack app:
- Go to https://api.slack.com/apps and click Create New App
- Choose From scratch
- App name: Something like "AcademiClaw Assistant"
- Pick your workspace
- Go to Socket Mode and enable it
- Under Basic Information > App-Level Tokens, create a token with scope
connections:write- Copy the App-Level Token (starts with
xapp-)- Go to OAuth & Permissions and add scopes:
chat:writechannels:history,groups:history,im:historychannels:read,groups:read,users:read- Go to Event Subscriptions > Subscribe to bot events and add:
message.channelsmessage.groupsmessage.im- Install the app to your workspace and copy the Bot Token (starts with
xoxb-)
Wait for the user to provide both tokens.
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
npm run build
If service is running, restart it:
# macOS
launchctl kickstart -k gui/$(id -u)/com.academiclaw
# Linux: systemctl --user restart academiclaw
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 AcademiClaw is:
slack:C0123456789
Wait for the user to provide the channel ID.
npx tsx setup/index.ts --step register \
--jid "slack:<channel-id>" \
--name "<channel-name>" \
--trigger "@<trigger>" \
--folder "slack_main" \
--channel slack \
--assistant-name "<name>" \
--is-main \
--no-trigger-required # Only for main channel
For trigger-only channels:
npx tsx setup/index.ts --step register \
--jid "slack:<channel-id>" \
--name "<channel-name>" \
--trigger "@<trigger>" \
--folder "slack_<name>" \
--channel slack
Tell the user:
Send a message in your registered Slack channel:
- For main channel: Any message works
- For trigger-only:
@<assistant-name> hello(using the configured trigger word)The bot should respond within a few seconds.
tail -f logs/academiclaw.log
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 academiclawmessage.channels, message.groups, message.im)If the bot logs missing_scope errors:
.envmkdir -p data/env && cp .env data/env/envlaunchctl kickstart -k gui/$(id -u)/com.academiclawThe Slack channel supports:
If running npm run dev while the service is active:
# macOS:
launchctl unload ~/Library/LaunchAgents/com.academiclaw.plist
npm run dev
# When done testing:
launchctl load ~/Library/LaunchAgents/com.academiclaw.plist