Model or dataset
dyoshikawa/rulesync avatar
dyoshikawa/rulesync

Rulesync: One Rule Source for Dozens of AI Coding Tools

Rulesync is a developer tooling CLI that synchronizes AI agent rule sets, command templates, MCP settings, and ignore files with selective import/export flows for local and team workflows.

1,424 stars151 forksTypeScriptMIT

At a glance

What is it?
Rulesync is a Node.js CLI that generates per-tool config files from a unified .rulesync source, with import, export, and convert flows. It covers many AI coding tools but carries real complexity in setup and maintenance.
Who is it for?
Adopt Rulesync if you maintain AI agent configurations across multiple coding tools or team members and want a single source of truth under .rulesync. Skip it if you only use one tool and rarely change rules, since the conversion step adds overhead.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 1 day ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 14, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The problem Rulesync targets

The project's own quick start shows the intended flow: run rulesync init to create directories and sample files, then rulesync generate --targets "*" --features "*" to produce configs for all tools and all features. The generate command is the core of the tool. It reads from a .rulesync directory and writes the appropriate files for each target. The README stresses that a checkmark in the support matrix means a feature works in at least one mode, such as project, global, or simulated. That distinction matters because some tools only support certain features in certain modes. For example, Codex CLI commands are global-only. You cannot assume that every feature works the same way across all tools.

How the unified source and generation flow works

The import flow works in reverse. If you already have tool configs, you can bring them into the .rulesync source. The README shows rulesync import --targets claudecode to import from CLAUDE.md, rulesync import --targets cursor to import from .cursorrules, and rulesync import --targets copilot to import from .github/copilot-instructions.md. This is useful for migrating an existing setup without starting from scratch. The import writes to .rulesync/**/*, which means it preserves your existing structure rather than flattening it. That is a thoughtful design choice for teams that already have a working config and want to consolidate it.

The convert command: a direct path between tools

Rulesync also offers a convert command that skips the .rulesync source entirely. The README gives a concrete example: rulesync convert --from cursor --to copilot,claudecode. This converts Cursor rules to Copilot and Claude Code in one shot, without writing any .rulesync files. That is a distinct use case from the generate flow. Instead of adopting a new source of truth, you can use Rulesync as a one-off translation layer between tools. This is handy when you are switching from one assistant to another or when you need to share rules with a colleague who uses a different tool. The convert command reduces the barrier to trying Rulesync because you do not have to commit to the full .rulesync workflow to get value. However, the README does not specify how faithfully the conversion preserves semantics, such as command syntax or MCP server definitions. You should verify the output for each conversion pair before relying on it.

Installation options and the Homebrew quirk

Installation is available through npm, Homebrew, or a single binary script. The npm route is the simplest: npm install -g rulesync. The Homebrew tap is also straightforward, but the README calls out a specific quirk. The tap lives inside the repository and does not have a homebrew- prefix, so the two-argument brew tap dyoshikawa/rulesync https://github.com/dyoshikawa/rulesync is required. The shorthand brew install dyoshikawa/rulesync/rulesync without tapping first will not work. That is a real footgun for users who are used to the standard Homebrew tap naming convention. The single binary install uses curl to fetch an install.sh from the latest release. That is convenient for CI or for users who do not want Node.js installed. The README points to the documentation for manual and platform-specific instructions, which suggests that the install script may not cover every OS. The release cadence is active, with three versions in as many days in August 2026, so the project is under active maintenance.

Limitations and cases where Rulesync is the wrong tool

The biggest limitation is the complexity that comes with supporting so many tools. The support matrix is large, but a checkmark only means a feature works in at least one mode. Some tools have global-only commands, others have simulated modes, and the difference is not obvious from the table alone. You have to read the Supported Tools reference to understand the exact mode breakdown for each target. That is a documentation burden. If you use a niche tool that is not in the list, Rulesync will not help you. The README lists many tools, but it is not exhaustive. For example, Meta Muse Code supports only rules, mcp, and skills, with no commands or hooks. If your workflow depends on a feature that a tool does not support, Rulesync cannot generate it. Another limitation is the risk of overwriting existing configs during generate or import. The README does not describe a dry-run mode or a backup mechanism. Before running generate on a repository with existing tool configs, you should back up those files. The convert command also lacks a clear statement about how conflicts are resolved when the destination files already exist.

Alternatives and how they differ

The most direct alternative is to maintain each tool's config file by hand. That approach gives you full control and no extra tooling, but it fails when you have more than two tools because the files drift apart. Another alternative is to use a tool-specific sync mechanism, such as Claude Code's built-in plugin support or Cursor's rules import. Those are limited to a single tool. A more general alternative is to use a template engine like Jinja or a Makefile to generate config files from a shared source. That approach is more flexible but requires you to write and maintain the templates yourself. Rulesync differs by providing a ready-made set of target adapters and a command-line interface for import, export, and conversion. The trade-off is that you depend on the project's support matrix and its update cadence. If a tool you use changes its config format, you have to wait for Rulesync to catch up. The active release schedule suggests that the maintainer is responsive, but that is not a guarantee.

Maintenance, upgrade cost, and license

The project is licensed under MIT, which means you can use, modify, and redistribute it without restrictive obligations. That is a permissive license that fits well with developer tooling. The maintenance cost for users is tied to the tool's release cycle. The README shows frequent releases, with v16.17.0, v16.16.0, and v16.15.0 within a few days of each other. That means you can expect regular updates, but it also means you need to track breaking changes. The README does not document a migration guide for major versions. The version number at 16.x suggests that the project has been through many changes. Upgrading Rulesync itself is as simple as reinstalling the npm package or running the install script again, but you should check the changelog for each release to see if the generated output format has changed. The generate command may produce different file layouts after an upgrade, which could affect your existing tool configs. The documentation site is the place to look for details, and the README points to it for installation and quick start guides.

Editorial conclusion

Adopt Rulesync if you maintain AI agent configurations across multiple coding tools or team members and want a single source of truth under .rulesync. Skip it if you only use one tool and rarely change rules, since the conversion step adds overhead. Before adopting, verify that your exact tool versions and feature modes (project, global, simulated) are covered in the Supported Tools reference, and test the import flow on a copy of your repository to see what gets overwritten. The tool's breadth is its main value, but that breadth means more moving parts to keep updated.

Official sources

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community notes

Community notes