{"name":"CLAUDE_CODE_SYNC_PLUGINS","slug":"claude-code-sync-plugins","family":"env","title":"Environment variables","noun":"environment variable","description":"Org-synced plugin archives containing a `.git` entry are rejected and re-extracted safely.","description_source":"entry","described_by":{"version":"2.1.227","anchor":"synced-plugin-archives-containing-git-are-re-extracted-safel"},"presence":{"first_seen":"2.1.157","removed_in":null,"in_current_build":true,"newest_mined":"2.1.308","builds":132,"mined_builds":149,"first_cited":{"version":"2.1.283","released_at":"2026-09-25 18:46:11","spans":2}},"aliases":[],"entries":[{"version":"2.1.304","anchor":"plugin-sync-required-plugins-first-server-id-renames-aske","heading":"Plugin sync installs required plugins before optional ones","line":"Plugin sync now downloads plugins marked as required before other new plugins, and handles plugins renamed on the server","released_at":"2026-10-19 19:47:15","reason":"found in this entry's text"},{"version":"2.1.304","anchor":"skills-as-plugins-sync-decision-reworked","heading":"Syncing skills as plugins can now reach sessions that are not hosted","line":"The choice to sync skills as plugins no longer requires a hosted session, and is now gated by `CLAUDE_CODE_SYNC_PLUGINS` or an internal check","released_at":"2026-10-19 19:47:15","reason":"found in this entry's text"},{"version":"2.1.299","anchor":"account-plugin-freshness-check-at-each-turn-start-hosted-se","heading":"Cloud sessions can check for plugin changes at the start of each turn","line":"Hosted sessions can now check before each turn whether your account's plugins changed, and reload them if so","released_at":"2026-10-14 00:23:19","reason":"found in this entry's text"},{"version":"2.1.283","anchor":"plugin-sync-predicate-now-excludes-the-env-var-path","heading":"Plugin sync environment variables no longer turn on claude.ai plugin syncing","line":"Setting the plugin sync environment variables now turns off one claude.ai plugin sync check instead of turning it on","released_at":"2026-09-25 18:46:11","reason":"found in this entry's text"},{"version":"2.1.281","anchor":"new-env-vars-claude-code-tether-live-and-claude-code-mcp-app","heading":"New env vars CLAUDE_CODE_TETHER_LIVE and CLAUDE_CODE_MCP_APPS_HOST added to the protected env-key set","line":"CLAUDE_CODE_TETHER_LIVE and CLAUDE_CODE_MCP_APPS_HOST join Claude Code's protected set of environment variables","released_at":"2026-09-23 17:01:17","reason":"found in this entry's text"},{"version":"2.1.246","anchor":"syncing-plugins-from-your-claude-ai-account","heading":"Syncing plugins from your claude.ai account","line":"Plugins you enabled on claude.ai can be pulled to your machine, but only your account server can enable it.","released_at":"2026-08-25 19:17:34","reason":"found in this entry's text"},{"version":"2.1.239","anchor":"synced-reserved-as-a-marketplace-name-plus-messages-for-clau","heading":"synced reserved as a marketplace name, plus messages for claude.ai plugins","line":"The name synced is now reserved for marketplaces, with new messages for claude.ai plugin conflicts.","released_at":"2026-08-21 17:18:54","reason":"named in this entry, found in this entry's text"},{"version":"2.1.227","anchor":"synced-plugin-archives-containing-git-are-re-extracted-safel","heading":"Synced plugin archives containing .git are re-extracted safely","line":"Org-synced plugin archives containing a `.git` entry are rejected and re-extracted safely.","released_at":"2026-08-10 20:56:57","reason":"found in this entry's text"}],"entries_total":8,"docs":[{"source":"claude-code","path":"settings-reference","title":"All settings","documented":false}],"docs_total":1,"gates":[],"related":[{"name":"CLAUDE_CODE_SYNC_PLUGIN_INSTALL","slug":"claude-code-sync-plugin-install","description":"Headless plugin installs refresh the cache in the background; set CLAUDE_CODE_SYNC_PLUGIN_INSTALL to skip it."},{"name":"CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS","slug":"claude-code-sync-plugin-install-timeout-ms","description":"Plugin and MCP server syncing can now run alongside CLI startup under a time budget"},{"name":"CLAUDE_CODE_SYNC_PLUGINS_BUFFERED_DOWNLOAD","slug":"claude-code-sync-plugins-buffered-download","description":"When true (`1`, `true`, `yes` or `on`), plugin zips fetched by org plugin sync (`\/api\/oauth\/organizations\/:orgUUID\/plugins\/<name>\/download`) are downloaded whole into memory, checked for a zip header and then written to disk. When unset they are streamed to disk under a stall watchdog (see `CLAUDE_CODE_SYNC_PLUGINS_DOWNLOAD_STALL_MS`)."},{"name":"CLAUDE_CODE_SYNC_PLUGINS_DOWNLOAD_STALL_MS","slug":"claude-code-sync-plugins-download-stall-ms","description":"Milliseconds a streamed org plugin sync download may go without receiving data before it is aborted with `plugin download stream stalled` and reported as a `timeout`. Default `60000`; an unset, non-numeric or below-`1` value uses the default. Has no effect when `CLAUDE_CODE_SYNC_PLUGINS_BUFFERED_DOWNLOAD` is on."},{"name":"CLAUDE_CODE_SYNC_PLUGINS_INSTALL_TIMEOUT_MS","slug":"claude-code-sync-plugins-install-timeout-ms","description":"Milliseconds Claude Code waits for org plugin sync installs, counted from when the sync starts during session setup, before carrying on without them (event `tengu_plugins_sync_wait_timeout`); late installs are picked up when they land. The same value caps the plugin reinstall on a `reload_plugins` control request and forwarded plugin installs. Default `30000`; an unset, non-numeric or below-`1` value uses the default."},{"name":"CLAUDE_CODE_SYNC_PLUGINS_MCP_TIMEOUT_MS","slug":"claude-code-sync-plugins-mcp-timeout-ms","description":"Milliseconds Claude Code waits for MCP servers from synced plugins to be reconciled after org plugin sync before moving on (event `tengu_plugins_sync_mcp_timeout`). Default `10000`; `0` skips the wait (event `tengu_plugins_sync_mcp_skipped`) except while a relay hold is active, where a separate connect budget is used instead."},{"name":"CLAUDE_CODE_SYNC_REUSE_WITHIN_MS","slug":"claude-code-sync-reuse-within-ms","description":"Claude Code can skip a full skills sync on startup if one finished recently"},{"name":"CLAUDE_CODE_SYNC_SESSION_REFS","slug":"claude-code-sync-session-refs","description":"Skills from your claude.ai account can load as a source, but only if you set the sync env var."},{"name":"CLAUDE_CODE_SYNC_SKILLS","slug":"claude-code-sync-skills","description":"Synced-skill state files are schema-checked, so one bad record no longer discards the lot."},{"name":"CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS","slug":"claude-code-sync-skills-install-timeout-ms","description":"Milliseconds a `reload_skills` control request waits for the skills sync reload to finish before it refreshes and returns the command list. Default `30000`; an unset, non-numeric, `0` or negative value uses the default."}],"url":"https:\/\/changelogs.core-directive.com\/reference\/env\/claude-code-sync-plugins","family_url":"https:\/\/changelogs.core-directive.com\/reference\/env.json"}