Repository Layout
Common Commands
| Command | Purpose |
|---|---|
bun install | Install dependencies |
bun run dev | Start web and API dev servers |
bun run build | Build all packages/apps through Turbo |
bun run typecheck | Type-check all workspaces |
bun run lint | Run repository lint command, currently TypeScript checks |
bun run test | Run all tests |
bun run db:migrate | Apply Drizzle migrations |
bun run db:generate | Generate Drizzle migrations |
bun run cli:build | Build the CLI |
bun run cli:install | Install local CLI into ~/.local/bin |
bun run cli:build:prod | Build production Node CLI with baked URLs |
bun run cli:build:release:env-file | Build public CLI installer assets from .env |
node apps/cli/dist/cli.js <command> | Run built CLI from repo root |
Type Checking
Run the whole repo:Tests
Run all tests:apps/web/e2e. Start dev servers first, install Playwright browsers once, then run:
Database Workflow
Schema lives inpackages/db. Migration files live in packages/db/drizzle.
After changing schema:
CLI Development
Build:apps/cli/src/commands.
API Development
The API is a Hono service. Route registration starts inapps/api/src/routes/index.ts.
Important route modules:
artifacts.tsprojects.tsprofile.tsworkspaces.tsworkspace-invitations.tsapi-keys.tsbilling.tsshare-links.ts
apps/api/src/deps.ts and mostly live under packages/.
MCP Development
MCP tool definitions live inpackages/mcp/src/index.ts.
Each tool has:
description- Zod
schema handler
listMcpTools() function converts the registry to JSON Schema for discovery.
Operational Checks
Health endpoint:| Monitor | URL | Purpose |
|---|---|---|
| API health | <api-host>/health | Container alive |
| Web root | <public-app-url>/ | Frontend reachable |
| OAuth callback | <public-app-url>/api/auth/callback/google | Detect auth misconfiguration |
| SSL certificate | Apex domain | Cert expiry |