{"name":"CLAUDE_CODE_PLUGIN_DIRS","slug":"claude-code-plugin-dirs","family":"env","title":"Environment variables","noun":"environment variable","description":"New CLAUDE_CODE_PLUGIN_DIRS environment variable lets you register extra plugin directories without --plugin-dir flags","description_source":"entry","described_by":{"version":"2.1.280","anchor":"claude-code-plugin-dirs-env-var-for-sideloading-plugin-direc"},"presence":{"first_seen":"2.1.280","removed_in":null,"in_current_build":true,"newest_mined":"2.1.283","builds":4,"mined_builds":126,"first_cited":{"version":"2.1.280","released_at":"2026-09-22 15:44:39","spans":3}},"aliases":[],"entries":[{"version":"2.1.280","anchor":"claude-code-plugin-dirs-env-var-for-sideloading-plugin-direc","heading":"CLAUDE_CODE_PLUGIN_DIRS env var for sideloading plugin directories","line":"New CLAUDE_CODE_PLUGIN_DIRS environment variable lets you register extra plugin directories without --plugin-dir flags","released_at":"2026-09-22 15:44:39","reason":"found in this entry's text, named in this entry"},{"version":"2.1.280","anchor":"new-claude-code-plugin-dirs-helper-module-sonobnndezst-p","heading":"New CLAUDE_CODE_PLUGIN_DIRS helper module: Son\/OBn\/nDe\/Zst plus a dedicated refusal message","line":"Claude Code adds internal handling for CLAUDE_CODE_PLUGIN_DIRS, including validation of the paths it lists and a message explaining how to unset it","released_at":"2026-09-22 15:44:39","reason":"found in this entry's text, named in this entry"}],"entries_total":2,"docs":[{"source":"claude-code","path":"plugins\/cli-reference","title":"Plugin commands reference","documented":false},{"source":"claude-code","path":"plugins\/create","title":"Create a Claude Code plugin","documented":false},{"source":"claude-code","path":"plugins\/loading","title":"Plugin loading reference","documented":false},{"source":"claude-code","path":"plugins\/org","title":"Manage Claude Code plugins for your organization","documented":false},{"source":"claude-code","path":"plugins\/security","title":"Plugin security and trust","documented":false}],"docs_total":5,"gates":[],"related":[{"name":"CLAUDE_CODE_PLUGIN_ATTRIBUTION","slug":"claude-code-plugin-attribution","description":"You can declare where a plugin came from via a JSON file or an environment variable."},{"name":"CLAUDE_CODE_PLUGIN_BINARY_ASSETS","slug":"claude-code-plugin-binary-assets","description":null},{"name":"CLAUDE_CODE_PLUGIN_CACHE_DIR","slug":"claude-code-plugin-cache-dir","description":"A cleanup routine now removes set-aside and unreadable copies of installed_plugins in the plugins folder instead of zip files in the shares folder"},{"name":"CLAUDE_CODE_PLUGIN_DIR_WATCH","slug":"claude-code-plugin-dir-watch","description":"CLAUDE_CODE_PLUGIN_DIR_WATCH now fully overrides whether plugin directory watching is enabled, not just disables it"},{"name":"CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS","slug":"claude-code-plugin-git-timeout-ms","description":null},{"name":"CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE","slug":"claude-code-plugin-keep-marketplace-on-failure","description":"Marketplace refresh checks for the manifest through a storage handle instead of the raw filesystem."},{"name":"CLAUDE_CODE_PLUGIN_PREFER_HTTPS","slug":"claude-code-plugin-prefer-https","description":null},{"name":"CLAUDE_CODE_PLUGIN_SEED_DIR","slug":"claude-code-plugin-seed-dir","description":"The self-hosted runner can now snapshot an operator's Claude config and seed it into every session, with a drain-marker mechanism"},{"name":"CLAUDE_CODE_PLUGIN_USE_ZIP_CACHE","slug":"claude-code-plugin-use-zip-cache","description":null}],"url":"https:\/\/changelogs.core-directive.com\/reference\/env\/claude-code-plugin-dirs","family_url":"https:\/\/changelogs.core-directive.com\/reference\/env.json"}