migrate-plugins

A workflow for converting plugins from Claude Code, Codex, or Skills.sh into the AgentPlugins v1 format so they can be installed by AgentPlugins.

In plain words
What is it for?
Use it when porting a community plugin, skill folder, or plugin manifest to AgentPlugins, except plugins built natively for OpenCode or Pi Mono.
Why use it?
It handles routine conversion steps and flags parts that cannot be translated safely without review.

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

Made for: Claude Code, Codex.

Per session 61 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,964 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. 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.00061 $0.01964
Opus 5 $0.00030 $0.00982
Sonnet 5 $0.00012 $0.00393
Haiku 4.5 $0.00006 $0.00196

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

Security

Grade A, and why

migrate-plugins 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 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.

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.

migrate-plugins/SKILL.md · 158 lines

How it starts

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

Migrating community plugins into AgentPlugins

This skill drives the hybrid migration workflow for community plugins. It combines a deterministic @agentplugins/ingest package with a conversational @agentplugins/migrate MCP server so agents can handle both routine and lossy migrations with human-in-the-loop review.

When to use this skill

Trigger this skill when the user asks any of:

  • "migrate this Claude Code plugin to AgentPlugins"
  • "convert this Skills.sh skill folder"
  • "port this Codex plugin"
  • "make this Claude plugin work with agentplugins add"
  • "translate plugin.json into an AgentPlugins manifest"

Do NOT trigger this skill for plugins written natively in OpenCode or Pi Mono — those ecosystems ship TypeScript modules with hook/tool registrations inside function bodies, and TS AST parsing is too brittle for v0.3.0. Refuse and recommend rewriting the plugin directly against AgentPlugins v1.

Decision tree

Is the source a directory you can read?
├── no  → refuse: "I cannot migrate a plugin I cannot read."
└── yes
    │
    ├── Can you identify the source format?
    │   ├── .claude-plugin/plugin.json exists    → format = claude-code
    │   ├── .codex-plugin/plugin.json exists     → format = codex
    │   ├── SKILL.md or skill.md present         → format = skills-sh
    │   ├── package.json + TS with hook calls    → REFUSE: OpenCode/Pi Mono
    │   └── none of the above                    → ask the user to identify it
    │
    ├── Is the plugin one of the "out-of-scope" patterns?
    │   ├── Persistent HTTP server at host boot  → refuse (arch-gap)
    │   ├── Ships a binary blob with no manifest → refuse (OOS)
    │   ├── Patches the agent harness source     → refuse (OOS)
    │   ├── UI-only (statusline, TUI)            → refuse (OOS)
    │   ├── Multi-agent orchestrator             → refuse (OOS)
    │   └── Otherwise                            → continue
    │
    └── Run the migration:
        1. Call `scan` on the source directory.
        2. If format is unambiguous, call `convert` with that format.
        3. If format is ambiguous, ask the user.
        4. Review the manifest + warnings returned by `convert`.
        5. If warnings exist, surface them to the user with `diff_manifest`.
        6. Walk the user through each warning. For each one, decide:
           - accept the lossy translation (default for "dropped-field" warnings)
           - recover the field manually (for fields that matter)
           - refuse to migrate (e.g. if the plugin depends on hook return values
             that AgentPlugins v1 discards)
        7. Call `verify_integrity` on the source to record the SHA-256.
        8. Call `write_manifest` to persist the result.
        9. Tell the user to run `agentplugins import <format> <source>` (or
           `agentplugins add <github-url>` for the published repo).

Read the full file on GitHub · 158 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 · 158 lines · 61 tokens per session scan A 53278475653c

Subscribe to this mod's changes

migrate-plugins is a skill published in the GitHub repository sigilco/agentplugins (10 stars, last pushed 2mo ago), licensed Apache-2.0. It adds 61 tokens to every session and 1,964 once invoked, about $0.0003 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-08-31.

Related

Other skills, from other repositories

vendo-setup

Install and configure Vendo (the embedded product agent) in a host repo. Use when asked to add Vendo to an app, run vendo init/doctor/sync, wire the Vendo handler or VendoProvider, or debug a Vendo install.

runvendo/vendo · 56 tokens

genbench

Run Vendo's buy-vs-build generation benchmark — generation time + accuracy of the real Vendo pipeline vs raw-Claude baselines (diy, claude-code) on JSON-defined worlds. Use when asked to benchmark generation, compare Vendo vs raw models, measure generation speed/cost, or add genbench worlds/cases.

runvendo/vendo · 70 tokens

make-a-screen

Use when an answer about the connected product would land better as something the person can look at and use than as text you type out — a comparison, a trend, many rows, a thing they will come back to, or a thing they need to act on. Also use when they ask to change a screen they already have.

runvendo/vendo · 70 tokens

workbench

Iterating on the vendo() harness or screen agent interactively — running the harness workbench, watching harness internals live (steps, compaction, guard, loadout), hot-reload edit loops on @vendoai packages, debugging a turn. Cross-ref: use genbench to MEASURE a change; workbench to FEEL and debug it.

runvendo/vendo · 74 tokens

paseo-plugin

Build and manage trusted local Paseo plugins. Use when the user asks to create, edit, install, reload, enable, disable, remove, or troubleshoot a Paseo plugin; add a native surface or sidebar item; use Paseo from plugin code; add plugin RPCs; or contribute composer attachments.

getpaseo/paseo · 66 tokens

paseo-help

Answer questions about the Paseo product and app, including setup, configuration, connectivity, providers, workspaces, updates, logs, and troubleshooting. Use when a user inside Paseo asks how Paseo works, how to configure it, or why something is broken; use the paseo skill instead to operate agents and workspaces…

getpaseo/paseo · 75 tokens