Skip to main content
πŸŽ“ Claude Code Masterclass Learn AI-assisted development on Udemy β€” plus the companion book on Leanpub & Amazon. Start Learning
Claude Code skills, plugins, and marketplace ecosystem with Hyperframes, Ponytail, Claude Ads examples
AI

Claude Code Skills & Plugins: The Extensibility Layer

How Claude Code's skills, plugins, and marketplace turn your coding agent into a platform β€” with Hyperframes, Ponytail, and Claude Ads.

LB
Luca Berton
Β· 8 min read

The Problem

Claude Code is powerful out of the box, but every team has unique workflows. You might want to:

  • Run the same code-review checklist on every pull request
  • Generate product demo videos from HTML templates
  • Audit Google and Meta ad accounts automatically
  • Enforce a β€œwrite less code” policy across your engineering org
  • Turn natural-language trading strategies into backtests

These are not features Claude Code ships with. They are extensions β€” and Claude Code’s extensibility layer (skills, plugins, and marketplaces) is what makes this possible without waiting for Anthropic to build it.

The Three Layers

Claude Code’s extensibility has three layers that build on each other:

LayerWhat it isDistributionExample
SkillA single SKILL.md file with instructionsPersonal, project, or plugin folderPonytail, summarize-changes
PluginA package of skills + agents + hooks + MCPVia marketplace or direct repoClaude Ads, Hyperframes
MarketplaceA catalog (marketplace.json) of pluginsShared via git or URLanthropics/skills, AgriciDaniel/claude-ads

You can use just skills (no plugins at all). You can install plugins from other people’s marketplaces. You can build your own marketplace for your team. Each layer is optional, but together they turn Claude Code into a platform.

Layer 1: Skills β€” The SKILL.md File

What is a skill?

A skill is a directory containing a SKILL.md file. The file has two parts:

  1. YAML frontmatter β€” metadata that tells Claude when to use the skill
  2. Markdown instructions β€” the actual guidance Claude follows when the skill runs
---
description: Summarizes uncommitted changes and flags anything risky.
  Use when the user asks what changed, wants a commit message, or asks
  to review their diff.
---

## Current changes

!`git diff HEAD`

## Instructions

Summarize the changes above in two or three bullet points, then list any
risks you notice such as missing error handling, hardcoded values, or tests
that need updating.

The !`git diff HEAD` line uses dynamic context injection β€” Claude Code runs the command and replaces the line with its output before Claude reads the skill content. The instructions arrive with the current diff already inlined.

Where skills live

LocationPathScope
Personal~/.claude/skills/<name>/SKILL.mdAll projects on this machine
Project.claude/skills/<name>/SKILL.mdThis repository only (commit for team sharing)
Plugin<plugin>/skills/<name>/SKILL.mdWherever the plugin is enabled
EnterpriseManaged settings directoryAll users on managed machines

Personal skills travel with you. Project skills travel with the code. Plugin skills travel with the plugin.

Auto vs. manual invocation

Skills can be auto-invoked β€” Claude loads them when the description matches the user’s request β€” or manual β€” you type /skill-name to invoke them directly.

If a skill keeps firing when you don’t want it to, make the description more specific or add disable-model-invocation: true in the frontmatter to force manual-only.

Skills under the hood

Claude Code loads a listing of all available skill names and descriptions into context (sized to ~1% of the model’s context window). When that budget is exceeded, it shortens descriptions starting with your least-used skills. Run /doctor to check the listing’s context cost and find skills worth disabling.

Skills are based on the Agent Skills standard from agentskills.io β€” a cross-tool open standard. A SKILL.md written for Claude Code also works in Codex CLI, OpenCode, Cursor, and other compatible agents.

Layer 2: Plugins β€” Packaging Skills with Other Extensions

What is a plugin?

A plugin is a directory containing:

  • A .claude-plugin/plugin.json manifest (name, version, description)
  • A skills/ folder with one or more SKILL.md files
  • Optionally: agents, hooks, MCP servers, LSP servers

Plugins bundle everything into a single distributable unit. When you install a plugin, you get all its skills, plus any agents and hooks it includes.

Installing a plugin

Two commands:

# 1. Add a marketplace (one-time)
/plugin marketplace add AgriciDaniel/claude-ads

# 2. Install a plugin from that marketplace
/plugin install claude-ads@AgriciDaniel

The first command registers a marketplace from a GitHub repository. The second installs a specific plugin from that marketplace. After installing, run /reload-plugins if Claude says to.

You can also install directly from a repo:

/plugin install user/repo

What plugins can include

A plugin is not just skills. It can also package:

  • Agents β€” specialized subagents with their own instructions and tools
  • Hooks β€” commands that run before/after specific tool use (pre_tool_use, post_tool_use)
  • MCP servers β€” Model Context Protocol servers that extend Claude’s tool set
  • LSP servers β€” Language Server Protocol servers for language-aware autocomplete

The Hyperframes plugin from HeyGen, for example, bundles video-rendering skills plus an MCP server that fetches brand data for video composition.

Plugin caching and isolation

When you install a plugin, Claude Code copies it to a cache directory (except for command source types in link mode, which are used in place). This means plugins can’t reference files outside their directory using relative paths like ../shared-utils. To share files across plugins, use symlinks or restructure the directory.

Layer 3: Marketplaces β€” Distributing to Teams

What is a marketplace?

A marketplace is a marketplace.json file in a .claude-plugin/ directory that lists plugins and where to find them. It’s a catalog β€” users add your marketplace with /plugin marketplace add <source>, then install individual plugins from it.

Creating a marketplace

The structure:

my-marketplace/
β”œβ”€β”€ .claude-plugin/
β”‚   β”œβ”€β”€ marketplace.json        # Catalog of plugins
β”‚   └── plugin.json             # Marketplace manifest (optional)
β”œβ”€β”€ plugins/
β”‚   └── quality-review-plugin/
β”‚       β”œβ”€β”€ .claude-plugin/plugin.json    # Plugin manifest
β”‚       └── skills/quality-review/
β”‚           └── SKILL.md                  # The skill

The marketplace.json:

{
  "name": "company-tools",
  "owner": { "name": "DevTools Team" },
  "plugins": [
    {
      "name": "code-formatter",
      "source": "./plugins/formatter",
      "description": "Automatic code formatting on save",
      "version": "2.1.0"
    },
    {
      "name": "deployment-tools",
      "source": { "source": "github", "repo": "company/deploy-plugin" },
      "description": "Deployment automation tools"
    }
  ]
}

Users add and install with:

/plugin marketplace add ./my-marketplace
/plugin install code-formatter@company-tools

Hosting and distribution

Marketplaces can be hosted on GitHub, GitLab, or any git host. For URL-based marketplaces (downloading just the JSON), plugin entries must use external sources (GitHub, git URL) β€” relative path sources won’t work because Claude Code only downloads the marketplace.json, not the referenced files.

For private marketplaces, set CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS if your repos are large:

export CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS=300000  # 5 minutes

Real Examples: How Six Projects Use the System

Ponytail β€” Minimal Code Enforcement

Repo: DietrichGebert/ponytail (MIT, 132k stars)

Ponytail constrains Claude Code to write less code β€” the best code is the code you never wrote. It works as a plugin with a SessionStart hook that injects its ruleset automatically. Without a hook, Claude Code won’t self-activate the skill β€” you need the hook.

Install:

/plugin marketplace add DietrichGebert/ponytail
/plugin install ponytail@ponytail

A JetBrains benchmark found Ponytail reduces code by ~31% on larger builds. The skill is also available as a raw SKILL.md β€” you can install it without the plugin via git clone into your personal skills directory.

Hyperframes β€” Video from HTML

Repo: heygen-com/hyperframes (Apache 2.0, 47.5k stars)

Hyperframes turns HTML into MP4 video. It’s a plugin that includes a skill directory, an MCP server for brand data, and CLI tooling. Install with:

npx skills add heygen-com/hyperframes

Then ask your agent:

Using /hyperframes, create a 20-second product demo video.

Hyperframes is used in production at HeyGen, with adoption from tldraw and TanStack.

Claude Ads β€” Marketing Audits

Repo: AgriciDaniel/claude-ads (MIT)

Claude Ads is a plugin that packages 250+ ad-audit checks as skills, plus platform-specific subagents that run in parallel across 12 ad platforms. It includes a control plane, evidence tracking, and automated reporting.

Install:

/plugin marketplace add AgriciDaniel/claude-ads
/plugin install claude-ads@AgriciDaniel

The plugin structure includes:

  • ads/ β€” main skill with interface metadata
  • skills/ β€” platform-specific lifecycle skills
  • agents/ β€” subagents for parallel audits
  • claude_ads_core/ β€” typed contracts and scoring

Vibe Trading β€” Quant Research

Repo: HKUDS/Vibe-Trading (MIT)

Vibe Trading ships as a Python package (pip install vibe-trading-ai) with 64 finance skills and 29 swarm presets. Like Hyperframes, it uses the Agent Skills standard β€” a skills/ directory with SKILL.md files that load into Claude Code, Codex, OpenCode, and other compatible agents.

RTK β€” Token Compression

Repo: rtk-ai/rtk

RTK is a CLI proxy installed as a PreToolUse hook. It compresses terminal output before it reaches the model, reducing token consumption by 60–90%. It’s a plugin that works across Claude Code, Codex, and OpenCode via a shared hook system.

Install:

rtk init -g

Building Your Own Skill: A Walkthrough

Step 1: Create the directory

mkdir -p ~/.claude/skills/my-skill

Step 2: Write SKILL.md

---
description: Reviews Python code for common bugs and security issues.
  Use when the user asks for a code review.
---

## Instructions

Review the code I've selected or the files I've mentioned for:
- Security vulnerabilities (SQL injection, XSS, hardcoded secrets)
- Performance anti-patterns (N+1 queries, blocking I/O)
- Error handling gaps (swallowed exceptions, missing retries)
- Type safety issues (untyped function returns, Any types)

Be concise and actionable. Suggest specific fixes.

Step 3: Test it

Ask Claude Code: β€œCan you review this code for bugs?” β€” if the description matches, Claude auto-loads the skill. Or invoke directly:

/my-skill

Step 4: Share it

To share with your team, commit the .claude/skills/ directory to your repo. Or package it as a plugin with a plugin.json manifest and distribute through a marketplace.

The Cross-Tool Standard

The Agent Skills standard (SKILL.md format with YAML frontmatter + markdown instructions) is not Claude Code-specific. It works across:

ToolSkill discovery path
Claude Code~/.claude/skills/, .claude/skills/
Codex CLI.codex/skills/, ~/.codex/skills/
OpenCode.openclaw/skills/, ~/.openclaw/skills/
Cursor.cursor/rules/ (different format, similar purpose)
Gemini CLI.gemini/skills/
Qoder.qoder-plugin/plugin.json

A skill written once can run in multiple agents. The frontmatter fields, description, and dynamic context injection (`!`command`) are part of the standard. Claude Code extensions (hooks, agents, subagent execution) are documented as non-standard.

Best Practices

For skill authors

  1. Put the key use case first in the description β€” Claude Code uses it to decide when to auto-load the skill
  2. Be specific β€” vague descriptions cause over-triggering
  3. Use dynamic context injection (`!`command`) to pull live data into the skill
  4. Keep skills focused β€” one skill, one job. Long reference material costs nothing until used
  5. Test auto-invocation β€” ask a question that should trigger your skill and verify it loads

For plugin authors

  1. Structure your repo with .claude-plugin/plugin.json and skills/ directory
  2. Bump version on every release β€” users only get updates when the version changes
  3. Use command source types for plugins that need to run scripts in place
  4. Handle the 120-second git timeout β€” set CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS for large repos
  5. Document installation with both /plugin marketplace add and /plugin install commands

For marketplace administrators

  1. Use a git-based marketplace if your plugins live in subdirectories (relative paths only work in git clones, not URL downloads)
  2. Bump plugin versions to trigger user updates
  3. Use the renames field to migrate users when you rename or remove plugins
  4. Avoid reserved marketplace names (claude-code-marketplace, anthropic-marketplace, etc.)

The Big Picture

Skills and plugins solve the fundamental tension in AI coding assistants: you want the agent to be powerful and flexible, but you also want it to follow your team’s conventions, enforce your standards, and integrate with your tools.

Rather than building every possible workflow into the core product, Claude Code shipped an extensibility layer and let the community build the rest. The result is a marketplace of skills β€” from Ponytail’s YAGNI enforcement to Hyperframes’ video rendering to Claude Ads’ marketing audits β€” that turns a single coding agent into a platform.


Resources:


Related Articles:

Frequently Asked Questions

What is the difference between a skill and a plugin in Claude Code?

A skill is a single SKILL.md file with instructions that Claude Code loads when relevant or invokes manually with a slash command. A plugin is a packaged bundle that can contain multiple skills, plus agents, hooks, MCP servers, and LSP servers. Plugins are distributed through marketplaces; skills can be personal, project-level, or inside a plugin.

How do I install a skill or plugin in Claude Code?

For skills: clone the repo or create a SKILL.md in ~/.claude/skills/<name>/. For plugins: run `/plugin marketplace add <owner>/<repo>` to register a marketplace, then `/plugin install <plugin>@<marketplace>` to install individual plugins.

Can I build my own plugin for Claude Code?

Yes. Create a directory with a `.claude-plugin/plugin.json` manifest, add skills in a `skills/` directory with SKILL.md files, and optionally include hooks, agents, and MCP servers. You can distribute it via a marketplace.json or share the repo directly.

Is the Agent Skills standard compatible with other AI tools?

Yes β€” the Agent Skills standard (agentskills.io) is cross-tool. A SKILL.md file works in Claude Code, Codex CLI, OpenCode, Cursor, and other compatible agents. Each tool has its own discovery path (.claude/skills/, .codex/skills/, .openclaw/skills/, etc.) but the SKILL.md format is shared.

#Claude Code #Anthropic #AI Agents #Developer Tools #Skills #Plugins #Marketplace #Extensibility
Share:
AI Integration & GPU Platforms

Need help with AI Integration & GPU Platforms?

Need help deploying AI/ML platforms? Get expert consulting on OpenShift AI, GPU orchestration, and MLOps.

Learn more about AI Integration & GPU Platforms

Want to operate this yourself, in production?

Take the free AI Platform Engineer Readiness Scorecard to see which skills transfer β€” then build a production-shaped AI platform in the 4-week Bootcamp.

Take the Scorecard β†’
Luca Berton β€” The Production AI Expert, Docker Captain

Luca Berton

The Production AI Expert Β· Docker Captain Β· KubeCon Speaker

15+ years in enterprise infrastructure. Author of 8 technical books, creator of Ansible Pilot (1M+ YouTube views, 648K site users). Former Red Hat engineer. Speaker at KubeCon EU 2026 and Red Hat Summit 2026.

Free 30-min Production AI consultation

Book Now