This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
pnpm i # Install dependencies
cp .env.example .env # Create environment file
pnpm run docker # Start Docker services (Postgres, Redis, Clickhouse, Electric)
pnpm run db:migrate # Run database migrationspnpm run build --filter webapp && pnpm run build --filter trigger.dev && pnpm run build --filter @trigger.dev/sdk
pnpm run build --filter "@trigger.dev/*" # Build all public packages
pnpm run typecheck # Type check all packagespnpm run dev --filter webapp # Start webapp development server (port 3030)
pnpm run dev --filter trigger.dev --filter "@trigger.dev/*" # Watch CLI and packages for changespnpm run test # Run all tests
pnpm run test --filter webapp # Test webapp only
pnpm run test --filter "@trigger.dev/*" # Test public packages
pnpm run test --filter @internal/run-engine # Test internal packages- Apps: Production services (
webapp,supervisor) - Packages: Public npm packages (
@trigger.dev/sdk,trigger.devCLI,@trigger.dev/core) - Internal Packages: Shared internal code (database, run-engine, redis, clickhouse, tracing)
- References: Testing and example projects (hello-world)
- Webapp (
apps/webapp): Remix-based dashboard and API platform - Run Engine (
internal-packages/run-engine): Task execution lifecycle management - SDK (
packages/trigger-sdk): Main developer SDK (@trigger.dev/sdk) - CLI (
packages/cli-v3): Development and deployment tool (trigger.dev) - Database (
internal-packages/database): Prisma schema and client
- Turborepo for build orchestration with dependency graph
- TypeScript 5.5.4 across all packages
- Vitest for testing
- PNPM 8.15.5 workspace with locked version
- Make changes in
packages/trigger-sdkorpackages/cli-v3 - Run
pnpm run dev --filter trigger.dev --filter "@trigger.dev/*"to watch for changes - Test in
references/v3-catalogusingpnpm exec trigger dev - Restart trigger dev command to pick up CLI/SDK changes
- Modify
internal-packages/database/prisma/schema.prisma cd internal-packages/databasepnpm run db:migrate:dev:create(creates migration file)pnpm run db:migrate:deploy && pnpm run generate
pnpm run changeset:add # Add changeset for version management- Unit tests with Vitest
- Integration tests using testcontainers
- E2E tests with Playwright
- Manual testing via reference projects
- Node.js 20.11.1 (enforced via .nvmrc)
- pnpm 8.15.5 (via corepack enable)
- Docker for local services
- Protocol Buffers for gRPC
ENCRYPTION_KEY: Generate withopenssl rand -hex 16- Database runs on Docker at localhost:5432
- Webapp runs on port 3030
- Internal packages use
workspace:*protocol - Shared TypeScript config and tooling
- Patches in
patches/directory for external dependencies - Build outputs cached by Turborepo