Skip to content

Ship snare as a Claude Code plugin so coding agents can find it - #38

Open
AviOfLagos wants to merge 1 commit into
mainfrom
feat/claude-code-plugin
Open

Ship snare as a Claude Code plugin so coding agents can find it#38
AviOfLagos wants to merge 1 commit into
mainfrom
feat/claude-code-plugin

Conversation

@AviOfLagos

Copy link
Copy Markdown
Owner

The problem, measured

Searching the Claude skill and plugin ecosystem for a repo malware scanner returns Claude Skill Antivirus, Sentry's Skill Security Scanner, and Safe Skill Install. snare is not in the results.

Not an SEO problem. snare's contents are bin/ lib/ install.sh docs/ iocs.txt — no .claude-plugin/, no skills/. It's a CLI, and was never packaged as a skill. The 20 GitHub topics are genuinely good, but they're how a security engineer finds it, not how an agent looking for an installable capability does.

What this adds

.claude-plugin/plugin.json, .claude-plugin/marketplace.json, skills/snare/SKILL.md.

That makes /plugin marketplace add AviOfLagos/snare work, and makes the repo eligible for the aggregator marketplaces that index plugin manifests (official directory, danielmiessler/marketplace, the claude-code-plugins-marketplace topic, ClaudePluginHub, claude-plugins.dev).

The CLI is untouched. The skill wraps it and the README says so — install.sh is still required.

The skill is mostly about restraint

An agent with this installed has the whole CLI available, including commands that rewrite published history and post publicly. So it splits them explicitly, with the blast radius written next to each:

Safe unprompted doctor, scan repo, scan github, guard status, guard log
Human-gated fix --push (rewrites remote branch tips) · fix --purge-history --push (diverges every collaborator's clone, irreversible from their side) · notify (public issue under the user's name) · guard install (background process)

It also spells out what to do with a finding, which is the part an agent gets wrong by default: stop, do not build, do not open the folder — those are the triggers — report verbatim, ask before fixing, and treat warning collaborators as part of the fix rather than an optional extra.

Two honesty notes carried over from the README rather than quietly dropped: a clean scan is not a general all-clear, and a running guard is not permission to open an untrusted repo. notify never sends — the human sends from their own account, which is what makes the warning credible, and the skill says not to attempt it for them.

Notes

  • Version tracks the CLI at 1.1.0 (per CHANGELOG.md). Bump both manifests together on the next release.
  • claude plugin validate . --strict passes.
  • Not yet installed end-to-end from the marketplace — worth one /plugin marketplace add against this branch before merging.

🤖 Generated with Claude Code

https://claude.ai/code/session_015jey4UhA7nJBeb9cURZJfJ

snare is invisible to coding agents. Searching the Claude skill and
plugin registries for a repo malware scanner returns Claude Skill
Antivirus, Sentry's scanner and Safe Skill Install — not snare, because
snare is a CLI and was never packaged as a skill. The GitHub topics are
good, but they are how a security engineer finds it, not how an agent
looking for an installable capability does.

Adds .claude-plugin/{plugin,marketplace}.json and skills/snare/SKILL.md,
so `/plugin marketplace add AviOfLagos/snare` works and the repo becomes
eligible for the aggregator marketplaces that index plugin manifests.

The skill is mostly about restraint. Agents will have the whole CLI
available, including commands that rewrite published history and file
public issues, so it splits them explicitly:

  safe unprompted   doctor, scan repo, scan github, guard status/log
  human-gated       fix --push, fix --purge-history, notify, guard install

with the blast radius written next to each — purge-history diverges every
collaborator's clone, notify posts publicly under the user's name. It
also says what to do with a finding, which is the part an agent gets
wrong by default: stop, do not build, do not open the folder, report
verbatim, ask before fixing, and treat warning collaborators as part of
the fix rather than an optional extra.

Two honesty notes carried over from the README rather than dropped: a
clean scan is not a general all-clear, and a running guard is not
permission to open an untrusted repo.

The skill wraps the CLI, it does not replace it — install.sh is still
required, and the README says so.

Version tracks the CLI at 1.1.0. `claude plugin validate --strict` passes.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015jey4UhA7nJBeb9cURZJfJ
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant