TL;DR
Claude agents vs skills, untangled: agents are workers with their own context window, skills are instructions loaded on demand. Here is the decision table.
Direct answer
Claude agents vs skills, untangled: agents are workers with their own context window, skills are instructions loaded on demand. Here is the decision table.
Best for
Developers comparing real tool tradeoffs before choosing a stack.
Covers
Verdict, tradeoffs, pricing signals, workflow fit, and related alternatives.
Read next
Ultracode is two documented things: a prompt keyword that turns one task into a dynamic workflow, and an /effort setting that pairs xhigh reasoning with automatic orchestration. Here is exactly what the docs say.
8 min readClaude Code dynamic workflows turn orchestration into a JavaScript script that runs up to 1,000 agents per run - here is how scripts, schemas, budgets, and resume actually work.
10 min readFable 5 posts an 80.3% SWE-Bench Pro score and costs 2x Opus 4.8 - here is the task-profile scoring guide that tells you when the premium pays off.
7 min readLast updated: June 11, 2026
Type "claude agents" into a search box and autocomplete offers "vs skills" almost immediately. Understandable: both are folders of markdown under .claude/, both have YAML frontmatter with a description field, and both get picked up automatically when Claude decides they are relevant.
They are not the same thing. Anthropic's own comparison table draws the line in four words or fewer: a subagent is "a worker Claude spawns," and a skill is "instructions Claude follows." One is a separate worker with its own context window. The other is a playbook loaded into the conversation you are already having. Once that clicks, every other difference - cost, file format, invocation, composition - falls out of it. Here is the distinction, a head-to-head table, and a decision guide by use case.
Part of the confusion is that "agent" means at least three different things in the Claude ecosystem:
Subagents are workers your Claude Code session spawns for side tasks. Each runs in its own context window with a custom system prompt, its own tool access, and independent permissions. The docs' pitch is precise: use one "when a side task would flood your main conversation with search results, logs, or file contents you won't reference again." The subagent does the messy exploration in its own context and returns only a summary. You define one as a markdown file in .claude/agents/ (project) or ~/.claude/agents/ (personal); only name and description are required. Claude Code also ships built-ins: Explore for fast read-only codebase search, Plan, and a general-purpose agent.
Agent SDK agents are full applications you build with the Claude Agent SDK, which packages "the same tools, agent loop, and context management that power Claude Code" as a Python or TypeScript library. When someone says they "built a Claude agent," this is usually what they mean: a program that calls query() with a prompt and allowed tools, then lets Claude work autonomously. SDK agents can define their own subagents through an agents option, so the two meanings nest. If you are weighing the SDK against the CLI itself, see Claude Agent SDK vs Claude Code.
Agent teams and background agents are Claude Code's larger-scale parallelism surfaces, a separate topic covered in subagents vs agent teams vs workflows.
For the agents-vs-skills question, the first two meanings matter, and they share the defining property: an agent is an executor with its own context, separate from yours.
A skill is a folder containing a SKILL.md file - that is the core of the format, per the Agent Skills open standard Anthropic released and other agent products have adopted. The file holds YAML frontmatter telling Claude when to use the skill, plus markdown instructions to follow when it runs, optionally bundling scripts, templates, and reference docs.
The design center is progressive disclosure, which the standard defines in three stages: at startup the agent loads only each skill's name and description, when a task matches it reads the full SKILL.md into context, and during execution it optionally runs bundled code or loads referenced files. Anthropic's engineering team frames it memorably: "Building a skill for an agent is like putting together an onboarding guide for a new hire."
The economics follow from that design. The Claude Code docs note that "a skill's body loads only when it's used, so long reference material costs almost nothing until you need it" - which is exactly why a procedure that has outgrown CLAUDE.md belongs in a skill. Skills live at ~/.claude/skills/<name>/SKILL.md (personal), .claude/skills/ (project), or inside plugins, and the directory name becomes a slash command: a deploy-staging skill is invocable as /deploy-staging. Custom commands have been merged into this system entirely; .claude/commands/deploy.md and .claude/skills/deploy/SKILL.md both create /deploy and work the same way.
The crucial contrast with agents: when a skill runs, its content enters your current conversation as a message and stays there for the rest of the session. Nothing spawns. No separate context exists. The skill is not a worker; it is the playbook the current worker reads. If you are new to the format, the beginner guide to Claude Code skills walks through building your first one.
Get the weekly deep dive
Tutorials on Claude Code, AI agents, and dev tools - delivered free every week.
From the archive
Jun 11, 2026 • 8 min read
Jun 11, 2026 • 9 min read
Jun 11, 2026 • 9 min read
Jun 11, 2026 • 8 min read
The first two rows come straight from the comparison table in the official workflows doc; the rest are assembled from the subagents and skills pages.
| Subagents (agents) | Skills | |
|---|---|---|
| What it is | A worker Claude spawns | Instructions Claude follows |
| Who decides what runs next | Claude, turn by turn | Claude, following the prompt |
| Context | Own context window, own system prompt | Loads into your current conversation and stays there |
| File format | Markdown in .claude/agents/, name and description required | SKILL.md in .claude/skills/<name>/, all frontmatter optional |
| What comes back | A summary of the work, not the intermediate noise | Nothing comes back; the work happens in your session |
| Model control | model frontmatter routes to haiku, sonnet, opus, fable, or inherit | model field overrides only for the rest of the current turn |
| Direct invocation | Claude delegates based on description | /skill-name, or Claude loads it based on description |
| Cost profile | Keeps your main context clean; burns its own tokens per spawn | Cheap until invoked; body then occupies context every turn |
| Best at | Isolation: research, log-digging, parallel side tasks | Repeatability: procedures, conventions, checklists |
Two cost details before you build a library of either. Skill listings truncate the combined description and when_to_use text at 1,536 characters, so front-load the trigger conditions. And after auto-compaction, Claude Code re-attaches only the first 5,000 tokens of each invoked skill within a shared 25,000-token budget, so a sprawling skill body gets clipped in long sessions. Subagents have the inverse profile: the parent conversation stays small, but every spawn is a fresh context paying its own way.
The framing "agents vs skills" suggests a choice. The docs describe a composition, in both directions:
Skills preloaded into agents. A subagent definition can carry a skills field, and "the full content of each listed skill is injected into the subagent's context at startup." Your api-developer subagent starts life already knowing the team's API conventions and error-handling patterns, without discovering them mid-task.
Skills that run as agents. A skill can set context: fork in its frontmatter, and the skill content becomes the prompt driving a subagent, isolated from your conversation history. Pair it with agent: Explore and your research procedure runs in a cheap read-only worker that never touches your main context.
The Agent SDK keeps the same composition in application code: SDK agents load skills from .claude/skills/*/SKILL.md, and AgentDefinition accepts a skills list for preloading. The mature pattern is not choosing one primitive - it is encoding knowledge as skills, workers as agents, and wiring them together, the layering visible in the best Claude Code skills of 2026, where many top skills are thin orchestration layers over subagents.
You keep pasting the same instructions into chat. Skill. This is the docs' literal trigger condition: "you keep pasting the same instructions, checklist, or multi-step procedure into chat, or when a section of CLAUDE.md has grown into a procedure rather than a fact."
Codebase exploration keeps flooding your context. Subagent. Let Explore or a custom read-only worker absorb the search results and hand back three sentences.
You want team conventions enforced in every session. Project skills, checked into .claude/skills/ in the repo. Everyone who clones gets them, and live change detection picks up edits without a restart.
You are building a product feature on Claude. Agent SDK. A skill cannot ship as your backend; the SDK is the library form of the whole harness. Note that starting June 15, 2026, SDK and claude -p usage on subscription plans draws from a separate monthly Agent SDK credit.
You want a task done with different tools or a cheaper model. Subagent, since tools, disallowedTools, and model are per-worker controls. Routing side tasks to Haiku is one of the docs' listed reasons subagents exist.
You want a dangerous procedure that only runs when you say so. Skill with disable-model-invocation: true. It becomes a manual slash command Claude cannot trigger on its own.
Honest scoping, because neither primitive is free to maintain:
.claude/commands/ keep working under the merged system. Migrate to skill directories when you want supporting files or invocation control, not before.The short version of claude agents vs skills: an agent (subagent or Agent SDK agent) is a worker that runs in its own context window and returns results to you, while a skill is a SKILL.md file of instructions that loads into the current conversation when relevant. Agents isolate work; skills standardize it.
No. Both are markdown with YAML frontmatter, but subagents live in .claude/agents/ and spawn a separate context with their own system prompt and tool access, while skills live in .claude/skills/ and inject instructions into the session you are already in.
Yes, in two directions. A subagent's skills frontmatter field preloads full skill content into the worker at startup, and a skill with context: fork runs its own content as the prompt for a subagent. Subagents can also discover and invoke skills through the Skill tool during execution.
Yes. The Agent SDK loads skills from .claude/skills/*/SKILL.md in the working directory and home directory by default, controllable via the settingSources option. Skills follow the Agent Skills open standard, so the same folder works across Claude Code, the SDK, and other compatible agent products.
Build the skill first if your pain is repetition (re-explaining a procedure every session). Build the subagent first if your pain is context pollution (exploration burying your conversation). Most teams end up with both, wired together through the skills field.
Technical content at the intersection of AI and development. Building with AI agents, Claude Code, and modern dev tools - then showing you exactly how it works.
Anthropic's agentic coding CLI. Runs in your terminal, edits files autonomously, spawns sub-agents, and maintains memory...
View ToolAnthropic's Python SDK for building production agent systems. Tool use, guardrails, agent handoffs, and orchestration. R...
View ToolAnthropic's flagship reasoning model. Best-in-class for coding, long-context analysis, and agentic workflows. 1M token c...
View ToolAnthropic's first generally available Mythos-class model, released June 9, 2026. 1M context, 128K max output, $10/$50 pe...
View ToolDesign subagents visually instead of editing YAML by hand.
View AppInspect Claude Code transcripts to see which files, tools, and tokens are filling the context window.
View AppEvery coding agent in one window. Stop alt-tabbing between Claude, Codex, and Cursor.
View AppConfigure Claude Code for maximum productivity -- CLAUDE.md, sub-agents, MCP servers, and autonomous workflows.
AI AgentsDeep comparison of the top AI agent frameworks - LangGraph, CrewAI, Mastra, CopilotKit, AutoGen, and Claude Code.
AI AgentsA practical walk-through of how to design, write, and ship a Claude Code skill - from choosing when to trigger, through allowed-tools, to the steps the agent will actually follow.
Getting Started
Nimbalyst Demo: A Visual Workspace for Codex + Claude Code with Kanban, Plans, and AI Commits Try it: https://nimbalyst.com/ Star Repo Here: https://github.com/Nimbalyst/nimbalyst This video demos N...

Composio: Connect AI Agents to 1,000+ Apps via CLI (Gmail, Google Docs/Sheets, Hacker News Workflows) Check out Composio here: http://dashboard.composio.dev/?utm_source=Youtube&utm_channel=0426&utm_...

Anthropic has released Channels for Claude Code, enabling external events (CI alerts, production errors, PR comments, Discord/Telegram messages, webhooks, cron jobs, logs, and monitoring signals) to b...
Claude Code dynamic workflows turn orchestration into a JavaScript script that runs up to 1,000 agents per run - here is...
Ultracode is two documented things: a prompt keyword that turns one task into a dynamic workflow, and an /effort setting...
Auto mode replaces permission prompts with a background safety classifier - here is how the Shift+Tab cycle, hard_deny r...
Anthropic says persistent file-based memory improved Fable 5 three times more than it improved Opus 4.8. Here is the ful...
Task budgets give Claude a token countdown for the whole agentic loop, so the model paces itself instead of discovering...
An ops guide to managing a fleet of Claude agents: spawning patterns, worktree isolation, build gates, orphaned-agent fa...

New tutorials, open-source projects, and deep dives on coding agents - delivered weekly.