Pookie is a Slack bot for searching your Slack.
Tag it in any channel or thread, and it replies with what you're looking for. It can also generate images, run Python on attached files, search the web, and connect to other tools through MCP.
The hosted version of Pookie. Click the button, pick a workspace, approve the scopes. Good if you want to try it without setting up infra.
Run Pookie on your own infra. Your Slack tokens, OpenAI key, and Redis stay with you. Good if you need data residency, an air-gapped network, or want to fork the agent.
Easiest if you already use Vercel. The deploy flow provisions an Upstash Redis instance and injects REDIS_URL for you.
Set these env vars before deploying:
OPENAI_API_KEY: your OpenAI API key.SLACK_ENCRYPTION_KEY: a 32-byte hex string used to encrypt OAuth tokens and MCP credentials in Redis. Generate one withopenssl rand -hex 32.IS_SELF_DEPLOYED=true: tells/installto show the post-deploy setup wizard instead of the cloud marketing flow. (Docker-based hosts below set this automatically via the Dockerfile.)
For the three Slack values (SLACK_CLIENT_ID, SLACK_CLIENT_SECRET, SLACK_SIGNING_SECRET), use placeholder strings on first deploy. You'll replace them after the bundled /install wizard creates your Slack app.
Provisions Pookie + Redis on Railway. Provide an OPENAI_API_KEY and leave the Slack values at their defaults. You'll fill them in after the first deploy via the bundled /install wizard.
The repo ships a standard Dockerfile (Next.js standalone) plus a docker-compose.yml that brings up Pookie + Redis locally:
git clone https://github.com/millionco/pookie
cd pookie
OPENAI_API_KEY=... docker compose up
# visit http://localhost:3000/install to wire up SlackThe same image runs on Fly.io, Render, Cloud Run, Kubernetes, or your own VPS.
For anything bespoke, or to walk through the full setup with an agent:
Fetch https://getpookie.com/install.md and help me install PookieThat URL returns an agent skill covering both paths (managed and self-host). The agent will ask which one you want and walk you through it.
To follow the guide by hand, see apps/api/docs/install.md.
In Slack:
@pookie find the thread where ray shipped the new pricing page
@pookie summarize what happened in #eng-platform this week
@pookie what's our policy on travel reimbursements
In a DM you can skip the mention. Pookie also responds in any thread it has been pulled into.
To invite Pookie to a channel, run /invite @pookie. Pookie only sees channels it has been invited to.
| Command | What it does |
|---|---|
/help |
Summary of what Pookie can do. |
/mcp-add <name> [url] |
Add an MCP server. Pass --channel or --global to share scope. |
/mcp-list |
List connected MCP servers visible in this context. |
/mcp-presets |
Show built-in preset names. |
/mcp-status |
Check connection health for each connected server. |
/mcp-remove <name> |
Disconnect a server. |
The combined form (/mcp add <name>, /mcp list, etc.) also works.
Pookie has presets for the most common Model Context Protocol servers. Run /mcp-add <name> and Pookie handles the OAuth handshake (or asks for a token, depending on the server):
| Preset | Description | Auth |
|---|---|---|
linear |
Linear projects, issues, cycles | OAuth |
github |
Repos, issues, PRs | Token |
sentry |
Errors, performance, releases | OAuth |
vercel |
Deployments, projects | Token |
stripe |
Payments, billing | OAuth |
posthog |
Product analytics | OAuth |
mercury |
Banking | OAuth |
axiom |
Observability and logs | OAuth |
cloudflare |
Workers, DNS, API | OAuth |
supabase |
Databases and projects | OAuth |
neon |
Postgres databases and branches | OAuth |
planetscale |
MySQL databases | OAuth |
pagerduty |
Incident management | OAuth |
render |
Deployments and services | OAuth |
exa |
Web search | OAuth |
repogrep |
Search across public GitHub repos | None |
Add an OAuth preset. Pookie replies with an authorization link the first time:
/mcp-add linear
Add a token preset. Pass the token inline:
/mcp-add github ghp_xxxxxxxxxxxxxxxxxxxx
/mcp-add vercel vercel_xxxxxxxxxxxxxxxxxxxx
Add more than one account of the same preset by appending an alias suffix:
/mcp-add linear_personal
/mcp-add linear_work
/mcp-add github_oss ghp_xxxxxxxxxxxxxxxxxxxx
Add a server that isn't in the preset list:
/mcp-add my-server https://my-server.example.com/mcp
Change scope. By default a connection is personal; pass --channel to share it with everyone in the current channel, or --global (admin only) to make it available workspace-wide:
/mcp-add linear --channel
/mcp-add sentry --global
Manage existing connections:
/mcp-list
/mcp-status
/mcp-remove linear_work
- Personal (default). Only you. Lives on your user.
- Channel (
--channel). Anyone in the current channel. - Global (
--global). Available across the workspace. Slack workspace admins and owners only.
Want to try it? Check out our demo.
Looking to contribute? Check out the Contributing Guide.
Want to talk to the community? Hop in our Discord and share your ideas and what you've built with Pookie.
Find a bug? Head over to our issue tracker and we'll do our best to help.
We expect all contributors to abide by the terms of our Code of Conduct.
Pookie is FSL-1.1-MIT-licensed open-source software. See LICENSE.