CLI Reference
The Revyme CLI lets you push plugin updates directly from your terminal. It's included in the @revyme/plugin-sdk package.
Setup
1. Get your API key
Go to your Revyme dashboard, open Settings, and navigate to Plugin API Key. Generate a key — it starts with rvy_.
2. Login
npx revyme loginEnter your API key when prompted. It's saved to ~/.revymerc.
You can also set the REVYME_API_KEY environment variable instead.
3. Set your Plugin ID
After your first manual upload via the dashboard, copy the Plugin ID from the plugin info modal and add it to your package.json:
{
"revyme": {
"pluginId": "your-plugin-id"
}
}Commands
revyme login
Saves your API key locally.
npx revyme loginThe key is stored in ~/.revymerc with 600 permissions (owner-only read/write).
revyme push
Builds and uploads your plugin bundle for review.
npx revyme pushWith update notes:
npx revyme push -m "Fixed color picker default values"The CLI looks for your bundle in this order:
dist/index.cjsdist/index.jsindex.cjsindex.js
Maximum bundle size is 500KB.
Every push requires admin review. Your previous approved version stays live while the update is pending.
revyme info
Shows your current configuration.
npx revyme infoDisplays: package name, plugin ID, masked API key, and config file path.
Typical workflow
# Make changes to your plugin
vim src/index.ts
# Build
npm run build
# Push update
npx revyme push -m "Added new control for border radius"Troubleshooting
"No API key found" — Run npx revyme login or set REVYME_API_KEY environment variable.
"No revyme.pluginId in package.json" — Upload your plugin via the dashboard first, then copy the Plugin ID into your package.json.
"No bundle found" — Run your build command first. The CLI expects the output in dist/index.cjs or dist/index.js.
"Bundle exceeds 500KB limit" — Check for unnecessary dependencies. Use tsup or esbuild to tree-shake and minify your bundle. Mark react and motion as external since they're provided by the builder.
Recommended tsup config
{
"scripts": {
"build": "tsup src/index.ts --format esm,cjs --dts --external react --external motion"
}
}This produces a minimal bundle that doesn't include React or Motion (both are provided by the builder at runtime).