Buddy Slack is an opencode plugin that exposes Slack read and write tools through a project-owned Slack app.
bun installAdd the plugin to opencode by package name.
{
"plugin": ["buddy-slack"]
}Slack OAuth is local. Set SLACK_CLIENT_ID, SLACK_CLIENT_SECRET, and BUDDY_SLACK_REDIRECT_URI, then call slack_auth_start from opencode. Open the returned Slack authorization URL, complete the flow, and call slack_auth_status.
OAuth credentials are stored in the macOS Keychain under the buddy-slack service. SLACK_USER_TOKEN is supported only as a local development fallback.
Auth:
slack_auth_startslack_auth_finishslack_auth_statusslack_disconnect
Read/search:
slack_read_user_profileslack_search_channelsslack_read_channelslack_read_threadslack_search_publicslack_search_public_and_privateslack_search_usersslack_read_canvas
Write:
slack_send_messageslack_schedule_messageslack_create_canvasslack_edit_messageslack_delete_messageslack_send_message_draft
slack_send_message_draft is intentionally unavailable until a Slack-supported API path is found for ChatGPT-style attached drafts. It returns an explicit unavailable error instead of pretending a local pending action is a Slack draft.
Slack write tools use action-scoped opencode permissions such as slack.write.send, slack.write.canvas, and slack.write.delete, so an always-allow decision for one write action does not automatically allow another.
bun run verify