Slack SDK
Install, authenticate, and automate Slack with Effect-native operations derived from Slack's official TypeScript SDK.
Public package Typed source 268 operationsSlack does not publish a maintained OpenAPI document suitable for this factory. Distilled instead pins Slack’s official TypeScript SDK and derives its Web API surface with a provider-specific AST generator.
Install
npm install @kevinmichaelchen/distilled-slack effectpnpm add @kevinmichaelchen/distilled-slack effectbun add @kevinmichaelchen/distilled-slack effectAuthentication
Set SLACK_TOKEN to a bot, user, or app-level token with the scopes required by the operations you call.
Quickstart
Post a message to a channel:
import * as Effect from "effect/Effect";
import * as Layer from "effect/Layer";
import {
chatPostMessage,
CredentialsFromEnv,
SlackClientLive,
} from "@kevinmichaelchen/distilled-slack";
const SlackLive = SlackClientLive.pipe(Layer.provide(CredentialsFromEnv));
const program = chatPostMessage({
channel: "C01234567",
text: "The release is live :tada:",
});
const message = await Effect.runPromise(Effect.provide(program, SlackLive));
Source and package
npm package
Public package, generated source, declarations, and release history.
Implementation (private)
Pinned upstream source, AST generator, errors, and rate-limit policy.
Official upstream
Slack’s public typed SDK and Web API method definitions.
There is no distilled-spec-slack: the official typed repository is already the authoritative input, so a second mirror would add indirection without adding stability.