moon debug command provides utilities for inspecting and debugging moon’s internal state, loaded configuration, and VCS integration.
Subcommands
config
Debug all loaded configuration files and settings.
- Workspace configuration (
workspace.yml) - Extensions configuration (
extensions.yml) - Toolchains configuration (
toolchains.yml) - Tasks configuration (
tasks.ymland inherited task configs)
dbg! macro, providing deeply nested structure inspection with file locations and line numbers.
vcs
Debug the Version Control System (VCS) integration.
- VCS configuration - Settings from
workspace.yml - VCS adapter details - Active VCS provider and settings
- Branch information:
- Default branch name
- Default branch revision/commit
- Current local branch name
- Current local branch revision/commit
- Changed files - Files modified in the working directory
- Changed files against previous revision - Files changed compared to HEAD
How it works
- Loads the moon session with full workspace context
- Accesses internal configuration and state objects
- Outputs debug information using Rust’s debug formatting
- For VCS debugging, queries the VCS adapter for real-time information
- Troubleshooting configuration issues
- Understanding how moon loads and merges configuration
- Debugging VCS integration problems
- Reporting issues with detailed environment information
Examples
Debug configuration
Debug VCS
Common debugging scenarios
Configuration not loading correctly
VCS integration issues
Task inheritance problems
Toolchain configuration
Output format
The debug output uses Rust’s debug format ({:#?}), which:
- Shows nested structures with indentation
- Includes type information
- Displays all fields, including defaults
- Uses multi-line formatting for readability
- Shows enum variants explicitly
Use cases
Troubleshooting configuration
When tasks aren’t inheriting properly or configuration seems incorrect:Reporting bugs
When filing bug reports, include debug output:Understanding configuration merging
To see how workspace, tasks, and project configs merge:VCS debugging
When experiencing issues with:- Branch detection
- Changed file tracking
- Hook synchronization
- Remote operations
Notes
The debug output format may change between moon versions as internal data structures evolve. Don’t rely on parsing this output programmatically.
For production environments, avoid using debug commands as they expose internal implementation details. Use them primarily for development and troubleshooting.
Exit codes
0- Debug information displayed successfully- Non-zero - Error accessing configuration or VCS information