Video Tutorial: Create + Publish Your Own Plugin
This guide assumes you have a working plugin. If you need to create one first, see Create a Plugin
Step 1: Prepare for Publishing
Navigate to your plugin
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:name
starts withplugin-
(auto-added by CLI if missing)- Custom
description
(not the default generated placeholder) - Required images in
images/
directory
1
Add required images
Create an Add these two custom images for your plugin’s branding on the registry:
images/
directory if it doesn’t exist:Terminal
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:This creates the
Terminal
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
2
Login to npm (if needed)
Terminal
- Username
- Password
- Email address
- One-time password (if 2FA is enabled)
Check GitHub authentication
Terminal
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
- 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
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
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
1
Create GitHub Personal Access Token (when prompted)
- Go to GitHub Settings → Developer settings → Personal access tokens
- Click “Generate new token (classic)”
- Name it “elizaOS Publishing”
- Select these scopes:
repo
(Full control of private repositories)read:org
(Read organization membership)workflow
(Update GitHub Action workflows)
- Click “Generate token”
- Copy the token and paste it when prompted by the CLI

Make sure to test that your plugin is configured correctly before publishing, as it will cause unnecessary delay if something is wrong.
Step 5: Registry Review Process
What happens next
- npm Package - Available immediately at
https://npmjs.com/package/your-plugin-name
- GitHub Repo - Created immediately at
https://github.com/yourusername/plugin-name
- 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 viaelizaos 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