// agentcontext

one source of truth for the agent-context format zoo.

maintain AGENTS.md once. sync CLAUDE.md, .cursorrules, .clinerules, .windsurfrules and the rest. cli + mcp server, no copy-paste tax.

try the demo →
// live demo

paste a rules file. get every format out.

pick a source format, pick a target, hit convert. the demo runs against the same /normalize endpoint the cli and mcp server use.

(output appears here)
// what we read and write

ten formats, one ir.

every ai coding tool invented its own rules-file format. agentcontext detects them, parses each into a unified ir (rules + activation modes + scope), and renders to whichever target you ask for.

AGENTS.md
canonical hub. read + write.
CLAUDE.md
read (with @-import resolution) + write.
GEMINI.md
read (code-block-aware @-imports) + write.
.cursor/rules/*.mdc
read all 4 activation modes + write.
.cursorrules
read only (deprecated by cursor in agent mode).
.windsurf/rules/*.md
read all triggers + write (with 12k char-limit warnings).
.windsurfrules
read only (legacy pre-wave-8).
.clinerules/*.md
read (skips reserved subdirs) + write (numeric prefixes).
CONVENTIONS.md
read + write + emits an .aider.conf.yml snippet.
.aider.conf.yml
read read: list only — never round-tripped.
// drop-in

cli or mcp. pick one.

mcp server

add this to any mcp-aware client. two tools: read_agent_context(path) returns the ir, convert_agent_context(ir, targets) renders to a file map.

// claude_desktop_config.json
{
  "mcpServers": {
    "agentcontext": {
      "command": "npx",
      "args": ["-y", "@mbeato/agentcontext-mcp"]
    }
  }
}

cli

no install step. runs against the current directory.

# show what's in this repo
npx @mbeato/agentcontext inspect

# normalize to AGENTS.md, write per-tool shims
npx @mbeato/agentcontext sync --write \
  --shims claude,cursor,cline

# explicit one-direction conversion
npx @mbeato/agentcontext convert \
  --from cursor-mdc --to agents-md \
  --in .cursor/rules/style.mdc
// the pattern

one file is the source. everything else is a render target.

round-trip is byte-identical for lossless pairs and bounded-diff for lossy ones. you edit one file, the rest stay in sync. no marketplace, no signup, no config sprawl.

// surfaces

four ways to use it.

read

detects all 10 formats in a repo. resolves @-imports. honors activation modes.

write

renders to any target format. lossless where possible, warned where not.

cli

inspect, sync, convert. zero-install via npx.

mcp

two tools, drop-in for claude desktop, cursor, or any mcp client.

// updates

first to know when a new surface ships.

github app, vs code extension, jetbrains plugin — possible if there's demand. drop your email to vote with attention. one message when something lands. no marketing list.