npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

crossrule

v1.0.3

Published

Convert AI editor rules between different formats (Cursor, Windsurf, Cline, VSCode, Codex CLI, Claude Code, Qoder, Trae, QwenCoder)

Downloads

6

Readme

CrossRule

A command-line tool for converting AI code editor rules between different formats. Work seamlessly across Cursor, Windsurf, Cline, VSCode, and other AI-powered development environments without losing your carefully crafted coding guidelines.

npm version License: MIT

The Problem

You've spent time crafting the perfect coding rules for Cursor, but now you want to try Windsurf. Or maybe your team uses different AI editors, and you need to share consistent guidelines across tools. Manually converting and maintaining rules across multiple editors is tedious and error-prone.

The Solution

CrossRule automatically detects existing AI editor rules in your project and converts them to any other supported format. Your TypeScript conventions, React patterns, and testing requirements can follow you wherever you code.

Supported Editors

CrossRule works with 9 major AI code editors:

  • Cursor - .mdc files in .cursor/rules/
  • Windsurf - Markdown files in .windsurf/rules/
  • Cline - Markdown files in .clinerules/
  • VSCode - Instructions and prompts for AI extensions
  • AGENTS.md-compatible editors (Codex CLI, OpenCode, VSCode Agents) - AGENTS.md project rules
  • Claude Code - CLAUDE.md guidance files
  • Qoder - Natural language rules with trigger conditions
  • Trae - Markdown rules with YAML frontmatter
  • QwenCoder - QWEN.md context files

Installation

Install CrossRule globally to use it in any project:

npm install -g crossrule

Or run it directly without installing using npx:

npx crossrule init

Verify the installation:

crossrule --version
# Should output: 1.0.3

Quick Start

Navigate to your project directory and run:

crossrule init

CrossRule will:

  1. Scan your project for existing AI editor rules
  2. Show you what it found and let you choose a source
  3. Present an interactive list of target editors
  4. Convert your rules while preserving their meaning and structure

Universal Rule Management

Adding New Rules

Create and deploy rules across all your AI editors with a single command:

# Simple always-apply rule
crossrule add "Use strict TypeScript configuration" --type always --to all

# Pattern-based rule for specific file types
crossrule add "React components must use functional syntax" \
  --type pattern --patterns "*.tsx,*.jsx" --to cursor,windsurf

# Complex multi-line rule from file
crossrule add --from-file team-standards.md \
  --type pattern --patterns "*.ts,*.tsx" --to all

# AI-decision rule with context
crossrule add "Suggest performance optimizations" \
  --type ai-decision --context "performance-critical" --to cursor,qoder

Rule Types

CrossRule supports four intelligent rule types:

  • Always (--type always) - Applied to all conversations and code
  • Pattern (--type pattern) - Triggered when working with specific file types
  • Manual (--type manual) - Invoked explicitly by name or command
  • AI-Decision (--type ai-decision) - Applied when AI determines relevance

Multi-Line Rules

Handle complex coding standards with full markdown support:

# Using heredoc for complex rules
crossrule add --type always --to all << 'EOF'
# TypeScript Best Practices

## Type Safety
- Enable all strict mode flags
- Use 'unknown' instead of 'any'
- Implement proper error boundaries

## Code Organization
- One component per file
- Index files for clean imports
- Separate types into .types.ts files
EOF

Command Options

  • --type <type> - Rule type: always, pattern, manual, ai-decision
  • --patterns <patterns> - File patterns (comma-separated) for pattern rules
  • --to <editors> - Target editors: all, or comma-separated list
  • --from-file <file> - Read rule content from markdown file
  • --name <name> - Custom rule name (auto-generated if not provided)
  • --description <desc> - Rule description for documentation
  • --context <context> - Context hint for AI-decision rules

How It Works

Smart Detection

CrossRule understands the unique file structures and formats of each AI editor. It correctly parses YAML frontmatter, section delimiters, and trigger conditions to extract the semantic meaning of your rules.

Semantic Preservation

When converting between formats, CrossRule maintains the intent of your rules:

  • Always-active rules remain always-active
  • File pattern rules are converted to equivalent glob patterns
  • Manual trigger rules preserve their conditional nature
  • Descriptions and metadata are carried forward appropriately

Format-Specific Output

Each editor has its own conventions:

  • Cursor: YAML frontmatter with alwaysApply and globs fields
  • Qoder: Trigger-based frontmatter (always_on, glob, manual, model_decision)
  • Codex CLI: Section delimiters like ---- section-name ----
  • Claude Code: Standard markdown with proper heading hierarchy

Rule Types

CrossRule recognizes and converts between different rule activation patterns:

  • Always Active: Applied to all conversations and code
  • Pattern-Based: Triggered when working with specific file types
  • Manual: Invoked explicitly by name or command
  • AI-Decided: Applied when the AI determines relevance

Advanced Usage

Converting Specific Formats

If you know exactly what you want to convert:

crossrule convert --from cursor --to windsurf
crossrule convert --from qoder --to "claude-code"

Batch Conversion

Convert to multiple formats at once:

crossrule convert --from cursor --to windsurf,cline,qoder

Custom Output Paths

Specify where converted files should be saved:

crossrule convert --from cursor --to windsurf --output ./my-rules/

Configuration Files

CrossRule looks for rules in these locations:

# Single-file formats
AGENTS.md          # Codex CLI / OpenCode / VSCode Agents
CLAUDE.md          # Claude Code  
QWEN.md            # QwenCoder

# Directory-based formats
.cursor/rules/     # Cursor .mdc files
.windsurf/rules/   # Windsurf markdown
.clinerules/       # Cline markdown
.qoder/rules/      # Qoder trigger-based rules
.trae/rules/       # Trae multilingual rules

Learn more about the shared AGENTS.md standard for Codex CLI, OpenCode, VSCode Agents, and other tools at https://agents.md.

Project Integration

Add CrossRule to your development workflow:

Package.json Scripts

{
  "scripts": {
    "rules:sync": "crossrule init",
    "rules:cursor": "crossrule convert --from claude-code --to cursor",
    "rules:windsurf": "crossrule convert --from claude-code --to windsurf"
  }
}

Team Onboarding

New team members can quickly set up their preferred AI editor:

git clone your-project
cd your-project  
crossrule init  # Convert existing rules to their preferred editor

Rule Format Examples

Cursor (.mdc with frontmatter)

---
description: TypeScript coding standards
alwaysApply: true
---

# TypeScript Rules
- Use strict mode configuration
- Prefer interfaces over type aliases

Qoder (trigger-based)

---
trigger: always_on
alwaysApply: true
description: Global coding standards
---

# Always Active Rules
- Write self-documenting code
- Use meaningful variable names

Codex CLI (section delimiters)

# Project Agent Rules

---- typescript ----

- Use strict TypeScript configuration
- Always provide return types

---- testing ----  

- Write comprehensive unit tests
- Use Jest framework

Contributing

CrossRule is open source and welcomes contributions:

  1. Bug Reports: Found an issue with rule conversion? Please report it with sample files.

  2. New Editor Support: Want to add support for another AI editor? Check out the parser and converter architecture in the source code.

  3. Rule Format Improvements: Each AI editor evolves their rule formats. Help us keep up with the latest specifications.

  4. Documentation: Improve examples, add use cases, or clarify installation instructions.

Development

git clone https://github.com/your-username/crossrule
cd crossrule
npm install
npm run build
npm run dev  # Test the CLI locally

Running Tests

npm test              # All tests
npm run test:unit     # Unit tests only  
npm run test:integration # Integration tests only
npm run test:coverage    # Coverage report

Troubleshooting

Rules Not Detected

  • Ensure you're in the project root directory
  • Check that rule files exist in the expected locations
  • Verify file formats match the editor's specifications

Conversion Issues

  • Some advanced features may not translate perfectly between editors
  • Check the output files and adjust manually if needed
  • Report conversion bugs with sample input files

Permissions

  • Ensure CrossRule has write permissions in the target directories
  • Some editors may require specific file permissions or ownership

License

MIT License. See LICENSE file for details.

Acknowledgments

CrossRule was built to solve a real workflow problem in the AI-assisted coding era. Thanks to the teams behind all the supported AI editors for creating tools that enhance developer productivity.

The project maintains compatibility with the latest rule format specifications from each editor. As these tools evolve, CrossRule evolves with them.


Made for developers who love consistency across their AI coding tools.