Convert Slack thread URLs to markdown documents. Trigger on "slack-to-md" command or when user provides Slack URLs (https://*.slack.com/archives/*/p*). Also handles updating existing markdown files from their source Slack threads.
/plugin marketplace add corca-ai/claude-plugins/plugin install slack-to-md@corca-pluginsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
scripts/slack-api.mjsscripts/slack-to-md.shConvert Slack thread URLs to well-formatted markdown documents.
Before using this skill, the following setup is required:
channels:history - Read messages from public channelschannels:join - Auto-join channels when neededusers:read - Resolve user IDs to names.env to .env.local and add your bot token:
BOT_TOKEN=xoxb-your-token-here
Slack URL format: https://{workspace}.slack.com/archives/{channel_id}/p{timestamp}
Extract:
workspace: subdomainchannel_id: after /archives/thread_ts: convert p{digits} → {first10}.{rest} (e.g., p1234567890123456 → 1234567890.123456)Existing .md file: Read and extract Slack URL from > Source: line.
Run the two scripts in a pipe:
node {SKILL_DIR}/scripts/slack-api.mjs <channel_id> <thread_ts> | \
{SKILL_DIR}/scripts/slack-to-md.sh <channel_id> <thread_ts> <workspace> {PROJECT_ROOT}/slack-outputs/<output_file>.md [title]
{SKILL_DIR}: Shown at the top when skill is invoked as "Base directory for this skill: ..."{PROJECT_ROOT}: Git root or current working directory (use absolute paths for reliability)slack-api.mjs: Fetches thread data from Slack API, outputs JSONslack-to-md.sh: Reads JSON from stdin, generates markdown fileAfter fetching, read the generated markdown file and extract the first message content. Then rename the file to a meaningful name:
mv {old_file}.md {PROJECT_ROOT}/slack-outputs/{sanitized_title}.mdThe slack-api.mjs script automatically handles common errors:
not_in_channel: Automatically joins the channel and retriesmissing_scope: Prints required OAuth scope to stderrIf errors persist, check:
.env.localThis skill should be used when the user asks to "create a hookify rule", "write a hook rule", "configure hookify", "add a hookify rule", or needs guidance on hookify rule syntax and patterns.
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.