{"name":"CLAUDE_CODE_SYNC_SKILLS","slug":"claude-code-sync-skills","family":"env","title":"Environment variables","noun":"environment variable","description":"Synced-skill state files are schema-checked, so one bad record no longer discards the lot.","description_source":"entry","described_by":{"version":"2.1.228","anchor":"skills-sync-state-file-is-validated-before-use"},"presence":{"first_seen":"2.1.149","removed_in":null,"in_current_build":true,"newest_mined":"2.1.308","builds":138,"mined_builds":149,"first_cited":null},"aliases":[],"entries":[{"version":"2.1.305","anchor":"skill-sync-scoped-settings-treated-as-set-when-sync-skills-o","heading":"Skill sync settings now default to off when sync variables are set","line":"With `CLAUDE_CODE_SYNC_SKILLS` or `CLAUDE_CODE_SYNC_SESSION_REFS` set, a matching skill setting is now treated as off instead of left unset","released_at":"2026-10-20 19:29:36","reason":"found in this entry's text, named in this entry"},{"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, named in this entry"},{"version":"2.1.302","anchor":"claude-code-sync-skills-gate-in-a-hosted-worker-check","heading":"CLAUDE_CODE_SYNC_SKILLS now counts in a check that only runs in hosted worker sessions","line":"A new check that applies only in hosted worker sessions can be satisfied by setting the CLAUDE_CODE_SYNC_SKILLS environment variable","released_at":"2026-10-16 16:48:28","reason":"found in this entry's text, named in this entry"},{"version":"2.1.251","anchor":"skill-proposals-no-longer-behind-a-remote-flag","heading":"Skill proposals no longer behind a remote flag","line":"Skill proposals no longer need a server flag; two environment variables now decide.","released_at":"2026-08-28 15:34:26","reason":"named in this entry, found in this entry's text"},{"version":"2.1.228","anchor":"skills-sync-state-file-is-validated-before-use","heading":"Skills-sync state file is validated before use","line":"Synced-skill state files are schema-checked, so one bad record no longer discards the lot.","released_at":"2026-08-11 17:45:45","reason":"named in this entry, found in this entry's text"},{"version":"2.1.228","anchor":"skills-synced-from-claude-ai","heading":"Skills synced from claude.ai","line":"Skills from your claude.ai account can load as a source, but only if you set the sync env var.","released_at":"2026-08-11 17:45:45","reason":"named in this entry, found in this entry's text"},{"version":"2.1.210","anchor":"claude-code-sync-session-refs-environment-variable","heading":"CLAUDE_CODE_SYNC_SESSION_REFS Environment Variable","line":null,"released_at":"2026-07-14 19:39:21","reason":"found in this entry's text"}],"entries_total":7,"docs":[{"source":"claude-code","path":"settings-reference","title":"All settings","documented":false},{"source":"claude-code","path":"skills","title":"Extend Claude with skills","documented":false}],"docs_total":2,"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","slug":"claude-code-sync-plugins","description":"Org-synced plugin archives containing a `.git` entry are rejected and re-extracted safely."},{"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_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-skills","family_url":"https:\/\/changelogs.core-directive.com\/reference\/env.json"}