allagents 1.0.11 → 1.0.12
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 -21
- package/README.md +471 -471
- package/dist/index.js +12 -8
- package/dist/templates/default/.allagents/workspace.yaml +15 -15
- package/package.json +1 -1
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 EntityProcess
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 EntityProcess
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,471 +1,471 @@
|
|
|
1
|
-
# AllAgents
|
|
2
|
-
|
|
3
|
-
CLI tool for managing multi-repo AI agent workspaces with plugin synchronization across multiple AI clients.
|
|
4
|
-
|
|
5
|
-
## Why AllAgents?
|
|
6
|
-
|
|
7
|
-
**The Problem:** AI coding assistants (Claude, Copilot, Cursor, Codex, etc.) each have their own configuration formats and directory structures. If you want to share skills across multiple projects or use multiple AI clients, you need to manually copy and transform files.
|
|
8
|
-
|
|
9
|
-
**AllAgents solves this by:**
|
|
10
|
-
|
|
11
|
-
| Feature | Claude Code Plugins | AllAgents |
|
|
12
|
-
|---------|--------------------|-----------|
|
|
13
|
-
| Scope | Single project | Multi-repo workspace |
|
|
14
|
-
| Client support | Claude only | 23 AI clients |
|
|
15
|
-
| File location | Runtime lookup from cache | Copied to workspace (git-versioned) |
|
|
16
|
-
| Project structure | AI config mixed with code | Separate workspace repo |
|
|
17
|
-
|
|
18
|
-
### Key Differentiators
|
|
19
|
-
|
|
20
|
-
1. **Multi-repo workspaces** - One workspace references multiple project repositories. Your AI tooling lives separately from your application code.
|
|
21
|
-
|
|
22
|
-
2. **Multi-client distribution** - Write plugins once, sync to all clients. AllAgents transforms and copies files to each client's expected paths.
|
|
23
|
-
|
|
24
|
-
3. **Workspace is a git repo** - Unlike Claude's runtime plugin system, AllAgents copies files into your workspace. Team members get the same AI tooling via git.
|
|
25
|
-
|
|
26
|
-
4. **Clean separation** - Project repos stay clean. AI configuration lives in the workspace.
|
|
27
|
-
|
|
28
|
-
```
|
|
29
|
-
┌─────────────────┐
|
|
30
|
-
│ Marketplace │ (plugin source - GitHub repos)
|
|
31
|
-
└────────┬────────┘
|
|
32
|
-
│
|
|
33
|
-
▼
|
|
34
|
-
┌─────────────────┐
|
|
35
|
-
│ AllAgents │ (sync & transform)
|
|
36
|
-
│ workspace sync │
|
|
37
|
-
└────────┬────────┘
|
|
38
|
-
│
|
|
39
|
-
┌────┴────┬────────┬─────────┐
|
|
40
|
-
▼ ▼ ▼ ▼
|
|
41
|
-
.claude/ .agents/ .cursor/ .factory/ (client paths)
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
## Installation
|
|
45
|
-
|
|
46
|
-
```bash
|
|
47
|
-
# Using npm
|
|
48
|
-
npm install -g allagents
|
|
49
|
-
|
|
50
|
-
# Or run directly without installing
|
|
51
|
-
npx allagents
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
## Quick Start
|
|
55
|
-
|
|
56
|
-
```bash
|
|
57
|
-
# Create a new workspace
|
|
58
|
-
allagents workspace init my-workspace
|
|
59
|
-
cd my-workspace
|
|
60
|
-
|
|
61
|
-
# Or initialize from a remote GitHub template
|
|
62
|
-
allagents workspace init my-workspace --from owner/repo/path/to/template
|
|
63
|
-
|
|
64
|
-
# Add a marketplace (or let auto-registration handle it)
|
|
65
|
-
allagents plugin marketplace add anthropics/claude-plugins-official
|
|
66
|
-
|
|
67
|
-
# Install plugins to workspace
|
|
68
|
-
allagents plugin install code-review@claude-plugins-official
|
|
69
|
-
allagents plugin install my-plugin@someuser/their-repo
|
|
70
|
-
|
|
71
|
-
# Sync plugins to workspace
|
|
72
|
-
allagents workspace sync
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
### Initialize from Remote Template
|
|
76
|
-
|
|
77
|
-
Start a new workspace instantly from any GitHub repository containing a `workspace.yaml`:
|
|
78
|
-
|
|
79
|
-
```bash
|
|
80
|
-
# From GitHub URL
|
|
81
|
-
allagents workspace init ~/my-project --from https://github.com/myorg/templates/tree/main/nodejs
|
|
82
|
-
|
|
83
|
-
# From shorthand
|
|
84
|
-
allagents workspace init ~/my-project --from myorg/templates/nodejs
|
|
85
|
-
|
|
86
|
-
# From repo root (looks for .allagents/workspace.yaml or workspace.yaml)
|
|
87
|
-
allagents workspace init ~/my-project --from myorg/templates
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
This fetches the workspace configuration directly from GitHub - no cloning required.
|
|
91
|
-
|
|
92
|
-
## Commands
|
|
93
|
-
|
|
94
|
-
### Workspace Commands
|
|
95
|
-
|
|
96
|
-
```bash
|
|
97
|
-
# Initialize a new workspace from template
|
|
98
|
-
allagents workspace init <path>
|
|
99
|
-
allagents workspace init <path> --from <source> # From local path or GitHub URL
|
|
100
|
-
|
|
101
|
-
# Sync all plugins to workspace (non-destructive)
|
|
102
|
-
allagents workspace sync [options]
|
|
103
|
-
--force Force re-fetch of remote plugins even if cached
|
|
104
|
-
--dry-run Preview changes without applying
|
|
105
|
-
|
|
106
|
-
# Non-destructive sync: your files are safe
|
|
107
|
-
# - First sync overlays without deleting existing files
|
|
108
|
-
# - Subsequent syncs only remove files AllAgents previously synced
|
|
109
|
-
# - Tracked in .allagents/sync-state.json
|
|
110
|
-
|
|
111
|
-
# Show status of workspace and plugins
|
|
112
|
-
allagents workspace status
|
|
113
|
-
|
|
114
|
-
# Add a repository to the workspace (auto-detects git remote source)
|
|
115
|
-
allagents workspace repo add <path>
|
|
116
|
-
allagents workspace repo add <path> --description "My project"
|
|
117
|
-
|
|
118
|
-
# Remove a repository from the workspace
|
|
119
|
-
allagents workspace repo remove <path>
|
|
120
|
-
|
|
121
|
-
# List all repositories in the workspace
|
|
122
|
-
allagents workspace repo list
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
### VSCode Workspace Generation
|
|
126
|
-
|
|
127
|
-
When `vscode` is included in the `clients` list, `workspace sync` automatically generates a `.code-workspace` file. Repository paths are resolved to absolute paths. Plugin folders are included with prompt/instruction file location settings for Copilot.
|
|
128
|
-
|
|
129
|
-
```yaml
|
|
130
|
-
# workspace.yaml
|
|
131
|
-
clients:
|
|
132
|
-
- vscode
|
|
133
|
-
- claude
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
#### Output filename
|
|
137
|
-
|
|
138
|
-
The output filename defaults to `<dirname>.code-workspace`. Override with `vscode.output`:
|
|
139
|
-
|
|
140
|
-
```yaml
|
|
141
|
-
# workspace.yaml
|
|
142
|
-
vscode:
|
|
143
|
-
output: my-project
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
#### Template file
|
|
147
|
-
|
|
148
|
-
Create `.allagents/template.code-workspace` for VSCode-specific settings, launch configurations, extensions, and extra folders. The template supports `{path:../...}` placeholders that resolve to absolute paths using repository paths from workspace.yaml.
|
|
149
|
-
|
|
150
|
-
```json
|
|
151
|
-
{
|
|
152
|
-
"folders": [
|
|
153
|
-
{ "path": "{path:../Shared}", "name": "SharedLib" }
|
|
154
|
-
],
|
|
155
|
-
"settings": {
|
|
156
|
-
"cSpell.words": ["myterm"],
|
|
157
|
-
"chat.agent.maxRequests": 999,
|
|
158
|
-
"chat.useAgentSkills": true
|
|
159
|
-
},
|
|
160
|
-
"launch": {
|
|
161
|
-
"configurations": [
|
|
162
|
-
{
|
|
163
|
-
"type": "node",
|
|
164
|
-
"name": "dev",
|
|
165
|
-
"cwd": "{path:../myapp}/src",
|
|
166
|
-
"runtimeExecutable": "npm",
|
|
167
|
-
"runtimeArgs": ["run", "dev"]
|
|
168
|
-
}
|
|
169
|
-
]
|
|
170
|
-
},
|
|
171
|
-
"extensions": {
|
|
172
|
-
"recommendations": ["dbaeumer.vscode-eslint"]
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
The generated workspace includes:
|
|
178
|
-
- Repository folders from workspace.yaml (resolved to absolute paths, listed first)
|
|
179
|
-
- Template folders (deduplicated against repository folders)
|
|
180
|
-
- All other template content (settings, launch, extensions) with `{repo:..}` placeholders resolved
|
|
181
|
-
|
|
182
|
-
### Plugin Marketplace Commands
|
|
183
|
-
|
|
184
|
-
```bash
|
|
185
|
-
# List registered marketplaces
|
|
186
|
-
allagents plugin marketplace list
|
|
187
|
-
|
|
188
|
-
# Add a marketplace from GitHub or local path
|
|
189
|
-
allagents plugin marketplace add <source>
|
|
190
|
-
# Examples:
|
|
191
|
-
# allagents plugin marketplace add anthropics/claude-plugins-official
|
|
192
|
-
# allagents plugin marketplace add /path/to/local/marketplace
|
|
193
|
-
|
|
194
|
-
# Remove a marketplace
|
|
195
|
-
allagents plugin marketplace remove <name>
|
|
196
|
-
|
|
197
|
-
# Update marketplace(s) from remote
|
|
198
|
-
allagents plugin marketplace update [name]
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
### Plugin Commands
|
|
202
|
-
|
|
203
|
-
```bash
|
|
204
|
-
# Install a plugin to .allagents/workspace.yaml (auto-registers marketplace if needed)
|
|
205
|
-
allagents plugin install <plugin@marketplace>
|
|
206
|
-
|
|
207
|
-
# Remove a plugin from .allagents/workspace.yaml
|
|
208
|
-
allagents plugin uninstall <plugin>
|
|
209
|
-
|
|
210
|
-
# List available plugins from marketplaces
|
|
211
|
-
allagents plugin list [marketplace]
|
|
212
|
-
|
|
213
|
-
# Validate a plugin or marketplace structure
|
|
214
|
-
allagents plugin validate <path>
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
### Skills Commands
|
|
218
|
-
|
|
219
|
-
```bash
|
|
220
|
-
# Add a specific skill from a GitHub repo
|
|
221
|
-
allagents skills add reddit --from ReScienceLab/opc-skills
|
|
222
|
-
|
|
223
|
-
# Add a skill via GitHub URL (skill name extracted from path)
|
|
224
|
-
allagents skills add https://github.com/owner/repo/tree/main/skills/my-skill
|
|
225
|
-
|
|
226
|
-
# List all skills and their enabled/disabled status
|
|
227
|
-
allagents skills list
|
|
228
|
-
|
|
229
|
-
# Disable a skill without uninstalling its plugin
|
|
230
|
-
allagents skills remove brainstorming
|
|
231
|
-
|
|
232
|
-
# Re-enable a previously disabled skill
|
|
233
|
-
allagents skills add brainstorming
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
### GitHub Overrides
|
|
237
|
-
|
|
238
|
-
For **Copilot** and **VSCode**, AllAgents copies GitHub-specific files from a plugin's `.github/` folder into the workspace's `.github/` directory:
|
|
239
|
-
|
|
240
|
-
- `.github/prompts/` — prompt files
|
|
241
|
-
- `.github/agents/` — agent overrides
|
|
242
|
-
- `.github/hooks/` — hook overrides
|
|
243
|
-
- `copilot-instructions.md` — root Copilot instructions
|
|
244
|
-
|
|
245
|
-
Root `agents/` and `hooks/` directories in a plugin also map to `.github/agents/` and `.github/hooks/` for Copilot/VSCode.
|
|
246
|
-
|
|
247
|
-
## .allagents/workspace.yaml
|
|
248
|
-
|
|
249
|
-
The workspace configuration file lives in `.allagents/workspace.yaml` and defines repositories, plugins, workspace files, and target clients:
|
|
250
|
-
|
|
251
|
-
```yaml
|
|
252
|
-
# Workspace file sync (optional) - copy files from a shared source
|
|
253
|
-
workspace:
|
|
254
|
-
source: ../shared-config # Default base for relative paths
|
|
255
|
-
files:
|
|
256
|
-
- AGENTS.md # String shorthand: same source and dest
|
|
257
|
-
- source: docs/guide.md # Object form: explicit source
|
|
258
|
-
dest: GUIDE.md # Optional dest (defaults to basename)
|
|
259
|
-
- dest: CUSTOM.md # File-level source override
|
|
260
|
-
source: ../other-config/CUSTOM.md
|
|
261
|
-
- dest: AGENTS.md # GitHub source
|
|
262
|
-
source: owner/repo/path/AGENTS.md
|
|
263
|
-
|
|
264
|
-
repositories:
|
|
265
|
-
- path: ../my-project
|
|
266
|
-
source: github
|
|
267
|
-
repo: myorg/my-project
|
|
268
|
-
description: Main project repository
|
|
269
|
-
- path: ../my-api
|
|
270
|
-
source: github
|
|
271
|
-
repo: myorg/my-api
|
|
272
|
-
description: API service
|
|
273
|
-
|
|
274
|
-
plugins:
|
|
275
|
-
- code-review@claude-plugins-official # plugin@marketplace format
|
|
276
|
-
- context7@claude-plugins-official
|
|
277
|
-
- my-plugin@someuser/their-repo # fully qualified for custom marketplaces
|
|
278
|
-
|
|
279
|
-
clients:
|
|
280
|
-
- claude
|
|
281
|
-
- copilot
|
|
282
|
-
- cursor
|
|
283
|
-
```
|
|
284
|
-
|
|
285
|
-
### Workspace File Sync
|
|
286
|
-
|
|
287
|
-
The `workspace:` section enables syncing files from external sources to your workspace root. This is useful for sharing agent configurations (AGENTS.md, CLAUDE.md) across multiple projects.
|
|
288
|
-
|
|
289
|
-
**Key behaviors:**
|
|
290
|
-
- **Source of truth is remote** - Local copies are overwritten on every sync
|
|
291
|
-
- **Deleted files are restored** - If you delete AGENTS.md locally, sync restores it
|
|
292
|
-
- **WORKSPACE-RULES injection** - AGENTS.md and CLAUDE.md automatically get workspace discovery rules injected
|
|
293
|
-
|
|
294
|
-
**Source resolution:**
|
|
295
|
-
| Format | Example | Resolves to |
|
|
296
|
-
|--------|---------|-------------|
|
|
297
|
-
| String shorthand | `AGENTS.md` | `{workspace.source}/AGENTS.md` |
|
|
298
|
-
| Relative source | `source: docs/guide.md` | `{workspace.source}/docs/guide.md` |
|
|
299
|
-
| File-level override | `source: ../other/file.md` | `../other/file.md` (relative to workspace) |
|
|
300
|
-
| GitHub source | `source: owner/repo/path/file.md` | Fetched from GitHub cache |
|
|
301
|
-
|
|
302
|
-
**GitHub sources** are fetched fresh on every sync (always pulls latest).
|
|
303
|
-
|
|
304
|
-
### Plugin Spec Format
|
|
305
|
-
|
|
306
|
-
Plugins use the `plugin@marketplace` format:
|
|
307
|
-
|
|
308
|
-
| Format | Example | Description |
|
|
309
|
-
|--------|---------|-------------|
|
|
310
|
-
| Well-known | `code-review@claude-plugins-official` | Uses known marketplace mapping |
|
|
311
|
-
| owner/repo | `my-plugin@owner/repo` | Auto-registers GitHub repo, looks in `plugins/` |
|
|
312
|
-
| owner/repo/subpath | `my-plugin@owner/repo/extensions` | Looks in custom subdirectory |
|
|
313
|
-
|
|
314
|
-
The subpath format is useful when plugins aren't in the standard `plugins/` directory:
|
|
315
|
-
|
|
316
|
-
```yaml
|
|
317
|
-
plugins:
|
|
318
|
-
- feature-dev@anthropics/claude-plugins-official/plugins # explicit plugins/ dir
|
|
319
|
-
- my-addon@someuser/repo/addons # custom addons/ dir
|
|
320
|
-
- tool@org/monorepo/packages/tools # nested path
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
### Well-Known Marketplaces
|
|
324
|
-
|
|
325
|
-
These marketplace names auto-resolve to their GitHub repos:
|
|
326
|
-
|
|
327
|
-
- `claude-plugins-official` → `anthropics/claude-plugins-official`
|
|
328
|
-
|
|
329
|
-
### Supported Clients
|
|
330
|
-
|
|
331
|
-
AllAgents supports 23 AI coding assistants:
|
|
332
|
-
|
|
333
|
-
#### Universal Clients (share `.agents/skills/`)
|
|
334
|
-
|
|
335
|
-
| Client | Skills | Agent File | Hooks | Commands |
|
|
336
|
-
|--------|--------|------------|-------|----------|
|
|
337
|
-
| copilot | `.github/skills/` | `AGENTS.md` | `.github/hooks/` | No |
|
|
338
|
-
| codex | `.agents/skills/` | `AGENTS.md` | No | No |
|
|
339
|
-
| opencode | `.agents/skills/` | `AGENTS.md` | No | `.opencode/commands/` |
|
|
340
|
-
| gemini | `.agents/skills/` | `GEMINI.md` | No | No |
|
|
341
|
-
| ampcode | `.agents/skills/` | `AGENTS.md` | No | No |
|
|
342
|
-
| vscode | `.agents/skills/` | `AGENTS.md` | No | No |
|
|
343
|
-
| replit | `.agents/skills/` | `AGENTS.md` | No | No |
|
|
344
|
-
| kimi | `.agents/skills/` | `AGENTS.md` | No | No |
|
|
345
|
-
|
|
346
|
-
#### Provider-Specific Clients
|
|
347
|
-
|
|
348
|
-
| Client | Skills | Agent File | Hooks | Commands |
|
|
349
|
-
|--------|--------|------------|-------|----------|
|
|
350
|
-
| claude | `.claude/skills/` | `CLAUDE.md` | `.claude/hooks/` | `.claude/commands/` |
|
|
351
|
-
| cursor | `.cursor/skills/` | `AGENTS.md` | No | No |
|
|
352
|
-
| factory | `.factory/skills/` | `AGENTS.md` | `.factory/hooks/` | No |
|
|
353
|
-
| openclaw | `skills/` | `AGENTS.md` | No | No |
|
|
354
|
-
| windsurf | `.windsurf/skills/` | `AGENTS.md` | No | No |
|
|
355
|
-
| cline | `.cline/skills/` | `AGENTS.md` | No | No |
|
|
356
|
-
| continue | `.continue/skills/` | `AGENTS.md` | No | No |
|
|
357
|
-
| roo | `.roo/skills/` | `AGENTS.md` | No | No |
|
|
358
|
-
| kilo | `.kilocode/skills/` | `AGENTS.md` | No | No |
|
|
359
|
-
| trae | `.trae/skills/` | `AGENTS.md` | No | No |
|
|
360
|
-
| augment | `.augment/skills/` | `AGENTS.md` | No | No |
|
|
361
|
-
| zencoder | `.zencoder/skills/` | `AGENTS.md` | No | No |
|
|
362
|
-
| junie | `.junie/skills/` | `AGENTS.md` | No | No |
|
|
363
|
-
| openhands | `.openhands/skills/` | `AGENTS.md` | No | No |
|
|
364
|
-
| kiro | `.kiro/skills/` | `AGENTS.md` | No | No |
|
|
365
|
-
|
|
366
|
-
> **Note:** Universal clients share the same `.agents/skills/` directory. See [GitHub Overrides](#github-overrides) for how Copilot and VSCode handle `.github/` content.
|
|
367
|
-
|
|
368
|
-
## Marketplace Structure
|
|
369
|
-
|
|
370
|
-
Marketplaces contain multiple plugins:
|
|
371
|
-
|
|
372
|
-
```
|
|
373
|
-
my-marketplace/
|
|
374
|
-
├── plugins/
|
|
375
|
-
│ ├── code-review/
|
|
376
|
-
│ │ └── skills/
|
|
377
|
-
│ └── debugging/
|
|
378
|
-
│ └── skills/
|
|
379
|
-
└── README.md
|
|
380
|
-
```
|
|
381
|
-
|
|
382
|
-
## Plugin Structure
|
|
383
|
-
|
|
384
|
-
Each plugin follows this structure:
|
|
385
|
-
|
|
386
|
-
```
|
|
387
|
-
my-plugin/
|
|
388
|
-
├── skills/ # Skill directories with SKILL.md (all clients)
|
|
389
|
-
│ └── debugging/
|
|
390
|
-
│ └── SKILL.md
|
|
391
|
-
├── commands/ # Command files (.md) - Claude, OpenCode
|
|
392
|
-
│ ├── build.md
|
|
393
|
-
│ └── deploy.md
|
|
394
|
-
├── .github/ # GitHub overrides (Copilot, VSCode)
|
|
395
|
-
│ └── prompts/
|
|
396
|
-
│ └── review.md
|
|
397
|
-
├── hooks/ # Hook files (Claude/Factory only)
|
|
398
|
-
│ └── pre-commit.md
|
|
399
|
-
└── AGENTS.md # Agent configuration (optional)
|
|
400
|
-
```
|
|
401
|
-
|
|
402
|
-
### Skill Validation
|
|
403
|
-
|
|
404
|
-
Skills must have a valid `SKILL.md` file with YAML frontmatter:
|
|
405
|
-
|
|
406
|
-
```yaml
|
|
407
|
-
---
|
|
408
|
-
name: my-skill # Required: lowercase, alphanumeric + hyphens, max 64 chars
|
|
409
|
-
description: Description of the skill # Required
|
|
410
|
-
allowed-tools: # Optional
|
|
411
|
-
- Read
|
|
412
|
-
- Write
|
|
413
|
-
model: claude-3-opus # Optional
|
|
414
|
-
---
|
|
415
|
-
|
|
416
|
-
# Skill Content
|
|
417
|
-
|
|
418
|
-
Skill instructions go here...
|
|
419
|
-
```
|
|
420
|
-
|
|
421
|
-
### Self Commands
|
|
422
|
-
|
|
423
|
-
```bash
|
|
424
|
-
# Update to latest version (auto-detects package manager)
|
|
425
|
-
allagents self update
|
|
426
|
-
|
|
427
|
-
# Force a specific package manager
|
|
428
|
-
allagents self update --npm
|
|
429
|
-
allagents self update --bun
|
|
430
|
-
```
|
|
431
|
-
|
|
432
|
-
When using the interactive TUI, AllAgents automatically checks for newer versions in the background and shows a notice on startup when an update is available.
|
|
433
|
-
|
|
434
|
-
## Storage Locations
|
|
435
|
-
|
|
436
|
-
```
|
|
437
|
-
~/.allagents/
|
|
438
|
-
├── marketplaces.json # Registry of marketplaces
|
|
439
|
-
├── version-check.json # Cached update check (auto-managed)
|
|
440
|
-
└── marketplaces/ # Cloned marketplace repos
|
|
441
|
-
├── claude-plugins-official/
|
|
442
|
-
└── someuser-their-repo/
|
|
443
|
-
```
|
|
444
|
-
|
|
445
|
-
## Development
|
|
446
|
-
|
|
447
|
-
```bash
|
|
448
|
-
# Install dependencies
|
|
449
|
-
bun install
|
|
450
|
-
|
|
451
|
-
# Run in development
|
|
452
|
-
bun run dev workspace init test-ws
|
|
453
|
-
|
|
454
|
-
# Run tests
|
|
455
|
-
bun run test
|
|
456
|
-
|
|
457
|
-
# Type check
|
|
458
|
-
bun run typecheck
|
|
459
|
-
|
|
460
|
-
# Build
|
|
461
|
-
bun run build
|
|
462
|
-
```
|
|
463
|
-
|
|
464
|
-
## Related Projects
|
|
465
|
-
|
|
466
|
-
- [dotagents](https://github.com/iannuttall/dotagents) - Unified AI agent configuration management
|
|
467
|
-
- [vercel-labs/skills](https://github.com/vercel-labs/skills) - Universal skills for AI coding assistants
|
|
468
|
-
|
|
469
|
-
## License
|
|
470
|
-
|
|
471
|
-
MIT
|
|
1
|
+
# AllAgents
|
|
2
|
+
|
|
3
|
+
CLI tool for managing multi-repo AI agent workspaces with plugin synchronization across multiple AI clients.
|
|
4
|
+
|
|
5
|
+
## Why AllAgents?
|
|
6
|
+
|
|
7
|
+
**The Problem:** AI coding assistants (Claude, Copilot, Cursor, Codex, etc.) each have their own configuration formats and directory structures. If you want to share skills across multiple projects or use multiple AI clients, you need to manually copy and transform files.
|
|
8
|
+
|
|
9
|
+
**AllAgents solves this by:**
|
|
10
|
+
|
|
11
|
+
| Feature | Claude Code Plugins | AllAgents |
|
|
12
|
+
|---------|--------------------|-----------|
|
|
13
|
+
| Scope | Single project | Multi-repo workspace |
|
|
14
|
+
| Client support | Claude only | 23 AI clients |
|
|
15
|
+
| File location | Runtime lookup from cache | Copied to workspace (git-versioned) |
|
|
16
|
+
| Project structure | AI config mixed with code | Separate workspace repo |
|
|
17
|
+
|
|
18
|
+
### Key Differentiators
|
|
19
|
+
|
|
20
|
+
1. **Multi-repo workspaces** - One workspace references multiple project repositories. Your AI tooling lives separately from your application code.
|
|
21
|
+
|
|
22
|
+
2. **Multi-client distribution** - Write plugins once, sync to all clients. AllAgents transforms and copies files to each client's expected paths.
|
|
23
|
+
|
|
24
|
+
3. **Workspace is a git repo** - Unlike Claude's runtime plugin system, AllAgents copies files into your workspace. Team members get the same AI tooling via git.
|
|
25
|
+
|
|
26
|
+
4. **Clean separation** - Project repos stay clean. AI configuration lives in the workspace.
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
┌─────────────────┐
|
|
30
|
+
│ Marketplace │ (plugin source - GitHub repos)
|
|
31
|
+
└────────┬────────┘
|
|
32
|
+
│
|
|
33
|
+
▼
|
|
34
|
+
┌─────────────────┐
|
|
35
|
+
│ AllAgents │ (sync & transform)
|
|
36
|
+
│ workspace sync │
|
|
37
|
+
└────────┬────────┘
|
|
38
|
+
│
|
|
39
|
+
┌────┴────┬────────┬─────────┐
|
|
40
|
+
▼ ▼ ▼ ▼
|
|
41
|
+
.claude/ .agents/ .cursor/ .factory/ (client paths)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Installation
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
# Using npm
|
|
48
|
+
npm install -g allagents
|
|
49
|
+
|
|
50
|
+
# Or run directly without installing
|
|
51
|
+
npx allagents
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Quick Start
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# Create a new workspace
|
|
58
|
+
allagents workspace init my-workspace
|
|
59
|
+
cd my-workspace
|
|
60
|
+
|
|
61
|
+
# Or initialize from a remote GitHub template
|
|
62
|
+
allagents workspace init my-workspace --from owner/repo/path/to/template
|
|
63
|
+
|
|
64
|
+
# Add a marketplace (or let auto-registration handle it)
|
|
65
|
+
allagents plugin marketplace add anthropics/claude-plugins-official
|
|
66
|
+
|
|
67
|
+
# Install plugins to workspace
|
|
68
|
+
allagents plugin install code-review@claude-plugins-official
|
|
69
|
+
allagents plugin install my-plugin@someuser/their-repo
|
|
70
|
+
|
|
71
|
+
# Sync plugins to workspace
|
|
72
|
+
allagents workspace sync
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Initialize from Remote Template
|
|
76
|
+
|
|
77
|
+
Start a new workspace instantly from any GitHub repository containing a `workspace.yaml`:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# From GitHub URL
|
|
81
|
+
allagents workspace init ~/my-project --from https://github.com/myorg/templates/tree/main/nodejs
|
|
82
|
+
|
|
83
|
+
# From shorthand
|
|
84
|
+
allagents workspace init ~/my-project --from myorg/templates/nodejs
|
|
85
|
+
|
|
86
|
+
# From repo root (looks for .allagents/workspace.yaml or workspace.yaml)
|
|
87
|
+
allagents workspace init ~/my-project --from myorg/templates
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
This fetches the workspace configuration directly from GitHub - no cloning required.
|
|
91
|
+
|
|
92
|
+
## Commands
|
|
93
|
+
|
|
94
|
+
### Workspace Commands
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
# Initialize a new workspace from template
|
|
98
|
+
allagents workspace init <path>
|
|
99
|
+
allagents workspace init <path> --from <source> # From local path or GitHub URL
|
|
100
|
+
|
|
101
|
+
# Sync all plugins to workspace (non-destructive)
|
|
102
|
+
allagents workspace sync [options]
|
|
103
|
+
--force Force re-fetch of remote plugins even if cached
|
|
104
|
+
--dry-run Preview changes without applying
|
|
105
|
+
|
|
106
|
+
# Non-destructive sync: your files are safe
|
|
107
|
+
# - First sync overlays without deleting existing files
|
|
108
|
+
# - Subsequent syncs only remove files AllAgents previously synced
|
|
109
|
+
# - Tracked in .allagents/sync-state.json
|
|
110
|
+
|
|
111
|
+
# Show status of workspace and plugins
|
|
112
|
+
allagents workspace status
|
|
113
|
+
|
|
114
|
+
# Add a repository to the workspace (auto-detects git remote source)
|
|
115
|
+
allagents workspace repo add <path>
|
|
116
|
+
allagents workspace repo add <path> --description "My project"
|
|
117
|
+
|
|
118
|
+
# Remove a repository from the workspace
|
|
119
|
+
allagents workspace repo remove <path>
|
|
120
|
+
|
|
121
|
+
# List all repositories in the workspace
|
|
122
|
+
allagents workspace repo list
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### VSCode Workspace Generation
|
|
126
|
+
|
|
127
|
+
When `vscode` is included in the `clients` list, `workspace sync` automatically generates a `.code-workspace` file. Repository paths are resolved to absolute paths. Plugin folders are included with prompt/instruction file location settings for Copilot.
|
|
128
|
+
|
|
129
|
+
```yaml
|
|
130
|
+
# workspace.yaml
|
|
131
|
+
clients:
|
|
132
|
+
- vscode
|
|
133
|
+
- claude
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
#### Output filename
|
|
137
|
+
|
|
138
|
+
The output filename defaults to `<dirname>.code-workspace`. Override with `vscode.output`:
|
|
139
|
+
|
|
140
|
+
```yaml
|
|
141
|
+
# workspace.yaml
|
|
142
|
+
vscode:
|
|
143
|
+
output: my-project
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
#### Template file
|
|
147
|
+
|
|
148
|
+
Create `.allagents/template.code-workspace` for VSCode-specific settings, launch configurations, extensions, and extra folders. The template supports `{path:../...}` placeholders that resolve to absolute paths using repository paths from workspace.yaml.
|
|
149
|
+
|
|
150
|
+
```json
|
|
151
|
+
{
|
|
152
|
+
"folders": [
|
|
153
|
+
{ "path": "{path:../Shared}", "name": "SharedLib" }
|
|
154
|
+
],
|
|
155
|
+
"settings": {
|
|
156
|
+
"cSpell.words": ["myterm"],
|
|
157
|
+
"chat.agent.maxRequests": 999,
|
|
158
|
+
"chat.useAgentSkills": true
|
|
159
|
+
},
|
|
160
|
+
"launch": {
|
|
161
|
+
"configurations": [
|
|
162
|
+
{
|
|
163
|
+
"type": "node",
|
|
164
|
+
"name": "dev",
|
|
165
|
+
"cwd": "{path:../myapp}/src",
|
|
166
|
+
"runtimeExecutable": "npm",
|
|
167
|
+
"runtimeArgs": ["run", "dev"]
|
|
168
|
+
}
|
|
169
|
+
]
|
|
170
|
+
},
|
|
171
|
+
"extensions": {
|
|
172
|
+
"recommendations": ["dbaeumer.vscode-eslint"]
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
The generated workspace includes:
|
|
178
|
+
- Repository folders from workspace.yaml (resolved to absolute paths, listed first)
|
|
179
|
+
- Template folders (deduplicated against repository folders)
|
|
180
|
+
- All other template content (settings, launch, extensions) with `{repo:..}` placeholders resolved
|
|
181
|
+
|
|
182
|
+
### Plugin Marketplace Commands
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
# List registered marketplaces
|
|
186
|
+
allagents plugin marketplace list
|
|
187
|
+
|
|
188
|
+
# Add a marketplace from GitHub or local path
|
|
189
|
+
allagents plugin marketplace add <source>
|
|
190
|
+
# Examples:
|
|
191
|
+
# allagents plugin marketplace add anthropics/claude-plugins-official
|
|
192
|
+
# allagents plugin marketplace add /path/to/local/marketplace
|
|
193
|
+
|
|
194
|
+
# Remove a marketplace
|
|
195
|
+
allagents plugin marketplace remove <name>
|
|
196
|
+
|
|
197
|
+
# Update marketplace(s) from remote
|
|
198
|
+
allagents plugin marketplace update [name]
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Plugin Commands
|
|
202
|
+
|
|
203
|
+
```bash
|
|
204
|
+
# Install a plugin to .allagents/workspace.yaml (auto-registers marketplace if needed)
|
|
205
|
+
allagents plugin install <plugin@marketplace>
|
|
206
|
+
|
|
207
|
+
# Remove a plugin from .allagents/workspace.yaml
|
|
208
|
+
allagents plugin uninstall <plugin>
|
|
209
|
+
|
|
210
|
+
# List available plugins from marketplaces
|
|
211
|
+
allagents plugin list [marketplace]
|
|
212
|
+
|
|
213
|
+
# Validate a plugin or marketplace structure
|
|
214
|
+
allagents plugin validate <path>
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
### Skills Commands
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
# Add a specific skill from a GitHub repo
|
|
221
|
+
allagents skills add reddit --from ReScienceLab/opc-skills
|
|
222
|
+
|
|
223
|
+
# Add a skill via GitHub URL (skill name extracted from path)
|
|
224
|
+
allagents skills add https://github.com/owner/repo/tree/main/skills/my-skill
|
|
225
|
+
|
|
226
|
+
# List all skills and their enabled/disabled status
|
|
227
|
+
allagents skills list
|
|
228
|
+
|
|
229
|
+
# Disable a skill without uninstalling its plugin
|
|
230
|
+
allagents skills remove brainstorming
|
|
231
|
+
|
|
232
|
+
# Re-enable a previously disabled skill
|
|
233
|
+
allagents skills add brainstorming
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### GitHub Overrides
|
|
237
|
+
|
|
238
|
+
For **Copilot** and **VSCode**, AllAgents copies GitHub-specific files from a plugin's `.github/` folder into the workspace's `.github/` directory:
|
|
239
|
+
|
|
240
|
+
- `.github/prompts/` — prompt files
|
|
241
|
+
- `.github/agents/` — agent overrides
|
|
242
|
+
- `.github/hooks/` — hook overrides
|
|
243
|
+
- `copilot-instructions.md` — root Copilot instructions
|
|
244
|
+
|
|
245
|
+
Root `agents/` and `hooks/` directories in a plugin also map to `.github/agents/` and `.github/hooks/` for Copilot/VSCode.
|
|
246
|
+
|
|
247
|
+
## .allagents/workspace.yaml
|
|
248
|
+
|
|
249
|
+
The workspace configuration file lives in `.allagents/workspace.yaml` and defines repositories, plugins, workspace files, and target clients:
|
|
250
|
+
|
|
251
|
+
```yaml
|
|
252
|
+
# Workspace file sync (optional) - copy files from a shared source
|
|
253
|
+
workspace:
|
|
254
|
+
source: ../shared-config # Default base for relative paths
|
|
255
|
+
files:
|
|
256
|
+
- AGENTS.md # String shorthand: same source and dest
|
|
257
|
+
- source: docs/guide.md # Object form: explicit source
|
|
258
|
+
dest: GUIDE.md # Optional dest (defaults to basename)
|
|
259
|
+
- dest: CUSTOM.md # File-level source override
|
|
260
|
+
source: ../other-config/CUSTOM.md
|
|
261
|
+
- dest: AGENTS.md # GitHub source
|
|
262
|
+
source: owner/repo/path/AGENTS.md
|
|
263
|
+
|
|
264
|
+
repositories:
|
|
265
|
+
- path: ../my-project
|
|
266
|
+
source: github
|
|
267
|
+
repo: myorg/my-project
|
|
268
|
+
description: Main project repository
|
|
269
|
+
- path: ../my-api
|
|
270
|
+
source: github
|
|
271
|
+
repo: myorg/my-api
|
|
272
|
+
description: API service
|
|
273
|
+
|
|
274
|
+
plugins:
|
|
275
|
+
- code-review@claude-plugins-official # plugin@marketplace format
|
|
276
|
+
- context7@claude-plugins-official
|
|
277
|
+
- my-plugin@someuser/their-repo # fully qualified for custom marketplaces
|
|
278
|
+
|
|
279
|
+
clients:
|
|
280
|
+
- claude
|
|
281
|
+
- copilot
|
|
282
|
+
- cursor
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
### Workspace File Sync
|
|
286
|
+
|
|
287
|
+
The `workspace:` section enables syncing files from external sources to your workspace root. This is useful for sharing agent configurations (AGENTS.md, CLAUDE.md) across multiple projects.
|
|
288
|
+
|
|
289
|
+
**Key behaviors:**
|
|
290
|
+
- **Source of truth is remote** - Local copies are overwritten on every sync
|
|
291
|
+
- **Deleted files are restored** - If you delete AGENTS.md locally, sync restores it
|
|
292
|
+
- **WORKSPACE-RULES injection** - AGENTS.md and CLAUDE.md automatically get workspace discovery rules injected
|
|
293
|
+
|
|
294
|
+
**Source resolution:**
|
|
295
|
+
| Format | Example | Resolves to |
|
|
296
|
+
|--------|---------|-------------|
|
|
297
|
+
| String shorthand | `AGENTS.md` | `{workspace.source}/AGENTS.md` |
|
|
298
|
+
| Relative source | `source: docs/guide.md` | `{workspace.source}/docs/guide.md` |
|
|
299
|
+
| File-level override | `source: ../other/file.md` | `../other/file.md` (relative to workspace) |
|
|
300
|
+
| GitHub source | `source: owner/repo/path/file.md` | Fetched from GitHub cache |
|
|
301
|
+
|
|
302
|
+
**GitHub sources** are fetched fresh on every sync (always pulls latest).
|
|
303
|
+
|
|
304
|
+
### Plugin Spec Format
|
|
305
|
+
|
|
306
|
+
Plugins use the `plugin@marketplace` format:
|
|
307
|
+
|
|
308
|
+
| Format | Example | Description |
|
|
309
|
+
|--------|---------|-------------|
|
|
310
|
+
| Well-known | `code-review@claude-plugins-official` | Uses known marketplace mapping |
|
|
311
|
+
| owner/repo | `my-plugin@owner/repo` | Auto-registers GitHub repo, looks in `plugins/` |
|
|
312
|
+
| owner/repo/subpath | `my-plugin@owner/repo/extensions` | Looks in custom subdirectory |
|
|
313
|
+
|
|
314
|
+
The subpath format is useful when plugins aren't in the standard `plugins/` directory:
|
|
315
|
+
|
|
316
|
+
```yaml
|
|
317
|
+
plugins:
|
|
318
|
+
- feature-dev@anthropics/claude-plugins-official/plugins # explicit plugins/ dir
|
|
319
|
+
- my-addon@someuser/repo/addons # custom addons/ dir
|
|
320
|
+
- tool@org/monorepo/packages/tools # nested path
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
### Well-Known Marketplaces
|
|
324
|
+
|
|
325
|
+
These marketplace names auto-resolve to their GitHub repos:
|
|
326
|
+
|
|
327
|
+
- `claude-plugins-official` → `anthropics/claude-plugins-official`
|
|
328
|
+
|
|
329
|
+
### Supported Clients
|
|
330
|
+
|
|
331
|
+
AllAgents supports 23 AI coding assistants:
|
|
332
|
+
|
|
333
|
+
#### Universal Clients (share `.agents/skills/`)
|
|
334
|
+
|
|
335
|
+
| Client | Skills | Agent File | Hooks | Commands |
|
|
336
|
+
|--------|--------|------------|-------|----------|
|
|
337
|
+
| copilot | `.github/skills/` | `AGENTS.md` | `.github/hooks/` | No |
|
|
338
|
+
| codex | `.agents/skills/` | `AGENTS.md` | No | No |
|
|
339
|
+
| opencode | `.agents/skills/` | `AGENTS.md` | No | `.opencode/commands/` |
|
|
340
|
+
| gemini | `.agents/skills/` | `GEMINI.md` | No | No |
|
|
341
|
+
| ampcode | `.agents/skills/` | `AGENTS.md` | No | No |
|
|
342
|
+
| vscode | `.agents/skills/` | `AGENTS.md` | No | No |
|
|
343
|
+
| replit | `.agents/skills/` | `AGENTS.md` | No | No |
|
|
344
|
+
| kimi | `.agents/skills/` | `AGENTS.md` | No | No |
|
|
345
|
+
|
|
346
|
+
#### Provider-Specific Clients
|
|
347
|
+
|
|
348
|
+
| Client | Skills | Agent File | Hooks | Commands |
|
|
349
|
+
|--------|--------|------------|-------|----------|
|
|
350
|
+
| claude | `.claude/skills/` | `CLAUDE.md` | `.claude/hooks/` | `.claude/commands/` |
|
|
351
|
+
| cursor | `.cursor/skills/` | `AGENTS.md` | No | No |
|
|
352
|
+
| factory | `.factory/skills/` | `AGENTS.md` | `.factory/hooks/` | No |
|
|
353
|
+
| openclaw | `skills/` | `AGENTS.md` | No | No |
|
|
354
|
+
| windsurf | `.windsurf/skills/` | `AGENTS.md` | No | No |
|
|
355
|
+
| cline | `.cline/skills/` | `AGENTS.md` | No | No |
|
|
356
|
+
| continue | `.continue/skills/` | `AGENTS.md` | No | No |
|
|
357
|
+
| roo | `.roo/skills/` | `AGENTS.md` | No | No |
|
|
358
|
+
| kilo | `.kilocode/skills/` | `AGENTS.md` | No | No |
|
|
359
|
+
| trae | `.trae/skills/` | `AGENTS.md` | No | No |
|
|
360
|
+
| augment | `.augment/skills/` | `AGENTS.md` | No | No |
|
|
361
|
+
| zencoder | `.zencoder/skills/` | `AGENTS.md` | No | No |
|
|
362
|
+
| junie | `.junie/skills/` | `AGENTS.md` | No | No |
|
|
363
|
+
| openhands | `.openhands/skills/` | `AGENTS.md` | No | No |
|
|
364
|
+
| kiro | `.kiro/skills/` | `AGENTS.md` | No | No |
|
|
365
|
+
|
|
366
|
+
> **Note:** Universal clients share the same `.agents/skills/` directory. See [GitHub Overrides](#github-overrides) for how Copilot and VSCode handle `.github/` content.
|
|
367
|
+
|
|
368
|
+
## Marketplace Structure
|
|
369
|
+
|
|
370
|
+
Marketplaces contain multiple plugins:
|
|
371
|
+
|
|
372
|
+
```
|
|
373
|
+
my-marketplace/
|
|
374
|
+
├── plugins/
|
|
375
|
+
│ ├── code-review/
|
|
376
|
+
│ │ └── skills/
|
|
377
|
+
│ └── debugging/
|
|
378
|
+
│ └── skills/
|
|
379
|
+
└── README.md
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
## Plugin Structure
|
|
383
|
+
|
|
384
|
+
Each plugin follows this structure:
|
|
385
|
+
|
|
386
|
+
```
|
|
387
|
+
my-plugin/
|
|
388
|
+
├── skills/ # Skill directories with SKILL.md (all clients)
|
|
389
|
+
│ └── debugging/
|
|
390
|
+
│ └── SKILL.md
|
|
391
|
+
├── commands/ # Command files (.md) - Claude, OpenCode
|
|
392
|
+
│ ├── build.md
|
|
393
|
+
│ └── deploy.md
|
|
394
|
+
├── .github/ # GitHub overrides (Copilot, VSCode)
|
|
395
|
+
│ └── prompts/
|
|
396
|
+
│ └── review.md
|
|
397
|
+
├── hooks/ # Hook files (Claude/Factory only)
|
|
398
|
+
│ └── pre-commit.md
|
|
399
|
+
└── AGENTS.md # Agent configuration (optional)
|
|
400
|
+
```
|
|
401
|
+
|
|
402
|
+
### Skill Validation
|
|
403
|
+
|
|
404
|
+
Skills must have a valid `SKILL.md` file with YAML frontmatter:
|
|
405
|
+
|
|
406
|
+
```yaml
|
|
407
|
+
---
|
|
408
|
+
name: my-skill # Required: lowercase, alphanumeric + hyphens, max 64 chars
|
|
409
|
+
description: Description of the skill # Required
|
|
410
|
+
allowed-tools: # Optional
|
|
411
|
+
- Read
|
|
412
|
+
- Write
|
|
413
|
+
model: claude-3-opus # Optional
|
|
414
|
+
---
|
|
415
|
+
|
|
416
|
+
# Skill Content
|
|
417
|
+
|
|
418
|
+
Skill instructions go here...
|
|
419
|
+
```
|
|
420
|
+
|
|
421
|
+
### Self Commands
|
|
422
|
+
|
|
423
|
+
```bash
|
|
424
|
+
# Update to latest version (auto-detects package manager)
|
|
425
|
+
allagents self update
|
|
426
|
+
|
|
427
|
+
# Force a specific package manager
|
|
428
|
+
allagents self update --npm
|
|
429
|
+
allagents self update --bun
|
|
430
|
+
```
|
|
431
|
+
|
|
432
|
+
When using the interactive TUI, AllAgents automatically checks for newer versions in the background and shows a notice on startup when an update is available.
|
|
433
|
+
|
|
434
|
+
## Storage Locations
|
|
435
|
+
|
|
436
|
+
```
|
|
437
|
+
~/.allagents/
|
|
438
|
+
├── marketplaces.json # Registry of marketplaces
|
|
439
|
+
├── version-check.json # Cached update check (auto-managed)
|
|
440
|
+
└── marketplaces/ # Cloned marketplace repos
|
|
441
|
+
├── claude-plugins-official/
|
|
442
|
+
└── someuser-their-repo/
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
## Development
|
|
446
|
+
|
|
447
|
+
```bash
|
|
448
|
+
# Install dependencies
|
|
449
|
+
bun install
|
|
450
|
+
|
|
451
|
+
# Run in development
|
|
452
|
+
bun run dev workspace init test-ws
|
|
453
|
+
|
|
454
|
+
# Run tests
|
|
455
|
+
bun run test
|
|
456
|
+
|
|
457
|
+
# Type check
|
|
458
|
+
bun run typecheck
|
|
459
|
+
|
|
460
|
+
# Build
|
|
461
|
+
bun run build
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
## Related Projects
|
|
465
|
+
|
|
466
|
+
- [dotagents](https://github.com/iannuttall/dotagents) - Unified AI agent configuration management
|
|
467
|
+
- [vercel-labs/skills](https://github.com/vercel-labs/skills) - Universal skills for AI coding assistants
|
|
468
|
+
|
|
469
|
+
## License
|
|
470
|
+
|
|
471
|
+
MIT
|
package/dist/index.js
CHANGED
|
@@ -6378,7 +6378,7 @@ var require_parse = __commonJS((exports, module) => {
|
|
|
6378
6378
|
var token;
|
|
6379
6379
|
var key;
|
|
6380
6380
|
var root;
|
|
6381
|
-
module.exports = function
|
|
6381
|
+
module.exports = function parse(text, reviver) {
|
|
6382
6382
|
source = String(text);
|
|
6383
6383
|
parseState = "start";
|
|
6384
6384
|
stack = [];
|
|
@@ -13446,7 +13446,7 @@ function gitInstanceFactory(baseDir, options2) {
|
|
|
13446
13446
|
}
|
|
13447
13447
|
var import_file_exists, import_debug, import_promise_deferred, import_promise_deferred2, __defProp2, __getOwnPropDesc2, __getOwnPropNames2, __hasOwnProp2, __esm2 = (fn, res) => function __init() {
|
|
13448
13448
|
return fn && (res = (0, fn[__getOwnPropNames2(fn)[0]])(fn = 0)), res;
|
|
13449
|
-
}, __commonJS2 = (cb, mod) => function
|
|
13449
|
+
}, __commonJS2 = (cb, mod) => function __require() {
|
|
13450
13450
|
return mod || (0, cb[__getOwnPropNames2(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
13451
13451
|
}, __export2 = (target, all) => {
|
|
13452
13452
|
for (var name in all)
|
|
@@ -21933,7 +21933,7 @@ var require_is_extendable = __commonJS((exports, module) => {
|
|
|
21933
21933
|
// node_modules/extend-shallow/index.js
|
|
21934
21934
|
var require_extend_shallow = __commonJS((exports, module) => {
|
|
21935
21935
|
var isObject2 = require_is_extendable();
|
|
21936
|
-
module.exports = function
|
|
21936
|
+
module.exports = function extend(o) {
|
|
21937
21937
|
if (!isObject2(o)) {
|
|
21938
21938
|
o = {};
|
|
21939
21939
|
}
|
|
@@ -22127,7 +22127,7 @@ var require_exception = __commonJS((exports, module) => {
|
|
|
22127
22127
|
}
|
|
22128
22128
|
YAMLException2.prototype = Object.create(Error.prototype);
|
|
22129
22129
|
YAMLException2.prototype.constructor = YAMLException2;
|
|
22130
|
-
YAMLException2.prototype.toString = function
|
|
22130
|
+
YAMLException2.prototype.toString = function toString(compact) {
|
|
22131
22131
|
var result = this.name + ": ";
|
|
22132
22132
|
result += this.reason || "(unknown reason)";
|
|
22133
22133
|
if (!compact && this.mark) {
|
|
@@ -22180,7 +22180,7 @@ var require_mark = __commonJS((exports, module) => {
|
|
|
22180
22180
|
return common2.repeat(" ", indent) + head + snippet2 + tail + `
|
|
22181
22181
|
` + common2.repeat(" ", indent + this.position - start + head.length) + "^";
|
|
22182
22182
|
};
|
|
22183
|
-
Mark.prototype.toString = function
|
|
22183
|
+
Mark.prototype.toString = function toString(compact) {
|
|
22184
22184
|
var snippet2, where = "";
|
|
22185
22185
|
if (this.name) {
|
|
22186
22186
|
where += 'in "' + this.name + '" ';
|
|
@@ -23275,7 +23275,7 @@ var require_loader = __commonJS((exports, module) => {
|
|
|
23275
23275
|
}
|
|
23276
23276
|
}
|
|
23277
23277
|
var directiveHandlers2 = {
|
|
23278
|
-
YAML: function
|
|
23278
|
+
YAML: function handleYamlDirective(state, name, args) {
|
|
23279
23279
|
var match, major, minor;
|
|
23280
23280
|
if (state.version !== null) {
|
|
23281
23281
|
throwError2(state, "duplication of %YAML directive");
|
|
@@ -23298,7 +23298,7 @@ var require_loader = __commonJS((exports, module) => {
|
|
|
23298
23298
|
throwWarning2(state, "unsupported YAML version of the document");
|
|
23299
23299
|
}
|
|
23300
23300
|
},
|
|
23301
|
-
TAG: function
|
|
23301
|
+
TAG: function handleTagDirective(state, name, args) {
|
|
23302
23302
|
var handle, prefix;
|
|
23303
23303
|
if (args.length !== 2) {
|
|
23304
23304
|
throwError2(state, "TAG directive accepts exactly two arguments");
|
|
@@ -30789,9 +30789,13 @@ function classifyDestination(dest) {
|
|
|
30789
30789
|
}
|
|
30790
30790
|
function classifyCopyResults(copyResults) {
|
|
30791
30791
|
const clientCounts = new Map;
|
|
30792
|
+
const seenDestinations = new Set;
|
|
30792
30793
|
for (const result of copyResults) {
|
|
30793
30794
|
if (result.action !== "copied")
|
|
30794
30795
|
continue;
|
|
30796
|
+
if (seenDestinations.has(result.destination))
|
|
30797
|
+
continue;
|
|
30798
|
+
seenDestinations.add(result.destination);
|
|
30795
30799
|
const classification = classifyDestination(result.destination);
|
|
30796
30800
|
if (!classification)
|
|
30797
30801
|
continue;
|
|
@@ -33430,7 +33434,7 @@ var package_default;
|
|
|
33430
33434
|
var init_package = __esm(() => {
|
|
33431
33435
|
package_default = {
|
|
33432
33436
|
name: "allagents",
|
|
33433
|
-
version: "1.0.
|
|
33437
|
+
version: "1.0.12",
|
|
33434
33438
|
description: "CLI tool for managing multi-repo AI agent workspaces with plugin synchronization",
|
|
33435
33439
|
type: "module",
|
|
33436
33440
|
bin: {
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
# Workspace root files (optional)
|
|
2
|
-
# workspace:
|
|
3
|
-
# source: ./path/to/config # local path, GitHub URL, or plugin@marketplace
|
|
4
|
-
# files:
|
|
5
|
-
# - CLAUDE.md
|
|
6
|
-
# - AGENTS.md
|
|
7
|
-
# - source: docs/CLAUDE.md # explicit source/dest mapping
|
|
8
|
-
# dest: CLAUDE.md
|
|
9
|
-
|
|
10
|
-
repositories: []
|
|
11
|
-
|
|
12
|
-
plugins: []
|
|
13
|
-
|
|
14
|
-
clients:
|
|
15
|
-
- universal
|
|
1
|
+
# Workspace root files (optional)
|
|
2
|
+
# workspace:
|
|
3
|
+
# source: ./path/to/config # local path, GitHub URL, or plugin@marketplace
|
|
4
|
+
# files:
|
|
5
|
+
# - CLAUDE.md
|
|
6
|
+
# - AGENTS.md
|
|
7
|
+
# - source: docs/CLAUDE.md # explicit source/dest mapping
|
|
8
|
+
# dest: CLAUDE.md
|
|
9
|
+
|
|
10
|
+
repositories: []
|
|
11
|
+
|
|
12
|
+
plugins: []
|
|
13
|
+
|
|
14
|
+
clients:
|
|
15
|
+
- universal
|