📝 Utility Options¶
📋 Options¶
| Option | Description |
|---|---|
--debug |
Show debug messages during code generation |
--generate-prompt |
Generate a prompt for consulting LLMs about CLI options |
--help |
Show help message and exit |
--list-deprecations |
List registered deprecations and scheduled breaking changes |
--list-experimental |
List registered experimental features |
--no-color |
Disable colorized output |
--output-format |
Choose the command output format |
--output-format-json-schema |
Output JSON Schema for structured command output or JSON configuration |
--profile |
Use a named profile from pyproject.toml |
--version |
Show program version and exit |
--debug¶
Show debug messages during code generation.
Enables verbose debug output to help troubleshoot issues with schema parsing
or code generation. Requires the debug extra to be installed.
Requires extra dependency
The debug feature requires the debug extra:
--generate-prompt¶
Generate a prompt for consulting LLMs about CLI options.
Outputs a formatted prompt containing your current options, all available options by category, and full help text. Pipe to CLI LLM tools or copy to clipboard for web-based LLM chats.
Use --output-format json when an LLM agent or tool should consume structured
option metadata instead of Markdown.
Use --output-format-json-schema generate-prompt when the agent needs the JSON
Schema for that structured payload, such as when defining a tool contract.
See also: LLM Integration for detailed usage examples
For LLM agents
See LLM Integration: If You Are an LLM Agent for workflow guidance.
Usage
datamodel-codegen --generate-prompt # (1)!
datamodel-codegen --generate-prompt "How do I generate strict types?" # (2)!
datamodel-codegen --generate-prompt --output-format json # (3)!
datamodel-codegen --output-format-json-schema generate-prompt # (4)!
-
--generate-prompt- generate prompt without a question - Include a specific question in the prompt
- Emit structured JSON for LLM/tool ingestion
- Emit JSON Schema for structured prompt JSON
Quick Examples
Pipe to CLI tools:
datamodel-codegen --generate-prompt | claude -p # Claude Code
datamodel-codegen --generate-prompt | codex exec # OpenAI Codex
datamodel-codegen --generate-prompt --output-format json | codex exec
Copy to clipboard:
datamodel-codegen --generate-prompt | pbcopy # macOS
datamodel-codegen --generate-prompt | xclip -selection clipboard # Linux
datamodel-codegen --generate-prompt | clip.exe # WSL2
Ask about an existing OpenAPI command:
datamodel-codegen \
--input openapi.yaml \
--input-file-type openapi \
--output models.py \
--output-model-type pydantic_v2.BaseModel \
--target-python-version 3.12 \
--generate-prompt "Find the minimal options for strict API response models." \
| claude -p
Review a command with current options:
--help¶
Show help message and exit.
Displays all available command-line options with their descriptions and default values.
Aliases: -h
Output
--list-deprecations¶
List registered deprecations and scheduled breaking changes, then exit.
The option reads from the central deprecation registry used by runtime warnings, generated documentation, and release-note snippets.
datamodel-codegen --list-deprecations
datamodel-codegen --list-deprecations json
datamodel-codegen --list-deprecations markdown
--list-experimental¶
List registered experimental features, then exit.
The optional format argument can be table, json, or markdown. The default is table.
The option reads from the central experimental feature registry used by generated documentation and release-note snippets.
datamodel-codegen --list-experimental
datamodel-codegen --list-experimental json
datamodel-codegen --list-experimental markdown
--no-color¶
Disable colorized output.
By default, datamodel-codegen uses colored output for better readability. Use this option to disable colors, which is useful for CI/CD pipelines or when redirecting output to files.
Usage
-
--no-color- the option documented here
Environment variable
You can also disable colors by setting the NO_COLOR environment variable:
--output-format¶
Choose the command output format.
The default output format is text. Use json when another program or LLM
agent should inspect structured output.
In normal generation mode, --output-format json wraps generated modules in a
structured payload on stdout. If --output is also supplied, files are still
written to disk and the JSON payload mirrors the generated files. --check
also supports JSON output for difference reports. --watch keeps its existing
text output contract and does not support --output-format json.
Structured JSON is emitted on stdout for successful commands and for --check
difference reports. CLI usage errors, validation errors, and runtime generation
errors continue to use text on stderr with a non-zero exit code.
Generation JSON includes the normalized requested output path in top-level
output when --output is supplied, or null for stdout generation.
files[].path is the output file name for single-file disk output, and the
path relative to the output directory for directory output. For stdout-only
single-file generation it is null, and for multi-module stdout generation it
is the generated module path.
Use --output-format json with --generate-prompt to emit structured option
metadata instead of Markdown. Use --output-format-json-schema when an LLM
agent or tool needs the schema for a JSON payload.
Schema targets are intentionally scoped. generate-prompt emits the
PromptPayload schema for --generate-prompt --output-format json.
generation emits only the GenerationPayload schema for generated-file JSON.
model-metadata emits the schema for files written by --emit-model-metadata.
structured-output emits the broader StructuredOutputPayload schema, a union
covering GenerationPayload, PromptPayload, CommandOutputPayload, and
CheckOutputPayload. Structured payloads use kind as the discriminator.
Usage
datamodel-codegen --input schema.json --output-format text # (1)!
datamodel-codegen --input schema.json --output-format json # (2)!
datamodel-codegen --generate-prompt --output-format json # (3)!
datamodel-codegen --output-format-json-schema generation # (4)!
datamodel-codegen --output-format-json-schema generate-prompt # (5)!
datamodel-codegen --output-format-json-schema model-metadata # (6)!
datamodel-codegen --output-format-json-schema structured-output # (7)!
- Emit the default generated Python text
- Emit structured JSON containing generated files
- Emit structured JSON with current options and argparse metadata
- Emit JSON Schema for generated-file JSON output
- Emit JSON Schema for structured prompt JSON
- Emit JSON Schema for generated model metadata JSON
- Emit JSON Schema for any structured command JSON output
Generation JSON output
Prompt JSON output
--output-format-json-schema¶
Output JSON Schema for a JSON output format and exit.
Use this when an LLM agent, tool call definition, or validation layer needs the contract before consuming JSON output. The schema is emitted separately from the JSON payload so tools can fetch the contract once and validate later command output independently.
Currently supported schema targets:
generate-prompt: schema for--generate-prompt --output-format jsongeneration: schema for normal generation with--output-format jsonmodel-metadata: schema for files emitted by--emit-model-metadatastructured-output: tagged union schema for all structured command outputs, discriminated bykindconfig: schema for JSON-valued configuration options
Usage
datamodel-codegen --output-format-json-schema generate-prompt # (1)!
datamodel-codegen --output-format-json-schema generation # (2)!
datamodel-codegen --output-format-json-schema model-metadata # (3)!
datamodel-codegen --output-format-json-schema structured-output # (4)!
datamodel-codegen --output-format-json-schema config # (5)!
datamodel-codegen --generate-prompt --output-format json # (6)!
datamodel-codegen --input schema.json --emit-model-metadata model-map.json # (7)!
- Emit the JSON Schema for structured prompt output
- Emit the JSON Schema for generated-file output
- Emit the JSON Schema for generated model metadata
- Emit the JSON Schema for all structured command outputs
- Emit the JSON Schema for JSON-valued configuration options
- Emit prompt payloads that match the prompt schema
- Emit metadata payloads that match the model metadata schema
--profile¶
Use a named profile from pyproject.toml configuration.
Profiles allow you to define multiple named configurations in your pyproject.toml file. Each profile can override the default settings with its own set of options.
Related: pyproject.toml Configuration
Usage
-
--profile- the option documented here
Configuration (pyproject.toml)
[tool.datamodel-codegen]
# Default configuration
output-model-type = "pydantic_v2.BaseModel"
[tool.datamodel-codegen.profiles.strict]
# Strict profile with additional options
strict-types = ["str", "int", "float", "bool"]
strict-nullable = true
[tool.datamodel-codegen.profiles.dataclass]
# Dataclass profile
output-model-type = "dataclasses.dataclass"
Use profiles:
--version¶
Show program version and exit.
Displays the installed version of datamodel-code-generator.