How EmDash Plugins Work
EmDash plugins run in isolated sandboxes called Dynamic Workers. Each plugin must declare the exact capabilities it needs in a manifest — for example, read:content, email:send, or storage:write. The plugin cannot perform any action that is not explicitly listed. This model is similar to an OAuth permission dialog: you see exactly what a plugin can do before you install it.
This is a fundamental departure from WordPress, where any plugin can access the full database and filesystem the moment it is activated.
Method 1 — Install from the Admin Dashboard (Recommended)
This method requires your astro.config.mjs to point at the marketplace and have sandboxRunner enabled:
// astro.config.mjs
import { defineConfig } from "astro/config";
import emdash from "emdash/astro";
export default defineConfig({
integrations: [
emdash({
marketplace: "https://emdash.market",
sandboxRunner: true,
}),
],
});
Once configured:
- Open the admin panel at
/_emdash/adminand navigate to Plugins → Marketplace - Browse or search for the plugin you want
- Open its detail page and review the capability consent dialog — this shows every permission the plugin is requesting
- Click Install
EmDash downloads the plugin bundle from the marketplace, copies it into your site's own storage bucket, and loads it into the sandbox runner. Once installed, your site never depends on the marketplace at runtime — the plugin lives in your own storage.
Method 2 — Manual Installation
If you prefer not to connect your instance to the marketplace, or you are on an air-gapped environment, you can install plugins manually:
- Visit the plugin's page on emdash.market/plugins and click Download
- You'll receive a
.tgzarchive. Extract it into your project's./plugins/directory:
tar -xzf plugin-name-1.0.0.tgz -C ./plugins/
- Restart your EmDash development server (or redeploy in production)
EmDash will automatically detect plugins in the ./plugins/ folder on startup.
Verifying the Installation
After installing, go to Plugins → Installed in the admin dashboard. You should see the plugin listed with its status as Active. If configuration is required, a settings icon will appear next to the plugin name.
Updating Plugins
When a plugin author publishes a new version, the admin dashboard shows an update badge in Plugins → Installed. Click Update to pull the latest bundle. Each update shows a changelog and any new capability requests — you must re-consent if new permissions are being added.
Uninstalling Plugins
From Plugins → Installed, click the plugin's options menu and select Uninstall. This removes the plugin bundle from your storage and stops the sandbox worker. Any content or settings the plugin created will remain in the database unless you also choose to clean up its data.
Security Note
Only plugin versions that have passed an automated security audit are available for download on emdash.market. Each version is scanned before publication:
- Passing versions are published automatically
- Flagged versions are published with a visible warning badge
- Rejected versions are not made available
