anyt-cli 0.1.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/CHANGELOG.md +14 -0
- package/CLI_GUIDE.md +772 -0
- package/LICENSE +216 -0
- package/README.md +519 -0
- package/bin/anyt.js +2 -0
- package/dist/add-CUTmwUhU.js +1 -0
- package/dist/add-DxcDPvGU.js +5 -0
- package/dist/api-client-AcwLRhZ3.js +1 -0
- package/dist/api-client-Csx9R9k6.js +1 -0
- package/dist/config-BBDgQnzq.js +1 -0
- package/dist/config-D5S7I3VP.js +3 -0
- package/dist/index.js +60 -0
- package/dist/install-D2YOi6ip.js +3 -0
- package/dist/install-NbMXwySO.js +1 -0
- package/dist/symlinks-BoGYQyAH.js +5 -0
- package/package.json +75 -0
package/CLI_GUIDE.md
ADDED
|
@@ -0,0 +1,772 @@
|
|
|
1
|
+
# anyt CLI Guide
|
|
2
|
+
|
|
3
|
+
anyt is a package manager for AI agent skills. It provides commands for authentication, configuration, skill management, and publishing across AI agents.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# Install globally
|
|
9
|
+
npm install -g anyt-skill-cli
|
|
10
|
+
|
|
11
|
+
# Or use with npx
|
|
12
|
+
npx anyt-skill-cli <command>
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Command Reference
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
Usage: anyt-skill [options] [command]
|
|
19
|
+
|
|
20
|
+
Package manager for AI agent skills
|
|
21
|
+
|
|
22
|
+
Options:
|
|
23
|
+
-V, --version output the version number
|
|
24
|
+
-h, --help display help for command
|
|
25
|
+
|
|
26
|
+
Commands:
|
|
27
|
+
config Manage anyt configuration (show, init, set-encryption-key, get-encryption-key, remove-encryption-key)
|
|
28
|
+
login [options] Log in via browser or with an API key
|
|
29
|
+
logout Log out and clear stored credentials
|
|
30
|
+
whoami Show current user information
|
|
31
|
+
init [options] Create a new anyt.json manifest in the current directory
|
|
32
|
+
migrate [options] Migrate from old directory structure (.skills/, skill-lock.json)
|
|
33
|
+
add [options] <specifiers...> Add one or more skills
|
|
34
|
+
remove|rm <name> Remove an installed skill
|
|
35
|
+
list|ls [options] List installed skills
|
|
36
|
+
install|i [options] [specifiers...] Install skills from lockfile, or add and install specific packages
|
|
37
|
+
link [options] Recreate agent symlinks without reinstalling
|
|
38
|
+
update [options] Update all skills to latest compatible versions
|
|
39
|
+
search|find [options] [query] Search and discover skills from the registry
|
|
40
|
+
audit [options] Verify integrity of installed skills
|
|
41
|
+
outdated [options] [packages...] Check for outdated skills
|
|
42
|
+
version <bump> Bump package version (major, minor, patch)
|
|
43
|
+
publish [options] Publish current directory as a skill
|
|
44
|
+
unpublish [options] <specifier> Remove a published skill version (only within 72 hours of publishing)
|
|
45
|
+
access [options] [specifier] Change package visibility (public/private)
|
|
46
|
+
deprecate [options] <specifier> [message] Mark a skill version as deprecated (alternative to unpublish after 72 hours)
|
|
47
|
+
skill-list Manage skill lists (list, create, show, update, delete, add-skill, remove-skill, install)
|
|
48
|
+
notebook Manage notebooks (upload, list, download, delete)
|
|
49
|
+
upgrade Update anyt-skill itself to the latest version
|
|
50
|
+
help [command] display help for command
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## Authentication
|
|
54
|
+
|
|
55
|
+
### Login
|
|
56
|
+
|
|
57
|
+
Authenticate with an API key:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
anyt-skill login --api-key <key>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Or use browser-based OAuth:
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
anyt-skill login
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Logout
|
|
70
|
+
|
|
71
|
+
Remove stored credentials:
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
anyt-skill logout
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Who Am I
|
|
78
|
+
|
|
79
|
+
Display current user information:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
anyt-skill whoami
|
|
83
|
+
|
|
84
|
+
# Output:
|
|
85
|
+
# Username: myuser
|
|
86
|
+
# User ID: user_123
|
|
87
|
+
# Registry: https://registry.anyt.io
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Configuration
|
|
91
|
+
|
|
92
|
+
### Show Configuration
|
|
93
|
+
|
|
94
|
+
Display resolved configuration and config file locations:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
anyt-skill config show
|
|
98
|
+
|
|
99
|
+
# Output:
|
|
100
|
+
# Resolved Configuration:
|
|
101
|
+
#
|
|
102
|
+
# Registry URL: https://registry.anyt.io
|
|
103
|
+
# API Key: ***
|
|
104
|
+
# Username: myuser
|
|
105
|
+
#
|
|
106
|
+
# Config Locations:
|
|
107
|
+
# User config: /Users/you/.anytrc
|
|
108
|
+
# Project config: (none)
|
|
109
|
+
#
|
|
110
|
+
# Environment Variables:
|
|
111
|
+
# ANYT_REGISTRY_URL: (not set)
|
|
112
|
+
# ANYT_API_KEY: (not set)
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Initialize Project Config
|
|
116
|
+
|
|
117
|
+
Create a `.anytrc` file in the current directory:
|
|
118
|
+
|
|
119
|
+
```bash
|
|
120
|
+
anyt-skill config init
|
|
121
|
+
anyt-skill config init --registry https://custom.example.com
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Project Initialization
|
|
125
|
+
|
|
126
|
+
### Initialize Manifest
|
|
127
|
+
|
|
128
|
+
Create a new `anyt.json` manifest file in the current directory:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
anyt-skill init # Interactive prompts
|
|
132
|
+
anyt-skill init -y # Use defaults, skip prompts
|
|
133
|
+
anyt-skill init -n my-skill # Specify name
|
|
134
|
+
anyt-skill init -d "My skill" # Specify description
|
|
135
|
+
anyt-skill init -a "Your Name" # Specify author
|
|
136
|
+
anyt-skill init -f # Overwrite existing anyt.json
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### Migrate from Old Structure
|
|
140
|
+
|
|
141
|
+
Migrate from old directory structure (`.skills/`, `skill-lock.json`):
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
anyt-skill migrate # Perform migration
|
|
145
|
+
anyt-skill migrate --dry-run # Preview changes without applying
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## Skill Management
|
|
149
|
+
|
|
150
|
+
### Add Skill
|
|
151
|
+
|
|
152
|
+
Add a skill to the project and install it:
|
|
153
|
+
|
|
154
|
+
```bash
|
|
155
|
+
anyt-skill add <specifier> [--agent <agents>]
|
|
156
|
+
|
|
157
|
+
# Registry specifier formats:
|
|
158
|
+
anyt-skill add @user/bsheng/vite_slides # Latest version
|
|
159
|
+
anyt-skill add @user/bsheng/vite_slides@2.0.0 # Specific version
|
|
160
|
+
anyt-skill add @user/bsheng/vite_slides@^2.0.0 # Semver range
|
|
161
|
+
|
|
162
|
+
# GitHub specifier formats:
|
|
163
|
+
anyt-skill add github:owner/repo # Entire repo, default branch
|
|
164
|
+
anyt-skill add github:owner/repo@main # Entire repo, specific branch
|
|
165
|
+
anyt-skill add github:owner/repo/path/to/skill # Subdirectory, default branch
|
|
166
|
+
anyt-skill add github:owner/repo/path@v1.0.0 # Subdirectory with tag/ref
|
|
167
|
+
|
|
168
|
+
# Local directory specifiers (for development):
|
|
169
|
+
anyt-skill add file:../my-skill # Relative path
|
|
170
|
+
anyt-skill add file:./local-skill # Current directory relative
|
|
171
|
+
anyt-skill add file:/absolute/path/to/skill # Absolute path
|
|
172
|
+
|
|
173
|
+
# Add multiple skills at once:
|
|
174
|
+
anyt-skill add @user/alice/skill1 @user/bob/skill2
|
|
175
|
+
|
|
176
|
+
# Agent options:
|
|
177
|
+
anyt-skill add @user/skill --agent claude-code,cursor # Link to multiple agents
|
|
178
|
+
anyt-skill add github:owner/repo --agent none # Skip symlink creation
|
|
179
|
+
anyt-skill add @user/skill -y # Skip agent selection prompt
|
|
180
|
+
anyt-skill add @user/skill -g # Install to user home directory
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Remove Skill
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
anyt-skill remove <name>
|
|
187
|
+
anyt-skill rm <name>
|
|
188
|
+
|
|
189
|
+
# Examples:
|
|
190
|
+
anyt-skill remove vite_slides
|
|
191
|
+
anyt-skill rm @user/bsheng/vite_slides
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
### List Skills
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
anyt-skill list
|
|
198
|
+
anyt-skill ls
|
|
199
|
+
|
|
200
|
+
# JSON output for scripting
|
|
201
|
+
anyt-skill list --json
|
|
202
|
+
|
|
203
|
+
# List global skills
|
|
204
|
+
anyt-skill list -g
|
|
205
|
+
|
|
206
|
+
# Example output:
|
|
207
|
+
# Installed skills:
|
|
208
|
+
#
|
|
209
|
+
# @user/alice/code-review@1.2.0 (registry)
|
|
210
|
+
# -> .claude/skills/code-review
|
|
211
|
+
#
|
|
212
|
+
# github:owner/repo/skills/react-tips (main@abc1234)
|
|
213
|
+
# -> .claude/skills/react-tips, .cursor/skills/react-tips
|
|
214
|
+
#
|
|
215
|
+
# Total: 2 skill(s) (1 registry, 1 github)
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### Install Skills
|
|
219
|
+
|
|
220
|
+
Install all skills from the lockfile:
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
anyt-skill install
|
|
224
|
+
anyt-skill i
|
|
225
|
+
|
|
226
|
+
# With options:
|
|
227
|
+
anyt-skill install --frozen-lockfile # CI/CD mode - fail if lockfile missing
|
|
228
|
+
anyt-skill install --dir ./vendor/skills # Install to specific directory
|
|
229
|
+
anyt-skill install --agent claude-code,cursor # Link to multiple agents
|
|
230
|
+
anyt-skill install --agent none # Skip symlink creation
|
|
231
|
+
anyt-skill install -y # Skip agent selection prompt
|
|
232
|
+
anyt-skill install -g # Install to user home directory
|
|
233
|
+
|
|
234
|
+
# Install specific packages (like npm):
|
|
235
|
+
anyt-skill install @user/alice/skill1 github:org/repo
|
|
236
|
+
|
|
237
|
+
# Install all skills from a skill list:
|
|
238
|
+
anyt-skill install --list @user/alice/my-favorites
|
|
239
|
+
anyt-skill install --list @org/myteam/starter-kit
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
### Link Skills
|
|
243
|
+
|
|
244
|
+
Recreate agent symlinks without reinstalling (useful after adding agents):
|
|
245
|
+
|
|
246
|
+
```bash
|
|
247
|
+
anyt-skill link
|
|
248
|
+
anyt-skill link --agent claude-code,cursor # Link to specific agents
|
|
249
|
+
anyt-skill link -y # Skip agent selection prompt
|
|
250
|
+
anyt-skill link -g # Recreate global agent symlinks
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
### Update Skills
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
anyt-skill update
|
|
257
|
+
anyt-skill update --dry-run # Preview updates without applying
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
### Search Skills
|
|
261
|
+
|
|
262
|
+
Search and discover skills from the registry:
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
anyt-skill search typescript # Search by keyword
|
|
266
|
+
anyt-skill find react # Alias for search
|
|
267
|
+
anyt-skill search react --json # JSON output
|
|
268
|
+
anyt-skill search --sort recent --limit 10
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### Check Outdated Skills
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
anyt-skill outdated # Check all packages
|
|
275
|
+
anyt-skill outdated code-review # Check specific package
|
|
276
|
+
anyt-skill outdated --json # JSON output
|
|
277
|
+
anyt-skill outdated --all # Include up-to-date packages
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
Exits with code `1` if any packages are outdated.
|
|
281
|
+
|
|
282
|
+
### Audit Skills
|
|
283
|
+
|
|
284
|
+
Verify integrity of installed skills:
|
|
285
|
+
|
|
286
|
+
```bash
|
|
287
|
+
anyt-skill audit # Human-readable output
|
|
288
|
+
anyt-skill audit --json # JSON output (for CI)
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
Checks for: missing packages, deprecated versions, corrupted installations.
|
|
292
|
+
|
|
293
|
+
## Versioning
|
|
294
|
+
|
|
295
|
+
### Bump Version
|
|
296
|
+
|
|
297
|
+
Bump the package version in `anyt.json` without publishing (similar to `npm version`):
|
|
298
|
+
|
|
299
|
+
```bash
|
|
300
|
+
anyt-skill version <bump>
|
|
301
|
+
|
|
302
|
+
# Bump types:
|
|
303
|
+
anyt-skill version major # 1.0.0 → 2.0.0
|
|
304
|
+
anyt-skill version minor # 1.0.0 → 1.1.0
|
|
305
|
+
anyt-skill version patch # 1.0.0 → 1.0.1
|
|
306
|
+
|
|
307
|
+
# Options:
|
|
308
|
+
anyt-skill version patch --dry-run # Preview what would change
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
The command:
|
|
312
|
+
- Reads the current version from `anyt.json`
|
|
313
|
+
- Increments the version according to semver rules
|
|
314
|
+
- Writes the updated version back to `anyt.json`
|
|
315
|
+
- Outputs the new version (e.g., `v1.0.1`)
|
|
316
|
+
|
|
317
|
+
## Publishing
|
|
318
|
+
|
|
319
|
+
### Publish Skill
|
|
320
|
+
|
|
321
|
+
Publish the current directory as a skill:
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
anyt-skill publish --access public # Publish as public
|
|
325
|
+
anyt-skill publish --access private # Publish as private
|
|
326
|
+
anyt-skill publish --access team --org myorg # Publish under org
|
|
327
|
+
anyt-skill publish --access public --bump patch # Auto-bump version
|
|
328
|
+
anyt-skill publish --access public --bump minor --tag beta
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
The `--access` flag is required and must be `public`, `private`, or `team`.
|
|
332
|
+
|
|
333
|
+
**Required `anyt.json` fields:**
|
|
334
|
+
- `name` - Skill name (e.g., `@user/username/skillname`)
|
|
335
|
+
- `version` - Semver version
|
|
336
|
+
|
|
337
|
+
**Optional `anyt.json` fields:**
|
|
338
|
+
- `description` - Skill description
|
|
339
|
+
- `author` - Author name
|
|
340
|
+
- `files` - Files to include (default: `["anyt.json", "SKILL.md", "runtime", "scripts", "data"]`)
|
|
341
|
+
|
|
342
|
+
### Unpublish Skill
|
|
343
|
+
|
|
344
|
+
Remove a published skill version (only within 72 hours of publishing):
|
|
345
|
+
|
|
346
|
+
```bash
|
|
347
|
+
anyt-skill unpublish <specifier> --force
|
|
348
|
+
|
|
349
|
+
# Delete specific version (user skills only)
|
|
350
|
+
anyt-skill unpublish @user/bsheng/vite_slides@2.0.0 --force
|
|
351
|
+
|
|
352
|
+
# Delete all versions (user skill)
|
|
353
|
+
anyt-skill unpublish @user/bsheng/vite_slides --force
|
|
354
|
+
|
|
355
|
+
# Delete all versions (org skill)
|
|
356
|
+
anyt-skill unpublish @org/myorg/team-skill --force
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
**Note:** Version-specific deletion for org skills is not yet supported. Use the full skill specifier without a version to delete the entire org skill.
|
|
360
|
+
|
|
361
|
+
### Deprecate Skill
|
|
362
|
+
|
|
363
|
+
Mark a skill version as deprecated (alternative to unpublish after 72 hours):
|
|
364
|
+
|
|
365
|
+
```bash
|
|
366
|
+
anyt-skill deprecate <specifier> [message]
|
|
367
|
+
|
|
368
|
+
# Deprecate with message
|
|
369
|
+
anyt-skill deprecate @user/bsheng/old-skill@1.0.0 "Use @user/bsheng/new-skill instead"
|
|
370
|
+
|
|
371
|
+
# Remove deprecation
|
|
372
|
+
anyt-skill deprecate @user/bsheng/old-skill@1.0.0 --undo
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
## Visibility
|
|
376
|
+
|
|
377
|
+
### Change Package Visibility
|
|
378
|
+
|
|
379
|
+
Change a package's visibility between public and private:
|
|
380
|
+
|
|
381
|
+
```bash
|
|
382
|
+
# Make current package public
|
|
383
|
+
anyt-skill access --public
|
|
384
|
+
|
|
385
|
+
# Make specific package public
|
|
386
|
+
anyt-skill access @user/bsheng/vite_slides --public
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
**Important:** Making a package public is irreversible (following npm conventions). Public packages cannot be made private again.
|
|
390
|
+
|
|
391
|
+
- **Private packages** (default): Require authentication to download
|
|
392
|
+
- **Public packages**: Anyone can download without authentication
|
|
393
|
+
|
|
394
|
+
## Client-Side Encryption
|
|
395
|
+
|
|
396
|
+
Private packages can be encrypted before upload so that the anyt server and storage (R2) only ever see ciphertext. The encryption key never leaves your machine.
|
|
397
|
+
|
|
398
|
+
### How It Works
|
|
399
|
+
|
|
400
|
+
- **Publish:** If an encryption key is set for the package scope, the CLI encrypts the tarball with AES-256-GCM before uploading. The server stores only ciphertext.
|
|
401
|
+
- **Install:** The CLI checks the package manifest for encryption metadata. If present, it decrypts the tarball locally before extracting.
|
|
402
|
+
- **Public packages** are never encrypted — encryption only applies to `private` and `team` visibility.
|
|
403
|
+
|
|
404
|
+
### Set an Encryption Key
|
|
405
|
+
|
|
406
|
+
Each scope (`@user/yourname` or `@org/orgname`) has one encryption key. All private packages under that scope use the same key.
|
|
407
|
+
|
|
408
|
+
```bash
|
|
409
|
+
# Set encryption key for your user scope
|
|
410
|
+
anyt-skill config set-encryption-key @user/yourname my-secret-passphrase
|
|
411
|
+
|
|
412
|
+
# Set encryption key for an organization
|
|
413
|
+
anyt-skill config set-encryption-key @org/myorg shared-team-secret
|
|
414
|
+
```
|
|
415
|
+
|
|
416
|
+
Or use environment variables:
|
|
417
|
+
|
|
418
|
+
```bash
|
|
419
|
+
export ANYT_ENCRYPTION_KEY_USER_YOURNAME="my-secret-passphrase"
|
|
420
|
+
export ANYT_ENCRYPTION_KEY_ORG_MYORG="shared-team-secret"
|
|
421
|
+
```
|
|
422
|
+
|
|
423
|
+
### Manage Encryption Keys
|
|
424
|
+
|
|
425
|
+
```bash
|
|
426
|
+
# Check if a key is set
|
|
427
|
+
anyt-skill config get-encryption-key @user/yourname
|
|
428
|
+
|
|
429
|
+
# Remove a key
|
|
430
|
+
anyt-skill config remove-encryption-key @user/yourname
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
### Publish with Encryption
|
|
434
|
+
|
|
435
|
+
When you publish a private package and an encryption key is configured for the scope, the CLI automatically encrypts:
|
|
436
|
+
|
|
437
|
+
```bash
|
|
438
|
+
anyt-skill config set-encryption-key @user/yourname my-secret
|
|
439
|
+
anyt-skill publish --access private
|
|
440
|
+
# Output: anyt-skill notice Encrypting package (scope: @user/yourname)
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
If no encryption key is set, the package is uploaded unencrypted with a warning.
|
|
444
|
+
|
|
445
|
+
### Install Encrypted Packages
|
|
446
|
+
|
|
447
|
+
```bash
|
|
448
|
+
# Set the same key used during publish
|
|
449
|
+
anyt-skill config set-encryption-key @user/yourname my-secret
|
|
450
|
+
|
|
451
|
+
# Install as usual — decryption is automatic
|
|
452
|
+
anyt-skill install
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
If you don't have the key, the CLI will show an error with instructions:
|
|
456
|
+
|
|
457
|
+
```
|
|
458
|
+
Error: Package @user/yourname/my-skill is encrypted.
|
|
459
|
+
Set the key: anyt-skill config set-encryption-key @user/yourname <passphrase>
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
### Team Sharing
|
|
463
|
+
|
|
464
|
+
For organization packages, share the encryption key with team members through a secure channel (e.g., a password manager). Each team member adds it to their local config:
|
|
465
|
+
|
|
466
|
+
```bash
|
|
467
|
+
anyt-skill config set-encryption-key @org/myorg shared-team-secret
|
|
468
|
+
```
|
|
469
|
+
|
|
470
|
+
### Important Notes
|
|
471
|
+
|
|
472
|
+
- **Key loss = data loss.** If you lose your encryption key, encrypted packages cannot be recovered. Back up your keys.
|
|
473
|
+
- The server stores encryption metadata (algorithm, salt, IV) alongside the package — these are not secrets and are safe to store publicly.
|
|
474
|
+
- Encryption is opt-in. If no key is configured, private packages are uploaded unencrypted.
|
|
475
|
+
|
|
476
|
+
## Configuration Files
|
|
477
|
+
|
|
478
|
+
### User Config: `~/.anytrc`
|
|
479
|
+
|
|
480
|
+
INI format configuration file:
|
|
481
|
+
|
|
482
|
+
```ini
|
|
483
|
+
; anyt Configuration
|
|
484
|
+
|
|
485
|
+
registry = https://registry.anyt.io
|
|
486
|
+
authToken = sk_...
|
|
487
|
+
username = myuser
|
|
488
|
+
|
|
489
|
+
; Multi-registry: Scope mappings (optional)
|
|
490
|
+
@myorg:registry = https://corp.anyt.io
|
|
491
|
+
|
|
492
|
+
; Multi-registry: Per-registry tokens (optional)
|
|
493
|
+
//anyt.io:authToken = sk_public_token
|
|
494
|
+
//corp.anyt.io:authToken = sk_corp_token
|
|
495
|
+
|
|
496
|
+
; Encryption keys (optional)
|
|
497
|
+
encryption-key:@user/yourname = my-secret-passphrase
|
|
498
|
+
encryption-key:@org/myorg = shared-team-secret
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
### Project Config: `.anytrc`
|
|
502
|
+
|
|
503
|
+
Project-specific configuration (optional):
|
|
504
|
+
|
|
505
|
+
```ini
|
|
506
|
+
; Project-specific anyt configuration
|
|
507
|
+
|
|
508
|
+
registry = https://custom.example.com
|
|
509
|
+
```
|
|
510
|
+
|
|
511
|
+
### Manifest: `anyt.json`
|
|
512
|
+
|
|
513
|
+
Package manifest file (created with `anyt-skill init`):
|
|
514
|
+
|
|
515
|
+
```json
|
|
516
|
+
{
|
|
517
|
+
"name": "@user/username/my-skill",
|
|
518
|
+
"version": "1.0.0",
|
|
519
|
+
"description": "A helpful skill for...",
|
|
520
|
+
"author": "Your Name",
|
|
521
|
+
"files": ["anyt.json", "SKILL.md", "runtime", "scripts", "data"],
|
|
522
|
+
"dependencies": {
|
|
523
|
+
"@user/other/skill": "^1.0.0"
|
|
524
|
+
},
|
|
525
|
+
"githubDependencies": {
|
|
526
|
+
"github:owner/repo/skills/example": "main"
|
|
527
|
+
},
|
|
528
|
+
"localDependencies": {
|
|
529
|
+
"file:../my-local-skill": "*"
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
```
|
|
533
|
+
|
|
534
|
+
### Lockfile: `anyt-lock.json`
|
|
535
|
+
|
|
536
|
+
```json
|
|
537
|
+
{
|
|
538
|
+
"lockfileVersion": 4,
|
|
539
|
+
"registryUrl": "https://registry.anyt.io",
|
|
540
|
+
"packages": {
|
|
541
|
+
"@user/bsheng/vite_slides": {
|
|
542
|
+
"version": "2.0.0",
|
|
543
|
+
"resolved": "https://registry.anyt.io/...",
|
|
544
|
+
"integrity": "sha256-abc123..."
|
|
545
|
+
}
|
|
546
|
+
},
|
|
547
|
+
"githubPackages": {
|
|
548
|
+
"github:owner/repo/path": {
|
|
549
|
+
"version": "abc1234",
|
|
550
|
+
"resolved": "https://github.com/owner/repo",
|
|
551
|
+
"integrity": "sha256-...",
|
|
552
|
+
"gitCommit": "abc1234567890...",
|
|
553
|
+
"gitRef": "main"
|
|
554
|
+
}
|
|
555
|
+
},
|
|
556
|
+
"localPackages": {
|
|
557
|
+
"file:../my-local-skill": {
|
|
558
|
+
"version": "local",
|
|
559
|
+
"path": "../my-local-skill",
|
|
560
|
+
"resolvedPath": "/absolute/path/to/my-local-skill",
|
|
561
|
+
"name": "my-local-skill"
|
|
562
|
+
}
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
```
|
|
566
|
+
|
|
567
|
+
## Configuration Resolution
|
|
568
|
+
|
|
569
|
+
Configuration is resolved in priority order:
|
|
570
|
+
|
|
571
|
+
1. **Environment Variables** (`ANYT_REGISTRY_URL`, `ANYT_API_KEY`) - Highest
|
|
572
|
+
2. **Project Config** (`.anytrc` in project directory)
|
|
573
|
+
3. **User Config** (`~/.anytrc`)
|
|
574
|
+
4. **Defaults** - Lowest
|
|
575
|
+
|
|
576
|
+
## Environment Variables
|
|
577
|
+
|
|
578
|
+
| Variable | Purpose |
|
|
579
|
+
|----------|---------|
|
|
580
|
+
| `ANYT_API_KEY` | Override API key |
|
|
581
|
+
| `ANYT_DEBUG` | Enable debug logging |
|
|
582
|
+
| `GITHUB_TOKEN` | GitHub token for private repos and higher rate limits |
|
|
583
|
+
| `ANYT_ENCRYPTION_KEY_<SCOPE>` | Encryption key for a scope (e.g., `ANYT_ENCRYPTION_KEY_USER_ALICE`) |
|
|
584
|
+
|
|
585
|
+
## Directory Structure
|
|
586
|
+
|
|
587
|
+
```
|
|
588
|
+
project/
|
|
589
|
+
├── .anytrc # Project config (optional)
|
|
590
|
+
├── anyt.json # Manifest with dependencies
|
|
591
|
+
├── anyt-lock.json # Lockfile
|
|
592
|
+
├── .anyt/
|
|
593
|
+
│ ├── skills/ # Installed skills
|
|
594
|
+
│ │ ├── {username}/ # Registry skills
|
|
595
|
+
│ │ │ └── {skillname}/
|
|
596
|
+
│ │ ├── _github/ # GitHub skills
|
|
597
|
+
│ │ │ └── {owner}/
|
|
598
|
+
│ │ │ └── {repo}/
|
|
599
|
+
│ │ │ └── {path}/
|
|
600
|
+
│ │ └── _local/ # Local skill symlinks
|
|
601
|
+
│ │ └── {name} -> ../../../path/to/local/skill
|
|
602
|
+
│ └── cache/ # Tarball cache
|
|
603
|
+
├── .claude/
|
|
604
|
+
│ └── skills/ # Symlinks for claude-code agent
|
|
605
|
+
└── .cursor/
|
|
606
|
+
└── skills/ # Symlinks for cursor agent (if configured)
|
|
607
|
+
|
|
608
|
+
~/
|
|
609
|
+
└── .anytrc # User config
|
|
610
|
+
```
|
|
611
|
+
|
|
612
|
+
## Common Workflows
|
|
613
|
+
|
|
614
|
+
### CI/CD Integration
|
|
615
|
+
|
|
616
|
+
```bash
|
|
617
|
+
# Use environment variable for authentication
|
|
618
|
+
export ANYT_API_KEY=sk_ci_key
|
|
619
|
+
|
|
620
|
+
# Install with frozen lockfile (fails if lockfile missing or outdated)
|
|
621
|
+
anyt-skill install --frozen-lockfile
|
|
622
|
+
```
|
|
623
|
+
|
|
624
|
+
### Local Development Workflow
|
|
625
|
+
|
|
626
|
+
Use local dependencies to develop and test skills before publishing:
|
|
627
|
+
|
|
628
|
+
```bash
|
|
629
|
+
# Add a local skill for development
|
|
630
|
+
anyt-skill add file:../my-skill
|
|
631
|
+
|
|
632
|
+
# The skill is symlinked, so changes are instant
|
|
633
|
+
# No need to reinstall after editing the local skill
|
|
634
|
+
|
|
635
|
+
# When ready to publish
|
|
636
|
+
cd ../my-skill
|
|
637
|
+
anyt-skill publish
|
|
638
|
+
```
|
|
639
|
+
|
|
640
|
+
In your `anyt.json`:
|
|
641
|
+
```json
|
|
642
|
+
{
|
|
643
|
+
"localDependencies": {
|
|
644
|
+
"file:../my-local-skill": "*"
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
```
|
|
648
|
+
|
|
649
|
+
### Publishing Workflow
|
|
650
|
+
|
|
651
|
+
```bash
|
|
652
|
+
# Initialize a new skill
|
|
653
|
+
anyt-skill init
|
|
654
|
+
|
|
655
|
+
# Edit anyt.json and create SKILL.md
|
|
656
|
+
# Then publish with auto-bump
|
|
657
|
+
anyt-skill publish --bump patch
|
|
658
|
+
```
|
|
659
|
+
|
|
660
|
+
## Skill Lists
|
|
661
|
+
|
|
662
|
+
### List Skill Lists
|
|
663
|
+
|
|
664
|
+
```bash
|
|
665
|
+
anyt-skill skill-list list # Your lists
|
|
666
|
+
anyt-skill skill-list list --org myorg # Organization's lists
|
|
667
|
+
anyt-skill skill-list list --json # JSON output
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
### Create Skill List
|
|
671
|
+
|
|
672
|
+
```bash
|
|
673
|
+
anyt-skill skill-list create my-favorites
|
|
674
|
+
anyt-skill skill-list create my-favorites --visibility public
|
|
675
|
+
anyt-skill skill-list create team-tools --org myorg -d "Our team's tools"
|
|
676
|
+
```
|
|
677
|
+
|
|
678
|
+
### Show Skill List
|
|
679
|
+
|
|
680
|
+
```bash
|
|
681
|
+
anyt-skill skill-list show @user/alice/my-favorites
|
|
682
|
+
anyt-skill skill-list show @org/myorg/team-tools --json
|
|
683
|
+
```
|
|
684
|
+
|
|
685
|
+
### Update Skill List
|
|
686
|
+
|
|
687
|
+
```bash
|
|
688
|
+
anyt-skill skill-list update @user/alice/my-favorites --description "Updated desc"
|
|
689
|
+
anyt-skill skill-list update @user/alice/my-favorites --visibility public
|
|
690
|
+
```
|
|
691
|
+
|
|
692
|
+
### Delete Skill List
|
|
693
|
+
|
|
694
|
+
```bash
|
|
695
|
+
anyt-skill skill-list delete @user/alice/my-favorites
|
|
696
|
+
```
|
|
697
|
+
|
|
698
|
+
### Add Skill to List
|
|
699
|
+
|
|
700
|
+
```bash
|
|
701
|
+
anyt-skill skill-list add-skill @user/alice/my-favorites @user/bob/code-review
|
|
702
|
+
anyt-skill skill-list add-skill @user/alice/my-favorites @user/bob/lint --note "Great for CI"
|
|
703
|
+
```
|
|
704
|
+
|
|
705
|
+
### Remove Skill from List
|
|
706
|
+
|
|
707
|
+
```bash
|
|
708
|
+
anyt-skill skill-list remove-skill @user/alice/my-favorites @user/bob/code-review
|
|
709
|
+
```
|
|
710
|
+
|
|
711
|
+
### Install from Skill List
|
|
712
|
+
|
|
713
|
+
```bash
|
|
714
|
+
anyt-skill skill-list install @user/alice/my-favorites
|
|
715
|
+
anyt-skill skill-list install @org/myorg/team-tools --agent claude-code
|
|
716
|
+
```
|
|
717
|
+
|
|
718
|
+
## Notebook Management
|
|
719
|
+
|
|
720
|
+
### Upload Notebook
|
|
721
|
+
|
|
722
|
+
```bash
|
|
723
|
+
anyt-skill notebook upload notebook.anyt.md
|
|
724
|
+
anyt-skill notebook upload notebook.anyt.md --visibility public
|
|
725
|
+
anyt-skill notebook upload notebook.anyt.md --org myorg
|
|
726
|
+
```
|
|
727
|
+
|
|
728
|
+
### List Notebooks
|
|
729
|
+
|
|
730
|
+
```bash
|
|
731
|
+
anyt-skill notebook list
|
|
732
|
+
anyt-skill notebook list --org myorg
|
|
733
|
+
anyt-skill notebook list --json
|
|
734
|
+
```
|
|
735
|
+
|
|
736
|
+
### Download Notebook
|
|
737
|
+
|
|
738
|
+
```bash
|
|
739
|
+
anyt-skill notebook download <id>
|
|
740
|
+
```
|
|
741
|
+
|
|
742
|
+
### Delete Notebook
|
|
743
|
+
|
|
744
|
+
```bash
|
|
745
|
+
anyt-skill notebook delete <id>
|
|
746
|
+
```
|
|
747
|
+
|
|
748
|
+
## Self-Update
|
|
749
|
+
|
|
750
|
+
### Upgrade anyt-cli
|
|
751
|
+
|
|
752
|
+
Update anyt-skill itself to the latest version:
|
|
753
|
+
|
|
754
|
+
```bash
|
|
755
|
+
anyt-skill upgrade
|
|
756
|
+
```
|
|
757
|
+
|
|
758
|
+
Auto-detects your package manager (pnpm, npm, yarn, bun). The CLI also checks for updates every 24 hours and notifies you when a newer version is available.
|
|
759
|
+
|
|
760
|
+
## Troubleshooting
|
|
761
|
+
|
|
762
|
+
| Error | Solution |
|
|
763
|
+
|-------|----------|
|
|
764
|
+
| "Not logged in" | Run `anyt-skill login --api-key <key>` |
|
|
765
|
+
| "Invalid skill specifier" | Use format: `@user/{username}/{name}[@version]` |
|
|
766
|
+
| "No lockfile found" | Run `anyt-skill add <specifier>` first |
|
|
767
|
+
|
|
768
|
+
Enable debug mode for detailed output:
|
|
769
|
+
|
|
770
|
+
```bash
|
|
771
|
+
ANYT_DEBUG=1 anyt <command>
|
|
772
|
+
```
|