# Create Voyager Plugin

Creates or changes a Voyager declarative plugin, site adapter, or primitive.

- Repository: https://github.com/voyager-crew/voyager (20524 stars)
- Category: Engineering
- License: GPL-3.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add voyager-crew/voyager --skill create-voyager-plugin -g -a claude-code -y`
Codex: `npx skills add voyager-crew/voyager --skill create-voyager-plugin -g -a codex -y`
Cursor: `npx skills add voyager-crew/voyager --skill create-voyager-plugin -g -a cursor -y`
Gemini CLI: `npx skills add voyager-crew/voyager --skill create-voyager-plugin -g -a gemini-cli -y`

## Description

Create or change a Voyager declarative plugin, site adapter, or native primitive.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Create a Voyager plugin

## Select the path

Read only the matching implementation reference. Paths are relative to `src/features/plugins/`.

| Change                                                 | Reference                                                        | Distribution                                                            |
| ------------------------------------------------------ | ---------------------------------------------------------------- | ----------------------------------------------------------------------- |
| CSS/JSON plugin using DOM ops or an existing primitive | [Declarative plugin](references/declarative.md)                  | `catalog/sites/<site>/plugins/<id>/`; bundled and remote                |
| Site selectors, theme, URL matching or a new site      | [Site adapter](references/site-adapter.md)                       | `catalog/sites/<site>/site.json`; existing-site updates travel remotely |
| Behavior needing events, state or generated DOM        | [Native primitive](references/primitive.md)                      | `verbs/`; packaged executable code, requires an extension release       |
| A native Gemini/AI Studio feature becoming a plugin    | [Official plugin](#convert-a-native-gemini-or-ai-studio-feature) | `builtin/`; packaged only, never in the remote catalog                  |

A new site also requires an extension release: its host is an optional permission the user grants, and the content script is registered dynamically (never a static `content_scripts` or required `host_permissions` entry; see `voyager-contribute`'s [repo-traps.md](../voyager-contribute/references/repo-traps.md)). A primitive needs a declarative plugin that invokes it, so read that reference too when adding the caller.

The rest: https://github.com/voyager-crew/voyager/blob/HEAD/.agents/skills/create-voyager-plugin/SKILL.md
