crestreach / cyncia

Author your AI-assistant config once, sync it to every tool.

Cyncia takes a single, tool-agnostic source tree (guidelines, agents, skills, rules, MCP servers) and generates the per-tool layouts that Cursor, Claude Code, GitHub Copilot, VS Code, and JetBrains Junie expect.

Supported tools

  • Cursor
  • Claude Code
  • GitHub Copilot
  • VS Code
  • JetBrains Junie

Source tree content is translated into each tool’s expected paths, formats, and frontmatter keys.

Overview

You author a single source tree under .agent-config/. Cyncia generates the per-tool layouts for each supported assistant/tool.

You write this once

.agent-config/
├── AGENTS.md                 # project-wide guidelines
├── agents/<name>.md          # one subagent per file
├── skills/<name>/SKILL.md    # one skill per folder
├── rules/<name>.md           # one rule per file
└── mcp-servers/<name>.json   # one MCP server per file

…and Cyncia generates

  • Tool-specific file paths and layouts
  • Tool-specific file formats
  • Tool-specific frontmatter keys

For the full reference (formats, frontmatter, MCP secret tokens, per-tool field map, edge cases), see cyncia.md in the repo.

How it works

Cyncia maps a generic source layout into each tool’s expected destination layout.

Source Cursor Claude Code GitHub Copilot VS Code JetBrains Junie
AGENTS.md AGENTS.md CLAUDE.md .github/copilot-instructions.md .junie/AGENTS.md
agents/<n>.md .cursor/agents/<n>.md .claude/agents/<n>.md .github/agents/<n>.md .junie/agents/<n>.md
skills/<n>/ .cursor/skills/<n>/ .claude/skills/<n>/ .github/skills/<n>/ .junie/skills/<n>/
rules/<n>.md .cursor/rules/<n>.mdc merged into CLAUDE.md .github/instructions/<n>.instructions.md merged into .junie/AGENTS.md
mcp-servers/<n>.json .cursor/mcp.json .mcp.json (uses VS Code’s .vscode/mcp.json) .vscode/mcp.json stdout snippet

Install

From your project root, run the installer.

curl -fsSL https://raw.githubusercontent.com/crestreach/cyncia/main/install/install.sh | bash

The installer creates .agent-config/, downloads a snapshot into .cyncia/, and can copy bundled skills and run sync-all.

Dependencies

  • Bash 4+ (macOS/Linux/WSL/Git Bash)
  • PowerShell 5.1+ or PowerShell 7+ (Windows / cross-platform)
  • jq 1.6+ (required only by the MCP sync and MCP step of sync-all)
  • Git (not required by the installer or by sync time)
  • Standard POSIX utilities (sed, awk, grep, find)

Common installer flags

  • --config-dir.agent-config
  • --cyncia-dir.cyncia
  • --refmain
  • --repocrestreach/cyncia
  • --bootstrapAnswer “yes” to prompts
  • --no-bootstrapAnswer “no” to prompts

Usage

Once the agent-conf-sync skill is installed, you can ask your AI assistant to run syncs in plain language, or call the scripts directly.

Ask your assistant

  • "sync agent config"
  • "regenerate Cursor rules"
  • "clean sync for Copilot only"
  • "sync delegate-to-aside for Cursor and Claude"

Run scripts directly

# Sync everything for every supported tool
.cyncia/scripts/sync-all.sh -i .agent-config -o .

# Only some tools
.cyncia/scripts/sync-all.sh -i .agent-config -o . --tools cursor,claude

# Only some items (by name); --clean removes stale generated files
.cyncia/scripts/sync-all.sh -i .agent-config -o . --items delegate-to-aside --clean

# Windows / PowerShell
.\.cyncia\scripts\sync-all.ps1 -InputRoot .agent-config -OutputRoot $PWD

Default layout

A default directory layout is documented in the repository README.

your-repo/
├── .agent-config/        # source of truth (you author these)
│   ├── AGENTS.md
│   ├── agents/
│   ├── skills/
│   ├── rules/
│   └── mcp-servers/
├── .cyncia/              # cyncia checkout (submodule / subtree / sparse clone)
│   ├── scripts/
│   └── skills/
├── .cursor/              # generated
├── .claude/              # generated
├── .github/              # generated
├── .junie/               # generated
├── .vscode/mcp.json      # generated (when mcp-servers/ exists)
├── AGENTS.md             # generated (copy of .agent-config/AGENTS.md)
└── CLAUDE.md             # generated

License

MIT.