rumdl - Markdown Linter for VS Code

July 6, 2026 · View on GitHub

Visual Studio Marketplace Version Visual Studio Marketplace Downloads Visual Studio Marketplace Rating Open VSX Version

A lightning-fast Markdown linter for VS Code powered by rumdl, a Rust-based linter with 97.2% markdownlint compatibility and 5x performance improvement.

Features

Real-time linting with 50+ rules and precise column highlighting
One-click auto-fixes for common issues
5x faster than markdownlint
Markdownlint compatibility
Zero configuration required
Workspace-wide linting support
Custom rule configuration
Status bar integration
Precise error positioning with improved column highlighting (rumdl 0.0.81+)
Bundled rumdl binary - no separate installation required
Cross-platform support with optimized binaries for all platforms

Installation

From VS Code

  1. Install the extension from the VS Code Marketplace
  2. That's it! rumdl is bundled with the extension - no additional setup required

From Cursor / VSCodium / Other VS Code Forks

  1. Install the extension from Open VSX Registry
  2. That's it! The extension works the same in all VS Code-compatible editors

The extension includes optimized rumdl binaries for all supported platforms:

  • Windows (x64)
  • macOS (Intel & Apple Silicon)
  • Linux (x64 & ARM64)

Manual Installation (Optional)

If you prefer to use your own rumdl installation:

  1. Install rumdl using one of these methods:

    # Using Cargo (Rust)
    cargo install rumdl
    
    # Using pip (Python)
    pip install rumdl
    
    # Download binary from GitHub releases
    # See: https://github.com/rvben/rumdl/releases
    
  2. Configure the path in VS Code settings:

    {
      "rumdl.server.path": "/path/to/your/rumdl"
    }
    

Quick Start

  1. Install the extension from the VS Code Marketplace
  2. Install rumdl (if not already installed):
    # Using cargo
    cargo install rumdl
    
    # Using homebrew (macOS)
    brew install rumdl
    
    # Using npm
    npm install -g rumdl
    
  3. Open a Markdown file - linting starts automatically!

Screenshots

Real-time Diagnostics

Real-time linting with error highlighting

Quick Fixes

One-click auto-fixes for common issues

Status Bar Integration

Status bar showing server status and rule count

Commands

Access these commands via the Command Palette (Cmd/Ctrl + Shift + P):

  • rumdl: Fix All - Apply all available auto-fixes to the current document
  • rumdl: Restart Server - Restart the rumdl language server
  • rumdl: Show Client Logs - View extension logs in the output panel
  • rumdl: Show Server Logs - View server logs in the output panel
  • rumdl: Check Extension Status - Display extension status and configuration
  • rumdl: Test Configuration Discovery - Debug configuration file discovery and test rumdl settings

Fix on Save

There are two ways to automatically fix Markdown issues when saving files:

This is the standard VS Code mechanism, used by ESLint, Ruff, and other linters. It gives you fine-grained control:

{
  "editor.codeActionsOnSave": {
    "source.fixAll.rumdl": "explicit"
  }
}

Use "explicit" to only fix on manual save (Cmd+S / Ctrl+S), or "always" to also fix on auto-save.

Option 2: rumdl.fixOnSave

A simpler toggle that applies all fixes via the LSP server before saving:

{
  "rumdl.fixOnSave": true
}

Option 3: editor.formatOnSave

Uses VS Code's formatting infrastructure to apply rumdl fixes as formatting edits:

{
  "[markdown]": {
    "editor.formatOnSave": true
  }
}

Configuration

The extension uses VS Code's standard configuration system. Open Settings (Cmd/Ctrl + ,) and search for "rumdl" to configure:

SettingDescriptionDefault
rumdl.enableEnable/disable the extensiontrue
rumdl.fixOnSaveAutomatically fix all auto-fixable problems on save. For more control, use editor.codeActionsOnSave with source.fixAll.rumdl instead.false
rumdl.configPathPath to rumdl configuration file (relative to workspace root or absolute). If not specified, rumdl will auto-discover configuration files in the workspace.undefined
rumdl.rules.enableArray of rule IDs to enable. Empty array enables all rules.[]
rumdl.rules.disableArray of rule IDs to disable[]
rumdl.server.pathPath to rumdl binary. Leave empty (recommended) to use auto-detection (checks workspace .venv, then node_modules, then system PATH, then bundled binary). Set to "rumdl" to explicitly use system PATH (useful with version managers like Nix, mise, or asdf). Relative paths are resolved against the first workspace folder, a leading ~ expands to the home directory, and absolute paths are preserved.undefined
rumdl.server.logLevelServer log level (error, warn, info, debug, trace)"info"
rumdl.trace.serverTrace LSP messages (off, messages, verbose)"off"
rumdl.diagnostics.deduplicateRemove duplicate diagnostics (useful if multiple markdown linters are active)true
rumdl.linkCompletions.enableProvide file path and heading anchor completions inside markdown link targetstrue
rumdl.linkCompletions.contentRootsRoot directories used to resolve absolute link completions (paths starting with /). Relative entries resolve against each workspace folder. When empty, workspace folders are used.[]
rumdl.linkNavigation.enableProvide hover preview, go-to-definition, find-references, and rename for markdown links. Disable to avoid conflicts with other markdown extensions.true

Project Configuration

Create a .rumdl.toml file in your project root for project-specific settings:

# Enable/disable specific rules
[rules]
select = ["MD001", "MD003", "MD022"]
ignore = ["MD013", "MD033"]

# Rule-specific configuration
[rules.MD013]
line_length = 120
code_blocks = false

[rules.MD003]
style = "atx"

# File patterns to include/exclude
[files]
include = ["**/*.md", "**/*.markdown"]
exclude = ["node_modules/**", "target/**"]

Supported File Types

rumdl activates by a document's language, not its file extension. It attaches to any document whose language is one of the following (VS Code assigns these based on the file's name or extension):

Language IDFiles
markdown.md, .markdown, .mdown, .mkd
mdx.mdx
prompt*.prompt.md
instructions*.instructions.md
chatagent*.agent.md
skillSKILL.md

The prompt, instructions, chatagent, and skill languages are VS Code's chat customization files and require a recent VS Code version; where they aren't available, those files open as markdown or plain text. rumdl processes all supported types as Markdown. See Fix on Save to apply fixes automatically.

Performance

rumdl is built for speed:

ToolTime (1000 files)Relative Speed
rumdl0.8s5x faster
markdownlint4.2sbaseline

Rule Compatibility

rumdl supports 97.2% of markdownlint rules:

  • 50+ rules fully implemented
  • Auto-fixes for 40+ rules
  • Custom configuration support
  • Same rule IDs as markdownlint

See the full rule list for details.

Troubleshooting

rumdl not found

If you see "rumdl executable not found":

  1. Install rumdl: Follow the installation guide
  2. Check PATH: Ensure rumdl is in your system PATH
  3. Set custom path: Configure rumdl.server.path in settings

Server not starting

If the server fails to start:

  1. Check logs: Use "rumdl: Show client logs" command
  2. Verify installation: Run rumdl --version in terminal
  3. Restart server: Use "rumdl: Restart Server" command
  4. Check configuration: Ensure .rumdl.toml is valid

Performance issues

If linting feels slow:

  1. Check file size: Very large files (>1MB) may be slower
  2. Exclude patterns: Add exclusions for generated files
  3. Reduce rules: Disable unused rules in configuration

Development

Building from Source

# Clone the repository
git clone https://github.com/rvben/rumdl-vscode.git
cd rumdl-vscode

# Install dependencies
npm install

# Build the extension
npm run compile

# Run in development mode
npm run watch

Testing

# Run linting
npm run lint

Contributing

We welcome contributions! Please check the repository for contribution guidelines.

Reporting Issues

When reporting issues, please include:

  1. VS Code version
  2. Extension version
  3. rumdl version (rumdl --version)
  4. Debug information (use "rumdl: Print debug information")
  5. Sample Markdown file that reproduces the issue

License

This extension is licensed under the MIT License.

Changelog

See CHANGELOG.md for release history.


Enjoy lightning-fast Markdown linting with rumdl!