create-plugin

create-plugin is a skill for Claude Code, Codex from richfrem/agent-plugins-skills. It costs 46 tokens per session (1,663 once invoked), scanned A, original, MIT.

Scaffolds a new top-level agent plugin directory. NOT for scaffolding single skills (use create-skill) and NOT for adding MCP integrations to existing plugins (use create-mcp-integration).

Skill for Claude CodeCodex

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 skills/richfrem/agent-plugins-skills/create-plugin
Any agent
npx skills add richfrem/agent-plugins-skills --skill create-plugin
Clone the repo
git clone --depth 1 https://github.com/richfrem/agent-plugins-skills

Made for: Claude Code, Codex.

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 create-plugin

README.md
[![agentmods](https://agentmods.dev/badge/skills/richfrem/agent-plugins-skills/create-plugin.svg)](https://agentmods.dev/skills/richfrem/agent-plugins-skills/create-plugin)
Your own site
<a href="https://agentmods.dev/skills/richfrem/agent-plugins-skills/create-plugin"><img src="https://agentmods.dev/badge/skills/richfrem/agent-plugins-skills/create-plugin.svg" alt="Measured on agentmods" height="20"></a>
Per session 46 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,663 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin unknown 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.00046 $0.01663
Opus 5 $0.00023 $0.00831
Sonnet 5 $0.00009 $0.00333
Haiku 4.5 $0.00005 $0.00166

Measured today against content hash 3d1f6420e87e, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

create-plugin scanned grade A with 0 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 today.

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.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/agent-scaffolders/skills/create-plugin/SKILL.md · 151 lines

How it starts

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

Follow the create-plugin skill workflow to scaffold a new Claude Code plugin.

Inputs

  • $ARGUMENTS — optional plugin name in kebab-case. Omit to start with discovery.

Steps

  1. If $ARGUMENTS provides a plugin name, use it to seed Phase 1
  2. Follow the create-plugin phased workflow: discover purpose and plugin type, plan component table (skills / commands / agents / hooks / MCP), ask clarifying questions per component, scaffold directory structure and plugin.json (ensuring "author" is an object with "name" and "email"), implement each component using the appropriate sub-skill, validate, test, and document
  3. plugin.json Template & Minimal Metadata Standard (MANDATORY — do not skip):
    • Ensure .claude-plugin/plugin.json uses the clean, minimal metadata format:
      {
        "name": "<plugin-name>",
        "version": "0.1.0",
        "description": "<description>",
        "author": {
          "name": "richfrem",
          "email": "[email protected]"
        },
        "repository": "https://github.com/richfrem/agent-plugins-skills",
        "license": "MIT",
        "keywords": [
          "<keyword>"
        ]
      }
      
    • Strict Rules:
      • .claude-plugin/plugin.json must NEVER contain skills, agents, hooks, or commands arrays (these are auto-discovered by Claude Code).
      • "author" must ALWAYS be an object with "name" (and optionally "email"), never a plain string.
      • No duplicate top-level keys.
  4. plugin.yaml (Hermes compatibility — always generate): After plugin.json is finalized, scaffold a plugin.yaml at the plugin root for hermes-agent compatibility. Format:
    name: <plugin-name>
    version: <version>
    description: "<description>"
    author: <author>
    kind: backend  # or standalone (no Python scripts)
    platforms:
      - linux
      - macos
      - windows
    provides_tools:          # list script basenames (no .py) that expose callable tools
      - script_name
    skills:                  # list skill directory names under skills/
      - skill-name
    
    • kind: standalone — plugin has no Python scripts that hermes calls directly
    • kind: backend — plugin has scripts in scripts/ that hermes invokes as tools
    • Only include provides_tools if scripts/ contains callable tool scripts
    • Skills list must match actual directory names under skills/
    • Report: "plugin.yaml created for hermes compatibility. ✅"
  5. __init__.py (Hermes tool/hook wiring — generate when plugin has scripts): If the plugin has callable Python scripts in scripts/, scaffold a root-level __init__.py with a register(ctx) function following this pattern:
    from __future__ import annotations
    from pathlib import Path
    
    _HERE = Path(__file__).resolve().parent
    
    def register(ctx) -> None:
        # Register skills
        ctx.register_skill(
            name="<skill-name>",   # bare name only — hermes auto-prefixes plugin name as namespace
            path=_HERE / "skills" / "<skill-name>",
        )
        # Register tools (if scripts expose callable tools)
        # ctx.register_tool(name, toolset, schema, handler)
        # Register hooks (if plugin needs lifecycle hooks)
        # ctx.register_hook("post_tool_call", handler)
    
    • Always include register_skill() calls for every skill in the plugin
    • Only add register_tool() if the plugin provides callable Python tools
    • Only add register_hook() if the plugin needs lifecycle hooks
    • Without __init__.py, hermes shows "No __init__.py" warning and the plugin won't activate
    • Report: "__init__.py created with register() function. ✅"
  6. Report the created plugin directory and verification checklist results

Read the full file on GitHub · 151 lines

Files

What ships with it

60 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

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. today First seen · 151 lines · 46 tokens per session scan A 3d1f6420e87e

Subscribe to this mod's changes

create-plugin is a skill published in the GitHub repository richfrem/agent-plugins-skills (6 stars, last pushed today), licensed MIT. It adds 46 tokens to every session and 1,663 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.

Related

Other skills, from other repositories

kapso-whatsapp

How to interact with Kapso WhatsApp from the swarm — read inbound webhook payloads (text AND media), fetch message history, send free-form messages within the 24h session window (and template messages outside it), mark-as-read, show the typing indicator, send reactions, download media, verify webhook signatures, and…

desplega-ai/agent-swarm · 156 tokens

composio

Use Composio from Agent Swarm through the agent-swarm x composio CLI route, the swarmx MCP tool, or a registered ctx.api.composio script connection. Trigger when a task needs connected third-party app tools such as Gmail, Google Calendar, Google Docs, Google Drive, GitHub, Slack, Notion, or HubSpot through Tool Router…

desplega-ai/agent-swarm · 128 tokens

attio-interaction

Generic Attio CRM REST API v2 recipes for querying records, upserting companies/people/deals, writing notes/tasks/comments, managing lists, and handling webhooks.

desplega-ai/agent-swarm · 39 tokens

scheduled-task-resilience

Guardrails for polling, scheduled jobs, and long-running external operations. Use whenever a task waits on CI, builds, deploys, browser jobs, or another asynchronous API so work survives heartbeat checks without duplicate delivery.

desplega-ai/agent-swarm · 48 tokens

swarm-scripts

Bulk, repeat, fan-out, or data-heavy work: write and run swarm scripts (inline script-run, named script-upsert, durable launch-script-run). Covers the script-vs-tool rubric, the authoring contract (args first, ctx second), the seed catalog, connections and secrets, dbquery, and exposing a script as an API.

desplega-ai/agent-swarm · 82 tokens

user-management

How to manage the user registry — creating users for new Slack/GitHub/GitLab/Linear identities, managing aliases, resolving users across platforms. Use when a new human interacts with the swarm or when user identity needs updating.

desplega-ai/agent-swarm · 49 tokens