hatch3r 1.7.0 → 1.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -12
- package/agents/hatch3r-a11y-auditor.md +4 -0
- package/agents/hatch3r-architect.md +5 -1
- package/agents/hatch3r-ci-watcher.md +4 -0
- package/agents/hatch3r-context-rules.md +4 -0
- package/agents/hatch3r-creator.md +4 -0
- package/agents/hatch3r-dependency-auditor.md +4 -0
- package/agents/hatch3r-devops.md +4 -0
- package/agents/hatch3r-docs-writer.md +4 -0
- package/agents/hatch3r-fixer.md +5 -1
- package/agents/hatch3r-handoff-loader.md +243 -0
- package/agents/hatch3r-handoff-preparer.md +134 -0
- package/agents/hatch3r-implementer.md +5 -1
- package/agents/hatch3r-learnings-loader.md +4 -0
- package/agents/hatch3r-lint-fixer.md +4 -0
- package/agents/hatch3r-perf-profiler.md +8 -0
- package/agents/hatch3r-researcher.md +5 -1
- package/agents/hatch3r-reviewer.md +92 -0
- package/agents/hatch3r-security-auditor.md +24 -0
- package/agents/hatch3r-test-writer.md +4 -0
- package/agents/modes/requirements-elicitation.md +5 -1
- package/agents/modes/similar-implementation.md +6 -0
- package/agents/modes/user-flows.md +76 -0
- package/agents/shared/quality-charter.md +129 -0
- package/agents/shared/user-question-protocol.md +95 -0
- package/commands/board/shared-azure-devops.md +2 -0
- package/commands/board/shared-github.md +17 -0
- package/commands/board/shared-gitlab.md +4 -0
- package/commands/hatch3r-board-fill.md +2 -1
- package/commands/hatch3r-board-pickup.md +1 -1
- package/commands/hatch3r-board-shared.md +21 -0
- package/commands/hatch3r-create.md +2 -0
- package/commands/hatch3r-handoff.md +126 -0
- package/commands/hatch3r-pr-resolve.md +672 -0
- package/commands/hatch3r-quick-change.md +5 -3
- package/commands/hatch3r-report.md +167 -0
- package/commands/hatch3r-revision.md +1 -1
- package/commands/hatch3r-workflow.md +3 -1
- package/dist/cli/index.js +3144 -979
- package/dist/cli/index.js.map +1 -1
- package/package.json +4 -2
- package/rules/hatch3r-accessibility-standards.md +21 -0
- package/rules/hatch3r-accessibility-standards.mdc +21 -0
- package/rules/hatch3r-agent-orchestration.md +32 -1
- package/rules/hatch3r-agent-orchestration.mdc +32 -1
- package/rules/hatch3r-ai-evals.md +158 -0
- package/rules/hatch3r-ai-evals.mdc +154 -0
- package/rules/hatch3r-ai-ux-patterns.md +131 -0
- package/rules/hatch3r-ai-ux-patterns.mdc +127 -0
- package/rules/hatch3r-api-design.md +67 -9
- package/rules/hatch3r-api-design.mdc +67 -9
- package/rules/hatch3r-api-versioning.md +119 -0
- package/rules/hatch3r-api-versioning.mdc +115 -0
- package/rules/hatch3r-auth-patterns.md +170 -0
- package/rules/hatch3r-auth-patterns.mdc +166 -0
- package/rules/hatch3r-component-conventions.md +30 -0
- package/rules/hatch3r-component-conventions.mdc +30 -0
- package/rules/hatch3r-container-hardening.md +131 -0
- package/rules/hatch3r-container-hardening.mdc +127 -0
- package/rules/hatch3r-contract-testing.md +117 -0
- package/rules/hatch3r-contract-testing.mdc +113 -0
- package/rules/hatch3r-deep-context.md +3 -1
- package/rules/hatch3r-deep-context.mdc +3 -1
- package/rules/hatch3r-dependency-management.md +73 -1
- package/rules/hatch3r-dependency-management.mdc +72 -0
- package/rules/hatch3r-design-system-detection.md +142 -0
- package/rules/hatch3r-design-system-detection.mdc +138 -0
- package/rules/hatch3r-event-schema-evolution.md +90 -0
- package/rules/hatch3r-event-schema-evolution.mdc +86 -0
- package/rules/hatch3r-handoff-readiness.md +45 -0
- package/rules/hatch3r-handoff-readiness.mdc +40 -0
- package/rules/hatch3r-i18n.md +13 -0
- package/rules/hatch3r-i18n.mdc +13 -0
- package/rules/hatch3r-iteration-summary.md +2 -0
- package/rules/hatch3r-iteration-summary.mdc +2 -0
- package/rules/hatch3r-migrations.md +61 -16
- package/rules/hatch3r-migrations.mdc +61 -16
- package/rules/hatch3r-observability-logging.md +1 -1
- package/rules/hatch3r-observability-logging.mdc +1 -1
- package/rules/hatch3r-observability-metrics.md +1 -1
- package/rules/hatch3r-observability-metrics.mdc +1 -1
- package/rules/hatch3r-observability-tracing-detail.md +1 -1
- package/rules/hatch3r-observability-tracing-detail.mdc +1 -1
- package/rules/hatch3r-observability-tracing.md +1 -1
- package/rules/hatch3r-observability-tracing.mdc +1 -1
- package/rules/hatch3r-observability.md +1 -0
- package/rules/hatch3r-observability.mdc +1 -0
- package/rules/hatch3r-operability.md +149 -0
- package/rules/hatch3r-operability.mdc +145 -0
- package/rules/hatch3r-passkey-server.md +181 -0
- package/rules/hatch3r-passkey-server.mdc +177 -0
- package/rules/hatch3r-progressive-delivery.md +120 -0
- package/rules/hatch3r-progressive-delivery.mdc +116 -0
- package/rules/hatch3r-resilience-patterns.md +154 -0
- package/rules/hatch3r-resilience-patterns.mdc +150 -0
- package/rules/hatch3r-secrets-management.md +29 -0
- package/rules/hatch3r-secrets-management.mdc +29 -0
- package/rules/hatch3r-testing.md +139 -43
- package/rules/hatch3r-testing.mdc +139 -43
- package/rules/hatch3r-ux-states-and-flows.md +149 -0
- package/rules/hatch3r-ux-states-and-flows.mdc +145 -0
- package/skills/hatch3r-a11y-audit/SKILL.md +14 -0
- package/skills/hatch3r-ai-feature/SKILL.md +134 -0
- package/skills/hatch3r-api-spec/SKILL.md +5 -0
- package/skills/hatch3r-architecture-review/SKILL.md +14 -0
- package/skills/hatch3r-bug-fix/SKILL.md +5 -0
- package/skills/hatch3r-ci-pipeline/SKILL.md +14 -0
- package/skills/hatch3r-cli-aichat/SKILL.md +84 -0
- package/skills/hatch3r-cli-ast-grep/SKILL.md +85 -0
- package/skills/hatch3r-cli-az-devops/SKILL.md +89 -0
- package/skills/hatch3r-cli-bat/SKILL.md +85 -0
- package/skills/hatch3r-cli-comby/SKILL.md +85 -0
- package/skills/hatch3r-cli-csvkit/SKILL.md +84 -0
- package/skills/hatch3r-cli-delta/SKILL.md +86 -0
- package/skills/hatch3r-cli-difftastic/SKILL.md +84 -0
- package/skills/hatch3r-cli-docker/SKILL.md +89 -0
- package/skills/hatch3r-cli-duckdb/SKILL.md +84 -0
- package/skills/hatch3r-cli-fd/SKILL.md +85 -0
- package/skills/hatch3r-cli-fzf/SKILL.md +84 -0
- package/skills/hatch3r-cli-gh/SKILL.md +90 -0
- package/skills/hatch3r-cli-glab/SKILL.md +89 -0
- package/skills/hatch3r-cli-jq/SKILL.md +85 -0
- package/skills/hatch3r-cli-lazygit/SKILL.md +78 -0
- package/skills/hatch3r-cli-llm/SKILL.md +84 -0
- package/skills/hatch3r-cli-miller/SKILL.md +84 -0
- package/skills/hatch3r-cli-mods/SKILL.md +84 -0
- package/skills/hatch3r-cli-overview/SKILL.md +60 -0
- package/skills/hatch3r-cli-playwright/SKILL.md +89 -0
- package/skills/hatch3r-cli-podman/SKILL.md +84 -0
- package/skills/hatch3r-cli-ripgrep/SKILL.md +85 -0
- package/skills/hatch3r-cli-rtk/SKILL.md +91 -0
- package/skills/hatch3r-cli-sd/SKILL.md +85 -0
- package/skills/hatch3r-cli-stagehand/SKILL.md +79 -0
- package/skills/hatch3r-cli-taplo/SKILL.md +84 -0
- package/skills/hatch3r-cli-xsv/SKILL.md +89 -0
- package/skills/hatch3r-cli-yq/SKILL.md +85 -0
- package/skills/hatch3r-cli-zstd/SKILL.md +85 -0
- package/skills/hatch3r-context-health/SKILL.md +14 -0
- package/skills/hatch3r-cost-tracking/SKILL.md +14 -0
- package/skills/hatch3r-customize/SKILL.md +14 -0
- package/skills/hatch3r-dep-audit/SKILL.md +14 -0
- package/skills/hatch3r-design-system-detect/SKILL.md +162 -0
- package/skills/hatch3r-feature/SKILL.md +2 -0
- package/skills/hatch3r-gh-agentic-workflows/SKILL.md +13 -0
- package/skills/hatch3r-handoff-prepare/SKILL.md +160 -0
- package/skills/hatch3r-handoff-resume/SKILL.md +171 -0
- package/skills/hatch3r-incident-response/SKILL.md +14 -0
- package/skills/hatch3r-issue-workflow/SKILL.md +5 -0
- package/skills/hatch3r-logical-refactor/SKILL.md +14 -0
- package/skills/hatch3r-migration/SKILL.md +14 -0
- package/skills/hatch3r-observability-verify/SKILL.md +133 -0
- package/skills/hatch3r-perf-audit/SKILL.md +14 -0
- package/skills/hatch3r-pr-creation/SKILL.md +14 -0
- package/skills/hatch3r-qa-validation/SKILL.md +18 -0
- package/skills/hatch3r-recipe/SKILL.md +14 -0
- package/skills/hatch3r-refactor/SKILL.md +14 -0
- package/skills/hatch3r-release/SKILL.md +14 -0
- package/skills/hatch3r-reliability-verify/SKILL.md +144 -0
- package/skills/hatch3r-ui-ux-verify/SKILL.md +136 -0
- package/skills/hatch3r-visual-refactor/SKILL.md +15 -1
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hatch3r-cli-llm
|
|
3
|
+
description: "simonw/llm — invoke LLMs from the command line with prompt templates. Use when model-agnostic shell prompting with template files and conversation memory; invoke `llm`. Streams tokens to stdout so downstream `grep`/`tee` consumers see partial results."
|
|
4
|
+
tags: ["cli-tools", "ai"]
|
|
5
|
+
quality_charter: agents/shared/quality-charter.md
|
|
6
|
+
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
7
|
+
cache_friendly: true
|
|
8
|
+
cli_tool:
|
|
9
|
+
id: llm
|
|
10
|
+
bin: llm
|
|
11
|
+
tier: 2
|
|
12
|
+
category: ai
|
|
13
|
+
homepage: https://llm.datasette.io/
|
|
14
|
+
---
|
|
15
|
+
<!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
|
|
16
|
+
# llm
|
|
17
|
+
|
|
18
|
+
simonw/llm — invoke LLMs from the command line with prompt templates
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
Reach for `llm` when the task is in the **ai** category and the agent would otherwise call an MCP tool or read large outputs into context.
|
|
23
|
+
|
|
24
|
+
## Token Cost
|
|
25
|
+
|
|
26
|
+
CLI tools return structured stdout that fits in <1KB for typical queries; equivalent MCP calls regularly exceed 10KB.
|
|
27
|
+
Reference: Anthropic engineering (Nov 4 2025) — code-execution-over-MCP yields 98.7% token reduction.
|
|
28
|
+
|
|
29
|
+
## Recipes
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
llm 'summarize this' < file.txt
|
|
33
|
+
```
|
|
34
|
+
Pipe a file into the default model; output is plain text on stdout.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
llm -m claude-3-5-sonnet 'rewrite as bullet points' < draft.md > bullets.md
|
|
38
|
+
```
|
|
39
|
+
Pick a model explicitly and redirect output — useful in batch scripts.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
llm -t code-review -m claude-3-5-sonnet < patch.diff
|
|
43
|
+
```
|
|
44
|
+
Use a saved prompt template (`-t code-review`); template files live under `~/.config/io.datasette.llm/templates/`.
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
llm logs --last 5 --json | jq '.[] | {model, prompt, response}'
|
|
48
|
+
```
|
|
49
|
+
Inspect recent prompt/response pairs; the local SQLite log is queryable with standard SQL via `llm logs sql`.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
llm templates list
|
|
53
|
+
```
|
|
54
|
+
List installed templates so the agent picks an existing one instead of writing a new prompt from scratch.
|
|
55
|
+
|
|
56
|
+
## Wrong Choice When
|
|
57
|
+
|
|
58
|
+
- You are already running inside an agent driven by an LLM (this assistant) — nesting another LLM call adds latency and cost without new capability.
|
|
59
|
+
- The task is deterministic text transformation (e.g., rename a variable across files) — use `sd`/`comby`/`ast-grep`, not an LLM.
|
|
60
|
+
- Working offline without a configured local backend — set up Ollama or `llm-local` first; `llm` with no provider errors out.
|
|
61
|
+
|
|
62
|
+
## Alternatives
|
|
63
|
+
|
|
64
|
+
| Tool | When to prefer |
|
|
65
|
+
|------|----------------|
|
|
66
|
+
| `aichat` | Want a richer multi-turn TTY chat experience. |
|
|
67
|
+
| `mods` | Bias toward shell-friendly piping, prompt-as-flag UX. |
|
|
68
|
+
| `curl` to provider API | Need explicit request shape, streaming, or headers `llm` does not expose. |
|
|
69
|
+
|
|
70
|
+
## Detection / Install
|
|
71
|
+
|
|
72
|
+
Verify with:
|
|
73
|
+
```bash
|
|
74
|
+
command -v llm
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Install (mac):
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# brew
|
|
81
|
+
brew install llm
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Homepage: https://llm.datasette.io/
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hatch3r-cli-miller
|
|
3
|
+
description: "awk/sed/cut/join for CSV/TSV/JSON/Parquet streams. Use when awk-like record processing across CSV, TSV, JSON line streams; invoke `mlr`. Streams records lazily; works on datasets that exceed available RAM."
|
|
4
|
+
tags: ["cli-tools", "data", "opt-in"]
|
|
5
|
+
quality_charter: agents/shared/quality-charter.md
|
|
6
|
+
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
7
|
+
cache_friendly: true
|
|
8
|
+
cli_tool:
|
|
9
|
+
id: miller
|
|
10
|
+
bin: mlr
|
|
11
|
+
tier: 3
|
|
12
|
+
category: data
|
|
13
|
+
homepage: https://miller.readthedocs.io/
|
|
14
|
+
---
|
|
15
|
+
<!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
|
|
16
|
+
# miller
|
|
17
|
+
|
|
18
|
+
awk/sed/cut/join for CSV/TSV/JSON/Parquet streams
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
Reach for `mlr` when the task is in the **data** category and the agent would otherwise call an MCP tool or read large outputs into context.
|
|
23
|
+
|
|
24
|
+
## Token Cost
|
|
25
|
+
|
|
26
|
+
CLI tools return structured stdout that fits in <1KB for typical queries; equivalent MCP calls regularly exceed 10KB.
|
|
27
|
+
Reference: Anthropic engineering (Nov 4 2025) — code-execution-over-MCP yields 98.7% token reduction.
|
|
28
|
+
|
|
29
|
+
## Recipes
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
mlr --c2t cat data.csv
|
|
33
|
+
```
|
|
34
|
+
Convert CSV to TSV on stdout — handy for piping into shell tools that prefer tab delimiters.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
mlr --csv stats1 -a mean,stddev -f price products.csv
|
|
38
|
+
```
|
|
39
|
+
Compute mean and stddev of the `price` column.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
mlr --icsv --ojson put '$tax = $amount * 0.07' transactions.csv
|
|
43
|
+
```
|
|
44
|
+
Read CSV, add a computed column, emit JSON — chained format conversion plus DSL transform.
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
mlr --csv filter '$status == "active"' users.csv
|
|
48
|
+
```
|
|
49
|
+
Row filter using the put/filter DSL — operates on streams of arbitrary size.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
mlr --csv join -j id -f orders.csv customers.csv
|
|
53
|
+
```
|
|
54
|
+
SQL-style join on `id` between two CSVs, streamed.
|
|
55
|
+
|
|
56
|
+
## Wrong Choice When
|
|
57
|
+
|
|
58
|
+
- **Multi-gigabyte analytical queries with joins:** `hatch3r-cli-duckdb` (tier 2) has a query planner and parallel scan; mlr is streaming-single-thread.
|
|
59
|
+
- **One-column slice or count:** `hatch3r-cli-xsv` (tier 2) is faster for trivial slicing.
|
|
60
|
+
- **Production ETL with schema enforcement:** use a real database or dbt — mlr is a CLI-scratchpad tool.
|
|
61
|
+
|
|
62
|
+
## Alternatives
|
|
63
|
+
|
|
64
|
+
| Tool | When to prefer |
|
|
65
|
+
|------|----------------|
|
|
66
|
+
| `hatch3r-cli-duckdb` (tier 2) | Multi-GB data, joins, analytical SQL, Parquet |
|
|
67
|
+
| `hatch3r-cli-xsv` (tier 2) | Single-column slice, count, sample on plain CSV |
|
|
68
|
+
| `hatch3r-cli-csvkit` (tier 3) | SQL-over-CSV with `csvsql`, Python integration |
|
|
69
|
+
|
|
70
|
+
## Detection / Install
|
|
71
|
+
|
|
72
|
+
Verify with:
|
|
73
|
+
```bash
|
|
74
|
+
command -v mlr
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Install (mac):
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# brew
|
|
81
|
+
brew install miller
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Homepage: https://miller.readthedocs.io/
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hatch3r-cli-mods
|
|
3
|
+
description: "Charm mods — Unix-friendly LLM pipeline tool. Use when Unix-pipeline LLM inference reading Markdown stdin and writing Markdown stdout; invoke `mods`. Streams tokens to stdout so downstream `grep`/`tee` consumers see partial results."
|
|
4
|
+
tags: ["cli-tools", "ai", "opt-in"]
|
|
5
|
+
quality_charter: agents/shared/quality-charter.md
|
|
6
|
+
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
7
|
+
cache_friendly: true
|
|
8
|
+
cli_tool:
|
|
9
|
+
id: mods
|
|
10
|
+
bin: mods
|
|
11
|
+
tier: 3
|
|
12
|
+
category: ai
|
|
13
|
+
homepage: https://github.com/charmbracelet/mods
|
|
14
|
+
---
|
|
15
|
+
<!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
|
|
16
|
+
# mods
|
|
17
|
+
|
|
18
|
+
Charm mods — Unix-friendly LLM pipeline tool
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
Reach for `mods` when the task is in the **ai** category and the agent would otherwise call an MCP tool or read large outputs into context.
|
|
23
|
+
|
|
24
|
+
## Token Cost
|
|
25
|
+
|
|
26
|
+
CLI tools return structured stdout that fits in <1KB for typical queries; equivalent MCP calls regularly exceed 10KB.
|
|
27
|
+
Reference: Anthropic engineering (Nov 4 2025) — code-execution-over-MCP yields 98.7% token reduction.
|
|
28
|
+
|
|
29
|
+
## Recipes
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
cat README.md | mods 'summarize in 3 bullets'
|
|
33
|
+
```
|
|
34
|
+
Pipe a file into mods with an inline instruction; output prints to stdout.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
git diff | mods 'write a conventional-commits message for this diff'
|
|
38
|
+
```
|
|
39
|
+
Generate a commit message from staged changes — pairs well with `git commit -F -`.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
mods -m gpt-4o 'rewrite for clarity' < draft.md
|
|
43
|
+
```
|
|
44
|
+
Override the default model per invocation.
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
mods --no-cache 'fresh response please' < input.txt
|
|
48
|
+
```
|
|
49
|
+
Bypass the on-disk response cache when you need a non-deterministic re-roll.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
mods -f json 'extract action items as a JSON array' < meeting-notes.md
|
|
53
|
+
```
|
|
54
|
+
Force a structured-output format — pipes cleanly into `hatch3r-cli-jq`.
|
|
55
|
+
|
|
56
|
+
## Wrong Choice When
|
|
57
|
+
|
|
58
|
+
- **Plugin ecosystem needed (templates, embeddings, multi-step chains):** `hatch3r-cli-llm` (tier 2) covers these; mods is intentionally minimal.
|
|
59
|
+
- **Multi-turn conversational sessions:** mods is single-shot; use `hatch3r-cli-aichat` for persisted history.
|
|
60
|
+
- **Interactive prompt iteration with feedback:** mods has no TUI — `aichat` has REPL mode.
|
|
61
|
+
|
|
62
|
+
## Alternatives
|
|
63
|
+
|
|
64
|
+
| Tool | When to prefer |
|
|
65
|
+
|------|----------------|
|
|
66
|
+
| `hatch3r-cli-llm` (tier 2) | Plugin ecosystem, templates, embeddings, CI workflows |
|
|
67
|
+
| `hatch3r-cli-aichat` (tier 3) | Multi-turn sessions, RAG mode, role library |
|
|
68
|
+
| Raw `curl` against provider API | Custom request shape, streaming, no client process |
|
|
69
|
+
|
|
70
|
+
## Detection / Install
|
|
71
|
+
|
|
72
|
+
Verify with:
|
|
73
|
+
```bash
|
|
74
|
+
command -v mods
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Install (mac):
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# brew
|
|
81
|
+
brew install charmbracelet/tap/mods
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Homepage: https://github.com/charmbracelet/mods
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hatch3r-cli-overview
|
|
3
|
+
description: "Catalog of all hatch3r-recommended CLI tools — discovery entry with tier tables and decision tree."
|
|
4
|
+
tags: ["cli-tools", "core", "reference"]
|
|
5
|
+
quality_charter: agents/shared/quality-charter.md
|
|
6
|
+
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
7
|
+
cache_friendly: true
|
|
8
|
+
---
|
|
9
|
+
<!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
|
|
10
|
+
# CLI Tool Catalog
|
|
11
|
+
|
|
12
|
+
hatch3r recommends a small set of terminal-native CLI tools agents can call instead of MCP servers or wrapped APIs. Each tool listed below has its own skill file with recipes, anti-patterns, and per-OS install instructions. Run `npx hatch3r cli-tools` to (de)select tools, or `npx hatch3r cli-tools detect` for a read-only install report.
|
|
13
|
+
|
|
14
|
+
## Tier 1 — default-on
|
|
15
|
+
|
|
16
|
+
| Tool | Skill ID | Use for |
|
|
17
|
+
|------|----------|---------|
|
|
18
|
+
| `ast-grep` | `hatch3r-cli-ast-grep` | Structural search and rewrite for code via AST patterns |
|
|
19
|
+
| `bat` | `hatch3r-cli-bat` | cat clone with syntax highlighting and git integration |
|
|
20
|
+
| `delta` | `hatch3r-cli-delta` | Syntax-highlighting git diff pager |
|
|
21
|
+
| `fd` | `hatch3r-cli-fd` | User-friendly find replacement, gitignore-aware |
|
|
22
|
+
| `gh` | `hatch3r-cli-gh` | GitHub CLI — repos, issues, PRs, releases, gists |
|
|
23
|
+
| `jq` | `hatch3r-cli-jq` | JSON processor and query language |
|
|
24
|
+
| `ripgrep` | `hatch3r-cli-ripgrep` | Fast recursive grep with sane defaults and gitignore awareness |
|
|
25
|
+
| `sd` | `hatch3r-cli-sd` | Intuitive sed replacement with literal string patterns |
|
|
26
|
+
| `yq` | `hatch3r-cli-yq` | YAML processor (mikefarah Go implementation) |
|
|
27
|
+
| `zstd` | `hatch3r-cli-zstd` | Fast lossless compression with high ratio |
|
|
28
|
+
|
|
29
|
+
## Tier 2 — conditional (offered on project signal)
|
|
30
|
+
|
|
31
|
+
| Tool | Skill ID | Use for |
|
|
32
|
+
|------|----------|---------|
|
|
33
|
+
| `az-devops` | `hatch3r-cli-az-devops` | Azure DevOps work items, repos, pipelines via az CLI extension |
|
|
34
|
+
| `difftastic` | `hatch3r-cli-difftastic` | Structural diff that understands syntax |
|
|
35
|
+
| `docker` | `hatch3r-cli-docker` | Container runtime and CLI |
|
|
36
|
+
| `duckdb` | `hatch3r-cli-duckdb` | Embedded analytical database with first-class CSV/Parquet support |
|
|
37
|
+
| `fzf` | `hatch3r-cli-fzf` | Interactive fuzzy finder for TTY pickers |
|
|
38
|
+
| `glab` | `hatch3r-cli-glab` | GitLab CLI — merge requests, issues, pipelines |
|
|
39
|
+
| `lazygit` | `hatch3r-cli-lazygit` | Terminal UI for git with keyboard-driven workflows |
|
|
40
|
+
| `llm` | `hatch3r-cli-llm` | simonw/llm — invoke LLMs from the command line with prompt templates |
|
|
41
|
+
| `playwright` | `hatch3r-cli-playwright` | Browser automation, web testing, and UI interaction |
|
|
42
|
+
| `taplo` | `hatch3r-cli-taplo` | TOML toolkit (format, lint, query) for pyproject.toml / Cargo.toml |
|
|
43
|
+
| `xsv` | `hatch3r-cli-xsv` | Fast CSV toolkit (slice, search, join, stats) |
|
|
44
|
+
|
|
45
|
+
## Tier 3 — opt-in advanced
|
|
46
|
+
|
|
47
|
+
| Tool | Skill ID | Use for |
|
|
48
|
+
|------|----------|---------|
|
|
49
|
+
| `aichat` | `hatch3r-cli-aichat` | Multi-provider LLM chat CLI with RAG and session memory |
|
|
50
|
+
| `comby` | `hatch3r-cli-comby` | Structural search and replace across languages with declarative patterns |
|
|
51
|
+
| `csvkit` | `hatch3r-cli-csvkit` | csvkit — Python CSV toolkit (csvlook, csvsql, csvjoin, csvstat) |
|
|
52
|
+
| `miller` | `hatch3r-cli-miller` | awk/sed/cut/join for CSV/TSV/JSON/Parquet streams |
|
|
53
|
+
| `mods` | `hatch3r-cli-mods` | Charm mods — Unix-friendly LLM pipeline tool |
|
|
54
|
+
| `podman` | `hatch3r-cli-podman` | Daemonless container engine, rootless by default (Docker alternative) |
|
|
55
|
+
| `rtk` | `hatch3r-cli-rtk` | CLI output-compression proxy (see ⚠ caveat) |
|
|
56
|
+
| `stagehand` | `hatch3r-cli-stagehand` | Browserbase Stagehand — AI-driven browser automation |
|
|
57
|
+
|
|
58
|
+
## Decision Tree
|
|
59
|
+
|
|
60
|
+
Need text search → `rg`. Structural → `ast-grep`. Files → `fd`. JSON → `jq`. YAML → `yq`. Replace → `sd`. Git/forge → `gh` / `glab` / `az-devops`. Browser → `playwright`. View → `bat`. Diff → `delta`. Archive → `zstd`.
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hatch3r-cli-playwright
|
|
3
|
+
description: "Browser automation, web testing, and UI interaction. Use when end-to-end browser test execution capturing screenshots and traces; invoke `playwright`. Built around test runners (`@playwright/test`) with deterministic locators and waits."
|
|
4
|
+
tags: ["cli-tools", "browser"]
|
|
5
|
+
quality_charter: agents/shared/quality-charter.md
|
|
6
|
+
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
7
|
+
cache_friendly: true
|
|
8
|
+
cli_tool:
|
|
9
|
+
id: playwright
|
|
10
|
+
bin: playwright
|
|
11
|
+
tier: 2
|
|
12
|
+
category: browser
|
|
13
|
+
homepage: https://playwright.dev/
|
|
14
|
+
---
|
|
15
|
+
<!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
|
|
16
|
+
# playwright
|
|
17
|
+
|
|
18
|
+
Browser automation, web testing, and UI interaction
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
Reach for `playwright` when the task is in the **browser** category and the agent would otherwise call an MCP tool or read large outputs into context.
|
|
23
|
+
|
|
24
|
+
## Token Cost
|
|
25
|
+
|
|
26
|
+
CLI tools return structured stdout that fits in <1KB for typical queries; equivalent MCP calls regularly exceed 10KB.
|
|
27
|
+
Reference: Anthropic engineering (Nov 4 2025) — code-execution-over-MCP yields 98.7% token reduction.
|
|
28
|
+
|
|
29
|
+
## Recipes
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
npx playwright test
|
|
33
|
+
```
|
|
34
|
+
Run the full suite; non-zero exit on first failing spec.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npx playwright test --grep '@smoke' --workers=1
|
|
38
|
+
```
|
|
39
|
+
Filter by tag and serialize workers — stable output for agent log scraping.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
npx playwright test tests/login.spec.ts --reporter=line
|
|
43
|
+
```
|
|
44
|
+
Single-file run with one-line-per-test reporter — fits in <1KB stdout.
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npx playwright codegen https://example.com
|
|
48
|
+
```
|
|
49
|
+
Record interactions into a generated spec — human-in-the-loop authoring; not for autonomous runs.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npx playwright test --update-snapshots
|
|
53
|
+
```
|
|
54
|
+
Refresh visual/text snapshots after intentional UI changes; review the diff before committing.
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
npx playwright show-report
|
|
58
|
+
```
|
|
59
|
+
Open the HTML report locally — human triage step; agents should parse `test-results/results.json` instead.
|
|
60
|
+
|
|
61
|
+
## Wrong Choice When
|
|
62
|
+
|
|
63
|
+
- The system under test exposes only an HTTP API and no rendered UI — use `curl` + `jq` (Tier 1) for ~50x faster runs.
|
|
64
|
+
- The task is autonomous natural-language browsing (navigate, read, decide) rather than scripted assertions — Stagehand is built for that loop.
|
|
65
|
+
- You only need a one-off page snapshot or screenshot from a script — a headless `curl` plus a server-side renderer is cheaper than the full Playwright install.
|
|
66
|
+
|
|
67
|
+
## Alternatives
|
|
68
|
+
|
|
69
|
+
| Tool | When to prefer |
|
|
70
|
+
|------|----------------|
|
|
71
|
+
| `curl` + `jq` | API-only tests; no DOM involved. |
|
|
72
|
+
| Stagehand | Agent drives the browser with natural language rather than fixed scripts. |
|
|
73
|
+
| Cypress | Existing Cypress suite or component-test workflow; otherwise prefer Playwright for multi-browser support. |
|
|
74
|
+
|
|
75
|
+
## Detection / Install
|
|
76
|
+
|
|
77
|
+
Verify with:
|
|
78
|
+
```bash
|
|
79
|
+
command -v playwright
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Install (mac):
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# npm
|
|
86
|
+
npm install -D @playwright/test && npx playwright install
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Homepage: https://playwright.dev/
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hatch3r-cli-podman
|
|
3
|
+
description: "Daemonless container engine, rootless by default (Docker alternative). Use when rootless OCI-image execution without a privileged daemon; invoke `podman`. Forks per-pod processes directly under the invoking user; ideal for hardened CI workers."
|
|
4
|
+
tags: ["cli-tools", "container", "opt-in"]
|
|
5
|
+
quality_charter: agents/shared/quality-charter.md
|
|
6
|
+
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
7
|
+
cache_friendly: true
|
|
8
|
+
cli_tool:
|
|
9
|
+
id: podman
|
|
10
|
+
bin: podman
|
|
11
|
+
tier: 3
|
|
12
|
+
category: container
|
|
13
|
+
homepage: https://podman.io/
|
|
14
|
+
---
|
|
15
|
+
<!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
|
|
16
|
+
# podman
|
|
17
|
+
|
|
18
|
+
Daemonless container engine, rootless by default (Docker alternative)
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
Reach for `podman` when the task is in the **container** category and the agent would otherwise call an MCP tool or read large outputs into context.
|
|
23
|
+
|
|
24
|
+
## Token Cost
|
|
25
|
+
|
|
26
|
+
CLI tools return structured stdout that fits in <1KB for typical queries; equivalent MCP calls regularly exceed 10KB.
|
|
27
|
+
Reference: Anthropic engineering (Nov 4 2025) — code-execution-over-MCP yields 98.7% token reduction.
|
|
28
|
+
|
|
29
|
+
## Recipes
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
podman build -t myapp:dev .
|
|
33
|
+
```
|
|
34
|
+
Build an image from the local Dockerfile — same CLI surface as docker build.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
podman run --rm -v "$PWD:/app:Z" -w /app node:22 npm test
|
|
38
|
+
```
|
|
39
|
+
Run a one-shot container with the working directory bind-mounted; the `:Z` suffix triggers SELinux relabel on Fedora/RHEL hosts.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
podman compose up
|
|
43
|
+
```
|
|
44
|
+
Run a `compose.yaml` workflow under podman — uses the podman-compose plugin or docker-compose adapter.
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
podman run --userns=keep-id -v "$PWD:/work" myapp
|
|
48
|
+
```
|
|
49
|
+
Preserve the host UID inside the rootless container so written files do not end up owned by a high-mapped UID.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
podman system service --time=0 &
|
|
53
|
+
```
|
|
54
|
+
Expose a docker-API-compatible socket so docker-only tooling (e.g. testcontainers) can talk to podman unchanged.
|
|
55
|
+
|
|
56
|
+
## Wrong Choice When
|
|
57
|
+
|
|
58
|
+
- **Enterprise compose / swarm orchestration:** `hatch3r-cli-docker` (tier 2) is the established path for Swarm and Docker Desktop integration; podman's swarm support is minimal.
|
|
59
|
+
- **macOS developer experience parity:** docker desktop has native macOS VM tuning; podman runs in a QEMU machine with extra overhead and bind-mount caveats.
|
|
60
|
+
- **Tooling that hard-codes `/var/run/docker.sock`:** unless you start `podman system service`, those tools fail.
|
|
61
|
+
|
|
62
|
+
## Alternatives
|
|
63
|
+
|
|
64
|
+
| Tool | When to prefer |
|
|
65
|
+
|------|----------------|
|
|
66
|
+
| `hatch3r-cli-docker` (tier 2) | Mainstream CI, Docker Desktop, Swarm, broad ecosystem assumptions |
|
|
67
|
+
| nerdctl + containerd | Kubernetes-aligned runtime, OCI-faithful CLI |
|
|
68
|
+
| buildah | Image builds without a full container runtime (rootless, scriptable) |
|
|
69
|
+
|
|
70
|
+
## Detection / Install
|
|
71
|
+
|
|
72
|
+
Verify with:
|
|
73
|
+
```bash
|
|
74
|
+
command -v podman
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Install (mac):
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# brew
|
|
81
|
+
brew install podman
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Homepage: https://podman.io/
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hatch3r-cli-ripgrep
|
|
3
|
+
description: "Fast recursive grep with sane defaults and gitignore awareness. Use when regex content searches across large source trees with gitignore filtering; invoke `rg`. Outputs newline-separated hit records; bound results with `-c` or `--max-count`."
|
|
4
|
+
tags: ["cli-tools", "search", "core"]
|
|
5
|
+
quality_charter: agents/shared/quality-charter.md
|
|
6
|
+
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
7
|
+
cache_friendly: true
|
|
8
|
+
cli_tool:
|
|
9
|
+
id: ripgrep
|
|
10
|
+
bin: rg
|
|
11
|
+
tier: 1
|
|
12
|
+
category: search
|
|
13
|
+
homepage: https://github.com/BurntSushi/ripgrep
|
|
14
|
+
---
|
|
15
|
+
<!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
|
|
16
|
+
# ripgrep
|
|
17
|
+
|
|
18
|
+
Fast recursive grep with sane defaults and gitignore awareness
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
Reach for `rg` when the task is in the **search** category and the agent would otherwise call an MCP tool or read large outputs into context.
|
|
23
|
+
|
|
24
|
+
## Token Cost
|
|
25
|
+
|
|
26
|
+
CLI tools return structured stdout that fits in <1KB for typical queries; equivalent MCP calls regularly exceed 10KB.
|
|
27
|
+
Reference: Anthropic engineering (Nov 4 2025) — code-execution-over-MCP yields 98.7% token reduction.
|
|
28
|
+
|
|
29
|
+
## Recipes
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
rg --json -tts 'createServer\(' src/
|
|
33
|
+
```
|
|
34
|
+
Structured JSON output scoped to TypeScript — parse hits with `jq` instead of re-reading files.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
rg -c 'TODO' --type ts
|
|
38
|
+
```
|
|
39
|
+
Per-file match counts for `.ts` files; cheap stand-in for issue-debt triage.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
rg -B 2 -A 4 'BREAKING' --max-count 50 CHANGELOG.md
|
|
43
|
+
```
|
|
44
|
+
Context windows around BREAKING entries, capped at 50 hits to bound output size.
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
rg --hidden --no-ignore 'API_KEY' .
|
|
48
|
+
```
|
|
49
|
+
Pierces both dotfiles and `.gitignore` rules — use when scanning for accidentally-committed secrets.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
rg --files-with-matches 'deprecated' src/ | xargs -I{} rg -n 'deprecated' {}
|
|
53
|
+
```
|
|
54
|
+
Two-phase: file list first, then ranged scan — keeps stdout small when match density is uneven.
|
|
55
|
+
|
|
56
|
+
## Wrong Choice When
|
|
57
|
+
|
|
58
|
+
- Don't use `rg` to match by code structure (function calls, type signatures, JSX shape); literal regex misses renames and whitespace variants. Reach for `ast-grep` (`hatch3r-cli-ast-grep`).
|
|
59
|
+
- Don't run `rg` against binary blobs (`.zst`, `.png`, lockfile snapshots); it skips them silently by default but explicit `-a` mode wastes CPU. Reach for category-specific tools (`zstd -d` then `rg`, or `xxd | rg` for hex).
|
|
60
|
+
- Don't use `rg` to search a specific git revision or stash — it only sees the working tree. Reach for `git grep <rev>`.
|
|
61
|
+
|
|
62
|
+
## Alternatives
|
|
63
|
+
|
|
64
|
+
| Tool | When to prefer |
|
|
65
|
+
|------|----------------|
|
|
66
|
+
| `ast-grep` (`hatch3r-cli-ast-grep`) | Structural code patterns: matchers like `console.log($MSG)` that survive whitespace and identifier renames. |
|
|
67
|
+
| `git grep` | Search at a specific revision, tag, or stash — `rg` only reads the working tree. |
|
|
68
|
+
| `fd` (`hatch3r-cli-fd`) piped into `rg` | Filename pre-filter when scoping by extension/age is faster than `rg --type`. |
|
|
69
|
+
| `grep -RIn` | POSIX-only environment where ripgrep is not on PATH and install is blocked. |
|
|
70
|
+
|
|
71
|
+
## Detection / Install
|
|
72
|
+
|
|
73
|
+
Verify with:
|
|
74
|
+
```bash
|
|
75
|
+
command -v rg
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Install (mac):
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
# brew
|
|
82
|
+
brew install ripgrep
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Homepage: https://github.com/BurntSushi/ripgrep
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hatch3r-cli-rtk
|
|
3
|
+
description: "CLI output-compression proxy (see ⚠ caveat). Use when compressing oversize tool output payloads before they enter an LLM prompt; invoke `rtk`. Streams tokens to stdout so downstream `grep`/`tee` consumers see partial results."
|
|
4
|
+
tags: ["cli-tools", "ai", "opt-in", "caveat"]
|
|
5
|
+
quality_charter: agents/shared/quality-charter.md
|
|
6
|
+
efficiency_patterns: agents/shared/efficiency-patterns.md
|
|
7
|
+
cache_friendly: true
|
|
8
|
+
cli_tool:
|
|
9
|
+
id: rtk
|
|
10
|
+
bin: rtk
|
|
11
|
+
tier: 3
|
|
12
|
+
category: ai
|
|
13
|
+
homepage: https://github.com/rtk-ai/rtk
|
|
14
|
+
caveat: pipe-output-corruption
|
|
15
|
+
---
|
|
16
|
+
<!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
|
|
17
|
+
# rtk
|
|
18
|
+
|
|
19
|
+
CLI output-compression proxy (see ⚠ caveat)
|
|
20
|
+
|
|
21
|
+
## ⚠ Critical: pipe-output corruption (issue #1282)
|
|
22
|
+
|
|
23
|
+
rtk silently rewrites piped stdout which breaks downstream tooling.
|
|
24
|
+
Mitigation: `export RTK_DISABLE_PIPE_REWRITE=1` or invoke with `rtk --raw-output`.
|
|
25
|
+
Track upstream: https://github.com/rtk-ai/rtk/issues/1282
|
|
26
|
+
|
|
27
|
+
## When to Use
|
|
28
|
+
|
|
29
|
+
Reach for `rtk` when the task is in the **ai** category and the agent would otherwise call an MCP tool or read large outputs into context.
|
|
30
|
+
|
|
31
|
+
## Token Cost
|
|
32
|
+
|
|
33
|
+
CLI tools return structured stdout that fits in <1KB for typical queries; equivalent MCP calls regularly exceed 10KB.
|
|
34
|
+
Reference: Anthropic engineering (Nov 4 2025) — code-execution-over-MCP yields 98.7% token reduction.
|
|
35
|
+
|
|
36
|
+
## Recipes
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
export RTK_DISABLE_PIPE_REWRITE=1
|
|
40
|
+
```
|
|
41
|
+
Disable pipe-output rewriting before any pipeline use. Required for safe interop with jq/grep/awk.
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
rtk run npm test
|
|
45
|
+
```
|
|
46
|
+
Run the package's test suite under rtk to compress vitest/jest output before it reaches the agent's context.
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
rtk run pytest -x
|
|
50
|
+
```
|
|
51
|
+
Compress pytest output and stop on first failure — fits a multi-thousand-line traceback into a few KB.
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
rtk eval 'function foo() { return 42 }'
|
|
55
|
+
```
|
|
56
|
+
Sandboxed JavaScript eval — returns just the value, no surrounding noise.
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
rtk --raw-output run go test ./...
|
|
60
|
+
```
|
|
61
|
+
Per-invocation override of the pipe rewrite when piping output into a downstream parser (`| jq`, `| grep`).
|
|
62
|
+
|
|
63
|
+
## Wrong Choice When
|
|
64
|
+
|
|
65
|
+
- **Piping to `jq` / `grep` / `awk` without `RTK_DISABLE_PIPE_REWRITE=1` set:** the rewrite mangles JSON byte boundaries (issue #1282) — corruption is silent. Reach for plain shell + `tee` or `hatch3r-cli-jq` directly on raw command output.
|
|
66
|
+
- **Safety-critical CI where masked failures matter:** rtk's compression can elide stack frames a downstream check needs. Run the underlying test command directly and capture full output to a file.
|
|
67
|
+
- **One-shot small commands under ~100 lines:** the compression overhead exceeds the saved context — invoke the underlying tool directly.
|
|
68
|
+
|
|
69
|
+
## Alternatives
|
|
70
|
+
|
|
71
|
+
| Tool | When to prefer |
|
|
72
|
+
|------|----------------|
|
|
73
|
+
| Plain shell + `tee output.log` | When you need a verbatim log file for forensics or CI artifacts |
|
|
74
|
+
| `hatch3r-cli-jq` (tier 1) on raw output | When the upstream command already emits JSON and you want a deterministic projection |
|
|
75
|
+
| Direct `npm test` / `pytest -x` with `--reporter` flags | When the test runner has a built-in compact reporter (jest `--silent`, pytest `-q`) |
|
|
76
|
+
|
|
77
|
+
## Detection / Install
|
|
78
|
+
|
|
79
|
+
Verify with:
|
|
80
|
+
```bash
|
|
81
|
+
command -v rtk
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Install (mac):
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
# brew
|
|
88
|
+
brew install rtk-ai/tap/rtk
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Homepage: https://github.com/rtk-ai/rtk
|