# Write Voyager Plugin

Voyager plugin authoring: write and check a local plugin (a JSON manifest plus CSS) for...

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

## Install

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

## Description

Voyager plugin authoring: write and check a local plugin (a JSON manifest plus CSS) for the Voyager browser extension. Use when the user wants to change how Gemini, AI Studio, ChatGPT, Claude, DeepSeek or Kimi looks or is laid out through Voyager; to add a small feature Voyager ships as a primitive (copy button, word count, collapse, diagrams, draft save, Ctrl+Enter send, timeline); or to check or fix a plugin that fails to import.

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

# Write a Voyager plugin

Voyager is a browser extension for AI chat sites. A local plugin is a declarative JSON manifest (plugin.json) plus CSS that restyles or rearranges a chat page through reversible page changes. It runs no code of its own: Voyager checks it strictly on import, applies it, and removes every change when the plugin is turned off.

This skill is generated from Voyager’s plugin engine 1.11.0. The latest copy is at https://voyager.nagi.fun/skills/write-voyager-plugin/SKILL.md.

## Files to read

This skill is split into files. The links below are relative to this SKILL.md; when a file is not beside it (you read this over the web, or only SKILL.md was saved), fetch it from https://voyager.nagi.fun/skills/write-voyager-plugin/<path>.

- Before you write or fix a plugin, read the site file of every site it targets. It has the URL patterns "matches" must use, the semantic anchors the site declares, which primitives run there and the site’s caveats:
  - Gemini: [sites/gemini.md](sites/gemini.md)
  - AI Studio: [sites/aistudio.md](sites/aistudio.md)
  - ChatGPT: [sites/chatgpt.md](sites/chatgpt.md)
  - Claude: [sites/claude.md](sites/claude.md)
  - DeepSeek: [sites/deepseek.md](sites/deepseek.md)
  - Kimi: [sites/kimi.md](sites/kimi.md)
- Read [primitives.md](primitives.md) when the request needs behavior that CSS and the four page changes cannot give: copy buttons, counters, collapsing long content, diagrams (Mermaid, ECharts, WaveDrom), saving drafts, send shortcuts, a conversation timeline, formula copy, Vim input or rendering the user’s own LaTeX. Always read it before answering NOT POSSIBLE.

## Workflow

The rest: https://github.com/voyager-crew/voyager/blob/HEAD/docs/public/skills/write-voyager-plugin/SKILL.md
