@ryanreh99/skills-sync 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +74 -0
- package/dist/assets/contracts/build/bundle.schema.json +76 -0
- package/dist/assets/contracts/inputs/config.schema.json +13 -0
- package/dist/assets/contracts/inputs/mcp-servers.schema.json +56 -0
- package/dist/assets/contracts/inputs/pack-manifest.schema.json +33 -0
- package/dist/assets/contracts/inputs/pack-sources.schema.json +47 -0
- package/dist/assets/contracts/inputs/profile.schema.json +21 -0
- package/dist/assets/contracts/inputs/upstreams.schema.json +45 -0
- package/dist/assets/contracts/runtime/targets.schema.json +120 -0
- package/dist/assets/contracts/state/upstreams-lock.schema.json +38 -0
- package/dist/assets/manifests/targets.linux.json +27 -0
- package/dist/assets/manifests/targets.macos.json +27 -0
- package/dist/assets/manifests/targets.windows.json +27 -0
- package/dist/assets/seed/config.json +3 -0
- package/dist/assets/seed/packs/personal/mcp/servers.json +20 -0
- package/dist/assets/seed/packs/personal/pack.json +7 -0
- package/dist/assets/seed/packs/personal/sources.json +31 -0
- package/dist/assets/seed/profiles/personal.json +4 -0
- package/dist/assets/seed/upstreams.json +23 -0
- package/dist/cli.js +532 -0
- package/dist/index.js +27 -0
- package/dist/lib/adapters/claude.js +49 -0
- package/dist/lib/adapters/codex.js +239 -0
- package/dist/lib/adapters/common.js +114 -0
- package/dist/lib/adapters/copilot.js +53 -0
- package/dist/lib/adapters/cursor.js +53 -0
- package/dist/lib/adapters/gemini.js +52 -0
- package/dist/lib/agents.js +888 -0
- package/dist/lib/bindings.js +510 -0
- package/dist/lib/build.js +190 -0
- package/dist/lib/bundle.js +165 -0
- package/dist/lib/config.js +324 -0
- package/dist/lib/core.js +447 -0
- package/dist/lib/detect.js +56 -0
- package/dist/lib/doctor.js +504 -0
- package/dist/lib/init.js +292 -0
- package/dist/lib/inventory.js +235 -0
- package/dist/lib/manage.js +463 -0
- package/dist/lib/mcp-config.js +264 -0
- package/dist/lib/profile-transfer.js +221 -0
- package/dist/lib/upstreams.js +782 -0
- package/docs/agent-storage-map.md +153 -0
- package/docs/architecture.md +117 -0
- package/docs/changelog.md +12 -0
- package/docs/commands.md +94 -0
- package/docs/contracts.md +112 -0
- package/docs/homebrew.md +46 -0
- package/docs/quickstart.md +14 -0
- package/docs/roadmap.md +5 -0
- package/docs/security.md +32 -0
- package/docs/user-guide.md +257 -0
- package/package.json +61 -0
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
# User Guide
|
|
2
|
+
|
|
3
|
+
`skills-sync` manages profile-scoped skills and MCP servers across Codex, Claude Code, Cursor, Copilot, and Gemini CLI.
|
|
4
|
+
|
|
5
|
+
## Initial Setup on a New Machine
|
|
6
|
+
|
|
7
|
+
### Commands
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# Install the CLI globally
|
|
11
|
+
npm i -g @ryanreh99/skills-sync
|
|
12
|
+
# Or run without global install
|
|
13
|
+
npx @ryanreh99/skills-sync
|
|
14
|
+
# Initialize an empty workspace scaffold
|
|
15
|
+
skills-sync init
|
|
16
|
+
# Initialize workspace with bundled starter content
|
|
17
|
+
skills-sync init --seed
|
|
18
|
+
# Set your default active profile
|
|
19
|
+
skills-sync use <profile>
|
|
20
|
+
# Build runtime artifacts for a profile
|
|
21
|
+
skills-sync build --profile <profile>
|
|
22
|
+
# Apply profile artifacts to all detected agents
|
|
23
|
+
skills-sync apply --profile <profile>
|
|
24
|
+
# Validate profile state and agent bindings
|
|
25
|
+
skills-sync doctor --profile <profile>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Example
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# Install the CLI globally
|
|
32
|
+
npm i -g @ryanreh99/skills-sync
|
|
33
|
+
# Or run without global install
|
|
34
|
+
npx @ryanreh99/skills-sync
|
|
35
|
+
# Initialize workspace with bundled starter content
|
|
36
|
+
skills-sync init --seed
|
|
37
|
+
# Set personal as the default active profile
|
|
38
|
+
skills-sync use personal
|
|
39
|
+
# Build runtime artifacts for personal profile
|
|
40
|
+
skills-sync build --profile personal
|
|
41
|
+
# Apply personal profile to all detected agents
|
|
42
|
+
skills-sync apply --profile personal
|
|
43
|
+
# Validate personal profile state and bindings
|
|
44
|
+
skills-sync doctor --profile personal
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Profile Switch
|
|
48
|
+
|
|
49
|
+
### Commands
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# Create a new profile scaffold
|
|
53
|
+
skills-sync new <profile>
|
|
54
|
+
# Switch default profile to the new one
|
|
55
|
+
skills-sync use <profile>
|
|
56
|
+
# Show the current default profile
|
|
57
|
+
skills-sync current
|
|
58
|
+
# List all available profiles
|
|
59
|
+
skills-sync ls
|
|
60
|
+
# Build artifacts for the selected profile
|
|
61
|
+
skills-sync build --profile <profile>
|
|
62
|
+
# Apply selected profile to detected agents
|
|
63
|
+
skills-sync apply --profile <profile>
|
|
64
|
+
# Validate selected profile setup
|
|
65
|
+
skills-sync doctor --profile <profile>
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Example
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
# Create a work profile scaffold
|
|
72
|
+
skills-sync new work
|
|
73
|
+
# Switch default profile to work
|
|
74
|
+
skills-sync use work
|
|
75
|
+
# Build artifacts for work profile
|
|
76
|
+
skills-sync build --profile work
|
|
77
|
+
# Apply work profile to detected agents
|
|
78
|
+
skills-sync apply --profile work
|
|
79
|
+
# Validate work profile setup
|
|
80
|
+
skills-sync doctor --profile work
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## List and Search Upstreams, Profiles, Skills, and MCP
|
|
84
|
+
|
|
85
|
+
### Commands
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# List configured upstream repositories
|
|
89
|
+
skills-sync list upstreams
|
|
90
|
+
# Add an upstream before filtering by its id (if not already configured)
|
|
91
|
+
skills-sync upstream add <upstream-id> --repo <git-url> --default-ref <ref>
|
|
92
|
+
# List discovered profiles
|
|
93
|
+
skills-sync list profiles
|
|
94
|
+
# List profiles with current default marker
|
|
95
|
+
skills-sync ls
|
|
96
|
+
# List skills available from an upstream
|
|
97
|
+
skills-sync list skills --upstream <upstream-id> --format text
|
|
98
|
+
# Search upstream skills by keyword
|
|
99
|
+
skills-sync search skills --upstream <upstream-id> --query <keyword>
|
|
100
|
+
# Show profile skills and MCP servers
|
|
101
|
+
skills-sync profile show <profile>
|
|
102
|
+
# Show all profiles with effective resources
|
|
103
|
+
skills-sync list everything --format text
|
|
104
|
+
# Inspect installed resources on detected agents
|
|
105
|
+
skills-sync agent inventory --format text
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Example
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
# List configured upstream repositories
|
|
112
|
+
skills-sync list upstreams
|
|
113
|
+
# Add anthropics upstream (run once)
|
|
114
|
+
skills-sync upstream add anthropics --repo https://github.com/anthropics/claude-code --default-ref main
|
|
115
|
+
# List skills from anthropics upstream
|
|
116
|
+
skills-sync list skills --upstream anthropics --format text
|
|
117
|
+
# Search anthropics skills for MCP related entries
|
|
118
|
+
skills-sync search skills --upstream anthropics --query mcp
|
|
119
|
+
# Show skills and MCP servers in personal profile
|
|
120
|
+
skills-sync profile show personal
|
|
121
|
+
# Inspect installed resources on detected agents
|
|
122
|
+
skills-sync agent inventory --format text
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Add Upstreams, Skills, and MCP to a Profile
|
|
126
|
+
|
|
127
|
+
Use a skill path that appears in `skills-sync list skills --upstream anthropics --format text`.
|
|
128
|
+
|
|
129
|
+
### Commands
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
# Add a new upstream repository
|
|
133
|
+
skills-sync upstream add <upstream-id> --repo <git-url> --default-ref <ref>
|
|
134
|
+
# List skills available from the upstream
|
|
135
|
+
skills-sync list skills --upstream <upstream-id> --format text
|
|
136
|
+
# Add a skill import to a profile
|
|
137
|
+
skills-sync profile add-skill <profile> --upstream <upstream-id> --path <repo-skill-path>
|
|
138
|
+
# Add a stdio MCP server definition to a profile
|
|
139
|
+
skills-sync profile add-mcp <profile> <mcp-name> --command <command> --args <arg1> <arg2> ...
|
|
140
|
+
# Add a stdio MCP server with dash-prefixed args
|
|
141
|
+
skills-sync profile add-mcp <profile> <mcp-name> --command <command> --arg <arg1> --arg <arg2> ...
|
|
142
|
+
# Add an HTTP MCP server definition to a profile
|
|
143
|
+
skills-sync profile add-mcp <profile> <mcp-name> --url <https-url>
|
|
144
|
+
# Verify profile resources after updates
|
|
145
|
+
skills-sync profile show <profile>
|
|
146
|
+
# Build updated profile artifacts
|
|
147
|
+
skills-sync build --profile <profile>
|
|
148
|
+
# Apply updated profile to detected agents
|
|
149
|
+
skills-sync apply --profile <profile>
|
|
150
|
+
# Validate updated profile and bindings
|
|
151
|
+
skills-sync doctor --profile <profile>
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Example
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
# Add anthropics repository as an upstream
|
|
158
|
+
skills-sync upstream add anthropics --repo https://github.com/anthropics/claude-code --default-ref main
|
|
159
|
+
# List skills available from anthropics
|
|
160
|
+
skills-sync list skills --upstream anthropics --format text
|
|
161
|
+
# Add one anthropics skill path to personal profile
|
|
162
|
+
skills-sync profile add-skill personal --upstream anthropics --path skills/claude-code-review
|
|
163
|
+
# Remove anthropics upstream
|
|
164
|
+
skills-sync upstream remove anthropics
|
|
165
|
+
# Add filesystem MCP server to personal profile
|
|
166
|
+
skills-sync profile add-mcp personal filesystem --command npx --args -y @modelcontextprotocol/server-filesystem C:\Users\ryanr\Documents
|
|
167
|
+
# Add GitHub MCP server over HTTP to personal profile
|
|
168
|
+
skills-sync profile add-mcp personal io.github.github/github-mcp-server --url https://api.githubcopilot.com/mcp/
|
|
169
|
+
# Build updated personal profile artifacts
|
|
170
|
+
skills-sync build --profile personal
|
|
171
|
+
# Apply updated personal profile to detected agents
|
|
172
|
+
skills-sync apply --profile personal
|
|
173
|
+
# Validate updated personal profile setup
|
|
174
|
+
skills-sync doctor --profile personal
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## Apply a Skill or MCP to All Your Agents
|
|
178
|
+
|
|
179
|
+
If you installed an MCP server or created a skill in one agent, add it to your profile and run one rollout.
|
|
180
|
+
|
|
181
|
+
### Commands
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
# Add a skill import to the profile
|
|
185
|
+
skills-sync profile add-skill <profile> --upstream <upstream-id> --path <repo-skill-path>
|
|
186
|
+
# Add a stdio MCP server to the profile
|
|
187
|
+
skills-sync profile add-mcp <profile> <mcp-name> --command <command> --args <arg1> <arg2> ...
|
|
188
|
+
# Add a stdio MCP server with dash-prefixed args
|
|
189
|
+
skills-sync profile add-mcp <profile> <mcp-name> --command <command> --arg <arg1> --arg <arg2> ...
|
|
190
|
+
# Add an HTTP MCP server to the profile
|
|
191
|
+
skills-sync profile add-mcp <profile> <mcp-name> --url <https-url>
|
|
192
|
+
# Build artifacts with new skill and MCP entries
|
|
193
|
+
skills-sync build --profile <profile>
|
|
194
|
+
# Apply updated profile to all detected agents
|
|
195
|
+
skills-sync apply --profile <profile>
|
|
196
|
+
# Validate final state after rollout
|
|
197
|
+
skills-sync doctor --profile <profile>
|
|
198
|
+
# Inspect installed resources per detected agent
|
|
199
|
+
skills-sync agent inventory --format text
|
|
200
|
+
# Preview drift between profile and agents (no changes)
|
|
201
|
+
skills-sync agent drift --profile <profile> --dry-run --format text
|
|
202
|
+
# Reconcile drift across detected agents and shared .skills-sync artifacts
|
|
203
|
+
# (extra MCP servers detected in agents are promoted into profile before rebuild/apply)
|
|
204
|
+
skills-sync agent drift --profile <profile> --format text
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### Example
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
# Install an mcp for any specific agent
|
|
211
|
+
# Check the drift
|
|
212
|
+
skills-sync agent drift --dry-run
|
|
213
|
+
# Fix the drift and apply to all agents
|
|
214
|
+
skills-sync agent drift
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
## Clean, Unlink, and Doctor
|
|
218
|
+
|
|
219
|
+
### Commands
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
# Run health checks for a profile
|
|
223
|
+
skills-sync doctor --profile <profile>
|
|
224
|
+
# Preview unlink actions without modifying files
|
|
225
|
+
skills-sync unlink --dry-run
|
|
226
|
+
# Remove managed bindings from detected agents
|
|
227
|
+
skills-sync unlink
|
|
228
|
+
# Remove an imported skill from profile configuration
|
|
229
|
+
skills-sync profile remove-skill <profile> --upstream <upstream-id> --path <repo-skill-path>
|
|
230
|
+
# Remove an MCP server from profile configuration
|
|
231
|
+
skills-sync profile remove-mcp <profile> <mcp-name>
|
|
232
|
+
# Remove upstream repository from configuration
|
|
233
|
+
skills-sync upstream remove <upstream-id>
|
|
234
|
+
# Rebuild artifacts after cleanup
|
|
235
|
+
skills-sync build --profile <profile>
|
|
236
|
+
# Re-apply cleaned profile to detected agents
|
|
237
|
+
skills-sync apply --profile <profile>
|
|
238
|
+
# Re-run health checks after cleanup
|
|
239
|
+
skills-sync doctor --profile <profile>
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Example
|
|
243
|
+
|
|
244
|
+
```bash
|
|
245
|
+
# Preview unlink actions without modifying files
|
|
246
|
+
skills-sync unlink --dry-run
|
|
247
|
+
# Remove filesystem MCP server from personal profile
|
|
248
|
+
skills-sync profile remove-mcp personal filesystem
|
|
249
|
+
# Remove managed bindings from detected agents
|
|
250
|
+
skills-sync unlink
|
|
251
|
+
# Build cleaned personal profile
|
|
252
|
+
skills-sync build --profile personal
|
|
253
|
+
# Apply cleaned personal profile to detected agents
|
|
254
|
+
skills-sync apply --profile personal
|
|
255
|
+
# Validate cleaned personal profile
|
|
256
|
+
skills-sync doctor --profile personal
|
|
257
|
+
```
|
package/package.json
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ryanreh99/skills-sync",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "AI skills and MCP configuration management for development environments.",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"author": "Ryan Rehman <ryanrehman99@gmail.com>",
|
|
7
|
+
"bin": {
|
|
8
|
+
"skills-sync": "./dist/index.js"
|
|
9
|
+
},
|
|
10
|
+
"files": [
|
|
11
|
+
"dist",
|
|
12
|
+
"docs"
|
|
13
|
+
],
|
|
14
|
+
"type": "module",
|
|
15
|
+
"engines": {
|
|
16
|
+
"node": ">=20"
|
|
17
|
+
},
|
|
18
|
+
"repository": {
|
|
19
|
+
"type": "git",
|
|
20
|
+
"url": "https://github.com/ryanreh99/skills-sync.git"
|
|
21
|
+
},
|
|
22
|
+
"bugs": {
|
|
23
|
+
"url": "https://github.com/ryanreh99/skills-sync/issues"
|
|
24
|
+
},
|
|
25
|
+
"homepage": "https://github.com/ryanreh99/skills-sync#readme",
|
|
26
|
+
"scripts": {
|
|
27
|
+
"clean": "node ./src/scripts/clean.mjs",
|
|
28
|
+
"build": "node ./src/scripts/build.mjs",
|
|
29
|
+
"lint": "eslint .",
|
|
30
|
+
"format": "prettier --check .",
|
|
31
|
+
"test": "npm run build && node --test ./test/smoke.test.mjs && node ./test/integration/run.mjs",
|
|
32
|
+
"prepublishOnly": "npm run clean && npm run build && npm run lint && npm run test",
|
|
33
|
+
"init": "node ./src/index.js init",
|
|
34
|
+
"apply": "node ./src/index.js apply",
|
|
35
|
+
"unlink": "node ./src/index.js unlink",
|
|
36
|
+
"doctor": "node ./src/index.js doctor",
|
|
37
|
+
"detect": "node ./src/index.js detect",
|
|
38
|
+
"list": "node ./src/index.js list",
|
|
39
|
+
"search": "node ./src/index.js search",
|
|
40
|
+
"use": "node ./src/index.js use",
|
|
41
|
+
"current": "node ./src/index.js current",
|
|
42
|
+
"ls": "node ./src/index.js ls",
|
|
43
|
+
"new": "node ./src/index.js new",
|
|
44
|
+
"remove": "node ./src/index.js remove",
|
|
45
|
+
"help": "node ./src/index.js help",
|
|
46
|
+
"brew:formula": "node ./src/scripts/generate-homebrew-formula.mjs",
|
|
47
|
+
"dev": "node ./src/index.js"
|
|
48
|
+
},
|
|
49
|
+
"dependencies": {
|
|
50
|
+
"ajv": "^8.17.1",
|
|
51
|
+
"commander": "^14.0.2",
|
|
52
|
+
"deepmerge": "^4.3.1",
|
|
53
|
+
"fs-extra": "^11.3.2"
|
|
54
|
+
},
|
|
55
|
+
"devDependencies": {
|
|
56
|
+
"@eslint/js": "^9.22.0",
|
|
57
|
+
"eslint": "^9.22.0",
|
|
58
|
+
"globals": "^16.0.0",
|
|
59
|
+
"prettier": "^3.6.2"
|
|
60
|
+
}
|
|
61
|
+
}
|