There is no fixed number. Claude Code always lists every installed skill's name, fits the descriptions into a budget of 1% of the model's context window, and drops the descriptions of the skills you use least when that budget overflows. A skill's full text loads only when it is used. In seven proofs run on October 24, 2026, loading a skill added between 683 and 44,105 input tokens.
What does a loaded skill cost?
Use This Skill proves skills side by side: the same brief, three runs without the skill and three with it, on the same model (claude-opus-5-5). The proof records the input tokens, output tokens and time of every run in data/proofs.json. Seven proofs from October 24, 2026 have those numbers. The difference in input tokens between the two sides is the cost of the skill's text.
| Skill | SKILL.md | All Markdown and text in the folder | Input tokens added by the skill | Median time, without → with | Median output tokens, without → with |
|---|---|---|---|---|---|
| grilling | 2,037 characters | 2,037 characters (1 file) | 683 | 242 → 216 seconds | 27,322 → 23,086 |
| tdd | 3,621 | 7,316 (3 files) | 2,612 | 230 → 138 seconds | 27,884 → 16,704 |
| improve-codebase-architecture | 5,998 | 12,632 (2 files) | 4,744 | 265 → 232 seconds | 32,503 → 28,181 |
| prototype | 2,923 | 15,868 (3 files) | 5,265 | 219 → 140 seconds | 25,221 → 16,994 |
| triage | 6,558 | 19,149 (3 files) | 6,758 | 146 → 155 seconds | 17,079 → 18,159 |
| design-taste-frontend | 38,420 | 330,781 (13 files) | 42,743 | 173 → 266 seconds | 20,057 → 27,543 |
| ui-styling | 10,943 | 207,522 (38 files) | 44,105 | 224 → 249 seconds | 26,788 → 29,305 |
Tokens and times from data/proofs.json (proofs of October 24, 2026, three runs a side, medians). Character counts read on October 30, 2026 from each repository at the commit the proof used. The proof script caps the skill text at 120,000 characters, so the last two proofs loaded the first 120,000 characters of their folders, SKILL.md first.
Two things stand out. First, the size of a skill varies by a factor of 65 in this small set. Second, for most skills the reference files are larger than SKILL.md itself: ui-styling's SKILL.md is 10,943 characters, but its folder holds 207,522 characters of Markdown and text.
The proofs load SKILL.md and every Markdown and text file in the folder at once, so these numbers are the cost of the whole folder. Claude Code works differently, as the next section explains, which is why it can keep many skills installed.
How does Claude Code decide what to load?
Claude Code's documentation describes three layers:
- The listing, on every turn. Every skill's name and description sit in context so Claude knows what is available. "Every skill in the skill listing adds to your context on every turn, whether or not Claude ever uses it." Description and
when_to_usetogether are cut at 1,536 characters. - SKILL.md, when used. When you or Claude invoke a skill, its rendered SKILL.md "enters the conversation as a single message and stays there across later turns." Invoking it again with unchanged content adds a short note, not a second copy.
- Supporting files, when needed. Large reference files do not need to load every time the skill runs; SKILL.md tells Claude what each file contains and when to load it. The documentation advises keeping SKILL.md under 500 lines and moving detailed reference material to separate files.
So the ui-styling skill above would cost Claude Code its description on every turn, its 10,943-character SKILL.md once you use it, and its reference files only if Claude opens them.
What happens when you install too many skills?
The listing has a budget. Claude Code's documentation says it "scales at 1% of the model's context window," that it "always contains every skill name," and that when it overflows, "Claude Code drops descriptions starting with the skills you invoke least, so the skills you use most keep their full text." A skill that loses its description can still be called by name, but Claude no longer has the keywords to match it to a request.
| Agent | Budget for the skill list | When it overflows | Full skill loads |
|---|---|---|---|
| Claude Code | Scales at 1% of the model's context window; each entry cut at 1,536 characters | Drops descriptions of the least-invoked skills first; every name stays | When invoked, and stays in the conversation |
| Codex | At most 2% of the context window, or 8,000 characters if the window is unknown; skills.max_context_tokens up to 10,000 tokens |
Shortens descriptions first, then may omit skills and show a warning | When Codex selects the skill |
| Cursor | No limit stated | Not stated | Resources load on demand; with disable-model-invocation: true, only when you type /skill-name |
Each row checked on the agent's official documentation on October 30, 2026; links in the sources below.
How many descriptions fit in that budget?
It depends on your model and your descriptions, so the documentation gives a share of context, not a number of skills. Our crawl gives a sense of the size. Across the 2,056 skills in the October 26, 2026 crawl (data/skills.json, 48 repositories), the median name plus description is 187 characters. One repository, ComposioHQ/awesome-claude-skills, holds 864 skills built from one short template; outside it, the median is 258 characters.
In the five proofs whose folders were not capped, the skill text came to between 2.7 and 3.0 characters per input token. At that rate a median description costs roughly 60 to 95 tokens. Codex's documented fallback of 8,000 characters would hold about 30 to 40 descriptions of median length before file paths and formatting are counted. For Claude Code, 1% of a 200,000-token window is 2,000 tokens, which at the same rate is room for roughly 20 to 30 median descriptions; a window five times larger holds about five times as many. These are estimates from our data, not Claude Code's own formula. Run /doctor in Claude Code for its estimate of your listing's cost.
Do skills slow Claude Code down?
The listing itself is small, and the proofs suggest that what changes the time is how much the model writes. With the skill, the median run was faster in four of the seven proofs. In all seven, the time moved in the same direction as the output: tdd cut output from 27,884 to 16,704 tokens and time from 230 to 138 seconds, while design-taste-frontend raised output from 20,057 to 27,543 tokens and time from 173 to 266 seconds.
These proofs are single API calls with no tools and three runs a side, not full Claude Code sessions, so they do not measure how a long session behaves. They do show that a skill's text costs input tokens once it loads, and that a skill can save more time than it costs when it makes the model write less. The methodology page describes the setup, and every proof is on the proven page.
What happens to skills when the conversation is compacted?
Claude Code's documentation says auto-compaction re-attaches the most recent invocation of each skill after the summary, "keeping the first 5,000 tokens of each," with a combined budget of 25,000 tokens filled from the most recently used skill. If you have used many skills in one session, older ones can be dropped entirely. Put the instructions that matter most near the top of SKILL.md, and invoke a skill again if Claude stops following it after compaction.
How do I keep a large skill set working?
- See what each skill costs.
/doctorestimates the listing's context cost and its biggest contributors./skill-doctor(Claude Code v2.1.252 or later) reports what each skill costs and how often it is used. - Hide what you rarely use. The
skillOverridessetting takes"on","name-only","user-invocable-only"or"off"per skill. Plugin skills are managed through/plugininstead. - Make manual skills manual.
disable-model-invocation: trueremoves a skill from Claude's context until you type/skill-name, in both Claude Code and Cursor. - Remove duplicates. In our crawl, 23 descriptions appear word for word on 46 skills, mostly the same skill in two repositories. Two copies cost twice and give Claude nothing to choose between.
- Write short, specific descriptions. The guide to writing a SKILL.md description shows what the 2,056 descriptions in the directory do and how to put the trigger early, where shortening cannot remove it.
Before you add more skills, run them through the free skill check, which scans a skill's folder for risky commands. For how skills differ from CLAUDE.md, which loads in every session, see AGENTS.md vs CLAUDE.md vs SKILL.md.
How we measured
Input tokens, output tokens and seconds come from data/proofs.json, written by scripts/prove.mjs: each run is one call to the model, and input tokens include cached tokens. The "added by the skill" column is the median input with the skill minus the median input without it, which also counts a one-line instruction and file labels around the skill text. Character counts are for SKILL.md and for every .md and .txt file under 100 KB in the skill's folder, the same files the proof loads, read at the commit recorded in data/proofs.json. Description lengths come from data/skills.json, which stores the first 400 characters of each description; 76 descriptions reach that limit, so the medians are not affected. The characters-per-token rate divides the folder's characters by the tokens added, for the five proofs that were not capped.