Support Matrix
This page is the audited truth source for DreamCLI's current support surface.
Use it for questions like:
- what is fully supported today;
- what is intentionally deferred;
- where the supporting code and tests live;
- which product claims are already true versus planned next.
Last audited: 2026-04-03
Status Meanings
| Status | Meaning |
|---|---|
| Supported | Shipped today and backed by code, tests, and docs. |
| Deferred | Intentionally not supported yet, or currently represented only by explicit not-supported behavior. |
| Experimental | Present in some form, but not yet stable enough to recommend as part of the supported surface. |
Important Scope Note
Some TypeScript surfaces can be broader than the supported surface.
Treat this matrix as the current truth source whenever implementation and planned scope could diverge. For completions specifically, Shell and SHELLS now match the shipped shell set.
Execution and Semantics
| Claim | Status | Evidence | Notes |
|---|---|---|---|
| Schema-first parse -> resolve -> execute flow | Supported | CLI Semantics, runCommand(), src/core/testkit/index.ts, src/core/cli/index.ts, src/core/execution/index.ts | The shared executor now owns the canonical command execution flow; both CLI and testkit delegate to it directly. |
| Root help, version, default-command, and nested command behavior | Supported | CLI Semantics, src/core/cli/index.ts, src/core/cli/cli-dispatch.test.ts | Planner extraction is planned, not a current user-facing gap. |
| Typed derive and middleware execution | Supported | Middleware guide, src/core/schema/command.ts, src/core/testkit/middleware-context-e2e.test.ts | Execution is centralized in the shared executor while preserving the existing typed builder surface. |
| Explicit planner / executor internal boundary | Deferred | specs/dreamcli-re-foundation-prd.md | Tracked by planner-contracts, scaffold-core-execution, and related tasks. |
Runtime Support
| Claim | Status | Evidence | Notes |
|---|---|---|---|
| Node.js >= 22.22.2 runtime support | Supported | Runtime Support, src/runtime/node.ts, docs/reference/runtime.md | This is the primary adapter implementation. |
| Bun >= 1.3.11 runtime support | Supported | Runtime Support, src/runtime/bun.ts, docs/reference/runtime.md | Bun currently delegates through the Node adapter strategy. |
| Deno >= 2.6.0 runtime support | Supported | Runtime Support, src/runtime/deno.ts, docs/reference/runtime.md | Deno support is permission-aware and published through JSR. |
| Cross-platform CI coverage for all supported runtimes and shells | Deferred | docs/reference/runtime.md, /.github/workflows/ci.yml | Runtime support is shipped, but broader platform coverage is still planned. |
Input Sources and Resolution
| Claim | Status | Evidence | Notes |
|---|---|---|---|
Flag precedence CLI -> env -> config -> prompt -> default | Supported | CLI Semantics, Config Files, Interactive Prompts, src/core/resolve/index.ts | This is the current supported behavior. Re-foundation work is about internal clarity, not removing the chain. |
Positional argument precedence CLI -> stdin -> env -> default for opted-in args | Supported | CLI Semantics, src/core/resolve/index.ts | Only args that opt into .stdin() or .env() use these extra sources. |
| Built-in JSON config discovery | Supported | Config Files, src/core/config/index.ts | JSON is the only built-in format by design. |
Custom YAML / TOML / other config formats via configFormat() | Supported | Config Files, docs/reference/main.md | Additional formats require explicit parser wiring. They are not built-in. |
| Per-flag prompts and command-level interactive prompts | Supported | Interactive Prompts, src/core/schema/prompt.ts, src/core/resolve/index.ts | Prompts are integrated into the resolution chain. |
| Automatic prompts in non-interactive stdin contexts | Deferred | Interactive Prompts, CLI Semantics | DreamCLI intentionally skips prompting when stdinIsTTY is false. This is a design choice, not a bug. |
Completions
| Claim | Status | Evidence | Notes |
|---|---|---|---|
| Bash completion generation | Supported | Shell Completions, src/core/completion/shells/bash.ts, src/core/completion/completion.test.ts | Included in the supported shell set today. |
| Zsh completion generation | Supported | Shell Completions, src/core/completion/shells/zsh.ts, src/core/completion/completion.test.ts | Included in the supported shell set today. |
| Fish completion generation | Supported | Shell Completions, src/core/completion/shells/fish.ts, src/core/completion/completion.test.ts | Included in the supported shell set today. |
| PowerShell completion generation | Supported | Shell Completions, src/core/completion/shells/powershell.ts, src/core/completion/completion.test.ts | Included in the supported shell set today. |
Built-in .completions() helper on cli() | Supported | Shell Completions, src/core/completion/index.ts, src/core/cli/cli-completions.test.ts | The user-facing helper, Shell union, and SHELLS tuple now advertise the same four shipped shells. |
Output
| Claim | Status | Evidence | Notes |
|---|---|---|---|
| Text, warning, error, JSON, and table output | Supported | Output, Output Contract, docs/reference/main.md, src/core/output/index.ts | Core output surface is shipped and documented. |
| Spinner and progress support with testable activity events | Supported | Output, Output Contract, Testing, src/core/output/activity.ts, src/core/testkit/index.ts | Activity behavior is part of the supported output channel. |
| TTY-aware suppression of decorative output in piped / JSON mode | Supported | Output, Output Contract, src/core/output/index.ts, src/core/testkit/output-e2e.test.ts | Re-foundation work clarifies the internal policy boundary without changing support. |
Testing Surface
| Claim | Status | Evidence | Notes |
|---|---|---|---|
In-process command testing via runCommand() | Supported | Testing, docs/reference/testkit.md, src/core/testkit/index.ts | This is one of DreamCLI's strongest first-class features. |
| Injected env/config/stdin/prompt/output test control | Supported | Testing, docs/reference/testkit.md, src/core/testkit/index.ts | Current support is broad; docs depth is still improving. |
| Consolidated testing guidance for advanced failure modes | Supported | Testing, Troubleshooting, specs/dreamcli-re-foundation-prd.md | The troubleshooting guide now covers the common prompt, stdin, config, and output-mode failure cases serious adopters hit first. |
Docs and Learning Surfaces
| Claim | Status | Evidence | Notes |
|---|---|---|---|
| Authored guides and reference overviews | Supported | Guide, API Reference | The current docs backbone is real and useful. |
| Examples index and per-example pages | Supported | /examples/, docs/examples/index.md, examples/*.ts | The examples section is source-backed and built with bun run docs:build. |
| IDE-like hover on example pages | Supported | /examples/, docs/reference/example-hover-prototype.md, docs/.vitepress/config.ts | Hover is shipped on example source blocks; guides and shell transcripts stay plain text. |
| Public changelog page in reference | Supported | docs/reference/changelog.md, CHANGELOG.md | The docs route mirrors the repository changelog directly. |
| API index and symbol pages | Supported | docs/reference/api.md, docs/reference/symbols/**/*.md, specs/dreamcli-re-foundation-prd.md | Symbol pages are generated at build time from the checked-in docs sources. |
| Consolidated rationale and limitations pages | Supported | Architecture Rationale, Limitations And Workarounds, Semantic Delta Log, specs/dreamcli-re-foundation-prd.md | These pages explain the settled architecture trade-offs and current edges as the baseline for adoption guidance. |
| Migration and troubleshooting guides | Supported | Migration And Adoption, Troubleshooting, Limitations And Workarounds, specs/dreamcli-re-foundation-prd.md | The narrative docs set now covers evaluation, phased adoption, and likely real failure modes without overstating unsupported surfaces. |