Update Toolshed
Run the portable updater from this plugin installation:
node "${CLAUDE_PLUGIN_ROOT}/bin/update-toolshed.js"
It reads Claude Code's installed-plugin registry, refreshes the Eigenwise Toolshed marketplace, and
updates every active Toolshed install recorded there at its recorded scope and project directory. That
includes user, project, and local installs across projects, not only the project where this skill is
invoked. It does not inspect, refresh, or update third-party marketplaces or plugins. When Model Gateway
is installed, it runs its stable updater, node ~/.claude/model-gateway/update.js, and surfaces that
command's output. The updater downloads and verifies the proxy, swaps it by rename without asking you to
close sessions, restarts it when it can, and reports the resulting state. Claude Code's registry has
versions but not release notes or commit history, so the updater says that plainly instead of guessing at
a changelog. Gateway wiring stays at its recorded scope: the stable updater delegates to setup, which
preserves per-project .claude/settings.local.json or user-level ~/.claude/settings.json wiring and
never escalates scope. Remote Control compatibility points the base URL at api.anthropic.com, so the
Codex/Grok rows disappear from /model; an explicit id such as /model claude-gpt-5.6-terra still works.
Gateway wiring changes apply to new Claude Code sessions, so restart affected sessions. Before any
mutation, the updater runs a discovered Claude Code command once. It tries claude from PATH, then
known desktop-app locations, including the Windows MSIX package cache and ~/.local/bin/claude on macOS.
If none work, the updater stops before refreshing marketplaces, updating plugins, or invoking the gateway
updater. Use --claude <absolute claude.exe path> to override discovery; an explicit path that fails stops
the run rather than guessing past it. Check and dry-run stay non-mutating. It continues after individual
update failures and prints the failing commands with one failure detail in the summary.
Gateway rename migration
If the updater finds the retired codex-gateway install, it stops before refreshing plugins, running setup, or changing wiring. Close every Claude Code session using Codex. From a terminal, run the updater's deferred migration command from the installed Quartermaster plugin:
node "${CLAUDE_PLUGIN_ROOT}/bin/update-toolshed.js" --migrate-model-gateway --confirm-sessions-closed
It installs model-gateway at each legacy scope, moves only ~/.claude/codex-gateway state, runs setup, ensure, and doctor, rewires recorded projects, then retires the legacy registry rows. The confirmation is deliberate: the command does not stop the shared gateway or change its state while another session may still use it.
Before changing anything, use this for a read-only report:
node "${CLAUDE_PLUGIN_ROOT}/bin/update-toolshed.js" --check
Use this to show every command without changing anything:
node "${CLAUDE_PLUGIN_ROOT}/bin/update-toolshed.js" --dry-run
Freshness guard and reload boundary
Quartermaster's freshness hooks report cached availability and loaded-version mismatches. Their notices
are advisory: they do not install plugins or restart Claude Code. Run this updater when you want the
installed versions changed, then /reload-plugins or restart Claude Code and resubmit the prompt. The
maintenance commands remain available when a freshness notice appears. For an emergency only, start
Claude Code with EIGENWISE_TOOLSHED_FRESHNESS_BYPASS=1; remove that override once updates are possible.
An update does not replace the plugin code already loaded by an open Claude Code session. Tell the user
exactly what the updater reports: run /reload-plugins in each affected session, or restart Claude Code
if reload does not pick up the new version. User-scoped installs affect every open session; project and
local installs affect sessions open in their recorded project directories.
Optional marketplace auto-update
Marketplace auto-update is optional. To enable it, open /plugin, open Marketplaces, select
eigenwise-toolshed, and choose Enable auto-update. Claude Code checks after session start with a
random delay of up to 10 minutes. Third-party marketplaces start with auto-update off, and an already-open
session still needs /reload-plugins or a restart after an update lands.
Do not add this updater to SessionStart. It intentionally changes installed plugins and downloads the codex gateway dependency, so automatic startup work stays non-mutating.