skillfish 1.0.10 → 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/README.md +110 -121
- package/dist/index.js +14 -1
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -10,15 +10,69 @@
|
|
|
10
10
|
<a href="https://github.com/knoxgraeme/skillfish/actions"><img src="https://github.com/knoxgraeme/skillfish/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
11
11
|
</p>
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
<p align="center">
|
|
14
|
+
<strong>The skill manager for AI coding agents.</strong><br>
|
|
15
|
+
Install, update, and sync skills across Claude Code, Cursor, Copilot + more.
|
|
16
|
+
</p>
|
|
17
|
+
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Quick Start
|
|
14
21
|
|
|
15
22
|
```bash
|
|
23
|
+
# One-off skill installation
|
|
16
24
|
npx skillfish add owner/repo
|
|
25
|
+
|
|
26
|
+
# For ongoing skill management, install globally
|
|
27
|
+
npm i -g skillfish
|
|
28
|
+
skillfish list
|
|
29
|
+
skillfish update
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
One command installs to **all detected agents** on your system.
|
|
33
|
+
|
|
34
|
+
## What Are Agent Skills?
|
|
35
|
+
|
|
36
|
+
Agent Skills are portable packages of instructions, prompts, scripts, and resources that AI coding agents can discover and use. They give agents like Claude Code, Cursor, and Copilot domain expertise, reusable workflows, and team-specific context - loaded on demand to extend capabilities.
|
|
37
|
+
|
|
38
|
+
Each skill contains a `SKILL.md` file with structured prompts and instructions the agent can follow.
|
|
39
|
+
|
|
40
|
+
Learn more at [agentskills.io](https://agentskills.io).
|
|
41
|
+
|
|
42
|
+
## Find Skills
|
|
43
|
+
|
|
44
|
+
- **[skill.fish](https://skill.fish)** - Browse and discover community skills
|
|
45
|
+
- **[MCP Market](https://mcpmarket.com/tools/skills)** - Skills directory
|
|
46
|
+
|
|
47
|
+
## Commands
|
|
48
|
+
|
|
49
|
+
| Command | Description |
|
|
50
|
+
|---------|-------------|
|
|
51
|
+
| `skillfish add <owner/repo>` | Install skills |
|
|
52
|
+
| `skillfish list` | View installed skills |
|
|
53
|
+
| `skillfish remove [name]` | Remove skills |
|
|
54
|
+
| `skillfish update` | Update installed skills |
|
|
55
|
+
|
|
56
|
+
All commands support `--json` for automation.
|
|
57
|
+
|
|
58
|
+
## Examples
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
skillfish add user/my-skill # Install a skill
|
|
62
|
+
skillfish add owner/repo --all # Install all skills from repo
|
|
63
|
+
skillfish list # See what's installed
|
|
64
|
+
skillfish update # Update all skills
|
|
65
|
+
skillfish remove old-skill # Remove a skill
|
|
17
66
|
```
|
|
18
67
|
|
|
19
|
-
##
|
|
68
|
+
## Supported Agents
|
|
20
69
|
|
|
21
|
-
|
|
70
|
+
Works with 17+ agents including:
|
|
71
|
+
|
|
72
|
+
**Claude Code** · **Cursor** · **Windsurf** · **Codex** · **GitHub Copilot** · **Gemini CLI** · **OpenCode** · **Goose** · **Amp** · **Roo Code** · **Kiro CLI** · **Kilo Code** · **Trae** · **Cline** · **Antigravity** · **Droid** · **Clawdbot**
|
|
73
|
+
|
|
74
|
+
<details>
|
|
75
|
+
<summary>All supported agents</summary>
|
|
22
76
|
|
|
23
77
|
| Agent | Skills Directory |
|
|
24
78
|
|-------|------------------|
|
|
@@ -40,141 +94,65 @@ One command installs skills to **all detected agents**:
|
|
|
40
94
|
| Droid | `~/.factory/skills/` |
|
|
41
95
|
| Clawdbot | `~/.clawdbot/skills/` |
|
|
42
96
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
### Install Skills
|
|
46
|
-
|
|
47
|
-
```bash
|
|
48
|
-
# Install a skill (auto-discovers SKILL.md location)
|
|
49
|
-
npx skillfish add owner/repo
|
|
50
|
-
|
|
51
|
-
# Full path from GitHub (plugin/skill syntax)
|
|
52
|
-
npx skillfish add owner/repo/plugin/skill
|
|
53
|
-
|
|
54
|
-
# Specify explicit path
|
|
55
|
-
npx skillfish add owner/repo --path path/to/skill
|
|
56
|
-
|
|
57
|
-
# Install all skills from a repo (non-interactive)
|
|
58
|
-
npx skillfish add owner/repo --all
|
|
59
|
-
|
|
60
|
-
# Overwrite existing skills
|
|
61
|
-
npx skillfish add owner/repo --force
|
|
62
|
-
|
|
63
|
-
# Skip confirmation prompt
|
|
64
|
-
npx skillfish add owner/repo --yes
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
### List Skills
|
|
68
|
-
|
|
69
|
-
```bash
|
|
70
|
-
# Interactive agent and location picker
|
|
71
|
-
npx skillfish list
|
|
97
|
+
</details>
|
|
72
98
|
|
|
73
|
-
|
|
74
|
-
npx skillfish list --global
|
|
99
|
+
---
|
|
75
100
|
|
|
76
|
-
|
|
77
|
-
npx skillfish list --project
|
|
101
|
+
## Command Reference
|
|
78
102
|
|
|
79
|
-
|
|
80
|
-
npx skillfish list --agent "Claude Code"
|
|
81
|
-
```
|
|
103
|
+
### add
|
|
82
104
|
|
|
83
|
-
|
|
105
|
+
Install skills from a repository.
|
|
84
106
|
|
|
85
107
|
```bash
|
|
86
|
-
#
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
# Remove from current project only
|
|
96
|
-
npx skillfish remove my-skill --project
|
|
97
|
-
|
|
98
|
-
# Remove from home directory only
|
|
99
|
-
npx skillfish remove my-skill --global
|
|
100
|
-
|
|
101
|
-
# Remove from specific agent
|
|
102
|
-
npx skillfish remove my-skill --agent "Claude Code"
|
|
103
|
-
|
|
104
|
-
# Skip confirmation prompt
|
|
105
|
-
npx skillfish remove my-skill --yes
|
|
108
|
+
skillfish add owner/repo # Auto-discover SKILL.md
|
|
109
|
+
skillfish add owner/repo my-skill # Install by skill name
|
|
110
|
+
skillfish add owner/repo/path/to/skill # Full path syntax
|
|
111
|
+
skillfish add owner/repo --path skills/foo # Explicit path
|
|
112
|
+
skillfish add owner/repo --all # Install all skills
|
|
113
|
+
skillfish add owner/repo --force # Overwrite existing
|
|
114
|
+
skillfish add owner/repo --yes # Skip confirmation
|
|
115
|
+
skillfish add owner/repo --project # Project only (./)
|
|
116
|
+
skillfish add owner/repo --global # Global only (~/)
|
|
106
117
|
```
|
|
107
118
|
|
|
108
|
-
|
|
119
|
+
### list
|
|
109
120
|
|
|
110
|
-
|
|
121
|
+
View installed skills.
|
|
111
122
|
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
│ ...
|
|
118
|
-
└
|
|
123
|
+
```bash
|
|
124
|
+
skillfish list # List all installed skills
|
|
125
|
+
skillfish list --global # Global skills only (~/)
|
|
126
|
+
skillfish list --project # Project skills only (./)
|
|
127
|
+
skillfish list --agent "Claude Code" # Specific agent
|
|
119
128
|
```
|
|
120
129
|
|
|
121
|
-
|
|
130
|
+
### remove
|
|
122
131
|
|
|
123
|
-
|
|
132
|
+
Remove installed skills.
|
|
124
133
|
|
|
125
134
|
```bash
|
|
126
|
-
#
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
npx skillfish add org/plugin-repo --path plugins/my-plugin/skills/skill-name
|
|
134
|
-
|
|
135
|
-
# Install all skills non-interactively
|
|
136
|
-
npx skillfish add org/plugin-repo --all --yes
|
|
137
|
-
|
|
138
|
-
# Force reinstall
|
|
139
|
-
npx skillfish add user/skill --force
|
|
140
|
-
|
|
141
|
-
# JSON output for automation
|
|
142
|
-
npx skillfish add owner/repo --json
|
|
135
|
+
skillfish remove # Interactive picker
|
|
136
|
+
skillfish remove my-skill # By name
|
|
137
|
+
skillfish remove --all # Remove all
|
|
138
|
+
skillfish remove my-skill --project # Project only
|
|
139
|
+
skillfish remove my-skill --global # Global only
|
|
140
|
+
skillfish remove my-skill --agent "Cursor" # Specific agent
|
|
141
|
+
skillfish remove my-skill --yes # Skip confirmation
|
|
143
142
|
```
|
|
144
143
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
The CLI searches these locations for `SKILL.md`:
|
|
148
|
-
1. Repository root
|
|
149
|
-
2. `.claude/skills/{repo}/`
|
|
150
|
-
3. `skills/{repo}/`
|
|
151
|
-
4. `plugins/{repo}/skills/{repo}/`
|
|
152
|
-
|
|
153
|
-
Use `--path` to skip discovery and specify the exact location.
|
|
154
|
-
|
|
155
|
-
## Telemetry
|
|
156
|
-
|
|
157
|
-
This CLI collects anonymous, aggregate install counts to understand skill popularity. No personally identifiable information is collected.
|
|
158
|
-
|
|
159
|
-
**What is collected:**
|
|
160
|
-
- Skill identifier (e.g., `owner/repo/skill-name`)
|
|
161
|
-
- Incremented install count
|
|
162
|
-
|
|
163
|
-
**What is NOT collected:**
|
|
164
|
-
- IP addresses
|
|
165
|
-
- User identifiers
|
|
166
|
-
- System information
|
|
167
|
-
- Usage patterns
|
|
144
|
+
### update
|
|
168
145
|
|
|
169
|
-
|
|
146
|
+
Update installed skills to latest version.
|
|
170
147
|
|
|
171
148
|
```bash
|
|
172
|
-
|
|
149
|
+
skillfish update # Check for updates interactively
|
|
150
|
+
skillfish update --yes # Update all without prompting
|
|
151
|
+
skillfish update --json # Check for updates (JSON output)
|
|
173
152
|
```
|
|
174
153
|
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
## Exit Codes
|
|
154
|
+
<details>
|
|
155
|
+
<summary>Exit Codes</summary>
|
|
178
156
|
|
|
179
157
|
Exit codes help agents and scripts understand command results without parsing error messages.
|
|
180
158
|
|
|
@@ -193,22 +171,33 @@ skillfish add owner/repo --json
|
|
|
193
171
|
# Output includes: "exit_code": 0 (or error code)
|
|
194
172
|
```
|
|
195
173
|
|
|
174
|
+
</details>
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
196
178
|
## Security
|
|
197
179
|
|
|
198
|
-
|
|
180
|
+
Skills are markdown files that provide instructions to AI agents. Always review skills before installing. skillfish does not vet third-party skills.
|
|
199
181
|
|
|
200
|
-
To report
|
|
182
|
+
To report vulnerabilities, email security@skill.fish. See [SECURITY.md](SECURITY.md).
|
|
201
183
|
|
|
202
184
|
## Contributing
|
|
203
185
|
|
|
204
|
-
Contributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md)
|
|
205
|
-
|
|
206
|
-
Please read our [Code of Conduct](CODE_OF_CONDUCT.md) before participating.
|
|
186
|
+
Contributions welcome! See [CONTRIBUTING.md](CONTRIBUTING.md) and our [Code of Conduct](CODE_OF_CONDUCT.md).
|
|
207
187
|
|
|
208
188
|
## Changelog
|
|
209
189
|
|
|
210
190
|
See [CHANGELOG.md](CHANGELOG.md) for release history.
|
|
211
191
|
|
|
192
|
+
<details>
|
|
193
|
+
<summary>Telemetry</summary>
|
|
194
|
+
|
|
195
|
+
Anonymous, aggregate install counts only. No PII collected.
|
|
196
|
+
|
|
197
|
+
To opt out: `DO_NOT_TRACK=1` or `CI=true`.
|
|
198
|
+
|
|
199
|
+
</details>
|
|
200
|
+
|
|
212
201
|
## License
|
|
213
202
|
|
|
214
203
|
[AGPL-3.0](LICENSE) - Graeme Knox
|
package/dist/index.js
CHANGED
|
@@ -8,6 +8,7 @@ import { Command } from 'commander';
|
|
|
8
8
|
import { readFileSync } from 'fs';
|
|
9
9
|
import { fileURLToPath } from 'url';
|
|
10
10
|
import { dirname, join } from 'path';
|
|
11
|
+
import updateNotifier from 'update-notifier';
|
|
11
12
|
import { addCommand } from './commands/add.js';
|
|
12
13
|
import { listCommand } from './commands/list.js';
|
|
13
14
|
import { removeCommand } from './commands/remove.js';
|
|
@@ -15,6 +16,8 @@ import { updateCommand } from './commands/update.js';
|
|
|
15
16
|
// Read version from package.json (single source of truth)
|
|
16
17
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
17
18
|
const pkg = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-8'));
|
|
19
|
+
// Check for updates (runs in background, non-blocking)
|
|
20
|
+
const notifier = updateNotifier({ pkg });
|
|
18
21
|
const program = new Command()
|
|
19
22
|
.name('skillfish')
|
|
20
23
|
.description('Install and manage AI agent skills from GitHub repositories')
|
|
@@ -52,7 +55,17 @@ program.on('option:json', () => {
|
|
|
52
55
|
// JSON mode is handled by commands
|
|
53
56
|
});
|
|
54
57
|
// Parse and run
|
|
55
|
-
program
|
|
58
|
+
program
|
|
59
|
+
.parseAsync(process.argv)
|
|
60
|
+
.then(() => {
|
|
61
|
+
// Show update notification after command completes (if update available)
|
|
62
|
+
notifier.notify({
|
|
63
|
+
message: `Update available: {currentVersion} → {latestVersion}
|
|
64
|
+
Run: npx skillfish@latest
|
|
65
|
+
Or: npm i -g skillfish`,
|
|
66
|
+
});
|
|
67
|
+
})
|
|
68
|
+
.catch((err) => {
|
|
56
69
|
console.error('Error:', err instanceof Error ? err.message : String(err));
|
|
57
70
|
process.exit(1);
|
|
58
71
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skillfish",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.12",
|
|
4
4
|
"description": "Install AI agent skills from GitHub with a single command",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -71,11 +71,13 @@
|
|
|
71
71
|
"@clack/prompts": "^0.11.0",
|
|
72
72
|
"commander": "^14.0.2",
|
|
73
73
|
"giget": "^3.1.1",
|
|
74
|
-
"picocolors": "^1.1.1"
|
|
74
|
+
"picocolors": "^1.1.1",
|
|
75
|
+
"update-notifier": "^7.3.1"
|
|
75
76
|
},
|
|
76
77
|
"devDependencies": {
|
|
77
78
|
"@eslint/js": "^9.39.2",
|
|
78
79
|
"@types/node": "^20.0.0",
|
|
80
|
+
"@types/update-notifier": "^6.0.8",
|
|
79
81
|
"eslint": "^9.39.2",
|
|
80
82
|
"eslint-config-prettier": "^10.1.8",
|
|
81
83
|
"husky": "^9.1.7",
|