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 agentmods add commands/fakoli/fakoli-plugins/cli-to-plugingit clone --depth 1 https://github.com/fakoli/fakoli-pluginsWhat 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 | $0.00012 | $0.04102 |
| Opus 5 | $0.00006 | $0.02051 |
| Sonnet 5 | $0.00002 | $0.00820 |
| Haiku 4.5 | $0.00001 | $0.00410 |
Grade E, and why
cli-to-plugin scanned grade E with 3 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 2d 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.
Downloads and executes remote codehighSupply chain
curl | sh runs whatever the server returns today, which is not necessarily what it returned when this was reviewed.
Install it: curl -LsSf https://astral.sh/uv/install.sh | sh Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
rm -rf "<out>/.regen-tmp" Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
Install it: curl -LsSf https://astral.sh/uv/install.sh | sh How it starts
The opening of the file, as written. The whole thing — 445 lines — stays where its author put it; the contents beside it link to each section on GitHub.
cli-to-plugin
Convert a CLI tool into a Claude Code plugin by walking its --help tree, generating one
skill per command group, and (optionally) proposing workflow meta-skills for the user to
curate.
Full spec in the marketplace repository: docs/specs/2026-05-24-cli-to-plugin.md
Argument parsing
Parse the invocation before doing anything else:
<cli-name>— required; the binary to introspect (e.g.,gh,kubectl)--out <path>— destination directory for the generated plugin; default:./plugins/<cli-name>--override <path>— YAML override file; optional--from-tree <path>— load a pre-captured help-tree JSON instead of running discovery--no-meta-skills— skip Steps 5, 6, and 7 entirely--regen— hint that regeneration is expected (triggers the regeneration flow automatically without prompting twice)--max-depth <n>— max recursion depth fordiscover.py(default3); forwarded as--max-depthto the script--max-commands <n>— halt discovery if the walked command count exceeds this (default500); forwarded as--max-commandsto the script
Treat unrecognised flags as an error: halt and print usage.
Pre-Step-0 — Override file validation
If --override <path> is set, verify the file exists and parses as YAML before running any other step. This runs regardless of --from-tree, so a broken override file fails fast.
test -f "$OVERRIDE_PATH" || { echo "HALT: override file not found: $OVERRIDE_PATH"; exit 1; }
uv run --with pyyaml -c "import yaml, sys; yaml.safe_load(open(sys.argv[1]))" -- "$OVERRIDE_PATH"
Passing the path via sys.argv rather than interpolating it inside the Python string protects against paths containing single quotes (e.g., /tmp/it's-here.yaml).
On failure: halt with the parse error.
Step 0 — Regeneration guard
Skip this step entirely when --out does not exist or is empty.
When --out exists and is non-empty:
- If
--regenwas passed: setREGEN_MODE=diff-mergeautomatically and skip the prompt. Proceed to Step 1. - If
--regenwas NOT passed: ask the user:
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.
- 2d ago First seen · 445 lines · 12 tokens per session scan E 95fb07607feb
cli-to-plugin is a command published in the GitHub repository fakoli/fakoli-plugins (4 stars, last pushed 24d ago), licensed MIT. It adds 12 tokens to every session and 4,102 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it E with 3 findings (downloads and executes remote code, recursive force delete, makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
session-init
You are the Main Agent in an orchestrated workflow. Read and internalize these working instructions.
permissions
Create or update DOGMA-PERMISSIONS.md to configure what Claude can do autonomously.
role-clear
Clear the persistent, per-session credo ROLE, returning to the default of NO role: the agent does everything, as it does when no role is set.
conjure-agent
Creates or updates a Claude Code agent definition (/.claude/agents/ .md or project-local).
conjure-hook
Create or update a Claude Code hook (settings.json entry + shell script). Provide a description of what you want the hook to do.
conjure
Use when you want to build a new Claude Code skill, agent, hook, or MCP server but aren't sure which — or when you want to describe what you want in plain language. Auto-detects the right artifact type, asks targeted questions, explains the reasoning, then builds it.