One package for reusable capabilities

A Rudder Plugin is a distribution package containing one or more Skills, MCP server definitions, or Apps. It may use the Codex Plugin folder format with a .codex-plugin/plugin.json manifest, or be deterministically generated as a Skills-only package from a public source compatible with skills add. Plugins organize capabilities that belong together. They do not introduce a separate Rudder runtime: Skills still run through an Agent, MCP servers still use Managed MCP setup and access policy, and Local Apps still launch through their existing App runtime.

What installation does

Rudder inspects a package without executing it and shows its identity, source, digest, supported components, warnings, and errors. Installation creates an Organization-scoped snapshot. You can then assign package Skills to Agents and finish any MCP authentication or access setup. Input may be Rudder’s curated catalog, a compatible public GitHub Skills source, a folder, bounded ZIP, local Codex marketplace, or an HTTPS GitHub marketplace pinned to a full commit SHA. Curated and URL sources resolve to an immutable Release or default-branch commit before Detail appears. Marketplace installation and authentication policy is preserved as provenance. It never bypasses Rudder’s Preview or installs a Plugin silently. When a package Skill conflicts with an Organization Skill, installation pauses until the operator explicitly keeps the existing Skill, replaces it, or installs both under distinct identities. Local Apps also appear in Hub > Plugins as app-only entries. Their direct launch behavior and existing /apps/... routes remain unchanged. A new App Builder revision becomes a pending immutable update; the current revision stays active until the operator previews and applies it. Choosing Customize on a package Skill creates an independent, editable Organization Skill with package provenance. The copy is no longer controlled by Plugin updates, disablement, or uninstall. In composer @ search, an installed Plugin appears as one capability entry. Rudder does not list every Skill inside that Plugin as a separate result. Independent and customized Skills remain individually searchable. Use a Plugin when several capabilities belong to one reusable workflow, or when an App should be distributed as a single capability. Keep a standalone Skill independent when users need to find, assign, and evolve it on its own.

Lifecycle and trust

Disabling a Plugin removes its package capabilities from new work without deleting external connections, App source, or App data. Re-enabling restores the previous package Skill assignments. Uninstalling removes package-owned projections while preserving user work and independently managed resources. An update is inspected before it replaces the active package. Rudder prepares the new component projections first, keeps the current version active if that preparation fails, and retains the previous immutable package for explicit rollback. The Preview compares old and new execution surfaces and requires an explicit confirmation when Skill execution or MCP access expands. An active Managed MCP connection may expose HTML UI resources. Rudder lists and opens those resources in a network-disabled sandbox; .app.json aliases never activate this path. Treat every imported package as untrusted input. Inspect its publisher, version, files, credential references, unsupported fields, and compatibility report before installation. Rudder V1 does not run Plugin workers, jobs, webhooks, UI slots, hooks, browser extensions, scheduled-task templates, or arbitrary package code. It also never invokes npx or a repository’s install lifecycle. Follow Install and Manage a Plugin for the complete workflow.