agent-plugins: Instructions file for Claude Code

AGENTS.md

agent-plugins AGENTS.md is an instructions file for Claude Code, Codex, OpenCode from trtmn/agent-plugins. It costs 2,087 tokens per session, scanned B, original, Unlicense.

Repository instructions for creating and maintaining plugins in a Claude Code plugin marketplace. They describe required files, folders, naming, versioning, and marketplace registration.

In plain words
What is it for?
Use them when adding or modifying plugins, skills, agents, commands, changelogs, manifests, and marketplace entries.
Why use it?
They provide the project’s conventions so plugin changes fit the repository and avoid missing required metadata or structure.

Instructions file for Claude CodeCodexOpenCode

Written for Claude Code and Codex and OpenCode: $CLAUDE_PLUGIN_ROOT variable, but also the file is AGENTS.md. Also seen: reads .claude/ paths; mentions .claude-plugin; mentions CLAUDE.md.

This is trtmn/agent-plugins's own configuration. It tells Claude Code, Codex and OpenCode how to work on agent-plugins itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything agent-plugins configures →

Runs only inside a plugin — its command needs a path that Claude Code sets for a plugin’s own hooks and for nothing else, and the catalogue could not identify which plugin ships it.

Reuse

Borrowing it

Nothing to install: this file belongs to trtmn/agent-plugins. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/trtmn/agent-plugins/main/AGENTS.md
Clone the repo
git clone --depth 1 https://github.com/trtmn/agent-plugins

Made for: Claude Code, Codex, OpenCode.

Wrote 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.

agentmods badge for agent-plugins AGENTS.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/trtmn/agent-plugins/agents-md/github.svg)](https://agentmods.dev/instructions/trtmn/agent-plugins/agents-md)
Your own site
<a href="https://agentmods.dev/instructions/trtmn/agent-plugins/agents-md"><img src="https://agentmods.dev/badge/instructions/trtmn/agent-plugins/agents-md/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.

agentmods 80×15 button for agent-plugins AGENTS.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/trtmn/agent-plugins/agents-md"><img src="https://agentmods.dev/badge/instructions/trtmn/agent-plugins/agents-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 2,087 This file is loaded in full into every session.
When invoked 2,087 The same file — it is already loaded in full.
Security scan B 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.02087 $0.02087
Opus 5.5 $0.00835 $0.00835
Sonnet 5.5 $0.00417 $0.00417
Haiku 4.5 $0.00209 $0.00209

Measured 1mo ago against content hash 2d51ebe98bb4, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade B, and why

agent-plugins AGENTS.md scanned grade B with 1 finding 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 1mo 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.

Reads agent configuration directoriesmediumAgent snooping

.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.

- **Plugins that install anything outside the plugin cache need a setup command.** If a plugin merges hooks into `~/.claude/settings.json`, installs a daemon, or deploys scripts to a stable path so they work from a hook/
AGENTS.md · 72 lines

How it starts

The opening of the file, as written. The whole thing — 72 lines — stays where its author put it; the contents beside it link to each section on GitHub.

AGENTS.md

This file provides guidance to AI coding agents (Claude Code, Cursor, Copilot, etc.) for creating and modifying plugins in this repository. CLAUDE.md at the repo root points here for anything plugin-authoring related — this is the canonical source.

Repository Overview

A Claude Code plugin marketplace. Plugins live under plugins/; .claude-plugin/marketplace.json at the repo root registers them all.

Plugin Directory Structure

Each plugin lives under plugins/. Folder name matches the plugin name (plugin.json → name):

plugins/<plugin-name>/
├── .claude-plugin/
│   └── plugin.json               # Required — {name, version, description}
├── CHANGELOG.md                  # Required — version history (Keep a Changelog format)
├── skills/<plugin-name>/
│   ├── SKILL.md                  # Canonical skill definition (YAML frontmatter + body)
│   ├── scripts/                  # Optional executables invoked by the skill
│   └── references/               # Optional reference docs loaded on-demand
├── agents/                       # Optional subagent definitions (plugin root, NOT under skills/)
├── commands/                     # Optional slash command definitions (plugin root)
└── evals/                        # Optional manual test prompts (gitignored)

agents/ and commands/ live at the plugin root, not inside skills/<name>/. Only skill content lives under skills/<name>/.

Conventions

  • SKILL.md is the contract. YAML frontmatter must include name, description, and allowed-tools. The name must match the folder name and the skills/<name>/ directory name.
  • plugin.json is minimal. Just {name, version, description} — description copied verbatim from SKILL.md frontmatter. Version follows SemVer (MAJOR.MINOR.PATCH). Every plugin must have one — check with:
    for f in plugins/*/.claude-plugin/plugin.json; do python3 -c "import json;print('$f', json.load(open('$f')).get('version','MISSING'))"; done
    
  • CHANGELOG.md is required. Lives at the plugin root. Add a ## [x.y.z] — YYYY-MM-DD entry when bumping the version. Patch = fix/tweak, Minor = new capability, Major = breaking change.
  • Scripts run standalone. Only their output enters Claude's context. Bash scripts use set -e, status to stderr, machine-readable JSON to stdout.
  • References stay separate. Large API docs and specs go in references/ so they aren't loaded until the skill needs them.
  • Agent definitions default to background. Any subagent shipped under agents/ must include "ALWAYS launch this agent with run_in_background: true" in its description, so callers don't block the main conversation.
  • No shared build step. Plugins are distributed as-is.
  • No automated tests, as a rule. Evals in evals/ are manual (invoke + verify) and gitignored. Exception: side-quest ships a real pytest suite (tests/) for its ledger/sync logic — that logic has enough state-machine complexity (event dedup, XP tiers, MQTT sync, coalescing) to warrant it. Follow the no-tests default unless a plugin's logic is similarly nontrivial and stateful, not just a thin CLI wrapper.
  • $CLAUDE_PLUGIN_ROOT resolves to the plugin root (the directory containing .claude-plugin/), not the skill directory. A script at plugins/<name>/skills/<name>/scripts/foo.sh must be referenced as ${CLAUDE_PLUGIN_ROOT}/skills/<name>/scripts/foo.sh — the skills/<name>/ segment is easy to drop by accident (font-extractor and wp-local both shipped with this bug: $CLAUDE_PLUGIN_ROOT/scripts/foo pointing at a path that doesn't exist). Verify with a quick sweep before shipping:
    grep -rn "CLAUDE_PLUGIN_ROOT" plugins/*/skills/*/SKILL.md plugins/*/agents/*.md plugins/*/commands/*.md
    
    and check each result's path actually exists under the plugin directory. Exception: plugins whose scripts must also run outside any live Claude Code session — as a settings.json hook command, or a background daemon (launchd/systemd) — can't rely on $CLAUDE_PLUGIN_ROOT (it's only set inside a running session). Those plugins (side-quest, self-improvement) hoist their scripts/ to the plugin root instead of nesting under skills/<name>/, and ship a setup step (see below) that deploys copies to a stable $HOME path.
  • Plugins that install anything outside the plugin cache need a setup command. If a plugin merges hooks into ~/.claude/settings.json, installs a daemon, or deploys scripts to a stable path so they work from a hook/daemon context (see above), it needs: (1) a setup agent that does the actual idempotent installation work (backgrounded per the rule above), and (2) a /plugin-name:setup slash command in commands/ that wraps it, so users don't have to know to invoke the agent by name. self-improvement (/self-improvement:setup) and side-quest (/side-quest:setup) are the reference implementations. A plugin whose scripts only ever run inside a live Bash tool call (the common case) does not need this — $CLAUDE_PLUGIN_ROOT already resolves correctly at runtime, no deploy step required.

Read the full file on GitHub · 72 lines

Changes

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.

  1. 1mo ago First seen · 72 lines · 2,087 tokens per session scan B 2d51ebe98bb4

Subscribe to this mod's changes

agent-plugins AGENTS.md is an instructions file published in the GitHub repository trtmn/agent-plugins (2 stars, last pushed 11d ago), licensed Unlicense. It adds 2,087 tokens to every session, about $0.0083 per session on Opus 5.5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other instructions, from other repositories

vscode buildNext.instructions.md

Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).

microsoft/vscode · 9,649 tokens

next.js AGENTS.md

AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.

vercel/next.js · 7,257 tokens

vscode oss-third-party-notices.instructions.md

Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, cache eligibility and rollout and applying the notice (cutover).

microsoft/vscode · 5,262 tokens

langchain AGENTS.md

AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.

langchain-ai/langchain · 4,680 tokens

vscode copilot-instructions.md

Copilot instructions for microsoft/vscode, covering vs code copilot instructions, project overview, root folders, core architecture (src/ folder) and built-in extensions (extensions/ folder).

microsoft/vscode · 2,731 tokens

deepseek-harness AGENTS.md

AGENTS.md instructions for deepseek-ai/deepseek-harness, covering agents.md, pre-stable apis and released session data, repository layout, commands and host sandbox failures.

deepseek-ai/deepseek-harness · 4,159 tokens