From authoring
Guides creating CLI tools, automation scripts, hook handlers, and abstractions for repeated Claude Code agent workflows.
npx claudepluginhub crouton-labs/crouton-kit --plugin authoringThis skill uses the workspace's default tool permissions.
Scripts abstract away multi-step sequences, complex computation, and ceremony that the agent would otherwise do manually each time. Only the script's *output* enters context — complex logic costs zero tokens, and the script persists across sessions and context resets.
Implements Playwright E2E testing patterns: Page Object Model, test organization, configuration, reporters, artifacts, and CI/CD integration for stable suites.
Guides Next.js 16+ Turbopack for faster dev via incremental bundling, FS caching, and HMR; covers webpack comparison, bundle analysis, and production builds.
Discovers and evaluates Laravel packages via LaraPlugins.io MCP. Searches by keyword/feature, filters by health score, Laravel/PHP compatibility; fetches details, metrics, and version history.
Scripts abstract away multi-step sequences, complex computation, and ceremony that the agent would otherwise do manually each time. Only the script's output enters context — complex logic costs zero tokens, and the script persists across sessions and context resets.
| Location | Mechanism | Use Case |
|---|---|---|
bin/ on PATH | Agent calls via Bash | General-purpose CLI tools |
scripts/ | Agent calls via Bash | Project-specific automation |
hooks/ scripts | Called by hooks.json | Lifecycle handlers (guards, formatters, loggers) |
skills/*/scripts/ | Bundled with SKILL.md | Deterministic computation a skill needs |
.mcp.json + MCP servers | Claude calls as native tools | API wrappers, database access |
Self-documenting for agents — --help must be comprehensive enough that an agent never needs to look elsewhere. It's the canonical source of truth, not external docs.
Every output is a prompt — the agent's next action depends on your script's output. Design both success and failure output to guide the agent forward, not just report status.
Familiar interfaces — model your CLI after tools the agent already knows (pytest, docker, kubectl). The agent can infer behavior from convention without reading docs.
No interactive input — agents can't respond to prompts. Use flags/args/env vars instead.
Script output is the primary interface between your tool and the agent. A silent success or cryptic error is a dead end.
Success output — confirm what happened, echo IDs/paths the agent needs next, suggest next steps:
# bad
OK
# good
Created deployment deploy-a1b2c3d4 (env: staging, 3 services)
Next:
Check status: deploy status deploy-a1b2c3d4
View logs: deploy logs deploy-a1b2c3d4
Roll back: deploy rollback deploy-a1b2c3d4
Error output — three parts: what went wrong, how to fix it, what to do next:
# bad
Error: connection refused
# good
ERROR: Cannot connect to database at localhost:5432 (connection refused)
Fix: Ensure postgres is running:
brew services start postgresql
# or: docker start postgres-dev
Then retry: ./migrate --target production
Structured output — emit JSON when the agent will consume the result programmatically. Raw human-readable text is fine for notification scripts or when the agent just needs to relay information to the user.