Skip to content
AI Dev Toolkit.
Esc
  • AI Token CounterCount tokens for GPT, Claude, Gemini, DeepSeek, Qwen and more.Tool
  • LLM API Cost CalculatorEstimate per-request, daily and monthly API costs.Tool
  • AI Model ComparisonCompare prices, context windows and features across models.Tool
  • AI Model Pricing PagesSpecs, real costs and cheaper alternatives for popular models.Tool
  • Context Window CheckerSee whether your text fits each model’s context window.Tool
  • Subscription vs API CalculatorFind out whether a chat plan or the API is cheaper for you.Tool
  • GPU / VRAM CalculatorCheck how much VRAM a local model needs and which GPUs fit.Tool
  • Prompt Caching CalculatorEstimate savings from prompt caching.Tool

Coding Agents

Cursor rules converter: Copilot, Windsurf, CLAUDE.md and AGENTS.md

Convert Cursor rules, GitHub Copilot instructions, Devin Desktop (Windsurf) rules, CLAUDE.md and AGENTS.md into each other. File patterns are mapped, rule types are matched to the closest equivalent, and anything that can’t carry over is listed. Free, and it runs in your browser.

Your rule files (4)

  1. Cursor rule · Always on

  2. Cursor rule · Matching files: src/components/**/*.{ts,tsx}

  3. Cursor rule · Agent decides

  4. Cursor rule · Manual

Try:

Converted in your browser. Nothing you paste or open is uploaded. The file path tells the converter what each file is, so keep it as it is in your repository.

4 rules → 4 Claude Code files

How each rule was mapped
RuleAppliesFrom
projectAlways on.cursor/rules/project.mdc
componentsMatching files.cursor/rules/components.mdc
api-servicesAgent decides.cursor/rules/api-services.mdc
migrationsManual.cursor/rules/migrations.mdc
CLAUDE.md
- Package manager: pnpm. Never use npm or yarn.
- Run `pnpm test` and `pnpm lint` before you say a task is done.
- Never edit generated files in `dist/` or `src/generated/`.

Good to know

  • “api-services” becomes a skill: Claude Code has no description-triggered rule, but loads a skill when its description fits the task. You can also run it with /api-services.
  • “migrations” becomes a skill that only runs when you type /migrations.

Steps

How to use the AI coding rules converter

  1. Open your rule files, or paste each one into a file box. Keep each file’s path as it is in your repository, such as .cursor/rules/api.mdc, because the path tells the converter what the file is.
  2. Check the line under each file: it shows what the file was read as and when it applies.
  3. Choose the tool to convert to.
  4. Read the notes, especially “Changed in the conversion”, then download the files and put them at the paths shown.

Method

How it works

Every AI coding tool lets you give the agent standing instructions, but each keeps them in its own files with its own frontmatter. Underneath, they all answer one question: when should this rule reach the model? There are four answers, and the converter reads every file into one of them before writing it out in the target’s format.

  • Always on. Sent with every request: Cursor’s alwaysApply: true, Copilot’s .github/copilot-instructions.md, Devin Desktop’s trigger: always_on, CLAUDE.md and a root AGENTS.md.
  • Matching files. Added when the agent works on files that match a pattern: Cursor’s globs, Copilot’s applyTo, Devin Desktop’s trigger: glob and Claude Code’s paths.
  • Agent decides. Only a description is shown, and the agent pulls the rule in when it looks relevant: Cursor’s Apply Intelligently and Devin Desktop’s model_decision.
  • Manual. Used only when you ask for it, usually with an @-mention.

Where the formats don’t line up

Always-on and file-scoped rules convert cleanly between Cursor, Copilot, Devin Desktop and Claude Code. The other two types don’t. Copilot documents description-only and manual instruction files for VS Code, but GitHub’s own docs only describe applyTo files for the cloud agent and code review. Claude Code rules read only paths, so the closest match for an agent-decided rule is a skill, which Claude loads when its description fits the task; a manual rule becomes a skill with disable-model-invocation: true that you run as a slash command. AGENTS.md has no frontmatter at all: it can only be scoped by folder, so a src/web/** rule becomes src/web/AGENTS.md, while other patterns and agent-decided rules are folded into the root file and load every time. Each of these changes appears in the notes.

Patterns and limits

Cursor and Copilot take several patterns as one comma-separated value; Claude Code takes a YAML list. Claude Code documents brace patterns such as src/**/*.{ts,tsx}; the other tools don’t, so the converter expands them into separate patterns for Cursor, Copilot and Devin Desktop. Devin Desktop’s docs show one pattern per glob rule, so a rule with several patterns is written as one file per pattern. The converter also warns when a file passes a documented size: 500 lines for a Cursor rule, 200 lines for CLAUDE.md, 12,000 characters for a Devin Desktop rule and about 1,000 lines for a Copilot instruction file.

Mentions and imports

The same @ means different things. In a Cursor rule, @template.ts tells the agent where to look, and it reads the file when needed. In CLAUDE.md, @path outside backticks imports the whole file at launch, up to four levels deep. The converter flags both directions, so you can wrap a mention in backticks or paste in what an import used to supply.

Do you need to convert at all?

Often not every file. Cursor reads AGENTS.md (in the root and in folders) and CLAUDE.md, which it always applies. Copilot’s cloud agent reads AGENTS.md, CLAUDE.md or GEMINI.md, and Devin Desktop treats a root AGENTS.md as an always-on rule and one in a folder as a rule for that folder. Claude Code reads AGENTS.md from v2.1.277 when there’s no CLAUDE.md. If your rules are project-wide, one AGENTS.md may cover every tool you use; convert to tool-specific files when you need file patterns or rules the agent pulls in only when relevant.

Everything runs in your browser. File formats were checked against each tool’s documentation on 2026-10-12.

Examples

Worked examples

The same rule type in each tool’s format (checked 2026-10-12)
AppliesCursor (.mdc)GitHub CopilotDevin Desktop (Windsurf)Claude CodeAGENTS.md
Always onalwaysApply: true.github/copilot-instructions.mdtrigger: always_onCLAUDE.md (or a rule without paths)Root AGENTS.md
Matching filesglobs (comma-separated)applyTo (comma-separated, quoted)trigger: glob + globs (one pattern).claude/rules/ with a paths listNested AGENTS.md, folders only
Agent decidesdescriptiondescription only (VS Code)trigger: model_decision + descriptionA skill with a descriptionNo equivalent
ManualNo description or globs; @-mention itNo applyTo or description; attach it (VS Code)trigger: manual; @-mention itA skill with disable-model-invocation: trueNo equivalent

A Cursor project converted to Claude Code

The four rules in the “Cursor rules” example, one of each type, become 4 files: the always-on rule is CLAUDE.md, the file-scoped rule keeps its brace pattern in .claude/rules/, the agent-decided rule becomes a skill, and the manual rule becomes a skill you run with /migrations.

CLAUDE.md
- Package manager: pnpm. Never use npm or yarn.
- Run `pnpm test` and `pnpm lint` before you say a task is done.
- Never edit generated files in `dist/` or `src/generated/`.
.claude/rules/components.md
---
paths:
  - "src/components/**/*.{ts,tsx}"
---

- Use named exports, not default exports.
- Keep components under 200 lines; extract subcomponents into the same folder.
- Styles go in a CSS module next to the component.
.claude/skills/api-services/SKILL.md
---
description: "Conventions for backend API services and request validation"
---

- One service per file under `src/services/`.
- Validate every request body with the Zod schemas in `src/schemas/`.
- Return `{ code, message }` errors; never throw raw strings.
.claude/skills/migrations/SKILL.md
---
disable-model-invocation: true
---

- Every migration needs both `up` and `down`.
- Never change a column type in place: add a column, backfill, then drop the old one.

The same file-scoped rule for Copilot

.cursor/rules/components.mdc
---
globs: src/components/**/*.{ts,tsx}
alwaysApply: false
---

- Use named exports, not default exports.
- Keep components under 200 lines; extract subcomponents into the same folder.
- Styles go in a CSS module next to the component.
.github/instructions/components.instructions.md
---
applyTo: "src/components/**/*.ts,src/components/**/*.tsx"
---

- Use named exports, not default exports.
- Keep components under 200 lines; extract subcomponents into the same folder.
- Styles go in a CSS module next to the component.

Cursor’s globs becomes a quoted applyTo, and the brace pattern is expanded into two comma-separated patterns.

FAQ

Frequently asked questions

How do I convert .cursorrules to CLAUDE.md?

Open or paste your .cursorrules file, choose Claude Code as the target and download CLAUDE.md. The legacy file is always applied, so it becomes your CLAUDE.md as it is. Check the notes for @file mentions: in Cursor they point the agent at a file, but in CLAUDE.md the same text imports the whole file at launch. Wrap any you want kept as pointers in backticks.

Is .cursorrules deprecated?

Cursor’s help centre calls the root .cursorrules file legacy and says it will be deprecated. Its migration advice is to create a project rule in .cursor/rules, paste the old content in, set the type to Always Apply and delete .cursorrules. Project rules must use the .mdc extension; a plain .md file in that folder is ignored. Cursor also reads AGENTS.md and CLAUDE.md.

What is the GitHub Copilot equivalent of Cursor rules?

Always-on rules go in .github/copilot-instructions.md. Rules scoped to files go in .github/instructions/NAME.instructions.md with an applyTo glob in the frontmatter, such as applyTo: "**/*.ts,**/*.tsx". Copilot uses both files when they match. A file with only a description, which matches Cursor’s Apply Intelligently, is loaded on demand by VS Code but isn’t documented for Copilot on GitHub.com.

Where do Windsurf rules go now?

Windsurf was renamed Devin Desktop in June 2026. Workspace rules go in .devin/rules/*.md, with .windsurf/rules/*.md still read as a fallback and the legacy .windsurfrules file still read too. Each rule sets a trigger: always_on, glob, model_decision or manual. Workspace rule files are limited to 12,000 characters each and the global rules file to 6,000.

Should I use AGENTS.md instead of tool-specific rules?

If your rules apply to the whole project, yes: one AGENTS.md is read by Cursor, Copilot’s cloud agent, Devin Desktop, Codex and Claude Code (from v2.1.277, when there’s no CLAUDE.md). Gemini CLI reads GEMINI.md by default, but you can point its context.fileName setting at AGENTS.md. It has no frontmatter, so it can’t express file patterns or agent-decided rules; nested AGENTS.md files scope instructions to a folder. Keep tool-specific files for rules that need that control. To write a new AGENTS.md or CLAUDE.md from scratch, use the CLAUDE.md generator.

Does Claude Code have rule types like Cursor?

Partly. CLAUDE.md and .claude/rules files without paths always load. A rule with a paths list loads when Claude reads or edits a matching file, like Cursor’s Apply to Specific Files. There’s no description-triggered rule, so the converter writes those as skills, which Claude loads when the description fits; manual rules become skills you run with a slash command. The skill generator checks the result.

Is anything uploaded when I convert my rules?

No. Reading, converting and zipping all happen in your browser, and nothing you paste or open is sent to a server. The converter does check for anything that looks like an API key, token or password, because rule files are committed to your repository and sent to the model with every request.