When using a multi-root workspace with separate .cursor directories in each root (e.g., workspace/root1/.cursor/rules/rule1.md and workspace/root2/.cursor/rules/rule2.md), does Cursor apply rules, skills, commands, and distillations from all roots in agent/plan chat sessions?
Hey, short answer: yes. Cursor picks up rules, skills, and commands from the matching folders in every root in a multi-root workspace, not just the first one.
Notes:
- Rules
.cursor/rules/: all roots are scanned. When matching by globs, a rule from root A only applies to files in root A. It’s scoped to its own root. - Skills: Cursor’s native path is
.cursor/skills/<skill-name>/SKILL.md. It also supports.agents/skills/<skill-name>/SKILL.mdas a cross-platform open standard from agentskills.io that also works in other tools like Claude Code, Codex CLI, and Gemini CLI. Skills are picked up from all roots. - Commands
.cursor/commands/: picked up from all roots with no scoping. - Creating a new project rule via the UI writes to
.cursor/rulesin the first root by default. - If the same
alwaysApply: truerule exists in multiple roots, which is common with worktrees, it will load multiple times and use extra context. This is a known caveat.
About distillations: there’s no user-facing concept like that in .cursor/. If you mean something specific, tell me where the term comes from or share an example folder and I’ll take a look.
Related feature request about fully workspace-scoped config: Workspace- or profile-scoped Cursor config (rules, skills, subagents, MCP)
Docs: