Quick Start • Features • Examples • Contributing
SkillSync CLI is a command‑line tool that reads a project’s skill manifest, matches each required skill against a local skill registry, and installs the correct versions with an MCP server configuration file. It removes the manual search‑and‑copy steps developers normally perform when setting up agent skills across multiple frameworks, providing a single‑command workflow similar to npm install for agent capabilities.
| Feature | Description |
|---|---|
| Parse Skill Manifest | Reads a YAML manifest (skill.yaml) that lists skill IDs and version constraints, validates the format, and returns normalized skill requirements. |
| Query Local Skill Registry | Looks up each skill in a local SQLite registry, returns the best‑matching record (latest version satisfying the constraint) or reports a miss. |
| Download and Install Skills | Copies resolved skill files to ./skill_sync/install/, writes a minimal MCP configuration file, and records installed versions. |
| Version Constraint Handling | Supports PEP 440 style specifiers (>=1.2.0,<2.0.0, ==2.5.1, etc.) and reports clear errors on mismatches. |
| MCP Config Generation | Creates mcp-config.yaml listing installed skills and versions for downstream consumption. |
- Clone the repository:
git clone https://github.com/yourusername/skill-sync-cli.git
- Install dependencies:
pip install click pydantic pytest
- Run the CLI with a sample manifest:
python -m skill_sync.main --manifest samples/good.yaml
Basic manifest parsing
$ skill-sync parse --manifest samples/good.yaml
Found 3 skill requirements: [Skill(id='skill-a', version='>=1.0.0'), Skill(id='skill-b', version='==2.5.1'), Skill(id='skill-c', version='<3.0.0')]Resolve and install
$ skill-sync install --manifest samples/good.yaml
Installed 3 skills to ./skill_sync/install/
./skill_sync/install/mcp-config.yaml contains:
skills:
- id: skill-a
version: 1.4.2
- id: skill-b
version: 2.5.1
- id: skill-c
version: 2.9.0Missing skill error
$ skill-sync resolve --manifest samples/missing.yaml
Error: Unsatisfied skill: skill-x (requires >=1.0.0)skill_sync/
├── main.py # CLI entry point (click)
├── manifest_parser.py # parse YAML manifest -> List[SkillRequirement]
├── skill_registry.py # SQLite helper: resolve requirements -> List[SkillEntry]
├── installer.py # copy skills, write mcp-config.yaml
├── models.py # Pydantic dataclasses (above)
├── requirements.txt # pinned dependencies
└── tests/
├── test_manifest_parser.py
├── test_skill_registry.py
├── test_installer.py
└── test_cli.py
Total source files: 6 (excluding tests). All files < 120 lines each.
| Technology | Purpose |
|---|---|
| Python 3.11+ | Core language |
| Click == 8.1.7 | CLI framework |
| Pydantic == 2.7.0 | Data validation & settings |
SQLite via stdlib sqlite3 |
Local skill registry |
| Pytest == 8.2.2 | Testing |
Fork the repository, create a feature branch, write tests, and open a pull request. Please follow the standard GitHub flow: fork → edit → test → PR.
MIT
Matthew Snow -- M2AI | @m2ai-portfolio
