agent-loadout 1.0.2 → 1.2.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.
|
@@ -17,7 +17,13 @@ var PRESETS = [
|
|
|
17
17
|
{
|
|
18
18
|
id: "media",
|
|
19
19
|
name: "Media",
|
|
20
|
-
description: "
|
|
20
|
+
description: "Audio, video, and image pipeline tools",
|
|
21
|
+
defaultOn: false
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
id: "design",
|
|
25
|
+
name: "Design",
|
|
26
|
+
description: "Visual asset workflows \u2014 SVG, colour, and image preview",
|
|
21
27
|
defaultOn: false
|
|
22
28
|
},
|
|
23
29
|
{
|
|
@@ -359,6 +365,54 @@ var TOOLS = [
|
|
|
359
365
|
tags: ["interactive shell", "tui prompt", "user input", "shell script ui", "confirm dialog"],
|
|
360
366
|
seeAlso: ["fzf", "just"]
|
|
361
367
|
},
|
|
368
|
+
{
|
|
369
|
+
id: "oha",
|
|
370
|
+
name: "oha",
|
|
371
|
+
description: "HTTP load tester with JSON output",
|
|
372
|
+
preset: "agent",
|
|
373
|
+
verify: "oha --version",
|
|
374
|
+
install: brewScoopCargo("oha", "oha"),
|
|
375
|
+
tags: ["load test", "http benchmark", "stress test", "api performance", "latency"],
|
|
376
|
+
seeAlso: ["xh", "hyperfine"]
|
|
377
|
+
},
|
|
378
|
+
{
|
|
379
|
+
id: "gron",
|
|
380
|
+
name: "gron",
|
|
381
|
+
description: "Flatten JSON for grepping",
|
|
382
|
+
preset: "agent",
|
|
383
|
+
verify: "gron --version",
|
|
384
|
+
install: {
|
|
385
|
+
darwin: [{ method: "brew", package: "gron" }],
|
|
386
|
+
linux: null,
|
|
387
|
+
win32: [{ method: "scoop", package: "gron" }]
|
|
388
|
+
},
|
|
389
|
+
tags: ["json grep", "flatten json", "json search", "json path", "json debug"],
|
|
390
|
+
seeAlso: ["jq", "fx", "duckdb"]
|
|
391
|
+
},
|
|
392
|
+
{
|
|
393
|
+
id: "lychee",
|
|
394
|
+
name: "lychee",
|
|
395
|
+
description: "Fast link checker",
|
|
396
|
+
preset: "agent",
|
|
397
|
+
verify: "lychee --version",
|
|
398
|
+
install: brewScoopCargo("lychee", "lychee"),
|
|
399
|
+
tags: ["link check", "broken links", "url validation", "documentation", "dead links"],
|
|
400
|
+
seeAlso: ["xh", "typos", "vale"]
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
id: "vale",
|
|
404
|
+
name: "vale",
|
|
405
|
+
description: "Prose linter for docs",
|
|
406
|
+
preset: "agent",
|
|
407
|
+
verify: "vale --version",
|
|
408
|
+
install: {
|
|
409
|
+
darwin: [{ method: "brew", package: "vale" }],
|
|
410
|
+
linux: null,
|
|
411
|
+
win32: [{ method: "scoop", package: "vale" }]
|
|
412
|
+
},
|
|
413
|
+
tags: ["prose lint", "writing style", "documentation quality", "grammar", "technical writing"],
|
|
414
|
+
seeAlso: ["typos", "lychee", "pandoc"]
|
|
415
|
+
},
|
|
362
416
|
// ── Media ─────────────────────────────────────────────
|
|
363
417
|
{
|
|
364
418
|
id: "ffmpeg",
|
|
@@ -392,17 +446,104 @@ var TOOLS = [
|
|
|
392
446
|
verify: "magick -version",
|
|
393
447
|
install: universal("imagemagick"),
|
|
394
448
|
tags: ["image resize", "image convert", "image transform", "thumbnail", "crop image"],
|
|
395
|
-
seeAlso: ["exiftool", "
|
|
449
|
+
seeAlso: ["exiftool", "vips", "ffmpeg"]
|
|
450
|
+
},
|
|
451
|
+
{
|
|
452
|
+
id: "vips",
|
|
453
|
+
name: "libvips",
|
|
454
|
+
description: "Fast image processing pipeline",
|
|
455
|
+
preset: "media",
|
|
456
|
+
verify: "vips --version",
|
|
457
|
+
install: {
|
|
458
|
+
darwin: [{ method: "brew", package: "vips" }],
|
|
459
|
+
linux: [{ method: "apt", package: "libvips-tools" }],
|
|
460
|
+
win32: null
|
|
461
|
+
},
|
|
462
|
+
tags: ["image processing", "batch images", "resize", "thumbnail", "sharp backend"],
|
|
463
|
+
seeAlso: ["imagemagick", "resvg"]
|
|
396
464
|
},
|
|
465
|
+
// ── Design ─────────────────────────────────────────────
|
|
397
466
|
{
|
|
398
467
|
id: "svgo",
|
|
399
468
|
name: "svgo",
|
|
400
469
|
description: "SVG optimiser",
|
|
401
|
-
preset: "
|
|
470
|
+
preset: "design",
|
|
402
471
|
verify: "svgo --version",
|
|
403
472
|
install: npmAll("svgo"),
|
|
404
473
|
tags: ["svg optimize", "svg compress", "vector graphics", "svg minify", "icon optimize"],
|
|
405
|
-
seeAlso: ["imagemagick"]
|
|
474
|
+
seeAlso: ["resvg", "imagemagick"]
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
id: "resvg",
|
|
478
|
+
name: "resvg",
|
|
479
|
+
description: "High-fidelity SVG renderer",
|
|
480
|
+
preset: "design",
|
|
481
|
+
verify: "resvg --version",
|
|
482
|
+
install: {
|
|
483
|
+
darwin: [{ method: "brew", package: "resvg" }],
|
|
484
|
+
linux: [{ method: "cargo", package: "resvg" }],
|
|
485
|
+
win32: null
|
|
486
|
+
},
|
|
487
|
+
tags: ["svg render", "svg to png", "vector graphics", "svg rasterize"],
|
|
488
|
+
seeAlso: ["svgo", "vips"]
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
id: "chafa",
|
|
492
|
+
name: "chafa",
|
|
493
|
+
description: "Image-to-ANSI art renderer",
|
|
494
|
+
preset: "design",
|
|
495
|
+
verify: "chafa --version",
|
|
496
|
+
install: {
|
|
497
|
+
darwin: [{ method: "brew", package: "chafa" }],
|
|
498
|
+
linux: [{ method: "apt", package: "chafa" }],
|
|
499
|
+
win32: null
|
|
500
|
+
},
|
|
501
|
+
tags: ["image preview", "terminal image", "ansi art", "image in terminal"],
|
|
502
|
+
seeAlso: ["vips", "imagemagick"]
|
|
503
|
+
},
|
|
504
|
+
{
|
|
505
|
+
id: "pastel",
|
|
506
|
+
name: "pastel",
|
|
507
|
+
description: "Color manipulation and palette tool",
|
|
508
|
+
preset: "design",
|
|
509
|
+
verify: "pastel --version",
|
|
510
|
+
install: brewScoopCargo("pastel", "pastel"),
|
|
511
|
+
tags: ["color", "palette", "design tokens", "color convert", "color inspect"],
|
|
512
|
+
seeAlso: ["chafa", "bat"]
|
|
513
|
+
},
|
|
514
|
+
{
|
|
515
|
+
id: "d2",
|
|
516
|
+
name: "d2",
|
|
517
|
+
description: "Declarative diagramming language",
|
|
518
|
+
preset: "design",
|
|
519
|
+
verify: "d2 version",
|
|
520
|
+
install: {
|
|
521
|
+
darwin: [{ method: "brew", package: "d2" }],
|
|
522
|
+
linux: null,
|
|
523
|
+
win32: [{ method: "scoop", package: "d2" }]
|
|
524
|
+
},
|
|
525
|
+
tags: ["diagram", "architecture diagram", "flowchart", "svg generation", "documentation"],
|
|
526
|
+
seeAlso: ["resvg", "svgo", "pandoc"]
|
|
527
|
+
},
|
|
528
|
+
{
|
|
529
|
+
id: "pngquant",
|
|
530
|
+
name: "pngquant",
|
|
531
|
+
description: "Lossy PNG compressor",
|
|
532
|
+
preset: "design",
|
|
533
|
+
verify: "pngquant --version",
|
|
534
|
+
install: universal("pngquant"),
|
|
535
|
+
tags: ["png compress", "image optimize", "lossy compression", "web assets"],
|
|
536
|
+
seeAlso: ["oxipng", "svgo", "imagemagick"]
|
|
537
|
+
},
|
|
538
|
+
{
|
|
539
|
+
id: "oxipng",
|
|
540
|
+
name: "oxipng",
|
|
541
|
+
description: "Lossless PNG optimizer",
|
|
542
|
+
preset: "design",
|
|
543
|
+
verify: "oxipng --version",
|
|
544
|
+
install: brewScoopCargo("oxipng", "oxipng"),
|
|
545
|
+
tags: ["png optimize", "lossless compression", "image optimize", "web assets"],
|
|
546
|
+
seeAlso: ["pngquant", "svgo", "imagemagick"]
|
|
406
547
|
},
|
|
407
548
|
// ── DX ────────────────────────────────────────────────
|
|
408
549
|
{
|
|
@@ -587,6 +728,44 @@ var TOOLS = [
|
|
|
587
728
|
tags: ["toml", "toml lint", "toml format", "config validation", "cargo toml"],
|
|
588
729
|
seeAlso: ["yq", "biome"]
|
|
589
730
|
},
|
|
731
|
+
{
|
|
732
|
+
id: "fx",
|
|
733
|
+
name: "fx",
|
|
734
|
+
description: "Interactive JSON viewer",
|
|
735
|
+
preset: "dx",
|
|
736
|
+
verify: "fx --version",
|
|
737
|
+
install: {
|
|
738
|
+
darwin: [{ method: "brew", package: "fx" }],
|
|
739
|
+
linux: null,
|
|
740
|
+
win32: [{ method: "scoop", package: "fx" }]
|
|
741
|
+
},
|
|
742
|
+
tags: ["json viewer", "interactive json", "json explorer", "json filter"],
|
|
743
|
+
seeAlso: ["jq", "bat"]
|
|
744
|
+
},
|
|
745
|
+
{
|
|
746
|
+
id: "csview",
|
|
747
|
+
name: "csview",
|
|
748
|
+
description: "CSV/TSV viewer with column alignment",
|
|
749
|
+
preset: "dx",
|
|
750
|
+
verify: "csview --version",
|
|
751
|
+
install: brewScoopCargo("csview", "csview"),
|
|
752
|
+
tags: ["csv", "tsv", "tabular data", "spreadsheet", "data viewer"],
|
|
753
|
+
seeAlso: ["duckdb", "jq"]
|
|
754
|
+
},
|
|
755
|
+
{
|
|
756
|
+
id: "asciinema",
|
|
757
|
+
name: "asciinema",
|
|
758
|
+
description: "Terminal session recorder",
|
|
759
|
+
preset: "dx",
|
|
760
|
+
verify: "asciinema --version",
|
|
761
|
+
install: {
|
|
762
|
+
darwin: [{ method: "brew", package: "asciinema" }],
|
|
763
|
+
linux: [{ method: "apt", package: "asciinema" }],
|
|
764
|
+
win32: null
|
|
765
|
+
},
|
|
766
|
+
tags: ["terminal recording", "demo", "screen capture", "documentation"],
|
|
767
|
+
seeAlso: ["bat", "glow"]
|
|
768
|
+
},
|
|
590
769
|
// ── Security ──────────────────────────────────────────
|
|
591
770
|
{
|
|
592
771
|
id: "trivy",
|
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
getToolsByIds,
|
|
6
6
|
getToolsByPreset,
|
|
7
7
|
validateToolIds
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-HDF2R3CI.js";
|
|
9
9
|
|
|
10
10
|
// src/index.ts
|
|
11
11
|
import { Command } from "commander";
|
|
@@ -487,19 +487,25 @@ var jq_default = `
|
|
|
487
487
|
Filter, transform, and extract data from JSON. Essential for working with API responses and config files.
|
|
488
488
|
|
|
489
489
|
## Trusted commands
|
|
490
|
-
- Pretty print: \`
|
|
491
|
-
- Extract field: \`jq '.fieldName'\`
|
|
490
|
+
- Pretty print: \`jq . file.json\`
|
|
491
|
+
- Extract field: \`jq '.fieldName' file.json\`
|
|
492
492
|
- Pick multiple fields: \`jq '{id, name, status}'\`
|
|
493
493
|
- Map over array: \`jq '[.items[] | {id, name}]'\`
|
|
494
494
|
- Count array: \`jq '.items | length'\`
|
|
495
495
|
- Filter: \`jq '.items[] | select(.status == "active")'\`
|
|
496
496
|
- Default for missing: \`jq '.name // "unknown"'\`
|
|
497
|
-
- Validate JSON (fail on error): \`jq -e
|
|
497
|
+
- Validate JSON (fail on error): \`jq -e . file.json\`
|
|
498
|
+
|
|
499
|
+
## Output format
|
|
500
|
+
Pretty-printed JSON by default. Use \`-r\` for raw strings (no quotes). Use \`-c\` for compact single-line JSON. \`-e\` / \`--exit-status\` exits non-zero on null or false output.
|
|
501
|
+
|
|
502
|
+
## Why it matters for agents
|
|
503
|
+
The standard tool for parsing API responses and config files in shell pipelines. \`-e\` flag makes null checks composable: \`jq -e '.token' response.json || exit 1\`.
|
|
498
504
|
|
|
499
505
|
## Gotchas
|
|
500
|
-
- Use \`-
|
|
501
|
-
- Use
|
|
502
|
-
-
|
|
506
|
+
- Use \`-r\` for raw string output (no quotes) \u2014 required when passing jq output to other commands.
|
|
507
|
+
- Missing fields return null, not an error. Use \`//\` for defaults: \`.name // "unknown"\`.
|
|
508
|
+
- Use \`-e\` to get non-zero exit code on null/false results \u2014 essential for conditional pipelines.
|
|
503
509
|
`.trim();
|
|
504
510
|
|
|
505
511
|
// src/skills/yq.ts
|
|
@@ -516,6 +522,9 @@ Same as jq but for YAML files. Query, filter, and transform YAML.
|
|
|
516
522
|
- Update in place: \`yq -i '.version = "2.0"' file.yaml\`
|
|
517
523
|
- Merge files: \`yq eval-all 'select(fi == 0) * select(fi == 1)' a.yaml b.yaml\`
|
|
518
524
|
|
|
525
|
+
## Output format
|
|
526
|
+
YAML by default. \`--output-format=json\` (or \`-o json\`) for JSON. \`--output-format=props\` for Java properties format. \`-P\` (prettyPrint) for pretty YAML from any input format.
|
|
527
|
+
|
|
519
528
|
## Gotchas
|
|
520
529
|
- There are multiple tools called yq. This refers to the Go version (mikefarah/yq), installed via brew.
|
|
521
530
|
- Use \`-i\` carefully \u2014 it modifies files in place.
|
|
@@ -605,16 +614,29 @@ var fzf_default = `
|
|
|
605
614
|
# fzf \u2014 Fuzzy finder
|
|
606
615
|
|
|
607
616
|
## When to use
|
|
608
|
-
Interactive fuzzy search for files, command history, git branches \u2014 anything with a list.
|
|
617
|
+
Interactive fuzzy search for files, command history, git branches \u2014 anything with a list. Also useful non-interactively via \`--filter\`.
|
|
609
618
|
|
|
610
619
|
## Trusted commands
|
|
611
|
-
- Find files: \`fzf\`
|
|
620
|
+
- Find files interactively: \`fzf\`
|
|
612
621
|
- Pipe any list: \`git branch | fzf\`
|
|
613
622
|
- Preview files: \`fzf --preview 'bat --color=always {}'\`
|
|
614
623
|
- With fd: \`fd -t f | fzf\`
|
|
624
|
+
- Non-interactive filter (scripting): \`echo -e "foo
|
|
625
|
+
bar
|
|
626
|
+
baz" | fzf --filter "ba"\`
|
|
627
|
+
- Multi-select: \`fzf --multi\`
|
|
628
|
+
|
|
629
|
+
## Output format
|
|
630
|
+
Selected line(s) written to stdout, newline-separated. Exits 130 if the user cancels (Ctrl-C or Esc) \u2014 use this to detect cancellation in scripts. In \`--filter\` mode, prints all lines that match the query and exits 0/1.
|
|
631
|
+
|
|
632
|
+
## Why it matters for agents
|
|
633
|
+
\`--filter\` mode makes fzf a non-interactive fuzzy matcher \u2014 pipe a list in, get filtered results out without any TUI. Useful for selecting the best match from a known set without full regex. Exit code 130 on cancel is a reliable signal in pipelines.
|
|
615
634
|
|
|
616
635
|
## Gotchas
|
|
617
|
-
-
|
|
636
|
+
- Exit code 130 on cancel \u2014 check for this in scripts to detect user abort vs no results (exit 1).
|
|
637
|
+
- \`FZF_DEFAULT_COMMAND\` sets the default input source (e.g. \`export FZF_DEFAULT_COMMAND='fd -t f'\`).
|
|
638
|
+
- \`--filter\` runs non-interactively \u2014 pipe-safe for scripting without a TTY.
|
|
639
|
+
- \`--multi\` outputs one selected item per line; combine with \`xargs\` for batch operations.
|
|
618
640
|
`.trim();
|
|
619
641
|
|
|
620
642
|
// src/skills/shellcheck.ts
|
|
@@ -663,6 +685,9 @@ Search and replace code using syntax tree patterns instead of regex. Far safer f
|
|
|
663
685
|
- Replacing with structural awareness (e.g. moving arguments)
|
|
664
686
|
- Any refactor where brackets/nesting matters
|
|
665
687
|
|
|
688
|
+
## Output format
|
|
689
|
+
\`file:line:col: matched text\` format by default. \`--json\` emits structured match objects with file, range, metavariable bindings, and matched text \u2014 use for programmatic processing of results.
|
|
690
|
+
|
|
666
691
|
## Gotchas
|
|
667
692
|
- The binary is called \`sg\`, not \`ast-grep\`.
|
|
668
693
|
- \`$ARG\` is a metavariable that matches any single node. \`$$$ARGS\` matches multiple.
|
|
@@ -704,6 +729,9 @@ Generate a regular expression from a set of example strings. Useful when you kno
|
|
|
704
729
|
- Case insensitive: \`grex --ignore-case "Foo" "FOO" "foo"\`
|
|
705
730
|
- Verbose regex: \`grex --verbose "foo-123" "bar-456"\`
|
|
706
731
|
|
|
732
|
+
## Output format
|
|
733
|
+
Single regex string to stdout, ready to copy-paste or pipe. No trailing newline issues \u2014 capture with \`PATTERN=$(grex ...)\` and use directly.
|
|
734
|
+
|
|
707
735
|
## Gotchas
|
|
708
736
|
- Output is a raw regex string \u2014 pipe directly into \`rg\`, \`sd\`, or save to a variable.
|
|
709
737
|
|
|
@@ -725,6 +753,9 @@ Detect unused files, exports, dependencies, and types in TypeScript/JavaScript p
|
|
|
725
753
|
- Unused deps only: \`knip --include dependencies\`
|
|
726
754
|
- Machine-readable with scopes: \`knip --reporter json --include files,exports,dependencies\`
|
|
727
755
|
|
|
756
|
+
## Output format
|
|
757
|
+
Text report to stdout grouped by category (files, exports, dependencies). \`--reporter json\` emits a structured JSON object with arrays per category \u2014 pipe to \`jq\` to filter specific types. Exits 1 if issues found (CI-friendly).
|
|
758
|
+
|
|
728
759
|
## Why it matters for agents
|
|
729
760
|
Identifies dead code before large refactors \u2014 agents can safely delete unused files and exports flagged by knip without breaking the build.
|
|
730
761
|
|
|
@@ -748,6 +779,9 @@ Find and replace in files. Like sed but with intuitive syntax \u2014 no escaping
|
|
|
748
779
|
- Regex replace: \`sd 'v(\\d+)' 'version-$1' file.txt\`
|
|
749
780
|
- Replace across files (with fd): \`fd -e ts -x sd 'old' 'new' {}\`
|
|
750
781
|
|
|
782
|
+
## Output format
|
|
783
|
+
Rewrites the file in-place with no stdout output. Use \`-p\` / \`--preview\` to print a diff of what would change without modifying the file \u2014 safe to run first.
|
|
784
|
+
|
|
751
785
|
## Gotchas
|
|
752
786
|
- Uses regex by default. Use \`-F\` for fixed/literal strings.
|
|
753
787
|
- Modifies files in place when given a filename. Use \`-p\` to preview first.
|
|
@@ -772,12 +806,17 @@ Benchmark commands to compare performance. Runs commands multiple times and repo
|
|
|
772
806
|
- Non-interactive + export: \`hyperfine --style basic --export-json results.json 'cmd1' 'cmd2'\`
|
|
773
807
|
- With prepare step: \`hyperfine --prepare 'make clean' 'make build'\`
|
|
774
808
|
|
|
809
|
+
## Output format
|
|
810
|
+
Human-readable table to stderr by default (mean, stddev, min, max per command). \`--export-json results.json\` writes structured JSON with full timing arrays. \`--style basic\` disables the progress bar and colour \u2014 required for clean CI logs.
|
|
811
|
+
|
|
775
812
|
## Why it matters for agents
|
|
776
813
|
\`--export-json\` lets agents compare builds and commands quantitatively \u2014 structured results include mean, stddev, min, max per command.
|
|
777
814
|
|
|
778
815
|
## Gotchas
|
|
779
816
|
- Wrap commands in quotes.
|
|
780
817
|
- Use \`--warmup\` for commands that benefit from caching.
|
|
818
|
+
- Use \`--style basic\` in CI environments \u2014 disables the progress bar and colour codes that pollute CI logs.
|
|
819
|
+
- Use \`--shell=none\` to avoid shell startup overhead when benchmarking micro-operations.
|
|
781
820
|
`.trim();
|
|
782
821
|
|
|
783
822
|
// src/skills/tokei.ts
|
|
@@ -853,6 +892,8 @@ Read, write, and strip metadata (EXIF, IPTC, XMP) from images and media files.
|
|
|
853
892
|
## Gotchas
|
|
854
893
|
- Field names are case-insensitive.
|
|
855
894
|
- Use \`-json\` for structured output.
|
|
895
|
+
- By default, modifying metadata creates a \`filename_original\` backup file \u2014 use \`-overwrite_original\` to skip backups when you're confident in the operation.
|
|
896
|
+
- Without \`-overwrite_original\`, directories fill up with \`*_original\` files after batch operations \u2014 clean up with \`find . -name "*_original" -delete\`.
|
|
856
897
|
|
|
857
898
|
## Why it matters for agents
|
|
858
899
|
\`-json\` output enables structured metadata extraction from any media file \u2014 agents can batch-read EXIF data, filter by GPS coordinates, or rename files by capture date programmatically.
|
|
@@ -877,7 +918,9 @@ Resize, crop, convert, and manipulate images from the command line.
|
|
|
877
918
|
- \`magick mogrify\` modifies files in place. Use \`magick convert\` (or just \`magick in out\`) for safe transforms.
|
|
878
919
|
|
|
879
920
|
## Gotchas
|
|
880
|
-
- The binary is \`magick\` (ImageMagick 7). Older versions used \`convert
|
|
921
|
+
- The binary is \`magick\` (ImageMagick 7). Older versions used \`convert\` \u2014 don't use \`convert\` on macOS as it shadows a system binary.
|
|
922
|
+
- Always specify the output format explicitly in the filename \u2014 \`magick input.png output.jpg\` converts; omitting extension may produce unexpected formats.
|
|
923
|
+
- \`mogrify\` modifies files destructively in place \u2014 always test with \`magick convert\` on a single file first, or back up the originals.
|
|
881
924
|
|
|
882
925
|
## Why it matters for agents
|
|
883
926
|
Batch image processing without opening apps \u2014 useful for automated asset pipelines. Agents can resize, convert formats, and generate thumbnails in a single \`mogrify\` invocation.
|
|
@@ -920,6 +963,18 @@ List files with better defaults: colours, git status, icons, tree view built in.
|
|
|
920
963
|
- Tree view: \`eza --tree\`
|
|
921
964
|
- Tree with depth limit: \`eza --tree --level 2\`
|
|
922
965
|
- All files (including hidden): \`eza -la\`
|
|
966
|
+
- Machine-readable tree: \`eza --tree --json\`
|
|
967
|
+
|
|
968
|
+
## Output format
|
|
969
|
+
Plain text with aligned columns by default. \`--json\` emits a structured JSON tree of file entries with name, path, type, size, and permissions. \`--git\` adds a column showing each file's git status (untracked, modified, staged).
|
|
970
|
+
|
|
971
|
+
## Why it matters for agents
|
|
972
|
+
\`eza --tree --json\` provides a structured file tree without spawning \`find\` or parsing \`ls\` output \u2014 agents can parse it directly to navigate unfamiliar repos. \`--git\` flag surfaces repo status per-file without running \`git status\`.
|
|
973
|
+
|
|
974
|
+
## Gotchas
|
|
975
|
+
- Binary is named \`eza\`, not \`ls\` \u2014 aliasing \`ls=eza\` is common but optional.
|
|
976
|
+
- \`--icons\` requires a Nerd Font in your terminal; omit it in CI or non-Nerd-Font sessions.
|
|
977
|
+
- \`--git\` is noticeably slow on large repos (it calls libgit2 per entry) \u2014 avoid in hot loops.
|
|
923
978
|
`.trim();
|
|
924
979
|
|
|
925
980
|
// src/skills/zoxide.ts
|
|
@@ -929,15 +984,25 @@ var zoxide_default = `
|
|
|
929
984
|
## When to use
|
|
930
985
|
Jump to frequently used directories without typing full paths. Learns from your usage.
|
|
931
986
|
|
|
932
|
-
## Setup
|
|
933
|
-
Add to ~/.zshrc: \`eval "$(zoxide init zsh)"\`
|
|
934
|
-
Then use \`z\` instead of \`cd\`: \`z projects\` jumps to your most-used match.
|
|
935
|
-
|
|
936
987
|
## Trusted commands
|
|
937
988
|
- Jump: \`z partial-dirname\`
|
|
938
|
-
- Interactive
|
|
989
|
+
- Interactive jump (requires fzf): \`zi\`
|
|
990
|
+
- Resolve best match (no cd): \`zoxide query <term>\`
|
|
991
|
+
- List all known paths with scores: \`zoxide query --list\`
|
|
939
992
|
- Add path manually: \`zoxide add /path/to/dir\`
|
|
940
|
-
-
|
|
993
|
+
- Remove a path: \`zoxide remove /path/to/dir\`
|
|
994
|
+
|
|
995
|
+
## Output format
|
|
996
|
+
\`z\` emits nothing \u2014 it just changes the shell directory. \`zoxide query <term>\` prints the best-match absolute path as a plain string to stdout. \`zoxide query --list\` prints tab-separated score + path pairs, sorted by frecency.
|
|
997
|
+
|
|
998
|
+
## Why it matters for agents
|
|
999
|
+
\`zoxide query <term>\` returns the best-match absolute path without navigating \u2014 use it for path resolution when you know a partial name but not the full path. Avoids hardcoding paths that differ between machines.
|
|
1000
|
+
|
|
1001
|
+
## Gotchas
|
|
1002
|
+
- Must be initialised in shell config: \`eval "$(zoxide init zsh)"\` in ~/.zshrc. Without this, \`z\` is unavailable.
|
|
1003
|
+
- Frecency scores update on each \`z\` usage \u2014 a new directory won't rank highly until visited repeatedly.
|
|
1004
|
+
- \`zi\` is interactive (TUI with fzf) \u2014 use \`zoxide query\` for non-interactive scripting.
|
|
1005
|
+
- Shell integration required: zoxide works by hooking into \`cd\`; doesn't affect subshells unless initialised there too.
|
|
941
1006
|
`.trim();
|
|
942
1007
|
|
|
943
1008
|
// src/skills/delta.ts
|
|
@@ -962,6 +1027,8 @@ Add to ~/.gitconfig:
|
|
|
962
1027
|
|
|
963
1028
|
## Gotchas
|
|
964
1029
|
- The brew package is called \`git-delta\`, but the binary is \`delta\`.
|
|
1030
|
+
- Configured via \`~/.gitconfig\` (not CLI flags at runtime) \u2014 add \`[delta]\` section with options like \`side-by-side = true\`, \`line-numbers = true\`.
|
|
1031
|
+
- Enable with \`git config --global core.pager delta\` \u2014 without this, delta is not invoked automatically.
|
|
965
1032
|
|
|
966
1033
|
## Why it matters for agents
|
|
967
1034
|
Makes \`git diff\` and \`git log -p\` output readable \u2014 useful when agents are reviewing code changes or summarising commits for users.
|
|
@@ -977,12 +1044,21 @@ Render markdown files beautifully in the terminal. Great for reading READMEs, do
|
|
|
977
1044
|
## Trusted commands
|
|
978
1045
|
- Render file: \`glow README.md\`
|
|
979
1046
|
- Render with pager: \`glow -p README.md\`
|
|
980
|
-
- Render from stdin: \`
|
|
1047
|
+
- Render from stdin: \`glow -\`
|
|
981
1048
|
- Disable pager: \`glow --no-pager README.md\`
|
|
982
1049
|
- Fixed width: \`glow --width 100 README.md\`
|
|
1050
|
+
- Plain output (no ANSI): \`glow --style=ascii README.md\`
|
|
1051
|
+
|
|
1052
|
+
## Output format
|
|
1053
|
+
ANSI-formatted markdown to stdout by default \u2014 colours, bold, tables rendered for terminal display. Use \`--style=ascii\` to strip ANSI codes for piping into other tools or log capture. Activates a pager automatically for long content.
|
|
983
1054
|
|
|
984
1055
|
## Why it matters for agents
|
|
985
|
-
Renders markdown cleanly in terminal output \u2014 useful for displaying skill files, changelogs, or generated docs to users without raw markdown symbols.
|
|
1056
|
+
Renders markdown cleanly in terminal output \u2014 useful for displaying skill files, changelogs, or generated docs to users without raw markdown symbols. \`--style=ascii\` makes output safe to capture or pipe.
|
|
1057
|
+
|
|
1058
|
+
## Gotchas
|
|
1059
|
+
- Pager activates by default for long content \u2014 use \`--no-pager\` in scripts to avoid blocking on stdin.
|
|
1060
|
+
- Output wraps at terminal width; use \`--width\` to control line length in narrow terminals.
|
|
1061
|
+
- Requires markdown-formatted input \u2014 feeding plain text will render as-is with no improvement.
|
|
986
1062
|
`.trim();
|
|
987
1063
|
|
|
988
1064
|
// src/skills/mise.ts
|
|
@@ -1025,7 +1101,9 @@ Watch files for changes and re-run a command. Language-agnostic alternative to n
|
|
|
1025
1101
|
|
|
1026
1102
|
## Gotchas
|
|
1027
1103
|
- Use \`-e\` to filter by extension, \`-w\` to filter by directory.
|
|
1028
|
-
- Use \`--restart\` for long-running processes (servers)
|
|
1104
|
+
- Use \`--restart\` for long-running processes (servers) \u2014 without it, watchexec waits for the previous run to finish before starting the next.
|
|
1105
|
+
- Use \`--no-vcs-ignore\` to watch files listed in \`.gitignore\` \u2014 by default, gitignored files are excluded from watch events.
|
|
1106
|
+
- Debounce is applied by default (300ms) \u2014 rapid file saves trigger one execution, not many.
|
|
1029
1107
|
|
|
1030
1108
|
## Why it matters for agents
|
|
1031
1109
|
Enables live-reload dev loops \u2014 agents can set up reactive pipelines (\`watchexec -e ts "pnpm typecheck"\`) and report on each change without polling.
|
|
@@ -1069,6 +1147,9 @@ Scan filesystems, container images, and code repos for known vulnerabilities.
|
|
|
1069
1147
|
- CI gate (fail on findings): \`trivy fs --severity CRITICAL,HIGH --exit-code 1 --no-progress .\`
|
|
1070
1148
|
- Offline (skip DB update): \`trivy fs --skip-update --format json .\`
|
|
1071
1149
|
|
|
1150
|
+
## Output format
|
|
1151
|
+
Table to stdout by default (target, type, package, vulnerability ID, severity). \`--format json\` emits a structured CVE list with full details per vulnerability including fix version and CVSS score. \`--no-progress\` suppresses the spinner for clean CI output.
|
|
1152
|
+
|
|
1072
1153
|
## Why it matters for agents
|
|
1073
1154
|
Gives agents a security gate before deployments. \`--format json --exit-code 1\` creates a composable CI step \u2014 agents can parse findings and summarise critical vulnerabilities.
|
|
1074
1155
|
|
|
@@ -1124,6 +1205,9 @@ Send HTTP requests from the terminal. Cleaner syntax than curl, JSON-first, colo
|
|
|
1124
1205
|
- Headers only: \`xh -h get api.example.com\`
|
|
1125
1206
|
- Download file: \`xh --download get example.com/file.zip\`
|
|
1126
1207
|
|
|
1208
|
+
## Output format
|
|
1209
|
+
HTTP response body to stdout by default, pretty-printed and syntax-highlighted. Use \`-b\` for body only, \`-h\` for headers only. \`--print=hHbB\` controls what is shown (h=response headers, H=request headers, b=response body, B=request body). JSON bodies are pretty-printed automatically.
|
|
1210
|
+
|
|
1127
1211
|
## Why it matters for agents
|
|
1128
1212
|
Cleaner than curl for API testing \u2014 \`key=value\` JSON syntax removes quoting complexity. \`--check-status\` makes error handling trivial: non-zero exit on any 4xx/5xx.
|
|
1129
1213
|
|
|
@@ -1145,11 +1229,19 @@ Get practical, example-driven command summaries without reading full man pages.
|
|
|
1145
1229
|
- Update the local cache: \`tldr --update\`
|
|
1146
1230
|
- List all available pages: \`tldr --list\`
|
|
1147
1231
|
- Search for a topic: \`tldr --search "compress files"\`
|
|
1232
|
+
- Raw output (no colour): \`tldr --raw rg\`
|
|
1233
|
+
|
|
1234
|
+
## Output format
|
|
1235
|
+
Plain text formatted pages with ANSI colour codes. Use \`--raw\` or pipe through \`cat\` to strip colour. Each page is a short markdown document with a description and practical examples.
|
|
1236
|
+
|
|
1237
|
+
## Why it matters for agents
|
|
1238
|
+
Faster lookup than man pages \u2014 community-maintained examples cover 90% of common usages in a scannable format. Use as the first-pass reference before falling back to \`--help\` or full man pages. \`--raw\` output is safe to include verbatim in agent context.
|
|
1148
1239
|
|
|
1149
1240
|
## Gotchas
|
|
1150
1241
|
- First run requires internet to fetch the page cache. Run \`tldr --update\` after install.
|
|
1151
|
-
-
|
|
1152
|
-
-
|
|
1242
|
+
- Pages are community-written; they cover common usage, not edge cases \u2014 missing for obscure tools.
|
|
1243
|
+
- \`tldr --update\` refreshes the local cache; stale caches may show outdated examples.
|
|
1244
|
+
- Not every tool has a page \u2014 fall back to \`man\` or \`--help\` when missing.
|
|
1153
1245
|
`.trim();
|
|
1154
1246
|
|
|
1155
1247
|
// src/skills/biome.ts
|
|
@@ -1167,6 +1259,9 @@ Fast, zero-config linter and formatter for JavaScript/TypeScript projects. Repla
|
|
|
1167
1259
|
- Init config: \`biome init\`
|
|
1168
1260
|
- Check single file: \`biome check src/index.ts\`
|
|
1169
1261
|
|
|
1262
|
+
## Output format
|
|
1263
|
+
Text diagnostics to stderr with file, line, rule name, and description. \`--reporter=json\` emits structured linting output with arrays of diagnostics per file \u2014 parse with \`jq\` to filter by severity or rule.
|
|
1264
|
+
|
|
1170
1265
|
## Gotchas
|
|
1171
1266
|
- Requires a \`biome.json\` config or \`--config-path\` flag; \`biome init\` generates a sensible default.
|
|
1172
1267
|
- Not 100% compatible with all ESLint rules \u2014 check the migration guide when switching existing projects.
|
|
@@ -1190,10 +1285,14 @@ Compare files by syntax tree, not line-by-line. Understands code structure so re
|
|
|
1190
1285
|
- Diff staged changes: \`GIT_EXTERNAL_DIFF=difft git diff --cached\`
|
|
1191
1286
|
- Plain text mode (no syntax): \`difft --display side-by-side-show-both old.txt new.txt\`
|
|
1192
1287
|
|
|
1288
|
+
## Output format
|
|
1289
|
+
Side-by-side ANSI diff to stdout. Not machine-parseable \u2014 designed for human review only. Falls back to line-by-line diff for unsupported file types. Terminal width determines column widths.
|
|
1290
|
+
|
|
1193
1291
|
## Gotchas
|
|
1194
1292
|
- Supports most languages automatically via file extension detection.
|
|
1195
1293
|
- Output is always side-by-side; pipe width matters \u2014 use a wide terminal.
|
|
1196
1294
|
- Falls back to line-diff for unsupported file types.
|
|
1295
|
+
- Not suitable for programmatic diffing \u2014 use \`git diff --unified\` for machine-parseable output.
|
|
1197
1296
|
|
|
1198
1297
|
## Why it matters for agents
|
|
1199
1298
|
Understands code structure \u2014 avoids false-positive diffs from formatting changes. Agents using \`GIT_EXTERNAL_DIFF=difft git diff\` get semantic change summaries, not noise.
|
|
@@ -1303,6 +1402,9 @@ gitleaks protect --staged # pre-commit hook
|
|
|
1303
1402
|
gitleaks detect # CI full scan
|
|
1304
1403
|
\`\`\`
|
|
1305
1404
|
|
|
1405
|
+
## Output format
|
|
1406
|
+
Text summary to stdout listing finding count and rule matches. \`--report-format json --report-path out.json\` writes structured findings with file, line, rule, commit, and matched secret fragment. Terminal output is human-readable only.
|
|
1407
|
+
|
|
1306
1408
|
## Why it matters for agents
|
|
1307
1409
|
Agents editing configuration files or adding credentials must scan before committing. Exit code 1 on findings makes it trivially composable as a pre-commit gate.
|
|
1308
1410
|
|
|
@@ -1403,6 +1505,9 @@ Find and fix typos in source code, comments, docs, filenames, and variable names
|
|
|
1403
1505
|
- Check specific file types: \`typos --type rust src/\`
|
|
1404
1506
|
- Ignore a word: add to \`_typos.toml\`: \`[default.extend-words]\` \u2192 \`teh = "teh"\`
|
|
1405
1507
|
|
|
1508
|
+
## Output format
|
|
1509
|
+
\`file:line:col: "typo" -> "correction"\` per finding to stdout. \`--format json\` emits structured output with file, line, column, typo, and correction fields \u2014 parse with \`jq\` for batch processing. Exits 1 if typos found.
|
|
1510
|
+
|
|
1406
1511
|
## Why it matters for agents
|
|
1407
1512
|
Agents generate a lot of code. Running typos as a final pass catches misspellings in variable names, comments, and docs that slip past linters.
|
|
1408
1513
|
|
|
@@ -1576,6 +1681,9 @@ Scan code for security vulnerabilities, bugs, and anti-patterns across 30+ langu
|
|
|
1576
1681
|
- Scan single file: \`semgrep scan --config auto path/to/file.ts\`
|
|
1577
1682
|
- JSON output: \`semgrep scan --config auto --json\`
|
|
1578
1683
|
|
|
1684
|
+
## Output format
|
|
1685
|
+
Text findings to stdout with file, line, rule ID, and matched code snippet. \`--json\` emits structured match objects with file, line range, severity, rule metadata, and matched text \u2014 pipe to \`jq\` for filtering.
|
|
1686
|
+
|
|
1579
1687
|
## Why it matters for agents
|
|
1580
1688
|
Agents can run security and quality scans before committing code. Much broader language coverage than shellcheck or biome alone.
|
|
1581
1689
|
|
|
@@ -1635,6 +1743,329 @@ Agents verifying domain setups, debugging DNS issues, or checking propagation ge
|
|
|
1635
1743
|
- JSON output with \`--json\` is ideal for piping to jq.
|
|
1636
1744
|
`.trim();
|
|
1637
1745
|
|
|
1746
|
+
// src/skills/vips.ts
|
|
1747
|
+
var vips_default = `
|
|
1748
|
+
# libvips \u2014 Fast image processing
|
|
1749
|
+
|
|
1750
|
+
## When to use
|
|
1751
|
+
Batch-process images with lower memory usage and higher speed than ImageMagick. Powers the Sharp Node.js library.
|
|
1752
|
+
|
|
1753
|
+
## Trusted commands
|
|
1754
|
+
- Get image info: \`vipsheader image.jpg\`
|
|
1755
|
+
- Resize image: \`vips resize input.jpg output.jpg 0.5\`
|
|
1756
|
+
- Convert format: \`vips copy input.png output.webp\`
|
|
1757
|
+
- Create thumbnail: \`vips thumbnail input.jpg output.jpg 300\`
|
|
1758
|
+
- Extract area: \`vips crop input.jpg output.jpg 0 0 100 100\`
|
|
1759
|
+
|
|
1760
|
+
## Why it matters for agents
|
|
1761
|
+
Agents processing images in bulk get significantly faster throughput with lower memory overhead than ImageMagick.
|
|
1762
|
+
|
|
1763
|
+
## Gotchas
|
|
1764
|
+
- Commands use \`vips\` or \`vipsthumbnail\` \u2014 check both are available.
|
|
1765
|
+
- Output format is inferred from the file extension.
|
|
1766
|
+
- Streaming pipeline architecture means memory stays flat even for large images.
|
|
1767
|
+
`.trim();
|
|
1768
|
+
|
|
1769
|
+
// src/skills/resvg.ts
|
|
1770
|
+
var resvg_default = `
|
|
1771
|
+
# resvg \u2014 High-fidelity SVG renderer
|
|
1772
|
+
|
|
1773
|
+
## When to use
|
|
1774
|
+
Render SVG files to PNG with accurate results. Handles complex SVGs that other tools misrender.
|
|
1775
|
+
|
|
1776
|
+
## Trusted commands
|
|
1777
|
+
- Render SVG to PNG: \`resvg input.svg output.png\`
|
|
1778
|
+
- Set output width: \`resvg input.svg output.png -w 1024\`
|
|
1779
|
+
- Set output height: \`resvg input.svg output.png -h 768\`
|
|
1780
|
+
- Set DPI: \`resvg input.svg output.png --dpi 300\`
|
|
1781
|
+
|
|
1782
|
+
## Why it matters for agents
|
|
1783
|
+
Agents generating social images, OG cards, or icons from SVG templates get pixel-perfect PNG output.
|
|
1784
|
+
|
|
1785
|
+
## Gotchas
|
|
1786
|
+
- Rust-based \u2014 very fast but no interactive mode.
|
|
1787
|
+
- Pairs well with svgo: optimise SVG first, then render with resvg.
|
|
1788
|
+
- Supports most SVG features including filters and gradients.
|
|
1789
|
+
`.trim();
|
|
1790
|
+
|
|
1791
|
+
// src/skills/chafa.ts
|
|
1792
|
+
var chafa_default = `
|
|
1793
|
+
# chafa \u2014 Image-to-ANSI art renderer
|
|
1794
|
+
|
|
1795
|
+
## When to use
|
|
1796
|
+
Preview images directly in the terminal as coloured text art. Useful when agents need to "see" an image without a GUI.
|
|
1797
|
+
|
|
1798
|
+
## Trusted commands
|
|
1799
|
+
- Preview image: \`chafa image.png\`
|
|
1800
|
+
- Set output size: \`chafa -s 80x24 image.png\`
|
|
1801
|
+
- Use specific symbols: \`chafa --symbols block image.png\`
|
|
1802
|
+
- ASCII-only output: \`chafa --symbols ascii image.png\`
|
|
1803
|
+
- Preview with transparency: \`chafa --bg white image.png\`
|
|
1804
|
+
|
|
1805
|
+
## Why it matters for agents
|
|
1806
|
+
Agents can inspect image outputs without leaving the terminal \u2014 verify screenshots, check generated graphics, review thumbnails.
|
|
1807
|
+
|
|
1808
|
+
## Gotchas
|
|
1809
|
+
- Quality depends on terminal capabilities. Use \`--format symbols\` for widest compatibility.
|
|
1810
|
+
- Works with PNG, JPEG, GIF, WebP, and many other formats.
|
|
1811
|
+
- Pipe support: \`curl -s url | chafa -\`
|
|
1812
|
+
`.trim();
|
|
1813
|
+
|
|
1814
|
+
// src/skills/oha.ts
|
|
1815
|
+
var oha_default = `
|
|
1816
|
+
# oha \u2014 HTTP load tester
|
|
1817
|
+
|
|
1818
|
+
## When to use
|
|
1819
|
+
Benchmark HTTP endpoints with concurrent requests and get structured JSON results. Complements xh (single requests) with load testing.
|
|
1820
|
+
|
|
1821
|
+
## Trusted commands
|
|
1822
|
+
- Basic load test: \`oha -n 100 -c 10 http://localhost:3000\`
|
|
1823
|
+
- JSON output: \`oha -n 100 -c 10 --json http://localhost:3000\`
|
|
1824
|
+
- Set duration: \`oha -z 10s -c 50 http://localhost:3000\`
|
|
1825
|
+
- POST with body: \`oha -n 100 -m POST -d '{"key":"val"}' http://localhost:3000/api\`
|
|
1826
|
+
- Custom headers: \`oha -n 100 -H "Authorization: Bearer token" http://localhost:3000\`
|
|
1827
|
+
|
|
1828
|
+
## Why it matters for agents
|
|
1829
|
+
Agents benchmarking API changes get structured latency percentiles, throughput, and error rates as JSON they can compare programmatically.
|
|
1830
|
+
|
|
1831
|
+
## Gotchas
|
|
1832
|
+
- \`-n\` = number of requests, \`-c\` = concurrent connections, \`-z\` = duration.
|
|
1833
|
+
- JSON output with \`--json\` is ideal for piping to jq.
|
|
1834
|
+
- Rust-based \u2014 extremely low overhead compared to other load testers.
|
|
1835
|
+
`.trim();
|
|
1836
|
+
|
|
1837
|
+
// src/skills/fx.ts
|
|
1838
|
+
var fx_default = `
|
|
1839
|
+
# fx \u2014 Interactive JSON viewer
|
|
1840
|
+
|
|
1841
|
+
## When to use
|
|
1842
|
+
Explore and filter JSON data interactively. Complements jq with a visual, navigable interface.
|
|
1843
|
+
|
|
1844
|
+
## Trusted commands
|
|
1845
|
+
- View JSON file: \`fx data.json\`
|
|
1846
|
+
- Pipe JSON: \`cat data.json | fx\`
|
|
1847
|
+
- Apply JS expression: \`fx data.json '.items.map(x => x.name)'\`
|
|
1848
|
+
- Filter with dot notation: \`fx data.json '.users[0].email'\`
|
|
1849
|
+
- Reduce: \`fx data.json '.items.length'\`
|
|
1850
|
+
|
|
1851
|
+
## Why it matters for agents
|
|
1852
|
+
Agents exploring unfamiliar API responses or config files can quickly navigate nested structures and extract paths for jq queries.
|
|
1853
|
+
|
|
1854
|
+
## Gotchas
|
|
1855
|
+
- Accepts JavaScript expressions, not jq syntax.
|
|
1856
|
+
- Interactive mode requires a TTY \u2014 use expressions for scripting.
|
|
1857
|
+
- Reads from stdin or file argument.
|
|
1858
|
+
`.trim();
|
|
1859
|
+
|
|
1860
|
+
// src/skills/pastel.ts
|
|
1861
|
+
var pastel_default = `
|
|
1862
|
+
# pastel \u2014 Color manipulation tool
|
|
1863
|
+
|
|
1864
|
+
## When to use
|
|
1865
|
+
Generate, convert, inspect, and manipulate colours from the terminal. Ideal for design token generation and palette work.
|
|
1866
|
+
|
|
1867
|
+
## Trusted commands
|
|
1868
|
+
- Show color info: \`pastel color "#ff6b35"\`
|
|
1869
|
+
- Convert format: \`pastel format hsl "#ff6b35"\`
|
|
1870
|
+
- Generate palette: \`pastel gradient -n 5 "#ff6b35" "#1a1a2e"\`
|
|
1871
|
+
- Lighten colour: \`pastel lighten 0.2 "#ff6b35"\`
|
|
1872
|
+
- Darken colour: \`pastel darken 0.2 "#ff6b35"\`
|
|
1873
|
+
- Complementary: \`pastel complement "#ff6b35"\`
|
|
1874
|
+
- Mix colours: \`pastel mix "#ff6b35" "#1a1a2e"\`
|
|
1875
|
+
|
|
1876
|
+
## Why it matters for agents
|
|
1877
|
+
Agents generating design tokens, theme files, or CSS variables can programmatically derive entire palettes from brand colours.
|
|
1878
|
+
|
|
1879
|
+
## Gotchas
|
|
1880
|
+
- Supports hex, RGB, HSL, Lab, and named CSS colours.
|
|
1881
|
+
- Use \`pastel list\` to see all named colours.
|
|
1882
|
+
- Output can be piped \u2014 combine with sd for bulk colour replacement.
|
|
1883
|
+
`.trim();
|
|
1884
|
+
|
|
1885
|
+
// src/skills/csview.ts
|
|
1886
|
+
var csview_default = `
|
|
1887
|
+
# csview \u2014 CSV/TSV viewer
|
|
1888
|
+
|
|
1889
|
+
## When to use
|
|
1890
|
+
View tabular data (CSV, TSV) with aligned columns and optional styling in the terminal.
|
|
1891
|
+
|
|
1892
|
+
## Trusted commands
|
|
1893
|
+
- View CSV: \`csview data.csv\`
|
|
1894
|
+
- View TSV: \`csview -t data.tsv\`
|
|
1895
|
+
- Custom delimiter: \`csview -d ';' data.csv\`
|
|
1896
|
+
- No header row: \`csview --no-headers data.csv\`
|
|
1897
|
+
- Pipe from stdin: \`cat data.csv | csview\`
|
|
1898
|
+
|
|
1899
|
+
## Why it matters for agents
|
|
1900
|
+
Agents inspecting exported data, build reports, or log tables get clean columnar output instead of comma-separated noise.
|
|
1901
|
+
|
|
1902
|
+
## Gotchas
|
|
1903
|
+
- Rust-based \u2014 handles large files efficiently.
|
|
1904
|
+
- Use \`-t\` flag for TSV files.
|
|
1905
|
+
- For SQL-level queries on CSV, use duckdb instead.
|
|
1906
|
+
`.trim();
|
|
1907
|
+
|
|
1908
|
+
// src/skills/asciinema.ts
|
|
1909
|
+
var asciinema_default = `
|
|
1910
|
+
# asciinema \u2014 Terminal session recorder
|
|
1911
|
+
|
|
1912
|
+
## When to use
|
|
1913
|
+
Record terminal sessions as lightweight asciicast files for documentation, demos, or bug reports.
|
|
1914
|
+
|
|
1915
|
+
## Trusted commands
|
|
1916
|
+
- Record session: \`asciinema rec demo.cast\`
|
|
1917
|
+
- Play recording: \`asciinema play demo.cast\`
|
|
1918
|
+
- Record with idle limit: \`asciinema rec --idle-time-limit 2 demo.cast\`
|
|
1919
|
+
- Record specific command: \`asciinema rec --command "pnpm test" demo.cast\`
|
|
1920
|
+
- Upload to asciinema.org: \`asciinema upload demo.cast\`
|
|
1921
|
+
|
|
1922
|
+
## Why it matters for agents
|
|
1923
|
+
Agents can record their terminal workflows for review, create reproducible demos, or capture test runs for debugging.
|
|
1924
|
+
|
|
1925
|
+
## Gotchas
|
|
1926
|
+
- Recordings are text-based (not video) \u2014 tiny file sizes and searchable.
|
|
1927
|
+
- Set \`--idle-time-limit\` to trim long pauses.
|
|
1928
|
+
- \`.cast\` files can be embedded in web pages with the asciinema player.
|
|
1929
|
+
`.trim();
|
|
1930
|
+
|
|
1931
|
+
// src/skills/d2.ts
|
|
1932
|
+
var d2_default = `
|
|
1933
|
+
# d2 \u2014 Declarative diagramming language
|
|
1934
|
+
|
|
1935
|
+
## When to use
|
|
1936
|
+
Generate architecture diagrams, flowcharts, sequence diagrams, and ERDs from text. Output SVG or PNG without a GUI.
|
|
1937
|
+
|
|
1938
|
+
## Trusted commands
|
|
1939
|
+
- Render to SVG: \`d2 input.d2 output.svg\`
|
|
1940
|
+
- Render to PNG: \`d2 input.d2 output.png\`
|
|
1941
|
+
- Watch mode: \`d2 --watch input.d2 output.svg\`
|
|
1942
|
+
- Set theme: \`d2 --theme 200 input.d2 output.svg\`
|
|
1943
|
+
- Set layout engine: \`d2 --layout elk input.d2 output.svg\`
|
|
1944
|
+
|
|
1945
|
+
## Why it matters for agents
|
|
1946
|
+
Agents generate architecture and flow diagrams from code analysis \u2014 describe structure in text, get publication-ready SVGs.
|
|
1947
|
+
|
|
1948
|
+
## Gotchas
|
|
1949
|
+
- D2 files use a simple DSL: \`a -> b: label\`.
|
|
1950
|
+
- Supports sequence diagrams, classes, ERDs, and grid diagrams.
|
|
1951
|
+
- Multiple layout engines: dagre (default), elk, tala.
|
|
1952
|
+
`.trim();
|
|
1953
|
+
|
|
1954
|
+
// src/skills/pngquant.ts
|
|
1955
|
+
var pngquant_default = `
|
|
1956
|
+
# pngquant \u2014 Lossy PNG compressor
|
|
1957
|
+
|
|
1958
|
+
## When to use
|
|
1959
|
+
Reduce PNG file size by 50-80% with minimal visual quality loss. Ideal for web assets, screenshots, and icons.
|
|
1960
|
+
|
|
1961
|
+
## Trusted commands
|
|
1962
|
+
- Compress with default quality: \`pngquant image.png\`
|
|
1963
|
+
- Set quality range: \`pngquant --quality=65-80 image.png\`
|
|
1964
|
+
- Overwrite original: \`pngquant --force --ext .png image.png\`
|
|
1965
|
+
- Batch compress: \`pngquant --force --ext .png *.png\`
|
|
1966
|
+
- Output to stdout: \`pngquant - < input.png > output.png\`
|
|
1967
|
+
|
|
1968
|
+
## Why it matters for agents
|
|
1969
|
+
Agents optimise generated screenshots, OG images, and icon sets \u2014 often cutting 60-70% off PNG sizes before deployment.
|
|
1970
|
+
|
|
1971
|
+
## Gotchas
|
|
1972
|
+
- Lossy compression \u2014 visually near-identical but not bit-perfect.
|
|
1973
|
+
- Combine with oxipng for lossy + lossless pipeline.
|
|
1974
|
+
- Exit code 99 means quality target can't be met \u2014 widen the range.
|
|
1975
|
+
`.trim();
|
|
1976
|
+
|
|
1977
|
+
// src/skills/oxipng.ts
|
|
1978
|
+
var oxipng_default = `
|
|
1979
|
+
# oxipng \u2014 Lossless PNG optimizer
|
|
1980
|
+
|
|
1981
|
+
## When to use
|
|
1982
|
+
Reduce PNG file size without any quality loss. Run after pngquant for maximum compression, or standalone for lossless-only workflows.
|
|
1983
|
+
|
|
1984
|
+
## Trusted commands
|
|
1985
|
+
- Optimize in place: \`oxipng -o 4 image.png\`
|
|
1986
|
+
- Max compression: \`oxipng -o max image.png\`
|
|
1987
|
+
- Batch optimize: \`oxipng -o 4 -r ./images/\`
|
|
1988
|
+
- Strip metadata: \`oxipng -o 4 --strip safe image.png\`
|
|
1989
|
+
- Preserve original: \`oxipng -o 4 --out optimized.png image.png\`
|
|
1990
|
+
|
|
1991
|
+
## Why it matters for agents
|
|
1992
|
+
Agents run oxipng as a final pass on all PNG assets \u2014 guaranteed size reduction with zero quality loss.
|
|
1993
|
+
|
|
1994
|
+
## Gotchas
|
|
1995
|
+
- \`-o\` levels: 0 (fast) to max (slow). Level 4 is a good default.
|
|
1996
|
+
- \`--strip safe\` removes metadata without breaking rendering.
|
|
1997
|
+
- Rust-based \u2014 fast even on large batches.
|
|
1998
|
+
`.trim();
|
|
1999
|
+
|
|
2000
|
+
// src/skills/gron.ts
|
|
2001
|
+
var gron_default = `
|
|
2002
|
+
# gron \u2014 Flatten JSON for grepping
|
|
2003
|
+
|
|
2004
|
+
## When to use
|
|
2005
|
+
Turn nested JSON into greppable assignment statements. Find paths in complex API responses without writing jq expressions.
|
|
2006
|
+
|
|
2007
|
+
## Trusted commands
|
|
2008
|
+
- Flatten JSON: \`gron data.json\`
|
|
2009
|
+
- Flatten from URL: \`gron https://api.example.com/data\`
|
|
2010
|
+
- Pipe from stdin: \`cat data.json | gron\`
|
|
2011
|
+
- Grep for field: \`gron data.json | grep "name"\`
|
|
2012
|
+
- Unflatten back to JSON: \`gron data.json | grep "users" | gron --ungron\`
|
|
2013
|
+
|
|
2014
|
+
## Why it matters for agents
|
|
2015
|
+
Agents exploring unfamiliar JSON APIs can grep for field names across deeply nested structures, then reconstruct filtered subsets.
|
|
2016
|
+
|
|
2017
|
+
## Gotchas
|
|
2018
|
+
- Output format: \`json.users[0].name = "Alice";\` \u2014 each line is a full path.
|
|
2019
|
+
- \`--ungron\` converts flattened output back to valid JSON.
|
|
2020
|
+
- Combine with rg for regex filtering of JSON paths.
|
|
2021
|
+
`.trim();
|
|
2022
|
+
|
|
2023
|
+
// src/skills/lychee.ts
|
|
2024
|
+
var lychee_default = `
|
|
2025
|
+
# lychee \u2014 Fast link checker
|
|
2026
|
+
|
|
2027
|
+
## When to use
|
|
2028
|
+
Scan documentation, markdown files, and websites for broken links. Catches dead URLs, redirects, and timeouts.
|
|
2029
|
+
|
|
2030
|
+
## Trusted commands
|
|
2031
|
+
- Check markdown files: \`lychee "**/*.md"\`
|
|
2032
|
+
- Check a URL: \`lychee https://example.com\`
|
|
2033
|
+
- Check with config: \`lychee --config lychee.toml "**/*.md"\`
|
|
2034
|
+
- JSON output: \`lychee --format json "**/*.md"\`
|
|
2035
|
+
- Exclude patterns: \`lychee --exclude "localhost" "**/*.md"\`
|
|
2036
|
+
|
|
2037
|
+
## Why it matters for agents
|
|
2038
|
+
Agents validate documentation links after edits \u2014 catch broken references before they ship to production.
|
|
2039
|
+
|
|
2040
|
+
## Gotchas
|
|
2041
|
+
- Rust-based \u2014 extremely fast, checks links concurrently.
|
|
2042
|
+
- Use \`.lycheeignore\` or \`--exclude\` for known-flaky URLs.
|
|
2043
|
+
- Supports markdown, HTML, and plain text files.
|
|
2044
|
+
`.trim();
|
|
2045
|
+
|
|
2046
|
+
// src/skills/vale.ts
|
|
2047
|
+
var vale_default = `
|
|
2048
|
+
# vale \u2014 Prose linter for documentation
|
|
2049
|
+
|
|
2050
|
+
## When to use
|
|
2051
|
+
Enforce writing style guides on documentation, README files, and technical content. Catches jargon, passive voice, and style violations.
|
|
2052
|
+
|
|
2053
|
+
## Trusted commands
|
|
2054
|
+
- Lint a file: \`vale README.md\`
|
|
2055
|
+
- Lint a directory: \`vale docs/\`
|
|
2056
|
+
- JSON output: \`vale --output JSON README.md\`
|
|
2057
|
+
- Initialize config: \`vale sync\`
|
|
2058
|
+
- List installed styles: \`vale ls-config\`
|
|
2059
|
+
|
|
2060
|
+
## Why it matters for agents
|
|
2061
|
+
Agents writing or editing documentation can validate prose quality against style guides \u2014 Google, Microsoft, or custom rules.
|
|
2062
|
+
|
|
2063
|
+
## Gotchas
|
|
2064
|
+
- Requires a \`.vale.ini\` config file in the project root.
|
|
2065
|
+
- Install styles with \`vale sync\` after configuring packages.
|
|
2066
|
+
- Common styles: Google, Microsoft, write-good, proselint.
|
|
2067
|
+
`.trim();
|
|
2068
|
+
|
|
1638
2069
|
// src/skills.ts
|
|
1639
2070
|
var SKILL_CONTENT = {
|
|
1640
2071
|
rg: rg_default,
|
|
@@ -1686,7 +2117,21 @@ var SKILL_CONTENT = {
|
|
|
1686
2117
|
taplo: taplo_default,
|
|
1687
2118
|
semgrep: semgrep_default,
|
|
1688
2119
|
age: age_default,
|
|
1689
|
-
doggo: doggo_default
|
|
2120
|
+
doggo: doggo_default,
|
|
2121
|
+
vips: vips_default,
|
|
2122
|
+
resvg: resvg_default,
|
|
2123
|
+
chafa: chafa_default,
|
|
2124
|
+
oha: oha_default,
|
|
2125
|
+
fx: fx_default,
|
|
2126
|
+
pastel: pastel_default,
|
|
2127
|
+
csview: csview_default,
|
|
2128
|
+
asciinema: asciinema_default,
|
|
2129
|
+
d2: d2_default,
|
|
2130
|
+
pngquant: pngquant_default,
|
|
2131
|
+
oxipng: oxipng_default,
|
|
2132
|
+
gron: gron_default,
|
|
2133
|
+
lychee: lychee_default,
|
|
2134
|
+
vale: vale_default
|
|
1690
2135
|
};
|
|
1691
2136
|
function skillFilename(toolId) {
|
|
1692
2137
|
return `${toolId}.md`;
|
|
@@ -1912,7 +2357,7 @@ program.command("verify").alias("doctor").description("Check which tools are ins
|
|
|
1912
2357
|
});
|
|
1913
2358
|
program.command("list").description("Print the tool catalog").option("--json", "Output as JSON").option("--brewfile", "Output macOS Brewfile (darwin only)").action(async (opts) => {
|
|
1914
2359
|
if (opts.brewfile) {
|
|
1915
|
-
const { generateBrewfileFromCatalog } = await import("./catalog-
|
|
2360
|
+
const { generateBrewfileFromCatalog } = await import("./catalog-7NB7RALT.js");
|
|
1916
2361
|
console.log(generateBrewfileFromCatalog());
|
|
1917
2362
|
return;
|
|
1918
2363
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agent-loadout",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "One command to load out your terminal for agentic coding",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -25,8 +25,16 @@
|
|
|
25
25
|
"developer-tools",
|
|
26
26
|
"loadout"
|
|
27
27
|
],
|
|
28
|
-
"author": "",
|
|
28
|
+
"author": "cluddy",
|
|
29
29
|
"license": "MIT",
|
|
30
|
+
"homepage": "https://github.com/conorluddy/agent-loadout#readme",
|
|
31
|
+
"repository": {
|
|
32
|
+
"type": "git",
|
|
33
|
+
"url": "git+https://github.com/conorluddy/agent-loadout.git"
|
|
34
|
+
},
|
|
35
|
+
"bugs": {
|
|
36
|
+
"url": "https://github.com/conorluddy/agent-loadout/issues"
|
|
37
|
+
},
|
|
30
38
|
"dependencies": {
|
|
31
39
|
"@inquirer/prompts": "^8.3.0",
|
|
32
40
|
"chalk": "^5.4.0",
|