{
  "slug": "dsl/reference",
  "title": "DSL reference",
  "description": "Canonical Cuitty DSL blocks and adapter targets.",
  "url": "https://cuitty.com/docs/dsl/reference",
  "markdown_url": "https://cuitty.com/docs/dsl/reference.md",
  "json_url": "https://cuitty.com/docs/dsl/reference.json",
  "frontmatter": {
    "title": "DSL reference",
    "description": "Canonical Cuitty DSL blocks and adapter targets.",
    "order": 2,
    "section": "DSL",
    "updatedAt": "2026-06-05"
  },
  "headings": [
    {
      "depth": 1,
      "slug": "dsl-reference",
      "text": "DSL reference"
    }
  ],
  "body_markdown": "# DSL reference\n\nThe canonical file extension is `.cuitty`. Bare `.cuitty` files, `.cuitty.hcl`,\n`.ctest`, and `.cuitty/**/*.hcl` are detected by the Cuitty DSL tooling and LSP.\n\n| Block | Product | Purpose |\n| --- | --- | --- |\n| `cuitty` | Core | Schema version, project metadata, enabled extensions, export targets. |\n| `test_suite` | Tests | HTTP, gRPC, Pilot, and unit test workflows. |\n| `playbook` | Pilot | Browser automation and provider operations. |\n| `video` | Video | Declarative composition timelines and output settings. |\n| `code_app` | Code | App manifests, permissions, ownership, and runtime. |\n| `module` | Observe | Module registry and portal metadata. |\n| `persist` | Persist | Storage profiles and adapter configuration. |\n\nAdapter targets keep product runtimes stable while authoring converges:\n\n```bash\ncuitty-dsl export --target ctest examples/tests/auth-flow.cuitty\ncuitty-dsl export --target pilot-yaml examples/pilot/cloudflare-dns.cuitty\ncuitty-dsl export --target video-yaml examples/video/code-demo.cuitty\n```",
  "body_html": "<h1 id=\"dsl-reference\">DSL reference</h1>\n<p>The canonical file extension is <code>.cuitty</code>. Bare <code>.cuitty</code> files, <code>.cuitty.hcl</code>,\n<code>.ctest</code>, and <code>.cuitty/**/*.hcl</code> are detected by the Cuitty DSL tooling and LSP.</p>\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n<table><thead><tr><th>Block</th><th>Product</th><th>Purpose</th></tr></thead><tbody><tr><td><code>cuitty</code></td><td>Core</td><td>Schema version, project metadata, enabled extensions, export targets.</td></tr><tr><td><code>test_suite</code></td><td>Tests</td><td>HTTP, gRPC, Pilot, and unit test workflows.</td></tr><tr><td><code>playbook</code></td><td>Pilot</td><td>Browser automation and provider operations.</td></tr><tr><td><code>video</code></td><td>Video</td><td>Declarative composition timelines and output settings.</td></tr><tr><td><code>code_app</code></td><td>Code</td><td>App manifests, permissions, ownership, and runtime.</td></tr><tr><td><code>module</code></td><td>Observe</td><td>Module registry and portal metadata.</td></tr><tr><td><code>persist</code></td><td>Persist</td><td>Storage profiles and adapter configuration.</td></tr></tbody></table>\n<p>Adapter targets keep product runtimes stable while authoring converges:</p>\n<pre class=\"astro-code github-dark\" style=\"background-color:#24292e;color:#e1e4e8; overflow-x: auto;\" tabindex=\"0\" data-language=\"bash\"><code><span class=\"line\"><span style=\"color:#B392F0\">cuitty-dsl</span><span style=\"color:#9ECBFF\"> export</span><span style=\"color:#79B8FF\"> --target</span><span style=\"color:#9ECBFF\"> ctest</span><span style=\"color:#9ECBFF\"> examples/tests/auth-flow.cuitty</span></span>\n<span class=\"line\"><span style=\"color:#B392F0\">cuitty-dsl</span><span style=\"color:#9ECBFF\"> export</span><span style=\"color:#79B8FF\"> --target</span><span style=\"color:#9ECBFF\"> pilot-yaml</span><span style=\"color:#9ECBFF\"> examples/pilot/cloudflare-dns.cuitty</span></span>\n<span class=\"line\"><span style=\"color:#B392F0\">cuitty-dsl</span><span style=\"color:#9ECBFF\"> export</span><span style=\"color:#79B8FF\"> --target</span><span style=\"color:#9ECBFF\"> video-yaml</span><span style=\"color:#9ECBFF\"> examples/video/code-demo.cuitty</span></span></code></pre>",
  "links_out": []
}