Development
Stack: Next.js 15 (App Router), React 19, Vercel AI SDK, NextAuth, Drizzle ORM on Postgres, Tailwind CSS 4 and shadcn/ui, pnpm, Biome.
Commands
bash
make dev # Next.js dev server
make dev-docker # docker compose with hot reload
make build # production build
make lint # Biome
make format
make db-migrate # run migrations
make db-generate # generate migrations from schema changes
make db-studio # Drizzle Studio
make test-unit # Vitest
make test-e2e # Playwright
make test-coverageRun make help for the full list.
Layout
app/ (auth), (chat) with the streaming chat API route, (settings)
components/ UI and message rendering
lib/ai/ prompts.ts, providers.ts, tools/
lib/plugins/ one folder per service (radarr, sonarr, jellyfin, jellyseerr, qbittorrent, core)
lib/db/ Drizzle schema and queriesAdding a service
- Create
lib/plugins/<service>/. - Add
client.ts(API client),types.ts,schemas.ts, one file per tool, anddefinition.tsdeclaring the tools (setrequiresApproval: truefor anything state-changing). - Export from
index.tsand register the service inlib/plugins/registry.ts.
More engineering notes live in the repository's docs folder and in CONTRIBUTING.md.