Coding & DevelopmentšŸ¤–claudeāŒØļøcursor🌐universal

C2C - Cursor to Claude Code

Convert Cursor IDE rules (.mdc files) to Claude AI markdown format with intelligent metadata parsing and categorization.

Quick Start

Install this Skill

npx skills add Vooster-AI/cursorrules-to-claudemd
# C2C - Cursor to Claude Code

Convert Cursor IDE rules (`.mdc` files) to Claude AI markdown format with intelligent metadata parsing and categorization.

## Demo

> **Note**: If the video doesn't play, download `assets/demo.mp4` to view the demonstration.

https://github.com/user-attachments/assets/407cd34e-c4c0-4a1b-981d-817b85decf20

## Installation

```bash
npx @vooster/c2c
```

## Features

- šŸ” **Automatic Discovery**: Recursively finds all `.cursor` directories in your project
- šŸ“ **Metadata Parsing**: Extracts YAML frontmatter (alwaysApply, description, globs) from `.mdc` files
- šŸ—‚ļø **Smart Categorization**: Organizes rules by priority (always apply → description → globs)
- šŸ“ **Separate Directories**: Creates `c2c-rules` directories next to each `.cursor` directory
- šŸ”— **Auto-linking**: Generates `_root.md` index files with proper relative paths
- šŸ“„ **CLAUDE.md Integration**: Automatically updates or creates CLAUDE.md with `<c2c-rules>` sections

## Usage

Run the command in any directory containing `.cursor` folders:

```bash
npx @vooster/c2c
```

The tool will:

1. Recursively find all `.cursor` directories in your project tree
2. Locate all `*.mdc` files within them (including nested subdirectories)
3. Parse YAML metadata from each file's frontmatter
4. Create `c2c-rules` directories next to each `.cursor` directory
5. Convert files to markdown format (stripping metadata)
6. Generate `_root.md` index files with categorized references
7. Update or create `CLAUDE.md` files with proper rule references

### Result Screenshots

**Found Files:**
![Found Files](./assets/res-1-files.png)

**Generated Content:**
![Generated Content](./assets/res-2-content.png)

## Example

Given this structure with metadata:

```
project/
ā”œā”€ā”€ .cursor/
│   └── global.mdc (with alwaysApply: true)
ā”œā”€ā”€ frontend/
│   └── .cursor/
│       ā”œā”€ā”€ rules.mdc (with description: "React component guidelines")
│       └── components/
│           └── ui-rules.mdc (with globs: "**/*.tsx")
└── backend/
    └── .cursor/
        └── api/
            └── guidelines.mdc (with globs: "**/api/**")
```

Running `npx @vooster/c2c` will create:

```
project/
ā”œā”€ā”€ CLAUDE.md (updated with <c2c-rules> section)
ā”œā”€ā”€ c2c-rules/
│   ā”œā”€ā”€ _root.md
│   └── global.md
ā”œā”€ā”€ frontend/
│   ā”œā”€ā”€ CLAUDE.md (updated with <c2c-rules> section)
│   └── c2c-rules/
│       ā”œā”€ā”€ _root.md
│       ā”œā”€ā”€ rules.md
│       └── components/
│           └── ui-rules.md
└── backend/
    ā”œā”€ā”€ CLAUDE.md (updated with <c2c-rules> section)
    └── c2c-rules/
        ā”œā”€ā”€ _root.md
        └── api/
            └── guidelines.md
```

Each `_root.md` will contain categorized rules, for example in `frontend/c2c-rules/_root.md`:

```markdown
# Rules Collection

read below rules if description matches with your requirement:

- rules
  - description: React component guidelines
  - path: rules.md

read below rules if glob pattern matches with requirement related files:

- ui-rules
  - glob: \*_/_.tsx
  - path: components/ui-rules.md
```

Each `CLAUDE.md` will be updated with:

```markdown
<c2c-rules>
- @c2c-rules/_root.md
</c2c-rules>
```

## Metadata Format

`.mdc` files can include YAML frontmatter:

```yaml
---
alwaysApply: true # Rule always applies (highest priority)
description: string # Rule description for matching (medium priority)
globs: string # Glob pattern for file matching (lowest priority)
---
Your actual rule content goes here...
```

## Development

```bash
# Install dependencies
pnpm install

# Build the project
pnpm build

# Run in development mode
pnpm dev

# Run tests
pnpm test

# Run tests in watch mode
pnpm test:watch

# Run tests with coverage
pnpm test:coverage

# Run end-to-end tests
pnpm test:e2e

# Run all tests (unit + e2e)
pnpm test:all

# Publish to npm
pnpm publish:npm
```

## Architecture

This tool uses a layered architecture:

- **Presentation Layer**: CLI interface using Commander.js
- **Application Layer**: Core business logic services
  - `FileExplorerService`: Finds `.cursor` directories and `.mdc` files
  - `MetadataParserService`: Extracts YAML frontmatter
  - `FileConverterService`: Converts files and manages output directories
  - `AdvancedRootFileGeneratorService`: Generates categorized index files
  - `ClaudeMdService`: Updates CLAUDE.md files
- **Domain Layer**: Type definitions for `FileInfo` and `CursorRuleMetadata`
- **Infrastructure Layer**: File system operations

## Testing

The project includes comprehensive testing:

- **Unit Tests**: 58 tests covering all services and utilities
- **E2E Tests**: 21 tests covering complete workflows and cross-platform compatibility
- **Total**: 79 tests with full coverage

See [docs/TESTING.md](./docs/TESTING.md) for detailed testing guide.

## Cross-Platform Support

The tool is designed to work on all major operating systems:
- āœ… Windows (handles backslashes and CRLF line endings)
- āœ… macOS (tested on Darwin)
- āœ… Linux (standard Unix compatibility)

## License

MIT
Repository
26stars
5forks
View on GitHub
Details
DiscoveredJan 19, 2026
Last UpdatedOct 9, 2025
Quality Score
33/100