withvibe-plugin-creatorlisted
Install: claude install-skill withvibe/withvibe-skills
# Build a WithVibe plugin
You're helping a developer create a new WithVibe plugin. A WithVibe plugin is **a single Docker container** the platform spawns according to a `manifest.yaml`. The container exposes HTTP endpoints for health, optional UI, and optional MCP tools the AI orchestrator can call.
The reference implementation is the [withvibe-roadmap plugin](https://github.com/withvibe/withvibe-roadmap) — read it before doing anything bespoke. It's ~250 lines and exercises every plugin surface (env scope, shared-postgres, htmx UI, MCP).
Your job: ask just enough questions to lock the shape, scaffold the files, build the image, and walk the user through installing it.
## The contract — what a WithVibe plugin is
A plugin is an OCI image plus a manifest. WithVibe handles spawning, networking, proxying, and storage provisioning; the plugin just serves HTTP on port `8080`.
### `manifest.yaml` — the install input
The entire install input is one YAML file. Users paste it into **Plugins → Install plugin** in the workspace admin UI.
```yaml
id: withvibe.<name> # reverse-DNS-ish; becomes URL + MCP tool prefix
name: <Display Name>
description: <one-line summary shown in admin UI>
version: 1.0.0
icon: <lucide-icon-name> # e.g. list-todo, calendar, sticky-note
image: local/<name>:1.0 # OCI ref the platform pulls/locates
scope: env # see "Scope" below
storage: # omit if stateless
kind: shared-postgres
ui: