An AI-powered chatbot for Slack that integrates with Linear to help manage your project workspace. This project is based on the Vercel AI SDK Slackbot and uses the AI SDK by Vercel.
- Integrates with Slack's API for easy Slack communication
- Connects to Linear's API to manage your project workspace
- Use any LLM with the AI SDK (easily switch between providers)
- Works both with app mentions and as an assistant in direct messages
- Maintains conversation context within both threads and direct messages
- Node.js 18+ installed
- Slack workspace with admin privileges
- OpenAI API key
- Linear API key
- A server or hosting platform (e.g., Vercel) to deploy the bot
npm install
# or
pnpm install
- Go to https://api.slack.com/apps and click "Create New App"
- Choose "From scratch" and give your app a name
- Select your workspace
- Under "App Credentials", note down your "Signing Secret"
-
Add the following Bot Token Scopes:
app_mentions:read
assistant:write
chat:write
im:history
im:read
im:write
-
Install the app to your workspace and note down the "Bot User OAuth Token"
Create a .env
file in the root of your project with the following:
# Slack Credentials
SLACK_BOT_TOKEN=xoxb-your-bot-token
SLACK_SIGNING_SECRET=your-signing-secret
# OpenAI Credentials
OPENAI_API_KEY=your-openai-api-key
# Linear Credentials
LINEAR_API_KEY=your-linear-api-key
Replace the placeholder values with your actual tokens.
- If building locally, follow steps in the Local Development section to tunnel your local environment and then copy the tunnel URL.
- If deploying to Vercel, follow the instructions in the Production Deployment section and copy your deployment URL.
Go to your Slack App settings
- Select your app
- Go to "Event Subscriptions"
- Enable Events
- Set the Request URL to either your local URL or your deployment URL: (e.g.
https://your-app.vercel.app/api/events
) - Save Changes
- Under "Subscribe to bot events", add:
app_mention
assistant_thread_started
message.im
Remember to include
/api/events
in the Request URL.
Use the Vercel CLI and untun to test out this project locally:
pnpm i -g vercel
pnpm vercel dev --listen 3000 --yes
npx untun@latest tunnel http://localhost:3000
Make sure to modify the subscription URL to the untun
URL.
Note: you may encounter issues locally with
waitUntil
. This is being investigated.
-
Push your code to a GitHub repository
-
Deploy to Vercel:
- Go to vercel.com
- Create New Project
- Import your GitHub repository
-
Add your environment variables in the Vercel project settings:
SLACK_BOT_TOKEN
SLACK_SIGNING_SECRET
OPENAI_API_KEY
LINEAR_API_KEY
-
After deployment, Vercel will provide you with a production URL
-
Update your Slack App configuration:
- Go to your Slack App settings
- Select your app
- Go to "Event Subscriptions"
- Enable Events
- Set the Request URL to:
https://your-app.vercel.app/api/events
- Save Changes
- Under "Subscribe to bot events", add:
app_mention
assistant_thread_started
message:im
The bot will respond to:
- Direct messages - Send a DM to your bot
- Mentions - Mention your bot in a channel using
@YourBotName
The bot maintains context within both threads and direct messages, so it can follow along with the conversation.
The bot can help you manage your Linear workspace through natural language commands. (More details coming soon as features are added)
MIT