Skip to content

Local development and contribution

Setup

bash
git clone https://github.com/ambitresearch/genie.git
cd genie
corepack enable
pnpm install

Node.js 22.19.0–22.x, or 24.4.1 or newer is required — the 23.x line and 24.0–24.4.0 predate the CVE-2025-27210 fix, so engines.node excludes them. That field is advisory here: npm warns and installs anyway, so the check is yours. .nvmrc is a local convenience baseline; CI does not read it, and instead builds a node: [22, 24] matrix of bare majors.

Commands

CommandPurpose
pnpm devRun the MCP server on stdio with source watching.
pnpm buildCompile all workspaces and package viewer assets.
pnpm lintRun ESLint.
pnpm typecheckRun strict TypeScript checks across packages.
pnpm testRun unit, integration, E2E, browser, and contract tests.
pnpm format:checkCheck repository formatting.

Contribution flow

Open an issue before non-trivial work. Branch from main, write the failing test first, implement the smallest behavior, and run the narrowest relevant tests before widening to the full gates. Commit messages follow Conventional Commits because Release Please uses them to calculate versions.

The full review and landing requirements are in CONTRIBUTING.md and AGENTS.md.

Test layers

  • Unit tests live beside source modules.
  • Integration tests exercise real multi-module seams and containerized dependencies.
  • packages/e2e drives the server through MCP and tests harness-specific registration, preview delivery, auth, Docker images, and live generation canaries.

Set VITEST_JUNIT=1 when you need reports/junit.xml, the same artifact shape CI uses.

Released under the MIT License.