Cursorist Docs
CLI

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 login

This opens a browser for GitHub OAuth. On success, tokens are stored in ~/.cursorist/config.json.

Verify your status:

cursorist status

Step 2: Initialize or Validate Plugin

Option A: Start from Scratch

Scaffold a new plugin:

cursorist plugin init

You'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 validate

Validation 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-starter

Optional Overrides

OptionUse Case
--dir ./pathDeploy from a subdirectory
--description "..."Override manifest description
--type conventionsSet plugin type
--stack typescript,reactSet technology stack
--version 1.2.0Override 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,react

Step 4: What Happens Server-Side

When you run cursorist plugin deploy, the CLI:

  1. Reads the manifest from .cursor-plugin/plugin.json and assets from component directories
  2. Resolves organization and team by slug
  3. Creates or updates the plugin record (name, description, type, stack)
  4. Inserts a new row in plugin_versions with the manifest
  5. 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 engineering

Output 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-starter

This:

  • Fetches the latest stable (non-prerelease, non-yanked) version
  • Downloads all assets
  • Updates local files and .cursor-plugin/plugin.json with the new version
  • Skips if already up to date

Summary

StepCommand
1. Authenticatecursorist login
2. Initializecursorist plugin init
3. Validatecursorist plugin validate
4. Deploycursorist plugin deploy --org X --team Y --plugin Z
5. Verifycursorist plugin list --org X --team Y
6. Upgradecursorist plugin upgrade --org X --team Y --plugin Z