Describe your project, teams, commands and rules once. retort sync generates project-aware configs for Claude Code, Cursor, Copilot, Gemini CLI and a dozen more — instead of hand-maintaining each one until they drift apart.
Four steps, all of them repeatable. Sync is idempotent, so running it twice changes nothing and CI can fail the build when a generated file has drifted from the spec.
project.yaml, teams.yaml, commands.yaml and rules.yaml hold the facts about your repo — stack, owners, scripts, conventions.
The spec is schema-checked before anything is written, so a typo surfaces as an error instead of a broken agent config.
One pass renders every enabled target to its native location and format. Same spec, same output, every time.
Generated files are committed like any other artifact. Drift detection in CI catches hand-edits before they diverge.
Each target gets the file it expects, in the place it looks for it. Enable or disable any of them per repo.
Targets are counted as written files: a few tools receive more than one artifact — rules plus editor settings, for instance — which is how thirteen integrations produce sixteen generated files.
No global install, no config server, nothing to host. The spec and the generated files live in your repository.
Run it against an existing project, read the generated diff, keep it or delete it. Nothing outside your working tree changes.