@ruleform/ruleform
v0.1.6
Published
Terraform for AI coding rules. Write once, deploy to every AI tool.
Downloads
182
Maintainers
Readme
🔧 RuleForm
Terraform for AI coding rules. Write once, deploy to every AI tool.
The Problem
You use multiple AI coding tools. Each needs its own config file:
.cursor/rules/*.mdc ← Cursor
CLAUDE.md ← Claude Code
.github/copilot-instructions.md ← GitHub Copilot
.windsurf/rules/*.md ← Windsurf
.gemini/settings.json ← Gemini Code AssistWhen rules change, you update one file and forget the others. Your AI tools give inconsistent results. Teams with mixed tooling have it even worse.
The Solution
# Define your rules once
ruleform init
# See what will be generated
ruleform plan
# Deploy to all your AI tools
ruleform applyOne config → every AI tool. Like Terraform, but for coding rules.
Quick Start
# Install
npm install -g @ruleform/ruleform
# Initialize in your project
cd my-project
ruleform init
# Edit ruleform.yaml with your rules, then:
ruleform applyConfig Example
version: "1"
project:
name: "my-saas"
stack:
- "Next.js 15"
- "TypeScript"
- "Prisma"
providers:
cursor:
enabled: true
claude:
enabled: true
copilot:
enabled: true
rules:
- name: "code-style"
description: "General coding conventions"
scope: always
content: |
- Use functional components
- Prefer named exports
- TypeScript strict mode
- name: "api-design"
description: "API route conventions"
scope:
globs: ["src/app/api/**"]
content: |
- RESTful conventions
- Validate inputs with Zod
- Return { data, error } formatCommands
| Command | Description |
|---------|-------------|
| ruleform init | Create ruleform.yaml with auto-detected settings |
| ruleform plan | Preview changes (dry-run) |
| ruleform apply | Generate and write all context files |
| ruleform validate | Check config for errors |
| ruleform providers | List available providers and status |
| ruleform destroy | Remove all RuleForm-generated files |
Supported Providers
| Provider | Output | Scopes |
|----------|--------|--------|
| Cursor | .cursor/rules/*.mdc | ✅ always, globs, agent-requested, manual |
| Claude Code | CLAUDE.md | ✅ Scope hints as comments |
| GitHub Copilot | .github/copilot-instructions.md | All rules included |
| Windsurf | .windsurf/rules/*.md | ✅ Scope hints |
| Gemini | .gemini/settings.json + rules | ✅ Style guides |
Scope Types
| Scope | Meaning | Cursor Mapping |
|-------|---------|----------------|
| always | Applied to every request | alwaysApply: true |
| agent-requested | AI decides when to apply | alwaysApply: false |
| manual | User must explicitly tag | alwaysApply: false |
| globs | Applied to matching files | globs: [...] |
i18n
RuleForm supports multiple languages. Set your locale:
# Auto-detected from system locale, or:
export RULEFORM_LANG=tr # Turkish
export RULEFORM_LANG=en # EnglishContributing
We welcome contributions! See CONTRIBUTING.md for details.
Adding a new provider
- Create
src/providers/yourprovider/index.ts - Extend
BaseProvider - Register in
src/providers/registry.ts - Add tests in
tests/unit/providers/
License
MIT © Kerem Solmaz
Disclaimer: Terraform is a registered trademark of HashiCorp. RuleForm is not affiliated with, endorsed by, or sponsored by HashiCorp.
Website: ruleform.app
