CDK Terrain CLI

raw JSON →
0.22.1 verified Sat Apr 25 auth: no javascript

CLI for CDK Terrain, an open-source infrastructure-as-code framework leveraging Terraform providers via CDK constructs. Current version 0.22.1, released with monthly cadence. Renamed from `cdktf-cli` in v0.22.0 as part of the fork from CDKTF, with breaking package rename and Maven Central artifact publishing. Key differentiators include TypeScript-first design, tight integration with Terraform providers, and a provider generator for custom resources.

error Error: Cannot find module 'cdktn-cli'
cause Package renamed to cdktn-cli after v0.22.0
fix
Run: npm uninstall cdktf-cli && npm install cdktn-cli
error TypeError: cdktn_cli_1.CdktnCli is not a constructor
cause CommonJS require() used with ESM-only package
fix
Change to ESM import: import { CdktnCli } from 'cdktn-cli'
error SyntaxError: Unexpected token 'export'
cause Running TypeScript <5.x with cdktn-cli v0.22.1 which expects TS 5.x
fix
Install TypeScript 5.x: npm install -D typescript@^5.0.0
error ENOENT: no such file or directory, open 'cdktf.json'
cause Config file renamed to cdktn.json in v0.22.0
fix
Rename cdktf.json to cdktn.json or create cdktn.json
breaking Package renamed from 'cdktf-cli' to 'cdktn-cli' in v0.22.0; all existing imports break.
fix Replace all `import from 'cdktf-cli'` with `import from 'cdktn-cli'`
breaking TypeScript pinned to 5.x in v0.22.1; using TS 4.x causes syntax errors.
fix npm install typescript@^5.0.0
deprecated Config key 'cdktf.json' is deprecated; migrate to 'cdktn.json'
fix Rename cdktf.json to cdktn.json in project root
gotcha ESM-only: require() not supported in Node >=16; use import/import()
fix Set { "type": "module" } in package.json or use .mjs extension
gotcha Environment variable CDKTF_* still read for legacy support; may conflict with CDKTN_*
fix Unset CDKTF_* env vars if using CDKTN_* to avoid unexpected overrides
npm install cdktn-cli
yarn add cdktn-cli
pnpm add cdktn-cli

Shows basic usage: import CdktnCli, create App, define stack, and synth to generate Terraform JSON.

import { CdktnCli } from 'cdktn-cli';
const app = new CdktnCli.App();
new MyStack(app, 'my-stack', { env: { region: 'us-east-1' } });
app.synth();