# Claude Code: How to Reconfigure an Installed Plugin Without Reinstalling It (2.1.285)

> Claude Code 2.1.285 introduced the claude plugin configure command. How to check plugin settings in the documentation and change a token or address without reinstalling.

Source: https://ailoot.ai/blog/en/claude-code-plugin-configure-2-1-285/
Canonical: https://ailoot.ai/blog/en/claude-code-plugin-configure-2-1-285/
Language: en
Publisher: Ailoot (https://ailoot.ai/)
Translation: guide-050
Revision: sha256-f1cd9c07e3d77726d5ce7ba2ab77ebbb19a93600361cd731ac9f92190cce8dc4


<div class="aside" data-semantic="key-takeaway" role="note" aria-label="Key takeaway for this section">

Key takeaway

Claude Code 2.1.285 introduced the terminal command `claude plugin configure <plugin>`. With no flags, it shows which plugin settings are set and which are unset, without printing their values. With `--values-stdin`, it saves new values from a JSON file supplied as input, without reinstalling the plugin. Ordinary values are stored in `settings.json` under `pluginConfigs`, while values for fields marked `sensitive: true` are stored in the system's secure credential store.

</div>

This guide is for users who already have a Claude Code plugin installed that declares `userConfig` settings, such as an address, a token or a folder path. You need to correct a value entered incorrectly or replace a token without reinstalling the plugin. Everything below is based on the official Claude Code documentation and changelog. The article does not include an original test run.

Information about using Ailoot is available in the [documentation](https://ailoot.ai/docs/).



## What does claude plugin configure do in Claude Code 2.1.285?

The Claude Code changelog entry for version 2.1.285 (a commit dated 29 September 2026) contains several lines about plugins. Two of them are relevant to this article:

> Added `claude plugin configure <plugin>` to show a plugin's options and which are unset, or save new values read from stdin with `--values-stdin`

This means that the new `claude plugin configure <plugin>` command shows a plugin's settings and which ones are unset, or saves new values read from standard input when used with `--values-stdin`.

> Added `<server>.<key>=<value>` to `claude plugin install --config`, so a bundled `.mcpb` MCP server's own settings can be set at install time and it starts without visiting `/plugin` → Configure

This means that `claude plugin install --config` now supports the `<server>.<key>=<value>` form, allowing the settings of an MCP server bundled with a plugin in a `.mcpb` file to be supplied during installation, so the server starts without visiting `/plugin` → Configure.

The command reference confirms the version requirement: `claude plugin configure` requires Claude Code v2.1.285 or later. The command does not exist in earlier versions.

## How this differs from /plugin configure

The `/plugin configure <plugin>` command (with the alias `config`) was already available inside an interactive Claude Code session. It opens a dialog for `userConfig` settings and requires v2.1.147 or later. However, `/plugin` only works in an interactive session: in a non-interactive invocation such as `claude -p`, Claude Code responds that `/plugin` is unavailable in that environment.

According to the documentation, `claude plugin` commands are run from a shell or script, outside a Claude Code session. This also lets you run `claude plugin configure` without opening a dialog. The documentation does not describe how this command behaves without an interactive terminal or where it stores secret values on a server without a graphical environment. Check this in your own environment before using it in CI.





## Step 1. See which settings are set

The documentation requires the full plugin identifier in the form `name@marketplace`, as shown by `claude plugin list`. The `configure` command does not accept a name without `@marketplace`.

```bash
claude plugin list
claude plugin configure formatter@my-marketplace
```

Replace `formatter@my-marketplace` with your plugin's identifier. With no flags, the command lists each setting with labels: `required` or `optional`, then `sensitive` for a secret field, followed by `set` or `not set`. It does not print the stored values.

If you need machine-readable output, add `--json`. The output will then include stored values for ordinary fields, but the contents of a secret field are never printed.

## Step 2. Change a value using a file

Values are supplied as a JSON object, where each key is a setting name from the manifest and each value is a string without line breaks. The documentation shows a file-based method: write the object to `values.json` and pass that file to the command's standard input. Here, `api_url` is the key used in the documentation example. For your own plugin, use the name of the setting you need from its manifest or from the output in step 1.

```json
{"api_url": "NEW_ADDRESS"}
```

```bash
claude plugin configure formatter@my-marketplace --values-stdin < values.json
```

The following rules apply when saving:

- Settings omitted from the JSON retain their previous values. You can supply only the field you are changing.
- The flag's description refers to setting values in general and does not state a separate rule for secret fields. After saving, use step 1 to check that the relevant field is marked `set`.
- Claude Code checks each value against its declared type and prints `Configuration saved. Restart Claude Code to apply it.` This means the setting has been saved and will take effect after Claude Code restarts.
- If the JSON contains a key not declared in the manifest, or a value fails validation, the command saves nothing, prints `Failed to save configuration:` followed by the reason, and exits with code `1`.

If you write a token to `values.json`, remember that it is an ordinary file on disk. Delete it after saving the configuration, and do not add such a file to the repository.

## Where the value is stored

According to the plugin manifest documentation, ordinary values are saved under `pluginConfigs` in the user's `settings.json`. Values for fields marked `sensitive: true` are stored in the system's secure credential store instead of `settings.json`; input for these fields is masked.

There is no point looking for a secret field's value in `settings.json`. `claude plugin configure` shows its status with the labels `sensitive` and `set` or `not set`.

## install --config: set a value during installation

For a new installation, `claude plugin install` provides the `--config <key=value>` flag. It sets a `userConfig` setting declared in the manifest and requires v2.1.147 or later. Repeat the flag for each setting. From version 2.1.285, a key in the form `<server>.<key>` sets a bundled MCP server's setting declared in that server's own `user_config`.

In the example below, replace `formatter@my-marketplace` with your plugin's identifier, `api_url` with the setting name from its manifest, and the entire `NEW_ADDRESS` placeholder with your own value. Keep the quotation marks around the argument.

```bash
claude plugin install formatter@my-marketplace --config 'api_url=NEW_ADDRESS'
```

Which command to use depends on whether the plugin is installed: `install --config` sets values during the first installation, while `plugin configure --values-stdin` changes values for an already installed plugin.

For settings belonging to a bundled MCP server, the documentation lists other methods: `plugin install --config` or **Configure** in `/plugin`. It does not suggest the `plugin configure` command for those settings.

## If the command cannot find the plugin

If `claude plugin configure` cannot find a loaded plugin with that identifier, it prints `No installed plugin has the id "<plugin>".` and exits with code `1`. First check that you supplied the full `name@marketplace` identifier from `claude plugin list`. The plugin name alone is not enough.

The in-session command has its own message. If you name a plugin that is not installed in the current project when using `/plugin enable`, `disable`, `uninstall` or `configure`, Claude Code prints `Plugin "<plugin>" is not installed in this project` and does nothing.

## Conclusion

To change a token or address for an already installed plugin in Claude Code 2.1.285 or later, find its identifier in `claude plugin list`, check the settings' status with `claude plugin configure`, supply the new value from a file with `--values-stdin`, and restart Claude Code. Secret field values are not stored in `settings.json`, so check their status using the same command.

The guide to [Skills, Subagents, MCP and Plugins in Claude Code](https://ailoot.ai/blog/en/skills-subagents-mcp-plugins-claude-code/) can help you choose between extension types. If you have not yet chosen a plugin, you can start with the top 10 Claude Code plugins. There is a separate guide for a Telegram bot: [installing a plugin in a Telegram agent](https://ailoot.ai/blog/en/telegram-ai-agent-plugins/) works differently from installing one in Claude Code.

<div class="section" role="doc-bibliography" aria-label="Sources">

### Sources

- [Claude Code CHANGELOG, entry 2.1.285](https://github.com/anthropics/claude-code/commit/ec44ca97dc86c33d934c8d55b24959aabf076871.patch)
- [Claude Code: plugin command reference](https://code.claude.com/docs/en/plugins/cli-reference.md)
- [Claude Code: plugin manifest reference, User configuration](https://code.claude.com/docs/en/plugins-reference.md)

</div>





Get to know [Ailoot](https://ailoot.ai/).

## Questions about Claude Code: How to Reconfigure an Installed Plugin Without Reinstalling It (2.1.285)

### Why does configure say that my installed plugin cannot be found?

Use the complete name@marketplace identifier from `claude plugin list`, and check that the plugin is installed in the relevant scope. The short plugin name alone is not accepted by this command.

### How can I check a changed token without printing it?

Run `claude plugin configure` with the plugin’s full identifier and check that the sensitive field is marked set. Restart Claude Code after saving; do not commit the JSON input file containing the token.


## Ailoot · The company and its project portfolio

Ailoot combines established operating experience, a large client base, stable service and ongoing KPI control.

The company and its project portfolio: millions of customers; monthly sales in the billions.

Ailoot brings that operating experience to API access for AI features in customer products, agents, applications and automations.
