agent-plugins AGENTS.md

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 CodexOpenCode

Install

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.

agentmods
npx agentmods add instructions/trtmn/agent-plugins/agents-md
Clone the repo
git clone --depth 1 https://github.com/trtmn/agent-plugins

Made for: Codex, OpenCode.

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. Scan, not verified.
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 $0.02087 $0.02087
Opus 5 $0.01043 $0.01043
Sonnet 5 $0.00417 $0.00417
Haiku 4.5 $0.00209 $0.00209

Measured yesterday against content hash 2d51ebe98bb4, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, 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 yesterday.

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.jsonname):

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. yesterday 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 4d ago), licensed Unlicense. It adds 2,087 tokens to every session, about $0.0104 per session on Opus 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

codex AGENTS.md

AGENTS.md instructions for openai/codex, covering rust/codex-rs, the codex-core crate, code review rules, crate api surface and model visible context.

openai/codex · 5,182 tokens

buildNext

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 · 6,785 tokens

next.js 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,296 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, applying the notice (cutover) and fallback chain (never fail the build).

microsoft/vscode · 5,001 tokens

spec-kit AGENTS.md

Instructions for github/spec-kit, covering agents.md, about spec kit and specify, quickstart — add a new integration in 5 steps, integration architecture and integrationmanifest — file tracking.

github/spec-kit · 7,040 tokens

langchain 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,345 tokens