Skip to content

v3.4.1

Choose a tag to compare

@leecoder leecoder released this 07 Jul 07:47
· 25 commits to main since this release

opencode-slack-agent v3.4.1

OpenCode plugin that connects Slack to your AI agent via Socket Mode.

Install

opencode plugin opencode-slack-agent --global

Features

  • Thread-based Sessions — Each Slack thread = persistent OpenCode session (survives restart)
  • Multi-Agent — @build, @plan, @oracle per-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 — !dir per-thread, !attach existing 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)