Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add cboone/agent-harness-plugins --skill write-zsh-scriptsgit clone --depth 1 https://github.com/cboone/agent-harness-pluginsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/cboone/agent-harness-plugins/write-zsh-scripts)<a href="https://agentmods.dev/skills/cboone/agent-harness-plugins/write-zsh-scripts"><img src="https://agentmods.dev/badge/skills/cboone/agent-harness-plugins/write-zsh-scripts/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/cboone/agent-harness-plugins/write-zsh-scripts"><img src="https://agentmods.dev/badge/skills/cboone/agent-harness-plugins/write-zsh-scripts.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00063 | $0.00822 |
| Opus 5.5 | $0.00025 | $0.00329 |
| Sonnet 5.5 | $0.00013 | $0.00164 |
| Haiku 4.5 | $0.00006 | $0.00082 |
Grade A, and why
write-zsh-scripts scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 86 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Zsh Style Guide
Apply the zsh conventions from ./references/ZSH.md when creating or editing zsh scripts, configurations, and plugins.
Key Conventions
Read ./references/ZSH.md for the complete guide. Summary:
Script Structure
- Shebang:
#!/usr/bin/env zsh - Strict mode:
setopt ERR_EXIT NO_UNSET PIPE_FAIL - Main function called at end:
main "${@}"
Naming
- Functions:
snake_case - Local variables:
lower_case - Constants:
ALL_CAPSwithreadonly - Private/internal:
_underscore_prefix
Syntax
- Variable expansion:
${var}not$var - Command substitution:
$(...)not backticks - Tests:
[[ ]]not[ ] - Function syntax:
function name() { }with both keyword and parentheses - Arithmetic:
(( ))for statements,$(( ))for expressions
Quoting
- Always quote variable expansions:
"${var}" - Always quote command substitutions:
"$(cmd)" - Use arrays for lists, not word splitting
- Use
"${(@)array}"to preserve elements in quoted context
Variables and Scope
- Use
typesetoverdeclare - Use
localfor all function variables - Arrays are 1-based (not 0-based like Bash)
- Use
typeset -Afor associative arrays - Separate
localdeclaration from command substitution
Zsh-Specific Features
- Expansion flags:
${(L)var},${(s:/:)path},${(u)array} - Glob qualifiers:
*(.)for files,*(/)for dirs,*(N)for null glob - Extended glob:
setopt EXTENDED_GLOBfor^,~,#patterns alwaysblocks:{ ... } always { ... }for try/finally- Named traps:
TRAPINT(),TRAPZERR(),TRAPEXIT() - Process substitution:
=(...)creates a temp file (zsh-only)
Completions
For zsh completion function conventions, read ./references/completions.md. Key points:
- Use
_descriptionfor all group descriptions; never pass text directly tocompadd - Every
compaddcall must include"${expl[@]}" - Make
curcontextlocal in functions using_arguments -C - Register tags before offering matches
- Return zero if matches were added, non-zero otherwise
What ships with it
11 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- references/completions.md 11 KB
- references/lint/tools/checkbashisms.md 1.6 KB
- references/lint/tools/setopt-warnings.md 3.1 KB
- references/lint/tools/shellcheck.md 2.3 KB
- references/lint/tools/shellharden.md 1.3 KB
- references/lint/tools/shfmt.md 1.6 KB
- references/lint/tools/zcompile.md 1.2 KB
- references/lint/tools/zsh-n.md 818 B
- references/lint/workflow.md 7.1 KB
- references/review-checklist.md 4.2 KB
- references/ZSH.md 31 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago Changed · +2 lines · +15 tokens per session 29aa5228a288
- 8d ago Changed · +1 lines · +9 tokens per session 4ca9feb7ecb1
- 25d ago Changed · +4 lines fc9291cb6737
- 26d ago Changed · -3 lines · -38 tokens per session 0d2f727d33ff
- 1mo ago First seen · 82 lines · 77 tokens per session scan A 2b2f18a93c6a
write-zsh-scripts is a skill published in the GitHub repository cboone/agent-harness-plugins (2 stars, last pushed yesterday), licensed MIT. It adds 63 tokens to every session and 822 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
swift-testing-pro
Writes, reviews, and improves Swift Testing code using modern APIs and best practices. Use when reading, writing, or reviewing projects that use Swift Testing.
starcat-cli-release
A release process for Starcat’s command-line program and its Homebrew package. Homebrew is a tool for installing software on macOS and Linux from package definitions.
starcat-supports-ops
A set of procedures for running and maintaining Starcat’s self-hosted Go services locally and on Fly.io, a cloud hosting platform. It covers service status, health checks, secrets, backups, and data restoration.
swift-expert
Expert-level Swift development for iOS, macOS with SwiftUI, Combine, and modern Swift 5.9+. Use when the user mentions iOS, macOS, SwiftUI, Combine, async await, or Apple platforms, or when the task involves Modern Swift Features, Basics and Optionals, Functions and Closures, or Structs and Classes.
ci-tests
Run the test suite for the current repo, auto-detecting Python (pytest/uv), Node (vitest/pnpm), or Rust (cargo test).
expo-modules
Writing Swift/Kotlin native modules with the Expo Modules API, requireNativeModule, async functions, view modules, and the event-emitter pattern. Triggers on expo modules, native module, swift, kotlin, requireNativeModule, expo-module-scripts, expo.modules.json, view module, event emitter, native function, async…