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.
Files changed (3) hide show
  1. package/README.md +110 -121
  2. package/dist/index.js +14 -1
  3. 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
- Install AI agent skills from GitHub with a single command.
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
- ## Overview
68
+ ## Supported Agents
20
69
 
21
- One command installs skills to **all detected agents**:
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
- ## Usage
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
- # List global skills only
74
- npx skillfish list --global
99
+ ---
75
100
 
76
- # List project skills only
77
- npx skillfish list --project
101
+ ## Command Reference
78
102
 
79
- # List skills for a specific agent
80
- npx skillfish list --agent "Claude Code"
81
- ```
103
+ ### add
82
104
 
83
- ### Remove Skills
105
+ Install skills from a repository.
84
106
 
85
107
  ```bash
86
- # Interactive skill picker
87
- npx skillfish remove
88
-
89
- # Remove a skill by name
90
- npx skillfish remove my-skill
91
-
92
- # Remove all installed skills
93
- npx skillfish remove --all
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
- ## Interactive Selection
119
+ ### list
109
120
 
110
- When a repo contains multiple skills, you'll get an interactive multi-select menu with skill names and descriptions from frontmatter:
121
+ View installed skills.
111
122
 
112
- ```
113
- ◆ Select skills to install
114
- │ ◻ my-skill - A helpful skill for your AI agent
115
- │ ◻ another-skill - Another useful capability
116
- │ ◻ third-skill - Yet another skill option
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
- Use `--all` to install all skills non-interactively (useful for automation).
130
+ ### remove
122
131
 
123
- ## Examples
132
+ Remove installed skills.
124
133
 
125
134
  ```bash
126
- # Install from a skill repo with SKILL.md at root
127
- npx skillfish add user/my-skill
128
-
129
- # Install using full path from GitHub
130
- npx skillfish add owner/repo/path/to/skill
131
-
132
- # Install from a plugin repo with explicit path
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
- ## Discovery
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
- To opt out, set `DO_NOT_TRACK=1` in your environment:
146
+ Update installed skills to latest version.
170
147
 
171
148
  ```bash
172
- DO_NOT_TRACK=1 npx skillfish add owner/repo
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
- Telemetry is also automatically disabled in CI environments (`CI=true`).
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
- **Security Note:** Skills are markdown files that provide instructions to AI agents. Always review skills before installing. skillfish does not vet third-party skills.
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 security vulnerabilities, please email security@skill.fish. See [SECURITY.md](SECURITY.md) for details.
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) for guidelines.
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.parseAsync(process.argv).catch((err) => {
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.10",
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",