Deploy Workflow
Step-by-step guide to deploying a plugin to Cursorist.
Overview
Deploying a plugin to Cursorist involves authenticating, preparing your plugin, running the deploy command, and optionally verifying or upgrading. This guide walks through the full workflow.
Step 1: Authenticate
Before deploying, you must be logged in:
cursorist loginThis opens a browser for GitHub OAuth. On success, tokens are stored in ~/.cursorist/config.json.
Verify your status:
cursorist statusStep 2: Initialize or Validate Plugin
Option A: Start from Scratch
Scaffold a new plugin:
cursorist plugin initYou'll be prompted for:
- Organization
- Team
- Profile name (e.g.
acme-eng-starter) - Description
- Components to include (rules, skills, commands, MCP)
This creates .cursor-plugin/plugin.json and starter files in rules/, skills/, commands/, and mcp/.
Option B: Use an Existing Plugin
If you already have a plugin structure, validate it:
cursorist plugin validateValidation ensures:
- Manifest exists and has required fields
- At least one component directory has files
- All referenced assets exist
Step 3: Deploy
Deploy with the plugin deploy command:
cursorist plugin deploy --org <org> --team <team> --plugin <plugin>Example:
cursorist plugin deploy --org acme --team engineering --plugin my-starterOptional Overrides
| Option | Use Case |
|---|---|
--dir ./path | Deploy from a subdirectory |
--description "..." | Override manifest description |
--type conventions | Set plugin type |
--stack typescript,react | Set technology stack |
--version 1.2.0 | Override version (otherwise from manifest) |
Example with overrides:
cursorist plugin deploy \
--org acme \
--team engineering \
--plugin my-starter \
--description "Team coding standards" \
--type conventions \
--stack typescript,reactStep 4: What Happens Server-Side
When you run cursorist plugin deploy, the CLI:
- Reads the manifest from
.cursor-plugin/plugin.jsonand assets from component directories - Resolves organization and team by slug
- Creates or updates the plugin record (name, description, type, stack)
- Inserts a new row in
plugin_versionswith the manifest - Uploads assets to
plugin_assets(content, hash, size)
Each deploy creates a new version. Assets are versioned with the plugin version; they are not overwritten in place.
Step 5: Verify Deployment
List plugins in your team to confirm the deploy:
cursorist plugin list --org acme --team engineeringOutput shows each plugin with its slug, status (published/draft), description, install count, and last updated date.
You can also view the plugin in the browser:
https://cursor.ist/plugins/${plugin-slug}Step 6: Upgrading
To pull the latest version of a plugin into your local project:
cursorist plugin upgrade --org acme --team engineering --plugin my-starterThis:
- Fetches the latest stable (non-prerelease, non-yanked) version
- Downloads all assets
- Updates local files and
.cursor-plugin/plugin.jsonwith the new version - Skips if already up to date
Summary
| Step | Command |
|---|---|
| 1. Authenticate | cursorist login |
| 2. Initialize | cursorist plugin init |
| 3. Validate | cursorist plugin validate |
| 4. Deploy | cursorist plugin deploy --org X --team Y --plugin Z |
| 5. Verify | cursorist plugin list --org X --team Y |
| 6. Upgrade | cursorist plugin upgrade --org X --team Y --plugin Z |