Open source · MIT · Go 1.26+

One source of truth
for every AI agent.

Stop maintaining separate configs for Claude, Cursor, Copilot, and everyone else. Define your rules once in .skillkit/ — sync everywhere.

zsh — ~/myproject

Four tools.
Four configs.
All out of sync.

Every AI coding tool ships its own config format. You edit CLAUDE.md, forget to update .cursorrules, and your team's Copilot instructions are six months stale. skillkit ends that.

  • CLAUDE.md last edited 3 weeks ago
  • .cursorrules last edited 2 months ago
  • .github/copilot-instructions.md last edited never
  • AGENTS.md file doesn't exist
  • .skillkit/rules/project.md single source ✓

Three commands.
Done forever.

Init your project

Creates .skillkit/ and auto-detects your stack (Go, Node, Python…) to bootstrap sensible defaults.

$ skillkit init
Created .skillkit/skillkit.yml
Detected: go, docker

Write rules once

Author plain Markdown in .skillkit/rules/. Add scoped rules in .skillkit/scoped/ for file-specific guidance.

# .skillkit/rules/project.md
---
priority: 10
tags: [project]
---
Use table-driven tests.

Sync everywhere

One command regenerates all tool-native outputs. Lock file tracks content hashes. CI catches drift with --check.

$ skillkit sync
Updated 7 files, skipped 0.

$ skillkit sync --check
✓ All outputs up-to-date

Two flows. Same CLI.

Add $(go env GOPATH)/bin to your PATH after go install. Flags below highlight in sequence when each card scrolls into view.

New project

Start from an empty repo — rules live under .skillkit/.

go install …@latest
Install the binary Then export PATH="$(go env GOPATH)/bin:$PATH" in ~/.zshrc (or use the shell installer).
skillkit init
Create config Writes .skillkit/skillkit.yml and detects your stack.
skillkit add base
Starter rules pack Pulls in curated defaults you can edit.
skillkit sync
Generate every target CLAUDE.md, .cursorrules, Copilot, AGENTS.md, …

Already have CLAUDE.md

Use your existing Claude file as the source, then fan out to all tools.

skillkit init
Scaffold .skillkit/ Same as greenfield — one-time setup.
--import --import-claude
Or: import after init skillkit import --claude (shortcut for --from claude) copies CLAUDE.md into .skillkit/rules/.
--sync
One-shot option skillkit init --import --import-claude --sync runs import + generates every agent file in one go.
skillkit sync
Keep editing .skillkit/ Re-run sync whenever rules change; CI can use skillkit sync --check.
github.com/PuvaanRaaj/skillkit

README · docs/RULES_EXAMPLES.md · MIT · issues & PRs welcome


What you’ll see for each command

Examples below match the real CLI shape: prompts, stdout, and typical follow-up lines (e.g. add runs sync unless you pass --no-sync). Pick a command to preview the terminal output.

zsh — ~/myproject
$ skillkit init Initialized .skillkit directory structure.   Creates .skillkit/skillkit.yml, rules/, scoped/, and detects your stack when go.mod / package.json / etc. are present. Use skillkit init --import --sync to pull in existing CLAUDE.md and generate targets in one go.

init — First-time project setup. Optional flags: --import, --import-claude, --import-from <tool>, --sync, --stack, --targets. Run skillkit init -h for the full list.

zsh — ~/myproject
$ skillkit add base Installed pack base (1.0.0) Updated 7 files, skipped 0.   Unless you pass --no-sync, add runs sync immediately so generated files match the new pack.

add <pack> — Registers a built-in rules pack in skillkit.yml and (by default) regenerates outputs. Pin with --version if needed.

zsh — ~/myproject
$ skillkit sync Updated 7 files, skipped 0.   Writes CLAUDE.md, .cursorrules, .github/copilot-instructions.md, AGENTS.md, scoped .mdc files, and updates .skillkit/skillkit.lock with content hashes.

sync — Regenerates every enabled target from .skillkit/rules/ and .skillkit/scoped/. Flags: --dry-run, --target, --force, --check (CI), --verbose.

zsh — ~/myproject
skillkit status - claude CLAUDE.md in-sync - cursor .cursorrules in-sync - cursor .cursor/rules/go.mdc in-sync - copilot .github/copilot-instructions.md in-sync - agents_md AGENTS.md in-sync - gemini (disabled) disabled   Each line is one generated file. in-sync means the file on disk matches the lockfile hash; out-of-sync means run skillkit sync (or you edited a generated file by hand).

status — Compares live files to .skillkit/skillkit.lock. Use after editing rules or when debugging CI.

zsh — ~/myproject
$ skillkit import --claude Imported from: claude Wrote 1 global and 0 scoped rules into .skillkit   $ skillkit import --dry-run Would import from: claude, cursor Global rules: 2, Scoped rules: 0   Copies tool-native files into .skillkit/rules/imported-*.md. Use --from claude|cursor|copilot|agents or --merge with existing rules.

import — One-time migration from CLAUDE.md, .cursorrules, Copilot instructions, or AGENTS.md. Then edit only under .skillkit/ and use sync.

zsh — ~/myproject
$ skillkit validate Validation passed. Global: 2, Scoped: 1   Fails non-zero if frontmatter globs or rule structure are invalid — useful in pre-commit hooks.

validate — Loads skillkit.yml and all rules; checks scoped apply_to patterns and consistency.

zsh — ~/myproject
$ skillkit diff --- CLAUDE.md (before) +++ CLAUDE.md (after sync) @@ -1,3 +1,4 @@ … unified diff of what sync would write — empty if already up to date.   Uses a dry-run sync: no files written, only prints hunks that would change.

diff — Review changes before committing; pair with git diff on .skillkit/ for rule edits.

zsh — CI / local
$ skillkit sync --check Updated 0 files, skipped 7. # exit code 0 — nothing to change   $ skillkit sync --check # after editing rules but forgetting sync Updated 3 files, skipped 4. # exit code 2 — generated files would change; run skillkit sync and commit

sync --check — CI gate: exit 2 if any generated file would change compared to the current tree (dry-run; no writes). Use after editing .skillkit/ to ensure you’ve run sync.

zsh — ~/myproject
$ skillkit doctor Note: no .skillkit/skillkit.lock yet (run `skillkit sync`). Doctor: OK   Validates config + rules; reminds you to run sync if the lockfile is missing.

doctor — Quick health check when something feels wrong (broken YAML, invalid globs, etc.).

zsh — ~/myproject
$ skillkit watch Watching .skillkit/ for changes (Ctrl+C to stop)... … on each save, sync runs and you’ll see the same “Updated N files” line.

watch — Reruns sync when files under .skillkit/ change — handy while editing rules.

zsh — ~
$ skillkit version dev   $ skillkit --version # same output dev   Local go install / go run often show dev. Release archives from GitHub / GoReleaser set a semver at link time.

version — Prints the build identifier. Equivalent to skillkit --version and skillkit -v.


Built for real workflows.

Lock file & hashing

Every generated file is tracked with a SHA-256 hash in .skillkit/skillkit.lock. Know exactly what changed and when.

skillkit status

CI drift detection

skillkit sync --check exits with code 2 when outputs would change. Plug it into any pipeline to prevent stale configs.

skillkit sync --check

Scoped rules

Apply rules only to specific file globs. A Go-only rule in .skillkit/scoped/go.md syncs to .cursor/rules/go.mdc automatically.

.skillkit/scoped/

Rules packs

Install curated built-in packs with skillkit add base. Author your own reusable packs for your org.

skillkit add base

Monorepo-native

Parent .skillkit/ layers merge into child projects automatically when monorepo.inherit: true.

monorepo.inherit

Watch mode

skillkit watch reruns sync on every change to .skillkit/. Real-time feedback during development.

skillkit watch

Write once.
Sync everywhere.

skillkit generates the native format each tool expects — 13 targets, no manual copying required.

Your source — .skillkit/

📄rules/project.md
📄rules/style.md
📄scoped/go.md
📄scoped/ts.md
⚙️skillkit.yml
skillkit sync
Claude Code CLAUDE.md · .claude/rules/
Cursor .cursorrules · .cursor/rules/
GitHub Copilot .github/copilot-instructions.md
Gemini CLI GEMINI.md
Amazon Q Developer .amazonq/dev/prompts.md
Continue.dev .continuerules
Zed AI .rules
AGENTS.md / Codex CLI universal agent context
Windsurf · Aider · Goose · Jules · Kodu… 13 targets total

Up in 30 seconds.

Shell script Recommended
curl -fsSL https://raw.githubusercontent.com/PuvaanRaaj/skillkit/main/install.sh | sh
Go toolchain
go install github.com/PuvaanRaaj/skillkit@latest
npm wrapper
npm install skillkit

Quick start

1
Initialise your project
skillkit init
2
Add the base pack
skillkit add base
3
Generate all target files
skillkit sync
4
Check status anytime
skillkit status