The CLI orchestrates mapping, lowering, and emitters. Use flags to select targets, override policies, and inspect output.

1# Standard generation commands:
2irgen examples/app.dsl.ts --targets=backend,frontend --outDir=generated/fullstack
3irgen examples/docs.dsl.ts --targets=static-site --outDir=generated/static-docs
4
5# Specialized v0.3.0+ Developer Commands:
6irgen init my-project --ext=php-shared-hosting
7irgen check examples/*.dsl.ts --ext=php-shared-hosting
8irgen studio examples/app.dsl.ts

Core Flags

Use --targets to select outputs, --mode to force domain mapping, and --outDir to control output location.

1irgen examples/app.dsl.ts --targets=backend
2irgen examples/frontend.dsl.ts --mode=frontend --outDir=generated/frontend

Policies and Extensions

Override policies via --policies and load extensions with --ext. The CLI supports .ts extension modules via the tsx loader, and can also resolve installed npm packages by name.

1irgen examples/app.dsl.ts --targets=backend --policies='{"backend":{"core":{"generateId":"uuid_v4"}}}'
2irgen examples/app.dsl.ts --targets=backend --ext=./ext/my-ext.ts
3irgen examples/app.dsl.ts --targets=backend --ext=irgen-ext-php-shared-hosting

Emitter Introspection

Use --emitters to list emitters or --emitter to run a specific one.

1irgen --emitters
2irgen examples/app.dsl.ts --emitter=backend-tsmorph

Debugging IR

Inspect intermediate structures with --inspect-decl and --inspect-ir.

1irgen examples/app.dsl.ts --targets=backend --inspect-decl
2irgen examples/app.dsl.ts --targets=backend --inspect-ir

Output Layout

When multiple targets are requested, output is grouped by target under the chosen outDir. Single target output goes directly to outDir.