timerise-ai

Slack AI Bot — AI skill for Claude Code

AI community

Agent Skill: build a two-way Slack AI bot — mentions, DMs and thread follow-ups answered by a model with user-scoped tools, Slack email to app user identity, app-initiated reports, Approve/Cancel butt.

How to install Slack AI Bot

This entry records only its repository, not the path inside it, so there is no exact command to give. Open timerise-ai/slack-ai-bot and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

What Slack AI Bot does

Agent Skill: build a two-way Slack AI bot — mentions, DMs and thread follow-ups answered by a model with user-scoped tools, Slack email to app user identity, app-initiated reports, Approve/Cancel buttons whose click runs a side effect exactly once, raw-body signature verification, 3-second ack — in Next.js App Router, backend-agnostic

Alternatives in AI

  • Osaurus — Own your AI. The native macOS harness for AI agents -- any model, persistent memory, autonomous execution, cry 5.1k ★
  • Phantom — An AI co-worker with its own computer 1.3k ★
  • Model Config — /model-config — Choose the model you follow 705 ★

README

slack-ai-bot

[![Agent Skills](https://img.shields.io/badge/Agent_Skills-open_format-059669)](https://agentskills.io) [![skills.sh](https://img.shields.io/badge/skills.sh-npx_skills_add-059669)](https://www.skills.sh) [![Claude Code](https://img.shields.io/badge/Claude_Code-compatible-059669)](https://docs.claude.com/en/docs/claude-code/skills) [![Codex CLI](https://img.shields.io/badge/Codex_CLI-compatible-059669)](https://developers.openai.com/codex/skills) [![Gemini CLI](https://img.shields.io/badge/Gemini_CLI-compatible-059669)](https://github.com/google-gemini/gemini-cli/blob/main/docs/cli/skills.md)

An [Agent Skill](https://agentskills.io) that teaches an agent to build a two-way Slack AI bot inside a **Next.js App Router** app, with the Chat SDK and the AI SDK. People mention the bot, DM it or reply in a thread it follows, and a model answers with tools scoped to their account in the app. The app posts reports and alerts into channels on its own schedule. Risky actions wait behind Approve and Cancel buttons, and the click comes back as a webhook that runs the side effect exactly once.

**Slack is an untrusted, stateless, retrying client, and the model is an untrusted caller.** Every id the model passes into a tool came from whoever was talking in the thread. Every webhook may arrive twice, on a cold instance, with three seconds to answer before Slack tells the user it timed out and they click again. That is where the work is: identity, scoping, acknowledgement and idempotency. The chat loop itself is twenty lines.

This skill was written by the engineer who has shipped this module. The earlier implementation it was audited against was the Slack assistant of a product on Next.js 16, Vercel and Supabase. The templates hold the properties a two-way bot has to hold: every answer and every tool call scoped to the person who asked, one side effect per approved click however often the button is clicked, both webhooks acknowledged inside Slack's three seconds, a b