Skip to content
🤖 AI-optimized docs: llms-full.txt

Module YAML Reference

Complete reference for module.yaml configuration files.

The module.yaml file is located at:

your-module/src/module.yaml
name: "Module Name"
code: "module-code"
version: "0.1.0"
description: "What this module does"
FieldTypeDescription
namestringDisplay name of the module
codestringUnique module identifier (kebab-case)
versionstringSemantic version (e.g., 0.1.0)
descriptionstringShort description of module purpose

Questions asked during module installation:

install:
- question: "What's your experience level?"
config_key: "experience_level"
options:
- "beginner"
- "intermediate"
- "advanced"
FieldTypeDescription
questionstringQuestion text
config_keystringConfig key to store answer
optionsarrayAvailable options (optional)

Default configuration for the module:

config:
output_folder: "_module-output"
enabled_features:
- feature1
- feature2
user_name: "{user_name}"
name: "My Custom Module"
code: "my-custom-module"
version: "0.1.0"
description: "A module that does useful things"
# Install questions
install:
- question: "What's your primary use case?"
config_key: "use_case"
options:
- "development"
- "documentation"
- "testing"
- question: "Enable advanced features?"
config_key: "advanced_enabled"
options:
- "yes"
- "no"
# Configuration
config:
output_folder: "_my-module-output"
max_iterations: 10
default_language: "english"
# Optional: Module dependencies
requires:
- "bmm"

When validating modules, Morgan checks:

  • ✅ Required fields present
  • ✅ code is valid kebab-case
  • ✅ version follows semantic versioning
  • ✅ config_key values are unique
  • ✅ Options arrays are valid (if provided)
ResourceDescription
Builder CommandsModule commands
Create Your First ModuleModule creation tutorial
What Are ModulesModule concepts