Important
This repository has moved. The source code for Gorkie v3 is now available at: techwithanirudh/gorkie
Gorkie is an AI assistant for Slack. It responds in mentions, DMs, Assistant threads, and subscribed Slack threads with answers backed by tools, sandboxed code execution, web search, Slack context, file uploads, image generation, and reminders.
The bot runs as a long-lived Bun process. Slack events are handled through Vercel Chat SDK and the Slack adapter in Socket Mode, while coding agent work runs through Vercel AI SDK Harness/Pi. Each active Slack conversation gets an E2B sandbox so Gorkie can run commands, inspect files, generate artifacts, and upload results back to Slack.
- Slack-native replies for mentions, DMs, Assistant threads, and thread follow-ups.
- Per-thread sandbox sessions backed by E2B.
- Coding-agent workflows through AI SDK Harness/Pi.
- Slack-aware tools for reading public channel/thread history, posting messages, looking up users/channels, and reacting to messages.
- Web search through Exa.
- Image generation and file uploads back into the active Slack thread.
- Mermaid diagram generation.
- Scheduled Slack reminders.
- App Home customization for user instructions and presets.
- Langfuse/OpenTelemetry tracing hooks for runtime visibility.
- Bun and TypeScript
- Vercel Chat SDK with
@chat-adapter/slack - Vercel AI SDK
HarnessAgentwith@ai-sdk/harness-pi - E2B sandbox sessions
- PostgreSQL + Drizzle ORM
- Exa
- Langfuse + OpenTelemetry
- Turborepo
- Ultracite
Create a new Slack app using the provided manifest. You will also need Git, Bun, a PostgreSQL database, an E2B API key, and model provider keys for the configured Harness/Pi attempts.
# Clone this repository
git clone https://github.com/imdevarsh/gorkie-slack.git
# Install dependencies
bun install
# Copy and fill in the bot environment
cp apps/bot/.env.example apps/bot/.env
# Push the database schema
bun run db:push
# Start the Slack bot
bun run dev:botLocal development uses Slack Socket Mode, so the bot does not need a public HTTP tunnel just to receive Slack events.
See DEVELOPMENT.md for the full local setup, sandbox template notes, and deployment guidance.
apps/
bot/ Slack runtime, Chat SDK wiring, Slack features, bot-owned tools
docs/ Human/agent-readable architecture notes
packages/
ai/ Harness/Pi agent setup, prompts, provider attempts, session files
db/ Drizzle schema, PostgreSQL client, queries
logging/ Pino logger factory
sandbox/ E2B sandbox provider, template builder, sandbox skills
utils/ Shared framework-agnostic helpers
tooling/
cspell/ Shared cspell configuration
github/ Reusable GitHub Actions setup
typescript/ Shared TypeScript configs
apps/bot is the production runtime. It runs TypeScript directly with Bun and
keeps Slack Socket Mode, Chat SDK state, Harness/Pi sessions, and E2B sandbox
coordination in one process.
Use these checks before handing off changes:
bun run typecheck
bun run check
bun run check:spellingBuild everything with:
bun run buildBuild the sandbox template when sandbox tools, skills, browser dependencies, or CLI packages change:
bun run build:templateManual Slack smoke testing is documented in TESTING.md.
Architecture notes live in docs/. They are Markdown files with Fumadocs-compatible frontmatter/components and can be previewed with:
bun run docs:previewThis project is under the MIT license. See LICENSE for details.
