Skip to content
Apothem
Comparison

Apothem vs raw Cursor config

Hand-maintaining Cursor's MDC rules under .cursor/rules/ versus rendering them from Apothem's shared profile.

Cursor reads rules in MDC format under .cursor/rules/. The MDC format requires frontmatter fields — description, globs, and alwaysApply. Apothem's cursor adapter renders one .mdc rules file from the shared profile. This page contrasts hand-maintaining that config against managing it with Apothem.

Effort comparison

TaskRaw hand-configApothem-managed
Author rulesHand-write each .mdc file under .cursor/rules/Rendered from the shared corpus
Write MDC frontmatterHand-author description / globs / alwaysApply per fileGenerated by the adapter
Keep one rule formatHand-pick between MDC rules and a single .cursorrules fileThe adapter writes one MDC file, .cursor/rules/apothem-rules.mdc, and no .cursorrules
Keep rules aligned with other harnessesManual, per toolAutomatic on apothem update
Share reusable skills and commandsHand-copy each skill folder into ~/.agents/skills/ and keep the copies currentWritten to ~/.agents/skills/ by the adapter, one copy for every project, and refreshed on apothem update
Verify the config is correctManual inspectionapothem verify --harness cursor --project <path>

What Apothem manages

The cursor adapter renders the shared rules into one .mdc file, <project>/.cursor/rules/apothem-rules.mdc, generating the required MDC frontmatter (description, globs, alwaysApply). The adapter writes only the directory-based MDC format Cursor reads; it does not write a single-file .cursorrules. It also writes the skills, and the commands wrapped as skills, to ~/.agents/skills/, and the rules and templates those skills cite to ~/.config/apothem/, both in your home directory. Cursor documents hooks in hooks.json files and through its plugin format. The adapter builds no plugin; it adds one sessionStart entry to the project's .cursor/hooks.json, which loads the session bootstrap, and leaves your own entries as they are. It registers no tool-call guard, so guardrail intent lives in the rule prose.

Migration path

  1. Run apothem profile init to create the shared profile if you have not yet.
  2. Move the rules from your existing .cursor/rules/ (and any .cursorrules) into the shared corpus.
  3. Run apothem install --harness cursor --project <path> to render apothem-rules.mdc with correct MDC frontmatter.
  4. Run apothem verify --harness cursor --project <path> to confirm the config landed.
  5. Use apothem update --harness cursor --project <path> for every later change.

On this page