Second `marketplace add` of the same marketplace drops autoUpdate

Status Open
Reported on v2.1.236
Maintainer reply None cached
Activity 1 comment · opened Sep 1, 2026

Preflight Checklist

  • [x] I have searched existing issues and found no duplicate.
  • [x] This is a single bug report.
  • [x] I have reproduced this on the version stated below.

What's Wrong?

claude plugin marketplace add <owner>/<repo> rewrites an existing extraKnownMarketplaces entry in ~/.claude/settings.json and drops its autoUpdate key. The command reports the marketplace as already present and exits 0, so nothing signals the removal. Third-party marketplaces default to auto-update disabled, so a second add silently turns auto-update off.

What Should Happen?

When the marketplace is already declared, marketplace add should leave its settings entry unchanged.

Error Messages/Logs

No error. The command reports success:

$ jq -c '.extraKnownMarketplaces["acme/plugins"]' ~/.claude/settings.json
{"source":{"source":"github","repo":"acme/plugins"},"autoUpdate":true}

$ claude plugin marketplace add acme/plugins
Adding marketplace…✔ Marketplace 'acme/plugins' already on disk — declared in user settings

$ jq -c '.extraKnownMarketplaces["acme/plugins"]' ~/.claude/settings.json
{"source":{"source":"github","repo":"acme/plugins"}}

Steps to Reproduce

  1. Declare a third-party marketplace in ~/.claude/settings.json under extraKnownMarketplaces, with "autoUpdate": true.
  2. Run claude plugin marketplace add <owner>/<repo> for that same marketplace.
  3. Read ~/.claude/settings.json again. The autoUpdate key is gone.

Is this a regression?

Unknown. I have not tested earlier versions.

Claude Code Version

2.1.236

Platform

Claude Code CLI and Desktop, both affected (the write happens in the CLI command).

Operating System

macOS 15, darwin-arm64

Terminal/Shell

fish

Additional Information

~/.claude/plugins/known_marketplaces.json keeps autoUpdate: true, so live behaviour looks unaffected. The declared configuration is what loses the setting, which surfaces later on a fresh install or after clearing the plugin cache.

This hurts idempotent provisioning scripts most. A script that calls marketplace add to repair a machine disables auto-update on every run, and the users who never re-run it are exactly the ones who never get the setting back.

Related: #85844 asks to surface and read this field. I have filed a separate request to make it settable from the CLI, which is the workaround this bug currently forces into shell-level JSON editing.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗