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/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
+ ```