v3.4.1
opencode-slack-agent v3.4.1
OpenCode plugin that connects Slack to your AI agent via Socket Mode.
Install
opencode plugin opencode-slack-agent --globalFeatures
- Thread-based Sessions — Each Slack thread = persistent OpenCode session (survives restart)
- Multi-Agent —
@build,@plan,@oracleper-message agent selection - Real-time Streaming — 🔧 Tool execution, 💭 reasoning, 📋 todo/plan updates
- Long Response — Code blocks/large responses auto-uploaded as file snippets
- Markdown → Slack — Bold, headers, links, lists, code blocks properly converted
- Permission/Question Forwarding — Agent asks → Slack thread → user replies
- Access Control —
ALLOWED_USERS: user IDs or emails, everyone else can only reply in existing threads - Workspace Management —
!dirper-thread,!attachexisting session, URL paste supported
Commands
| Command | Description |
|---|---|
!help |
Show all commands |
!model / !model provider/model |
View/switch model |
!agent / !agent build |
View/switch agent |
!dir / !dir /path |
View/switch workspace |
!attach ses_xxx |
Attach existing session |
!reset |
Reset thread session |
Configuration
{
"plugin": [
["opencode-slack-agent", {
"SLACK_BOT_TOKEN": "xoxb-...",
"SLACK_APP_TOKEN": "xapp-...",
"ALLOWED_USERS": "U123,user@company.com",
"DEFAULT_DIRECTORY": "/path/to/project"
}]
]
}Architecture
Hybrid sidecar: Plugin (Bun, IPC, OpenCode client) + Socket Worker (Node, Slack WebSocket). Reliable Socket Mode in Node, direct OpenCode API access in plugin — no HTTP hop.
Full changelog since v2.x
- v3.0.0: Hybrid sidecar architecture (IPC + plugin client)
- v3.1.0: Thread session continuity, !dir/!attach, thinking streaming
- v3.2.0: Permission/question forwarding, reaction on actual message
- v3.3.0: @agent multi-agent, !agent command
- v3.4.0: File upload, markdown→mrkdwn, dedup fix
- v3.4.1: Fine-grained access control (thread creation vs reply)