The SDK (software development kit) lets other programs run Claude Code. When a session starts, Claude Code sends those programs a startup message. Its plugin_errors field lists plugins that had problems loading. That field used to be marked internal. It is now documented, and each entry can carry more detail:
path: the directory that did not load at all. It can come from--plugin-dir, from the SDKpluginsoption, or from a synced directory.plugin: whenpathis present, this may be a position tag such asinline[N]orsynced[N]instead of a plugin name.
The description also lists the kinds of error type that can appear, and says more may be added later.
It also covers plugins that load but are missing one of their parts. Such a plugin now keeps its row in the plugins[] list and still gets an error entry. Before, the description said affected plugins were left out of plugins[].
A program that loads several plugin directories can now tell exactly which one failed.
| `--plugin-dir` | Load a plugin from a directory or `.zip` archive, or several from a [folder of plugins](/docs/en/plugins/create#load-a-directory-or-archive-for-one-session), for this session only. Each flag takes one path. Repeat the fl…see the edit
| [`disableSideloadFlags`](/docs/en/settings-reference#disablesideloadflags) | Reject the `--plugin-dir`, `--plugin-url`, `--agents`, and `--mcp-config` flags at startup. In cloud sessions, Claude Code drops the MCP servers the server deli…see the edit
`claude plugin eval` loads the target plugin's skills, hooks, and agents and runs its eval suite on your machine, as you. Pointing it at a plugin is the same trust decision as `claude --plugin-dir`, so only evaluate plugins you trust.see the edit
* In interactive sessions, when you add or remove a plugin in a [folder of plugins](/docs/en/plugins/create#load-a-directory-or-archive-for-one-session) you passed with `--plugin-dir`, the change applies right away. If applying it would tr…see the edit
| [`--plugin-dir <path>`](/docs/en/plugins/create#load-a-directory-or-archive-for-one-session) | Load a plugin from a local directory |see the edit
<div>Point `--plugin-dir` at a folder of plugins to <a href="/docs/en/plugins/create#load-a-directory-or-archive-for-one-session">load each immediate subfolder that has a manifest</a></div>see the edit
The entry above is what we published on the day. These lines were added later, as Anthropic's own pages caught up, and they sit beside the original rather than replacing it.
- `plugin_errors: array of BetaPluginMarketplaceValidationPluginError`api/beta/organization see the edit
<div><code>claude agents</code> gained dispatch flags (`--add-dir`, `--settings`, `--mcp-config`, `--plugin-dir`, `--permission-mode`, `--model`, `--effort`, `--dangerously-skip-permissions`) to configure background sessions, and `claude a…whats-new/2026-w20 see the edit
| [`--plugin-dir <path>`](/docs/en/plugins/create#load-a-directory-or-archive-for-one-session) | Load a plugin from a local directory |agent-view see the edit
--plugin-dir on CLI reference
Added path to --plugin-dir load-failure entries in the stream-json system/init plugin_errors, naming the directory that did not load