Follow Discord
Sweep 02 Oct 2026 · 18:55Z Build v2.1.288 509 read Stable v2.1.285 Latest v2.1.288 Next v2.1.288 Feeds RSS JSON llms.txt llms-full.txt Unofficial
One capture · claude-code

One read of Claude Code CLIclaude-code-20261002T043702Z

26 pages moved out of 220 read.

Pages moved 26 significant first
Pages read 220 in this capture
Captured 04:37 UTC
Corpus hash 68a0ff4ed65d corpus-hash

What this read moved

1-25 of 26, page 1 of 2

This capture is too large to show at once. Changes 1-25 of 26 are below, significant first; the rest are on the following screens.

channels Changed · +4 / -4 lines

from line 30
3030 </Step>
3131 
3232 <Step title="Install the plugin">
33 In Claude Code, run:
33 Start Claude Code by running `claude` in your terminal, then enter this at its prompt:
3434 
3535 ```
3636 /plugin install telegram@claude-plugins-official
from line 108
108108 </Step>
109109 
110110 <Step title="Install the plugin">
111 In Claude Code, run:
111 Start Claude Code by running `claude` in your terminal, then enter this at its prompt:
112112 
113113 ```
114114 /plugin install discord@claude-plugins-official
from line 173
173173 </Step>
174174 
175175 <Step title="Install the plugin">
176 In Claude Code, run:
176 Start Claude Code by running `claude` in your terminal, then enter this at its prompt:
177177 
178178 ```
179179 /plugin install imessage@claude-plugins-official
from line 230
230230 
231231<Steps>
232232 <Step title="Install the fakechat channel plugin">
233 Start a Claude Code session and run the install command:
233 Start Claude Code by running `claude` in your terminal, then enter the install command at its prompt:
234234 
235235 ```text theme={null}
236236 /plugin install fakechat@claude-plugins-official

cross-session-messaging Changed · +6 / -1 lines

from line 60
6060 
6161* The message is [over the size cap](#limitations). Claude Code refuses it in the sending session, before it leaves.
6262* A rapid burst to a session on this machine has reached [what that session's inbox accepts](#limitations). Claude Code refuses further messages to that session.
63* A session beyond this machine is [listed as unable to receive cross-session messages](#message-sessions-on-other-machines). Claude Code refuses the message in the sending session, before it leaves this machine.
6364* The reply target on this machine fails a safety check, such as a symlinked target. [Refusing to send a cross-session message](/docs/en/errors#refusing-to-send-a-cross-session-message) lists these checks.
6465 
6566The receiving session checks each arriving message against its own [inbound controls](#control-inbound-messages), and the check ends in one of three outcomes:
from line 139
138139 
139140Starting a conversation with a session on another of your machines requires Claude Code v2.1.225 or later and a target that [appears in the listing](#see-which-sessions-claude-can-reach).
140141 
141You can message a session shown as `offline` in [the listing](#see-which-sessions-claude-can-reach), one whose Remote Control connection has dropped. The send goes through, but the message arrives only after that session's machine reconnects.
142A session's row in [the listing](#see-which-sessions-claude-can-reach) can show a condition that changes what happens when Claude messages that session:
142143 
144* **`offline`**: that session's Remote Control connection has dropped. The message goes through, but arrives only after that session's machine reconnects.
145* **`can't receive cross-session messages (off in that session)`**: messaging [isn't available](#availability) in that session, or its [`crossSessionInbound`](/docs/en/settings-reference#crosssessioninbound) value is `refuse`. Claude Code refuses a message to that session before the message leaves this machine. The result under Claude's `SendMessage` call begins `Not sent` and names the reason. Once the cause is fixed in that session, a later listing no longer shows this condition, and Claude can message that session.
146 
143147A session inside a container and a session on the host can't reach each other. Two sessions inside the same container can still message each other, including on a [self-hosted runner](/docs/en/self-hosted-environments). A session inside WSL 2 and a native Windows session on the same computer can't reach each other either.
144148 
145149If this session isn't connected to Remote Control when Claude sends to a session beyond this machine, the message still goes through, but without a [reply address](#what-a-message-looks-like), so the receiving Claude can't answer it.
from line 313
309313 * **Cloud session missing**: a cloud session appears only while this session is connected to [Remote Control](/docs/en/remote-control).
310314 * **Other-machine session missing**: a session on another of your machines appears only when it runs with [Remote Control](/docs/en/remote-control) and this session is connected as well.
311315 * **Other-machine session `offline`**: a message to a session listed as `offline` goes through, but [arrives only after that session's machine reconnects](#message-sessions-on-other-machines).
316 * **Cloud or other-machine session `can't receive cross-session messages`**: a message to a session listed with this condition [doesn't leave this machine](#message-sessions-on-other-machines), and the result under `SendMessage` begins `Not sent`.
312317 * **Older cloud or other-machine session missing**: Claude Code reads those session lists newest first and stops after a bounded number of pages, so Claude can't message a session that fell past them by name.
313318 
314319In a session with messaging, `/status` also shows a `Peer address` row with the session's own inbox address, or `unavailable` and the reason when Claude Code [couldn't set up an inbox](#the-sessions-inbox-socket).

plugins/install Changed · +7 / -3 lines

### Update plugins now ### Update one plugin now

from line 351
351351 
352352In a Claude Code session, run `/plugin` and go to the **Marketplaces** tab. Select the marketplace, then select **Enable auto-update** or **Disable auto-update**.
353353 
354### Update one plugin now
354### Update plugins now
355355 
356In a session, open the plugin on the **Installed** tab in `/plugin` and select **Update now**, or in your shell run `claude plugin update <plugin>@<marketplace>`.
356To update one plugin, open it on the **Installed** tab in `/plugin` during a session and select **Update now**, or run `claude plugin update <plugin>@<marketplace>` in your shell.
357 
358There's no command that updates every plugin at once. To update the plugins you installed from one marketplace at once, go to the **Marketplaces** tab in `/plugin`, select the marketplace, and choose **Update marketplace**. That refreshes the marketplace's listing, updates the plugins you installed from it, and reports any plugin it left for you to update yourself. A plugin with a [`command` source](/docs/en/plugins/marketplace-reference#command-plugin-source) or with a marketplace entry that sets a `headersHelper` command isn't updated this way, so you update it from its view on the **Installed** tab or with `claude plugin update <plugin>@<marketplace>`.
359 
360If you run `claude plugin marketplace update` in your shell with no name, it refreshes every marketplace's listing but leaves your installed plugins at their current versions.
357361 
358362### Auto-update from a private marketplace
359363 

plugins/mods/admin Changed · +14 / -14 lines

from line 59
5959 A user who authenticates with an API key, or through Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry, gets the guard only on a machine that has managed settings.
6060* **The guard protects what you manage.** A user's mod can't change what your managed hooks receive or decide, the system prompt, your managed `CLAUDE.md` and other managed instructions, what any mod reads as settings, or the tools and descriptions of your managed MCP servers.
6161* **Everything else is allowed.** The guard adds no other restrictions. A user's mod can still read and write files, start processes, make network requests, rewrite tool calls and prompts, deny a tool call, approve one that would otherwise prompt, and draw in the interface, all with that user's permissions.
62* **Deny rules and your managed hooks take precedence.** Where the guard loads, a user's mod can't approve a call that a `deny` rule refuses, whichever settings file holds the rule. A block from a `PreToolUse` hook in managed settings is final too. Both apply to Claude's tool calls. Neither applies to a mod's own [`$.fs` and `$.process` calls](/docs/en/plugins/mods/api#reach-files-processes-and-the-network): with `Read(.env)` denied, a mod can still read that file with `$.fs.read` or start a program that does. To limit those calls, keep the mod from loading or hook the call in a [policy mod](#enforce-a-policy-with-a-mod-of-your-own).
62* **Deny rules and your managed hooks take precedence.** Where the guard loads, a user's mod can't approve a call that a `deny` rule refuses, whichever settings file holds the rule. A block from a `PreToolUse` hook in managed settings is final too. Both apply to Claude's tool calls. Neither applies to a mod's own [`$.fs` and `$.process` calls](/docs/en/plugins/mods/api#reach-files-processes-and-the-network): with `Read(.env)` denied, a mod can still read that file with `$.fs.read` or start a program that does. To limit those calls, keep the mod from loading or handle the call in a [policy mod](#enforce-a-policy-with-a-mod-of-your-own).
6363* **Other permission checks can be overridden.** A user's mod that approves tool calls can approve a call that an `ask` rule would prompt for, or that a `PreToolUse` hook outside managed settings blocked. In auto mode, a call the mod approves runs without a classifier check.
6464 
6565The guard's source is public in the [`mods/sec-default` directory of the Claude Code repository](https://github.com/anthropics/claude-code/tree/main/mods/sec-default).
from line 91
9191| A marketplace allowlist | A mod from the marketplaces you allow, or from any directory with `--plugin-dir`. A mod Claude writes during a session loads only when the allowlist [includes `skills-dir`](/docs/en/plugins/org#keep-skills-directory-plugins-loading). |
9292| A marketplace allowlist and `disableSideloadFlags` | A mod from the marketplaces you allow |
9393 
94[Manage plugins for your organization](/docs/en/plugins/org) lists every way a plugin loads and the setting that controls each.
94[Manage plugins for your organization](/docs/en/plugins/org) lists the ways a plugin loads and the setting that controls each.
9595 
9696To check the mods in a marketplace before your users install them, see [Review what a mod can do](#review-what-a-mod-can-do). To keep users' mods out until you've done that, see [Stop user-installed mods from loading](#stop-user-installed-mods-from-loading).
9797 
from line 145
145145* **`allowManagedModsOnly`**: an option on the built-in guard. Users' own mods don't load, and their settings hooks, status lines, and `/goal` keep working. [Stop user-installed mods from loading](#stop-user-installed-mods-from-loading) lists what it covers.
146146* **`allowManagedHooksOnly`**: a wider setting. Only [your organization's mods](#install-your-organizations-mods) and the mods built into Claude Code load. A mod a user installed themselves doesn't. The setting also blocks hooks in users' own settings files. Read [What runs under `allowManagedHooksOnly`](/docs/en/settings-reference#what-runs-under-allowmanagedhooksonly) before you set it.
147147* **`disableAllHooks`**: the widest setting. In managed settings, it stops the mods in every installed plugin, yours included, and turns off every hook in settings files, so a `PreToolUse` hook in your managed settings no longer blocks anything. Custom status lines and `/goal` stop working too. Read [`disableAllHooks`](/docs/en/settings-reference#disableallhooks) before you set it.
148* **`disableSideloadFlags`**: rejects `--plugin-dir` and `--plugin-url` at startup, so nobody loads a mod from a directory, and keeps mods Claude writes during a session from loading. The setting also rejects `--agents` and `--mcp-config`. Read [`disableSideloadFlags`](/docs/en/settings-reference#disablesideloadflags) before you set it.
148* **`disableSideloadFlags`**: rejects `--plugin-dir` and `--plugin-url` at startup, and keeps mods Claude writes during a session from loading. The setting also rejects `--agents` and `--mcp-config`. Read [`disableSideloadFlags`](/docs/en/settings-reference#disablesideloadflags) before you set it.
149149 
150150Mods built into Claude Code, such as `AGENTS.md` support, aren't affected by these settings. Each has [its own switch](/docs/en/plugins/mods/overview#mods-built-into-claude-code).
151151 
from line 200
200200 
201201### Set options on the built-in guard
202202 
203The built-in guard takes two options. Set them in managed settings under `pluginConfigs`, keyed by `cc-plugin-sec-default@builtin`, as the example in [Stop user-installed mods from loading](#stop-user-installed-mods-from-loading) does.
203The built-in guard takes options. Set them in managed settings under `pluginConfigs`, keyed by `cc-plugin-sec-default@builtin`, as the example in [Stop user-installed mods from loading](#stop-user-installed-mods-from-loading) does.
204204 
205205The table gives what your users get with each option unset and with it set to `true`:
206206 
from line 211
211211 
212212These rules decide whether an option takes effect:
213213 
214* **The id has one spelling here**: Claude Code reads the options only under `cc-plugin-sec-default@builtin`. `prependPlugins` accepts `sec-default@builtin` as well, and `pluginConfigs` doesn't.
214* **The id has one form here**: Claude Code reads the options only under `cc-plugin-sec-default@builtin`. `prependPlugins` accepts `sec-default@builtin` as well, and `pluginConfigs` doesn't.
215215* **Only managed settings count**: the same entry in a user, project, or local settings file, or in a file passed with `--settings`, neither sets an option nor loosens one
216216* **The guard has to load**: if you set `prependPlugins`, [name the guard in the list](#install-your-organizations-mods). Where the guard doesn't load, neither option applies.
217217* **The guard fails closed**: if the guard can't read managed settings, it refuses every user's mod at load. If it can't check the deny rules for a call that a user's mod approved, it refuses the call.
from line 263
263263 
264264A plugin that Claude Code copies into its cache counts as a user's, even when managed `enabledPlugins` enables it. That covers every plugin from a GitHub, git, URL, or npm source. Its mod runs among users' mods, `prependPlugins` and `appendPlugins` skip it, and it doesn't load under `allowManagedModsOnly` or `allowManagedHooksOnly`. The user's debug log has a line that starts with the plugin's id and `is enabled by managed settings, but`.
265265 
266Claude Code raises an event each time it's about to act, such as run a tool, and passes it to each mod in turn. A mod that counts as yours [runs before users' mods](/docs/en/plugins/mods/events#the-order-mods-run-in) even when you list it nowhere. To set its place, list its id in one of two settings. The id is the plugin's name, `@`, and the marketplace's name, such as `acme-guard@acme-tools`.
266Claude Code fires an event each time it's about to act, such as run a tool, and passes it to each mod in turn. A mod that counts as yours [runs before users' mods](/docs/en/plugins/mods/events#the-order-mods-run-in) even when you list it nowhere. To set its place, list its id in one of two settings. The id is the plugin's name, `@`, and the marketplace's name, such as `acme-guard@acme-tools`.
267267 
268268* **`prependPlugins`**: your mod sees every event before any user's mod and every result after. It can change the event, refuse it, or skip the users' mods.
269269* **`appendPlugins`**: your mod runs after every user's mod, so it sees only the events those mods pass on, in the form they pass them
from line 298
298298These rules decide which ids in the two lists take effect:
299299 
300300* **The list replaces the default**: when you set `prependPlugins` in managed settings, name `sec-default@builtin` in it to keep the built-in guard. The guard is built in and needs no `enabledPlugins` entry.
301* **Your own ids must count as yours**: in managed settings, Claude Code skips an id whose plugin doesn't meet the three conditions for an organization's mod
301* **Your own ids must count as yours**: in managed settings, Claude Code skips an id whose plugin doesn't meet the conditions for an organization's mod
302302* **Repositories can't set them**: Claude Code reads both settings from managed settings and never from a repository's settings file. A user can set them in `~/.claude/settings.json` to order their own mods only on a machine with no managed settings, and only when they aren't signed in with a Team or Enterprise plan. Anywhere else, Claude Code ignores both keys in user settings. A list there neither adds nor removes the built-in guard.
303303 
304304### Enforce a policy with a mod of your own
305305 
306To keep every user's mod out, you don't need a mod of your own. Set [`allowManagedModsOnly`](#stop-user-installed-mods-from-loading). Write a policy mod when you want to admit some users' mods and refuse others, or to record what mods do.
306To keep every user's mod out, you don't need a mod of your own. Set [`allowManagedModsOnly`](#stop-user-installed-mods-from-loading). Write a policy mod when you want to allow some users' mods and refuse others, or to record what mods do.
307307 
308Each time another mod is about to load, your mod receives the list that `claude plugin validate` prints, in an event named [`plugin.register`](/docs/en/plugins/mods/reference#other-mods). A mod in `prependPlugins` can read that list and refuse the mod. It can also [hook any mods API call by name](/docs/en/plugins/mods/api#reach-files-processes-and-the-network) to record or refuse that call for every other mod. The name is the method without the `$.`, so a hook on `fs.write` sees every `$.fs.write` call.
308Each time another mod is about to load, your mod receives the list that `claude plugin validate` prints, in an event named [`plugin.register`](/docs/en/plugins/mods/reference#other-mods). A mod in `prependPlugins` can read that list and refuse the mod. It can also [handle any mods API call by name](/docs/en/plugins/mods/api#reach-files-processes-and-the-network) to record or refuse that call for every other mod. The name is the method without the `$.`, so a hook on `fs.write` sees every `$.fs.write` call.
309309 
310310This policy mod refuses any user's mod whose own code calls `$.process.run` or `$.process.spawn`. It also keeps an audit log, writing each tool call and each file a mod writes to the debug log. Because it runs first, the log records what was requested, before any user's mod changes it. Save it as `acme-guard/hooks/register.js`:
311311 
from line 349
349349The `plugin.register` hook reads two fields of the event:
350350 
351351* **`e.tier`**: where the mod would run, one of `prepend`, `user`, `append`, or `builtin`. Every mod a person installs is `user`.
352* **`e.uses.calls`**: the mods API methods the mod calls, each spelled `namespace.method` such as `process.run`, without the `$.` that `claude plugin validate` prints
352* **`e.uses.calls`**: the mods API methods the mod calls, each written `namespace.method` such as `process.run`, without the `$.` that `claude plugin validate` prints
353353 
354354When a user installs a mod that calls `$.process.run`, the mod doesn't load, and their debug log has a line that ends with `refused by acme-guard:` and your reason. The refusal also reaches the transcript in a [session that hot-reloads a plugin directory](/docs/en/plugins/mods/troubleshoot#find-out-why-a-mod-does-nothing). To block a call without refusing the whole mod, return `{ deny: 'your reason' }` from a hook on that call's name.
355355 
from line 357
357357 
358358A session can run without your mod. If the worker thread that runs installed mods [crashes three times](/docs/en/plugins/mods/troubleshoot#mods-that-run-in-the-hooks-worker-are-off-for-this-session), Claude Code unloads every mod that isn't built in, including yours, until the user runs `/reload-plugins` or starts a new session. And a user who starts Claude Code with `--safe-mode` runs without installed mods, yours included.
359359 
360[Create a mod](/docs/en/plugins/mods/create) covers the files a mod needs. [Test a mod that judges other mods](/docs/en/plugins/mods/test#test-a-mod-that-judges-other-mods) has a test file for this policy mod.
360[Create a mod](/docs/en/plugins/mods/create) covers the files a mod needs. [Test a policy mod](/docs/en/plugins/mods/test#test-a-mod-that-judges-other-mods) has a test file for this policy mod.
361361 
362362#### Refuse mods when your check fails
363363 
364If your `plugin.register` hook throws or runs past its time limit, Claude Code skips the hook, so the check fails open and the mod it was checking loads. To fail closed and refuse users' mods, move the check into a named function and add a `.catch` handler that returns the refusal. This version of the file shows the `plugin.register` hook only, so keep the two audit hooks from the first version in `register`:
364If your `plugin.register` hook throws or exceeds its time limit, Claude Code skips the hook, so the check fails open and the mod it was checking loads. To fail closed and refuse users' mods, move the check into a named function and add a `.catch` handler that returns the refusal. This version of the file shows the `plugin.register` hook only, so keep the two audit hooks from the first version in `register`:
365365 
366366```javascript acme-guard/hooks/register.js theme={null}
367367const BLOCKED_CALLS = ['process.run', 'process.spawn']
from line 376
376376}
377377 
378378export function register(on) {
379 // The handler runs only when checkMod throws or runs past its time limit
379 // The handler runs only when checkMod throws or exceeds its time limit
380380 on('plugin.register', checkMod).catch(async ($, e, next) => {
381381 // Let your organization's mods and built-in mods load
382382 if (e.tier !== 'user') return next(e)

plugins/mods/api Changed · +10 / -10 lines

from line 86
8686 
8787When you run `/triage the export button does nothing`, the mod sends that text to the model and prints its answer, such as `Label: bug`. Claude's conversation isn't part of the request. When the model doesn't answer, the label is `unknown`.
8888 
89A Claude API failure doesn't reject the call, so check `r.isAnswered`, and read `r.reason` when it's `false`. The call rejects only for a request Claude Code won't send, such as a model your organization blocks. [The types for your build](/docs/en/plugins/mods/create#get-the-types-for-your-build) list the other options, such as `effort`, and the [limits](/docs/en/plugins/mods/reference#limits) give the `maxTokens` default.
89A Claude API failure doesn't reject the call, so check `r.isAnswered`, and read `r.reason` when it's `false`. The call rejects for a request Claude Code won't send, such as a model your organization blocks. [The types for your build](/docs/en/plugins/mods/create#get-the-types-for-your-build) list the other options, such as `effort`, and the [limits](/docs/en/plugins/mods/reference#limits) give the `maxTokens` default.
9090 
9191`$.model.fork({ prompt })` asks one question over the current conversation instead, with the same model and system prompt, so the Claude API serves most of it from the prompt cache.
9292 
from line 94
9494 
9595## Run work in the background
9696 
97Work that outlives one event, such as checking on something once a minute, runs on a timer you start from `session.start`. A hook itself runs for one event and has a time limit of 10 seconds of its own running time. Time spent waiting on `next` or on a mods API call doesn't count, except a `$.clock.sleep`. `$.clock.every` and `$.clock.after` take the place of `setInterval` and `setTimeout`, with the delay in milliseconds first: `$.clock.after(5000, fn)` calls `fn` once, five seconds from now. Each returns a timer with a `cancel()` method, and `await $.clock.now()` gives the time in milliseconds.
97Work that outlives one event, such as checking on something once a minute, runs on a timer you start from `session.start`. A hook itself runs for one event and has a [time limit](/docs/en/plugins/mods/reference#limits) on its own execution time. Time spent waiting on `next` or on a mods API call doesn't count, except a `$.clock.sleep`. `$.clock.every` and `$.clock.after` take the place of `setInterval` and `setTimeout`, with the delay in milliseconds first: `$.clock.after(5000, fn)` calls `fn` once, five seconds from now. Each returns a timer with a `cancel()` method, and `await $.clock.now()` gives the time in milliseconds.
9898 
9999This hook looks up a pull request's checks once a minute and shows the result under the prompt. `summarize` is a function of your own that turns the command's JSON output into a few words:
100100 
from line 120
120120| Call | What the user sees |
121121| :- | :- |
122122| `$.ui.status(text)` | One line under the prompt that stays until you change it. It starts with `⚠` and the mod's name, as in `⚠ my-mod: checks: 3 passing`. |
123| `$.ui.toast(text)` | A small box at the top right, with the mod's name above the text, that disappears after a few seconds |
123| `$.ui.toast(text)` | A toast notification at the top right, with the mod's name above the text, that disappears after a few seconds |
124124| `$.ui.log(text)` | A dim line in the transcript that Claude doesn't read. It starts with `●` and the mod's name, as in `● my-mod: build finished`. |
125125 
126126### Start a turn from a background job
from line 129
129129 
130130### Stop background work
131131 
132Background work stops in two ways. Timers stop when the module reloads. For long-running work inside a hook, [`next.signal`](/docs/en/plugins/mods/reference#the-hook-function) is an `AbortSignal` that aborts when the event your hook is handling is abandoned, for example when the user interrupts, so pass it to anything long-running.
132Timers stop when the module reloads. For long-running work inside a hook, [`next.signal`](/docs/en/plugins/mods/reference#the-hook-function) is an `AbortSignal` that aborts when the event your hook is handling is abandoned, for example when the user interrupts, so pass it to anything long-running.
133133 
134134## Send and receive messages between sessions
135135 
from line 148
148148})
149149```
150150 
151When the message is queued, nothing appears in your session, and the other session's Claude reads `Status? One line.` When nothing was delivered, a small box at the top right gives the reason and disappears after a few seconds.
151When the message is queued, nothing appears in your session, and the other session's Claude reads `Status? One line.` When nothing was delivered, a toast notification gives the reason.
152152 
153Two events let a mod observe the messages. Return `next(e)` from both to pass each message through unchanged:
153`session.receive` and `session.send` let a mod observe the messages. Return `next(e)` from both to pass each message through unchanged:
154154 
155155| Event | Fires when | Useful fields |
156156| :- | :- | :- |
from line 171
171171| `$.process` | `run(['git', 'status'])` starts a command and resolves when it exits. `spawn` streams a long-running command's output. |
172172| `$.http` | `fetch(url, init)` over `http` or `https`. It resolves to `{ status, ok, headers, text }` once the body is read. |
173173| `$.store` | A JSON key-value store of your plugin's own, kept between sessions |
174| `$.env` | `get` and `set` environment variables. Write the name as a literal string. |
174| `$.env` | `get` and `set` environment variables. Write the name as a string literal. |
175175| `$.settings` | `read` what the settings files and managed policy hold |
176176| `$.session` | `messages()` returns the transcript as a list of `{ role, text, toolUses }`. Also the working directory, model, and more. [`usage()`](/docs/en/plugins/mods/reference#mods-api-methods) returns context window use and plan limits. |
177177| `$.mcp` | `call` a tool on a connected MCP server |
from line 178
178178 
179179Files and processes have a few rules of their own:
180180 
181* **Paths**: a relative path is under the session's working directory
182* **`$.fs.list`**: returns one directory's entries as `{ name, kind, size, isLink }` and doesn't descend into subdirectories
181* **Paths**: a relative path resolves against the session's working directory
182* **`$.fs.list`**: returns one directory's entries as `{ name, kind, size, isLink }` and isn't recursive
183183* **`$.process.run`**: takes an argument list and uses no shell. It resolves to `{ exitCode, stdout, stderr }` whatever the exit code. It rejects if the program can't start or is still running at the timeout, which is 30 seconds by default, so wrap it in `try` and `catch`.
184184 
185185Every one of these calls is itself an event, named for its namespace and method without the `$.`, such as `fs.read` for `$.fs.read`. A mod [earlier in the chain](/docs/en/plugins/mods/events#the-order-mods-run-in) can observe, rewrite, or refuse your call, which is how an organization restricts what mods reach.
from line 189
189189* [React to events](/docs/en/plugins/mods/events): hook tool calls, prompts, and turns
190190* [Draw in the interface](/docs/en/plugins/mods/interface): show what your mod collects in a pane or above the prompt
191191* [Test a mod](/docs/en/plugins/mods/test): stub any of these calls in a test
192* [Mods reference](/docs/en/plugins/mods/reference): every event, every mods API method, and the limits
192* [Mods reference](/docs/en/plugins/mods/reference): events, mods API methods, and limits
193193 

plugins/mods/create Changed · +11 / -11 lines

from line 2
22 
33> Have Claude write a Claude Code mod from a description, or write one yourself that counts tool calls and adds a command. Learn the reload and validate loop.
44 
5A mod is a Claude Code [plugin](/docs/en/plugins/overview) with an entry file, called the hooks module: a JavaScript or TypeScript file whose functions Claude Code calls when events happen. There are two ways to make one:
5A mod is a Claude Code [plugin](/docs/en/plugins/overview) with an entry file, called the hooks module: a JavaScript or TypeScript file whose functions Claude Code calls when events happen. To make one:
66 
77* **Ask Claude to write it**: [describe what you want](#ask-claude-for-a-mod) in a Claude Code session
88* **Write it yourself**: [follow the tutorial](#write-a-mod-yourself) to learn how a mod's code works. You don't need Node.js, a bundler, or a build step, because Claude Code loads `.js` and `.ts` files directly.
from line 61
6161 
6262* **Nobody is there to approve**: the session can't show you a prompt, as in a `claude -p` run or [`dontAsk` mode](/docs/en/permission-modes)
6363* **The workspace isn't trusted**: you haven't accepted the trust prompt for the directory
64* **Mods are stopped**: you started with `--safe-mode` or `--bare`, you set `disableAllHooks`, or your organization's [managed settings block it](/docs/en/plugins/mods/admin#choose-how-much-to-allow)
64* **Mods are disabled**: you started with `--safe-mode` or `--bare`, you set `disableAllHooks`, or your organization's [managed settings block it](/docs/en/plugins/mods/admin#choose-how-much-to-allow)
6565 
6666## Write a mod yourself
6767 
from line 237
237237* **The event**, named `e`: the [event's input](/docs/en/plugins/mods/reference#events) as plain data, such as a tool call's name and arguments
238238* **The next handler**, named [`next`](/docs/en/plugins/mods/events#how-a-hook-handles-an-event): a function that passes the event on to the other mods and then to Claude Code's own behavior, and returns the result
239239 
240The hooks in `first-mod` handle their events in the three ways a hook can:
240The hooks in `first-mod` handle their events in these ways:
241241 
242242* **Observe**: the `session.start` hook registers the command, and the `tool.call` hook counts the call and asks for a redraw. Both return `next(e)`, so the session starts and the tool runs as usual.
243243* **Answer**: the `command.run` hook returns its own result and never calls `next`. The second argument to `on`, `{ command: 'tally' }`, is a filter, called a [matcher](/docs/en/plugins/mods/events#filter-which-events-a-hook-handles), so the hook runs only for `/tally`.
244244* **Rewrite**: the `ui.render` hook calls `next` with a copy of `e` whose `suffix` holds the count, so Claude Code draws its usual spinner with your text after the word
245245 
246Claude Code watches a directory loaded with `--plugin-dir` and hot-reloads the hooks module when a file in it changes. Each reload runs `register` again, so `calls` goes back to `0` and `/tally` starts counting again. To keep a value across reloads, see [Keep state](/docs/en/plugins/mods/interface#keep-state).
246Claude Code watches a directory loaded with `--plugin-dir` and hot-reloads the hooks module when a file in it changes. Each reload runs `register` again, so `calls` resets to `0` and `/tally` starts counting again. To keep a value across reloads, see [Keep state](/docs/en/plugins/mods/interface#keep-state).
247247 
248248## Keep working on a mod
249249 
from line 300
300300 
301301The `hooks:` line lists the events your module hooks, each with its filter in braces. The `calls:` line lists every mods API method it calls. A module that reads or sets environment variables also gets `env reads:` and `env writes:` lines, and one that uses [`$.state`](/docs/en/plugins/mods/interface#keep-state) gets `state reads:` and `state writes:`.
302302 
303If an event you meant to hook is missing from the first line, Claude Code won't call that hook either. The usual cause is a misspelled event name, which the command reports as an error such as `"tool.calls" is not an event`.
303If an event you meant to handle is missing from the first line, Claude Code won't call that hook either. The usual cause is a misspelled event name, which the command reports as an error such as `"tool.calls" is not an event`.
304304 
305305Follow these rules so that static analysis can find every hook and call:
306306 
307* Spell each mods API call in full: `$`, the namespace, then the method, as in `$.store.get('notes')`. You can pass `$` to a function declared at the top level of the same file, and for a function of yours named `loadNotes`, the `calls:` line then reads `$.store.get (via loadNotes)`. Passing `$` to a method, a function defined inside the hook, or a function you import from another of your files fails validation. The `read` and `update` functions that [`$.state`](/docs/en/plugins/mods/interface#keep-state) uses are the imports that can take it. Don't assign `$` or one of its namespaces to a variable, destructure it, or index it with a computed name. `const ui = $.ui` fails with `$.ui is used as a value`.
307* Write each mods API call in full: `$`, the namespace, then the method, as in `$.store.get('notes')`. You can pass `$` to a function declared at the top level of the same file, and for a function of yours named `loadNotes`, the `calls:` line then reads `$.store.get (via loadNotes)`. Passing `$` to a method, a function defined inside the hook, or a function you import from another of your files fails validation. The `read` and `update` functions that [`$.state`](/docs/en/plugins/mods/interface#keep-state) uses are the imports that can take it. Don't assign `$` or one of its namespaces to a variable, destructure it, or index it with a computed name. `const ui = $.ui` fails with `$.ui is used as a value`.
308308* Write the event name in each `on` call as a string literal, such as `'tool.call'`. A variable, or a loop over a list of names, fails with `the event name passed to on() is not a string literal`.
309309* Inside `register`, don't declare a second variable or parameter named `on`. Validation fails with `"on" is declared again (shadowed)`.
310310* Import only from files inside the plugin directory, by relative path. The one bare import allowed is `claude-code`, for types and a few helpers.
from line 313
313313 
314314### Test the mod
315315 
316You can write automated tests for a mod and run them from your shell with `claude plugin test`, with no session, sign-in, or network. A test raises the events your hooks handle and checks what the hooks did.
316You can write automated tests for a mod and run them from your shell with `claude plugin test`, with no session, sign-in, or network. A test fires the events your hooks handle and checks what the hooks did.
317317 
318This test raises two tool calls, runs `/tally`, and checks that the reply counts both. Save it as `first-mod/tests/first-mod.test.ts`:
318This test fires two tool calls, runs `/tally`, and checks that the reply counts both. Save it as `first-mod/tests/first-mod.test.ts`:
319319 
320320```typescript first-mod/tests/first-mod.test.ts theme={null}
321321import { expect, test } from 'claude-code/testing'
from line 324
324324 // Answer each tool call in Claude Code's place, so no tool runs
325325 on('tool.call', () => ({ result: 'ok' }))
326326 
327 // Raise two tool calls, which the mod's tool.call hook counts
327 // Fire two tool calls, which the mod's tool.call hook counts
328328 await $.tool.call({ tool: 'Bash', command: 'ls' })
329329 await $.tool.call({ tool: 'Read', file_path: 'README.md' })
330330 
from line 359
359359 
360360Before you do, check the plugin's `name`: `claude plugin validate` fails a name that [looks like one of Anthropic's own](/docs/en/plugins/manifest-reference#name), such as one that starts with `claude-`. The events and methods can change between releases, so your README is the place to say which Claude Code version you tested with.
361361 
362Keep developing against the directory with `--plugin-dir`, not against an installed copy. Claude Code caches an installed plugin by version, so your edits don't reach the installed copy until you raise the version and install again.
362Keep developing against the directory with `--plugin-dir`, not against an installed copy. Claude Code caches an installed plugin by version, so your edits don't reach the installed copy until you increment the version and install again.
363363 
364364## Next steps
365365 

plugins/mods/events Changed · +14 / -12 lines

### Hook the settings hook events

from line 42
4242 
4343### Rewrite an event
4444 
45To change what Claude Code acts on, such as the text of a prompt, call `next` with a modified copy of the event. The event itself is immutable: it's frozen at every depth, and assigning to a field throws. This hook trims each prompt before it's sent:
45To change what Claude Code acts on, such as the text of a prompt, call `next` with a modified copy of the event. The event itself is immutable: it's deeply frozen, and assigning to a field throws. This hook trims each prompt before it's sent:
4646 
4747```javascript theme={null}
4848on('prompt.submit', async ($, e, next) => {
from line 83
8383 
8484`hook` runs once for a Bash, Edit, or Write call, and once for a call to a tool whose name starts with `mcp__github__`. A call to any other tool, such as Read, matches none of the three, so `hook` doesn't run for it.
8585 
86The event name can be a wildcard. `'classic.*'` matches every [settings hook event](#hook-the-settings-hook-events). `'*'` matches every event except the [telemetry events](/docs/en/plugins/mods/reference#telemetry), which you hook by name or as `'telemetry.*'`.
86The event name can be a wildcard. `'classic.*'` matches every [settings hook event](#hook-the-settings-hook-events). `'*'` matches every event except the [telemetry events](/docs/en/plugins/mods/reference#telemetry), which take their own name and a `{ to: 'collector' }` filter.
8787 
8888Register each event once per matcher. If you call `on` twice for `session.start` with no matcher, the module fails to load with `on("session.start") is registered twice without a matcher`. Put everything your mod does at session start in one hook.
8989 
9090## Hook what Claude is doing
9191 
92Hook these events to see or change a tool call, a prompt, or a turn as it happens. For every event and what a hook can return, see the [events reference](/docs/en/plugins/mods/reference#events).
92Handle these events to see or change a tool call, a prompt, or a turn as it happens. For every event and what a hook can return, see the [events reference](/docs/en/plugins/mods/reference#events).
9393 
9494### Guard or change a tool call
9595 
from line 168
168168* **The user types an answer**: `$.ui.ask` resolves to the typed text. The hook compares it with `Run it`, so any other text refuses the command.
169169* **Nobody answers**: `$.ui.ask` rejects when the user dismisses the question or picks **Chat about this**, and in a `claude -p` run, so the `catch` block leaves the answer at `Refuse`
170170 
171Keep the wait inside a mods API call such as `$.ui.ask`, because that time doesn't count against the hook's [10-second time limit](/docs/en/plugins/mods/reference#limits). Time spent awaiting a promise of your own does count. Claude Code skips a hook that times out, so the held command would run.
171Keep the wait inside a mods API call such as `$.ui.ask`, because that time doesn't count against the hook's [time limit](/docs/en/plugins/mods/reference#limits). Time spent awaiting a promise of your own does count. Claude Code skips a hook that times out, so the held command would run.
172172 
173173#### Approve or refuse a tool call before the user is asked
174174 
from line 193
193193 
194194The hook matches the text of the command, so treat it as a reminder for Claude. To block pushes to `main` for everyone, protect the branch on your Git host.
195195 
196A hook can return any of the three decisions, so it can also approve a call that a `PreToolUse` hook outside managed settings blocked. [Extend permissions with hooks](/docs/en/permissions#extend-permissions-with-hooks) lists which decisions hold over a mod.
196A hook can return `allow`, `ask`, or `deny`, so it can also approve a call that a `PreToolUse` hook outside managed settings blocked. [Extend permissions with hooks](/docs/en/permissions#extend-permissions-with-hooks) lists which decisions hold over a mod.
197197 
198198### Rewrite or add to a prompt
199199 
from line 225
225225 
226226### Follow a turn
227227 
228A turn is everything Claude does in answer to one prompt. Hook `turn.start`, `turn.step`, and `turn.complete` to follow one:
228A turn is everything Claude does in answer to one prompt. Handle `turn.start`, `turn.step`, and `turn.complete` to follow one:
229229 
230230| Event | When it fires | What a hook can do |
231231| :- | :- | :- |
from line 251
251251 
252252Claude's response streams to the screen as it does without the mod. After each request finishes, a dim line in the transcript gives the number of tokens read from the cache and the number written to it. A turn with tool calls has several requests, so it adds several lines.
253253 
254`result.usage` holds the four token counts the Claude API reports for a request, plus the `model` that answered: `input_tokens`, `output_tokens`, `cache_read_input_tokens`, and `cache_creation_input_tokens`. The hook runs for subagents' requests too, so check `e.agentId` when you want only the main conversation.
254`result.usage` holds the token counts the Claude API reports for a request, plus the `model` that answered: `input_tokens`, `output_tokens`, `cache_read_input_tokens`, and `cache_creation_input_tokens`. The hook runs for subagents' requests too, so check `e.agentId` when you want only the main conversation.
255255 
256### Hook the settings hook events
256<h3 id="hook-the-settings-hook-events">
257 Handle the settings hook events
258</h3>
257259 
258260Settings hooks are the command, HTTP, prompt, and agent hooks you configure in settings files. Each [settings hook event](/docs/en/hooks#hook-events), such as `Stop`, `SessionEnd`, or `PostToolUse`, is also an event named `classic.` followed by the settings hook event's name, such as `classic.Stop`. `e` is the JSON a settings hook receives on stdin, including `transcript_path`.
259261 
from line 274
272274 
273275## Run alongside other mods
274276 
275Several mods can hook the same event, and any one of them can fail. If your mod blocks tool calls, check its position in the chain and what happens when its hook fails.
277Several mods can handle the same event, and any one of them can fail. If your mod blocks tool calls, check its position in the chain and what happens when its hook fails.
276278 
277279### The order mods run in
278280 
from line 317
315317})
316318```
317319 
318While `guard` works, the handler never runs. When `guard` throws or times out on a Bash call, Claude Code calls the handler with the same event. The handler returns `{ deny }`, so the command doesn't run, and Claude reads the text with `throw` or `timeout` at the end. Without the handler, Claude Code would skip `guard` and run the command. The handler has [one second](/docs/en/plugins/mods/reference#limits) to answer.
320While `guard` works, the handler never runs. When `guard` throws or times out on a Bash call, Claude Code calls the handler with the same event. The handler returns `{ deny }`, so the command doesn't run, and Claude reads the text with `throw` or `timeout` at the end. Without the handler, Claude Code would skip `guard` and run the command. The handler has a shorter [time limit](/docs/en/plugins/mods/reference#limits) of its own.
319321 
320322## Next steps
321323 
322324* [Use the mods API](/docs/en/plugins/mods/api): add commands and tools, call a model, and run work on a timer
323325* [Draw in the interface](/docs/en/plugins/mods/interface): show what your hooks collect in a pane or above the prompt
324* [Test a mod](/docs/en/plugins/mods/test): raise any of these events from a test
326* [Test a mod](/docs/en/plugins/mods/test): fire any of these events from a test
325327* [Mods reference](/docs/en/plugins/mods/reference): every event, every mods API method, and the limits
326328 

plugins/mods/interface Changed · +33 / -33 lines

from line 2
22 
33> Draw panes, a band above the prompt, buttons, and text fields from a Claude Code mod, handle presses and input, and keep state between redraws and sessions.
44 
5A mod can draw its own interface in Claude Code and change parts of the interface Claude Code already draws. Each place a mod can draw is called a [render site](/docs/en/plugins/mods/reference#render-sites), such as a pane, the band above the prompt, or the spinner. Claude Code raises the [`ui.render`](/docs/en/plugins/mods/reference#interface) event each time it's about to draw a render site, and your hook for that event returns what to draw there.
5A mod can draw its own interface in Claude Code and change parts of the interface Claude Code already draws. Each place a mod can draw is called a [render site](/docs/en/plugins/mods/reference#render-sites), such as a pane, the band above the prompt, or the spinner. Claude Code fires the [`ui.render`](/docs/en/plugins/mods/reference#interface) event each time it's about to draw a render site, and your hook for that event returns what to draw there.
66 
77This map shows where a mod can draw in a terminal session:
88 
from line 30
3030 <video autoPlay muted loop playsInline controls className="w-full hidden dark:block" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-hello-tabs-dark.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=ff7a14d713d6e5d3b0000efa8522ea4b" aria-label="The /hello-tabs command is typed at the Claude Code prompt and a framed pane opens above it, with '1: One' and '2: Two' across the top and the text 'This is the first tab.' The second tab shows an 'Add one' button beside 'Count: 1', and the count rises to 3. The pane then returns to the first tab." data-path="images/mods-hello-tabs-dark.mp4" />
3131</Frame>
3232 
33Claude Code has no built-in tabs element, so the tabs are two buttons in a row. The mod keeps track of which one is active and draws that tab's content under the row.
33The tabs are two buttons in a row. The mod keeps track of which one is active and draws that tab's content under the row.
3434 
3535<Steps>
3636 <Step title="Create the plugin">
from line 57
5757 </Step>
5858 
5959 <Step title="Write the code">
60 The code does three jobs, one in each hook:
60 This list says what each hook does, in the order they appear in the code:
6161 
62 * Adds the `/hello-tabs` command
62 * Adds the `/hello-tabs` command, and loads the count an earlier session saved
6363 * Opens the pane when you run that command
6464 * Draws the pane's content: the row of tabs and the open tab's body
6565 
from line 162
162162 Each hook also does something the code doesn't make plain:
163163 
164164 * **[`session.start`](/docs/en/plugins/mods/reference#session)** also reads the saved count from [`$.store`](#keep-state), a key-value store that persists between sessions.
165 * **[`command.run`](/docs/en/plugins/mods/api#add-a-command)** only tells Claude Code the pane exists. Opening a pane draws nothing by itself: Claude Code then raises `ui.render` to ask what goes in it.
165 * **[`command.run`](/docs/en/plugins/mods/api#add-a-command)** only tells Claude Code the pane exists. Opening a pane draws nothing by itself: Claude Code then fires `ui.render` to ask what goes in it.
166166 * **`ui.render`** returns the element tree, a `Box` that holds other boxes, text, and buttons, and builds it again from `tab` and `count` each time it runs.
167167 
168168 Pressing a button runs its `onPress` callback, which changes a variable and calls `redraw`. Claude Code then runs the `ui.render` hook again, and the hook builds a new tree from the new values. Every interactive drawing uses that render cycle: a callback changes state, and the hook renders again from the new state.
from line 183
183183 
184184A `ui.render` hook runs for every render site unless you narrow it to the one you want to draw in. To choose the render site, pass a filter, called a [matcher](/docs/en/plugins/mods/events#filter-which-events-a-hook-handles), as the second argument to `on`. `{ component: 'Pane' }` runs the hook only for panes. In the hook, `e.component` names the site, `e.surface` says which app is drawing, and `e.props` holds the site's own data. For a pane, `e.requestId` is the `id` you opened it with.
185185 
186Two sites are empty until a mod fills them, the pane and the band. Select a tab to see what each one is and how to draw in it:
186The pane and the band are empty until a mod fills them. Select a tab to see what each one is and how to draw in it:
187187 
188188<Tabs>
189189 <Tab title="Pane">
from line 210
210210| Site | What it is |
211211| :- | :- |
212212| `UserMessage`, `AssistantMessage` | A message in the transcript |
213| `ToolUse`, `ToolResult`, `ToolGroup` | A tool call's row, its result, and a folded run of calls |
213| `ToolUse`, `ToolResult`, `ToolGroup` | A tool call's row, its result, and a collapsed group of calls |
214214| `CommandOutput` | The row a command printed |
215215| `AskUserQuestion` | The dialog Claude opens to ask you a question |
216216| `Spinner`, `ToolProgress`, `TurnDuration` | Status lines for a turn: the line that animates while Claude works, a running tool's live progress line, and the line that closes a turn |
217217| `InfoNotice`, `SessionMode`, `PromptHint` | Status lines under the logo, the mode labels in the footer, and the hint line under the prompt |
218218 
219At a site Claude Code already draws, your hook has three choices: change a detail, replace the drawing, or leave it alone. Select a tab to see each one applied to the spinner. The examples read a `calls` variable that another hook counts, as in the [tutorial mod](/docs/en/plugins/mods/create#write-a-mod-yourself).
219At a site Claude Code already draws, your hook can change a detail, replace the drawing, or leave it alone. Select a tab to see each one applied to the spinner. The examples read a `calls` variable that another hook counts, as in the [tutorial mod](/docs/en/plugins/mods/create#write-a-mod-yourself).
220220 
221221<Tabs>
222222 <Tab title="Change a detail">
from line 332
332332* **Opened by something the user did**, such as a command they ran or a button they pressed, the pane appears at any width
333333* **Opened by your mod acting by itself**, such as from a timer or a [`turn.start`](/docs/en/plugins/mods/events#follow-a-turn) hook, the pane appears only in a terminal at least 144 columns wide. After the user has opened that pane once themselves, 110 columns is enough.
334334 
335When the pane appears, `$.ui.open` resolves to `{ isPlaced: true }`. When the pane is waiting, `isPlaced` is `false` and `reason` is a string that says why. A waiting pane appears when the user opens it or widens the terminal. To say something is available without opening a pane, call `$.ui.toast('Your message')`, which shows a small notice that disappears after a few seconds.
335When the pane appears, `$.ui.open` resolves to `{ isPlaced: true }`. When the pane is waiting, `isPlaced` is `false` and `reason` is a string that says why. A waiting pane appears when the user opens it or widens the terminal. To say something is available without opening a pane, call `$.ui.toast('Your message')`, which shows a toast notification.
336336 
337337## Build a tree from elements
338338 
from line 340
340340 
341341To get the elements, call `$.ui.resolve(e)` in your hook, as in `const { Box, Text, Button } = $.ui.resolve(e)`. Each element is a function. You pass it props, and you put the elements and strings that go inside it in `children`.
342342 
343Most drawings use four elements. Select a tab to see each one and how the terminal draws it:
343Select a tab to see each of the most common elements and how the terminal draws it:
344344 
345345<Tabs>
346346 <Tab title="Text">
from line 416
416416| `Text` | Styled text. Takes `color`, `bold`, `dimColor`, `italic`, and `wrap`. A `color` is a theme key or a color such as `'red'`. A `wrap` is `'wrap'`, `'truncate'`, `'truncate-start'`, `'truncate-middle'`, or `'truncate-end'`. | Everywhere |
417417| `Button` | A control that calls `onPress` | Everywhere |
418418| `Link`, `Code`, `Markdown` | A link with `href` and an optional `label`, a code block, and text formatted the way Claude's replies are. `Markdown` takes its content in a `text` prop, not in `children`, and needs a `key` when you pass `onLinkPress`. | Everywhere |
419| `Input`, `Select` | A text field and a picker | Terminal, Desktop |
419| `Input`, `Select` | A text field and a dropdown | Terminal, Desktop |
420420| `Svg` | An SVG document | Desktop |
421421| `Client` | A region drawn by a second file of yours, for animation and pointer input. That file gets no mods API. It reaches your hooks only by posting data, which arrives as a `ui.message` event. | Terminal, Desktop |
422422| `Raster`, `Image` | A [grid of colored cells](#draw-a-grid-of-colored-cells), and a picture | Terminal |
423423 
424If your module is a `.tsx` or `.jsx` file, you can write the tree as JSX. Destructure the elements from `$.ui.resolve(e)` first, because a hooks module has no element globals.
424If your module is a `.tsx` or `.jsx` file, you can write the tree as JSX. Destructure the elements from `$.ui.resolve(e)` first.
425425 
426426If a tree uses an element the app doesn't have, a prop an element doesn't take, or a child where none goes, Claude Code draws its own version of the site.
427427 
from line 429
429429 
430430### Draw a grid of colored cells
431431 
432For a heat map, a sparkline, or a game board in the terminal, draw one `Raster` and not a `Box` for each cell. A `Raster` takes a `key`, its size in `columns` and `rows`, and `cells`, which packs every cell into one string. Each cell is three numbers: the character's code point, its color, and its background color. A color is a hexadecimal number with two digits each for red, green, and blue, such as `0xc62828` for a red, or `0x01000000` for the terminal's default.
432For a heat map, a sparkline, or a game board in the terminal, draw one `Raster` and not a `Box` for each cell. A `Raster` takes a `key`, its size in `columns` and `rows`, and `cells`, a base64 string that packs every cell. Each cell is three numbers: the character's code point, its color, and its background color. A color is a 24-bit RGB value in hexadecimal, such as `0xc62828` for a red. The value `0x01000000`, one above that range, means the terminal's default.
433433 
434434The Desktop app has no `Raster`, so check `e.surface` and draw text there. This pane body draws a three by two heat map:
435435 
from line 473
473473 
474474## Respond to presses and typing
475475 
476When the user presses a button, types into a field, or picks from a list your mod drew, Claude Code calls the function you gave that control, and it runs in your module. Each control takes its own callbacks:
476When the user presses a button, types into a field, or picks from a list your mod drew, Claude Code calls that control's callback, which runs in your module. Each control takes its own callbacks:
477477 
478478* **`Button`**: takes `onPress(e)`, where `e.surface` is the app the press came from
479479* **`Input`**: takes `onSubmit(value)` and `onInput(value)`
480480* **`Select`**: takes `onSelect(value)` with its choices in `options`, a list of at least one choice with unique values, such as `[{ value: 'sm', label: 'Small' }, { value: 'lg', label: 'Large' }]`
481481 
482A test presses or types into a control by its `key`, so give each control one. Each use of a control also fires [`ui.press`, `ui.input`, or `ui.select`](/docs/en/plugins/mods/reference#interface) with the `key` in `e.element`, and another mod can hook those events. Its hook runs before your callback, so it sees what the user types into your `Input` and can change it or answer in place of your callback. The mods API has no method that presses another mod's button.
482A test presses or types into a control by its `key`, so give each control one. Each use of a control also fires [`ui.press`, `ui.input`, or `ui.select`](/docs/en/plugins/mods/reference#interface) with the `key` in `e.element`, and another mod can handle those events. Its hook runs before your callback, so it sees what the user types into your `Input` and can change it or answer in place of your callback. The mods API has no method that presses another mod's button.
483483 
484484<h3 id="know-which-keys-your-mod-can-receive">
485485 Keyboard focus and hotkeys
from line 489
489489 
490490#### How a pane gets keyboard focus
491491 
492A pane gets keyboard focus in one of three ways:
492A pane gets keyboard focus when:
493493 
494494* Your mod opens it with `focus: true` from a command or a press
495495* The user presses Ctrl+X then Tab
from line 513
513513 
514514#### Set a hotkey and the first focus
515515 
516Two props on a control decide how the keyboard reaches it:
516These props on a control decide how the keyboard reaches it:
517517 
518518* **`hotkey`**: to let the user press a `Button` with one key, give it a `hotkey` of one digit or one lowercase letter, as in `hotkey: 'a'`
519* **`autoFocus`**: to choose which control has the focus when the pane opens, add `autoFocus: true` to it. Leave the prop off the others, because Claude Code refuses `autoFocus: false`.
519* **`autoFocus`**: to choose which control has the focus when the pane opens, add `autoFocus: true` to it. The prop accepts only `true`, so omit it on the other controls.
520520 
521521How a hotkey shows depends on the button and the app:
522522 
from line 539
539539╰──────────────────────────────────────────────────────────╯
540540```
541541 
542The example uses two techniques:
542The example uses these techniques:
543543 
544544* **Take typed input**: an `Input` calls `onSubmit(value)` with the field's text when the user presses Enter, and `onInput(value)` on every change
545545* **Draw a list**: map your data to one row each, and give every row's button its own `key`
from line 613
613613 
614614The example saves the notes and doesn't load them. To bring them back in the next session, read them in a `session.start` hook, the way `hello-tabs` reads `count`.
615615 
616Three props make up the field's line, `Note: Type a note and press Enter ⏎ add`:
616These props make up the field's line, `Note: Type a note and press Enter ⏎ add`:
617617 
618618| Prop | In the example | What it is |
619619| :- | :- | :- |
from line 678
678678})
679679```
680680 
681Claude Code now runs your `ui.render` hook once a second. The timer stops when the module reloads, and the new copy of the module starts its own.
681Claude Code now runs your `ui.render` hook once a second. The timer stops when the module reloads, and the new instance of the module starts its own.
682682 
683683### How often a site can redraw
684684 
685Claude Code limits how often it redraws a site, so your mod can call `$.ui.invalidate` as often as its data changes. The visible pane and the band have a higher limit than other sites, and the [limits table](/docs/en/plugins/mods/reference#limits) has the numbers.
685Claude Code throttles redraws of a site, so your mod can call `$.ui.invalidate` as often as its data changes. The visible pane and the band have a higher limit than other sites, and the [limits table](/docs/en/plugins/mods/reference#limits) has the numbers.
686686 
687Calls that come faster than the limit are combined into one redraw. That redraw runs your hook once, and the hook reads your data as it is at that moment, so the latest value shows and the values in between don't. An animation can't run faster than the limit.
687Calls that come faster than the limit are coalesced into one redraw. That redraw runs your hook once, and the hook reads your data as it is at that moment, so the latest value shows and the values in between don't. An animation can't run faster than the limit.
688688 
689689## Keep state
690690 
691A mod has three places to keep a value, and they differ in how long the value lasts: until the module reloads, until the session ends, or from one session to the next. Choose by how long the value has to last:
691Where a mod keeps a value decides how long the value lasts: until the module reloads, until the session ends, or from one session to the next. Choose by how long the value has to last:
692692 
693693| Keep it in | It lasts until | Use it for |
694694| :- | :- | :- |
from line 706
706706 
707707#### Declare the values
708708 
709Declare the values in a types file. The outer key is your plugin's name, and each entry under it is a value and its type. Save this as `hello-tabs/types/index.d.ts`:
709Declare the values in a type declaration file. The outer key is your plugin's name, and each entry under it is a value and its type. Save this as `hello-tabs/types/index.d.ts`:
710710 
711711```typescript hello-tabs/types/index.d.ts theme={null}
712712declare module 'claude-code' {
from line 752
752752 
753753Because the `ui.render` hook read `count`, Claude Code runs the hook again each time the button writes it.
754754 
755Three rules apply to the code:
755These rules apply to the code:
756756 
757* **Write `plugin` and `key` as literal strings**: `claude plugin validate` reads them from your source
758* **Declare every value in the types file**: otherwise validation fails with `hello-tabs.count is not declared`
757* **Write `plugin` and `key` as string literals**: `claude plugin validate` reads them from your source
758* **Declare every value in the type declaration file**: otherwise validation fails with `hello-tabs.count is not declared`
759759* **Write from a callback or another event's hook**: a `ui.render` hook can read state and can't write it, so write from `onPress`, `onSubmit`, or a hook for another event
760760 
761761#### Change `hello-tabs` to use `$.state`
from line 773
773773 Load a saved value again after `/clear`
774774</h3>
775775 
776If your mod copies a saved value from `$.store` into `$.state` at `session.start`, it has to copy it again after `/clear`, `/resume`, or `/branch`. Those commands put every `$.state` value back to its default, and `session.start` doesn't fire again. [`classic.SessionStart`](/docs/en/plugins/mods/events#hook-the-settings-hook-events) does fire after each of them, with `e.source` set to `clear`, `resume`, or `fork`, so copy the value again in a hook on it. Otherwise your drawing shows the default, and a callback that saves the `$.state` value writes the default over what you stored.
776If your mod copies a saved value from `$.store` into `$.state` at `session.start`, it has to copy it again after `/clear`, `/resume`, or `/branch`. Those commands reset every `$.state` value to its default, and `session.start` doesn't fire again. [`classic.SessionStart`](/docs/en/plugins/mods/events#hook-the-settings-hook-events) does fire after each of them, with `e.source` set to `clear`, `resume`, or `fork`, so copy the value again in a hook on it. Otherwise your drawing shows the default, and a callback that saves the `$.state` value writes the default over what you stored.
777777 
778778This code loads `count` from both hooks. It builds on the `$.state` version of `hello-tabs`, where `count` is an atom and `update` is imported. Put `loadCount` above `register`, and add the `loadCount` call to the `session.start` hook you already have. `classic.SessionStart` also fires at startup and after compaction, which doesn't reset `$.state`, so the filter on `source` keeps the hook to the three resets:
779779 
from line 807
807807 
808808Every session on your machine that runs your mod shares one `$.store`. A `get` followed by a `set` isn't atomic. When two sessions each read a value, change it, and write it back, they race, and the second write replaces the first.
809809 
810Two choices make that less likely:
810To make that less likely:
811811 
812812* **Give each item its own key**: a `set` changes only its own key, so sessions that write different keys don't overwrite each other
813813* **Read again right before you write**: for a value that several sessions change, `get` the key in the callback and build the new value from that, not from a copy you loaded at `session.start`. Another session's write is still lost if it lands between your `get` and your `set`.

plugins/mods/overview Changed · +8 / -8 lines

from line 22
2222 
2323## Get a mod
2424 
25You can start with a mod in one of three ways:
25To start with a mod:
2626 
2727* **Use one you already have**: some of Claude Code's own features are mods, such as `/diff`. See [Mods built into Claude Code](#mods-built-into-claude-code).
2828* **Make one**: describe what you want in a Claude Code session, and Claude writes the mod. See [Ask Claude for a mod](/docs/en/plugins/mods/create#ask-claude-for-a-mod). To learn how a mod's code works, [write one yourself](/docs/en/plugins/mods/create#write-a-mod-yourself).
from line 80
8080 
8181### List what a mod does before you install one
8282 
83Before you install a mod, you can list which events it hooks and what it asks Claude Code to do, such as read a file or make a network request, without running it. Get the plugin's files first, for example by cloning its repository. Then, in your shell, run `claude plugin validate` on the plugin's directory:
83Before you install a mod, you can list which events it handles and what it asks Claude Code to do, such as read a file or make a network request, without running it. Get the plugin's files first, for example by cloning its repository. Then, in your shell, run `claude plugin validate` on the plugin's directory:
8484 
8585```bash theme={null}
8686claude plugin validate ./some-mod
from line 95
9595To turn mods off, choose how many to stop, and for how long. To turn them back on, undo the same change:
9696 
9797* **One mod**: disable or uninstall its plugin from the [**Installed** tab in `/plugin`](/docs/en/plugins/install#manage-installed-plugins)
98* **Every installed mod, for one session**: start Claude Code with [`--safe-mode`](/docs/en/cli-reference#cli-flags), which also leaves out your other customizations
98* **Every installed mod, for one session**: start Claude Code with [`--safe-mode`](/docs/en/cli-reference#cli-flags), which also disables your other customizations
9999* **Every mod you installed, in every session**: set [`"disableAllHooks": true`](/docs/en/settings-reference#disableallhooks) in `~/.claude/settings.json`. Your settings hooks and custom status line stop too. What your organization manages keeps running.
100100 
101101If you use Claude Code through an organization, an administrator can also limit which mods load. Administrators start at [Stop user-installed mods from loading](/docs/en/plugins/mods/admin#stop-user-installed-mods-from-loading).
from line 169
169169 
170170### What a hook can do with an event
171171 
172Claude Code runs your hook before it acts on the event, so the hook decides what happens next. It has three choices:
172Claude Code runs your hook before it acts on the event, so the hook decides what happens next. It can:
173173 
174174* **Observe**: note what's happening and let it continue unchanged, as the `tool.call` hook in the example does
175175* **Rewrite**: change the event before it continues, as the `ui.render` hook does when it adds the count to the spinner
from line 211
211211| What you write | JavaScript or TypeScript | A script and a `settings.json` entry | Markdown | A server in any language |
212212| Pick it when | You want a pane, a band above the prompt, a custom command, or to rewrite an event | You want to block, allow, or log an event with a script you already have | You keep pasting the same instructions into chat | Claude needs to reach an external system |
213213 
214Each of the others has its own page: [Hooks](/docs/en/hooks), [Skills](/docs/en/skills), and [MCP](/docs/en/mcp). A plugin can hold all four, so a mod can ship in the same plugin as a skill and an MCP server.
214Each of the others has its own page: [Hooks](/docs/en/hooks), [Skills](/docs/en/skills), and [MCP](/docs/en/mcp). A plugin can hold all of them, so a mod can ship in the same plugin as a skill and an MCP server.
215215 
216216## Mods built into Claude Code
217217 
218Some of Claude Code's own features are mods. To see the ones your session has, run `/plugin` at the Claude Code prompt and go to the **Installed** tab, which lists them under **Built-in**. You can't update or uninstall a built-in mod, and the table's last column says how to turn each one off. The [`mods active` line](#see-which-mods-a-session-loaded) leaves built-in mods out.
218Some of Claude Code's own features are mods. To see the ones your session has, run `/plugin` at the Claude Code prompt and go to the **Installed** tab, which lists them under **Built-in**. You can't update or uninstall a built-in mod, and the table's last column says how to turn each one off. The [`mods active` line](#see-which-mods-a-session-loaded) omits built-in mods.
219219 
220220This table lists each entry by the name `/plugin` shows:
221221 
from line 232
232232 
233233### Read the source of built-in mods
234234 
235The source of four of these mods is public in the [`mods` directory of the Claude Code repository](https://github.com/anthropics/claude-code/tree/main/mods). Each one is a complete plugin with its hooks module and tests:
235The source of some of these mods is public in the [`mods` directory of the Claude Code repository](https://github.com/anthropics/claude-code/tree/main/mods). Each one is a complete plugin with its hooks module and tests:
236236 
237237* [`diff`](https://github.com/anthropics/claude-code/tree/main/mods/diff): the `/diff` pane, with buttons bound to keyboard actions and scrolling the mod handles itself
238238* [`agents-md`](https://github.com/anthropics/claude-code/tree/main/mods/agents-md): loads `AGENTS.md` as project instructions, with a [`userConfig`](/docs/en/plugins/components#user-configuration) option
from line 248
248248* [Test a mod](/docs/en/plugins/mods/test): automated tests that run without a session
249249* [Troubleshoot a mod](/docs/en/plugins/mods/troubleshoot): the reasons a mod does nothing, and the debug log
250250* [Manage mods for your organization](/docs/en/plugins/mods/admin): defaults, managed settings, reviewing a mod, and policy mods
251* [Mods reference](/docs/en/plugins/mods/reference): every event, method, element, and limit
251* [Mods reference](/docs/en/plugins/mods/reference): events, methods, elements, and limits
252252 

plugins/mods/reference Changed · +24 / -24 lines

from line 1
11# Mods reference
22 
3> Complete reference for Claude Code mods: hooks module layout, every event, every mods API method, render sites, elements by surface, limits, and settings.
3> Complete reference for Claude Code mods: hooks module layout, events, mods API methods, render sites, elements by surface, limits, and settings.
44 
5Look up any event a [mod](/docs/en/plugins/mods/overview) can hook, mods API method it can call, or render site it can draw in, for the Claude Code CLI and the Desktop app as of v2.1.287. Each entry gives the name and a one-line description, and links to the guide section that explains it where there is one.
5Look up any event a [mod](/docs/en/plugins/mods/overview) can handle, mods API method it can call, or render site it can draw in, for the Claude Code CLI and the Desktop app as of v2.1.287. Each entry gives the name and a one-line description, and links to the guide section that explains it where there is one.
66 
77<Note>
88 The complete reference is Claude Code's [TypeScript declarations for mods](https://github.com/anthropics/claude-code/blob/main/mods/types/claude-code.d.ts), which describe every event, method, and element, with examples. The copy on GitHub can be older than the Claude Code version you have installed. When the two disagree, trust [the copy Claude Code writes for your version](/docs/en/plugins/mods/create#get-the-types-for-your-build).
from line 31
3131| [`$`](/docs/en/plugins/mods/events#how-a-hook-handles-an-event) | The mods API: every method in [mods API methods](#mods-api-methods). Write each call in full, namespace then method, as in `$.fs.read('notes.md')`. |
3232| [`e`](/docs/en/plugins/mods/events#how-a-hook-handles-an-event) | The event's input, as deeply frozen plain data. To change it, pass a copy to `next`. |
3333| [`next(e)`](/docs/en/plugins/mods/events#how-a-hook-handles-an-event) | The next handler, as in middleware. Runs the hooks after this one, then Claude Code's behavior. Resolves to the event's result. |
34| [`next.signal`](/docs/en/plugins/mods/api#stop-background-work) | An `AbortSignal` that fires when the event is abandoned |
35| `next.origin` | `{ plugin, tier }` of whoever raised the event. Claude Code itself is `{ plugin: 'engine', tier: 'core' }`. A mod's `tier` is its priority group in the [order mods run in](/docs/en/plugins/mods/events#the-order-mods-run-in): `prepend`, `user`, `append`, or `builtin`. |
34| [`next.signal`](/docs/en/plugins/mods/api#stop-background-work) | An `AbortSignal` that aborts when the event is abandoned |
35| `next.origin` | `{ plugin, tier }` of whoever fired the event. Claude Code itself is `{ plugin: 'engine', tier: 'core' }`. A mod's `tier` is its priority group in the [order mods run in](/docs/en/plugins/mods/events#the-order-mods-run-in): `prepend`, `user`, `append`, or `builtin`. |
3636| `next.budget` | The hook's time limit in milliseconds: `next.budget.ms` is the whole limit, and `next.budget.remainingMs` is what's left now |
3737| `next.to(e, tier)` | Skips to a later tier, which is `append`, `builtin`, or `core`. `next.to(e, 'append')` skips the mods a user installed. Only a mod in `prependPlugins` or `appendPlugins` can call it. |
3838| `next.error`, `next.called` | In a `.catch` handler only. `next.error.kind` is `throw` or `timeout`, `next.error.message` is the error's text, and `next.called` is `true` when the failed hook had called `next`. |
from line 39
3939 
4040## Events
4141 
42Every event a mod can hook is listed here, grouped by what it concerns, with when it fires and what a hook on it can return. Hooks on `turn.step` and `process.spawn` are async generators, and every other hook is an async function.
42Events are grouped by what they concern, each with when it fires and what a hook on it can return. Hooks on `turn.step` and `process.spawn` are async generators, and other hooks are async functions.
4343 
4444The last column of each table uses shorthand. `next(e)` passes the event on unchanged. `next({ ...e, text })` passes on a copy with the named field changed, as in `next({ ...e, text: e.text.trim() })`. An object answers the event without calling `next`, and a word such as `reason` stands for a string you write, as in `{ deny: 'Use the file tools.' }`.
4545 
from line 63
6363| `prompt.fill`, `prompt.suggest` | Text is about to go into the prompt box as a draft, or as a dim suggestion | `next(e)` with changed text |
6464| `prompt.edit` | The user edits the prompt box | `next(e)` |
6565| `prompt.compose` | Claude Code renders a system prompt | `{ sections }`, a list of `{ id, text, scope }` in the order they're sent |
66| [`prompt.section`](/docs/en/plugins/mods/events#rewrite-or-add-to-a-prompt) | Once for each named section of the system prompt. `e.name` is the section's `id` in `prompt.compose`. | `{ text }`, or `{ text: null }` to leave the section out |
66| [`prompt.section`](/docs/en/plugins/mods/events#rewrite-or-add-to-a-prompt) | Once for each named section of the system prompt. `e.name` is the section's `id` in `prompt.compose`. | `{ text }`, or `{ text: null }` to omit the section |
6767| [`prompt.context`](/docs/en/plugins/mods/events#rewrite-or-add-to-a-prompt) | Once for each conversation, for the context sent with the first message | `{ blocks }` |
68| `prompt.attachment` | Claude Code adds a message of its own for Claude, such as a reminder. `e.type` names the kind, and for the kinds the types declare, `e.detail` holds the facts the text was written from. | `{ text }`, or `{ text: null }` to leave it out |
68| `prompt.attachment` | Claude Code adds a message of its own for Claude, such as a reminder. `e.type` names the kind, and for the kinds the types declare, `e.detail` holds the facts the text was written from. | `{ text }`, or `{ text: null }` to omit it |
6969| [`skill.prompt`](/docs/en/plugins/mods/events#rewrite-or-add-to-a-prompt) | A skill's text is expanded for Claude | `{ text }` |
7070| `attribution.text` | Claude Code composes commit or pull request attribution text | `{ text }` |
7171 
from line 130
130130 
131131### Other mods
132132 
133Two events let a mod act on other mods as they load, to refuse one or change the mods API it receives:
133These events let a mod act on other mods as they load, to refuse one or change the mods API it receives:
134134 
135135| Event | Fires when | A hook can return |
136136| :- | :- | :- |
137| [`plugin.register`](/docs/en/plugins/mods/admin#enforce-a-policy-with-a-mod-of-your-own) | A hooks module is about to load. `e.uses` lists its events, mods API calls, environment variables, and state, as `claude plugin validate` prints them. Each call is spelled without the `$.` prefix, such as `fs.read`. | `{ refuse: reason }` |
137| [`plugin.register`](/docs/en/plugins/mods/admin#enforce-a-policy-with-a-mod-of-your-own) | A hooks module is about to load. `e.uses` lists its events, mods API calls, environment variables, and state, as `claude plugin validate` prints them. Each call is written without the `$.` prefix, such as `fs.read`. | `{ refuse: reason }` |
138138| `engine.create` | The mods API is being built for this mod | A changed mods API, to add a namespace or withhold one |
139139 
140140### Telemetry
from line 143
143143 
144144| Event | Fires when | A hook can return |
145145| :- | :- | :- |
146| `telemetry.log`, `telemetry.mark` | A telemetry record is about to be logged, or one use of a feature is marked. Hook them by name or as `telemetry.*`, because `*` in a mod you install doesn't select them. | `next(e)`, or `{ deny: reason }` |
146| `telemetry.log`, `telemetry.mark` | A telemetry record is about to be logged, or one use of a feature is marked. In a mod you install, give a telemetry hook the filter `{ to: 'collector' }`, as in `on('telemetry.log', { to: 'collector' }, hook)`. Without the filter, the mod fails `claude plugin validate`. `*` doesn't match these events. | `next(e)`, or `{ deny: reason }` |
147147 
148148### Settings hook events
149149 
from line 179
179179| [`$.process`](/docs/en/plugins/mods/api#reach-files-processes-and-the-network) | `run`, `spawn` |
180180| [`$.mcp`](/docs/en/plugins/mods/api#reach-files-processes-and-the-network) | `call`, `connect`. `connect(server)` connects an MCP server that your own plugin's manifest lists. |
181181| `$.audio` | `play`, `speak` |
182| `$.telemetry` | `log`, `mark`. A record is sent only when Claude Code or a built-in mod raised it. |
182| `$.telemetry` | `log`, `mark`. A record is sent only when Claude Code or a built-in mod makes the call. |
183183 
184184## Render sites
185185 
186A render site is an extension point in Claude Code's interface. Each row is a value of `e.component` in a `ui.render` hook, with the fields of `e.props` and the apps that raise it. `e.surface` is `terminal` or `desktop`. [Change what Claude Code already draws](/docs/en/plugins/mods/interface#change-what-claude-code-already-draws) shows what a hook can do at a site, with an example of each choice.
186A render site is an extension point in Claude Code's interface. Each row is a value of `e.component` in a `ui.render` hook, with the fields of `e.props` and the apps that render it. `e.surface` is `terminal` or `desktop`. [Change what Claude Code already draws](/docs/en/plugins/mods/interface#change-what-claude-code-already-draws) shows what a hook can do at a site, with an example of each choice.
187187 
188| Site | `e.props` | `e.requestId` | Raised on |
188| Site | `e.props` | `e.requestId` | Rendered on |
189189| :- | :- | :- | :- |
190190| [`Pane`](/docs/en/plugins/mods/interface#pick-where-to-draw) | `title`, `isFocused`, `bodyColumns`, `placement`, `scroll`, `view` | The pane's `id` | Terminal, Desktop |
191191| [`AbovePrompt`](/docs/en/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`, `isWorking`, `maxRows`, `bodyColumns`, `scroll`, `view` | One instance | Terminal, Desktop |
from line 230
230230| [`Raster`](/docs/en/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`, `columns` up to 512, `rows` up to 256, `cells`. See [Draw a grid of colored cells](/docs/en/plugins/mods/interface#draw-a-grid-of-colored-cells). | ✓ | |
231231| `Image` | PNG or RGBA bytes up to 2 MiB, or a file path | ✓ | |
232232 
233Three more `Button` rules: `action` names one of Claude Code's own [keybinding actions](/docs/en/keybindings), and the user's binding for it presses the button when that binding is a chord or a modified key. A digit `hotkey` on a button in the band also fires when the user types that digit alone into an empty prompt and pauses. When two buttons in one drawing name the same `hotkey`, the later one gets it. Claude Code refuses `autoFocus: false` on any control, so leave the prop off instead.
233More `Button` rules: `action` names one of Claude Code's own [keybinding actions](/docs/en/keybindings), and the user's binding for it presses the button when that binding is a chord or a modified key. A digit `hotkey` on a button in the band also fires when the user types that digit alone into an empty prompt and pauses. When two buttons in one drawing name the same `hotkey`, the later one gets it. `autoFocus` accepts only `true` on any control, so omit the prop to leave it off.
234234 
235235## Limits
236236 
237Hooks and mods API calls run under time and size limits. Claude Code skips a hook that runs past a time limit and rejects a call that passes a size limit.
237Hooks and mods API calls run under time and size limits. Claude Code skips a hook that exceeds a time limit and rejects a call that exceeds a size limit.
238238 
239239| Limit | Value |
240240| :- | :- |
241| A hook's own running time for one event, not counting time inside `next` or a mods API call other than `$.clock.sleep` | 10 seconds |
242| A `.catch` handler's running time | 1 second |
241| A hook's own execution time for one event, not counting time inside `next` or a mods API call other than `$.clock.sleep` | 10 seconds |
242| A `.catch` handler's execution time | 1 second |
243243| All `session.end` hooks together | 1.5 seconds |
244244| `$.process.run` timeout | 30 seconds by default, 10 minutes at most |
245245| `$.model.complete` `maxTokens` | 1024 by default, up to 64,000 or the model's output limit |
from line 273
273273 
274274## Commands
275275 
276These commands and flags load, inspect, and test a mod. The `claude` commands run in your shell and the `/` commands at the Claude Code prompt. In the table, `<directory>` stands for a path you type, as in `claude plugin validate ./first-mod`. Square brackets mark an argument you can leave out.
276These commands and flags load, inspect, and test a mod. The `claude` commands run in your shell and the `/` commands at the Claude Code prompt. In the table, `<directory>` stands for a path you type, as in `claude plugin validate ./first-mod`. Square brackets mark an optional argument.
277277 
278278| Command | What it does |
279279| :- | :- |
280280| [`/plugin`](/docs/en/plugins/mods/overview#see-which-mods-a-session-loaded) | Shows a line such as `1 mod active · first-mod` under its tabs when a mod that isn't built in has loaded |
281| [`claude plugin validate <directory>`](/docs/en/plugins/mods/create#check-what-claude-code-reads-from-your-mod) | Reads a plugin's manifest and hooks module and reports errors, the events it hooks, and the mods API calls it makes. `--strict` treats warnings as errors and `--json` prints a machine-readable report. |
281| [`claude plugin validate <directory>`](/docs/en/plugins/mods/create#check-what-claude-code-reads-from-your-mod) | Reads a plugin's manifest and hooks module and reports errors, the events it handles, and the mods API calls it makes. `--strict` treats warnings as errors and `--json` prints a machine-readable report. |
282282| [`claude plugin test [directory]`](/docs/en/plugins/mods/test#write-a-test) | Runs every file under the directory, or the current directory when you give none, whose name ends in `.test.ts` or `.test.tsx`. Exits with status 1 when a test fails. |
283283| [`claude --plugin-dir <directory>`](/docs/en/plugins/mods/create#write-a-mod-yourself) | Loads a plugin directory for one session and reloads its hooks module when you save. Repeat the flag to load several. |
284284| `/reload-plugins` | Reloads plugins when you run it |

plugins/mods/test Changed · +21 / -19 lines

## Test a mod that judges other mods

from line 1
11# Test a mod
22 
3> Write automated tests for a Claude Code mod that raise events, stub Claude Code's answers, and press buttons, with no session, sign-in, or network.
3> Write automated tests for a Claude Code mod that fire events, stub Claude Code's answers, and press buttons, with no session, sign-in, or network.
44 
5You can write automated tests for a mod and run them from your shell with [`claude plugin test`](/docs/en/plugins/mods/reference#commands). A test raises the events your hooks handle and checks what the hooks did, so you catch a problem before it reaches a session. The first example tests the mod from [Create a mod](/docs/en/plugins/mods/create).
5You can write automated tests for a mod and run them from your shell with [`claude plugin test`](/docs/en/plugins/mods/reference#commands). A test fires the events your hooks handle and checks what the hooks did, so you catch a problem before it reaches a session. The first example tests the mod from [Create a mod](/docs/en/plugins/mods/create).
66 
77## Write a test
88 
from line 10
1010 
1111Give each test file a name that ends in `.test.ts`, such as `first-mod.test.ts`, and save it anywhere in the plugin directory. Every test file needs at least one `test()`, or the run fails with `declares no test(): nothing ran`. A test file can import your mod's own files and sibling `.ts` helpers, so you can unit test plain functions, such as a game's rules, without the kit.
1212 
13This test raises two tool calls, runs the `/tally` command from [Create a mod](/docs/en/plugins/mods/create), and checks that the reply counts both. Its first line is a [stub](#stub-what-claude-code-would-answer), which answers the tool calls in Claude Code's place. Save it as `first-mod/tests/first-mod.test.ts`:
13This test fires two tool calls, runs the `/tally` command from [Create a mod](/docs/en/plugins/mods/create), and checks that the reply counts both. Its first line is a [stub](#stub-what-claude-code-would-answer), which answers the tool calls in Claude Code's place. Save it as `first-mod/tests/first-mod.test.ts`:
1414 
1515```typescript first-mod/tests/first-mod.test.ts theme={null}
1616import { expect, test } from 'claude-code/testing'
from line 19
1919 // Answer each tool call in Claude Code's place, so no tool runs
2020 on('tool.call', () => ({ result: 'ok' }))
2121 
22 // Raise two tool calls, which the mod's tool.call hook counts
22 // Fire two tool calls, which the mod's tool.call hook counts
2323 await $.tool.call({ tool: 'Bash', command: 'ls' })
2424 await $.tool.call({ tool: 'Read', file_path: 'README.md' })
2525 
from line 54
5454 
5555No model, store, or tool runs in a test, so wherever your mod expects Claude Code to answer, the test supplies the answer with a stub. A test function receives two arguments for that:
5656 
57* **`$`**: the test's own `$`, which stands where Claude Code does. It isn't the [mods API](/docs/en/plugins/mods/reference#mods-api-methods) that a hook receives. Each of its methods raises the event of the same name, sends it through your mod's hooks, and resolves to the result: `$.tool.call({ tool: 'Bash', command: 'ls' })` raises `tool.call`. `$.command.run`, `$.prompt.submit`, `$.session.start`, and `$.turn.complete` work the same way, and `$.classic.Stop` and the other `$.classic` methods raise a [settings hook event](/docs/en/plugins/mods/events#hook-the-settings-hook-events). A test can't raise a mods API call such as `ui.close` directly. Trigger it through your mod, for example by pressing the button that closes the pane.
57* **`$`**: the test's own `$`, which acts as Claude Code. It isn't the [mods API](/docs/en/plugins/mods/reference#mods-api-methods) that a hook receives. Each of its methods fires the event of the same name, sends it through your mod's hooks, and resolves to the result: `$.tool.call({ tool: 'Bash', command: 'ls' })` fires `tool.call`. `$.command.run`, `$.prompt.submit`, `$.session.start`, and `$.turn.complete` work the same way, and `$.classic.Stop` and the other `$.classic` methods fire a [settings hook event](/docs/en/plugins/mods/events#hook-the-settings-hook-events). A test can't fire a mods API call such as `ui.close` directly. Trigger it through your mod, for example by pressing the button that closes the pane.
5858* **`on`**: call it to register stubs, which are hooks that answer in Claude Code's place. Name a stub for a mods API call without the `$.`, so a stub registered as `store.get` answers your mod's `$.store.get`. When your mod calls [`$.model.complete`](/docs/en/plugins/mods/api#call-a-model) or [`$.store.get`](/docs/en/plugins/mods/interface#keep-state), a stub supplies the answer.
5959 
6060This example stubs a model call. The hook belongs to a mod named `grader`, and handles a `/grade` command that sends a sentence to a model and reports whether the reply starts with `PASS`. The file holds only the hook under test, so the mod also needs a `plugin.json` and a `hooks.json`, as in [Create a mod](/docs/en/plugins/mods/create#write-a-mod-yourself). To type `/grade` in a session, the mod also has to [register the command](/docs/en/plugins/mods/api#add-a-command):
from line 97
9797 
9898The test passes because the hook's `reply` is the object under `value`, whose `text` starts with `PASS`. To check the other branch, add a second test whose stub returns a `text` that starts with `FAIL`, and expect `Try again`.
9999 
100A stub for a mods API call returns an object with a `value` field, which holds what the call resolves to in your mod: `{ value: 7 }` makes `$.store.get` resolve to `7`. A stub for one of Claude Code's events, such as [`turn.step`](/docs/en/plugins/mods/reference#turns) or `tool.call`, returns that event's own result, such as `{ result: 'ok' }`. `$.session.send` and `$.prompt.fill` take their event's result too, as the table shows. [Look up what a stub returns](#look-up-what-a-stub-returns) shows which form each common name takes. Two errors mean a stub is wrong or missing. A failed test's output includes a block headed `the engine reported:`, and each error appears there:
100A stub for a mods API call returns an object with a `value` field, which holds what the call resolves to in your mod: `{ value: 7 }` makes `$.store.get` resolve to `7`. A stub for one of Claude Code's events, such as [`turn.step`](/docs/en/plugins/mods/reference#turns) or `tool.call`, returns that event's own result, such as `{ result: 'ok' }`. `$.session.send` and `$.prompt.fill` take their event's result too, as the table shows. [Look up what a stub returns](#look-up-what-a-stub-returns) shows which form each common name takes. These errors mean a stub is wrong or missing. A failed test's output includes a block headed `the engine reported:`, and each error appears there:
101101 
102102* `returned neither { value } nor { deny }`: a stub for a mods API call returned a bare value
103103* `no implementation for` followed by a name: your mod made that call and no stub answers it
from line 110
110110 
111111* **Register every stub before the test's first call on `$`.** Calling `on` after that throws an error such as `on("ui.render") after the test first called $`.
112112 
113* **[`session.start`](/docs/en/plugins/mods/reference#session) doesn't run by itself.** Each test starts with your module freshly loaded and none of its hooks called, so module-level variables hold their initial values. If a hook depends on what `session.start` sets up, raise it first:
113* **[`session.start`](/docs/en/plugins/mods/reference#session) doesn't run by itself.** Each test starts with your module freshly loaded and none of its hooks called, so module-level variables hold their initial values. If a hook depends on what `session.start` sets up, fire it first:
114114 
115115 ```typescript theme={null}
116116 // Answer the event after your hook passes it on with next(e)
from line 117
117117 on('session.start', () => ({ cwd: '/work' }))
118118 // Answer the $.command.register call your hook makes
119119 on('command.register', () => ({ value: undefined }))
120 // Raise the event, which runs your session.start hook
120 // Fire the event, which runs your session.start hook
121121 await $.session.start({ surface: 'terminal', isInteractive: true, cwd: '/work' })
122122 ```
123123 
from line 142
142142 return { turnId: e.turnId, index: e.index, answer: 'ok', toolUses: [], stopReason: 'end_turn', usage: null }
143143 })
144144 
145 // Raise one request to the model, which runs your turn.step hook
145 // Fire one request to the model, which runs your turn.step hook
146146 const stream = $.turn.step({ turnId: 't', index: 0, model: 'claude-test', messageCount: 1 })
147147 // Read every piece until the stream says it's done
148148 let step = await stream.next()
from line 152
152152 
153153 When the loop ends, `result` is the object the stub returned, after your `turn.step` hook has had the chance to change it. Here `result.answer` is `'ok'`.
154154 
155* **Raise a tool call with the tool's name and arguments as fields**, such as `await $.tool.call({ tool: 'Bash', command: 'ls' })`, and register a `tool.call` stub that returns `{ result }`.
155* **Fire a tool call with the tool's name and arguments as fields**, such as `await $.tool.call({ tool: 'Bash', command: 'ls' })`, and register a `tool.call` stub that returns `{ result }`.
156156 
157157### Look up what a stub returns
158158 
from line 173
173173| `session.start` | `() => ({ cwd: '/work' })` |
174174| `turn.start` | `($, e) => ({ turnId: e.turnId })` |
175175| `tool.call` | `() => ({ result: '...' })` |
176| `turn.complete` | `() => ({ text: '' })`. Raise it with `$.turn.complete({ turnId, answer, durationMs, isAborted: false, usage: null })`. |
176| `turn.complete` | `() => ({ text: '' })`. Fire it with `$.turn.complete({ turnId, answer, durationMs, isAborted: false, usage: null })`. |
177177| `prompt.submit` | `($, e) => ({ text: e.text })` |
178178| `prompt.fill` | `() => ({ isFilled: true })` |
179179| `$.prompt.read` | `() => ({ value: { text: '...', cursor: 0 } })` |
from line 181
181181| `$.session.messages` | `() => ({ value: [{ role: 'assistant', text: '...', toolUses: [] }] })` |
182182| `$.session.id`, `$.agent.list` | `() => ({ value: 'abc123' })`, `() => ({ value: [] })` |
183183| `session.send` | `() => ({ isDelivered: true })`. `e.to` arrives as a string even when your mod passed `{ sessionId }`. |
184| `session.receive` | `($, e) => ({ text: e.text })`. Raise it with `$.session.receive({ origin: { kind: 'peer-send-message' }, text })`. |
184| `session.receive` | `($, e) => ({ text: e.text })`. Fire it with `$.session.receive({ origin: { kind: 'peer-send-message' }, text })`. |
185185| `ui.render` | `() => ({ type: 'Text', props: {}, children: ['...'] })` |
186186 
187187`expect` has the assertions `toBe`, `toEqual`, `toMatch`, `toMatchObject`, `toContain`, `toBeDefined`, `toBeUndefined`, and `toThrow`, and `.not` before any of them.
from line 313
313313 Test a drawing after `/clear`
314314</h3>
315315 
316Each test starts with every `$.state` value at its default, which is how `/clear` leaves them. To test what your mod does next, skip `session.start`, raise `classic.SessionStart` with `source: 'clear'`, and check what your mod draws.
316Each test starts with every `$.state` value at its default, which is how `/clear` leaves them. To test what your mod does next, skip `session.start`, fire `classic.SessionStart` with `source: 'clear'`, and check what your mod draws.
317317 
318318This test checks the module from [Load a saved value again after `/clear`](/docs/en/plugins/mods/interface#load-a-saved-value-again-after-clear). Add it to the file from [Test a drawing](#test-a-drawing), where `PANE` is defined. That file's first test expects the button to save the count, as the button in [Save from more than one session](/docs/en/plugins/mods/interface#save-from-more-than-one-session) does:
319319 
from line 324
324324 // Answer the event after your hook passes it on with next(e)
325325 on('classic.SessionStart', () => ({}))
326326 
327 // Raise the event that fires after /clear, which runs your hook
327 // Fire the event that follows /clear, which runs your hook
328328 await $.classic.SessionStart({ source: 'clear' })
329329 
330330 const ui = await $.ui.mount({ ...PANE, surface: 'terminal' })
from line 336
336336 
337337The test passes when your `classic.SessionStart` hook has copied the stored `7` into `$.state` before the pane draws. Without that hook in your module, the pane draws `Count: 0`, `find` returns `undefined`, and the test fails at `toBeDefined`.
338338 
339## Test a mod that judges other mods
339<h2 id="test-a-mod-that-judges-other-mods">
340 Test a policy mod
341</h2>
340342 
341A mod your organization lists in [`prependPlugins`](/docs/en/plugins/mods/admin) can refuse another mod before it loads. To test one, set your mod's tier and give the test a second mod for yours to admit or refuse:
343A mod your organization lists in [`prependPlugins`](/docs/en/plugins/mods/admin) can refuse another mod before it loads. To test one, set your mod's tier and give the test a second mod for yours to allow or refuse:
342344 
343345* **`tier`**: call it once at the top of the test file, as in `tier('prepend')`, to load your mod as `prepend`, `append`, or `builtin`, its place in the [order mods run in](/docs/en/plugins/mods/events#the-order-mods-run-in). Without it, your mod loads as `user`.
344346* **`plugins`**: pass `test` an options object ahead of the test body. Its `plugins` array holds mods you write inline, each with a `name` and a `register` function. To load one somewhere other than `user`, add `tier` to it.
345347 
346This test file loads the [policy mod from the admin page](/docs/en/plugins/mods/admin#enforce-a-policy-with-a-mod-of-your-own) first. It checks that the policy mod refuses a mod that starts a process and admits one that doesn't:
348This test file loads the [policy mod from the admin page](/docs/en/plugins/mods/admin#enforce-a-policy-with-a-mod-of-your-own) first. It checks that the policy mod refuses a mod that starts a process and allows one that doesn't:
347349 
348350```typescript acme-guard/tests/guard.test.ts theme={null}
349351import { expect, test, tier } from 'claude-code/testing'

plugins/mods/troubleshoot Changed · +6 / -6 lines

from line 6
66 
77## Find out why a mod does nothing
88 
9When a mod does nothing, two checks find the reason: what Claude Code reads from the mod's files, and the line it writes when it skips something. For the first, in your shell run [`claude plugin validate`](/docs/en/plugins/mods/create#check-what-claude-code-reads-from-your-mod) with the mod's directory, as in `claude plugin validate ./first-mod`. It catches a misspelled event, a bad manifest, and a module Claude Code can't read, without starting a session.
9When a mod does nothing, check what Claude Code reads from the mod's files, and the line it writes when it skips something. For the first, in your shell run [`claude plugin validate`](/docs/en/plugins/mods/create#check-what-claude-code-reads-from-your-mod) with the mod's directory, as in `claude plugin validate ./first-mod`. It catches a misspelled event, a bad manifest, and a module Claude Code can't read, without starting a session.
1010 
1111When a module doesn't load, a hook is skipped, or another mod refuses yours, Claude Code writes one line that names your mod. Where you read that line depends on the session:
1212 
from line 21
2121| Message includes | What it means |
2222| :- | :- |
2323| `no hooks module to load` | Mods can load. The command found no mod to test in this directory. |
24| `hooks modules are turned off here` | A setting is keeping your mods out: `disableAllHooks` in your own settings, or your organization's policy |
24| `hooks modules are turned off here` | A setting is blocking your mods: `disableAllHooks` in your own settings, or your organization's policy |
2525| `hooks modules are turned off in this process` | Anthropic has turned installed mods off remotely. No setting on your machine turns them back on. |
2626 
2727An organization can also set `allowManagedModsOnly` to allow only its own mods, which this command doesn't report. In that case a mod you install doesn't load, and [a message says why](/docs/en/plugins/mods/troubleshoot#messages-from-the-built-in-guard).
from line 86
8686 
8787### `options do not fit plugin.json userConfig`
8888 
89The line starts with the mod's name, then `hooks module did not load: options do not fit plugin.json userConfig:` and a reason. An option doesn't fit its [`userConfig`](/docs/en/plugins/components#user-configuration) field, such as a number above the field's `max`, or a required field has no value.
89The line starts with the mod's name, then `hooks module did not load: options do not fit plugin.json userConfig:` and a reason. An option fails validation against its [`userConfig`](/docs/en/plugins/components#user-configuration) field, such as a number above the field's `max`, or a required field has no value.
9090 
9191Set or change the value. The end of the line names its `pluginConfigs` entry in `settings.json`.
9292 
from line 108
108108 
109109### `hook skipped`
110110 
111The line names the mod and the event, then says `hook skipped:` and a reason, as in `first-mod: tool.call hook skipped: threw Error: boom`. A hook threw, ran past its [10-second time limit](/docs/en/plugins/mods/reference#limits), or returned a result of the wrong shape. The line appears once for each event and kind of failure until the mod reloads.
111The line names the mod and the event, then says `hook skipped:` and a reason, as in `first-mod: tool.call hook skipped: threw Error: boom`. A hook threw, exceeded its [time limit](/docs/en/plugins/mods/reference#limits), or returned a result of the wrong shape. The line appears once for each event and kind of failure until the mod reloads.
112112 
113113Fix the error. The debug log has a line for every occurrence.
114114 
from line 161
161161 
162162### `$.ui.open` runs and no pane appears
163163 
164The call didn't come from something the user did, and the terminal is narrower than 144 columns.
164The call didn't come from something the user did, and the terminal is narrower than [the width that pane needs](/docs/en/plugins/mods/interface#when-a-pane-waits-for-a-wider-terminal).
165165 
166166Open the pane from a command or a button, or check the call's `isPlaced` result. See [Open a pane at the right time](/docs/en/plugins/mods/interface#open-a-pane-at-the-right-time).
167167 
from line 213
213213tail -f ./mod-debug.log | grep first-mod
214214```
215215 
216A mod that loaded has a line that names it and lists the events it hooks. A mod loaded with `--plugin-dir` appears under its name followed by `@inline`:
216A mod that loaded has a line that names it and lists the events it handles. A mod loaded with `--plugin-dir` appears under its name followed by `@inline`:
217217 
218218```text theme={null}
219219hooks module first-mod@inline loaded (worker, environment 2, tier user); events: session.start,tool.call,command.run,ui.render

setup Changed · +19 / -6 lines

### Install on network storage

from line 35
3535 <Tab title="Native Install (Recommended)">
3636 **macOS, Linux, WSL:**
3737 
38 ```bash theme={null}
38 ```bash theme={null} theme={null} theme={null} theme={null}
3939 curl -fsSL https://claude.ai/install.sh | bash
4040 ```
4141 
4242 **Windows PowerShell:**
4343 
44 ```powershell theme={null}
44 ```powershell theme={null} theme={null} theme={null} theme={null}
4545 irm https://claude.ai/install.ps1 | iex
4646 ```
4747 
4848 **Windows CMD:**
4949 
50 ```batch theme={null}
50 ```batch theme={null} theme={null} theme={null} theme={null}
5151 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
5252 ```
5353 
from line 65
6565 </Tab>
6666 
6767 <Tab title="Homebrew">
68 ```bash theme={null}
68 ```bash theme={null} theme={null} theme={null} theme={null}
6969 brew install --cask claude-code
7070 ```
7171 
from line 77
7777 </Tab>
7878 
7979 <Tab title="WinGet">
80 ```powershell theme={null}
80 ```powershell theme={null} theme={null} theme={null} theme={null}
8181 winget install Anthropic.ClaudeCode
8282 ```
8383 
from line 284
284284 
285285## Advanced installation options
286286 
287These options are for version pinning, Linux package managers, npm, and verifying binary integrity.
287These options are for version pinning, Linux package managers, npm, network storage, and verifying binary integrity.
288288 
289289### Install a specific version
290290 
from line 473
473473<Warning>
474474 Do NOT use `sudo npm install -g` as this can lead to permission issues and security risks. If you encounter permission errors, see [troubleshooting permission errors](/docs/en/troubleshoot-install#permission-errors-during-installation).
475475</Warning>
476 
477### Install on network storage
478 
479A running session reads parts of the Claude Code executable from disk as it works, not only at startup. If the file becomes unreadable mid-session, for example because it was truncated or deleted on network storage, the session crashes. On Linux, your shell reports this as a `Bus error`.
480 
481When home directories live on network storage, such as an NFS home mounted on several machines, lay out installs so that each session's executable stays readable until the session ends:
482 
483* **Install on local disk**: put the binary on each machine's local filesystem, for example with a [Linux package manager](#install-with-linux-package-managers) or your own deployment tooling. A per-user npm prefix and the native installer's default `~/.local/share/claude/versions/` directory both sit in the home directory.
484* **Keep each version in its own directory**: upgrading an npm installation in place with `npm install -g` deletes the previous binary. On storage that several machines share, that removes the file that sessions on the other machines are still running. Install each new version next to the old ones and move users to it.
485* **Delete an old version only when no machine can still be running it**: a machine can't see processes running on other machines, so checking for running processes before you delete isn't enough.
486* **Turn off Claude Code's own updates**: set [`DISABLE_UPDATES`](/docs/en/env-vars) and install new versions with your own tooling. Otherwise an auto-update of an npm installation on one machine runs the same in-place upgrade and removes the binary that sessions on other machines are running. Setting `DISABLE_AUTOUPDATER` alone isn't enough, because users can still run `claude update` and `claude install`. See [Disable auto-updates](#disable-auto-updates).
487 
488The native installer deletes old versions from `~/.local/share/claude/versions/` on its own, which matters when that directory is on shared storage. Besides the version the launcher points to and any version a session on the same machine is running, it keeps the two newest versions and deletes the rest. A session on another machine that is running a deleted version loses its binary. With a [custom launcher](#auto-updates), Claude Code keeps every installed version and leaves cleanup to you.
476489 
477490### Binary integrity and code signing
478491 

troubleshoot-install Changed · +9 / -0 lines

### `Bus error` while a session is running

from line 29
2929| `Error loading shared library` | [Wrong binary variant for your system](#linux-musl-or-glibc-binary-mismatch) |
3030| `Illegal instruction` | [Architecture or CPU instruction set mismatch](#illegal-instruction) |
3131| `cannot execute binary file: Exec format error` in WSL | [WSL1 native-binary regression](#exec-format-error-on-wsl1) |
32| `Bus error` or `oh no: Bun has crashed` while a session is running | [Keep the executable readable](#bus-error-while-a-session-is-running) |
3233| PowerShell installer completes but `claude` is not found or shows an old version | [Add the install directory to your PATH](#verify-your-path), then open a new terminal |
3334| `dyld: Symbol not found`, `dyld: cannot load`, or `Abort trap` on macOS | [Binary incompatibility](#dyld-cannot-load-on-macos) |
3435| `claude update` hangs after `Checking for updates`, or `claude doctor` hangs with no output | [Move the directory at a shell config path](#claude-update-or-claude-doctor-hangs) |
from line 803
8028031. **Check your macOS version**: Claude Code requires macOS 13.0 or later. Open the Apple menu and select About This Mac to check your version.
803804 
8048052. **Update macOS** if you're on an older version. The binary uses load commands and system libraries that older macOS versions don't support. Alternative install methods like Homebrew download the same binary and won't resolve this error.
806 
807### `Bus error` while a session is running
808 
809If a running session exits and your shell prints `Bus error`, one cause is that Claude Code could no longer read its own executable file from disk. For example, the file was truncated, or deleted on network storage, while the session ran.
810 
811Before the shell's message, Claude Code's runtime can print a crash report that includes `panic(main thread): Bus error at address` and `oh no: Bun has crashed. This indicates a bug in Bun, not your code.` When the executable became unreadable, the crash comes from the unreadable file, not from a bug in Bun. The report can also be missing, if the runtime couldn't read the code that prints it either.
812 
813Start a new session to continue. If Claude Code is installed on network storage, follow [Install on network storage](/docs/en/setup#install-on-network-storage) so upgrades don't remove a binary that running sessions still need.
805814 
806815### `Exec format error` on WSL1
807816 

claude-security Changed · +1 / -1 lines

from line 30
3030 
3131## Install the plugin
3232 
33In a Claude Code session, install from the [official Anthropic marketplace](/docs/en/plugins/anthropic-marketplaces):
33In the VS Code extension or the desktop app, install it by following [Install a plugin](/docs/en/plugins/install#install-a-plugin). In a terminal, start Claude Code by running `claude`, then enter this at its prompt to install from the [official Anthropic marketplace](/docs/en/plugins/anthropic-marketplaces):
3434 
3535```text theme={null}
3636/plugin install claude-security@claude-plugins-official

claude-tag Changed · +2 / -2 lines

This page is larger than the 256 KiB this site keeps, so one side of the diff below stops where the stored text does.

from line 1
1<!DOCTYPE html><html lang="en" class="inter_1d81deff-module__CYM0aG__variable papermono_89c757f2-module__6aS5zq__variable dark" data-banner-state="visible" data-assistant-state="closed" data-page-mode="none" data-current-path="/"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/><link rel="preload" href="/docs/_next/static/media/83afe278b6a6bb3c.p.3a6ba036.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/docs/_next/static/media/PaperMono_Variable.p.aa32f7a0.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/docs/_next/static/media/f67ad414ed34149c.p.84166d94.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" href="https://mintcdn.com/claude-ai/1fyDNLAICe3KG6rB/logo/light.svg?fit=max&amp;auto=format&amp;n=1fyDNLAICe3KG6rB&amp;q=85&amp;s=e870c19cb781d8a7c7b7d19de53b0a10"/><link rel="preload" as="image" href="https://mintcdn.com/claude-ai/1fyDNLAICe3KG6rB/logo/dark.svg?fit=max&amp;auto=format&amp;n=1fyDNLAICe3KG6rB&amp;q=85&amp;s=80cc0b06d8fd9aeefec8acb226de6866"/><link rel="preload" as="image" href="https://mintcdn.com/claude-ai/5JFKyLlO7sHMMf5J/images/claude-tag/logo/clay-spark.svg?fit=max&amp;auto=format&amp;n=5JFKyLlO7sHMMf5J&amp;q=85&amp;s=032101c39ca3b1af9f72fc4af8e60d12"/><link rel="preload" as="image" href="https://mintcdn.com/claude-ai/5JFKyLlO7sHMMf5J/images/claude-tag/illustrations/Hand-Key.svg?fit=max&amp;auto=format&amp;n=5JFKyLlO7sHMMf5J&amp;q=85&amp;s=1b7a9675728f971bc7a4663c7f1ea599"/><link rel="preload" as="image" href="https://mintcdn.com/claude-ai/5JFKyLlO7sHMMf5J/images/claude-tag/illustrations/Hand-NodePair.svg?fit=max&amp;auto=format&amp;n=5JFKyLlO7sHMMf5J&amp;q=85&amp;s=c64df4c6d27a6da752aa32c9e0622781"/><link rel="stylesheet" href="/docs/_next/static/chunks/462bacc63bed9960.css?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" data-precedence="next"/><link rel="stylesheet" href="/docs/_next/static/chunks/cbc8615ac0de59e9.css?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" data-precedence="next"/><style data-precedence="base-ui:low" data-href="base-ui-disable-scrollbar">.base-ui-disable-scrollbar{scrollbar-width:none}.base-ui-disable-scrollbar::-webkit-scrollbar{display:none}</style><link rel="preload" as="script" fetchPriority="low" href="/docs/_next/static/chunks/6d55b684068fd47e.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM"/><script src="/docs/_next/static/chunks/44795504c795ca32.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/9389e3263b5cd009.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/b730549587248be7.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/f6b63147e67d2c3a.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/turbopack-c8982dfcce4a79e8.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/d056c4dd204a2da3.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/187844b452a731d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/2f355e1cfcb656a3.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/e8ae17d17545aec9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/1274e7453c808eec.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/a95b6b45d1dc4487.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/935cd929aff6bb51.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/e07381c7469ca6d6.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/baaa22a26eddc070.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><title>Work with Claude Tag - Claude.ai Documentation</title><meta name="description" content="Claude Tag puts Claude in your Slack channels with admin-governed access. See what to hand it, how setup works, and where to start as an admin or end user."/><meta name="application-name" content="Claude.ai Documentation"/><meta name="generator" content="Mintlify"/><meta name="msapplication-config" content="/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon/browserconfig.xml"/><meta name="apple-mobile-web-app-title" content="Claude.ai Documentation"/><meta name="msapplication-TileColor" content="#0E0E0E"/><link rel="canonical" href="https://claude.com/docs/claude-tag/overview"/><link rel="alternate" type="application/xml" href="/docs/sitemap.xml"/><link rel="alternate" type="text/markdown" href="/docs/claude-tag/overview.md"/><meta property="og:title" content="Work with Claude Tag - Claude.ai Documentation"/><meta property="og:description" content="Claude Tag puts Claude in your Slack channels with admin-governed access. See what to hand it, how setup works, and where to start as an admin or end user."/><meta property="og:url" content="https://claude.com/docs/claude-tag/overview"/><meta property="og:site_name" content="Claude.ai Documentation"/><meta property="og:image" content="https://claude-ai.mintlify.app/_next/image?url=%2F_mintlify%2Fapi%2Fog%3Fdivision%3D%2B%26title%3DWork%2Bwith%2BClaude%2BTag%26description%3DClaude%2BTag%2Bputs%2BClaude%2Bin%2Byour%2BSlack%2Bchannels%2Bwith%2Badmin-governed%2Baccess.%2BSee%2Bwhat%2Bto%2Bhand%2Bit%252C%2Bhow%2Bsetup%2Bworks%252C%2Band%2Bwhere%2Bto%2Bstart%2Bas%2Ban%2Badmin%2Bor%2Bend%2Buser.%26theme%3D6f9b6bab2d50cee40d7f721c&amp;w=1200&amp;q=100"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Work with Claude Tag - Claude.ai Documentation"/><meta name="twitter:description" content="Claude Tag puts Claude in your Slack channels with admin-governed access. See what to hand it, how setup works, and where to start as an admin or end user."/><meta name="twitter:image" content="https://claude-ai.mintlify.app/_next/image?url=%2F_mintlify%2Fapi%2Fog%3Fdivision%3D%2B%26title%3DWork%2Bwith%2BClaude%2BTag%26description%3DClaude%2BTag%2Bputs%2BClaude%2Bin%2Byour%2BSlack%2Bchannels%2Bwith%2Badmin-governed%2Baccess.%2BSee%2Bwhat%2Bto%2Bhand%2Bit%252C%2Bhow%2Bsetup%2Bworks%252C%2Band%2Bwhere%2Bto%2Bstart%2Bas%2Ban%2Badmin%2Bor%2Bend%2Buser.%26theme%3D6f9b6bab2d50cee40d7f721c&amp;w=1200&amp;q=100"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="630"/><link rel="icon" href="/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon/android-chrome-192x192.png" type="image/png" sizes="192x192" media="(prefers-color-scheme: light)"/><link rel="apple-touch-icon" href="/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon/apple-touch-icon.png" type="image/png" sizes="180x180"/><link rel="icon" href="/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon/favicon-16x16.png" type="image/png" sizes="16x16" media="(prefers-color-scheme: light)"/><link rel="icon" href="/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon/favicon-32x32.png" type="image/png" sizes="32x32" media="(prefers-color-scheme: light)"/><link rel="shortcut icon" href="/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon/favicon.ico" type="image/x-icon" media="(prefers-color-scheme: light)"/><link rel="icon" href="/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon-dark/android-chrome-192x192.png" type="image/png" sizes="192x192" media="(prefers-color-scheme: dark)"/><link rel="icon" href="/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon-dark/favicon-16x16.png" type="image/png" sizes="16x16" media="(prefers-color-scheme: dark)"/><link rel="icon" href="/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon-dark/favicon-32x32.png" type="image/png" sizes="32x32" media="(prefers-color-scheme: dark)"/><link rel="shortcut icon" href="/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon-dark/favicon.ico" type="image/x-icon" media="(prefers-color-scheme: dark)"/><script type="text/javascript">!function(){var b="/docs";
1<!DOCTYPE html><html lang="en" class="inter_1d81deff-module__CYM0aG__variable papermono_89c757f2-module__6aS5zq__variable dark" data-banner-state="visible" data-assistant-state="closed" data-page-mode="none" data-current-path="/"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"/><link rel="preload" href="/docs/_next/static/media/83afe278b6a6bb3c.p.3a6ba036.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/docs/_next/static/media/PaperMono_Variable.p.aa32f7a0.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/docs/_next/static/media/f67ad414ed34149c.p.84166d94.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" href="https://mintcdn.com/claude-ai/1fyDNLAICe3KG6rB/logo/light.svg?fit=max&amp;auto=format&amp;n=1fyDNLAICe3KG6rB&amp;q=85&amp;s=e870c19cb781d8a7c7b7d19de53b0a10"/><link rel="preload" as="image" href="https://mintcdn.com/claude-ai/1fyDNLAICe3KG6rB/logo/dark.svg?fit=max&amp;auto=format&amp;n=1fyDNLAICe3KG6rB&amp;q=85&amp;s=80cc0b06d8fd9aeefec8acb226de6866"/><link rel="preload" as="image" href="https://mintcdn.com/claude-ai/5JFKyLlO7sHMMf5J/images/claude-tag/logo/clay-spark.svg?fit=max&amp;auto=format&amp;n=5JFKyLlO7sHMMf5J&amp;q=85&amp;s=032101c39ca3b1af9f72fc4af8e60d12"/><link rel="preload" as="image" href="https://mintcdn.com/claude-ai/5JFKyLlO7sHMMf5J/images/claude-tag/illustrations/Hand-Key.svg?fit=max&amp;auto=format&amp;n=5JFKyLlO7sHMMf5J&amp;q=85&amp;s=1b7a9675728f971bc7a4663c7f1ea599"/><link rel="preload" as="image" href="https://mintcdn.com/claude-ai/5JFKyLlO7sHMMf5J/images/claude-tag/illustrations/Hand-NodePair.svg?fit=max&amp;auto=format&amp;n=5JFKyLlO7sHMMf5J&amp;q=85&amp;s=c64df4c6d27a6da752aa32c9e0622781"/><link rel="stylesheet" href="/docs/_next/static/chunks/462bacc63bed9960.css?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" data-precedence="next"/><link rel="stylesheet" href="/docs/_next/static/chunks/cbc8615ac0de59e9.css?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" data-precedence="next"/><style data-precedence="base-ui:low" data-href="base-ui-disable-scrollbar">.base-ui-disable-scrollbar{scrollbar-width:none}.base-ui-disable-scrollbar::-webkit-scrollbar{display:none}</style><link rel="preload" as="script" fetchPriority="low" href="/docs/_next/static/chunks/6d55b684068fd47e.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM"/><script src="/docs/_next/static/chunks/44795504c795ca32.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/9389e3263b5cd009.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/b730549587248be7.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/f6b63147e67d2c3a.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/turbopack-c8982dfcce4a79e8.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/d056c4dd204a2da3.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/187844b452a731d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/2f355e1cfcb656a3.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/e8ae17d17545aec9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/1274e7453c808eec.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/a95b6b45d1dc4487.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/935cd929aff6bb51.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/e07381c7469ca6d6.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><script src="/docs/_next/static/chunks/baaa22a26eddc070.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" async=""></script><title>Work with Claude Tag - Claude.ai Documentation</title><meta name="description" content="Claude Tag puts Claude in your Slack channels with admin-governed access. See what to hand it, how setup works, and where to start as an admin or end user."/><meta name="application-name" content="Claude.ai Documentation"/><meta name="generator" content="Mintlify"/><meta name="msapplication-config" content="/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon/browserconfig.xml"/><meta name="apple-mobile-web-app-title" content="Claude.ai Documentation"/><meta name="msapplication-TileColor" content="#0E0E0E"/><link rel="canonical" href="https://claude.com/docs/claude-tag/overview"/><link rel="alternate" type="application/xml" href="/docs/sitemap.xml"/><link rel="alternate" type="text/markdown" href="/docs/claude-tag/overview.md"/><meta property="og:title" content="Work with Claude Tag - Claude.ai Documentation"/><meta property="og:description" content="Claude Tag puts Claude in your Slack channels with admin-governed access. See what to hand it, how setup works, and where to start as an admin or end user."/><meta property="og:url" content="https://claude.com/docs/claude-tag/overview"/><meta property="og:site_name" content="Claude.ai Documentation"/><meta property="og:image" content="https://claude-ai.mintlify.app/_next/image?url=%2F_mintlify%2Fapi%2Fog%3Fdivision%3D%2B%26title%3DWork%2Bwith%2BClaude%2BTag%26description%3DClaude%2BTag%2Bputs%2BClaude%2Bin%2Byour%2BSlack%2Bchannels%2Bwith%2Badmin-governed%2Baccess.%2BSee%2Bwhat%2Bto%2Bhand%2Bit%252C%2Bhow%2Bsetup%2Bworks%252C%2Band%2Bwhere%2Bto%2Bstart%2Bas%2Ban%2Badmin%2Bor%2Bend%2Buser.%26theme%3D6f9b6bab2d50cee40d7f721c&amp;w=1200&amp;q=100"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Work with Claude Tag - Claude.ai Documentation"/><meta name="twitter:description" content="Claude Tag puts Claude in your Slack channels with admin-governed access. See what to hand it, how setup works, and where to start as an admin or end user."/><meta name="twitter:image" content="https://claude-ai.mintlify.app/_next/image?url=%2F_mintlify%2Fapi%2Fog%3Fdivision%3D%2B%26title%3DWork%2Bwith%2BClaude%2BTag%26description%3DClaude%2BTag%2Bputs%2BClaude%2Bin%2Byour%2BSlack%2Bchannels%2Bwith%2Badmin-governed%2Baccess.%2BSee%2Bwhat%2Bto%2Bhand%2Bit%252C%2Bhow%2Bsetup%2Bworks%252C%2Band%2Bwhere%2Bto%2Bstart%2Bas%2Ban%2Badmin%2Bor%2Bend%2Buser.%26theme%3D6f9b6bab2d50cee40d7f721c&amp;w=1200&amp;q=100"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="630"/><link rel="icon" href="/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon/android-chrome-192x192.png" type="image/png" sizes="192x192" media="(prefers-color-scheme: light)"/><link rel="apple-touch-icon" href="/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon/apple-touch-icon.png" type="image/png" sizes="180x180"/><link rel="icon" href="/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon/favicon-16x16.png" type="image/png" sizes="16x16" media="(prefers-color-scheme: light)"/><link rel="icon" href="/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon/favicon-32x32.png" type="image/png" sizes="32x32" media="(prefers-color-scheme: light)"/><link rel="shortcut icon" href="/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon/favicon.ico" type="image/x-icon" media="(prefers-color-scheme: light)"/><link rel="icon" href="/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon-dark/android-chrome-192x192.png" type="image/png" sizes="192x192" media="(prefers-color-scheme: dark)"/><link rel="icon" href="/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon-dark/favicon-16x16.png" type="image/png" sizes="16x16" media="(prefers-color-scheme: dark)"/><link rel="icon" href="/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon-dark/favicon-32x32.png" type="image/png" sizes="32x32" media="(prefers-color-scheme: dark)"/><link rel="shortcut icon" href="/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon-dark/favicon.ico" type="image/x-icon" media="(prefers-color-scheme: dark)"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="anonymous"/><script type="text/javascript">!function(){var b="/docs";
22function a(p){if(p==null)return"/";p=""+p;if(""===p)return"/";return"/"===p.charAt(0)?p:"/"+p}
33function u(p){if(p==null)return p;p=""+p;if(!p||p.charAt(p.length-1)==="/")return p.slice(0,-1);return p}
44function i(p){if(p==null)return p;p=""+p;if(6<=p.length&&p.substring(p.length-6)==="/index")return p.substring(0,p.length-6);if("index"===p)return"";return p}
from line 2979
29792979<div class="tm-strip"><div class="tm-strip-head"><p class="tm-strip-title">Security review</p><a class="link tm-strip-all" href="/docs/claude-tag/concepts/security-and-data">Security and data handling</a></div><p>The security model, what admins can and can’t restrict, audit trails, and network requirements.</p></div>
29802980<h2 class="flex whitespace-pre-wrap group font-semibold" id="where-to-start-with-claude-tag"><div class="absolute" tabindex="-1"><a href="#where-to-start-with-claude-tag" class="-ml-10 flex items-center opacity-0 border-0 group-hover:opacity-100 focus:opacity-100 focus:outline-0 group/link" aria-label="Navigate to header">​<div class="size-6 rounded-md flex items-center justify-center shadow-xs text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20 group-focus/link:border-2 group-focus/link:border-primary dark:group-focus/link:border-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-3 shrink-0"><path d="M8.50001 6.827C8.14801 6.995 7.81801 7.225 7.52701 7.517L7.51701 7.527C6.13601 8.908 6.13601 11.146 7.51701 12.527L9.69201 14.702C11.073 16.083 13.311 16.083 14.692 14.702L14.702 14.692C16.083 13.311 16.083 11.073 14.702 9.692L13.771 8.761" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M9.50002 11.173C9.85202 11.005 10.182 10.775 10.473 10.483L10.483 10.473C11.864 9.092 11.864 6.854 10.483 5.473L8.30802 3.298C6.92702 1.917 4.68902 1.917 3.30802 3.298L3.29802 3.308C1.91702 4.689 1.91702 6.927 3.29802 8.308L4.22902 9.239" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div></a></div><span class="cursor-pointer">Where to start with Claude Tag</span></h2>
29812981<div class="columns prose dark:prose-invert grid max-w-none gap-4 sm:grid-cols-[repeat(var(--cols),minmax(0,1fr))] @2xl/columns-container:grid-cols-[repeat(var(--cols),minmax(0,1fr))] @[0px]/columns-container:grid-cols-1 card-group dark:prose-dark gap-y-0 sm:grid-cols-[repeat(var(--cols),minmax(0,1fr))]!" style="--cols:2"><div class="card block font-normal group relative my-2 ring-2 ring-transparent rounded-2xl bg-white dark:bg-background-dark border border-gray-950/10 dark:border-white/10 overflow-hidden w-full cursor-pointer hover:border-primary! dark:hover:border-primary-light!" aria-labelledby="_R_1i9bb9qnpfb39p7b9snpfiutb_" tabindex="0" role="link"><div class="px-6 py-5 relative flex items-center gap-x-4" data-component-part="card-content-container"><div class="absolute text-gray-400 dark:text-gray-500 group-hover:text-primary dark:group-hover:text-primary-light top-5 right-5"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="m-0.5 size-3 shrink-0"><path d="M14.25 3.75L3.75525 14.2446" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M4.71301 3.75H14.2499V13.2869" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div><div aria-hidden="true" class="size-6 fill-gray-800 dark:fill-gray-100 text-gray-800 dark:text-gray-100 [&amp;&gt;svg]:size-6" data-component-part="card-icon"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-6 m-0! shrink-0 bg-primary dark:bg-primary-light" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/gear.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/gear.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="w-full"><h2 id="_R_1i9bb9qnpfb39p7b9snpfiutb_" class="not-prose font-semibold text-base text-gray-800 dark:text-white" contentEditable="false" data-component-part="card-title">Set up Claude Tag</h2><div id="_R_1i9bb9qnpfb39p7b9snpfiutbH1_" class="prose font-normal text-base text-gray-600 dark:text-gray-400 leading-6 mt-0" data-component-part="card-content"><span data-as="p">Admins: pair your Slack workspace, connect the services Claude will work in, and launch</span></div></div></div></div><div class="card block font-normal group relative my-2 ring-2 ring-transparent rounded-2xl bg-white dark:bg-background-dark border border-gray-950/10 dark:border-white/10 overflow-hidden w-full cursor-pointer hover:border-primary! dark:hover:border-primary-light!" aria-labelledby="_R_2i9bb9qnpfb39p7b9snpfiutb_" tabindex="0" role="link"><div class="px-6 py-5 relative flex items-center gap-x-4" data-component-part="card-content-container"><div class="absolute text-gray-400 dark:text-gray-500 group-hover:text-primary dark:group-hover:text-primary-light top-5 right-5"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="m-0.5 size-3 shrink-0"><path d="M14.25 3.75L3.75525 14.2446" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M4.71301 3.75H14.2499V13.2869" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div><div aria-hidden="true" class="size-6 fill-gray-800 dark:fill-gray-100 text-gray-800 dark:text-gray-100 [&amp;&gt;svg]:size-6" data-component-part="card-icon"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-6 m-0! shrink-0 bg-primary dark:bg-primary-light" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/paper-plane.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/paper-plane.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="w-full"><h2 id="_R_2i9bb9qnpfb39p7b9snpfiutb_" class="not-prose font-semibold text-base text-gray-800 dark:text-white" contentEditable="false" data-component-part="card-title">Hand Claude Tag your first task</h2><div id="_R_2i9bb9qnpfb39p7b9snpfiutbH1_" class="prose font-normal text-base text-gray-600 dark:text-gray-400 leading-6 mt-0" data-component-part="card-content"><span data-as="p">It’s already in your channel: send your first message</span></div></div></div></div><div class="card block font-normal group relative my-2 ring-2 ring-transparent rounded-2xl bg-white dark:bg-background-dark border border-gray-950/10 dark:border-white/10 overflow-hidden w-full cursor-pointer hover:border-primary! dark:hover:border-primary-light!" aria-labelledby="_R_3i9bb9qnpfb39p7b9snpfiutb_" tabindex="0" role="link"><div class="px-6 py-5 relative flex items-center gap-x-4" data-component-part="card-content-container"><div class="absolute text-gray-400 dark:text-gray-500 group-hover:text-primary dark:group-hover:text-primary-light top-5 right-5"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="m-0.5 size-3 shrink-0"><path d="M14.25 3.75L3.75525 14.2446" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M4.71301 3.75H14.2499V13.2869" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div><div aria-hidden="true" class="size-6 fill-gray-800 dark:fill-gray-100 text-gray-800 dark:text-gray-100 [&amp;&gt;svg]:size-6" data-component-part="card-icon"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-6 m-0! shrink-0 bg-primary dark:bg-primary-light" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/diagram-project.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/diagram-project.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="w-full"><h2 id="_R_3i9bb9qnpfb39p7b9snpfiutb_" class="not-prose font-semibold text-base text-gray-800 dark:text-white" contentEditable="false" data-component-part="card-title">How Claude Tag works</h2><div id="_R_3i9bb9qnpfb39p7b9snpfiutbH1_" class="prose font-normal text-base text-gray-600 dark:text-gray-400 leading-6 mt-0" data-component-part="card-content"><span data-as="p">The session model, what it can read, and how memory follows places</span></div></div></div></div><div class="card block font-normal group relative my-2 ring-2 ring-transparent rounded-2xl bg-white dark:bg-background-dark border border-gray-950/10 dark:border-white/10 overflow-hidden w-full cursor-pointer hover:border-primary! dark:hover:border-primary-light!" aria-labelledby="_R_4i9bb9qnpfb39p7b9snpfiutb_" tabindex="0" role="link"><div class="px-6 py-5 relative flex items-center gap-x-4" data-component-part="card-content-container"><div class="absolute text-gray-400 dark:text-gray-500 group-hover:text-primary dark:group-hover:text-primary-light top-5 right-5"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="m-0.5 size-3 shrink-0"><path d="M14.25 3.75L3.75525 14.2446" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M4.71301 3.75H14.2499V13.2869" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></div><div aria-hidden="true" class="size-6 fill-gray-800 dark:fill-gray-100 text-gray-800 dark:text-gray-100 [&amp;&gt;svg]:size-6" data-component-part="card-icon"><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! size-6 m-0! shrink-0 bg-primary dark:bg-primary-light" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/list.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/regular/list.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></div><div class="w-full"><h2 id="_R_4i9bb9qnpfb39p7b9snpfiutb_" class="not-prose font-semibold text-base text-gray-800 dark:text-white" contentEditable="false" data-component-part="card-title">Use case library</h2><div id="_R_4i9bb9qnpfb39p7b9snpfiutbH1_" class="prose font-normal text-base text-gray-600 dark:text-gray-400 leading-6 mt-0" data-component-part="card-content"><span data-as="p">Prompts to paste, by team and connection</span></div></div></div></div></div></div><div class="feedback-toolbar pb-16 w-full flex flex-col gap-y-8"><div class="flex flex-row flex-wrap gap-4 items-center justify-between"><p class="inline-block text-sm text-gray-600 dark:text-gray-400 whitespace-nowrap">Was this page helpful?</p><div class="flex flex-wrap grow gap-3 items-center justify-end"><div class="flex gap-3 items-center"><button id="feedback-thumbs-up" class="px-3.5 py-2 flex flex-row gap-3 items-center border-standard rounded-xl text-gray-600 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 bg-white/50 dark:bg-codeblock/50 hover:border-gray-500 hover:dark:border-gray-500 focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-primary dark:focus-visible:outline-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0 text-current"><path d="M5.25 7.494C5.25 7.014 5.423 6.55 5.736 6.187L10 1.25C10.854 1.677 11.25 2.678 10.92 3.574L9.75 6.75H14.152C15.465 6.75 16.421 7.993 16.085 9.262L14.894 13.762C14.662 14.639 13.868 15.25 12.961 15.25H7.25C6.145 15.25 5.25 14.355 5.25 13.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M4.25 6.75H2.75C2.19772 6.75 1.75 7.19772 1.75 7.75V14.25C1.75 14.8023 2.19772 15.25 2.75 15.25H4.25C4.80228 15.25 5.25 14.8023 5.25 14.25V7.75C5.25 7.19772 4.80228 6.75 4.25 6.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg><small class="text-sm font-normal leading-4">Yes</small></button><button id="feedback-thumbs-down" class="px-3.5 py-2 flex flex-row gap-3 items-center border-standard rounded-xl text-gray-600 dark:text-gray-400 hover:text-gray-700 dark:hover:text-gray-300 bg-white/50 dark:bg-codeblock/50 hover:border-gray-500 hover:dark:border-gray-500 focus-visible:outline-2 focus-visible:-outline-offset-2 focus-visible:outline-primary dark:focus-visible:outline-primary-light"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-4 shrink-0 text-current"><path d="M5.25 10.506C5.25 10.986 5.423 11.45 5.736 11.813L10 16.75C10.854 16.323 11.25 15.322 10.92 14.426L9.75 11.25H14.152C15.465 11.25 16.421 10.007 16.085 8.738L14.894 4.238C14.662 3.361 13.868 2.75 12.961 2.75H7.25C6.145 2.75 5.25 3.645 5.25 4.75" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M4.25 2.75H2.75C2.19772 2.75 1.75 3.19772 1.75 3.75V10.25C1.75 10.8023 2.19772 11.25 2.75 11.25H4.25C4.80228 11.25 5.25 10.8023 5.25 10.25V3.75C5.25 3.19772 4.80228 2.75 4.25 2.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg><small class="text-sm font-normal leading-4">No</small></button></div><div class="flex gap-3"></div></div></div></div><nav id="pagination" aria-label="Pagination" class="px-0.5 flex items-center gap-6 text-sm font-semibold text-gray-700 dark:text-gray-200"><a rel="next" aria-label="Next: How Claude Tag works" data-component-part="pagination-next" class="group flex items-center min-w-0 focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-primary dark:focus-visible:outline-primary-light gap-3 rounded-sm ml-auto pagination-next" href="/docs/claude-tag/concepts/how-it-works"><div class="truncate group-hover:text-gray-900 dark:group-hover:text-white" data-component-part="pagination-title">How Claude Tag works</div><svg viewBox="0 0 3 6" aria-hidden="true" data-component-part="pagination-chevron" class="h-1.5 shrink-0 stroke-gray-400 overflow-visible group-hover:stroke-gray-600 dark:group-hover:stroke-gray-300 rotate-180"><path d="M3 0L0 3L3 6" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg></a></nav><div data-assistant-bar="" class="left-0 right-0 sticky bottom-0 w-full overflow-hidden z-20 pointer-events-none print:hidden"><div class="chat-assistant-floating-input w-full group/assistant-bar relative translate-y-[100px] opacity-0"><div class="relative pb-4 sm:pb-6 max-w-2xl mx-auto"><div class="flex flex-col w-full rounded-2xl pointer-events-auto bg-background-light dark:bg-background-dark border border-gray-200 dark:border-white/10 focus-within:border-primary dark:focus-within:border-primary-light transition-colors"><div class="relative flex items-end"><textarea id="chat-assistant-textarea" aria-label="Ask a question..." autoComplete="off" placeholder="Ask a question..." class="chat-assistant-input w-full bg-transparent border-0 peer/input text-gray-900 dark:text-gray-100 placeholder-gray-600 dark:placeholder-gray-300 outline-hidden! focus:outline-hidden! focus:ring-0 py-2.5 pl-3.5 pr-10 font-bodyWeight text-sm" style="resize:none"></textarea><button class="chat-assistant-send-button flex justify-center items-center rounded-full p-1 size-6 bg-primary/30 dark:bg-primary-dark/30 absolute right-2.5 bottom-2" aria-label="Send message" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-2.5 shrink-0 text-white dark:text-white"><path d="M9.0 1.5754L8.9999 16.4171" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.2563 8.319L8.9999 1.5754L15.7435 8.3191" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div></div></div></div></div></div></main></div><footer id="footer" class="advanced-footer flex flex-col items-center mx-auto border-t border-gray-100 dark:border-gray-800/50 peer-[.is-custom]:hidden! peer-[.is-custom]:sm:hidden! peer-[.is-custom]:md:hidden! peer-[.is-custom]:lg:hidden! peer-[.is-custom]:xl:hidden!"><div class="flex w-full flex-col gap-12 justify-between px-8 py-16 md:py-20 lg:py-28 max-w-246 z-20"><div class="flex flex-col md:flex-row gap-8 justify-between min-h-19"><div class="flex md:flex-col justify-between items-center md:items-start min-w-16 md:min-w-20 lg:min-w-48 md:gap-y-24"><a class="select-none" style="-webkit-touch-callout:none" href="/docs"><span class="sr-only">Claude.ai Documentation<!-- --> home page</span><img class="nav-logo w-auto relative object-contain shrink-0 block dark:hidden max-w-48 h-[26px]" src="https://mintcdn.com/claude-ai/1fyDNLAICe3KG6rB/logo/light.svg?fit=max&amp;auto=format&amp;n=1fyDNLAICe3KG6rB&amp;q=85&amp;s=e870c19cb781d8a7c7b7d19de53b0a10" alt="light logo"/><img class="nav-logo w-auto relative object-contain shrink-0 hidden dark:block max-w-48 h-[26px]" src="https://mintcdn.com/claude-ai/1fyDNLAICe3KG6rB/logo/dark.svg?fit=max&amp;auto=format&amp;n=1fyDNLAICe3KG6rB&amp;q=85&amp;s=80cc0b06d8fd9aeefec8acb226de6866" alt="dark logo"/></a><div class="gap-4 min-w-[140px] max-w-[492px] flex-wrap h-fit flex justify-end md:justify-start"><a href="https://x.com/AnthropicAI" target="_blank" rel="noopener noreferrer" class="h-fit"><span class="sr-only">x</span><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! w-5 h-5 bg-gray-500 dark:bg-gray-600 hover:bg-gray-600 dark:hover:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/x-twitter.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/x-twitter.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></a><a href="https://www.linkedin.com/company/anthropicresearch" target="_blank" rel="noopener noreferrer" class="h-fit"><span class="sr-only">linkedin</span><svg class="forced-colors:forced-color-adjust-none forced-colors:bg-[color:CanvasText]! w-5 h-5 bg-gray-500 dark:bg-gray-600 hover:bg-gray-600 dark:hover:bg-gray-500" aria-hidden="true" focusable="false" style="-webkit-mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/linkedin.svg&quot;);-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;mask-image:url(&quot;https://d3gk2c5xim1je2.cloudfront.net/fontawesome/v7.2.0/brands/linkedin.svg&quot;);mask-repeat:no-repeat;mask-position:center"></svg></a></div></div><div class="flex flex-col sm:grid max-md:grid-cols-2! gap-8 flex-1" style="grid-template-columns:repeat(4, minmax(0, 1fr))"><div class="flex flex-col gap-4 flex-1 whitespace-nowrap w-full md:items-center"><div class="flex gap-4 flex-col"><p class="text-sm font-semibold text-gray-950 dark:text-white mb-1">Company</p><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://www.anthropic.com/company" target="_blank" rel="noreferrer">Anthropic</a><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://www.anthropic.com/careers" target="_blank" rel="noreferrer">Careers</a><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://www.anthropic.com/economic-futures" target="_blank" rel="noreferrer">Economic Futures</a><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://www.anthropic.com/research" target="_blank" rel="noreferrer">Research</a><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://www.anthropic.com/news" target="_blank" rel="noreferrer">News</a><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://trust.anthropic.com/" target="_blank" rel="noreferrer">Trust center</a><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://www.anthropic.com/transparency" target="_blank" rel="noreferrer">Transparency</a></div></div><div class="flex flex-col gap-4 flex-1 whitespace-nowrap w-full md:items-center"><div class="flex gap-4 flex-col"><p class="text-sm font-semibold text-gray-950 dark:text-white mb-1">Help and security</p><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://www.anthropic.com/supported-countries" target="_blank" rel="noreferrer">Availability</a><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://status.anthropic.com/" target="_blank" rel="noreferrer">Status</a><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://support.claude.com/" target="_blank" rel="noreferrer">Support center</a></div></div><div class="flex flex-col gap-4 flex-1 whitespace-nowrap w-full md:items-center"><div class="flex gap-4 flex-col"><p class="text-sm font-semibold text-gray-950 dark:text-white mb-1">Learn</p><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://academy.claude.com/" target="_blank" rel="noreferrer">Courses</a><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://claude.com/partners/mcp" target="_blank" rel="noreferrer">MCP connectors</a><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://www.claude.com/customers" target="_blank" rel="noreferrer">Customer stories</a><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://www.anthropic.com/engineering" target="_blank" rel="noreferrer">Engineering blog</a><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://www.anthropic.com/events" target="_blank" rel="noreferrer">Events</a><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://claude.com/partners/powered-by-claude" target="_blank" rel="noreferrer">Powered by Claude</a><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://claude.com/partners/services" target="_blank" rel="noreferrer">Service partners</a><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://claude.com/programs/startups" target="_blank" rel="noreferrer">Startups program</a></div></div><div class="flex flex-col gap-4 flex-1 whitespace-nowrap w-full md:items-center"><div class="flex gap-4 flex-col"><p class="text-sm font-semibold text-gray-950 dark:text-white mb-1">Terms and policies</p><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://www.anthropic.com/legal/privacy" target="_blank" rel="noreferrer">Privacy policy</a><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://www.anthropic.com/responsible-disclosure-policy" target="_blank" rel="noreferrer">Disclosure policy</a><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://www.anthropic.com/legal/aup" target="_blank" rel="noreferrer">Usage policy</a><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://www.anthropic.com/legal/commercial-terms" target="_blank" rel="noreferrer">Commercial terms</a><a class="text-sm max-w-36 whitespace-normal md:truncate text-gray-950/50 dark:text-white/50 hover:text-gray-950/70 dark:hover:text-white/70" href="https://www.anthropic.com/legal/consumer-terms" target="_blank" rel="noreferrer">Consumer terms</a></div></div></div></div></div></footer><!--$--><!--/$--></div><!--$?--><template id="B:0"></template><!--/$--></div></div><script>requestAnimationFrame(function(){$RT=performance.now()});</script><script src="/docs/_next/static/chunks/6d55b684068fd47e.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM" id="_R_" async=""></script><div hidden id="S:0"><div data-assistant-sheet-container="" class="sticky shrink-0 z-22 bg-background-light dark:bg-background-dark mt-(--banner-height,0px) top-(--banner-height,0px) h-[calc(100vh-var(--banner-height,0px))] max-lg:hidden print:hidden" style="width:var(--assistant-sheet-width, 0px);overflow:hidden"><div class="absolute left-0 top-0 bottom-0 w-px z-10 cursor-col-resize after:content-[&quot;&quot;] after:absolute after:inset-y-0 after:-inset-x-2 after:select-none bg-gray-100 dark:bg-gray-800 hover:bg-gray-200 dark:hover:bg-gray-700"></div><div id="chat-assistant-sheet" class="flex flex-col overflow-hidden shrink-0 relative h-full bg-background-light dark:bg-background-dark chat-assistant-sheet" aria-hidden="true"><div class="w-full flex flex-col flex-1 min-h-0 lg:pt-3"><div class="chat-assistant-sheet-header flex items-center justify-between pb-3 px-4"><div class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" class="size-5 text-primary dark:text-primary-light shrink-0" aria-hidden="true"><path d="M5.65799 2.99L4.39499 2.569L3.97399 1.306C3.83699 0.898 3.16199 0.898 3.02499 1.306L2.60399 2.569L1.34099 2.99C1.13699 3.058 0.998993 3.249 0.998993 3.464C0.998993 3.679 1.13699 3.87 1.34099 3.938L2.60399 4.359L3.02499 5.622C3.09299 5.826 3.28499 5.964 3.49999 5.964C3.71499 5.964 3.90599 5.826 3.97499 5.622L4.39599 4.359L5.65899 3.938C5.86299 3.87 6.00099 3.679 6.00099 3.464C6.00099 3.249 5.86199 3.058 5.65799 2.99Z" fill="currentColor" stroke="none"></path><path d="M9.5 2.75L11.412 7.587L16.25 9.5L11.412 11.413L9.5 16.25L7.587 11.413L2.75 9.5L7.587 7.587L9.5 2.75Z" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg><span class="font-medium text-gray-900 dark:text-gray-100">Assistant</span></div><div class="flex items-center gap-1"><button class="group hover:bg-gray-100 dark:hover:bg-white/10 p-1.5 rounded-lg" aria-label="Maximize assistant panel"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-4 sm:size-3.5 text-gray-500 group-hover:text-gray-700 dark:group-hover:text-gray-300 shrink-0"><path d="M10.75 2.75H15.25V7.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M15.25 2.75L10.75 7.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.75 10.75V15.25H7.25" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.75 15.25L7.25 10.75" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button><button class="group hover:bg-gray-100 dark:hover:bg-white/10 p-1.5 rounded-lg" aria-label="Close assistant panel"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-[20px] sm:size-4 text-gray-500 group-hover:text-gray-700 dark:group-hover:text-gray-300 shrink-0"><path d="M14 4L4 14" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M4 4L14 14" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div><div id="chat-content" class="chat-assistant-sheet-content flex flex-col-reverse flex-1 overflow-y-auto relative px-5 min-h-0"><div class="grow"></div><div class="h-full flex flex-col justify-between"><div class="mt-4 flex flex-col items-center text-sm"><div class="mx-8 text-center text-gray-400 dark:text-gray-600 text-xs chat-assistant-disclaimer-text">Responses are generated using AI and may contain mistakes.</div></div></div></div><div class="px-4 pb-4 shrink-0"><div class=""><div class="flex flex-col w-full rounded-2xl pointer-events-auto bg-background-light dark:bg-background-dark border border-gray-200 dark:border-white/10 focus-within:border-primary dark:focus-within:border-primary-light transition-colors"><div class="relative flex items-end"><textarea id="chat-assistant-textarea" aria-label="Ask a question..." autoComplete="off" placeholder="Ask a question..." class="chat-assistant-input w-full bg-transparent border-0 peer/input text-gray-900 dark:text-gray-100 placeholder-gray-600 dark:placeholder-gray-300 outline-hidden! focus:outline-hidden! focus:ring-0 py-2.5 pl-3.5 pr-10 font-bodyWeight text-sm pb-0!" style="resize:none" rows="2"></textarea></div><div class="flex items-center justify-between px-2 pb-2"><input type="file" accept="image/*,.pdf,.js,.jsx,.ts,.tsx,.mjs,.cjs,.md,.mdx,.json,.html,.css,.py,.csv,.txt,.yaml,.yml,.xml,.sql,.sh,.bash,.zsh,.graphql,.gql,.toml,.env,.go,.rs,.rb,.java,.kt,.swift,.c,.cpp,.cc,.h,.hpp,.cs,.php,.dart,.lua,.r,.scala,.ini,.cfg,.conf,.log,.dockerfile,.makefile,.gitignore" multiple="" class="hidden"/><button type="button" class="p-1 rounded-lg text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200 hover:bg-gray-100 dark:hover:bg-white/10" aria-label="Add attachment"><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" focusable="false" class="size-3.5 shrink-0"><path d="M7.75 5V11.75C7.75 12.578 8.422 13.25 9.25 13.25C10.078 13.25 10.75 12.578 10.75 11.75V4.75C10.75 3.093 9.407 1.75 7.75 1.75C6.093 1.75 4.75 3.093 4.75 4.75V11.75C4.75 14.235 6.765 16.25 9.25 16.25C11.735 16.25 13.75 14.235 13.75 11.75V5" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button><button class="chat-assistant-send-button flex justify-center items-center rounded-full p-1 size-6 bg-primary/30 dark:bg-primary-dark/30" aria-label="Send message" disabled=""><svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true" class="size-2.5 shrink-0 text-white dark:text-white"><path d="M9.0 1.5754L8.9999 16.4171" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path><path d="M2.2563 8.319L8.9999 1.5754L15.7435 8.3191" stroke="currentColor" width="1.5" linecap="round" linejoin="round"></path></svg></button></div></div></div></div></div></div></div></div><script>$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};
2982$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\nb:I[168027,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"default\"]\n:HL[\"/docs/_next/static/chunks/462bacc63bed9960.css?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"style\"]\n:HL[\"/docs/_next/static/chunks/cbc8615ac0de59e9.css?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"style\"]\n:HL[\"/docs/_next/static/media/83afe278b6a6bb3c.p.3a6ba036.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/docs/_next/static/media/PaperMono_Variable.p.aa32f7a0.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/docs/_next/static/media/f67ad414ed34149c.p.84166d94.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"RJajscwELoikxQ4miH90c\",\"p\":\"/docs\",\"c\":[\"\",\"_sites\",\"claude-ai\",\"claude-tag\",\"overview\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"%5Fsites\",{\"children\":[[\"subdomain\",\"claude-ai\",\"d\"],{\"children\":[\"(multitenant)\",{\"children\":[[\"slug\",\"claude-tag/overview\",\"oc\"],{\"children\":[\"__PAGE__\",{}]}]}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/docs/_next/static/chunks/462bacc63bed9960.css?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/docs/_next/static/chunks/cbc8615ac0de59e9.css?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"suppressHydrationWarning\":true,\"lang\":\"en\",\"className\":\"inter_1d81deff-module__CYM0aG__variable papermono_89c757f2-module__6aS5zq__variable dark\",\"data-banner-state\":\"visible\",\"data-assistant-state\":\"closed\",\"data-page-mode\":\"none\",\"data-current-path\":\"/\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"!function(){var b=\\\"/docs\\\";\\nfunction a(p){if(p==null)return\\\"/\\\";p=\\\"\\\"+p;if(\\\"\\\"===p)return\\\"/\\\";return\\\"/\\\"===p.charAt(0)?p:\\\"/\\\"+p}\\nfunction u(p){if(p==null)return p;p=\\\"\\\"+p;if(!p||p.charAt(p.length-1)===\\\"/\\\")return p.slice(0,-1);return p}\\nfunction i(p){if(p==null)return p;p=\\\"\\\"+p;if(6\u003c=p.length\u0026\u0026p.substring(p.length-6)===\\\"/index\\\")return p.substring(0,p.length-6);if(\\\"index\\\"===p)return\\\"\\\";return p}\\nvar p=(location.pathname||\\\"\\\").split(\\\"?\\\")[0].split(\\\"#\\\")[0]||\\\"\\\";\\nif(b)if(p===b)p=\\\"\\\";else if(0===p.indexOf(b+\\\"/\\\"))p=p.substring(b.length);\\np=a(p);p=u(p);p=i(p);p=\\\"\\\"===p||\\\"index\\\"===p?\\\"/\\\":a(p);\\ndocument.documentElement.setAttribute(\\\"data-current-path\\\",p);\\n}();\"}}],[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"(() =\u003e {\\n const isIOS =\\n /iP(hone|ad|od)/.test(navigator.userAgent) ||\\n (/Macintosh/.test(navigator.userAgent) \u0026\u0026 navigator.maxTouchPoints \u003e 1);\\n if (!isIOS) return;\\n const apply = () =\u003e {\\n for (const meta of document.querySelectorAll('meta[name=\\\"viewport\\\"]')) {\\n const content = meta.getAttribute('content') || '';\\n if (!content.includes('maximum-scale')) {\\n meta.setAttribute('content', content + ', maximum-scale=1');\\n }\\n }\\n };\\n apply();\\n new MutationObserver(apply).observe(document.head, {\\n childList: true,\\n subtree: true,\\n attributes: true,\\n attributeFilter: ['content'],\\n });\\n})();\"}}],[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"!function(){\\nfunction read(){try{\\nvar e=performance.getEntriesByType?performance.getEntriesByType(\\\"navigation\\\"):[];\\nvar st=(e[0]\u0026\u0026e[0].serverTiming)||[];\\nvar g={};\\nfor(var i=0;i\u003cst.length;i++){var n=st[i].name,d=st[i].description;if(!d)continue;try{d=decodeURIComponent(d)}catch(x){}\\nif(n===\\\"country\\\")g.country=d;else if(n===\\\"region\\\")g.region=d;else if(n===\\\"continent\\\")g.continent=d;}\\nvar w=window;w.mintlify=w.mintlify||{};w.mintlify.geo=g;\\n}catch(x){}}\\nread();document.addEventListener(\\\"DOMContentLoaded\\\",read);\\n}();\"}}],[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"!function(){try{\\nvar w=window;w.mintlify=w.mintlify||{};\\nvar q=w.mintlify.__apiPlaygroundInputsQueue;\\nif(!Array.isArray(q)){q=[];w.mintlify.__apiPlaygroundInputsQueue=q;}\\nw.mintlify.api=w.mintlify.api||{};\\nw.mintlify.api.playground=w.mintlify.api.playground||{};\\nif(typeof w.mintlify.api.playground.setServerVariables!==\\\"function\\\"){\\nw.mintlify.api.playground.setServerVariables=function(v){q.push({type:\\\"set\\\",variables:v});};\\n}\\nif(typeof w.mintlify.api.playground.clearServerVariables!==\\\"function\\\"){\\nw.mintlify.api.playground.clearServerVariables=function(){q.push({type:\\\"clear\\\"});};\\n}\\n}catch(e){}}();\"}}],\"$L2\",\"$L3\",false]}],\"$L4\"]}]]}],{\"children\":[\"%5Fsites\",\"$L5\",{\"children\":[[\"subdomain\",\"claude-ai\",\"d\"],\"$L6\",{\"children\":[\"(multitenant)\",\"$L7\",{\"children\":[[\"slug\",\"claude-tag/overview\",\"oc\"],\"$L8\",{\"children\":[\"__PAGE__\",\"$L9\",{},null,false]},null,false]},null,false]},null,false]},null,false]},null,false],\"$La\",false]],\"m\":\"$undefined\",\"G\":[\"$b\",[\"$Lc\",\"$Ld\"]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"e:I[667786,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"MintlifyApiPlaygroundInputsInit\"]\nf:I[339756,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"10:I[556357,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d056c4dd204a2da3.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"11:I[837457,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"12:I[894587,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"ThemeProvider\"]\n"])</script><script>self.__next_f.push([1,"13:I[152823,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"ColorVariables\"]\n"])</script><script>self.__next_f.push([1,"14:I[531961,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"FontScript\"]\n"])</script><script>self.__next_f.push([1,"15:I[649328,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"RoundedVariables\"]\n"])</script><script>self.__next_f.push([1,"16:I[702910,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/187844b452a731d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"RecommendedPagesList\"]\n"])</script><script>self.__next_f.push([1,"17:I[570420,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"DataCurrentPathUpdater\"]\n"])</script><script>self.__next_f.push([1,"18:I[341175,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/2f355e1cfcb656a3.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"1b:I[897367,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"OutletBoundary\"]\n1d:I[711533,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"AsyncMetadataOutlet\"]\n1f:I[897367,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"ViewportBoundary\"]\n21:I[897367,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"MetadataBoundary\"]\n22:\"$Sreact.suspense\"\n2:[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){\\nif(typeof CSS===\\\"undefined\\\"||!(\\\"registerProperty\\\" in CSS))return;\\nif(CSS.supports\u0026\u0026CSS.supports(\\\"-webkit-backdrop-filter:none\\\"))return;\\nvar n=[\\\"--scroll-area-overflow-x-start\\\",\\\"--scroll-area-overflow-x-end\\\",\\\"--scroll-area-overflow-y-start\\\",\\\"--scroll-area-overflow-y-end\\\"];\\nvar d={\\\"syntax\\\":\\\"\u003clength\u003e\\\",\\\"inherits\\\":false,\\\"initialValue\\\":\\\"0px\\\"};\\nfor(var i=0;i\u003cn.length;i++){try{CSS.registerProperty({name:n[i],syntax:d.syntax,inherits:d.inherits,initialValue:d.initialValue})}catch(e){}}\\n})();\"}}]\n"])</script><script>self.__next_f.push([1,"3:[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(a,b){try{let c=document.getElementById(\\\"banner\\\")?.innerText;if(c){for(let d=0;d\u003clocalStorage.length;d++){let e=localStorage.key(d);if(e?.endsWith(a)\u0026\u0026localStorage.getItem(e)===c)return void document.documentElement.setAttribute(b,\\\"hidden\\\")}document.documentElement.setAttribute(b,\\\"visible\\\");return}for(let c=0;c\u003clocalStorage.length;c++){let d=localStorage.key(c);if(d?.endsWith(a)\u0026\u0026localStorage.getItem(d))return void document.documentElement.setAttribute(b,\\\"hidden\\\")}document.documentElement.setAttribute(b,\\\"visible\\\")}catch(a){document.documentElement.setAttribute(b,\\\"hidden\\\")}})(\\n \\\"bannerDismissed\\\",\\n \\\"data-banner-state\\\",\\n)\"}}]\n"])</script><script>self.__next_f.push([1,"4:[\"$\",\"body\",null,{\"className\":\"antialiased\",\"children\":[[\"$\",\"$Le\",null,{}],false,[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$10\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/docs/_next/static/chunks/d056c4dd204a2da3.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}],[\"$\",\"script\",\"script-1\",{\"src\":\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}],[\"$\",\"script\",\"script-2\",{\"src\":\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}],[\"$\",\"script\",\"script-3\",{\"src\":\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}],[\"$\",\"script\",\"script-4\",{\"src\":\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}],[\"$\",\"script\",\"script-5\",{\"src\":\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}]],\"template\":[\"$\",\"$L11\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L12\",null,{\"children\":[[\"$\",\"$L13\",null,{}],[\"$\",\"$L14\",null,{}],[\"$\",\"$L15\",null,{}],[\"$\",\"style\",null,{\"children\":\":root {\\n --primary: 17 120 102;\\n --primary-light: 74 222 128;\\n --primary-dark: 22 101 52;\\n --background-light: 255 255 255;\\n --background-dark: 15 17 23;\\n}\"}],[\"$\",\"main\",null,{\"className\":\"h-screen bg-background-light dark:bg-background-dark text-left\",\"children\":[\"$\",\"article\",null,{\"className\":\"bg-custom bg-fixed bg-center bg-cover relative flex flex-col items-center justify-center h-full\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full max-w-xl px-10\",\"children\":[[\"$\",\"span\",null,{\"className\":\"inline-flex mb-6 rounded-full px-3 py-1 text-sm font-semibold mr-4 text-white p-1 bg-primary\",\"children\":[\"Error \",404]}],[\"$\",\"h1\",null,{\"className\":\"font-semibold mb-3 text-3xl\",\"children\":\"Page not found!\"}],[\"$\",\"p\",null,{\"className\":\"text-lg text-gray-600 dark:text-gray-400 mb-6\",\"children\":\"We couldn't find the page.\"}],[\"$\",\"$L16\",null,{}]]}]}]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],false,[\"$\",\"$L17\",null,{}]]}]\n"])</script><script>self.__next_f.push([1,"5:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L11\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n"])</script><script>self.__next_f.push([1,"6:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$18\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/docs/_next/static/chunks/2f355e1cfcb656a3.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}],[\"$\",\"script\",\"script-1\",{\"src\":\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}],[\"$\",\"script\",\"script-2\",{\"src\":\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}],[\"$\",\"script\",\"script-3\",{\"src\":\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}],[\"$\",\"script\",\"script-4\",{\"src\":\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}],[\"$\",\"script\",\"script-5\",{\"src\":\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}]],\"template\":[\"$\",\"$L11\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L12\",null,{\"children\":[[\"$\",\"$L13\",null,{}],[\"$\",\"$L14\",null,{}],[\"$\",\"$L15\",null,{}],[\"$\",\"style\",null,{\"children\":\":root {\\n --primary: 17 120 102;\\n --primary-light: 74 222 128;\\n --primary-dark: 22 101 52;\\n --background-light: 255 255 255;\\n --background-dark: 15 17 23;\\n}\"}],[\"$\",\"main\",null,{\"className\":\"h-screen bg-background-light dark:bg-background-dark text-left\",\"children\":[\"$\",\"article\",null,{\"className\":\"bg-custom bg-fixed bg-center bg-cover relative flex flex-col items-center justify-center h-full\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full max-w-xl px-10\",\"children\":[[\"$\",\"span\",null,{\"className\":\"inline-flex mb-6 rounded-full px-3 py-1 text-sm font-semibold mr-4 text-white p-1 bg-primary\",\"children\":[\"Error \",404]}],[\"$\",\"h1\",null,{\"className\":\"font-semibold mb-3 text-3xl\",\"children\":\"Page not found!\"}],[\"$\",\"p\",null,{\"className\":\"text-lg text-gray-600 dark:text-gray-400 mb-6\",\"children\":\"We couldn't find the page.\"}],[\"$\",\"$L16\",null,{}]]}]}]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n"])</script><script>self.__next_f.push([1,"7:[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-7\",{\"src\":\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-8\",{\"src\":\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-9\",{\"src\":\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-10\",{\"src\":\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-11\",{\"src\":\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-12\",{\"src\":\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-13\",{\"src\":\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-14\",{\"src\":\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-15\",{\"src\":\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-16\",{\"src\":\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-17\",{\"src\":\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-18\",{\"src\":\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}]],\"$L19\"]}]\n"])</script><script>self.__next_f.push([1,"8:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L11\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n"])</script><script>self.__next_f.push([1,"9:[\"$\",\"$1\",\"c\",{\"children\":[\"$L1a\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/docs/_next/static/chunks/e8ae17d17545aec9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/docs/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/docs/_next/static/chunks/1274e7453c808eec.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/docs/_next/static/chunks/a95b6b45d1dc4487.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/docs/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/docs/_next/static/chunks/935cd929aff6bb51.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/docs/_next/static/chunks/e07381c7469ca6d6.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L1b\",null,{\"children\":[\"$L1c\",[\"$\",\"$L1d\",null,{\"promise\":\"$@1e\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"a:[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L1f\",null,{\"children\":\"$L20\"}],null],[\"$\",\"$L21\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$22\",null,{\"fallback\":null,\"children\":\"$L23\"}]}]}]]}]\nc:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/docs/_next/static/chunks/462bacc63bed9960.css?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\nd:[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/docs/_next/static/chunks/cbc8615ac0de59e9.css?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"20:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, viewport-fit=cover\"}]]\n1c:null\n"])</script><script>self.__next_f.push([1,"24:I[707934,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"WebMcpRegistration\"]\n"])</script><script>self.__next_f.push([1,"25:I[590280,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"LivePreviewProvider\"]\n"])</script><script>self.__next_f.push([1,"26:I[973254,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"LivePreviewFavicon\"]\n"])</script><script>self.__next_f.push([1,"27:I[197336,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"28:I[91557,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e8ae17d17545aec9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1274e7453c808eec.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a95b6b45d1dc4487.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/935cd929aff6bb51.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e07381c7469ca6d6.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"AuthProvider\"]\n"])</script><script>self.__next_f.push([1,"29:I[91557,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e8ae17d17545aec9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1274e7453c808eec.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a95b6b45d1dc4487.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/935cd929aff6bb51.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e07381c7469ca6d6.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"DeploymentMetadataProvider\"]\n"])</script><script>self.__next_f.push([1,"2a:I[91557,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e8ae17d17545aec9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1274e7453c808eec.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a95b6b45d1dc4487.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/935cd929aff6bb51.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e07381c7469ca6d6.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"DocsConfigProvider\"]\n"])</script><script>self.__next_f.push([1,"19:[null,[\"$\",\"$L24\",null,{\"subdomain\":\"claude-ai\",\"siteName\":\"Claude.ai Documentation\"}],[\"$\",\"$L25\",null,{\"isLivePreviewRoute\":false,\"children\":[[\"$\",\"$L26\",null,{}],[\"$\",\"$L12\",null,{\"appearance\":\"$undefined\",\"codeblockTheme\":\"system\",\"children\":[[\"$\",\"blockquote\",null,{\"className\":\"sr-only\",\"data-agent-docs-index\":true,\"aria-hidden\":\"true\",\"children\":[[\"$\",\"h2\",null,{\"children\":\"Documentation Index\"}],[\"$\",\"p\",null,{\"children\":[\"Fetch the complete documentation index at:\",\" \",[\"$\",\"a\",null,{\"href\":\"/docs/llms.txt\",\"tabIndex\":-1,\"children\":\"/docs/llms.txt\"}]]}],[\"$\",\"p\",null,{\"children\":\"Use this file to discover all available pages before exploring further.\"}]]}],[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\":root{--banner-height:0px!important}\"}}],null,null,[\"$\",\"script\",null,{\"id\":\"_mintlify-banner-script\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function i(a,b,c,d,e){try{let f,g,h=[];try{h=window.location.pathname.split(\\\"/\\\").filter(a=\u003e\\\"\\\"!==a\u0026\u0026\\\"global\\\"!==a).slice(0,2)}catch{h=[]}let i=h.find(a=\u003ec.includes(a)),j=[];for(let c of(i?j.push(i):j.push(b),j.push(\\\"global\\\"),j)){if(!c)continue;let b=a[c];if(b?.content){f=b.content,g=c;break}}if(!f)return void document.documentElement.setAttribute(d,\\\"hidden\\\");let k=!0,l=0;for(;l\u003clocalStorage.length;){let a=localStorage.key(l);if(l++,!a?.endsWith(e))continue;let b=localStorage.getItem(a);if(b\u0026\u0026b===f){k=!1;break}g\u0026\u0026(a.startsWith(`lang:${g}_`)||!a.startsWith(\\\"lang:\\\"))\u0026\u0026(localStorage.removeItem(a),l--)}document.documentElement.setAttribute(d,k?\\\"visible\\\":\\\"hidden\\\")}catch(a){console.error(a),document.documentElement.setAttribute(d,\\\"hidden\\\")}})(\\n {},\\n \\\"en\\\",\\n [],\\n \\\"data-banner-state\\\",\\n \\\"bannerDismissed\\\",\\n)\"},\"suppressHydrationWarning\":true}],[\"$\",\"$L27\",null,{\"appId\":\"$und
2982$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};$RC("B:0","S:0")</script><script>(self.__next_f=self.__next_f||[]).push([0])</script><script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\nb:I[168027,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"default\"]\n:HL[\"/docs/_next/static/chunks/462bacc63bed9960.css?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"style\"]\n:HL[\"/docs/_next/static/chunks/cbc8615ac0de59e9.css?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"style\"]\n:HL[\"/docs/_next/static/media/83afe278b6a6bb3c.p.3a6ba036.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/docs/_next/static/media/PaperMono_Variable.p.aa32f7a0.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/docs/_next/static/media/f67ad414ed34149c.p.84166d94.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script><script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"RJajscwELoikxQ4miH90c\",\"p\":\"/docs\",\"c\":[\"\",\"_sites\",\"claude-ai\",\"claude-tag\",\"overview\"],\"i\":false,\"f\":[[[\"\",{\"children\":[\"%5Fsites\",{\"children\":[[\"subdomain\",\"claude-ai\",\"d\"],{\"children\":[\"(multitenant)\",{\"children\":[[\"slug\",\"claude-tag/overview\",\"oc\"],{\"children\":[\"__PAGE__\",{}]}]}]}]}]},\"$undefined\",\"$undefined\",true],[\"\",[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/docs/_next/static/chunks/462bacc63bed9960.css?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/docs/_next/static/chunks/cbc8615ac0de59e9.css?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"suppressHydrationWarning\":true,\"lang\":\"en\",\"className\":\"inter_1d81deff-module__CYM0aG__variable papermono_89c757f2-module__6aS5zq__variable dark\",\"data-banner-state\":\"visible\",\"data-assistant-state\":\"closed\",\"data-page-mode\":\"none\",\"data-current-path\":\"/\",\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"!function(){var b=\\\"/docs\\\";\\nfunction a(p){if(p==null)return\\\"/\\\";p=\\\"\\\"+p;if(\\\"\\\"===p)return\\\"/\\\";return\\\"/\\\"===p.charAt(0)?p:\\\"/\\\"+p}\\nfunction u(p){if(p==null)return p;p=\\\"\\\"+p;if(!p||p.charAt(p.length-1)===\\\"/\\\")return p.slice(0,-1);return p}\\nfunction i(p){if(p==null)return p;p=\\\"\\\"+p;if(6\u003c=p.length\u0026\u0026p.substring(p.length-6)===\\\"/index\\\")return p.substring(0,p.length-6);if(\\\"index\\\"===p)return\\\"\\\";return p}\\nvar p=(location.pathname||\\\"\\\").split(\\\"?\\\")[0].split(\\\"#\\\")[0]||\\\"\\\";\\nif(b)if(p===b)p=\\\"\\\";else if(0===p.indexOf(b+\\\"/\\\"))p=p.substring(b.length);\\np=a(p);p=u(p);p=i(p);p=\\\"\\\"===p||\\\"index\\\"===p?\\\"/\\\":a(p);\\ndocument.documentElement.setAttribute(\\\"data-current-path\\\",p);\\n}();\"}}],[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"(() =\u003e {\\n const isIOS =\\n /iP(hone|ad|od)/.test(navigator.userAgent) ||\\n (/Macintosh/.test(navigator.userAgent) \u0026\u0026 navigator.maxTouchPoints \u003e 1);\\n if (!isIOS) return;\\n const apply = () =\u003e {\\n for (const meta of document.querySelectorAll('meta[name=\\\"viewport\\\"]')) {\\n const content = meta.getAttribute('content') || '';\\n if (!content.includes('maximum-scale')) {\\n meta.setAttribute('content', content + ', maximum-scale=1');\\n }\\n }\\n };\\n apply();\\n new MutationObserver(apply).observe(document.head, {\\n childList: true,\\n subtree: true,\\n attributes: true,\\n attributeFilter: ['content'],\\n });\\n})();\"}}],[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"!function(){\\nfunction read(){try{\\nvar e=performance.getEntriesByType?performance.getEntriesByType(\\\"navigation\\\"):[];\\nvar st=(e[0]\u0026\u0026e[0].serverTiming)||[];\\nvar g={};\\nfor(var i=0;i\u003cst.length;i++){var n=st[i].name,d=st[i].description;if(!d)continue;try{d=decodeURIComponent(d)}catch(x){}\\nif(n===\\\"country\\\")g.country=d;else if(n===\\\"region\\\")g.region=d;else if(n===\\\"continent\\\")g.continent=d;}\\nvar w=window;w.mintlify=w.mintlify||{};w.mintlify.geo=g;\\n}catch(x){}}\\nread();document.addEventListener(\\\"DOMContentLoaded\\\",read);\\n}();\"}}],[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"!function(){try{\\nvar w=window;w.mintlify=w.mintlify||{};\\nvar q=w.mintlify.__apiPlaygroundInputsQueue;\\nif(!Array.isArray(q)){q=[];w.mintlify.__apiPlaygroundInputsQueue=q;}\\nw.mintlify.api=w.mintlify.api||{};\\nw.mintlify.api.playground=w.mintlify.api.playground||{};\\nif(typeof w.mintlify.api.playground.setServerVariables!==\\\"function\\\"){\\nw.mintlify.api.playground.setServerVariables=function(v){q.push({type:\\\"set\\\",variables:v});};\\n}\\nif(typeof w.mintlify.api.playground.clearServerVariables!==\\\"function\\\"){\\nw.mintlify.api.playground.clearServerVariables=function(){q.push({type:\\\"clear\\\"});};\\n}\\n}catch(e){}}();\"}}],\"$L2\",\"$L3\",false]}],\"$L4\"]}]]}],{\"children\":[\"%5Fsites\",\"$L5\",{\"children\":[[\"subdomain\",\"claude-ai\",\"d\"],\"$L6\",{\"children\":[\"(multitenant)\",\"$L7\",{\"children\":[[\"slug\",\"claude-tag/overview\",\"oc\"],\"$L8\",{\"children\":[\"__PAGE__\",\"$L9\",{},null,false]},null,false]},null,false]},null,false]},null,false]},null,false],\"$La\",false]],\"m\":\"$undefined\",\"G\":[\"$b\",[\"$Lc\",\"$Ld\"]],\"s\":false,\"S\":true}\n"])</script><script>self.__next_f.push([1,"e:I[667786,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"MintlifyApiPlaygroundInputsInit\"]\nf:I[339756,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"10:I[556357,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d056c4dd204a2da3.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"11:I[837457,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"12:I[894587,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"ThemeProvider\"]\n"])</script><script>self.__next_f.push([1,"13:I[152823,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"ColorVariables\"]\n"])</script><script>self.__next_f.push([1,"14:I[531961,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"FontScript\"]\n"])</script><script>self.__next_f.push([1,"15:I[649328,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"RoundedVariables\"]\n"])</script><script>self.__next_f.push([1,"16:I[702910,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/187844b452a731d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"RecommendedPagesList\"]\n"])</script><script>self.__next_f.push([1,"17:I[570420,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"DataCurrentPathUpdater\"]\n"])</script><script>self.__next_f.push([1,"18:I[341175,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/2f355e1cfcb656a3.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"1b:I[897367,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"OutletBoundary\"]\n1d:I[711533,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"AsyncMetadataOutlet\"]\n1f:I[897367,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"ViewportBoundary\"]\n21:I[897367,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"MetadataBoundary\"]\n22:\"$Sreact.suspense\"\n2:[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(){\\nif(typeof CSS===\\\"undefined\\\"||!(\\\"registerProperty\\\" in CSS))return;\\nif(CSS.supports\u0026\u0026CSS.supports(\\\"-webkit-backdrop-filter:none\\\"))return;\\nvar n=[\\\"--scroll-area-overflow-x-start\\\",\\\"--scroll-area-overflow-x-end\\\",\\\"--scroll-area-overflow-y-start\\\",\\\"--scroll-area-overflow-y-end\\\"];\\nvar d={\\\"syntax\\\":\\\"\u003clength\u003e\\\",\\\"inherits\\\":false,\\\"initialValue\\\":\\\"0px\\\"};\\nfor(var i=0;i\u003cn.length;i++){try{CSS.registerProperty({name:n[i],syntax:d.syntax,inherits:d.inherits,initialValue:d.initialValue})}catch(e){}}\\n})();\"}}]\n"])</script><script>self.__next_f.push([1,"3:[\"$\",\"script\",null,{\"type\":\"text/javascript\",\"dangerouslySetInnerHTML\":{\"__html\":\"(function(a,b){try{let c=document.getElementById(\\\"banner\\\")?.innerText;if(c){for(let d=0;d\u003clocalStorage.length;d++){let e=localStorage.key(d);if(e?.endsWith(a)\u0026\u0026localStorage.getItem(e)===c)return void document.documentElement.setAttribute(b,\\\"hidden\\\")}document.documentElement.setAttribute(b,\\\"visible\\\");return}for(let c=0;c\u003clocalStorage.length;c++){let d=localStorage.key(c);if(d?.endsWith(a)\u0026\u0026localStorage.getItem(d))return void document.documentElement.setAttribute(b,\\\"hidden\\\")}document.documentElement.setAttribute(b,\\\"visible\\\")}catch(a){document.documentElement.setAttribute(b,\\\"hidden\\\")}})(\\n \\\"bannerDismissed\\\",\\n \\\"data-banner-state\\\",\\n)\"}}]\n"])</script><script>self.__next_f.push([1,"4:[\"$\",\"body\",null,{\"className\":\"antialiased\",\"children\":[[\"$\",\"$Le\",null,{}],false,[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$10\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/docs/_next/static/chunks/d056c4dd204a2da3.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}],[\"$\",\"script\",\"script-1\",{\"src\":\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}],[\"$\",\"script\",\"script-2\",{\"src\":\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}],[\"$\",\"script\",\"script-3\",{\"src\":\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}],[\"$\",\"script\",\"script-4\",{\"src\":\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}],[\"$\",\"script\",\"script-5\",{\"src\":\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}]],\"template\":[\"$\",\"$L11\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L12\",null,{\"children\":[[\"$\",\"$L13\",null,{}],[\"$\",\"$L14\",null,{}],[\"$\",\"$L15\",null,{}],[\"$\",\"style\",null,{\"children\":\":root {\\n --primary: 17 120 102;\\n --primary-light: 74 222 128;\\n --primary-dark: 22 101 52;\\n --background-light: 255 255 255;\\n --background-dark: 15 17 23;\\n}\"}],[\"$\",\"main\",null,{\"className\":\"h-screen bg-background-light dark:bg-background-dark text-left\",\"children\":[\"$\",\"article\",null,{\"className\":\"bg-custom bg-fixed bg-center bg-cover relative flex flex-col items-center justify-center h-full\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full max-w-xl px-10\",\"children\":[[\"$\",\"span\",null,{\"className\":\"inline-flex mb-6 rounded-full px-3 py-1 text-sm font-semibold mr-4 text-white p-1 bg-primary\",\"children\":[\"Error \",404]}],[\"$\",\"h1\",null,{\"className\":\"font-semibold mb-3 text-3xl\",\"children\":\"Page not found!\"}],[\"$\",\"p\",null,{\"className\":\"text-lg text-gray-600 dark:text-gray-400 mb-6\",\"children\":\"We couldn't find the page.\"}],[\"$\",\"$L16\",null,{}]]}]}]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}],false,[\"$\",\"$L17\",null,{}]]}]\n"])</script><script>self.__next_f.push([1,"5:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L11\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n"])</script><script>self.__next_f.push([1,"6:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$18\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/docs/_next/static/chunks/2f355e1cfcb656a3.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}],[\"$\",\"script\",\"script-1\",{\"src\":\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}],[\"$\",\"script\",\"script-2\",{\"src\":\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}],[\"$\",\"script\",\"script-3\",{\"src\":\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}],[\"$\",\"script\",\"script-4\",{\"src\":\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}],[\"$\",\"script\",\"script-5\",{\"src\":\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true}]],\"template\":[\"$\",\"$L11\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"$L12\",null,{\"children\":[[\"$\",\"$L13\",null,{}],[\"$\",\"$L14\",null,{}],[\"$\",\"$L15\",null,{}],[\"$\",\"style\",null,{\"children\":\":root {\\n --primary: 17 120 102;\\n --primary-light: 74 222 128;\\n --primary-dark: 22 101 52;\\n --background-light: 255 255 255;\\n --background-dark: 15 17 23;\\n}\"}],[\"$\",\"main\",null,{\"className\":\"h-screen bg-background-light dark:bg-background-dark text-left\",\"children\":[\"$\",\"article\",null,{\"className\":\"bg-custom bg-fixed bg-center bg-cover relative flex flex-col items-center justify-center h-full\",\"children\":[\"$\",\"div\",null,{\"className\":\"w-full max-w-xl px-10\",\"children\":[[\"$\",\"span\",null,{\"className\":\"inline-flex mb-6 rounded-full px-3 py-1 text-sm font-semibold mr-4 text-white p-1 bg-primary\",\"children\":[\"Error \",404]}],[\"$\",\"h1\",null,{\"className\":\"font-semibold mb-3 text-3xl\",\"children\":\"Page not found!\"}],[\"$\",\"p\",null,{\"className\":\"text-lg text-gray-600 dark:text-gray-400 mb-6\",\"children\":\"We couldn't find the page.\"}],[\"$\",\"$L16\",null,{}]]}]}]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n"])</script><script>self.__next_f.push([1,"7:[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-7\",{\"src\":\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-8\",{\"src\":\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-9\",{\"src\":\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-10\",{\"src\":\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-11\",{\"src\":\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-12\",{\"src\":\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-13\",{\"src\":\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-14\",{\"src\":\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-15\",{\"src\":\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-16\",{\"src\":\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-17\",{\"src\":\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-18\",{\"src\":\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}]],\"$L19\"]}]\n"])</script><script>self.__next_f.push([1,"8:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$Lf\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L11\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n"])</script><script>self.__next_f.push([1,"9:[\"$\",\"$1\",\"c\",{\"children\":[\"$L1a\",[[\"$\",\"script\",\"script-0\",{\"src\":\"/docs/_next/static/chunks/e8ae17d17545aec9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/docs/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/docs/_next/static/chunks/1274e7453c808eec.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/docs/_next/static/chunks/a95b6b45d1dc4487.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/docs/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/docs/_next/static/chunks/935cd929aff6bb51.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/docs/_next/static/chunks/e07381c7469ca6d6.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L1b\",null,{\"children\":[\"$L1c\",[\"$\",\"$L1d\",null,{\"promise\":\"$@1e\"}]]}]]}]\n"])</script><script>self.__next_f.push([1,"a:[\"$\",\"$1\",\"h\",{\"children\":[null,[[\"$\",\"$L1f\",null,{\"children\":\"$L20\"}],null],[\"$\",\"$L21\",null,{\"children\":[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$22\",null,{\"fallback\":null,\"children\":\"$L23\"}]}]}]]}]\nc:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/docs/_next/static/chunks/462bacc63bed9960.css?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\nd:[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/docs/_next/static/chunks/cbc8615ac0de59e9.css?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n"])</script><script>self.__next_f.push([1,"20:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, viewport-fit=cover\"}]]\n1c:null\n"])</script><script>self.__next_f.push([1,"1e:{\"metadata\":[[\"$\",\"title\",\"0\",{\"children\":\"Work with Claude Tag - Claude.ai Documentation\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Claude Tag puts Claude in your Slack channels with admin-governed access. See what to hand it, how setup works, and where to start as an admin or end user.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"Claude.ai Documentation\"}],[\"$\",\"meta\",\"3\",{\"name\":\"generator\",\"content\":\"Mintlify\"}],[\"$\",\"meta\",\"4\",{\"name\":\"msapplication-config\",\"content\":\"/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon/browserconfig.xml\"}],[\"$\",\"meta\",\"5\",{\"name\":\"apple-mobile-web-app-title\",\"content\":\"Claude.ai Documentation\"}],[\"$\",\"meta\",\"6\",{\"name\":\"msapplication-TileColor\",\"content\":\"#0E0E0E\"}],[\"$\",\"link\",\"7\",{\"rel\":\"canonical\",\"href\":\"https://claude.com/docs/claude-tag/overview\"}],[\"$\",\"link\",\"8\",{\"rel\":\"alternate\",\"type\":\"application/xml\",\"href\":\"/docs/sitemap.xml\"}],[\"$\",\"link\",\"9\",{\"rel\":\"alternate\",\"type\":\"text/markdown\",\"href\":\"/docs/claude-tag/overview.md\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:title\",\"content\":\"Work with Claude Tag - Claude.ai Documentation\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:description\",\"content\":\"Claude Tag puts Claude in your Slack channels with admin-governed access. See what to hand it, how setup works, and where to start as an admin or end user.\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:url\",\"content\":\"https://claude.com/docs/claude-tag/overview\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:site_name\",\"content\":\"Claude.ai Documentation\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image\",\"content\":\"https://claude-ai.mintlify.app/_next/image?url=%2F_mintlify%2Fapi%2Fog%3Fdivision%3D%2B%26title%3DWork%2Bwith%2BClaude%2BTag%26description%3DClaude%2BTag%2Bputs%2BClaude%2Bin%2Byour%2BSlack%2Bchannels%2Bwith%2Badmin-governed%2Baccess.%2BSee%2Bwhat%2Bto%2Bhand%2Bit%252C%2Bhow%2Bsetup%2Bworks%252C%2Band%2Bwhere%2Bto%2Bstart%2Bas%2Ban%2Badmin%2Bor%2Bend%2Buser.%26theme%3D6f9b6bab2d50cee40d7f721c\u0026w=1200\u0026q=100\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"16\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:title\",\"content\":\"Work with Claude Tag - Claude.ai Documentation\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:description\",\"content\":\"Claude Tag puts Claude in your Slack channels with admin-governed access. See what to hand it, how setup works, and where to start as an admin or end user.\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:image\",\"content\":\"https://claude-ai.mintlify.app/_next/image?url=%2F_mintlify%2Fapi%2Fog%3Fdivision%3D%2B%26title%3DWork%2Bwith%2BClaude%2BTag%26description%3DClaude%2BTag%2Bputs%2BClaude%2Bin%2Byour%2BSlack%2Bchannels%2Bwith%2Badmin-governed%2Baccess.%2BSee%2Bwhat%2Bto%2Bhand%2Bit%252C%2Bhow%2Bsetup%2Bworks%252C%2Band%2Bwhere%2Bto%2Bstart%2Bas%2Ban%2Badmin%2Bor%2Bend%2Buser.%26theme%3D6f9b6bab2d50cee40d7f721c\u0026w=1200\u0026q=100\"}],[\"$\",\"meta\",\"22\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"24\",{\"rel\":\"icon\",\"href\":\"/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon/android-chrome-192x192.png\",\"type\":\"image/png\",\"sizes\":\"192x192\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"link\",\"25\",{\"rel\":\"apple-touch-icon\",\"href\":\"/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon/apple-touch-icon.png\",\"type\":\"image/png\",\"sizes\":\"180x180\",\"media\":\"$undefined\"}],[\"$\",\"link\",\"26\",{\"rel\":\"icon\",\"href\":\"/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon/favicon-16x16.png\",\"type\":\"image/png\",\"sizes\":\"16x16\",\"media\":\"(prefers-color-scheme: light)\"}],[\"$\",\"link\",\"27\",{\"rel\":\"icon\",\"href\":\"/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon/favicon-32x32.png\",\"type\":\"image/png\",\"sizes\":\"32x32\",\"media\":\"(prefers-color-scheme: light)\"}],\"$L24\",\"$L25\",\"$L26\",\"$L27\",\"$L28\",\"$L29\"],\"error\":null,\"digest\":\"$undefined\"}\n"])</script><script>self.__next_f.push([1,"23:\"$1e:metadata\"\n"])</script><script>self.__next_f.push([1,"2a:I[27201,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"IconMark\"]\n24:[\"$\",\"link\",\"28\",{\"rel\":\"shortcut icon\",\"href\":\"/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"$undefined\",\"media\":\"(prefers-color-scheme: light)\"}]\n25:[\"$\",\"link\",\"29\",{\"rel\":\"icon\",\"href\":\"/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon-dark/android-chrome-192x192.png\",\"type\":\"image/png\",\"sizes\":\"192x192\",\"media\":\"(prefers-color-scheme: dark)\"}]\n26:[\"$\",\"link\",\"30\",{\"rel\":\"icon\",\"href\":\"/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon-dark/favicon-16x16.png\",\"type\":\"image/png\",\"sizes\":\"16x16\",\"media\":\"(prefers-color-scheme: dark)\"}]\n27:[\"$\",\"link\",\"31\",{\"rel\":\"icon\",\"href\":\"/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon-dark/favicon-32x32.png\",\"type\":\"image/png\",\"sizes\":\"32x32\",\"media\":\"(prefers-color-scheme: dark)\"}]\n28:[\"$\",\"link\",\"32\",{\"rel\":\"shortcut icon\",\"href\":\"/docs/_mintlify/favicons/claude-ai/zHw4o4W7dZma2XXV/_generated/favicon-dark/favicon.ico\",\"type\":\"image/x-icon\",\"sizes\":\"$undefined\",\"media\":\"(prefers-color-scheme: dark)\"}]\n29:[\"$\",\"$L2a\",\"33\",{}]\n"])</script><script>self.__next_f.push([1,"2b:I[707934,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"WebMcpRegistration\"]\n"])</script><script>self.__next_f.push([1,"2c:I[590280,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"LivePreviewProvider\"]\n"])</script><script>self.__next_f.push([1,"2d:I[973254,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"LivePreviewFavicon\"]\n"])</script><script>self.__next_f.push([1,"2e:I[197336,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"default\"]\n"])</script><script>self.__next_f.push([1,"2f:I[91557,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c9b24fe9cec085bd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/042fe625554e7ece.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/d9038181f2c2898b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8e9da56019900654.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/ecb1fa404af43177.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/91103844efdcdc17.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/cd6317586aadc353.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/7c2905a36f70970d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/c8a3deaa7335de64.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/300027ac55b30858.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/dc8a02ec19451792.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e8ae17d17545aec9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/68d6e5104243ae2b.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1274e7453c808eec.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a95b6b45d1dc4487.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/65712ea96ab292b5.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/935cd929aff6bb51.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e07381c7469ca6d6.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\"],\"AuthProvider\"]\n"])</script><script>self.__next_f.push([1,"30:I[91557,[\"/docs/_next/static/chunks/607c8643ad3fc16c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/1e7a188add93a653.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/49ec756ea5dc1771.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/62e03230a454b6d4.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/f38c09491143b60c.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/341920269e4c6c75.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/8fe1f631250d4b0d.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/a8953c1fadd78cbd.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/20dfaa13faa8c5a9.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqiuM\",\"/docs/_next/static/chunks/e9bc023ffbf81d27.js?dpl=dpl_44yfLsveaXsAai6bivrio3WJqi

hooks-guide Changed · +1 / -1 lines

from line 966
966966 
967967The reverse is not true: a hook returning `"allow"` doesn't bypass deny rules from settings, and it can't suppress the prompt for MCP tools marked [`requiresUserInteraction`](/docs/en/mcp#require-approval-for-a-specific-tool) or for connector tools [your organization set to `ask`](/docs/en/mcp#organization-controls-on-connector-tools) in sessions where that setting reaches Claude Code. Hooks in settings files and in a plugin's `hooks/hooks.json` can tighten restrictions but not loosen them past what permission rules allow.
968968 
969A [mod](/docs/en/plugins/mods/overview) you install that hooks `tool.check` can approve a call that your `PreToolUse` hook blocked, unless the hook is in managed settings. [Extend permissions with hooks](/docs/en/permissions#extend-permissions-with-hooks) lists which rules hold over a mod.
969A [mod](/docs/en/plugins/mods/overview) you install that handles `tool.check` can approve a call that your `PreToolUse` hook blocked, unless the hook is in managed settings. [Extend permissions with hooks](/docs/en/permissions#extend-permissions-with-hooks) lists which rules hold over a mod.
970970 
971971### Hook not firing
972972 

large-codebases Changed · +1 / -1 lines

from line 180
180180 
181181In a large codebase, finding where a symbol is defined or used can cost many file reads and grep calls. [Code intelligence plugins](/docs/en/plugins/code-intelligence) connect Claude to a language server so it can jump to definitions, find references, and surface type errors directly instead of scanning the tree.
182182 
183The official marketplace has plugins for TypeScript, Python, Go, Rust, and other common languages. Run the command below inside a Claude Code session to install the TypeScript plugin:
183The official marketplace has plugins for TypeScript, Python, Go, Rust, and other common languages. In the VS Code extension or the desktop app, install one by following [Install a plugin](/docs/en/plugins/install#install-a-plugin). In a terminal, start Claude Code by running `claude`, then enter this at its prompt to install the TypeScript plugin:
184184 
185185```shell theme={null}
186186/plugin install typescript-lsp@claude-plugins-official

mcp Changed · +1 / -1 lines

from line 33
3333 
3434<Steps>
3535 <Step title="Install the plugin">
36 In a Claude Code session, run:
36 In the VS Code extension or the desktop app, follow [Install a plugin](/docs/en/plugins/install#install-a-plugin) instead of this step. In a terminal, start Claude Code by running `claude`, then enter this at its prompt:
3737 
3838 ```
3939 /plugin install mcp-server-dev@claude-plugins-official

permission-modes Changed · +1 / -1 lines

from line 493
493493 3. Everything else goes to the classifier, apart from [critical-path removals](#critical-paths) under their default handling. The connector tools and `requiresUserInteraction` MCP tools that prompt you directly in step 1 never reach the classifier either, so neither an org-required approval nor a consent step is auto-approved
494494 4. If the classifier blocks, Claude receives the reason. In most sessions the reason names the rule the classifier matched, such as `[Data Exfiltration]`, rather than giving a written explanation; see [Review denials](/docs/en/auto-mode-config#review-denials)
495495 
496 A [mod](/docs/en/plugins/mods/overview) you install that hooks `tool.check` can approve an action before step 3, and the classifier doesn't check an action the mod approves. See [Extend permissions with hooks](/docs/en/permissions#extend-permissions-with-hooks).
496 A [mod](/docs/en/plugins/mods/overview) you install that handles `tool.check` can approve an action before step 3, and the classifier doesn't check an action the mod approves. See [Extend permissions with hooks](/docs/en/permissions#extend-permissions-with-hooks).
497497 
498498 On entering auto mode, broad allow rules that grant arbitrary code execution are dropped:
499499 

permissions Changed · +1 / -1 lines

from line 545
545545 
546546PreToolUse hook decisions don't bypass permission rules. Claude Code evaluates deny and ask rules regardless of what a PreToolUse hook returns: a matching deny rule blocks the call, and a matching ask rule still prompts even when the hook returned `"allow"` or `"ask"`. This preserves the deny-first precedence described in [Manage permissions](#manage-permissions), including deny rules set in managed settings.
547547 
548That precedence covers hooks in settings files and in a plugin's `hooks/hooks.json`. A [mod](/docs/en/plugins/mods/overview) you install that hooks `tool.check` answers after the rules and the `PreToolUse` hooks have decided, and its answer can replace theirs:
548That precedence covers hooks in settings files and in a plugin's `hooks/hooks.json`. A [mod](/docs/en/plugins/mods/overview) you install that handles `tool.check` answers after the rules and the `PreToolUse` hooks have decided, and its answer can replace theirs:
549549 
550550* **Ask rules**: the mod can approve a call that an ask rule would prompt for
551551* **A block from a `PreToolUse` hook**: the mod can approve the call, unless the hook is in managed settings

plugin-evals Changed · +2 / -2 lines

from line 25
2525* Claude Code v2.1.269 or later. Run `claude --version` to check and `claude update` to upgrade.
2626* Git 2.31 or later, if git is installed. Run `git --version` to check. With an older git, `claude plugin eval` [stops before running any case](#git-is-too-old-for-claude-plugin-eval). Without git, it runs normally.
2727* A plugin directory with a `plugin.json` or `.claude-plugin/plugin.json` manifest, or a [skills-directory plugin](/docs/en/plugins/loading#plugins-shared-through-a-repository).
28* The same authentication and model provider your normal Claude Code sessions use. Eval runs, judge-scored graders, and `claude plugin eval init` call the model with your credentials, so they count against your plan's usage limits or your API bill. When the command reports a cost, the figure is a [list-price estimate](/docs/en/costs) of those calls.
28* The same authentication and model provider your normal Claude Code sessions use. Eval runs, judge-scored graders, and `claude plugin eval init` call the model with your credentials, so they count against your plan's usage limits or your API bill. When the command reports a cost, the figure is a [list-price estimate](/docs/en/costs) of those calls. If you run Claude Code on Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry, run the suite from a shell that exports the same provider variables as your normal sessions, because each run inherits them from that shell as the [`env` field](#prompt-md-fields) describes.
2929 
3030## How an eval run works
3131 
from line 421
421421 
422422A CI runner also needs these in place:
423423 
424* **Install and credentials**: a CI runner needs a Claude Code install and [credentials in the environment](/docs/en/authentication) such as `ANTHROPIC_API_KEY`.
424* **Install and credentials**: a CI runner needs a Claude Code install and [credentials in the environment](/docs/en/authentication) such as `ANTHROPIC_API_KEY` or your cloud provider's variables.
425425* **Trust**: without `--trust-plugin`, a job whose checkout directory Claude Code doesn't already trust needs the [first-run trust prompt](#trust-the-plugin-directory), and a run that can't ask is refused with exit 1.
426426* **`init` in CI**: `claude plugin eval init` needs a terminal to ask you its questions; in CI, run `claude plugin eval init --bare <name>` to get the blank template.
427427 

plugins/code-intelligence Changed · +1 / -1 lines

from line 46
4646 </Step>
4747 
4848 <Step title="Install the plugin">
49 To install the plugin listed for your language in the step 1 table, run `/plugin install` in a Claude Code session, replacing `typescript-lsp` with that plugin's name:
49 In the VS Code extension or the desktop app, follow [Install a plugin](/docs/en/plugins/install#install-a-plugin) instead of this step. In a terminal, start Claude Code by running `claude`, then enter this at its prompt, replacing `typescript-lsp` with the plugin the step 1 table lists for your language:
5050 
5151 ```
5252 /plugin install typescript-lsp@claude-plugins-official

plugins/overview Changed · +2 / -1 lines

from line 5
55A Claude Code plugin is a directory of skills, agents, hooks, MCP servers, or other components that Claude Code installs and loads as one unit. Most plugins come from a marketplace, which is a catalog that lists plugins and where to fetch each one. You can also load a plugin from a folder someone gives you, or [build your own](/docs/en/plugins/create).
66 
77<Note>
8 Start on claude.com instead if either of these describes you:
8 These cases are covered on other pages:
99 
1010 * **You use claude.ai chat or Cowork and not Claude Code**: see [Plugins on claude.ai and in Cowork](https://claude.com/docs/plugins/overview)
1111 * **You built an MCP server and want it in Anthropic's directory**: see [Publish to the directory](https://claude.com/docs/directory/publish)
12 * **You want Claude Code inside VS Code or a JetBrains IDE**: that's the VS Code extension or the JetBrains plugin, not a Claude Code plugin. See [Use Claude Code in VS Code](/docs/en/vs-code) or [JetBrains IDEs](/docs/en/jetbrains)
1213</Note>
1314 
1415To try a plugin now, run `/plugin` in a Claude Code terminal session and install one from the **Discover** tab, which lists the plugins from your marketplaces. From there:

skills Changed · +1 / -1 lines

from line 895
895895 
896896### Run evals with skill-creator
897897 
898The [`skill-creator` plugin](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/skill-creator) automates the comparison loop inside Claude Code. Install it from the official marketplace:
898The [`skill-creator` plugin](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/skill-creator) automates the comparison loop inside Claude Code. In the VS Code extension or the desktop app, install it from the official marketplace by following [Install a plugin](/docs/en/plugins/install#install-a-plugin). In a terminal, start Claude Code by running `claude`, then enter this at its prompt:
899899 
900900```text theme={null}
901901/plugin install skill-creator@claude-plugins-official
Feedback