---
title: "14 — Output Styles and Plugins — Persona, Verbosity, and Bundled Customization"
uid: output-styles-plugins
tags: ["plugins", "lsp", "roadmap:claude-code", "output-styles", "code-intelligence", "customization", "claude-code"]
excerpt: "Output styles change how the agent talks (persona and verbosity via the system prompt); plugins change what it comes with — bundling commands, agents, skills, hooks, and MCP into one installable unit."
date: 2026-08-13T03:28:20+0000
source: https://www.aveshina.my.id/en/blog/output-styles-plugins
---

"Theming and add-ons" was how I lumped output styles and plugins together, and the conflation hid two different axes. The split that fixed it: **output styles adapt the agent's persona and verbosity by modifying its core system prompt, while plugins are a packaging format that bundles many customizations into one installable unit.** [1][2] Styles change _how_ the agent talks; plugins change _what_ the agent comes with. They're different axes, and conflating them is how I missed both for a while.

The framing that clicked is to read styles as a system-prompt switch and plugins as a distribution format. An output style isn't a skin — it actually modifies the system prompt that frames every response, shifting the agent's behavior [1]. A plugin isn't a feature — it's a box that holds features (slash commands, agents, skills, hooks, MCP servers) so they can be installed, shared, and versioned together [2]. Once I saw them that way, the question "which style?" became about what kind of collaborator I wanted, and the question "which plugin?" became about what bundle of capabilities a workflow needed.

## Output styles: switching persona and verbosity

The roadmap names the built-in styles and what each does to the agent's behavior [1]:

- **Standard** — the default coding mode. Direct, task-focused, minimal commentary.
- **Explanatory** — adds educational insight into implementation choices. The agent doesn't just make the change; it explains _why_ the change is shaped that way.
- **Learning** — a collaborative mode where Claude places TODO(human) markers to encourage hands-on contribution. It deliberately leaves parts for me to fill in, treating the session as a teaching exercise rather than a done-for-you edit.

The mechanism is what made it click for me: these aren't post-processing filters on the output. They modify the system prompt, so the change runs deep — the agent reasons differently in Learning mode, not just phrases things differently. That's why a style is a real behavioral switch, worth picking deliberately per session type. Explanatory when I'm learning a new codebase; Learning when I want to build the skill myself; Standard when I just want the change made.

```figure
<svg viewBox="0 0 740 280" xmlns="http://www.w3.org/2000/svg" class="my-6 w-full max-w-2xl" role="img" aria-label="Output styles are system-prompt switches. A central agent orb with three mask icons: Standard (direct, task-focused), Explanatory (adds why commentary), Learning (leaves TODO(human) markers for hands-on practice). Each mask feeds a different system prompt into the orb, producing different response shapes.">
  <g font-family="ui-sans-serif, system-ui, sans-serif" text-rendering="geometricPrecision">
    <!-- orb -->
    <circle cx="370" cy="140" r="46" fill="#e0e7ff" stroke="#6366f1" stroke-width="1.8"/>
    <text x="370" y="136" font-size="12" font-weight="700" fill="#1e1b4b" text-anchor="middle">Agent</text>
    <text x="370" y="152" font-size="9" fill="#475569" text-anchor="middle">one model</text>

    <!-- styles -->
    <rect x="40" y="40" width="150" height="56" rx="8" fill="#e0e7ff" stroke="#6366f1" stroke-width="1.5"/>
    <text x="115" y="62" font-size="11" font-weight="700" fill="#1e1b4b" text-anchor="middle">Standard</text>
    <text x="115" y="80" font-size="9" fill="#475569" text-anchor="middle">direct · task-focused</text>

    <rect x="40" y="112" width="150" height="56" rx="8" fill="#dcfce7" stroke="#16a34a" stroke-width="1.5"/>
    <text x="115" y="134" font-size="11" font-weight="700" fill="#052e16" text-anchor="middle">Explanatory</text>
    <text x="115" y="152" font-size="9" fill="#475569" text-anchor="middle">adds the why</text>

    <rect x="40" y="184" width="150" height="56" rx="8" fill="#fef9c3" stroke="#ca8a04" stroke-width="1.5"/>
    <text x="115" y="206" font-size="11" font-weight="700" fill="#422006" text-anchor="middle">Learning</text>
    <text x="115" y="224" font-size="9" fill="#475569" text-anchor="middle">TODO(human) markers</text>

    <!-- prompt arrow -->
    <path d="M190,100 C260,115 300,125 322,135" fill="none" stroke="#64748b" stroke-width="1.5"/>
    <path d="M190,140 L322,140" fill="none" stroke="#64748b" stroke-width="1.5"/>
    <path d="M190,180 C260,165 300,155 322,145" fill="none" stroke="#64748b" stroke-width="1.5"/>
    <text x="255" y="130" font-size="9" fill="#64748b" text-anchor="middle">modifies system prompt</text>

    <!-- plugin box -->
    <rect x="550" y="70" width="150" height="140" rx="10" fill="#fce7f3" stroke="#db2777" stroke-width="1.8"/>
    <text x="625" y="92" font-size="12" font-weight="700" fill="#500724" text-anchor="middle">Plugin</text>
    <text x="625" y="108" font-size="9" fill="#500724" text-anchor="middle">one installable unit</text>
    <text x="625" y="134" font-size="9" font-family="ui-monospace,monospace" fill="#500724" text-anchor="middle">commands</text>
    <text x="625" y="150" font-size="9" font-family="ui-monospace,monospace" fill="#500724" text-anchor="middle">agents</text>
    <text x="625" y="166" font-size="9" font-family="ui-monospace,monospace" fill="#500724" text-anchor="middle">skills</text>
    <text x="625" y="182" font-size="9" font-family="ui-monospace,monospace" fill="#500724" text-anchor="middle">hooks</text>
    <text x="625" y="198" font-size="9" font-family="ui-monospace,monospace" fill="#500724" text-anchor="middle">MCP servers</text>
  </g>
</svg>
```

## Plugins: a packaging format for customization

If styles are a behavior switch, plugins are a distribution format. A plugin bundles multiple customizations — slash commands, specialized agents, skills, hooks, and MCP servers — into a single installable unit [2]. The roadmap frames them as a standardized way to distribute complex AI workflows across projects or within a team, so every developer has the same tools and coding standards.

The reason this matters is shareability. Individually, a hook, a skill, and an MCP server are each configured separately and live in different places. A plugin packages them together: install one plugin and a whole workflow lands — the commands it adds, the subagents it defines, the hooks it wires, the tools it exposes. For a team standardizing on "how we do deploys" or "how we run security reviews," a plugin is the artifact that carries that standard. They're discoverable through marketplaces and installable via the /plugin command [2].

## Code intelligence: a plugin worth flagging

One specific plugin category deserves a mention because it changes what the agent can _perceive_. **Code Intelligence plugins** extend the CLI's native search by integrating with the Language Server Protocol (LSP), giving Claude the same IDE-level awareness modern editors have — go-to-definition, find-references, hover types [3][4]. Without it, the agent searches code like grep: text matches. With it, the agent searches code like an IDE: symbol-aware navigation.

The payoff is precision in the explore phase. "Find everywhere this function is called" is a fundamentally different query when the agent understands the symbol versus when it's matching a string. For large or strongly-typed codebases, a code-intelligence plugin meaningfully improves the quality of the research the loop does before it edits anything.

## How I use this

The habit these notes left me with is two separate choices per session. First, the _style_: Standard for ordinary work, Explanatory when I'm in an unfamiliar area and want the reasoning surfaced, Learning when I'm building a skill and want to fill in parts myself. Second, the _plugins_: a small set that I install once and share with the team — a code-intelligence plugin for symbol-aware search being the one I notice most — and I resist collecting plugins the way I resist collecting MCP servers, because every command and agent they add is context the model carries. Styles change how the agent talks to me; plugins change what it comes with. Picking both deliberately is the whole job.

## References

[1] Anthropic, "Output styles," Claude Code Docs, 2025. [Online]. Available: [https://code.claude.com/docs/en/output-styles#output-styles](https://code.claude.com/docs/en/output-styles#output-styles)

[2] Anthropic, "Discover and install prebuilt plugins through marketplaces," Claude Code Docs, 2025. [Online]. Available: [https://code.claude.com/docs/en/discover-plugins](https://code.claude.com/docs/en/discover-plugins)

[3] Anthropic, "Code intelligence," Claude Code Docs, 2025. [Online]. Available: [https://code.claude.com/docs/en/discover-plugins#code-intelligence](https://code.claude.com/docs/en/discover-plugins#code-intelligence)

[4] Microsoft, "Language Server Protocol," 2025. [Online]. Available: [https://microsoft.github.io/language-server-protocol/](https://microsoft.github.io/language-server-protocol/)

```quiz
Q: What does an output style actually change?
- The color theme of the terminal
- The agent's core system prompt, shifting its persona and verbosity
correct: 1
explain: Styles are not skins. They modify the system prompt that frames every response, so the agent reasons differently (e.g. Learning mode leaves TODO(human) markers; Explanatory surfaces the why).

Q: Which built-in style deliberately leaves parts for you to fill in?
- Standard
- Learning
correct: 1
explain: Learning mode places TODO(human) markers to encourage hands-on contribution, treating the session as a teaching exercise rather than done-for-you edits.

Q: What is a plugin, fundamentally?
- A single feature added to the CLI
- A packaging format that bundles commands, agents, skills, hooks, and MCP servers into one installable unit
correct: 1
explain: Plugins distribute a whole workflow together. Installing one lands the commands, subagents, skills, hooks, and MCP servers it contains — useful for sharing team standards.

Q: What does a Code Intelligence plugin add, and why does it matter?
- A faster grep tool
- LSP-backed, symbol-aware navigation (go-to-definition, find-references) that improves explore-phase precision
correct: 1
explain: Without it, the agent searches code as text. With LSP integration, it navigates as an IDE does — understanding symbols, not just matching strings. This meaningfully improves research quality on large typed codebases.

Q: Why be selective about which plugins you install?
- Plugins cost money per install
- Every command and agent a plugin adds consumes context the model carries every turn
correct: 1
explain: Same hygiene as MCP servers and skills: idle customizations still add to the context window. Install the bundle a workflow needs; don't collect them.
```
