Agent skill

Nekocap Extension Messaging

by nopol10 in nopol10/nekocap

A skill your agent uses when modifying communication between the extension's background, content, popup, or canvas-iframe processes — adding or renaming a ChromeMessageType, changing the manifest's…

GPL-3.0Auto-check passedMedia & Creative

Install Nekocap Extension Messaging

skills CLI
$ npx skills add nopol10/nekocap --skill nekocap-extension-messaging -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install nopol10/nekocap nekocap-extension-messaging --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/nopol10/nekocap.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/nekocap-extension-messaging .claude/skills/nekocap-extension-messaging && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
nekocap-extension-messaging
GitHub stars
105
Token cost
~1.4k tokens
SKILL.md length
587 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
GPL-3.0

At a glance

A skill your agent uses when modifying communication between the extension's background, content, popup, or canvas-iframe processes — adding or renaming a ChromeMessageType, changing the manifest's…

  • Works in 5 steps: Add the entry to the appropriate enum in… → Define its payload — either extend… → Add the handler. Background hub:… → …
  • Modifying communication between the extensions background
  • SKILL.md covers The message contract lives in…, Adding a new message — 5 steps, Renaming or removing a message and MV3 CSP is restrictive, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Nekocap Extension Messaging is an agent skill from nopol10/nekocap. Use when modifying communication between the extension's background, content, popup, or canvas-iframe processes — adding or renaming a ChromeMessageType, changing the manifest's content-script matches, adding a new video platform, or anything touching MV3 CSP / cross-browser (Chrome vs Firefox) behavior.

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Media & Creative. The repository describes itself as: Browser extension for creating & uploading community captions for YouTube, niconico and other video sharing sites. The licence is GPL-3.0.

When your agent uses it

  • Modifying communication between the extensions background
  • Canvas-iframe processes — adding
  • Renaming a ChromeMessageType
  • Changing the manifests content-script matches

Example prompts

  • “/nekocap-extension-messaging”

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Add the entry to the appropriate enum in src/common/types.ts.
  2. Define its payload — either extend ChromeMessage (loose typing) or add a variant to the discriminated union that fits (e.g…
  3. Add the handler. Background hub: src/extension/background/index.tsx. Content: src/extension/content/index.tsx. Popup…
  4. Add the sender in whichever process initiates the message.
  5. If the message participates in a Redux flow that touches persisted state, verify the state shape still serializes cleanly through…

What it can do on your machine

Read from SKILL.md and the folder at commit cf47362. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are typescript).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Nekocap Extension Messaging loads about 1.4k tokens when it runs. Until then it costs about 83 tokens; SKILL.md has 587 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~83
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from nopol10/nekocap at commit cf47362, republished under its GPL-3.0 licence (© nopol10). 587 words, ~1,367 tokens.

Download SKILL.mdSave it as .claude/skills/nekocap-extension-messaging/SKILL.md (or your agent's skills folder).
name
nekocap-extension-messaging
description
Use when modifying communication between the extension's background, content, popup, or canvas-iframe processes — adding or renaming a ChromeMessageType, changing the manifest's content-script matches, adding a new video platform, or anything touching MV3 CSP / cross-browser (Chrome vs Firefox) behavior.

This skill covers the contract between the four extension processes (background, content, popup, canvas iframe) and the Manifest V3 / cross-browser constraints around them.

The message contract lives in src/common/types.ts

ChromeMessageType is the enum that names every message that crosses a process boundary. The current set:

ts
enum ChromeMessageType {
  Route,
  GetProviderType,
  GetTabId,
  ContentScriptUpdate,
  SaveFile,
  RawCaption,
  InfoMessage,
  GetContentScriptVariables,
  Request,                  // XMLHttpRequest proxied via background
  ProviderRequest,          // BackendProvider call proxied via background
  VideoIframeToBackground,
  VideoIframeToContent,
}

Plus ParentToCanvasIframeMessageType / CanvasIframeToParentMessageType for the Octopus renderer iframe, and ChromeExternalMessageType (GoogleAuthCredentials) for OAuth completion.

There is no compile-time check that all senders match all receivers. A mismatch fails silently at runtime. Treat changes to this enum like a public API change.

Adding a new message — 5 steps

  1. Add the entry to the appropriate enum in src/common/types.ts.
  2. Define its payload — either extend ChromeMessage (loose typing) or add a variant to the discriminated union that fits (e.g. ParentToCanvasIframeMessage).
  3. Add the handler. Background hub: src/extension/background/index.tsx. Content: src/extension/content/index.tsx. Popup: src/extension/popup/index.tsx. Canvas iframe: src/extension/content/canvas-iframe/.
  4. Add the sender in whichever process initiates the message.
  5. If the message participates in a Redux flow that touches persisted state, verify the state shape still serializes cleanly through reduxed-chrome-storage (see the nekocap-redux-feature skill).

Renaming or removing a message

Search every directory for the old name: background/, content/, popup/, canvas-iframe/, and src/common/. A missed sender will silently no-op — the receiver just won't fire. Lint and type errors will not catch this.

MV3 CSP is restrictive

extension_pages CSP allows only 'self', *.google.com, and 'wasm-unsafe-eval'. The following silently break the extension on load:

  • CDN-loaded scripts (jsdelivr, unpkg, …)
  • Inline <script> tags
  • eval() or new Function("...")
  • Dynamically imported scripts from any non-self origin

All runtime code must be bundled by Vite (see build-extension.ts). If you need a library, install it via npm so it ends up in the bundle.

Adding a new video platform

A new platform requires both of the following — missing either silently breaks injection:

  1. Processor registry entry — add to src/common/feature/video/utils.ts. This handles platform detection, video element selection, time/duration access, etc.
  2. Content-script matches — add the URL pattern to content_scripts[].matches in both extension-statics/manifest-chrome.json and extension-statics/manifest-firefox.json. The CSS-at-document-start and JS-at-document-end pair must both target the new pattern.

Optional: a URL rewrite in middleware.ts if the platform exposes share/embed URLs you want to redirect to /create.

Show full SKILL.md (235 more words)Show less

Cross-browser notes

  • Manifests are templated per target in extension-statics/manifest-<target>.json and combined by build-extension.ts.
  • Firefox uses browser_specific_settings.gecko.id = nekocaption@gmail.com.
  • The project does not use webextension-polyfill — it calls the chrome.* namespace directly. Firefox supports chrome.* aliases for the APIs in use.
  • Firebase auth uses the firebase/auth/web-extension entry point for both browsers.

No Sentry on the extension

Sentry is only configured for the Next.js web app. Errors thrown in background/, content/, popup/, or canvas-iframe/ are not reported anywhere — they only land in the devtools console. Be conservative about throwing across process boundaries; prefer returning error payloads in the message response.

When you change X, also check Y

If you change…Also verify…
ChromeMessageType enumEvery sender and handler across all four extension processes still matches
A message payload shapeBoth serialization (sender side) and deserialization (handler side) updated
Content-script match listBoth manifest-chrome.json AND manifest-firefox.json updated
Add a video platformBoth the processor registry AND the manifest matches updated
Add a new CSP-restricted dependencyIt's bundled by Vite, not loaded from a CDN

Anti-patterns

  • Don't introduce eval, new Function, inline scripts, or CDN imports — MV3 CSP will block them.
  • Don't rename a ChromeMessageType value without a full repo-wide grep for the old name.
  • Don't update only one manifest template — Chrome and Firefox must stay in sync.
  • Don't install webextension-polyfill — the project uses raw chrome.* deliberately.
  • Don't throw uncaught errors in background/ / content/ — they vanish silently. Return an error payload.

© nopol10, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/nekocap-extension-messaging of nopol10/nekocap.

Open the folder on GitHubat commit cf47362

Compare with similar skills

Nekocap Extension Messaging next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Nekocap Extension Messaging compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Nekocap Extension Messaging this skillnopol10/nekocap105—~1.4kAutomated safety check: PassGPL-3.0
Guizang Social Cardsop7418/guizang-social-card-skill7.4k1 repos~7.8kAutomated safety check: PassAGPL-3.0
Weekly Changelog Videoheygen-com/hyperframes60k—~3.3kAutomated safety check: PassApache-2.0
Anthropic Brand Stylinganthropics/skills180k30 repos~559Automated safety check: PassApache-2.0
MoneyPrinterTurbo Video Generatorharry0703/MoneyPrinterTurbo129k—~2.1kAutomated safety check: WarnMIT
HyperFrames Media Useheygen-com/hyperframes60k—~2.4kAutomated safety check: PassApache-2.0

Similar skills

  • Guizang Social Cards

    op7418/guizang-social-card-skill

    Produces social card sets for Xiaohongshu and WeChat: carousels, Live Photo motion cards and puzzle layouts, and WeChat cover pairs, rendered from single-file HTML.

    7.4k GitHub starsUsed in 1 repo~7.8k tokens
    Media & CreativeAuto-check passed
  • Weekly Changelog Video

    heygen-com/hyperframes

    Turns a weekly changelog markdown file into a branded HyperFrames video with voiceover, animated mock-UI scenes and captions, using fonts, background and scripts bundled in the skill.

    60k GitHub stars~3.3k tokensUpdated today
    Media & CreativeAuto-check passed
  • Anthropic Brand Styling

    anthropics/skills

    Official

    Applies Anthropic's brand colors and fonts to artifacts such as PowerPoint slides, using fixed hex values for text and accents, Poppins headings and Lora body text.

    180k GitHub starsUsed in 30 repos~559 tokens
    Media & CreativeAuto-check passed
  • MoneyPrinterTurbo Video Generator

    harry0703/MoneyPrinterTurbo

    Installs and runs MoneyPrinterTurbo to turn a topic or script into a finished short video with voice-over, subtitles, stock footage and music.

    129k GitHub stars~2.1k tokensUpdated today
    Media & CreativeAuto-check: warnings
  • HyperFrames Media Use

    heygen-com/hyperframes

    Finds, generates and edits media for HyperFrames video projects: music, sound effects, images, icons, logos, voiceovers, captions and color grades.

    60k GitHub stars~2.4k tokensUpdated today
    Media & CreativeAuto-check passed
  • Holo Card Studio

    EverettFish/holo-card-studio

    Create collectible holographic foil cards and two-image lenticular flip cards with AI-generated full-color ukiyo-e and colored sumi-e anime artwork, layered Blender scenes, renders, GLB export, and…

    1.9k GitHub stars~1.4k tokensUpdated 18 days ago
    Media & CreativeAuto-check passed

More from nopol10/nekocap

  • Nekocap Data Fetching

    nopol10/nekocap

    A skill your agent uses when adding or modifying an API call, RTK Query endpoint, BackendProvider method, or any code that talks to the nekocap backend.

    105 GitHub stars~937 tokensUpdated 7 days ago
    Auto-check passed
  • Nekocap Forms I18n

    nopol10/nekocap

    A skill your agent uses when building or modifying a form, binding inputs, adding validation, or adding/changing any user-facing string in the nekocap frontend.

    105 GitHub stars~1.1k tokensUpdated 7 days ago
    Auto-check passed
  • Nekocap Redux Feature

    nopol10/nekocap

    A skill your agent uses when adding or modifying a Redux feature folder in the nekocap frontend — creating slices, writing sagas, defining selectors, changing persisted state shape, or touching…

    105 GitHub stars~939 tokensUpdated 7 days ago
    Auto-check passed
  • A skill your agent uses when working on Next.js routing/middleware, error handling, Sentry/logging, user-facing notifications, performance-sensitive paths (Octopus subtitle renderer, large lists…

    105 GitHub stars~1.4k tokensUpdated 7 days ago
    Auto-check passed

Questions about Nekocap Extension Messaging

What does Nekocap Extension Messaging do?

A skill your agent uses when modifying communication between the extension's background, content, popup, or canvas-iframe processes — adding or renaming a ChromeMessageType, changing the manifest's…. Nekocap Extension Messaging is an agent skill from nopol10/nekocap. Use when modifying communication between the extension's background, content, popup, or canvas-iframe processes — adding or renaming a ChromeMessageType, changing the manifest's content-script matches, adding a new video platform, or anything touching MV3 CSP / cross-browser (Chrome vs Firefox) behavior.

When should I use Nekocap Extension Messaging?

Nekocap Extension Messaging fits situations like: modifying communication between the extensions background; canvas-iframe processes — adding; renaming a ChromeMessageType; changing the manifests content-script matches.

How do I install Nekocap Extension Messaging in Claude Code?

Run `npx skills add nopol10/nekocap --skill nekocap-extension-messaging -a claude-code`. Or copy the skill folder (.agents/skills/nekocap-extension-messaging in nopol10/nekocap) into .claude/skills/nekocap-extension-messaging in your project. Claude Code loads it when a task matches its description.

How do I install Nekocap Extension Messaging in Codex?

Run `npx skills add nopol10/nekocap --skill nekocap-extension-messaging -a codex`. Or copy the skill folder (.agents/skills/nekocap-extension-messaging in nopol10/nekocap) into .agents/skills/nekocap-extension-messaging in your project. Codex loads it when a task matches its description.

Can I use Nekocap Extension Messaging in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nopol10/nekocap --skill nekocap-extension-messaging -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/nekocap-extension-messaging, .gemini/skills/nekocap-extension-messaging, .github/skills/nekocap-extension-messaging and .opencode/skills/nekocap-extension-messaging in your project.

What does Nekocap Extension Messaging need to run?

SKILL.md names no scripts, command-line tools or credentials: Nekocap Extension Messaging is instructions for the agent only.

Does Nekocap Extension Messaging access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Nekocap Extension Messaging safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Nekocap Extension Messaging use?

Nekocap Extension Messaging is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Nekocap Extension Messaging use?

About 1.4k tokens (SKILL.md is roughly 5.5k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Nekocap Extension Messaging?

Skills that share tags, products or a category with Nekocap Extension Messaging: Guizang Social Cards (op7418/guizang-social-card-skill, 7.4k stars), Weekly Changelog Video (heygen-com/hyperframes, 60k stars), Anthropic Brand Styling (anthropics/skills, 180k stars) and MoneyPrinterTurbo Video Generator (harry0703/MoneyPrinterTurbo, 129k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Nekocap Extension Messaging?

nopol10 (a GitHub user) maintains it in nopol10/nekocap, which has 105 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 3, 2026.

Source: nopol10/nekocap on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.