An Nx monorepo of TypeScript libraries and tools for Node.js ESM environments.
First time here? Open this repo in VSCode — it will prompt you to reopen in the DevContainer, which sets up Node, PNPM, and all tooling automatically.
Full index of packages can be found here.
# Install dependencies
pnpm i
# Build and test everything
test-ciNx is not globally installed. It ships with
@leyman/mainand is onPATHautomatically. Usenxdirectly — notnpx nxorpnpm exec nx.
See AGENTS.md for the full skill index.
This repo uses Dagger for CI. To replicate CI locally:
dagger-test
# or equivalently:
dagger call --mod ./dagger/test-and-build/ --source . runRun test-ci first — it's faster for iteration. Use Dagger to confirm before pushing.
See all aliased (via PATH set during Devcontainer setup) scripts in the /scripts/commands directory.
The .claude-config/ directory is not version-controlled (it's in .gitignore).
While operating in devcontainer, that is where Claude credentials will be stored, so session can persist across devcontainer builds.
(If you use a different coding agent, PRs are welcome to support those directories).
- Make your changes
- Run
test-cito verify - Run
changesetand follow the prompts to document your changes - Submit a PR — GitHub Actions runs Dagger automatically
| Tool | Role |
|---|---|
| PNPM | Package manager with workspace support |
| Nx | Task runner with caching and dependency graph |
| TypeScript | Language (ESM, strict mode) |
| SWC | Fast TypeScript compiler |
| ESLint | Linting (opinionated, 15+ plugins) |
| Biome | Formatting |
| Mocha + Chai | Testing |
| C8 | Coverage (100% required) |
| Dagger | CI pipeline |
| Changesets | Versioning and changelogs |