Claude Code Extensions: A Beginner’s Guide
Published:
1. What Is Claude Code
Claude Code is Anthropic’s AI coding assistant. Inside VS Code it lives as a sidebar chat panel — install the “Claude Code” extension from the marketplace and it appears. The big difference from a regular ChatGPT browser tab is this: it can directly read files on your machine, edit code, and run commands. Tell it “plot this dataset and save it under figures/” and it will actually create the file.
But out of the box, Claude is a generalist. When you do scientific data analysis, you’d like it to know certain conventions (e.g. always use constrained_layout=True when plotting, format citations in Nature style), and by default it doesn’t. Extensions are how you teach it those conventions.
There are three kinds of extension: Skill, Plugin, and Agent (sub-agent).
2. What Skill / Plugin / Agent Actually Are
2.1 Skill = a cheat sheet
A skill is, fundamentally, a single Markdown file (named SKILL.md). The top of the file says “use me when X happens”; below that you write the rules Claude should follow once activated.
Concrete example. A skill called matplotlib:
---
name: matplotlib
description: Activate when the user wants to plot with matplotlib
---
# Rules
1. Always set dpi=300
2. Always use constrained_layout=True
3. Prefer ax.plot() over plt.plot()
4. Use Arial as the font
What does installing it do? Nothing visible — the file just sits at ~/.claude/skills/matplotlib/SKILL.md.
Then one day you say “make a histogram of rainfall” — Claude sees that the matplotlib skill’s description matches, only then loads the rules, and follows them while plotting. If you ask a SQL question instead, the skill stays closed and costs nothing.
Key point: because skills auto-activate by description, having 50 of them installed doesn’t slow Claude down. It’s like a cookbook on a shelf — Claude opens only the page it needs.
2.2 Plugin = a box of skills (and other stuff)
A skill is one Markdown file. But sometimes someone writes a coordinated set of 20 skills and wants to share them — handing 20 folders around individually is annoying, so they package the whole thing into a “box” called a plugin.
Besides skills, a plugin can contain:
- Slash commands: type
/somethingin the chat box to invoke - Sub-agents: see below
- Hooks: scripts that run automatically at certain moments (“save a log when the session ends”)
- MCP servers: let Claude talk to external tools (databases, APIs, etc.)
superpowers is a typical plugin — it ships about 15 skills around “disciplined workflows” plus one code-review sub-agent.
Plugins are distributed through “marketplaces” and installable with one command.
2.3 Agent / Sub-agent = a separate Claude you dispatch
The Claude you chat with in VS Code is the “main Claude”. Its memory is finite — chat too much and the early messages get squeezed out (context overflow).
A sub-agent is a separate Claude process. You (or main Claude itself) can dispatch a focused task to it: “search these 5,000 files for any use of runoff_coefficient.” The sub-agent does the search in its own head, then reports back just the conclusion: “found 8 hits, here are the file paths.” Main Claude never has to read the 5,000 files, so its context stays clean.
Some sub-agents are built into Claude Code (e.g. Explore for codebase search, Plan for designing an approach); others come from plugins (e.g. code-reviewer from superpowers). You usually don’t dispatch them by name — Claude picks the right one when a task fits.
How they fit together
Plugin (the box)
├── Skill A
├── Skill B
├── Skill C
├── Slash command /xxx
├── Sub-agent
└── Hook
- Skill is the smallest unit — one Markdown file, works on its own.
- Plugin is a delivery format — bundles multiple skills (and other things) into one package.
- Agent is a runtime concept — a separate Claude instance dispatched on demand.
They aren’t competing alternatives; they stack.
3. CLAUDE.md: A “Project Manual” for Claude
The skills above are cheat sheets that open on demand. CLAUDE.md is different — Claude reads it at the start of every session. Whatever you put in it is effectively “no matter what we talk about, you must remember this.”
It comes in three layers, narrowing in scope:
| Path | Scope | What to put in it |
|---|---|---|
~/.claude/CLAUDE.md | All projects on your machine | Who you are, your usual conda environment, whether Claude should reply in Chinese or English |
<project root>/CLAUDE.md | Only this project, tracked in git | Code style for this project, common commands, project-specific conventions |
<subdirectory>/CLAUDE.md | Only when working in that subdirectory | frontend/CLAUDE.md for frontend rules, backend/CLAUDE.md for backend rules |
A reasonable project-level CLAUDE.md typically covers these categories:
# Project Background
- A Python data-analysis project for time series
- Main entrypoint: src/pipeline.py, config under config/
# Common Commands
- Run tests: pytest tests/
- Format: ruff format
- Install deps: uv sync
# Code Conventions
- Use pandas, not polars (the team isn't familiar yet)
- Add type hints on public functions; private ones are optional
- Don't write long docstrings — short code is its own documentation
# Don't Touch
- Files in data/raw/ (read-only, produced by upstream ETL)
- The "Contributors" section in README.md
Once you save it, you don’t need to do anything else — Claude reads it automatically the next session.
Difference from skills: CLAUDE.md is always loaded and always uses some context budget; a skill only does so when its description matches. So CLAUDE.md is the place for hard rules that always apply, and skills are the place for situational know-how. A CLAUDE.md that grows too long will eat into Claude’s working memory — keep it under a few hundred lines.
Helper tool: ClaudeForge is a CLI that generates and audits CLAUDE.md files, scoring them on completeness, length, specificity, formatting, and modularity. If you don’t know where to start, let it produce a draft.
4. How to Install in VS Code
Installing a Plugin
Open the Claude Code panel in VS Code and type slash commands in the chat box (not the terminal):
/plugin marketplace add <owner/repo> # First time: register the marketplace
/plugin install <plugin-name>@<marketplace-name> # Install the plugin
/reload-plugins # Activate without restarting
Example — installing superpowers:
/plugin marketplace add obra/superpowers
/plugin install superpowers@superpowers
/reload-plugins
You can also just type /plugin to open the GUI and pick visually.
Installing a Skill
No commands needed — just drop a folder into ~/.claude/skills/. For example:
~/.claude/skills/
├── matplotlib/
│ └── SKILL.md
├── pymc/
│ └── SKILL.md
Next time you open Claude Code, they’re live.
If you want a skill scoped to a single project, drop it in <project root>/.claude/skills/ instead.
Connecting to a Remote Workstation
If your data and code live on a remote machine (a lab workstation, a campus HPC node, a cloud VM), Claude Code should run on the remote side, not on your laptop — otherwise it can read your local notes but can’t touch the actual data or run your jobs.
Standard setup:
- In VS Code, install the Remote - SSH extension and connect to your workstation (
Ctrl+Shift+P→Remote-SSH: Connect to Host). - Once connected, the bottom-left of VS Code shows
SSH: <hostname>. Open the Extensions panel and install Claude Code into the remote host (VS Code will offer this explicitly, with a button labeledInstall in SSH: <hostname>). - From now on, Claude Code reads files, runs Python, and executes shell commands on the workstation, not on your laptop. Your laptop is just the screen.
5. Recommended Skills
Here are two examples to give you a feel for what skills look like. The full scientific skill pack (22 skills covering writing, statistics, visualization, geospatial, etc.) comes from K-Dense-AI/claude-scientific-skills — go there and pick the ones that match your day-to-day work.
| Category | Skill | Description |
|---|---|---|
| Data exploration | exploratory-data-analysis | Standard playbook when you get a new dataset: missing values, distributions, correlations, outliers |
| Visualization | matplotlib | Publication-quality figure conventions (dpi, fonts, layout, colors) |
One command to install the whole scientific skill pack:
npx skills add K-Dense-AI/scientific-agent-skills
6. Recommended Plugins
| Plugin | Description | Repo |
|---|---|---|
claude-mem | Gives Claude long-term memory across sessions, so you don’t re-explain your project every time | github.com/thedotmack/claude-mem |
superpowers | Forces Claude through a “discuss → plan → TDD → review” workflow, ideal for non-trivial changes | github.com/obra/superpowers |
Installation is the same for both:
/plugin marketplace add <owner/repo>
/plugin install <name>@<marketplace>
/reload-plugins
7. How a Newcomer Should Get Started
- Install the Claude Code VS Code extension (search “Claude Code” in the marketplace).
- Sign in with an Anthropic account, or set up an API key.
- Try plain Claude Code first — open a project, let it read code and edit files, get used to the conversation rhythm. Two or three days is enough.
- Write a
~/.claude/CLAUDE.md— put in who you are, your environment, and what Claude should not do. This step pays off faster than installing plugins. - Then install a plugin —
superpowersis the recommended first one; it quietly makes Claude work more reliably. - Finally pick skills — go through the K-Dense-AI repo and pick the high-frequency ones for your work. For data analysis, install
exploratory-data-analysis+matplotlib+scientific-visualizationfirst; the impact is most noticeable.
Don’t install everything on day one — too many skills make Claude hesitate when picking which to use.
8. Official Documentation
- Overview: https://docs.claude.com/en/docs/claude-code/overview
- Skills: https://docs.claude.com/en/docs/claude-code/skills
- Plugins: https://docs.claude.com/en/docs/claude-code/plugins
- Plugin marketplaces: https://docs.claude.com/en/docs/claude-code/plugin-marketplaces
- Sub-agents: https://docs.claude.com/en/docs/claude-code/sub-agents
- CLAUDE.md (memory and project instructions): https://docs.claude.com/en/docs/claude-code/memory
