ManifestKit

Cursor & Windsurf Rules Generator

Cursor and Windsurf both read a project-level rules file that steers how their AI edits your code — Cursor via .cursorrules or scoped .mdc files, Windsurf via .windsurfrules. This tool builds the correct format for either editor from the same rule sections, free and entirely in your browser.

    Why the format actually matters

    Cursor's .mdc rules and Windsurf's .windsurfrules look similar but parse differently — an .mdc file needs a YAML frontmatter block with at least one of alwaysApply, globs, or description set, or Cursor has no signal for when to use it and silently never applies it. This tool enforces that before it lets you download.

    Worked example

    Cursor .mdc format with a description, a glob, and one section:

    ---
    description: TypeScript conventions
    globs: **/*.ts
    alwaysApply: false
    ---
    ## Code style
    
    Use TypeScript strict mode everywhere. Prefer named exports.

    FAQ

    Cursor legacy .cursorrules vs. the newer .mdc rules — which should I use?

    Cursor now recommends .cursor/rules/*.mdc files — they support per-file scoping via glob patterns and an "always apply" flag that a single root .cursorrules file cannot do. Use .cursorrules only if you need compatibility with an older Cursor version.

    What does "alwaysApply" do in a .mdc file?

    When true, the rule is attached to every request regardless of which files are open. When false, Cursor uses the glob pattern (if set) or the description (for agent-requested rules) to decide when to pull the rule in.

    Does Windsurf use the same format as Cursor?

    Windsurf reads a plain-text .windsurfrules file — the same unscoped, always-applied format as Cursor's legacy .cursorrules. It does not currently support Cursor's per-file .mdc scoping.

    Can I generate multiple rule files at once?

    This tool generates one file per format per run — switch the format dropdown and download again to get the other variant from the same rule sections.