Observed since 20 Oct, 23:18 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
One source of truth for your AI agent instructions. Generate and validate AGENTS.md, CLAUDE.md, .cursorrules, Copilot, Gemini and Windsurf instruction files from a single file.
One source of truth for your AI agent instructions.
Write your project's guidance once in AGENTS.md, and let agentscribe generate and
keep in sync every tool-specific variant — CLAUDE.md, Cursor rules, GitHub
Copilot instructions, Gemini, Windsurf, Cline — then lint the source and fail CI
when the copies drift.
Every AI coding tool reads its instructions from a different file:
| Tool | File it reads |
|---|---|
| OpenAI Codex | AGENTS.md |
| Claude Code | CLAUDE.md |
| Cursor | .cursor/rules/*.mdc (or .cursorrules) |
| GitHub Copilot | .github/copilot-instructions.md |
| Gemini CLI | GEMINI.md |
| Windsurf | .windsurf/rules/ (or .windsurfrules) |
| Cline | .clinerules/ |
If your team uses more than one of these — and most do now — you end up copy-pasting the same rules into five files and watching them rot out of sync.
Keep one file (AGENTS.md, the emerging open standard that Codex reads) and
generate the rest:
pip install agentscribe
agentscribe init # scaffold an AGENTS.md from your project
agentscribe sync # generate CLAUDE.md, Cursor rules, Copilot instructions, ...
agentscribe check # in CI: fail if any generated file is out of date
agentscribe lint # catch leaked secrets, dead file refs, bloated instructions
Generated files carry a "do not edit" header and are byte-stable, so check
gives you a clean pass/fail in CI.
$ agentscribe init
Created AGENTS.md (detected: Python)
$ agentscribe sync
+ CLAUDE.md (Claude Code)
+ .cursor/rules/agentscribe.mdc (Cursor)
+ .github/copilot-instructions.md (GitHub Copilot)
Updated 3 file(s) from AGENTS.md.
$ agentscribe check
All target files are in sync with AGENTS.md.
Now edit AGENTS.md whenever your conventions change and re-run agentscribe sync.
| Command | What it does |
|---|---|
agentscribe init | Detect the project (language, package manager, test command) and write a starter AGENTS.md. |
agentscribe sync | Generate/update every configured target file. --dry-run to preview, -t claude,cursor to limit targets. |
agentscribe check | Exit non-zero if any target is missing or out of date. Made for CI. |
agentscribe lint | Validate the source: leaked secrets (error), unbalanced directives (error), broken relative-path references, oversized files, missing sections. --strict fails on warnings. |
agentscribe list | Show every target, whether it's enabled, its path, and sync status. |
Run agentscribe <command> --help for all flags.
Configuration is optional. Put it in agentscribe.toml:
source = "AGENTS.md"
targets = ["claude", "cursor", "copilot", "gemini"]
[lint]
max_chars = 12000
[cursor]
legacy = false # true -> write .cursorrules instead of .mdc
description = "Project rules"
always_apply = true
…or under [tool.agentscribe] in pyproject.toml. Available target keys:
claude, cursor, copilot, gemini, windsurf, cline.
Most guidance is shared, but sometimes one tool needs its own note. Use HTML-comment directives — invisible when the file renders as Markdown:
Shared guidance for every agent.
<!-- agentscribe:only cursor,copilot -->
This paragraph is emitted only into the Cursor and Copilot files.
<!-- agentscribe:end -->
<!-- agentscribe:except claude -->
Goes everywhere except CLAUDE.md.
<!-- agentscribe:end -->
<!-- agentscribe:ignore -->
Private notes that stay in AGENTS.md and are never copied anywhere.
<!-- agentscribe:end -->
Directives may be nested.
Add a check so generated files can never silently drift. GitHub Actions:
- run: pip install agentscribe
- run: agentscribe check # fails the build if CLAUDE.md et al. are stale
- run: agentscribe lint # fails on leaked secrets or malformed instructions
Everything the CLI does is available programmatically:
from agentscribe import Config, sync, check, lint
cfg = Config.load(".")
sync(cfg) # write all target files
drift = check(cfg) # list of out-of-date targets
findings = lint(cfg) # list of Finding(level, rule, message, line)
.github/), and symlinks
are fragile on Windows and in Git.check
turns "did someone forget to update a file?" into a CI failure.tomli backport on 3.9–3.10).Contributions are welcome — see CONTRIBUTING.md. This project
dogfoods itself: its own CLAUDE.md, Cursor, and Copilot files are generated
from AGENTS.md by agentscribe sync, and CI runs agentscribe check.
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.1.0 | 10 Aug 2026 | 3 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 23:18 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:60544569aa6107a9708e7a6d400dd6540357f17f8d7d879f5ccf89ad4cf9c828