Windsurf Configuration

.windsurfrules Guide

Configure Windsurf's Cascade agent with custom rules. Learn about rule activation modes, Cascade memories, and best practices for AI-powered coding.

Understanding .windsurfrules

.windsurfrules is a configuration file for Windsurf AI, the AI-enhanced IDE built on Codeium (now part of OpenAI). It provides instructions to Cascade, Windsurf's autonomous AI agent, helping it understand your project's conventions and generate consistent code.

Windsurf differentiates itself with Cascade — an autonomous agent that tries to pull in the right context on its own and execute multi-step tasks without constant prompting.

Rule File Locations

  • Project root — Place .windsurfrules for project-wide rules
  • Workspace rules — Store multiple files in .windsurf/rules/
  • Global rules — Use global_rules.md for rules across all workspaces
  • Settings UI — Paste via Windsurf Settings → Set Workspace AI Rules → Edit Rules

.windsurfrules Format

Windsurf rules use Markdown format with support for XML tags to group related rules:

.windsurfrules
# Project Rules for E-commerce Platform

<tech_stack>
- Next.js 14 with App Router
- TypeScript strict mode
- Tailwind CSS + Radix UI
- Prisma with PostgreSQL
- Stripe for payments
</tech_stack>

<coding_guidelines>
- Use Server Components by default
- Only add "use client" when needed for interactivity
- Prefer composition over inheritance
- Keep components under 150 lines
- Use Zod for all validation
</coding_guidelines>

<naming_conventions>
- Components: PascalCase (ProductCard.tsx)
- Hooks: camelCase with use prefix (useCart.ts)
- API routes: kebab-case (/api/create-checkout)
- Database models: PascalCase singular (Product, User)
</naming_conventions>

<testing>
- Write tests for critical business logic
- Use Playwright for E2E tests
- Mock Stripe in test environment
- Maintain 80% coverage on checkout flow
</testing>

<do_not>
- Use inline styles (use Tailwind)
- Create files over 300 lines
- Skip TypeScript types
- Commit .env files
</do_not>

Rule Activation Modes

Windsurf supports 4 modes for rule activation:

Always ApplyRules loaded into every conversation automatically
ManualActivate via @mention in Cascade's input box
Model DecisionAI decides based on natural language description
GlobApplied to files matching patterns (e.g., *.tsx, src/**/*.ts)

Best Practices

  • Avoid generic rules — "Write good code" is already in Cascade's training
  • Use clear formatting — Bullet points and lists are easier for Cascade to follow than long paragraphs
  • Group with XML tags — Tags like <coding_guidelines> help organize related rules
  • Stay under 12,000 characters — Split larger rule sets across multiple files
  • Be specific about versions — Prevent outdated code suggestions

Related Guides

.cursorrulesCursor Rules GuideCLAUDE.mdCLAUDE.md GuideComparisonCompare All Tools

Frequently Asked Questions

Manage Your .windsurfrules Files Visually

ClaudeMDEditor lets you browse, edit, and organize .windsurfrules files across all your projects. Plus it handles CLAUDE.md, .cursorrules, and more.

Claude CodeCursorCopilotWindsurfGeminiCodexAider
Get ClaudeMDEditor — $13

One-time purchase for macOS Tahoe (26+)