Open-source dashboard for AI agent orchestration. Manage agent fleets, track tasks, monitor costs, and orchestrate workflows.
Stack: Next.js 16, React 19, TypeScript 5, SQLite (better-sqlite3), Tailwind CSS 3, Zustand, pnpm
- Node.js >= 22 (LTS recommended; 24.x also supported)
- pnpm (
corepack enableto auto-install)
pnpm install
pnpm buildSecrets (AUTH_SECRET, API_KEY) auto-generate on first run if not set.
Visit http://localhost:3000/setup to create an admin account, or set AUTH_USER/AUTH_PASS in .env for headless/CI seeding.
pnpm dev # development (localhost:3000)
pnpm start # production
node .next/standalone/server.js # standalone mode (after build)docker compose up # zero-config
bash install.sh --docker # full guided setupProduction hardening: docker compose -f docker-compose.yml -f docker-compose.hardened.yml up -d
pnpm test # unit tests (vitest)
pnpm test:e2e # end-to-end (playwright)
pnpm typecheck # tsc --noEmit
pnpm lint # eslint
pnpm test:all # lint + typecheck + test + build + e2esrc/app/ Next.js pages + API routes (App Router)
src/components/ UI panels and shared components
src/lib/ Core logic, database, utilities
.data/ SQLite database + runtime state (gitignored)
scripts/ Install, deploy, diagnostics scripts
docs/ Documentation and guides
Path alias: @/* maps to ./src/*
Set MISSION_CONTROL_DATA_DIR env var to change the data location (defaults to .data/).
Database path: MISSION_CONTROL_DB_PATH (defaults to .data/mission-control.db).
- Commits: Conventional Commits (
feat:,fix:,docs:,test:,refactor:,chore:) - No AI attribution: Never add
Co-Authored-Byor similar trailers to commits - Package manager: pnpm only (no npm/yarn)
- Icons: No icon libraries -- use raw text/emoji in components
- Standalone output:
next.config.jssetsoutput: 'standalone'
- Standalone mode: Use
node .next/standalone/server.js, notpnpm start(which requires fullnode_modules) - better-sqlite3: Native addon -- needs rebuild when switching Node versions (
pnpm rebuild better-sqlite3) - AUTH_PASS with
#: Quote it (AUTH_PASS="my#pass") or useAUTH_PASS_B64(base64-encoded) - Gateway optional: Set
NEXT_PUBLIC_GATEWAY_OPTIONAL=truefor standalone deployments without gateway connectivity