Migration from Plugins

Move from plugins to skills at your own pace

The plugins field was the original way to attach capabilities. Skills replace it with three distinct classes: built-in managed skills, schema bundles, and remote webhooks. The plugins field continues to work — TheRouter maps it to the new system internally.

Field mapping

Before (plugins)
{
  "model": "anthropic/claude-sonnet-4.5",
  "messages": [{ "role": "user", "content": "Summarize recent AI news." }],
  "plugins": [{ "id": "web" }, { "id": "response-healing" }]
}

Both fields are accepted, but you cannot use plugins and skills in the same request — this returns a 400 error.

New skill classes

  • managed_builtin — TheRouter-managed capabilities (web, file-parser, response-healing). No setup required.
  • schema_bundle — reusable tool definitions created via POST /v1/customer/skills.
  • remote_webhook (coming soon) — skills hosted in your infrastructure, called via signed HTTPS.
skill-classes.json
// Built-in: reference by well-known ID
{ "id": "web" }

// Schema bundle: reference your stored bundle
{ "id": "sk_abc123" }

// Remote webhook: reference after registering endpoint
{ "id": "sk_webhook_456" }

Migration checklist

  • Search your codebase for "plugins": in API request bodies
  • Replace plugins with skills in each call site
  • If you passed custom tool arrays, create a schema bundle and reference by ID
  • Test one endpoint before rolling out across services
Non-breaking migration
The plugins field is still fully supported. Migrate incrementally — update one service at a time with no coordination required.