Skip to main content
The ls-config command outputs your current Vale configuration as formatted JSON, showing all settings after loading and merging configuration files.

Usage

vale ls-config
This command reads your .vale.ini file and any configuration pipeline files, then outputs the complete configuration as JSON to stdout.
This command is useful for debugging configuration issues and understanding how Vale interprets your settings.

Output Format

The command outputs a JSON object containing all configuration properties:
{
  "BlockIgnores": {},
  "Checks": [
    "Vale.Spelling",
    "Vale.Repetition",
    "Microsoft.Headings"
  ],
  "Formats": {},
  "Asciidoctor": {},
  "FormatToLang": {},
  "GBaseStyles": [
    "Vale",
    "Microsoft"
  ],
  "GChecks": {
    "Vale.Spelling": true,
    "Microsoft.Headings": true
  },
  "IgnoredClasses": [],
  "IgnoredScopes": [
    "code",
    "tt"
  ],
  "MinAlertLevel": 1,
  "Vocab": [],
  "RuleToLevel": {},
  "SBaseStyles": {
    "*.md": [
      "Vale",
      "Microsoft"
    ]
  },
  "SChecks": {},
  "SkippedScopes": [
    "script",
    "style",
    "pre",
    "code"
  ],
  "Stylesheets": {},
  "TokenIgnores": {},
  "CommentDelimiters": {},
  "WordTemplate": "\\b(?:%s)\\b",
  "RootINI": "/path/to/project/.vale.ini",
  "Paths": [
    "/path/to/project/styles"
  ],
  "ConfigFiles": [
    "/path/to/project/.vale.ini"
  ],
  "NLPEndpoint": ""
}

Configuration Properties

MinAlertLevel
number
Numeric alert level threshold:
  • 0 = suggestion
  • 1 = warning
  • 2 = error
GBaseStyles
array
Global base styles enabled for all files.
SBaseStyles
object
Syntax-specific base styles, keyed by file pattern.Example:
{
  "*.md": ["Vale", "Microsoft"],
  "*.rst": ["Vale", "Google"]
}
GChecks
object
Global check settings, mapping rule names to enabled status.Example:
{
  "Vale.Spelling": true,
  "Vale.Annotations": false
}
SChecks
object
Syntax-specific check settings, keyed by file pattern.
Checks
array
List of all enabled check names.
RootINI
string
Absolute path to the root .vale.ini configuration file.
Paths
array
List of style paths searched for style packages.
ConfigFiles
array
All configuration files loaded, in order.
IgnoredScopes
array
HTML tags where Vale ignores content completely.Example: ["code", "pre", "tt"]
SkippedScopes
array
HTML tags where Vale skips content but still processes nested elements.Example: ["script", "style", "figure"]
BlockIgnores
object
Block-level ignore patterns by format.Example:
{
  "markdown": ["```.*?```"]
}
TokenIgnores
object
Token-level ignore patterns by format.
Vocab
array
Active vocabulary names.
Formats
object
Custom format associations mapping file extensions to formats.
RuleToLevel
object
Per-rule alert level overrides.Example:
{
  "Vale.Spelling": "error",
  "Microsoft.Headings": "warning"
}

Use Cases

Debugging Configuration

When Vale behaves unexpectedly, check the loaded configuration:
vale ls-config | jq '.GBaseStyles'
This shows which styles are actually loaded, helping identify configuration errors.

Verify Style Loading

Confirm that styles are found and loaded:
vale ls-config | jq '.Checks[] | select(startswith("Microsoft"))'
This lists all Microsoft style rules that were loaded.

Check Paths

Verify configuration file and style paths:
vale ls-config | jq '{RootINI, Paths, ConfigFiles}'
Output:
{
  "RootINI": "/home/user/project/.vale.ini",
  "Paths": [
    "/home/user/project/styles"
  ],
  "ConfigFiles": [
    "/home/user/project/.vale.ini"
  ]
}

Inspect Scope Configuration

Check which scopes are ignored or skipped:
vale ls-config | jq '{IgnoredScopes, SkippedScopes}'

Verify Rule Overrides

Confirm rule-specific settings:
vale ls-config | jq '.RuleToLevel'

Examples

vale ls-config

Using with jq

Since the output is JSON, you can use jq to query specific values:
vale ls-config | jq '.GBaseStyles[]'
Output:
"Vale"
"Microsoft"
"write-good"

Configuration Loading Order

Vale loads configuration from multiple sources in this order:
1

Default values

Built-in default settings are applied first.
2

Global configuration

The global .vale.ini from ~/.config/vale/.vale.ini (unless --no-global is used).
3

Project configuration

Project-specific .vale.ini found by searching up the directory tree.
4

Configuration pipeline

Files in .vale-config/ directory (created by vale sync).
5

Command-line flags

CLI flags like --minAlertLevel override all other sources.
The ls-config output shows the final merged configuration after all sources are processed.
The ConfigFiles array in the output shows which configuration files were loaded, in the order they were processed.
  • ls-dirs - View default directory locations
  • ls-vars - View environment variables affecting configuration

Build docs developers (and LLMs) love