MyCLI

Plugin guide

Plugin Guide

Plugin layout

plugin-stripe/
  plugin.json
  src/index.ts
  commands/
  templates/
  hooks/
  README.md

plugin.json

{
  "name": "@mycli-cli/plugin-stripe",
  "version": "1.0.0",
  "description": "Stripe payments",
  "main": "dist/index.js",
  "compatibility": ">=1.0.0"
}

Implementing a plugin

import { definePlugin } from '@mycli-cli/plugin-system';

export default definePlugin({
  name: '@mycli-cli/plugin-stripe',
  version: '1.0.0',
  async install(ctx) {
    // generate files, update config
  },
  commands() {
    return [
      {
        name: 'stripe',
        description: 'Stripe helpers',
        handler: async () => {},
      },
    ];
  },
  templates() {
    return ['templates/stripe'];
  },
  dependencies() {
    return { stripe: '^17.0.0' };
  },
});

CLI

my plugin search stripe
my plugin install @mycli-cli/plugin-stripe
my plugin list
my plugin update @mycli-cli/docker
my plugin remove @mycli-cli/plugin-stripe
my plugin publish ./my-plugin --dry-run
my plugin create @mycli-cli/plugin-billing
my plugin search mycli --registry npm
my plugin install @mycli-cli/docker --from npm
my add ai
my ai generate module user --dry-run

Plugin catalog (plugins/plugins.json)

The local marketplace catalog is a JSON file at the repository root:

mycli/
  plugins/
    plugins.json          ← catalog (name, slug, version, compatibility, downloads)
    official/             ← first-party plugins (@mycli-cli/*)
    community/            ← published community plugins
    installed/            ← per-project installs (generated projects)

| Context | Resolved path | |---------|---------------| | Monorepo development | <repoRoot>/plugins/plugins.json | | CLI runtime (bundled) | Resolved via apps/cli paths helper alongside copied templates |

@mycli-cli/registry-manager loads and searches this catalog. @mycli-cli/marketplace-manager orchestrates install/publish and updates the catalog on my plugin publish.

See MARKETPLACE_GUIDE.md for the full Phase 7 marketplace reference.

Official categories

@mycli-cli/auth, @mycli-cli/rbac, @mycli-cli/docker, @mycli-cli/prisma, @mycli-cli/postgres, @mycli-cli/mysql, @mycli-cli/mongodb, @mycli-cli/mariadb, @mycli-cli/sqlite, @mycli-cli/redis, @mycli-cli/sqlserver, @mycli-cli/cockroachdb, @mycli-cli/swagger, @mycli-cli/kubernetes, @mycli-cli/aws, @mycli-cli/azure, @mycli-cli/gcp, @mycli-cli/github, @mycli-cli/railway, @mycli-cli/fly, @mycli-cli/ai

Community example: @community/hello-mycli in plugins/community/hello-mycli/.