Skip to main content
Claude Code has two complementary extension systems: plugins for installing new capabilities, and skills for packaging reusable workflows. Both can be contributed by the community and loaded at runtime.

Plugin system

Location: src/plugins/, src/services/plugins/ Plugins are installable packages that extend Claude Code with new tools, commands, and prompts. They can be installed from a marketplace or loaded from disk.

Structure

Plugin loader

src/services/plugins/Discovers, downloads, and initializes plugins at startup or on-demand.

Built-in plugins

src/plugins/builtinPlugins.tsPlugins that ship with Claude Code and are always available.

Bundled plugins

src/plugins/bundled/Plugin code bundled directly into the Claude Code binary.

Plugin types

src/types/plugin.tsTypeScript types defining the plugin API surface.

Plugin lifecycle

1

Discovery

The plugin loader scans configured plugin directories and the marketplace for available plugins.
2

Installation

Plugins are downloaded and registered via the /plugin command.
3

Loading

Plugins are initialized at startup or loaded on-demand when first needed.
4

Execution

Active plugins contribute tools, slash commands, and prompts to the running session.
5

Auto-update

The usePluginAutoupdateNotification hook monitors for plugin updates and notifies the user when newer versions are available.

Commands

CommandPurpose
/pluginInstall, remove, or manage plugins
/reload-pluginsReload all currently installed plugins

Skill system

Location: src/skills/ Skills are reusable, named workflows that bundle prompts and tool configurations for specific tasks. They are invoked by name and execute a predefined sequence of prompts and tool calls.

Structure

Bundled skills

src/skills/bundled/The 16 skills that ship with Claude Code.

Skill loader

src/skills/loadSkillsDir.tsLoads skills from disk, supporting both bundled and user-created custom skills.

MCP skill builders

src/skills/mcpSkillBuilders.tsCreates skills dynamically from MCP resources, bridging the MCP and skill systems.

Skill registry

src/skills/bundledSkills.tsCentral registration of all bundled skills. Custom skills are merged at load time.

Bundled skills

Claude Code ships with 16 bundled skills:
SkillPurpose
batchBatch operations across multiple files
debugDebugging workflows
loopIterative refinement loops
simplifySimplify complex code
verify / verifyContentVerify code correctness
SkillPurpose
rememberPersist information to memory
updateConfigModify configuration programmatically
keybindingsKeybinding configuration
SkillPurpose
scheduleRemoteAgentsSchedule agents for remote execution
claudeApiDirect Anthropic API interaction
claudeInChromeChrome extension integration
SkillPurpose
stuckGet unstuck when blocked
skillifyCreate new skills from existing workflows
loremIpsumGenerate placeholder text

Invoking skills

Skills can be invoked in two ways:
The SkillTool allows Claude to invoke skills as part of a tool-call loop. The LLM can select and run a skill by name.
Tool: SkillTool
Input: { "skill": "debug", "context": "..." }

Creating custom skills

Users can create custom skills by adding skill files to the skills directory. The skill loader (loadSkillsDir.ts) merges custom skills with the bundled registry at startup.
Use the skillify bundled skill to turn a workflow you’ve already developed in a session into a reusable custom skill.

Build docs developers (and LLMs) love