agentpacks 0.2.0 → 0.3.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/README.md +561 -0
- package/package.json +3 -3
package/README.md
ADDED
|
@@ -0,0 +1,561 @@
|
|
|
1
|
+
# agentpacks
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/agentpacks)
|
|
4
|
+
[](https://www.npmjs.com/package/agentpacks)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
[](https://github.com/lssm-tech/contractspec/tree/main/packages/tools/agentpacks)
|
|
7
|
+
|
|
8
|
+
**Composable AI agent configuration manager.**
|
|
9
|
+
|
|
10
|
+
Write your rules, commands, skills, hooks, and MCP configs once — in a pack — and sync them automatically to OpenCode, Cursor, Claude Code, Codex CLI, Gemini CLI, GitHub Copilot, and 13 more tools.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## Why agentpacks?
|
|
15
|
+
|
|
16
|
+
AI coding tools are proliferating fast. Every tool has its own config format:
|
|
17
|
+
|
|
18
|
+
- Cursor wants `.cursor/rules/*.mdc`
|
|
19
|
+
- Claude Code wants `CLAUDE.md` and `.claude/rules/*.md`
|
|
20
|
+
- OpenCode wants `.opencode/agent/*.md`, `.opencode/skill/*.md`, `opencode.json`
|
|
21
|
+
- Codex wants `.codex/memories/*.md`
|
|
22
|
+
- And so on for 20+ tools…
|
|
23
|
+
|
|
24
|
+
**Maintaining all of these by hand means:**
|
|
25
|
+
|
|
26
|
+
- Rules drift between tools — your Cursor context differs from your Claude context
|
|
27
|
+
- Adding a new rule means editing 5+ files in 5+ formats
|
|
28
|
+
- Onboarding a new tool means starting from scratch
|
|
29
|
+
|
|
30
|
+
**agentpacks solves this with a pack-based architecture:**
|
|
31
|
+
|
|
32
|
+
1. Write your rules/commands/agents/skills once, in plain Markdown with simple frontmatter
|
|
33
|
+
2. Group them into a _pack_ (a folder with a `pack.json` manifest)
|
|
34
|
+
3. Run `agentpacks generate` — all 20 supported tools get their configs, properly formatted
|
|
35
|
+
|
|
36
|
+
### vs rulesync
|
|
37
|
+
|
|
38
|
+
[rulesync](https://github.com/dyoshikawa/rulesync) is great inspiration but uses a flat file model. agentpacks goes further:
|
|
39
|
+
|
|
40
|
+
| | agentpacks | rulesync |
|
|
41
|
+
| -------------------- | --------------------------------------- | ------------- |
|
|
42
|
+
| Architecture | Composable packs | Flat files |
|
|
43
|
+
| Pack distribution | npm, git, local | Local only |
|
|
44
|
+
| OpenCode plugins | Per-pack `.ts` plugin files | Not supported |
|
|
45
|
+
| Cursor plugin export | Native plugin format | Not supported |
|
|
46
|
+
| Import from tools | Cursor, Claude Code, OpenCode, rulesync | — |
|
|
47
|
+
| Dependency resolver | Topological sort + conflict detection | — |
|
|
48
|
+
| Monorepo / metarepo | Built-in baseDirs | — |
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Quick Start
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
# Install globally
|
|
56
|
+
npm install -g agentpacks
|
|
57
|
+
# or
|
|
58
|
+
bun add -g agentpacks
|
|
59
|
+
|
|
60
|
+
# Initialize in your project
|
|
61
|
+
cd my-project
|
|
62
|
+
agentpacks init
|
|
63
|
+
|
|
64
|
+
# Generate configs for all your AI tools
|
|
65
|
+
agentpacks generate
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
After `init`, you'll have:
|
|
69
|
+
|
|
70
|
+
```
|
|
71
|
+
my-project/
|
|
72
|
+
├── agentpacks.jsonc # workspace config
|
|
73
|
+
└── packs/
|
|
74
|
+
└── default/
|
|
75
|
+
├── pack.json # pack manifest
|
|
76
|
+
└── rules/
|
|
77
|
+
└── overview.md # starter rule
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
After `generate`, every supported tool gets its config — no manual formatting needed.
|
|
81
|
+
|
|
82
|
+
### Migrating from rulesync
|
|
83
|
+
|
|
84
|
+
Already using rulesync? Import your existing setup in one command:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
agentpacks import --from rulesync
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
This reads your `.rulesync/` directory and `rulesync.jsonc`, and creates an equivalent agentpacks pack + workspace config.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Supported Tools
|
|
95
|
+
|
|
96
|
+
### Core targets — full feature support
|
|
97
|
+
|
|
98
|
+
| Target | ID | Rules | Commands | Agents | Skills | Hooks | Plugins | MCP | Ignore |
|
|
99
|
+
| -------------- | ------------ | :---: | :------: | :----: | :----: | :---: | :-----: | :-: | :----: |
|
|
100
|
+
| OpenCode | `opencode` | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
101
|
+
| Cursor | `cursor` | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ✓ |
|
|
102
|
+
| Claude Code | `claudecode` | ✓ | ✓ | ✓ | ✓ | ✓ | | ✓ | ✓ |
|
|
103
|
+
| Codex CLI | `codexcli` | ✓ | | | ✓ | ✓ | | ✓ | |
|
|
104
|
+
| Gemini CLI | `geminicli` | ✓ | ✓ | | ✓ | ✓ | | ✓ | ✓ |
|
|
105
|
+
| GitHub Copilot | `copilot` | ✓ | ✓ | ✓ | ✓ | | | ✓ | ✓ |
|
|
106
|
+
| AGENTS.md | `agentsmd` | ✓ | | | | | | | |
|
|
107
|
+
|
|
108
|
+
### Additional targets — rules, MCP, and more
|
|
109
|
+
|
|
110
|
+
| Target | ID | Rules | Commands | MCP | Ignore |
|
|
111
|
+
| ------------- | -------------- | :---: | :------: | :-: | :----: |
|
|
112
|
+
| Cline | `cline` | ✓ | ✓ | ✓ | ✓ |
|
|
113
|
+
| Kilo Code | `kilo` | ✓ | ✓ | ✓ | ✓ |
|
|
114
|
+
| Roo Code | `roo` | ✓ | ✓ | ✓ | ✓ |
|
|
115
|
+
| Qwen Code | `qwencode` | ✓ | | ✓ | ✓ |
|
|
116
|
+
| Windsurf | `windsurf` | ✓ | | ✓ | ✓ |
|
|
117
|
+
| Kiro | `kiro` | ✓ | | ✓ | |
|
|
118
|
+
| Augment Code | `augmentcode` | ✓ | | ✓ | |
|
|
119
|
+
| Replit Agent | `replit` | ✓ | | ✓ | |
|
|
120
|
+
| Zed | `zed` | ✓ | | ✓ | |
|
|
121
|
+
| Junie | `junie` | ✓ | | ✓ | |
|
|
122
|
+
| Factory Droid | `factorydroid` | ✓ | | ✓ | |
|
|
123
|
+
| AntiGravity | `antigravity` | ✓ | | ✓ | |
|
|
124
|
+
| Warp | `warp` | ✓ | | | |
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Features
|
|
129
|
+
|
|
130
|
+
agentpacks supports 8 feature types inside a pack:
|
|
131
|
+
|
|
132
|
+
| Feature | Description | Example files |
|
|
133
|
+
| ------------ | ---------------------------------------------------- | ------------------------------------------- |
|
|
134
|
+
| **rules** | Project/coding guidelines injected as context | `rules/security.md`, `rules/style.md` |
|
|
135
|
+
| **commands** | Slash commands (e.g. `/lint`, `/review`) | `commands/lint.md`, `commands/deploy.md` |
|
|
136
|
+
| **agents** | Named sub-agents with specific personas | `agents/reviewer.md`, `agents/architect.md` |
|
|
137
|
+
| **skills** | Step-by-step skill guides (with structured SKILL.md) | `skills/migrate/SKILL.md` |
|
|
138
|
+
| **hooks** | Shell commands triggered by agent events | `hooks.json` |
|
|
139
|
+
| **plugins** | Raw TypeScript plugin files (OpenCode) | `plugins/my-plugin.ts` |
|
|
140
|
+
| **mcp** | MCP server definitions | `mcp.json` |
|
|
141
|
+
| **ignore** | Patterns the agent should ignore | `ignore` |
|
|
142
|
+
|
|
143
|
+
---
|
|
144
|
+
|
|
145
|
+
## CLI Reference
|
|
146
|
+
|
|
147
|
+
### `agentpacks init`
|
|
148
|
+
|
|
149
|
+
Initialize agentpacks in the current project. Creates `agentpacks.jsonc` and a starter pack under `packs/default/`.
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
agentpacks init
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
### `agentpacks generate`
|
|
158
|
+
|
|
159
|
+
Generate tool configs from all active packs.
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
agentpacks generate [options]
|
|
163
|
+
|
|
164
|
+
Options:
|
|
165
|
+
-t, --targets <targets> Comma-separated target IDs, or * for all (default: from config)
|
|
166
|
+
-f, --features <features> Comma-separated feature IDs, or * for all (default: from config)
|
|
167
|
+
--dry-run Preview changes without writing files
|
|
168
|
+
--diff Show a diff of what would change
|
|
169
|
+
-v, --verbose Enable verbose output
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
# Generate for all configured targets
|
|
174
|
+
agentpacks generate
|
|
175
|
+
|
|
176
|
+
# Generate only for Cursor and Claude Code
|
|
177
|
+
agentpacks generate --targets cursor,claudecode
|
|
178
|
+
|
|
179
|
+
# Preview changes without writing
|
|
180
|
+
agentpacks generate --dry-run --diff
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
### `agentpacks install`
|
|
186
|
+
|
|
187
|
+
Install remote packs (npm packages or git repos) into the local pack cache.
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
agentpacks install [options]
|
|
191
|
+
|
|
192
|
+
Options:
|
|
193
|
+
--update Re-resolve all refs, ignoring the lockfile
|
|
194
|
+
--frozen Fail if the lockfile is missing or incomplete (useful in CI)
|
|
195
|
+
-v, --verbose
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
```bash
|
|
199
|
+
# Install all remote packs listed in agentpacks.jsonc
|
|
200
|
+
agentpacks install
|
|
201
|
+
|
|
202
|
+
# Update all remote packs to latest
|
|
203
|
+
agentpacks install --update
|
|
204
|
+
|
|
205
|
+
# CI: fail fast if lockfile is out of date
|
|
206
|
+
agentpacks install --frozen
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
---
|
|
210
|
+
|
|
211
|
+
### `agentpacks import`
|
|
212
|
+
|
|
213
|
+
Import from an existing tool configuration into a new pack.
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
agentpacks import --from <source> [options]
|
|
217
|
+
|
|
218
|
+
Sources: rulesync | cursor | claudecode | opencode
|
|
219
|
+
|
|
220
|
+
Options:
|
|
221
|
+
--from <source> Source format to import from (required)
|
|
222
|
+
-o, --output <dir> Output directory for the generated pack
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
```bash
|
|
226
|
+
# Import from rulesync (.rulesync/ + rulesync.jsonc)
|
|
227
|
+
agentpacks import --from rulesync
|
|
228
|
+
|
|
229
|
+
# Import from existing Cursor rules
|
|
230
|
+
agentpacks import --from cursor --output ./packs/from-cursor
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
### `agentpacks export`
|
|
236
|
+
|
|
237
|
+
Export a pack to a target-native format (e.g. a Cursor plugin).
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
agentpacks export --format <format> [options]
|
|
241
|
+
|
|
242
|
+
Formats: cursor-plugin
|
|
243
|
+
|
|
244
|
+
Options:
|
|
245
|
+
--format <format> Export format (required)
|
|
246
|
+
-o, --output <dir> Output directory
|
|
247
|
+
--pack <name> Export a specific pack only
|
|
248
|
+
-v, --verbose
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
# Export all packs as a single Cursor plugin
|
|
253
|
+
agentpacks export --format cursor-plugin --output ./cursor-plugin-dist
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
---
|
|
257
|
+
|
|
258
|
+
### `agentpacks pack create <name>`
|
|
259
|
+
|
|
260
|
+
Scaffold a new pack with the correct directory structure.
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
agentpacks pack create my-pack
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
Creates:
|
|
267
|
+
|
|
268
|
+
```
|
|
269
|
+
packs/my-pack/
|
|
270
|
+
├── pack.json
|
|
271
|
+
└── rules/
|
|
272
|
+
└── overview.md
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
---
|
|
276
|
+
|
|
277
|
+
### `agentpacks pack list`
|
|
278
|
+
|
|
279
|
+
List all configured packs and their enabled/disabled status.
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
agentpacks pack list
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
### `agentpacks pack validate`
|
|
288
|
+
|
|
289
|
+
Validate pack manifests and feature files for schema errors.
|
|
290
|
+
|
|
291
|
+
```bash
|
|
292
|
+
agentpacks pack validate
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
### `agentpacks pack enable <name>` / `agentpacks pack disable <name>`
|
|
298
|
+
|
|
299
|
+
Enable or disable a pack without removing it from `agentpacks.jsonc`.
|
|
300
|
+
|
|
301
|
+
```bash
|
|
302
|
+
agentpacks pack disable my-pack # adds to "disabled" array
|
|
303
|
+
agentpacks pack enable my-pack # removes from "disabled" array
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
## Configuration
|
|
309
|
+
|
|
310
|
+
### Workspace config — `agentpacks.jsonc`
|
|
311
|
+
|
|
312
|
+
Created at your project root by `agentpacks init`.
|
|
313
|
+
|
|
314
|
+
```jsonc
|
|
315
|
+
{
|
|
316
|
+
"$schema": "https://unpkg.com/agentpacks/schema.json",
|
|
317
|
+
|
|
318
|
+
// Packs to load — local paths, npm packages, or git repos
|
|
319
|
+
"packs": [
|
|
320
|
+
"./packs/default",
|
|
321
|
+
"agentpacks-typescript-rules", // npm package
|
|
322
|
+
"github:myorg/agent-packs#main/python", // git ref
|
|
323
|
+
],
|
|
324
|
+
|
|
325
|
+
// Temporarily disable a pack without removing it
|
|
326
|
+
"disabled": [],
|
|
327
|
+
|
|
328
|
+
// Which AI tools to generate configs for (* = all 20)
|
|
329
|
+
"targets": [
|
|
330
|
+
"opencode",
|
|
331
|
+
"cursor",
|
|
332
|
+
"claudecode",
|
|
333
|
+
"geminicli",
|
|
334
|
+
"codexcli",
|
|
335
|
+
"copilot",
|
|
336
|
+
],
|
|
337
|
+
|
|
338
|
+
// Which feature types to generate (* = all 8)
|
|
339
|
+
"features": ["*"],
|
|
340
|
+
|
|
341
|
+
// Repository mode: "repo" | "monorepo" | "metarepo"
|
|
342
|
+
"mode": "repo",
|
|
343
|
+
|
|
344
|
+
// Base directories to generate into (monorepo mode)
|
|
345
|
+
"baseDirs": ["."],
|
|
346
|
+
|
|
347
|
+
// Generate user-global configs (XDG-aware, applies to all projects)
|
|
348
|
+
"global": false,
|
|
349
|
+
|
|
350
|
+
// Delete existing generated files before regenerating
|
|
351
|
+
"delete": true,
|
|
352
|
+
}
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
### Pack manifest — `pack.json`
|
|
356
|
+
|
|
357
|
+
Lives at the root of each pack directory.
|
|
358
|
+
|
|
359
|
+
```json
|
|
360
|
+
{
|
|
361
|
+
"name": "my-pack",
|
|
362
|
+
"version": "1.0.0",
|
|
363
|
+
"description": "My custom agent rules and commands",
|
|
364
|
+
"author": "Your Name",
|
|
365
|
+
"tags": ["typescript", "testing"],
|
|
366
|
+
"dependencies": ["base-pack"],
|
|
367
|
+
"conflicts": [],
|
|
368
|
+
"targets": ["*"],
|
|
369
|
+
"features": ["*"]
|
|
370
|
+
}
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
---
|
|
374
|
+
|
|
375
|
+
## Authoring a Pack
|
|
376
|
+
|
|
377
|
+
A pack is a directory with a `pack.json` and any combination of feature subdirectories:
|
|
378
|
+
|
|
379
|
+
```
|
|
380
|
+
my-pack/
|
|
381
|
+
├── pack.json
|
|
382
|
+
├── rules/
|
|
383
|
+
│ ├── overview.md # root: true → included in AGENTS.md / CLAUDE.md
|
|
384
|
+
│ └── security.md # root: false → detail rule
|
|
385
|
+
├── commands/
|
|
386
|
+
│ └── review.md
|
|
387
|
+
├── agents/
|
|
388
|
+
│ └── architect.md
|
|
389
|
+
├── skills/
|
|
390
|
+
│ └── migrate/
|
|
391
|
+
│ └── SKILL.md
|
|
392
|
+
├── hooks.json
|
|
393
|
+
├── mcp.json
|
|
394
|
+
└── ignore
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
### Rule frontmatter
|
|
398
|
+
|
|
399
|
+
```markdown
|
|
400
|
+
---
|
|
401
|
+
root: true # true = root context (AGENTS.md, CLAUDE.md); false = detail rule
|
|
402
|
+
targets: ['*'] # which tools this rule applies to
|
|
403
|
+
description: 'Overview' # shown in Cursor rules UI
|
|
404
|
+
globs: ['src/**/*.ts'] # (optional) file-pattern-scoped rule
|
|
405
|
+
---
|
|
406
|
+
|
|
407
|
+
Your rule content here.
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
### Command frontmatter
|
|
411
|
+
|
|
412
|
+
```markdown
|
|
413
|
+
---
|
|
414
|
+
name: review # command name (becomes /review)
|
|
415
|
+
targets: ['*']
|
|
416
|
+
description: 'Run a code review'
|
|
417
|
+
---
|
|
418
|
+
|
|
419
|
+
Review the selected code for correctness, style, and potential bugs.
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
### MCP config — `mcp.json`
|
|
423
|
+
|
|
424
|
+
```json
|
|
425
|
+
{
|
|
426
|
+
"mcpServers": {
|
|
427
|
+
"my-server": {
|
|
428
|
+
"command": "npx",
|
|
429
|
+
"args": ["-y", "my-mcp-server"],
|
|
430
|
+
"env": { "API_KEY": "$MY_API_KEY" }
|
|
431
|
+
},
|
|
432
|
+
"remote-server": {
|
|
433
|
+
"url": "https://mcp.example.com/sse",
|
|
434
|
+
"headers": { "Authorization": "Bearer $TOKEN" }
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
```
|
|
439
|
+
|
|
440
|
+
### Hooks — `hooks.json`
|
|
441
|
+
|
|
442
|
+
```json
|
|
443
|
+
{
|
|
444
|
+
"hooks": {
|
|
445
|
+
"sessionStart": [{ "command": "echo 'Session started'" }],
|
|
446
|
+
"postToolUse": [
|
|
447
|
+
{
|
|
448
|
+
"command": "bun run lint",
|
|
449
|
+
"matcher": "write_file|edit_file"
|
|
450
|
+
}
|
|
451
|
+
]
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
```
|
|
455
|
+
|
|
456
|
+
Supported hook events: `sessionStart`, `preToolUse`, `postToolUuse`, `afterFileEdit`, `afterShellExecution`, `stop`
|
|
457
|
+
|
|
458
|
+
---
|
|
459
|
+
|
|
460
|
+
## Monorepo Support
|
|
461
|
+
|
|
462
|
+
For monorepo setups, set `mode: "monorepo"` and list your sub-packages in `baseDirs`:
|
|
463
|
+
|
|
464
|
+
```jsonc
|
|
465
|
+
{
|
|
466
|
+
"mode": "monorepo",
|
|
467
|
+
"baseDirs": ["packages/api", "packages/web", "packages/shared"],
|
|
468
|
+
}
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
`agentpacks generate` will write tool configs into each listed base directory.
|
|
472
|
+
|
|
473
|
+
For metarepo setups (a repo of repos), set `mode: "metarepo"` and agentpacks will discover sub-repos that contain their own `agentpacks.jsonc` and process them.
|
|
474
|
+
|
|
475
|
+
---
|
|
476
|
+
|
|
477
|
+
## Pack Distribution
|
|
478
|
+
|
|
479
|
+
Packs can be shared as:
|
|
480
|
+
|
|
481
|
+
### npm packages
|
|
482
|
+
|
|
483
|
+
```bash
|
|
484
|
+
npm install my-agent-pack
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
```jsonc
|
|
488
|
+
{ "packs": ["my-agent-pack"] }
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
### Git repos
|
|
492
|
+
|
|
493
|
+
```jsonc
|
|
494
|
+
{
|
|
495
|
+
"packs": [
|
|
496
|
+
"github:myorg/agent-packs", // defaults to main branch
|
|
497
|
+
"github:myorg/agent-packs#v2.0.0", // specific tag
|
|
498
|
+
"github:myorg/agent-packs#main/python", // subdirectory
|
|
499
|
+
],
|
|
500
|
+
}
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
### Local directories (monorepo / private)
|
|
504
|
+
|
|
505
|
+
```jsonc
|
|
506
|
+
{ "packs": ["./packs/default", "../shared/agent-packs"] }
|
|
507
|
+
```
|
|
508
|
+
|
|
509
|
+
---
|
|
510
|
+
|
|
511
|
+
## Global Mode
|
|
512
|
+
|
|
513
|
+
Generate user-scope configs that apply to all projects on your machine (useful for personal preferences):
|
|
514
|
+
|
|
515
|
+
```bash
|
|
516
|
+
agentpacks generate --global
|
|
517
|
+
```
|
|
518
|
+
|
|
519
|
+
agentpacks uses XDG-aware paths:
|
|
520
|
+
|
|
521
|
+
- **macOS/Linux**: `~/.config/agentpacks/`
|
|
522
|
+
- **Windows**: `%APPDATA%\agentpacks\`
|
|
523
|
+
|
|
524
|
+
---
|
|
525
|
+
|
|
526
|
+
## About
|
|
527
|
+
|
|
528
|
+
### ContractSpec
|
|
529
|
+
|
|
530
|
+
[ContractSpec](https://contractspec.io) is the deterministic, spec-first compiler that keeps AI-written software coherent, safe, and regenerable. As AI coding tools generate more and more code, ContractSpec provides the governance layer: canonical contracts, multi-surface consistency, and safe regeneration without lock-in.
|
|
531
|
+
|
|
532
|
+
> "You keep your app. We stabilize it, one module at a time. You own the code. It's standard tech. We're the compiler, not the prison."
|
|
533
|
+
|
|
534
|
+
### LSSM
|
|
535
|
+
|
|
536
|
+
[LSSM](https://github.com/lssm-tech) is the team behind ContractSpec. We build tools for AI-native software development — infrastructure that makes AI-generated code safe, maintainable, and production-ready.
|
|
537
|
+
|
|
538
|
+
agentpacks is built by LSSM as an open-source part of the ContractSpec ecosystem, published independently on npm so any project can adopt it without adopting the full ContractSpec platform.
|
|
539
|
+
|
|
540
|
+
---
|
|
541
|
+
|
|
542
|
+
## Contributing
|
|
543
|
+
|
|
544
|
+
We welcome contributions of all kinds — bug reports, feature requests, documentation improvements, and code.
|
|
545
|
+
|
|
546
|
+
See [CONTRIBUTING.md](./CONTRIBUTING.md) for setup instructions, code style guidelines, and the pull request process.
|
|
547
|
+
|
|
548
|
+
**Quick links:**
|
|
549
|
+
|
|
550
|
+
- [Report a bug](https://github.com/lssm-tech/contractspec/issues/new?template=bug_report.md&labels=agentpacks)
|
|
551
|
+
- [Request a feature](https://github.com/lssm-tech/contractspec/issues/new?template=feature_request.md&labels=agentpacks)
|
|
552
|
+
- [Ask a question](https://github.com/lssm-tech/contractspec/discussions)
|
|
553
|
+
- [View the roadmap](https://github.com/lssm-tech/contractspec/issues?q=is%3Aissue+label%3Aagentpacks+label%3Aroadmap)
|
|
554
|
+
|
|
555
|
+
---
|
|
556
|
+
|
|
557
|
+
## License
|
|
558
|
+
|
|
559
|
+
MIT — see [LICENSE](../../LICENSE) for details.
|
|
560
|
+
|
|
561
|
+
Built with love by [LSSM](https://github.com/lssm-tech) — contributors of [ContractSpec](https://contractspec.io).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentpacks",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Composable AI agent configuration manager. Pack-based rules, commands, skills, hooks, and MCP sync across OpenCode, Cursor, Claude Code, Codex, Gemini, Copilot, and more.",
|
|
6
6
|
"keywords": [
|
|
@@ -420,8 +420,8 @@
|
|
|
420
420
|
"glob": "^13.0.3"
|
|
421
421
|
},
|
|
422
422
|
"devDependencies": {
|
|
423
|
-
"@contractspec/tool.typescript": "2.
|
|
424
|
-
"@contractspec/tool.bun": "2.
|
|
423
|
+
"@contractspec/tool.typescript": "2.4.0",
|
|
424
|
+
"@contractspec/tool.bun": "2.4.0",
|
|
425
425
|
"@types/fs-extra": "^11.0.4",
|
|
426
426
|
"typescript": "^5.9.3"
|
|
427
427
|
},
|