| name | onboard |
| description | Set up internbot for development. Use when setting up the project for the first time. |
Internbot Developer Setup
Prerequisites
- Node.js >= 20
- A Slack workspace where you can create apps
Steps
1. Create a Slack App
- Go to https://api.slack.com/apps → Create New App → From scratch
- Name it (e.g., "internbot"), select your workspace
- Enable Socket Mode under Settings → Socket Mode → toggle on
- Generate an app-level token with
connections:write scope → save as SLACK_APP_TOKEN
- Under OAuth & Permissions, add these Bot Token Scopes:
app_mentions:read
channels:history
channels:read
chat:write
groups:history
groups:read
im:history
im:read
im:write
mpim:history
mpim:read
users:read
reactions:write
- Under Event Subscriptions → toggle on → Subscribe to bot events:
message.channels
message.groups
message.im
message.mpim
app_mention
- Install the app to your workspace → copy the Bot User OAuth Token as
SLACK_BOT_TOKEN
2. Configure Environment
cp .env.example .env
3. Set Up Reports Repository
The bot publishes LaTeX reports to a separate GitHub repo. Set it up as a subdirectory:
mkdir reports-repo && cd reports-repo
git init
mkdir reports
echo '[]' > papers-log.json
git add . && git commit -m "init reports repo"
Create a GitHub repo for reports, then configure the remote with a dedicated account (optional):
git remote add origin https://<github-user>@github.com/<github-user>/<repo-name>.git
git config user.name "<bot-name>"
git config user.email "<github-user>@users.noreply.github.com"
git push -u origin main
If using a dedicated GitHub account, store its PAT locally:
echo "https://<github-user>:<PAT>@github.com" > .git/credentials
git config credential.helper 'store --file=.git/credentials'
4. Install & Run
npm install
npm run dev
npm run build
npm start
5. Test
- DM the bot "hi" → should get a simple reply
- In a channel, @mention the bot with a question → should get a threaded response
- Ask it to search for papers → should use arxiv tools