Skip to main content

Prerequisites

Before you begin, ensure you have the following installed:

Node.js 20+

Download from nodejs.org

pnpm 8+

Install: npm install -g pnpm

Docker Desktop

Download from docker.com

Git

Download from git-scm.com

Step 1: Clone and Install

pnpm will install dependencies for all packages in the monorepo. This may take a few minutes the first time.

Step 2: Environment Configuration

Copy the example environment file:

Minimal Configuration (Required)

Edit .env with at least these values:
Never commit your .env file or share your secrets. The .gitignore already excludes .env files.

Complete Environment Variables Guide

See the full guide for how to get API keys, generate secrets, and configure all options.
For AI-powered task parsing to work, add one of:
bash ANTHROPIC_API_KEY=sk-ant-your-api-key LLM_MODEL_ANTHROPIC=claude-3-haiku-20240307 Get an API key at console.anthropic.com
Without an LLM key, the API will use mock responses. This is fine for UI development but task parsing won’t work realistically.

Step 3: Start Database Services

Start PostgreSQL and Redis using Docker:
Or using docker-compose directly:
Verify they’re running:
You should see both postgres and redis with status “Up”.

Step 4: Run Database Migrations

Initialize the database schema:
bash pnpm db:seed This creates a sample organization, users, and tasks for testing.

Step 5: Start Development Servers

Start all services in development mode:
This starts:
Open http://localhost:3000/health to verify the API is running. You should see {"status":"ok"}.

Slack Integration Setup (Local Dev)

The Hitler Slack bot uses Socket Mode (WebSocket), so you don’t need ngrok or a public URL for local development. We recommend a separate “Hitler Dev” Slack app — see Slack Setup for the full two-app guide.

1. Create a Slack App

  1. Go to api.slack.com/apps
  2. Click Create New AppFrom scratch
  3. Name it Hitler Dev and select your dev workspace

2. Enable Socket Mode

  1. Go to Settings → Socket Mode → Enable
  2. Generate an App-Level Token with connections:write scope
  3. Copy the token (xapp-1-...)

3. Add Bot Token Scopes

Go to OAuth & Permissions → Bot Token Scopes and add:

4. Subscribe to Events

Go to Event Subscriptions → Subscribe to bot events and add:

5. Set OAuth Redirect URL

Go to OAuth & Permissions → Redirect URLs and add:

6. Install to Workspace and Add Credentials

  1. Click Install to Workspace and authorize
  2. Copy credentials to your .env:
Now start the dev servers (pnpm dev) and DM the bot in Slack!

Running Specific Services

Instead of running everything, you can start individual services:

Common Commands

Project Structure

Slack Slash Commands

After installing the Slack app, register these slash commands under Slash Commands in your app settings.

Direct Commands (No LLM)

Admin/Manager Commands (No LLM)

LLM-Powered Commands

The /hitler command routes through Claude which has access to 30+ tools including: create/update/complete tasks, set reminders, log mood, check KPI, manage checklists, move pipeline stages, reassign tasks, browse URLs, and more.
Total: 12 slash commands — 10 direct (no LLM), 1 admin-only, 1 LLM-powered. Direct commands respond instantly. The /hitler command uses Claude for natural language understanding.

Troubleshooting

Ensure Docker containers are running:
If needed, restart:
Another process is using port 3000, 3005, or 3002. Find and kill it:
Clear the cache and reinstall: bash rm -rf node_modules rm -rf .pnpm-store pnpm install
Ensure the database is running and DATABASE_URL is correct: bash docker-compose logs postgres psql $DATABASE_URL -c "SELECT 1"
  1. Verify Socket Mode is enabled in your Slack app settings
  2. Check that SLACK_APP_TOKEN is set in your .env (starts with xapp-)
  3. Verify Event Subscriptions has message.im and app_mention subscribed
  4. Check SLACK_SIGNING_SECRET matches your app

Next Steps

API Reference

Explore the API endpoints

Architecture

Understand the system design

Testing Guide

Write and run tests

Contributing

Contribution guidelines