Features

Vibe Rules

Import AI coding rules from any tool. One-click load into Claude Code.

What are Vibe Rules?

Vibe Rules are instructions that shape how Claude Code behaves — coding style, framework preferences, project conventions, anything you want Claude to follow consistently.

The problem: every AI coding tool uses its own format. Cursor has .cursor/rules/*.mdc, Windsurf has .windsurfrules, Cline has .clinerules/*.md, and Claude Code uses CLAUDE.md. If you've written rules for one tool, they don't carry over.

Conare scans all of them and lets you load any rule into Claude Code with a single click.

Supported Sources

Conare scans 9 different rule formats, ordered by priority:

PrioritySourceFormatPath
20CLAUDE.mdTagged blocksCLAUDE.md in project root
15CursorMDC frontmatter.cursor/rules/*.mdc
12ClineMarkdown.clinerules/*.md
11VS CodeInstructions.github/instructions/*.instructions.md
10AGENTS.mdMarkdownAGENTS.md in project root
10.rulesMarkdown.rules file
8WindsurfPlain text.windsurfrules
5GlobalJSON storage~/.vibe-rules/rules/

How Priority Works

When the same rule name exists in multiple sources, the highest priority wins. This means:

  • A rule in CLAUDE.md (priority 20) overrides the same rule from Cursor (priority 15)
  • Local rules always override global rules
  • Duplicates are hidden in the UI — you only see the winning version

Loading Rules

Open the Vibe Rules panel

Click the sparkle icon in the right panel, or open it from Settings.

Browse discovered rules

Rules are grouped into Local (project-specific) and Global sections. Each shows the rule name, source, and a preview of the description.

Toggle rules on/off

Click the checkbox to load a rule into your active CLAUDE.md. The rule gets injected as a tagged block that Claude Code reads on every message.

Uncheck to unload — the block is removed from CLAUDE.md cleanly.

Creating Rules

Click New Rule to create a global vibe rule:

  1. Name — Short identifier (e.g., typescript-strict, no-any-types)
  2. Content — The actual instructions for Claude

Rules are saved to ~/.vibe-rules/rules/<name>.json and are available in every project.

Example Rules

Strict TypeScript:

Always use strict TypeScript. Never use `any` type.
Use explicit interfaces for all function parameters.
Prefer `unknown` over `any` when the type is truly unknown.

Minimal Changes:

Keep code changes as minimal as possible.
Only modify what's directly requested.
Don't refactor surrounding code unless asked.
Don't add comments to code you didn't change.

Framework Conventions:

Use Nuxt 4 folder structure (app/ directory).
Use Pinia for state management.
Use TailwindCSS for styling.
Prefer composables over mixins.

Metadata Parsing

Rules can include frontmatter metadata that Conare extracts:

---
description: Enforce strict TypeScript conventions
alwaysApply: true
globs: "**/*.ts,**/*.tsx"
---

Your rule content here...
  • description — Shows as subtitle in the rules panel
  • alwaysApply — If true, the rule is suggested for every project
  • globs — File patterns where this rule is most relevant

Cursor-style inline metadata is also supported:

description: My rule description
Always Apply: true

Rule content starts here...

Search and Filter

The rules panel includes a search bar that filters across:

  • Rule name
  • Description
  • Full content

Useful when you have dozens of rules across multiple sources and need to find a specific one quickly.

Global vs Local

  • Global rules (~/.vibe-rules/) — Your personal coding preferences that apply everywhere
  • Local rules (project files) — Team conventions checked into the repo

When you load a local rule, it's automatically promoted to global storage too — ensuring it works with the vibe-rules CLI ecosystem outside Conare.

Cache

Rules are cached for 30 seconds to avoid hammering the filesystem on every panel interaction. The cache invalidates automatically on directory changes or manual refresh.

Copyright © 2026