hatch3r 1.7.1 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +38 -12
- package/agents/hatch3r-a11y-auditor.md +4 -0
- package/agents/hatch3r-architect.md +4 -0
- package/agents/hatch3r-ci-watcher.md +4 -0
- package/agents/hatch3r-context-rules.md +26 -6
- package/agents/hatch3r-creator.md +6 -1
- 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 +4 -0
- package/agents/hatch3r-handoff-loader.md +243 -0
- package/agents/hatch3r-handoff-preparer.md +134 -0
- package/agents/hatch3r-implementer.md +12 -0
- package/agents/hatch3r-learnings-loader.md +5 -1
- package/agents/hatch3r-lint-fixer.md +4 -0
- package/agents/hatch3r-perf-profiler.md +8 -0
- package/agents/hatch3r-researcher.md +4 -0
- package/agents/hatch3r-reviewer.md +94 -0
- package/agents/hatch3r-security-auditor.md +24 -0
- package/agents/hatch3r-test-writer.md +4 -0
- package/agents/modes/requirements-elicitation.md +4 -1
- package/agents/modes/similar-implementation.md +6 -0
- package/agents/modes/user-flows.md +76 -0
- package/agents/shared/quality-charter.md +128 -0
- package/agents/shared/user-content-templates.md +31 -1
- package/commands/hatch3r-agent-customize.md +4 -0
- package/commands/hatch3r-api-spec.md +7 -0
- package/commands/hatch3r-benchmark.md +7 -0
- package/commands/hatch3r-board-fill.md +8 -0
- package/commands/hatch3r-board-groom.md +4 -0
- package/commands/hatch3r-board-init.md +51 -0
- package/commands/hatch3r-board-pickup.md +8 -0
- package/commands/hatch3r-board-refresh.md +4 -0
- package/commands/hatch3r-board-shared.md +6 -6
- package/commands/hatch3r-bug-plan.md +7 -0
- package/commands/hatch3r-codebase-map.md +8 -0
- package/commands/hatch3r-command-customize.md +4 -0
- package/commands/hatch3r-context-health.md +5 -0
- package/commands/hatch3r-create.md +59 -4
- package/commands/hatch3r-debug.md +7 -0
- package/commands/hatch3r-dep-audit.md +4 -0
- package/commands/hatch3r-feature-plan.md +7 -0
- package/commands/hatch3r-handoff.md +133 -0
- package/commands/hatch3r-healthcheck.md +4 -0
- package/commands/hatch3r-hooks.md +4 -0
- package/commands/hatch3r-learn.md +16 -0
- package/commands/hatch3r-migration-plan.md +7 -0
- package/commands/hatch3r-onboard.md +7 -0
- package/commands/hatch3r-pr-resolve.md +12 -1
- package/commands/hatch3r-project-spec.md +8 -0
- package/commands/hatch3r-quick-change.md +11 -2
- package/commands/hatch3r-recipe.md +4 -0
- package/commands/hatch3r-refactor-plan.md +7 -0
- package/commands/hatch3r-release.md +5 -0
- package/commands/hatch3r-revision.md +7 -0
- package/commands/hatch3r-roadmap.md +8 -0
- package/commands/hatch3r-rule-customize.md +4 -0
- package/commands/hatch3r-security-audit.md +4 -0
- package/commands/hatch3r-skill-customize.md +4 -0
- package/commands/hatch3r-test-plan.md +7 -0
- package/commands/hatch3r-workflow.md +11 -1
- package/dist/cli/index.js +4814 -1130
- package/dist/cli/index.js.map +1 -1
- package/package.json +10 -5
- package/rules/hatch3r-accessibility-standards.md +21 -0
- package/rules/hatch3r-accessibility-standards.mdc +21 -0
- package/rules/hatch3r-agent-orchestration-detail.md +3 -0
- package/rules/hatch3r-agent-orchestration-detail.mdc +3 -0
- package/rules/hatch3r-agent-orchestration.md +34 -3
- package/rules/hatch3r-agent-orchestration.mdc +34 -3
- 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 +2 -0
- package/rules/hatch3r-deep-context.mdc +2 -0
- 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 +8 -149
- package/rules/hatch3r-observability-tracing-detail.mdc +7 -149
- package/rules/hatch3r-observability-tracing.md +154 -6
- package/rules/hatch3r-observability-tracing.mdc +154 -6
- 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-agent-customize/SKILL.md +10 -0
- package/skills/hatch3r-ai-feature/SKILL.md +136 -0
- package/skills/hatch3r-api-spec/SKILL.md +73 -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 +89 -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-qsv/SKILL.md +91 -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 +111 -0
- package/skills/hatch3r-cli-taplo/SKILL.md +84 -0
- package/skills/hatch3r-cli-yq/SKILL.md +85 -0
- package/skills/hatch3r-cli-zstd/SKILL.md +85 -0
- package/skills/hatch3r-command-customize/SKILL.md +10 -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 +17 -0
- package/skills/hatch3r-dep-audit/SKILL.md +14 -0
- package/skills/hatch3r-design-system-detect/SKILL.md +164 -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 +134 -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 +146 -0
- package/skills/hatch3r-rule-customize/SKILL.md +10 -0
- package/skills/hatch3r-skill-customize/SKILL.md +10 -0
- package/skills/hatch3r-ui-ux-verify/SKILL.md +138 -0
- package/skills/hatch3r-visual-refactor/SKILL.md +15 -1
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hatch3r-cli-fzf
|
|
3
|
+
description: "Interactive fuzzy finder for TTY pickers. Use when ad-hoc interactive picker over piped stdin streams from another command; invoke `fzf`. Requires a TTY; degrade gracefully to non-interactive batch in CI."
|
|
4
|
+
tags: ["cli-tools", "interactive"]
|
|
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: fzf
|
|
10
|
+
bin: fzf
|
|
11
|
+
tier: 2
|
|
12
|
+
category: interactive
|
|
13
|
+
homepage: https://github.com/junegunn/fzf
|
|
14
|
+
---
|
|
15
|
+
<!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
|
|
16
|
+
# fzf
|
|
17
|
+
|
|
18
|
+
Interactive fuzzy finder for TTY pickers
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
Reach for `fzf` when the task is in the **interactive** 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
|
+
fzf --filter 'auth' < paths.txt
|
|
33
|
+
```
|
|
34
|
+
Headless mode — ranks lines by fuzzy match score and prints them in order; no TTY needed. This is the agent-safe entrypoint.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
git branch --format='%(refname:short)' | fzf --filter main
|
|
38
|
+
```
|
|
39
|
+
Score branch names against `main`; pipe to `head -1` to pick the best match deterministically.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
rg -l 'TODO' . | fzf --filter 'src/cli'
|
|
43
|
+
```
|
|
44
|
+
Re-rank a `ripgrep` file list by proximity to a fuzzy hint; combine with `head` for a deterministic top pick.
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
fzf --filter 'auth' --print0 < paths.txt | xargs -0 wc -l
|
|
48
|
+
```
|
|
49
|
+
Stream NUL-delimited matches to a downstream pipeline — safe across filenames with spaces.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
fzf < paths.txt
|
|
53
|
+
```
|
|
54
|
+
Interactive picker — only useful in a human TTY; do not call this form from an autonomous agent.
|
|
55
|
+
|
|
56
|
+
## Wrong Choice When
|
|
57
|
+
|
|
58
|
+
- Running in a non-TTY context (CI, agent loop) — interactive `fzf` will hang on stdin; always use `--filter` headless mode.
|
|
59
|
+
- The ranking needs semantic understanding (synonyms, embeddings) — `fzf` is character-level fuzzy; reach for an embedding-based tool.
|
|
60
|
+
- A simple `grep -F` or `rg --files | head` would already return the right answer — no need to layer scoring on top.
|
|
61
|
+
|
|
62
|
+
## Alternatives
|
|
63
|
+
|
|
64
|
+
| Tool | When to prefer |
|
|
65
|
+
|------|----------------|
|
|
66
|
+
| `skim` (`sk`) | Need a Rust binary with similar fuzzy scoring and the same `--filter` headless mode. |
|
|
67
|
+
| `rg --files \| head` | Already filtered; want stable lexicographic order rather than fuzzy ranking. |
|
|
68
|
+
| `grep -F` | Exact substring match; no scoring needed. |
|
|
69
|
+
|
|
70
|
+
## Detection / Install
|
|
71
|
+
|
|
72
|
+
Verify with:
|
|
73
|
+
```bash
|
|
74
|
+
command -v fzf
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Install (mac):
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
# brew
|
|
81
|
+
brew install fzf
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Homepage: https://github.com/junegunn/fzf
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hatch3r-cli-gh
|
|
3
|
+
description: "GitHub CLI — repos, issues, PRs, releases, gists. Use when drafting GitHub pull requests, issues, releases, gists, or workflow dispatches; invoke `gh`. Authenticates via the platform's native token mechanism (OAuth / PAT)."
|
|
4
|
+
tags: ["cli-tools", "forge", "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: gh
|
|
10
|
+
bin: gh
|
|
11
|
+
tier: 1
|
|
12
|
+
category: forge
|
|
13
|
+
homepage: https://cli.github.com/
|
|
14
|
+
---
|
|
15
|
+
<!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
|
|
16
|
+
# gh
|
|
17
|
+
|
|
18
|
+
GitHub CLI — repos, issues, PRs, releases, gists
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
Reach for `gh` when the task is in the **forge** 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
|
+
gh pr view 123 --json title,state,body,reviewDecision
|
|
33
|
+
```
|
|
34
|
+
Targeted JSON projection — pulls just the fields the agent needs, not the whole PR payload.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
gh issue list --label bug --json number,title,author --limit 50
|
|
38
|
+
```
|
|
39
|
+
Label-filtered list with capped page size — avoids paginating the entire issue corpus into context.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
gh api repos/:owner/:repo/contents/path/to/file.ts --jq '.sha'
|
|
43
|
+
```
|
|
44
|
+
Direct REST passthrough with built-in `--jq` filter — single round-trip, no jq install required at call site.
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
gh run watch
|
|
48
|
+
```
|
|
49
|
+
Blocks until the most recent CI run finishes — pairs with PR creation flows so the agent doesn't poll.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
gh release create v1.7.5 --notes-from-tag --target release/1.7.5
|
|
53
|
+
```
|
|
54
|
+
Cuts a release using annotated-tag notes; deterministic input avoids hand-edited release bodies.
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
gh pr checks 78 --watch
|
|
58
|
+
```
|
|
59
|
+
Live-tail status checks for a PR — return value reflects the worst check state, scripts can branch on it.
|
|
60
|
+
|
|
61
|
+
## Wrong Choice When
|
|
62
|
+
|
|
63
|
+
- Don't reach for `gh` against a GitLab or Azure DevOps remote. Reach for `glab` (`hatch3r-cli-glab`) or `az repos`/`az devops` (`hatch3r-cli-az-devops`).
|
|
64
|
+
- Don't use `gh auth login` flows when an audit trail of who authorized what is required; OAuth scopes granted to the CLI are user-bound. Reach for the GitHub web UI plus org-level SSO logs.
|
|
65
|
+
- Don't use `gh api` for high-volume bulk fetches (>10k records) — rate limits bite. Reach for the GraphQL endpoint via `gh api graphql -F query=@file.gql` with pagination, or a GitHub App token.
|
|
66
|
+
|
|
67
|
+
## Alternatives
|
|
68
|
+
|
|
69
|
+
| Tool | When to prefer |
|
|
70
|
+
|------|----------------|
|
|
71
|
+
| `glab` (`hatch3r-cli-glab`) | GitLab forges — same operations, different vendor. |
|
|
72
|
+
| `az-devops` (`hatch3r-cli-az-devops`) | Azure DevOps forges. |
|
|
73
|
+
| `git` + `curl` against REST | Minimal environment (CI runner) where installing `gh` is blocked; trade convenience for raw HTTP. |
|
|
74
|
+
| GitHub web UI | Operations needing org-level approval flows or SAML re-auth that the CLI cannot proxy. |
|
|
75
|
+
|
|
76
|
+
## Detection / Install
|
|
77
|
+
|
|
78
|
+
Verify with:
|
|
79
|
+
```bash
|
|
80
|
+
command -v gh
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Install (mac):
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
# brew
|
|
87
|
+
brew install gh
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Homepage: https://cli.github.com/
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hatch3r-cli-glab
|
|
3
|
+
description: "GitLab CLI — merge requests, issues, pipelines. Use when GitLab merge-request review, pipeline retries, and issue triage; invoke `glab`. Authenticates via the platform's native token mechanism (OAuth / PAT)."
|
|
4
|
+
tags: ["cli-tools", "forge"]
|
|
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: glab
|
|
10
|
+
bin: glab
|
|
11
|
+
tier: 2
|
|
12
|
+
category: forge
|
|
13
|
+
homepage: https://gitlab.com/gitlab-org/cli
|
|
14
|
+
---
|
|
15
|
+
<!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
|
|
16
|
+
# glab
|
|
17
|
+
|
|
18
|
+
GitLab CLI — merge requests, issues, pipelines
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
Reach for `glab` when the task is in the **forge** 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
|
+
glab mr list --assignee=@me --output json | jq '.[] | {iid, title, web_url}'
|
|
33
|
+
```
|
|
34
|
+
List merge requests assigned to the authenticated user; `--output json` keeps stdout structured.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
glab mr view 42 --output json
|
|
38
|
+
```
|
|
39
|
+
Fetch a single MR's metadata as JSON — avoids the HTML-decorated default view.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
glab mr diff 42
|
|
43
|
+
```
|
|
44
|
+
Print the unified diff for an MR to stdout; pipe to `delta` for review or `diff -u` parsing.
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
glab issue create --title 'tracking-id mismatch on import' --label bug --label backend
|
|
48
|
+
```
|
|
49
|
+
Open an issue from a script; the URL is printed on stdout for the agent to capture.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
glab ci view --branch main
|
|
53
|
+
```
|
|
54
|
+
Show the pipeline status for `main`; agents should re-run with `--output json` for parseable output.
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
glab api projects/:fullpath/jobs --paginate
|
|
58
|
+
```
|
|
59
|
+
Raw API call with auto-pagination for endpoints the high-level commands do not cover.
|
|
60
|
+
|
|
61
|
+
## Wrong Choice When
|
|
62
|
+
|
|
63
|
+
- The repo lives on GitHub, not GitLab — use `gh` (Tier 1) which has parity for issues/PRs/checks.
|
|
64
|
+
- The repo lives in Azure Repos — use `az devops` (Tier 2 sibling) with the same credential model.
|
|
65
|
+
- You only need to read a public file at a known URL — `curl` is one HTTP round-trip versus `glab`'s auth dance.
|
|
66
|
+
|
|
67
|
+
## Alternatives
|
|
68
|
+
|
|
69
|
+
| Tool | When to prefer |
|
|
70
|
+
|------|----------------|
|
|
71
|
+
| `gh` | GitHub-hosted repository. |
|
|
72
|
+
| `az devops` | Azure DevOps / Azure Repos. |
|
|
73
|
+
| `curl` + `GITLAB_TOKEN` | Endpoint not exposed by `glab api`; need explicit retry/timeout control. |
|
|
74
|
+
|
|
75
|
+
## Detection / Install
|
|
76
|
+
|
|
77
|
+
Verify with:
|
|
78
|
+
```bash
|
|
79
|
+
command -v glab
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Install (mac):
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# brew
|
|
86
|
+
brew install glab
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Homepage: https://gitlab.com/gitlab-org/cli
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hatch3r-cli-jq
|
|
3
|
+
description: "JSON processor and query language. Use when shaping JSON streams via jq-syntax filters and select expressions; invoke `jq`. Reads stdin and emits stdout; integrates seamlessly into shell pipelines."
|
|
4
|
+
tags: ["cli-tools", "json", "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: jq
|
|
10
|
+
bin: jq
|
|
11
|
+
tier: 1
|
|
12
|
+
category: json
|
|
13
|
+
homepage: https://github.com/jqlang/jq
|
|
14
|
+
---
|
|
15
|
+
<!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
|
|
16
|
+
# jq
|
|
17
|
+
|
|
18
|
+
JSON processor and query language
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
Reach for `jq` when the task is in the **json** 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
|
+
gh pr list --json number,title,isDraft | jq '.[] | select(.isDraft|not) | .number'
|
|
33
|
+
```
|
|
34
|
+
Pipeline from `gh` JSON into a selector — emits only open non-draft PR numbers.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
jq -r '.[] | .name' inventory.json
|
|
38
|
+
```
|
|
39
|
+
Raw string output (`-r`) drops the JSON quoting — feeds straight into `xargs` or shell loops.
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
jq 'group_by(.category) | map({key: .[0].category, value: length}) | from_entries' findings.json
|
|
43
|
+
```
|
|
44
|
+
Group-then-count idiom — produces a `{category: count}` object suitable for direct comparison against a baseline.
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
jq --slurp 'add | unique_by(.id)' shard-*.json
|
|
48
|
+
```
|
|
49
|
+
Slurp multiple files into a single array, concatenate, dedupe by `id` — the canonical merge pattern for sharded JSON output.
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
jq -c '{id, title, severity}' findings.json
|
|
53
|
+
```
|
|
54
|
+
Compact (`-c`) one-object-per-line projection — perfect input for `xargs -L1` or `grep`-style downstream tools.
|
|
55
|
+
|
|
56
|
+
## Wrong Choice When
|
|
57
|
+
|
|
58
|
+
- Don't use `jq` for bidirectional grep on flattened paths; the inverse (`gron` outputs `obj.foo.bar = …` lines you can `rg` then translate back). Reach for `gron`.
|
|
59
|
+
- Don't use `jq` directly on multi-document YAML or front-matter Markdown. Reach for `yq` (`hatch3r-cli-yq`) and pipe `yq -o=json` into `jq` only if you need jq's filter language.
|
|
60
|
+
- Don't reach for `jq` when the file is a stream of newline-delimited JSON (`.ndjson`); use `jq -c` per line or `jaq`/`fx` for stream-friendly behavior — `jq` without `-c` slurps the whole file.
|
|
61
|
+
|
|
62
|
+
## Alternatives
|
|
63
|
+
|
|
64
|
+
| Tool | When to prefer |
|
|
65
|
+
|------|----------------|
|
|
66
|
+
| `yq` (`hatch3r-cli-yq`) | YAML, TOML, XML input — yq speaks them all, jq is JSON-only. |
|
|
67
|
+
| `gron` | Flatten JSON to `path = value` lines for grep-based exploration and reverse-translation. |
|
|
68
|
+
| `dasel` | Single binary across JSON/YAML/TOML/XML with a path-query DSL — handy in CI where you do not want jq+yq. |
|
|
69
|
+
| `fx` | Interactive JSON browsing in a TTY; jq is the right call in scripts. |
|
|
70
|
+
|
|
71
|
+
## Known Issues
|
|
72
|
+
|
|
73
|
+
- **CVE-2026-32316 (active, no tagged fix as of 2026-05-18):** jq 1.8.1 ships with a heap buffer overflow in expression evaluation. Six additional CVEs were disclosed 2026-04-15; patches are committed on `jqlang/jq` `main` but no superseding tagged release exists yet. Do not invoke `jq` on JSON sourced from an untrusted producer (third-party API webhook, user-supplied upload) until a tagged release past 1.8.1 lands. Reference: https://github.com/jqlang/jq/security/advisories.
|
|
74
|
+
|
|
75
|
+
## Detection / Install
|
|
76
|
+
|
|
77
|
+
Verify with:
|
|
78
|
+
```bash
|
|
79
|
+
command -v jq
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Install (mac):
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
# brew
|
|
86
|
+
brew install jq
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Homepage: https://github.com/jqlang/jq
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: hatch3r-cli-lazygit
|
|
3
|
+
description: "Terminal UI for git with keyboard-driven workflows. Use when keyboard-driven terminal UI for staging, rebasing, branch switching; invoke `lazygit`. Reads `.git/objects` directly without invoking external services or remotes."
|
|
4
|
+
tags: ["cli-tools", "git"]
|
|
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: lazygit
|
|
10
|
+
bin: lazygit
|
|
11
|
+
tier: 2
|
|
12
|
+
category: git
|
|
13
|
+
homepage: https://github.com/jesseduffield/lazygit
|
|
14
|
+
---
|
|
15
|
+
<!-- HATCH3R-CLI-SKILL-GENERATED v1 -->
|
|
16
|
+
# lazygit
|
|
17
|
+
|
|
18
|
+
Terminal UI for git with keyboard-driven workflows
|
|
19
|
+
|
|
20
|
+
## When to Use
|
|
21
|
+
|
|
22
|
+
Reach for `lazygit` when the task is in the **git** 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
|
+
`lazygit` is a TUI for humans; agents should call plain `git` instead. The recipes below are key bindings inside the running TUI, not shell commands.
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
lazygit
|
|
35
|
+
```
|
|
36
|
+
Launch the TUI in the cwd repo — requires an interactive terminal; will hang in a non-TTY context.
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
lazygit -p path/to/repo
|
|
40
|
+
```
|
|
41
|
+
Open the TUI on a specific repo without changing directory first.
|
|
42
|
+
|
|
43
|
+
Key bindings inside the TUI (human reference):
|
|
44
|
+
- `a` — stage all changes in the focused file
|
|
45
|
+
- `c` — open the commit message editor
|
|
46
|
+
- `P` — push current branch
|
|
47
|
+
- `p` — pull current branch
|
|
48
|
+
- `?` — show the full keymap
|
|
49
|
+
|
|
50
|
+
## Wrong Choice When
|
|
51
|
+
|
|
52
|
+
- The caller is an autonomous agent (no human at the terminal) — use plain `git status` / `git add` / `git commit` instead; they emit parseable stdout.
|
|
53
|
+
- The task is part of a CI script — `lazygit` cannot run headless; rely on `git` plumbing commands.
|
|
54
|
+
- You need a scriptable diff view — pair `git diff` with `delta` or `difftastic` rather than launching a TUI.
|
|
55
|
+
|
|
56
|
+
## Alternatives
|
|
57
|
+
|
|
58
|
+
| Tool | When to prefer |
|
|
59
|
+
|------|----------------|
|
|
60
|
+
| `git` (plain) | Anything an agent or CI script runs. |
|
|
61
|
+
| `tig` | Prefer a different TUI keymap; broadly similar capability. |
|
|
62
|
+
| `gh` / `glab` | The operation is forge-side (PRs, issues), not local repo state. |
|
|
63
|
+
|
|
64
|
+
## Detection / Install
|
|
65
|
+
|
|
66
|
+
Verify with:
|
|
67
|
+
```bash
|
|
68
|
+
command -v lazygit
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
Install (mac):
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# brew
|
|
75
|
+
brew install lazygit
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
Homepage: https://github.com/jesseduffield/lazygit
|
|
@@ -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-qsv` (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-qsv` (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
|