Minimal starter runbook for cloud agents to install dependencies, run packages, execute tests, and troubleshoot the Scalar monorepo quickly.
Practical setup and execution instructions for running and testing this codebase. Use this as the first reference when starting the app, running tests, or debugging workflows.
.nvmrc)pnpm install
pnpm build:packages
There is no single root pnpm dev. Each package has its own dev script. To run a specific package:
pnpm --filter @scalar/api-client dev
pnpm --filter api-reference dev
pnpm --filter components dev
pnpm build:packages # Build all packages (required before dev)
pnpm build:integrations # Build integrations
pnpm clean:build # Clean, reinstall, and rebuild
pnpm lint:check # Check lint
pnpm lint:fix # Auto-fix lint
pnpm format:check # Check formatting
pnpm format # Apply formatting
pnpm types:check # TypeScript check
cd packages/<package-name>
pnpm dev
Common entrypoints:
| Package | Dev command | Notes |
|---|---|---|
api-client | pnpm dev | Runs playground:v2:web (Vite) |
api-reference | pnpm dev | Main API reference playground |
components | pnpm dev | Storybook on port 5100 |
mock-server | pnpm dev | Mock server playground |
void-server | pnpm dev | HTTP mirror server (port 5052) |
galaxy | pnpm dev | Serves OpenAPI doc with @scalar/cli |
pnpm test # Run all tests (packages + integrations)
pnpm vitest packages/* # Packages only
pnpm vitest packages/api-client # Single package
pnpm vitest packages/api-client --run # Single run, no watch
pnpm test your-test-name # Filter by test name
Test servers required: Some tests need @scalar/void-server (5052) and proxy-scalar-com (5051). Start them in a separate terminal:
pnpm script run test-servers
Then wait for ports: pnpm script wait -p 5051 5052
pnpm --filter @scalar/express-api-reference dev
pnpm --filter @scalar/fastify-api-reference dev
pnpm --filter @scalar/nuxt dev
pnpm --filter @scalar/nextjs-api-reference dev
pnpm vitest integrations/* # All integrations
pnpm vitest integrations/express # Single integration
Python integrations (FastAPI, Django Ninja): Require Python 3.11. Run python run_tests.py in the integration directory.
Rust/Java/.NET: Have separate CI jobs; typically run via their native toolchains (cargo, mvn, dotnet).
cd packages/api-reference
pnpm test:e2e # Local (needs Playwright browser)
pnpm test:e2e:ci # CI mode
pnpm test:e2e:update-snapshots # Update snapshots
cd packages/components
pnpm test:e2e # Local
pnpm test:e2e:ci # CI mode
pnpm test:e2e:update # Update snapshots
pnpm --filter @scalar/nuxt test:e2e
Playwright uses PW_TEST_CONNECT_WS_ENDPOINT=ws://127.0.0.1:5001/ for browser connection in local runs.
CI=1 for CI-like behavior (e.g. test servers, some Playwright runs).openapi-parser tests use NODE_OPTIONS=--max_old_space_size=8192 for large specs.api-reference.pnpm script run test-servers # Start void-server + proxy-scalar-com
pnpm script wait -p 5051 5052 # Wait for ports
pnpm script generate-readme # Regenerate integration READMEs
This codebase does not use feature flags. Configuration is via package options, OpenAPI spec extensions, or environment variables as noted above.
cd projects/proxy-scalar-com && go run main.go (port 5051)pnpm dev (e.g. examples/web, examples/react)To approximate CI locally:
pnpm install
pnpm build:packages
pnpm script run test-servers & pnpm script wait -p 5051 5052
pnpm vitest packages/* --silent
pnpm vitest integrations/* --silent
pnpm types:check
pnpm lint:check
pnpm format:check
When you discover new testing tricks, runbook steps, or environment requirements:
Preferred location for this skill: .agents/skills/cloud-agents-starter/SKILL.md.