backend/slack-manifest/manifest.json.connections:write scope. This is your SLACK_APP_TOKEN (xapp-...).xoxb-...) — this is SLACK_BOT_TOKEN.SLACK_SIGNING_SECRET.| Scope | Why NEXUS needs it |
|---|---|
commands |
Register /nexus |
chat:write |
Post messages and ephemeral prompts |
im:write, im:history |
DM-based chat and reminder delivery |
channels:history |
Passive deadline scanning (channels the bot is invited to only) |
files:read |
Download shared PDFs for summarization |
team:read, users:read |
Resolve Slack team/user IDs to internal records |
GROQ_API_KEY.llama-3.3-70b-versatile — fast and free-tier friendly. Change via GROQ_MODEL if needed.backend/src/database/schema.sql.SUPABASE_URL) and service_role key (SUPABASE_SERVICE_ROLE_KEY). Keep the service role key secret; it bypasses Row Level Security.cd backend
cp .env.example .env
Fill in every value from steps 1–3. SLACK_SOCKET_MODE=true is recommended for local development — no public URL or tunneling tool required.
npm install
npm run dev
You should see:
⚡️ NEXUS AI is running {"mode":"socket-mode","port":3000,"env":"development"}
Reminder delivery loop scheduled (every minute)
Daily digest job scheduled {"cron":"30 8 * * 1-5","timezone":"Asia/Kolkata"}
/invite @NEXUS AI./nexus task add Review the deck by Friday| Symptom | Likely cause |
|---|---|
| App starts but commands do nothing | SLACK_APP_TOKEN missing connections:write, or Socket Mode not enabled in app settings |
| “Invalid environment configuration” on boot | A required .env value is missing — the error lists exactly which one |
| Deadline detection never fires | Bot isn’t invited to the channel (channels:history only covers channels it’s a member of) |
| PDF summarization silently does nothing | File isn’t a text-layer PDF, or files:read scope wasn’t granted |