Commands vs Skills vs Sub Agents - When to Use What

January 7, 2026

Claude Code has three core extensibility features that can be confusing at first glance. Here's a breakdown of commands, skills, and sub agents - what they do, when to use them, and how they work together.

Commands (Manual Trigger)

You trigger them explicitly by typing /command-name

When to use:

  • Repeatable workflows you want explicit control over
  • Multi-step procedures you run frequently
  • Standard prompts with variable inputs (file paths, feature names)
  • When you want to orchestrate multiple sub agents or skills together

Examples:

  • /review - Code review workflow
  • /scaffold projectname - Create project structure
  • /research topic - Launch multiple research sub agents in parallel

Key point: Commands are shortcuts. If you're typing the same command every single message, you're using the wrong tool - switch to a skill or output style instead.

Skills (Automatic Trigger)

Claude invokes them automatically based on semantic matching between your request and the skill's description

When to use:

  • Expertise you want available across all conversations
  • "Always on" behaviors that should apply without asking
  • Knowledge that multiple agents or contexts need
  • SOPs (Standard Operating Procedures) that follow well-defined steps

Examples:

  • Database optimization expertise
  • Your team's code review standards
  • Documentation writing guidelines
  • Security audit procedures

Key point: Skills are like training materials. Claude scans all skill descriptions in the background and loads the full instructions only when your conversation matches the triggers in the description. Make your skill descriptions keyword-rich with specific trigger phrases.

Sub Agents (Automatic or Manual)

Claude can invoke automatically when it detects a need, or you can invoke explicitly with @agent-name

When to use:

  • Parallel execution of independent tasks
  • Specialized deep dives that need their own context
  • Preventing context pollution in your main conversation
  • When you need specific tool permissions (e.g., read-only agent that can't modify code)

Examples:

  • Research agent that searches docs while you keep coding
  • Code reviewer agent with read-only access
  • Test runner agent that executes tests independently
  • Documentation writer agent with its own context

Key point: Sub agents are like specialized assistants. Each has their own context window, system prompt, and tool permissions. They work independently and return results. Use them to keep your main conversation clean and focused.

How They Work Together

A real workflow might look like:

  1. CLAUDE.md - Contains your project context and standards (always loaded)
  2. Skill (automatic) - Database optimization skill activates when you mention "slow queries"
  3. Command (manual) - You type /research database-indexes
  4. Sub Agent (automatic) - Command spawns a research sub agent in parallel
  5. Sub Agent (uses skill) - Research agent also has access to the database optimization skill

Quick Decision Guide

Want something to happen every time without asking? → Skill 

Need a workflow shortcut you trigger manually? → Command

Need isolated, parallel work with its own context? → Sub Agent

Want a command to orchestrate multiple sub agents? → Command that invokes sub agents

The magic happens when you combine them - commands that launch sub agents that use skills.