← Back to archive

Repo of the Day

FutureExcited/vibe-rules

Published: Jan 31, 2026

Open repository ↗

Save, load, distribute your AI rules

Summary

vibe-rules is a TypeScript CLI for saving, sharing, and applying AI assistant rules and prompts across several code editors. It centralizes rule storage in ~/.vibe-rules/rules/ and handles the formatting differences between editors such as Cursor, Windsurf, Claude Code, Gemini, Codex, VSCode, Zed, and others. It can also install rules directly from NPM packages that export them via an llms entry point.

What it is useful for

Each editor stores AI rules in its own format and location. Cursor writes individual .mdc files in .cursor/rules/ with frontmatter, Windsurf appends tagged blocks to .windsurfrules, Claude Code uses CLAUDE.md with XML-like tags, and VSCode puts .instructions.md files in .github/instructions/. vibe-rules gives engineers one workflow to:

  • Save a prompt once and reuse it across multiple editors without reformatting.
  • Convert an existing rule set when switching editors (for example, vibe-rules convert cursor claude-code .cursor).
  • Distribute reusable prompts through NPM packages using a shared llms convention.
  • Apply rules to project-local files or, where supported, to global configuration paths.

How engineers can use it

The README documents a global install with Bun (npm or yarn also work):

bun i -g vibe-rules

Save a rule from a file or inline content, with an optional description:

vibe-rules save my-react-helper -f ./prompts/react-helper.md
vibe-rules save my-react-helper -d "React coding conventions"

List everything in the local store with vibe-rules list, then load a saved rule into a specific editor:

vibe-rules load my-react-helper cursor
vibe-rules load my-react-helper windsurf
vibe-rules load my-react-helper claude-code --global

Convert rule sets between formats:

vibe-rules convert cursor claude-code .cursor
vibe-rules convert windsurf cursor .windsurfrules

Install rules from NPM packages that export llms:

vibe-rules install cursor
vibe-rules install cursor my-rule-package

Remove rules with vibe-rules uninstall <name> <editor>. Add --debug to any command for detailed logging.

Documented limitations to be aware of: VSCode rules all use applyTo: "**" because of that field's single-glob constraint, Amp is local-only with no global or subdirectory support, and Windsurf does not use the -g global flag. The README also notes the llms package convention is anticipated rather than standardized, so available rule packages will vary. Full command options and the unified .rules convention are described in the project README.