EmDash’s plugin registry is a catalog and approval workflow for extensions that run in a sandbox—not a guarantee that an approved plugin is harmless. Administrators can inspect a plugin’s publisher and requested capabilities before installing it, and EmDash verifies releases. Cloudflare’s plugin CLI also scaffolds projects with guidance that coding agents can use. The practical trade-offs are deployment-specific: Cloudflare’s Worker Loader requires a Workers Paid plan, while sandboxed plugins on Cloudflare currently do not work with the Hyperdrive database adapter.
What EmDash is—and what its registry is for
EmDash is Cloudflare’s open-source content management system, built on Astro. Cloudflare announced the stable 1.0 release on September 28, 2026. The product combines an admin interface, APIs, a command-line interface and a built-in MCP server for human and agent workflows. Cloudflare’s 1.0 announcement describes the release and its development context.
As an Amazon Associate I earn from qualifying purchases.
The official plugin registry is the supported catalog for sandboxed extensions. Administrators can browse it from EmDash, inspect a plugin’s publisher, metadata, requested permissions and verification status, then consent to installation. Native plugins are a separate model: they execute inside the EmDash server process and cannot be published to the registry. The registry documentation and publishing guide describe these distinctions.
How does EmDash’s plugin registry work?
Identity, packages and releases
A public plugin name combines the publisher’s current Atmosphere handle with a package slug, such as @example.com/my-gallery. The publishing guide advises pinning a publisher’s DID (decentralized identifier) rather than relying only on a handle that can change. Releases are signed records associated with the publisher account; a published version cannot be overwritten, so changes require a new version. The registry uses decentralized identity, but its documentation still describes a hosted default registry endpoint. If a publisher’s identity handle becomes invalid, new installations are blocked; existing installations remain in their current state pending review. The registry documentation explains the naming and resolution behavior.
#1 Best Overall
Verification and administrator consent
Before installation, EmDash checks a downloaded bundle’s checksum, name, version and declared permissions. If the publisher requires build provenance, that evidence is checked as well. Updates repeat verification. Administrators are asked to confirm when an update expands access or makes certain MCP or route changes. These checks help administrators evaluate what they are installing; they do not replace review of the requested permissions. See the installation guide.
Are EmDash plugins sandboxed?
Registry plugins always run through a sandbox runner and receive the access declared in their manifest. A manifest can request capabilities such as reading content or making network requests to specified hosts. For example, the publishing guide’s Slack notification plugin can read content and contact hooks.slack.com, but its example manifest does not grant content writing, user access or network access to other hosts. If a plugin hook needs an undeclared capability, EmDash skips the hook and logs a warning. The publishing guide documents the example and behavior.
During installation, administrators see permissions in plain-language terms, including content read or write, media access, network requests and redirect changes. This supports least-privilege decisions, but an approved permission still authorizes the operation it describes. For instance, granting redirects:write allows a plugin to change where visitors are sent. Review the requested access in context rather than treating the sandbox as a blanket safety guarantee. The installation guide describes the consent review.
Cloudflare introduced EmDash’s isolated-Worker architecture in April 2026 as a contrast with plugins that share a CMS server process. Its 1.0 announcement says the company spent five months working with contributors and production users on data safety, migrations, editorial workflows, localization, plugin security, performance and reliability. Those are Cloudflare’s product and development claims, not evidence of an independent security audit. Cloudflare’s April 1 introduction and 1.0 announcement provide that context.
How can AI agents build EmDash plugins?
The plugin CLI makes an agent-assisted workflow concrete by generating a project with API guidance rather than asking an agent to invent the extension structure. The official publishing guide names Claude Code and Cursor as examples of coding agents that can work with the plugin APIs from the generated project. This is development scaffolding, not autonomous security review, approval or publishing. The publishing guide documents the workflow.
-
Run
pnpm dlx @emdash-cms/plugin-cli init my-pluginto start a project. -
Provide the requested publisher, author, security contact and source repository information.
The Tool Desk
Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy. -
Open the generated project in a coding agent or editor. The scaffold includes a manifest, TypeScript entry point, test setup,
AGENTS.mdand a plugin-creation skill that help describe the project and its APIs to an agent. -
Develop and test the plugin locally, then connect it to an EmDash site and test on the intended runtime before publishing.
-
Review the manifest’s capabilities and allowed hosts, test the actual behavior, and make the publisher and release decisions yourself.
Cloudflare recommends testing on Cloudflare when that is the target deployment, even if development happens on Node.js, because runtime enforcement and resource constraints differ. The publishing guide covers local development and testing.
Recommended Free Tools
Which sandbox runner should you choose?
The documented registry paths are Cloudflare Workers with Worker Loader or Node.js with @emdash-cms/sandbox-workerd and its workerd peer dependency. The right choice depends on where the site runs and, for Cloudflare deployments, which database adapter it uses.
| Route | Runtime setup | Paid-plan requirement | Database compatibility |
|---|---|---|---|
| Cloudflare Workers | Configure a LOADER Worker Loader binding and export PluginBridge from the Worker entry point. |
Worker Loader requires a Workers Paid plan. | The Cloudflare plugin bridge uses D1 directly. Sandboxed plugins currently cannot run on Cloudflare sites using the Hyperdrive database adapter. |
| Node.js | Use @emdash-cms/sandbox-workerd with the workerd peer dependency; plugins run in a separate workerd process. |
No paid Workers plan is stated as a requirement for this route. | The cited Cloudflare-specific D1 and Hyperdrive restriction does not establish a corresponding restriction for Node.js deployments. |
These requirements come from the installation guide, the publishing guide and the sandbox documentation. A paid Workers plan is a prerequisite for Worker Loader, not a general requirement for EmDash. For a Cloudflare site, check the database adapter before choosing the Cloudflare runner.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.What are the current registry limits and failure modes?
The September 28, 2026 publishing guide specifies these implementation constraints. They are runtime limits, not general performance guarantees, and may change with the product:
-
A plugin bundle can be at most 256 KB decompressed in total, with no file larger than 128 KB and no more than 20 files.
Free tools Windows power users keep installed
One-click scans. No signup required.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy. -
Backend code cannot use Node built-ins such as
fsorpath. -
Both documented runners stop a call after 30 seconds. Cloudflare additionally enforces a 50 ms CPU limit and a maximum of 10 subrequests per invocation.
Registry installation also needs an administrator with plugins:manage, configured storage for downloaded bundles and an available sandbox runner. Without a runner, sandboxed plugins do not load and registry installation fails; the documentation says the rest of the site is unaffected. The installation guide and the dated publishing guide describe these requirements.
Do not address a missing runner by disabling sandboxing in production. EmDash warns that doing so gives plugins server-process authority without the runner’s isolation, host allowlist or resource limits. The sandbox documentation explains the trade-off.
How do registry plugins differ from native plugins?
| Extension type | Execution and access | Distribution and installation |
|---|---|---|
| Registry plugin | Runs through a sandbox runner with declared capabilities and allowed hosts. | Published to the official registry; administrators inspect requests and consent to installation through EmDash. Requires bundle storage and an available runner. |
| Native plugin | Runs inside the EmDash server process rather than through the registry sandbox. | Distributed through npm; it cannot be published to the official plugin registry. |
Choose the registry route when sandboxed execution and the registry’s review workflow fit the deployment. Native distribution is a different trust and access model, not a way to obtain registry sandboxing. The registry documentation and the installation guide explain the models.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




