cinch
Health Pass
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Community trust — 27 GitHub stars
Code Fail
- rm -rf — Recursive force deletion command in scripts/issues.json
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Universal skills and agents for every AI harness. Author once, wire anywhere: Claude Code, Cursor, Codex, Copilot, Gemini CLI, Windsurf, Cline, Aider.
See Cinch inspect local inventory and wire skills across harnesses in milliseconds.
💡 Why Cinch?
The AI coding assistant ecosystem is deeply fragmented. Every developer and team uses different tools:
- Claude Code stores skills in
.claude/skills/<n>/SKILL.md - Cursor & Codex standardize on
.agents/skills/<n>/SKILL.md - GitHub Copilot expects
.github/instructions/<n>.instructions.mdwith YAMLapplyTo - Gemini CLI requires commands in
.gemini/commands/<n>.tomlwith rawpromptblocks - Windsurf / Devin parses
.devin/rules/<n>.mdwith strict character limits - Cline reads
.clinerules/<n>.md - Aider ignores unconfigured files and requires entries appended to
.aider.conf.yml
Whenever you switch harnesses, try a new AI tool, or share custom workflows with your team, you're forced to manually rewrite prompt files, reformat frontmatter, and hunt down obscure config paths.
Cinch is the universal translation bridge. It scans your existing local skills and agents, translates them through native dialect adapters, and attaches them directly into any project workspace. No proprietary marketplaces, no redundant skill libraries—just one CLI to bring your favorite skills everywhere.
⚡ Quickstart
Claude Code + Cursor + Codex (most common)
Cursor and Codex share the same on-disk layout (.agents/skills/). Wire once and both
read the skill; Claude Code gets its own .claude/skills/ copy.
# From a checkout that has example skills (or point --from-dir at your own):
uvx cinch-init \
--from-dir examples/skills \
--harness claude,cursor,codex \
--skills humanizer \
--yes
| Harness | Where the skill lands | Invoke |
|---|---|---|
| Claude Code | .claude/skills/humanizer/SKILL.md |
/humanizer |
| Cursor | .agents/skills/humanizer/SKILL.md |
/humanizer |
| Codex | same .agents/skills/… path as Cursor |
$humanizer |
No Claude skills on disk yet? Use the bundled starters instead:
uvx cinch-init --starter --harness claude,cursor,codex --yes
Interactive or other harnesses
# Interactive wizard: discover skills and pick target harnesses
uvx cinch-init
# Also wire Copilot / Gemini / etc. in the same run
uvx cinch-init --from-harness claude --harness cursor,copilot,gemini --skills humanizer --yes
Install globally with pipx install cinch-init or pip install cinch-init.
🔄 One Skill, Every Dialect (The Rosetta Stone)
Author your workflow once in standard Markdown. Cinch translates it into each harness's native format on the fly.
Source: ~/.claude/skills/humanizer/SKILL.md
---
name: humanizer
description: Convert robotic AI prose into punchy engineering writing
paths:
- "**/*.md"
---
# Humanizer Guidelines
- Cut throat-clearing openers ("Certainly! Here is...").
- Use active voice and concrete verbs.
Native Translations Generated by Cinch:
Cursor & Codex (.agents/skills/humanizer/SKILL.md)
---
name: "humanizer"
description: "Convert robotic AI prose into punchy engineering writing"
paths:
- "**/*.md"
---
# Humanizer Guidelines
- Cut throat-clearing openers ("Certainly! Here is...").
- Use active voice and concrete verbs.
GitHub Copilot (.github/instructions/humanizer.instructions.md)
---
applyTo:
- "**/*.md"
description: "Convert robotic AI prose into punchy engineering writing"
---
# Humanizer Guidelines
- Cut throat-clearing openers ("Certainly! Here is...").
- Use active voice and concrete verbs.
Gemini CLI (.gemini/commands/humanizer.toml)
description = "Convert robotic AI prose into punchy engineering writing"
prompt = """
# Humanizer Guidelines
- Cut throat-clearing openers ("Certainly! Here is...").
- Use active voice and concrete verbs.
"""
Windsurf / Devin (.devin/rules/humanizer.md)
---
trigger: "manual"
description: "Convert robotic AI prose into punchy engineering writing"
globs:
- "**/*.md"
---
# Humanizer Guidelines
- Cut throat-clearing openers ("Certainly! Here is...").
- Use active voice and concrete verbs.
Aider (.aider/humanizer.md + .aider.conf.yml merge)
File .aider/humanizer.md:
# humanizer
> Convert robotic AI prose into punchy engineering writing
# Humanizer Guidelines
- Cut throat-clearing openers ("Certainly! Here is...").
- Use active voice and concrete verbs.
Merged safely into .aider.conf.yml:
read:
- ".aider/humanizer.md"
🤝 Supported Harness Matrix
Every mapping is backed by vendor documentation and verified through automated conformance tests.
| Harness | Skill Destination | Frontmatter Schema | Notes / Standards |
|---|---|---|---|
| Claude Code | .claude/skills/<n>/SKILL.md |
Verbatim passthrough | Native Anthropic skill format |
| Cursor | .agents/skills/<n>/SKILL.md |
name, description, paths |
Shared with Codex (one write covers both) |
| Codex | .agents/skills/<n>/SKILL.md |
name, description, paths |
Same path as Cursor; supports disable-model-invocation |
| GitHub Copilot | .github/instructions/<n>.instructions.md |
applyTo, description |
Native Copilot instruction rules |
| Gemini CLI | .gemini/commands/<n>.toml |
description, prompt (TOML) |
Validated TOML prompt command schema |
| Windsurf | .devin/rules/<n>.md |
trigger, description, globs |
12,000 character limit pointer fallback |
| Cline | .clinerules/<n>.md |
paths |
Clean markdown rule injection |
| OpenCode | .opencode/commands/<n>.md |
description |
Native command configuration |
| Aider | .aider/<n>.md |
None (Markdown body) | Automatically merges read: in .aider.conf.yml |
Planned Harnesses: Grok CLI, Continue.
🛠️ Command Reference
# 1. Discover harnesses detected on your machine
cinch harnesses
# 2. Inspect available skills, agents, commands, and hooks on disk
cinch inventory --harness claude
cinch inventory --harness cursor --purpose security
# 3. Preview how a skill translates without writing any files
cinch preview humanizer --target copilot
cinch preview security-auditor --from-dir examples/skills --target gemini
# 4. Interactive init wizard (prompts for starter skills if none on disk)
cinch init
# 5. Wire curated starters into Claude Code + Cursor/Codex
cinch init --starter --harness claude,cursor,codex --yes
# 6. Multi-target cross-harness wiring (non-interactive)
cinch init \
--from-harness claude \
--harness cursor,copilot,gemini,windsurf \
--skills humanizer,security-auditor \
--yes
# 7. Check workspace sync & wired file integrity
cinch status
# 8. Inspect workspace drift with syntax-highlighted unified diffs
cinch diff
# 9. Validate & lint SKILL.md files against dialect best practices
cinch check
cinch check examples/skills/docker-deploy
# 10. Attach from an external skills repository or checkout
cinch init --from-dir examples/skills --harness cursor,copilot --yes
CLI Flags
| Flag | Description |
|---|---|
--from-harness <id> |
Source harness to read skills from (auto-detected if only one is on disk). |
--harness <list> |
Target harness(es) to wire (comma-separated list, e.g. cursor,copilot,gemini). |
--starter |
Include curated starter skills (humanizer, security-auditor, test-writer, git-commit). |
--skills <list> |
Comma-separated list of skill names to attach. |
--agents <list> |
Comma-separated list of agent names to attach. |
--commands <list> |
Comma-separated list of commands/prompts to attach. |
--hooks <list> |
Comma-separated list of hooks (preserved only when target matches source). |
--purpose <catalog> |
Filter inventory by category: python, ml, data, web, docs, security, agents. |
--from-dir <path> |
Extra local root directory containing skills or agents to inventory. |
--dry-run |
Preview the exact files and paths without writing anything to disk. |
--yes |
Non-interactive execution (accept defaults or provided flags). |
⚡ Blistering Performance
Cinch is written in pure, dependency-light Python and designed for microsecond-scale execution. Running the included benchmark suite (benchmark/run.py):
| Operation | Throughput | Latency |
|---|---|---|
| Frontmatter Parsing | 245,000+ skills/s | 4.0 µs |
| 9-Dialect Translation | 500,000+ dialects/s | 0.02 ms / skill |
| End-to-End Plan & Disk Wire | 800+ skills/s | 1.2 ms / skill |
Zero perceptible lag in your CLI or agent loops.
🧱 Architecture: The 3-Stage Pipeline
Cinch never performs direct, naive file copying between disparate tools. Instead, it processes assets through a clean, verifiable translation pipeline:
┌─────────────────────────┐
│ Source Item on Disk │ (e.g. ~/.claude/skills/humanizer/SKILL.md)
└────────────┬────────────┘
│ parse_doc()
▼
┌─────────────────────────┐
│ Canonical Doc │ (Unified AST: name, description, body, paths, support)
└────────────┬────────────┘
│ Adapter.render()
▼
┌─────────────────────────┐
│ RenderedFiles │ (Tailored to each target dialect + merge rules)
└────────────┬────────────┘
│ apply_plan()
▼
┌─────────────────────────┐
│ Verified Project Files │ + .cinch.json execution audit manifest
└─────────────────────────┘
The Inline vs. Pointer Rule
- Inline by default: The skill body is written directly into the target's native file with correctly translated frontmatter.
- Pointer when limits or assets require it: If a skill exceeds documented per-file limit (e.g., Windsurf's 12,000 character rule threshold) or bundles supporting scripts (
scripts/,references/), Cinch copies the support directory to.cinch/skills/<name>/and creates a native adapter file pointing to it.
🛡️ Trust & Safety Guarantees
- 🔒 100% Local-First: Runs entirely on your local machine. No telemetry, no cloud dependencies, no network requests.
- 🛡️ Zero Destructive Overwrites: Existing hand-crafted rule files are never silently replaced (
outcome: "exists"). - 📝 Verifiable Manifest: Every run updates
.cinch.jsonwith an exact audit trail of files written, merged, or skipped.
🌟 Community & Contributing
Contributions are warmly welcome! Whether adding an adapter for a new harness, refining prompts, or improving test fixtures:
- Read our Contributing Guide
- Check our Security Policy
- License: MIT
If Cinch saves you time wiring AI workflows, please consider giving it a ⭐ on GitHub!
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found