create-plugin

Create Sidecar plugins by implementing the Plugin interface and registering them in cmd/sidecar/main.go.

1.0k|79|Updated Dec 26, 2025
One-click install
npx skills add https://github.com/marcus/sidecar --skill create-plugin-marcus
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: create-plugin
Source: https://github.com/marcus/sidecar/tree/main/.claude/skills/create-plugin
Command: npx skills add https://github.com/marcus/sidecar --skill create-plugin-marcus

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

Provides a structured blueprint to create, integrate, and test new Sidecar plugins by detailing the plugin interface, lifecycle management, and UI rendering considerations. This guide helps plugin authors quickly scaffold, implement, and register plugins within the Sidecar architecture.

Core Features & Use Cases

  • Architecture overview: Bubble Tea model, Registry, Plugin contract, Context, Keymap, and Event Bus.
  • Lifecycle guidance: Registration → Init → Start → Update → View → Focus/Blur → Stop, with degradation and error handling strategies.
  • Interop and rendering notes: external editor integration, error handling, determinism, and layout constraints to ensure stable rendering and predictable hints.
  • Quick Start pattern: steps to scaffold a plugin package, implement the Plugin interface, and wire it into the app for loading.

Quick Start

Create a new internal/plugins/<id>/ directory, implement the plugin.Plugin interface, register it in cmd/sidecar/main.go, and start Sidecar to load your plugin.

Frequently Asked Questions about create-plugin

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a new Sidecar plugin in Go?

To create a new Sidecar plugin in Go, create an internal/plugins directory, implement the plugin.Plugin interface, register it in cmd/sidecar/main.go, and start Sidecar to load your plugin.

What is the lifecycle of a Sidecar plugin?

The Sidecar plugin lifecycle follows the sequence: Registration, Init, Start, Update, View, Focus/Blur, and Stop, with defined degradation and error handling strategies for each phase.

How do I handle UI rendering and keymaps when building a Bubble Tea plugin?

When building a Bubble Tea plugin, handle UI rendering by applying layout constraints and determinism, and integrate keymaps through the Event Bus to ensure stable rendering and predictable hints.

What frontmatter is required for a Sidecar plugin?

A Sidecar plugin requires specific frontmatter, including a name and description, to define its identity and purpose within the Sidecar architecture before initialization.

How do I integrate an external editor into a Sidecar plugin?

You integrate an external editor into a Sidecar plugin by following the specified interop and rendering notes, which ensure stable rendering and predictable behavior during external editor integration.

What architecture components are involved when scaffolding a Sidecar plugin?

Scaffolding a Sidecar plugin involves the Bubble Tea model, Registry, Plugin contract, Context, Keymap, and Event Bus, which collectively manage initialization, view rendering, and cleanup.