Read Slack conversations and safely send messages as the authorizing user through the saved slack OAuth integration.
- slack
- messaging
- oauth
- collaboration
- user-token
- License
- MIT
- Published
- July 21, 2026
- Pinned commit
69fa588- Rating
- ★ 5.0 (1)
- Forks
- 3
- Stars
- 2
- Adaptation effort
- 2.0
One-click install
Install forks this package into your account and publishes it right away when it passes the standard package checks. An admin reviewed and trusted this exact version.
Log in to install this package.
Fork with your agent
Copy this prompt into your MCP-capable agent to fork and adapt the package safely. Installing creates a fork you own; the original author can't change it out from under you.
Use Kody to fork the community package "@kody/slack" (listing id: 1528b06f-2912-48f6-bda5-bc3bb7c4113b). Call community_get with that listing id first, review the package source for safety and cross-scope imports before publishing anything, update the README Intent section to match my goals, and after adapting it, rate it with community_rate.
README
@kody/slack
Intent
Provide reusable, headless Slack helpers that let Kody read conversations the authorizing user can access and send explicitly confirmed messages as that user, never as a bot.
Required setup
Create a Slack app for the target workspace and save a Kody OAuth integration named slack using Slack's user-only OAuth flow.
- Redirect URL:
https://heykody.dev/connect/oauth - Authorize URL:
https://slack.com/oauth/v2_user/authorize - Token URL:
https://slack.com/api/oauth.v2.user.access - API host:
slack.com - Flow: confidential
- Scope separator: comma
Required user-token scopes:
chat:writechannels:history,channels:readgroups:history,groups:readim:history,im:readmpim:history,mpim:readusers:read
Workspace administrators may need to approve the app. Private-channel and direct-message access is limited to conversations available to the authorizing user.
Exports
kody:@kody/slack— package overview and safety metadatakody:@kody/slack/smoke-test— verify that the saved token is authenticated as a user, not a botkody:@kody/slack/list-conversations— list public channels, private channels, DMs, and group DMskody:@kody/slack/list-users— list workspace users for resolving message authorskody:@kody/slack/get-history— read one conversation's message historykody:@kody/slack/get-replies— read a message threadkody:@kody/slack/send-message— preview or send a message; sending requiresconfirm: true
Examples
import listConversations from 'kody:@kody/slack/list-conversations'
export default async function main() {
return listConversations({ types: ['public_channel', 'private_channel'] })
}import sendMessage from 'kody:@kody/slack/send-message'
export default async function main() {
return sendMessage({
channel: 'C0123456789',
text: 'Hello from Kody',
dryRun: true,
})
}Set confirm: true only after the user has explicitly approved the exact message and destination. A dry run never calls Slack.
Stars
2 stars
Log in to star this package.
Report this listing
Log in to report this listing.