--- name: update-toolshed description: >- Update installed Eigenwise Toolshed plugins and model-gateway, or check their status. Use to update Toolshed, refresh the marketplace, or check versions. --- # Update Toolshed Run the portable updater from this plugin installation: ```sh 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 as recorded: the stable updater runs `setup --preserve-wiring`, which never wires a project, including the directory the updater runs from. It refreshes Claude alias pins only in projects already recorded as wired, and only when a pin changed, so an update that changes nothing touches no settings file. To wire a project, run Model Gateway's `env --write-project` inside it. Remote Control compatibility points the base URL at `api.anthropic.com`, so the Codex/Grok rows disappear from `/model`; Claude Code can persist an explicit id such as `/model claude-gpt-5.6-terra`, but that does not prove a later request reaches Model Gateway. Normal gateway mode is the verified inference path. 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 ` 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: ```sh 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: ```sh node "${CLAUDE_PLUGIN_ROOT}/bin/update-toolshed.js" --check ``` Use this to show every command without changing anything: ```sh 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.