Skip to main content
This guide assumes you have a working plugin. If you need to create one first, see Create a Plugin
Once you’ve built and tested your plugin locally, you’ll want to publish it so others can discover and use it. You’ll need an npm account and GitHub account for authentication.

Step 1: Prepare for Publishing

Start from your working plugin directory. If you followed the Create a Plugin guide:
Terminal

Verify plugin requirements

Your plugin needs these key elements for registry acceptance: Required files:
What the publish command validates:
  • name starts with plugin- (auto-added by CLI if missing)
  • Custom description (not the default generated placeholder)
  • Required images in images/ directory
1

Add required images

Create an images/ directory if it doesn’t exist:
Terminal
Add these two custom images for your plugin’s branding on the registry:
  • logo.jpg - 400x400px square logo (max 500KB)
  • banner.jpg - 1280x640px banner (max 1MB)
Use high-quality images that represent your plugin’s functionality clearly. The logo will appear in plugin listings at various sizes.
2

Update package.json description

Replace the default generated description with something descriptive:
package.json
3

Build your plugin

Ensure your plugin is built and ready:
Terminal
This creates the dist/ folder that npm will publish.

Step 2: Check authentication

Make sure you’re logged into both npm and GitHub:

Check npm login

1

Check current npm login

Terminal
If you see your username, you’re already logged in. If you see an error, continue to the next step.
2

Login to npm (if needed)

Terminal
Follow the prompts to enter your:
  • Username
  • Password
  • Email address
  • One-time password (if 2FA is enabled)

Check GitHub authentication

Terminal
If you see your GitHub username, you’re logged in. If you see an error or “not logged in”:
Terminal
If gh command is not found, you’ll need to install GitHub CLI from cli.github.com or the publish command will prompt you to create a token manually.

Step 3: Test Publishing (Dry Run)

Before actually publishing, test the entire process to catch any issues.

Run publish test

Terminal
This command will:
  • Check your npm and GitHub authentication
  • Validate your plugin structure
  • Check for required images and descriptions
  • Show you exactly what would happen without making any changes
Example output:
Address any validation errors before proceeding. Your plugin may be rejected by maintainers if it’s missing required assets or has placeholder content.

Run dry run (optional)

For an even more detailed preview:
Terminal
This generates all the registry files locally in packages/registry/ so you can see exactly what will be submitted.

Step 4: Publish Your Plugin

Once your test passes and you’re satisfied with the setup, run the actual publish command.

Execute full publish

Terminal
You will be asked for a scoped Github token and given these instructions:
1

Create GitHub Personal Access Token (when prompted)

  1. Go to GitHub Settings → Developer settings → Personal access tokens
  2. Click “Generate new token (classic)”
  3. Name it “elizaOS Publishing”
  4. Select these scopes:
    • repo (Full control of private repositories)
    • read:org (Read organization membership)
    • workflow (Update GitHub Action workflows)
  5. Click “Generate token”
  6. Copy the token and paste it when prompted by the CLI
GitHub token scope selection showing repo, read:org, and workflow checked
Make sure to test that your plugin is configured correctly before publishing, as it will cause unnecessary delay if something is wrong.
Example successful output:

Step 5: Registry Review Process

What happens next

  1. npm Package - Available immediately at https://npmjs.com/package/your-plugin-name
  2. GitHub Repo - Created immediately at https://github.com/yourusername/plugin-name
  3. Registry Pull Request - Opened at elizaos-plugins/registry

Registry approval

An elizaOS core team member will review your registry pull request to ensure all requirements are met, the plugin is free of malicious code, and it functions as intended with proper images and a quality description. Typical review time: 1-3 business days If approved: Your plugin appears in the official registry and can be discovered via elizaos plugins list If changes requested: Address the feedback and update your plugin, then re-submit.

Step 6: Post-Publishing

Plugin is now live!

Once approved, users can install your plugin to their projects:
Terminal

Future updates

For plugin updates after initial publishing:
Terminal
The elizaOS registry automatically syncs with npm updates, so you don’t need to manually update the registry.

See Also

Contribute to Core

Help improve elizaOS by contributing to the core framework

Plugin Registry

Explore existing plugins and find inspiration

CLI Reference

Master all elizaOS CLI commands for development

Join Discord Community

Share your plugin and get help from the community