diff --git a/content/.metadata.json b/content/.metadata.json index 7414d6ebd..bbc70f03b 100644 --- a/content/.metadata.json +++ b/content/.metadata.json @@ -1,7 +1,7 @@ { "metadata": { "version": "2.0", - "fetch_date": "2026-09-10T18:46:55.119334Z", + "fetch_date": "2026-09-11T05:22:41.054057Z", "section": "all" }, "items": [ @@ -86,8 +86,8 @@ "url": "https://platform.claude.com/docs/en/build-with-claude/task-budgets", "status": "success", "path": "en/build-with-claude/task-budgets.md", - "sha256": "e3cfd1af5bd8e63eccef60bac877083056f72161d6fd62e3b790597f3c7275e3", - "size": 28248 + "sha256": "62748c519874f1dd9d2d05e0c89d2a45e3e25444bb704e5d906ebc1f7d764741", + "size": 28222 }, { "url": "https://platform.claude.com/docs/en/build-with-claude/fast-mode", @@ -184,15 +184,15 @@ "url": "https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting", "status": "success", "path": "en/build-with-claude/thinking-troubleshooting.md", - "sha256": "65e073a4ed945452ce0981304d7c434963911419d14a246df531bae73de7b39b", - "size": 16825 + "sha256": "8b39ee35c7ac19a6106aceca5b4365ef7db543751822d323c900889575c63f1b", + "size": 17107 }, { "url": "https://platform.claude.com/docs/en/build-with-claude/extended-thinking", "status": "success", "path": "en/build-with-claude/extended-thinking.md", - "sha256": "e4659de68a1379fdcd291cf6ba725003e78450c67e57d363273cc6238a825c96", - "size": 22118 + "sha256": "f36ffca7bb81f3a718ac63d4feddc5d0579349aa60e328285bea1b996afc466b", + "size": 22064 }, { "url": "https://platform.claude.com/docs/en/agents-and-tools/tool-use/overview", @@ -996,15 +996,15 @@ "url": "https://platform.claude.com/docs/en/manage-claude/inference-hooks-configuration", "status": "success", "path": "en/manage-claude/inference-hooks-configuration.md", - "sha256": "252e17d2b80bf07e8aff2110e0dddaac85d1e9e74cd84930a2d7a99ad76184f4", - "size": 17590 + "sha256": "bd8dfeb074241457dcbc16e2bde251e8c4f37f330711301ef0beb377771ed94d", + "size": 18080 }, { "url": "https://platform.claude.com/docs/en/manage-claude/inference-hooks-endpoint", "status": "success", "path": "en/manage-claude/inference-hooks-endpoint.md", - "sha256": "0207b345247c2db6b0bf7cc3bc6758da4c9fcfa4c167c098465e5718c34207c0", - "size": 42026 + "sha256": "7ae3bfe271bf2df6b4695e12699fdb97882de46d3f7be0a1bc0ca42275d06cec", + "size": 42152 }, { "url": "https://platform.claude.com/docs/en/manage-claude/compliance-api", @@ -1675,8 +1675,8 @@ "url": "https://platform.claude.com/docs/en/api/errors", "status": "success", "path": "en/api/errors.md", - "sha256": "f4835ef9676f61918f28196337d34a2ad4559e5747ab522cb1fff0cd9a58f4b7", - "size": 28324 + "sha256": "994df3f3660f102b7127d1d543ce0100eb2f7d6fe40ff86491e5ecd4276ffeb3", + "size": 28506 }, { "url": "https://platform.claude.com/docs/en/api/rate-limits", @@ -4419,8 +4419,8 @@ "url": "https://code.claude.com/docs/en/changelog", "status": "success", "path": "en/docs/claude-code/changelog.md", - "sha256": "bf5f577551ad6459d444e473d210238aaab280881c9162a8be00ed72e88faffe", - "size": 679797 + "sha256": "5a0bc468c379b40d251d44116fc1a7af2c3ca7b16591708856908445a2215c60", + "size": 694733 }, { "url": "https://code.claude.com/docs/en/how-claude-code-works", @@ -4454,15 +4454,15 @@ "url": "https://code.claude.com/docs/en/prompt-caching", "status": "success", "path": "en/docs/claude-code/prompt-caching.md", - "sha256": "48fc7bdce45dae304fcfbccb74328e7358936f22c9daf1e85fd1607722f9ccca", - "size": 40852 + "sha256": "6c2732ed8266f03faadfed47d5f583557b6a590b00424025a8dee0c7b23a7cf4", + "size": 41011 }, { "url": "https://code.claude.com/docs/en/memory", "status": "success", "path": "en/docs/claude-code/memory.md", - "sha256": "69a0358e18ac29f59dc3f1782384eba4e2c6bae29e4320611a6390a5aef81067", - "size": 37525 + "sha256": "f212449ea6fbdb88bea34ad85c967ae3681470bdbd376ac84bda7f535029e677", + "size": 38070 }, { "url": "https://code.claude.com/docs/en/sessions", @@ -4503,8 +4503,8 @@ "url": "https://code.claude.com/docs/en/remote-control", "status": "success", "path": "en/docs/claude-code/remote-control.md", - "sha256": "c3804a1433cddd85d457d2f01de2071830a072b9cff24e5d176846b810328a08", - "size": 62893 + "sha256": "24ef9e60eeae3360065480ea2b2ba103f3bef9e6e470ada18c41fcd2be67bbbe", + "size": 63063 }, { "url": "https://code.claude.com/docs/en/mobile", @@ -4531,8 +4531,8 @@ "url": "https://code.claude.com/docs/en/vs-code", "status": "success", "path": "en/docs/claude-code/vs-code.md", - "sha256": "94a7c6a70d3b74518f25b67f3c9c570e880f26d490eaa147cc666a939f07231f", - "size": 66381 + "sha256": "6c14f8a02079b0d1ee1142ff770bcda731b181565c57a600c9377c899fbc9801", + "size": 66576 }, { "url": "https://code.claude.com/docs/en/jetbrains", @@ -4566,8 +4566,8 @@ "url": "https://code.claude.com/docs/en/claude-code-on-the-web", "status": "success", "path": "en/docs/claude-code/claude-code-on-the-web.md", - "sha256": "71a62b53b59053b863af0c96ee6c5f5c2f519c6a244cd67465e283b13511b98d", - "size": 39265 + "sha256": "45891d4a8de6a48a925c31908887ed5ecd6fd85e439f410be3de52165a78c18f", + "size": 39529 }, { "url": "https://code.claude.com/docs/en/routines", @@ -4594,8 +4594,8 @@ "url": "https://code.claude.com/docs/en/desktop", "status": "success", "path": "en/docs/claude-code/desktop.md", - "sha256": "b78f5f245773175e9751fdce6ed3a2cf535b20ee0f90d6f0c4472d8344589a2c", - "size": 101937 + "sha256": "3c585962a30144144f6f07cddbab26d1e8ab8f6272e881441abe0a1401514a09", + "size": 102084 }, { "url": "https://code.claude.com/docs/en/desktop-linux", @@ -4629,15 +4629,15 @@ "url": "https://code.claude.com/docs/en/security-guidance", "status": "success", "path": "en/docs/claude-code/security-guidance.md", - "sha256": "5805edbe465de5277faa6e5972eaaf486ff9fc65695ad06d5e649f6f71105a00", - "size": 20529 + "sha256": "543522ea006fa9a4232e09991374d1a3080c7dc3b5f01dd3a33d7f15a4ce042f", + "size": 20604 }, { "url": "https://code.claude.com/docs/en/claude-security", "status": "success", "path": "en/docs/claude-code/claude-security.md", - "sha256": "63157222542e5eeb606248492a7fc86bfd52c79fc7df9fad5af512f16a8c41f0", - "size": 14005 + "sha256": "16541cbe607479449fc3dd38a5ff1478b0c71cc5fab0295893bc8e9fe3637a13", + "size": 14080 }, { "url": "https://code.claude.com/docs/en/code-review", @@ -4692,8 +4692,8 @@ "url": "https://code.claude.com/docs/en/agent-view", "status": "success", "path": "en/docs/claude-code/agent-view.md", - "sha256": "3867379da06226c4f1337dfcb980da342a841c30d0f9e419afe7b77d9fdefbe5", - "size": 249764 + "sha256": "b77a9b549bf450a86bfbd7947ccc8bdd95b574bc0e043fa6fd281fc792690b1f", + "size": 254193 }, { "url": "https://code.claude.com/docs/en/agent-teams", @@ -4734,36 +4734,36 @@ "url": "https://code.claude.com/docs/en/mcp", "status": "success", "path": "en/docs/claude-code/mcp.md", - "sha256": "6eb0ec76ddcb57cd8a138b2f3bef5020f186262ab9c2fe620adfa51fcce13603", - "size": 113035 + "sha256": "10c37e3b840932b59cb7c7ab34e81595c598b0213bd2f1bb15c8effa1d7bc22b", + "size": 113437 }, { "url": "https://code.claude.com/docs/en/skills", "status": "success", "path": "en/docs/claude-code/skills.md", - "sha256": "40fbfd630b33a244350a6bf1b611617f86eacf36c9e27dfb71e8d7a96b687012", - "size": 109862 + "sha256": "6cb66d6c1ab6b06eda6dd6854f4133901c8daef8fc447f59fe65ac4038ec8043", + "size": 110571 }, { "url": "https://code.claude.com/docs/en/discover-plugins", "status": "success", "path": "en/docs/claude-code/discover-plugins.md", - "sha256": "54bdd0313e00579d8bfecf68144ea25d68ae37d6d627521f519d70303da98ab2", - "size": 33950 + "sha256": "cfd0b8779b8a6b79318183b0de47991ffc0eb8b2652b41066e517fbde345f57c", + "size": 34993 }, { "url": "https://code.claude.com/docs/en/plugins", "status": "success", "path": "en/docs/claude-code/plugins.md", - "sha256": "5a0772d4f9dbfb3ccc384af5ae3a1bc6fc9daea6713ac2d47c63553e6bd464c8", - "size": 30162 + "sha256": "8070daef044b8dcd7f744f4ccbba8189e106ee72e31d34d1ce5dcca5aac3e742", + "size": 30282 }, { "url": "https://code.claude.com/docs/en/artifacts", "status": "success", "path": "en/docs/claude-code/artifacts.md", - "sha256": "9d3cc0d8bb6d756b3854463a669174337657320267e67b3f824961df4705cbb6", - "size": 40392 + "sha256": "9f47271d31b0c13b4e6f517b95751495dc2cd06bb2e4d954465962f6846066b6", + "size": 40479 }, { "url": "https://code.claude.com/docs/en/hooks-guide", @@ -4776,8 +4776,8 @@ "url": "https://code.claude.com/docs/en/channels", "status": "success", "path": "en/docs/claude-code/channels.md", - "sha256": "294a7e533dfaae5eb2b82f4e5db0faafb6c79e779129fa3315cdf647578a3ce9", - "size": 23847 + "sha256": "809496c86782e9beacb6bfa8085af1b6fa806592b51706c3b8c0718235ceba2b", + "size": 24051 }, { "url": "https://code.claude.com/docs/en/scheduled-tasks", @@ -4839,8 +4839,8 @@ "url": "https://code.claude.com/docs/en/errors", "status": "success", "path": "en/docs/claude-code/errors.md", - "sha256": "cedae078bb24e3dd92cea275d721922757ef3033cb73b29437ded35042280bde", - "size": 407010 + "sha256": "b8944f28bfea74456c2960ba67f375c1d39afd34fb474e956bea3d64744e6604", + "size": 406979 }, { "url": "https://code.claude.com/docs/en/admin-setup", @@ -4874,8 +4874,8 @@ "url": "https://code.claude.com/docs/en/server-managed-settings", "status": "success", "path": "en/docs/claude-code/server-managed-settings.md", - "sha256": "8e7a0e4545e8e12507ad6ac1004e608e1d02179be6b8435f265f07d0f195ef0c", - "size": 46110 + "sha256": "dfc601f02b4701d84fe1d17660926c092724589b9e62c715d57534998e714618", + "size": 46550 }, { "url": "https://code.claude.com/docs/en/managed-mcp", @@ -4888,15 +4888,15 @@ "url": "https://code.claude.com/docs/en/auto-mode-config", "status": "success", "path": "en/docs/claude-code/auto-mode-config.md", - "sha256": "8cf836f14171b07eb4c9a26c47e65ca41a27f4053c939898252a172210081192", - "size": 35791 + "sha256": "cdd23ee3d702b09961ab52150dde9365767e86e712bdbff5de98118dda012f49", + "size": 35601 }, { "url": "https://code.claude.com/docs/en/third-party-integrations", "status": "success", "path": "en/docs/claude-code/third-party-integrations.md", - "sha256": "32bbffbc078f85a6c9a1c72d76f93e1babf5bbd466dcd988c162dade74ecf19b", - "size": 13928 + "sha256": "5944e5c095d12e5e65938933d9384a6b4d953a9b8261570eed34a09404184829", + "size": 13610 }, { "url": "https://code.claude.com/docs/en/feature-availability", @@ -4965,15 +4965,15 @@ "url": "https://code.claude.com/docs/en/claude-apps-gateway", "status": "success", "path": "en/docs/claude-code/claude-apps-gateway.md", - "sha256": "e93487955aced4946e1cff68b094d56224f333f1e656401c76d06911d6034ac4", - "size": 58757 + "sha256": "cf543b3425f0475697dd3c14cfc372d4bf70b46d745f02a37947746b03c75a62", + "size": 58949 }, { "url": "https://code.claude.com/docs/en/claude-apps-gateway-config", "status": "success", "path": "en/docs/claude-code/claude-apps-gateway-config.md", - "sha256": "9229625de5e6eded5eb72a0d67e0c5c5319dfb0f667206443ebf82efa44e84bb", - "size": 118335 + "sha256": "3257bfe37d57f4673a2bd0a0cd20daf9780ff3a718ac81280970d97368c04245", + "size": 126033 }, { "url": "https://code.claude.com/docs/en/claude-apps-gateway-spend-limits", @@ -4986,8 +4986,8 @@ "url": "https://code.claude.com/docs/en/claude-apps-gateway-deploy", "status": "success", "path": "en/docs/claude-code/claude-apps-gateway-deploy.md", - "sha256": "0b0fbd350248e16167f1fedcbcf88570088408c1e80ae020810b0c3f5557c1ba", - "size": 69931 + "sha256": "09270d8f4e207724e6aae6f48b9a970996cef9e8db5702abe212c1240143bdb0", + "size": 70043 }, { "url": "https://code.claude.com/docs/en/claude-apps-gateway-on-aws", @@ -5014,8 +5014,8 @@ "url": "https://code.claude.com/docs/en/llm-gateway-connect", "status": "success", "path": "en/docs/claude-code/llm-gateway-connect.md", - "sha256": "0878d79128adc92c1fbd31981cb9cc54ab15f513945cddee3a0cd5e59ea631d4", - "size": 54157 + "sha256": "0cafc66560349ebf8837d5dcbe5175ca626418f41718389be93cec2d67e89225", + "size": 56755 }, { "url": "https://code.claude.com/docs/en/llm-gateway-rollout", @@ -5035,8 +5035,8 @@ "url": "https://code.claude.com/docs/en/monitoring-usage", "status": "success", "path": "en/docs/claude-code/monitoring-usage.md", - "sha256": "7d2a4052783017dfaf8bb770f33c7ddab3a9b5374144b5821c37f55e7034e63c", - "size": 139905 + "sha256": "85703528e4de5432950951e0ff1d44d191bee607096ec4370353aa6b15a70b70", + "size": 140179 }, { "url": "https://code.claude.com/docs/en/costs", @@ -5049,15 +5049,15 @@ "url": "https://code.claude.com/docs/en/analytics", "status": "success", "path": "en/docs/claude-code/analytics.md", - "sha256": "6e1a46fbf128d24c0a252cd28d1c7377b3c050b24cc9827caf6e7e537e31fa97", - "size": 12545 + "sha256": "fa9e1e1fe4d0cebb3838b14d198ba6a4a94cd7433b4e4116569310854dbd94be", + "size": 12271 }, { "url": "https://code.claude.com/docs/en/plugin-marketplaces", "status": "success", "path": "en/docs/claude-code/plugin-marketplaces.md", - "sha256": "29a446b8bdb5490e4288c254287432c33a9bbfe6523cb1f535cc3870f865e580", - "size": 117936 + "sha256": "7912af9270337aa00dd39e74120a5aad65065f90b4a15c54eed99cec6ff6d960", + "size": 118032 }, { "url": "https://code.claude.com/docs/en/plugin-dependencies", @@ -5147,7 +5147,7 @@ "url": "https://code.claude.com/docs/en/permission-modes", "status": "success", "path": "en/docs/claude-code/permission-modes.md", - "sha256": "72ecdef3d08bf2164052cc57fd5db8021a5a2b54f26a650a19724d8213f1b9f3", + "sha256": "6b8fc8344f52131aab75fcba4eafee2853287d6d2cc3398dde09f46b4d52a2ff", "size": 80189 }, { @@ -5168,8 +5168,8 @@ "url": "https://code.claude.com/docs/en/cloud-environments", "status": "success", "path": "en/docs/claude-code/cloud-environments.md", - "sha256": "c67bf4e100a7ed860a245920fa2cc1e8c53263635b64efbf6da69b70963e4f54", - "size": 65126 + "sha256": "29998b3dc2a851eaf60b64058c4be0d382bad76c81ed9bdb2cdcdfd5aca7b178", + "size": 65221 }, { "url": "https://code.claude.com/docs/en/self-hosted-environments", @@ -5287,15 +5287,15 @@ "url": "https://code.claude.com/docs/en/keybindings", "status": "success", "path": "en/docs/claude-code/keybindings.md", - "sha256": "d170308ad1e378b3128caf78e55aa713ed11470d01463d89a3bcd30eca23c6b4", - "size": 44158 + "sha256": "d6070bb5c33a18703cd975c228b81773cd8d2d69519f3a7bc404f3f766f84667", + "size": 44282 }, { "url": "https://code.claude.com/docs/en/cli-reference", "status": "success", "path": "en/docs/claude-code/cli-reference.md", - "sha256": "a61f5118bb992a19ffb0b9dda3443ec512b7e7181b7b1b458bb96f0f6dd58b01", - "size": 113300 + "sha256": "3c9ac88287cc1bb101c5231c34dbd449389e2c44f2515a317a149005080d83c7", + "size": 118486 }, { "url": "https://code.claude.com/docs/en/commands", @@ -5308,22 +5308,22 @@ "url": "https://code.claude.com/docs/en/env-vars", "status": "success", "path": "en/docs/claude-code/env-vars.md", - "sha256": "a2e450e338df4921fedf8a4d6349da010fb4bd9de2cbc5f1d02529ca47e45555", - "size": 484329 + "sha256": "9b1792540478648e4ff9cdd48c6e17a321d70a401812c1fc557b74c9080a7b5f", + "size": 485427 }, { "url": "https://code.claude.com/docs/en/tools-reference", "status": "success", "path": "en/docs/claude-code/tools-reference.md", - "sha256": "6f4311f69231cc54b54ae9deced919c7937f3545f182bf352bb92d38ce58c1e2", - "size": 106766 + "sha256": "f928a98a3f2e69421eeadeb064439c827340f4b19a28c7ad920c2a0e60b142f9", + "size": 106870 }, { "url": "https://code.claude.com/docs/en/interactive-mode", "status": "success", "path": "en/docs/claude-code/interactive-mode.md", - "sha256": "9ddab25ddb7ac5e181e7bf4fd110161b5410461ed61ead720b1cf7115c2d938b", - "size": 90000 + "sha256": "a43f4a145320ecff8da141c321f3220246884acb226285095ad0ff123ceb2b60", + "size": 89874 }, { "url": "https://code.claude.com/docs/en/checkpointing", @@ -5336,22 +5336,22 @@ "url": "https://code.claude.com/docs/en/hooks", "status": "success", "path": "en/docs/claude-code/hooks.md", - "sha256": "b387875a7957cf3451e74471c48c88c5afc0843850788aaaecefc4599ca2b4f0", - "size": 319955 + "sha256": "a6f4f82aca2e63d64ba787c2dc8d735ff95ae86fd3a53471b87eb089133cbdca", + "size": 322665 }, { "url": "https://code.claude.com/docs/en/plugins-reference", "status": "success", "path": "en/docs/claude-code/plugins-reference.md", - "sha256": "65ccac0ce011a4d500c5613cf74cb850f55ab3e0927bfa91c8d6d02471b5baf4", - "size": 118247 + "sha256": "c75119ccd8973aad659373d726d412bbe3f5184e6d0ca0d2064512cad255f0a3", + "size": 123218 }, { "url": "https://code.claude.com/docs/en/channels-reference", "status": "success", "path": "en/docs/claude-code/channels-reference.md", - "sha256": "3db15890de6d90a2d5628bbc239276a2348c975e1abd889ba4ec8df9ee200113", - "size": 50258 + "sha256": "fe5f5de5df3787bf5eef7ecb3f98d56e2a41760f9c3c75bde5cc11aae7d8bcaa", + "size": 50351 }, { "url": "https://code.claude.com/docs/en/glossary", @@ -5483,8 +5483,8 @@ "url": "https://code.claude.com/docs/en/agent-sdk/modifying-system-prompts", "status": "success", "path": "en/docs/claude-code/agent-sdk/modifying-system-prompts.md", - "sha256": "e337ab15ea5a1172b8a1a09c332ac01c6472d559ba3ea775a67661bd36a02912", - "size": 27675 + "sha256": "985549799c1a044649b89c303a97eb0dc8b6acfa6f507ab52120d667ed02e8c8", + "size": 27558 }, { "url": "https://code.claude.com/docs/en/agent-sdk/skills", @@ -5539,8 +5539,8 @@ "url": "https://code.claude.com/docs/en/agent-sdk/todo-tracking", "status": "success", "path": "en/docs/claude-code/agent-sdk/todo-tracking.md", - "sha256": "c23eac91565e34a772c3ff498672f03185f259b705c34c59b06f43c0b277e1b0", - "size": 19208 + "sha256": "62c37c4a0e0c113eb21600c9b532e06be7349b7611996dfe9bc09ca01b83e69f", + "size": 19339 }, { "url": "https://code.claude.com/docs/en/agent-sdk/hosting", @@ -5560,8 +5560,8 @@ "url": "https://code.claude.com/docs/en/agent-sdk/typescript", "status": "success", "path": "en/docs/claude-code/agent-sdk/typescript.md", - "sha256": "db8e423d995f602bd73f8c51f0c9d9dd86a00c8ba51f89b7b26a7219e1a71273", - "size": 356677 + "sha256": "305f751e4d47db29303c15a79aa95777deff6625785b12533072bc0548010547", + "size": 357319 }, { "url": "https://code.claude.com/docs/en/agent-sdk/typescript-v2-preview", @@ -5574,8 +5574,8 @@ "url": "https://code.claude.com/docs/en/agent-sdk/python", "status": "success", "path": "en/docs/claude-code/agent-sdk/python.md", - "sha256": "14b214e0ffde49dc2fd7b9ec157be353fd1e0576dd762cd8b07a3c83c9cbfc2c", - "size": 198289 + "sha256": "f49fb09963fda69499dc97a835a8db4970f3cd3070dff7f68ae6b644bd544987", + "size": 198452 }, { "url": "https://code.claude.com/docs/en/whats-new/index", @@ -8234,8 +8234,8 @@ "url": "https://support.claude.com/en/articles/8114491-get-started-with-claude", "status": "success", "path": "support/8114491-get-started-with-claude.md", - "sha256": "99f48dfc744135a73d2bb3b73a7a56beabb144e9ebec2eb40b405defe50966a5", - "size": 5298 + "sha256": "8f08b4622097bee2c1a280c21b0462534e14b0202b30f8082902cfb09a50105b", + "size": 5302 }, { "url": "https://support.claude.com/en/articles/8114494-how-up-to-date-is-claude-s-training-data", @@ -8311,8 +8311,8 @@ "url": "https://support.claude.com/en/articles/8230524-delete-or-rename-a-conversation", "status": "success", "path": "support/8230524-delete-or-rename-a-conversation.md", - "sha256": "b82a142d17bf5811e72e6c6c1eec2d34609e8833e6d01b300c4222d2a89d4b84", - "size": 5879 + "sha256": "ef9b952b150a9ce59f7ddb0d734c33c5d4cb6703987a255a3aef5cd8c4b99edc", + "size": 5881 }, { "url": "https://support.claude.com/en/articles/8241126-upload-files-to-claude", @@ -8381,7 +8381,7 @@ "url": "https://support.claude.com/en/articles/8325618-paid-plan-billing-faqs", "status": "success", "path": "support/8325618-paid-plan-billing-faqs.md", - "sha256": "83fdcdc6742ac166d04defc58c41e0da091f3e84274061e108ab3d341e589453", + "sha256": "0c3c780b48cdb514ebe7cc6b9a9c35bce6743c3f11c3019afa0a1fcc56daa3e7", "size": 4553 }, { @@ -8444,8 +8444,8 @@ "url": "https://support.claude.com/en/articles/8887527-customizing-your-appearance-settings", "status": "success", "path": "support/8887527-customizing-your-appearance-settings.md", - "sha256": "a4840e7c9267345e90f1a598ba370e31244ac6ec232909adead902aad9eb3ef8", - "size": 1876 + "sha256": "ef3696a7f94eda3078dc543c17f07e2ca76cd6c652598f2719146698af74ab15", + "size": 1874 }, { "url": "https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler", @@ -8619,7 +8619,7 @@ "url": "https://support.claude.com/en/articles/9267400-move-your-personal-claude-account-to-a-team-or-enterprise-organization", "status": "success", "path": "support/9267400-move-your-personal-claude-account-to-a-team-or-enterprise-organization.md", - "sha256": "5ca9b17a11a3623dad4f8ab31100d2712ddf88b7ca821afd57e897a3de4a6864", + "sha256": "c6f91f66ea5fd1f8471d61e93107f767dadad660765032c633896abbb88c86c9", "size": 9723 }, { @@ -8668,14 +8668,14 @@ "url": "https://support.claude.com/en/articles/9519177-how-can-i-create-and-manage-projects", "status": "success", "path": "support/9519177-how-can-i-create-and-manage-projects.md", - "sha256": "90cbc92836ee2d7336bcc5a5f3d4c5370b57001b00175d65933c634b5fb5ac7a", - "size": 9413 + "sha256": "c5c5001c7c7afaeb4229ef3cc15cad0a29d0565d7a7b6e56437828264bded406", + "size": 9417 }, { "url": "https://support.claude.com/en/articles/9519189-manage-project-visibility-and-sharing", "status": "success", "path": "support/9519189-manage-project-visibility-and-sharing.md", - "sha256": "274b48a0ae9170a2ecc0593df2b489e05968d5b4158697fcc84a63cf1b35e096", + "sha256": "3738c8b7aff43296e76217cbb130f2f79f6ef0946c3ea5508367e1eeddd439a7", "size": 8565 }, { @@ -8696,15 +8696,15 @@ "url": "https://support.claude.com/en/articles/9534590-cost-and-usage-reporting-in-the-claude-console", "status": "success", "path": "support/9534590-cost-and-usage-reporting-in-the-claude-console.md", - "sha256": "6479203aca1906ff2c87287e36f2e3c99795d8024185b568917071ed9c8cc83d", - "size": 5104 + "sha256": "1ac3309641e37c55d1361a55847af960e1c8124f77593ce304c1a8357a1000a1", + "size": 5106 }, { "url": "https://support.claude.com/en/articles/9547008-publish-and-share-artifacts", "status": "success", "path": "support/9547008-publish-and-share-artifacts.md", - "sha256": "677c15234f20ddffa062cbe1627562bfdd17e44d9672a00d585aaccd50661238", - "size": 7195 + "sha256": "07e2ee8f39a349e63e1f21b07f8858fb93ce58047500ac0effce695e73b740d4", + "size": 7197 }, { "url": "https://support.claude.com/en/articles/9612887-install-claude-for-android", @@ -8780,8 +8780,8 @@ "url": "https://support.claude.com/en/articles/9927533-disable-public-projects-for-your-organization", "status": "success", "path": "support/9927533-disable-public-projects-for-your-organization.md", - "sha256": "c7049386f45919e732f61924c6ddd013d070084c9070bc85c5e7d394afd79322", - "size": 2578 + "sha256": "a0442077dce04d6df0ffe935746cb73db40969cd073dfcd087089bccd59caba5", + "size": 2582 }, { "url": "https://support.claude.com/en/articles/9927624-add-or-update-your-team-plan-s-tax-or-vat-id", @@ -8920,14 +8920,14 @@ "url": "https://support.claude.com/en/articles/10310342-how-do-i-log-out-of-all-active-sessions", "status": "success", "path": "support/10310342-how-do-i-log-out-of-all-active-sessions.md", - "sha256": "da8a81fa382ff3674b91b9e7f3417718c69e7a470248fb0128ad92fe0ffed6d8", - "size": 2492 + "sha256": "e9266b121c589e3f124fd4e8233019582f61350a9540905db47ce7b5e7b6d7cb", + "size": 2498 }, { "url": "https://support.claude.com/en/articles/10366376-how-can-i-delete-my-claude-console-account", "status": "success", "path": "support/10366376-how-can-i-delete-my-claude-console-account.md", - "sha256": "9465dc05179a346f6bf1b977e2f75bdb1f07e312a73051f6efc428a9da33b7aa", + "sha256": "0ce8ea1146180ab236987da20c225029307878f7978c2c4ee239362b34768170", "size": 3165 }, { @@ -8969,14 +8969,14 @@ "url": "https://support.claude.com/en/articles/10504844-manage-user-feedback-settings-on-team-and-enterprise-plans", "status": "success", "path": "support/10504844-manage-user-feedback-settings-on-team-and-enterprise-plans.md", - "sha256": "c53a3a94f4553ce1af2d9c8e2e86d9a6d480f3cdf2f7de164bd3a09150bb2870", - "size": 1036 + "sha256": "0f730ee193abe455c67f7a2a3fe826eede268bae331a21c251f7561ef541923f", + "size": 1034 }, { "url": "https://support.claude.com/en/articles/10504853-manage-user-feedback-settings-on-claude-console", "status": "success", "path": "support/10504853-manage-user-feedback-settings-on-claude-console.md", - "sha256": "cccf77065a568df4c61d6331f1892812533eb13660c4a6e3e7475d12d3cf52f2", + "sha256": "ffaf5872f0b0822a64745f1c334907d1218769f6571988611469b626dbe1ab03", "size": 1001 }, { @@ -8990,15 +8990,15 @@ "url": "https://support.claude.com/en/articles/10593882-share-and-unshare-chats", "status": "success", "path": "support/10593882-share-and-unshare-chats.md", - "sha256": "4bfd08c81da09b2e2980273bef1c48521aa4bac1c75712f7991e7de3cd09bfe6", + "sha256": "78f32fa1353748a4f61d5db988a855ea0476d8f8e841ad7bf9b8c92bf46edfb1", "size": 4014 }, { "url": "https://support.claude.com/en/articles/10684626-enable-and-use-web-search", "status": "success", "path": "support/10684626-enable-and-use-web-search.md", - "sha256": "8cb61022244d8f4fa3874b6d9b18f944a38fccbb232267797d8f628023c001e4", - "size": 6148 + "sha256": "024e7dbc55d03a1634b1e4e63bb56537e934e835a21679e6311851c1ce0356e5", + "size": 6159 }, { "url": "https://support.claude.com/en/articles/10684638-report-block-and-remove-content-from-claude", @@ -9018,7 +9018,7 @@ "url": "https://support.claude.com/en/articles/10949351-getting-started-with-local-mcp-servers-on-claude-desktop", "status": "success", "path": "support/10949351-getting-started-with-local-mcp-servers-on-claude-desktop.md", - "sha256": "bed080b4c47ab1ce40a17258899cb41a2fc4098354fe4b977582ea5d7b26ec6b", + "sha256": "4d0fc95062b4452f07076113e8a11d37e541a75b7520fdee52a2f750e9fd1be9", "size": 8267 }, { @@ -9060,8 +9060,8 @@ "url": "https://support.claude.com/en/articles/11101966-use-voice-mode", "status": "success", "path": "support/11101966-use-voice-mode.md", - "sha256": "c9aafe48d25e0aa43094385c8a44974fde3bb2ab9119de36ffd5dd1e8c3138a3", - "size": 10550 + "sha256": "db8eebe401a73e7663311f3225f47169e5bb25558375e8f5d54e4d62e5425aaa", + "size": 10548 }, { "url": "https://support.claude.com/en/articles/11107691-why-is-a-coupon-or-promotion-not-available-for-my-account", @@ -9151,8 +9151,8 @@ "url": "https://support.claude.com/en/articles/11473015-retrieval-augmented-generation-rag-for-projects", "status": "success", "path": "support/11473015-retrieval-augmented-generation-rag-for-projects.md", - "sha256": "9a3470897e9dbce0580fa4eddcb14eab6d6f5d5f81747b267433d1e26733d926", - "size": 4178 + "sha256": "6bc205f5f116eaee10e983d3d76dcb10dc78bf7213c8f2ff29950ad87356518a", + "size": 4165 }, { "url": "https://support.claude.com/en/articles/11526368-how-am-i-billed-for-my-enterprise-plan", @@ -9193,8 +9193,8 @@ "url": "https://support.claude.com/en/articles/11725453-set-up-the-claude-lti-in-canvas-by-instructure", "status": "success", "path": "support/11725453-set-up-the-claude-lti-in-canvas-by-instructure.md", - "sha256": "30a0e6be7639ebccffb18a05639b041be7d51765e555a92dca69e3599b4d5a5e", - "size": 2748 + "sha256": "75259b95cfa189040a9346d5f02e1095aa3e938acbae667a26b2f4111a0e9b72", + "size": 2750 }, { "url": "https://support.claude.com/en/articles/11732894-who-owns-and-manages-the-data-of-my-claude-for-education-account", @@ -9207,15 +9207,15 @@ "url": "https://support.claude.com/en/articles/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context", "status": "success", "path": "support/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context.md", - "sha256": "22ce09f220292bd179611f62a5ea8613941f9f3ed3e04c5f2961c5a153f94724", - "size": 25696 + "sha256": "0a48d19a346f5792249656daec6cbba32c9f0439ca8522b474f49aebf81e7739", + "size": 25704 }, { "url": "https://support.claude.com/en/articles/11818288-why-am-i-being-asked-to-verify-my-payment-method", "status": "success", "path": "support/11818288-why-am-i-being-asked-to-verify-my-payment-method.md", - "sha256": "b590a0fb567d3746d1cdcaa12b922dd2fddaf55031afe8cfd7a62fa8b1c70546", - "size": 818 + "sha256": "cc4f71c57691da2661c407ded31477e035c5e84a223c58da0d3b8ed33ec28446", + "size": 816 }, { "url": "https://support.claude.com/en/articles/11825384-how-to-update-claude-for-ios", @@ -9249,7 +9249,7 @@ "url": "https://support.claude.com/en/articles/11869629-use-claude-with-android-apps", "status": "success", "path": "support/11869629-use-claude-with-android-apps.md", - "sha256": "7a020c0be4eae3148cfd3fac03948b0b8f62945b923ef7fe9e5ed78f913c54bc", + "sha256": "25b6894a7b4c132eb42decb7af170b21b1a981d582d815a7ee50e8dd948ba799", "size": 13991 }, { @@ -9284,14 +9284,14 @@ "url": "https://support.claude.com/en/articles/12005970-manage-usage-credits-for-team-and-seat-based-enterprise-plans", "status": "success", "path": "support/12005970-manage-usage-credits-for-team-and-seat-based-enterprise-plans.md", - "sha256": "2c8b772d69b3d6997f7385640fd250c600f31bdd751f9691843e27db36c66949", + "sha256": "7934eaf64a2565d99566f48cc6b64ccc0beef7ccee77aef5ee64e49a2c1e2ec9", "size": 9705 }, { "url": "https://support.claude.com/en/articles/12012173-get-started-with-claude-in-chrome", "status": "success", "path": "support/12012173-get-started-with-claude-in-chrome.md", - "sha256": "6414d39eb56c90ad063ec0f7e316c21d70e46a7af29c1da9020f0a7c57175cf2", + "sha256": "338ca79abfd8bb1e2e8049ffb3d539c039032d21cf6622971e59abea91e941ff", "size": 14857 }, { @@ -9305,8 +9305,8 @@ "url": "https://support.claude.com/en/articles/12083917-change-your-team-plan-from-monthly-to-annual-billing", "status": "success", "path": "support/12083917-change-your-team-plan-from-monthly-to-annual-billing.md", - "sha256": "a75e35886f54d1702ad62425eb886a0fd35a6de698c668b5ddef6482614bf8ee", - "size": 1400 + "sha256": "0ca426fb360ac83783d797d311b4db11dd2e1703235162c1b0f48f225c944e9f", + "size": 1398 }, { "url": "https://support.claude.com/en/articles/12109679-creating-a-new-account-after-deletion", @@ -9319,8 +9319,8 @@ "url": "https://support.claude.com/en/articles/12111783-create-and-edit-files-with-claude", "status": "success", "path": "support/12111783-create-and-edit-files-with-claude.md", - "sha256": "36a1cbc61b504e5b59ba9d5e9d7a75615b27af31ff50846a3f9f45ac0a1fb3ba", - "size": 17966 + "sha256": "486332ca231e85a2e957c5a7a007c4850bafa03fd59845002028fc3da9c3bb21", + "size": 17958 }, { "url": "https://support.claude.com/en/articles/12119250-model-safety-bug-bounty-program", @@ -9340,28 +9340,28 @@ "url": "https://support.claude.com/en/articles/12138966-release-notes", "status": "success", "path": "support/12138966-release-notes.md", - "sha256": "a3d911ae1ae98585281112cba37df8a51abd5f2e5f303f3f30f37d0d44471fce", - "size": 35445 + "sha256": "3d51dfdee3cce9eca11437a3168cec072fd98469cabc27eb724a62d679c43900", + "size": 35913 }, { "url": "https://support.claude.com/en/articles/12157520-claude-code-usage-analytics", "status": "success", "path": "support/12157520-claude-code-usage-analytics.md", - "sha256": "6871685756896c64cc65551db2acaf07163c563080ecb3d4223eb02ede8fa48c", + "sha256": "9ca9807a2ae5fdd762af8864415c1fdfc02beb3b55fb429da8137efee30e7864", "size": 6427 }, { "url": "https://support.claude.com/en/articles/12260368-use-incognito-chats", "status": "success", "path": "support/12260368-use-incognito-chats.md", - "sha256": "b9898b922e1d9d2ef20e6c8a8255addbfd050dadb810ac0ed4f0f438d820116e", - "size": 3594 + "sha256": "8392a46e4f8183a789a2eef66c3df3c80598d7290488756598c2ea50ed69711c", + "size": 3596 }, { "url": "https://support.claude.com/en/articles/12293051-use-claude-in-xcode", "status": "success", "path": "support/12293051-use-claude-in-xcode.md", - "sha256": "8ee3e7cd4da8299084df41515661513d6ffb7ac74d129da8e24adc484ba684cc", + "sha256": "e472678136ee724beb4b0170a31a10aae3da964365fa4be11415bc7fe1f2e4cc", "size": 1907 }, { @@ -9403,14 +9403,14 @@ "url": "https://support.claude.com/en/articles/12429409-manage-usage-credits-for-paid-claude-plans", "status": "success", "path": "support/12429409-manage-usage-credits-for-paid-claude-plans.md", - "sha256": "7ea4bc3f31f3f01b3739c64c1c48ceb61ef32ad59d182e1e370a3bf52cb3b5bb", + "sha256": "6cc3b7f24428ed0292ecfddafc50f4fb836b335249848d9fa3112e59931733c5", "size": 6416 }, { "url": "https://support.claude.com/en/articles/12466728-troubleshoot-claude-error-messages", "status": "success", "path": "support/12466728-troubleshoot-claude-error-messages.md", - "sha256": "3671f078ebe91806ad5be38cb94eb685f5dfb6c77957dc1abec321bcb907071f", + "sha256": "f98c849f0df0b7f8e0117fc8ed3af79c3e11d7eb73c312ec494d315ba3eb1129", "size": 4234 }, { @@ -9431,7 +9431,7 @@ "url": "https://support.claude.com/en/articles/12512180-use-skills-in-claude", "status": "success", "path": "support/12512180-use-skills-in-claude.md", - "sha256": "efeb22438390ad33b4de9af95c89d8f17735c4a3a9b443fb2571be6924ba3d92", + "sha256": "d6e927faefe63380d9f5bc3251f3daab6ab40384bb6b706ec0f3b64321ae66fa", "size": 15918 }, { @@ -9452,7 +9452,7 @@ "url": "https://support.claude.com/en/articles/12592343-enabling-and-using-the-desktop-extension-allowlist", "status": "success", "path": "support/12592343-enabling-and-using-the-desktop-extension-allowlist.md", - "sha256": "81df38ac972f9948d4a71fdabc9efe7ff4f23273c3d84231843cf26174b8ce46", + "sha256": "8413bddcda24ef9441d41069b98a57677485ae8b5baad37e7314ccf4b5645365", "size": 5716 }, { @@ -9466,8 +9466,8 @@ "url": "https://support.claude.com/en/articles/12618689-claude-code-on-the-web", "status": "success", "path": "support/12618689-claude-code-on-the-web.md", - "sha256": "205a56465045c5e10e1a9a6fa524f0e63ef155a0aa3e662801767b2b10cb1436", - "size": 10962 + "sha256": "f47cbed94dd73991088b386a40a3bb7843b3e07a0c4da6ec81625e28fbeb4c83", + "size": 10966 }, { "url": "https://support.claude.com/en/articles/12622667-enterprise-configuration-for-claude-desktop", @@ -9487,8 +9487,8 @@ "url": "https://support.claude.com/en/articles/12626668-use-quick-entry-with-claude-desktop-on-mac", "status": "success", "path": "support/12626668-use-quick-entry-with-claude-desktop-on-mac.md", - "sha256": "e89a3620c71fb2bddcc7d2a60702c3e60a6822b08930c512e3f396da9d61329e", - "size": 5970 + "sha256": "1a43dbbca7c036998f54db86d6f8f0648c888a08331329f4932b945381c78095", + "size": 5974 }, { "url": "https://support.claude.com/en/articles/12684923-microsoft-365-connector-security-guide", @@ -9543,8 +9543,8 @@ "url": "https://support.claude.com/en/articles/12902446-claude-in-chrome-permissions-guide", "status": "success", "path": "support/12902446-claude-in-chrome-permissions-guide.md", - "sha256": "4a9c98f95ee0471addca2dd3649a4b10df54c8798be09bf6219876d68460ed22", - "size": 9563 + "sha256": "56272b4b2928039737c39d684b33c76c4a5ae79bd5d9a61b9a8b8ceec211175e", + "size": 9567 }, { "url": "https://support.claude.com/en/articles/12938627-how-to-gift-a-claude-subscription", @@ -9571,8 +9571,8 @@ "url": "https://support.claude.com/en/articles/12997503-team-plan-billing-faqs", "status": "success", "path": "support/12997503-team-plan-billing-faqs.md", - "sha256": "16eb497832e3c6e353f239057b34f3dd71a87d41548e4eef3dee4523aa1b42b6", - "size": 4853 + "sha256": "de5c1763085daf4fd9a175509344c07b8d89ffc627661e10d508e90a5fc085bf", + "size": 4851 }, { "url": "https://support.claude.com/en/articles/13015708-access-the-compliance-api", @@ -9620,15 +9620,15 @@ "url": "https://support.claude.com/en/articles/13132885-set-up-single-sign-on-sso", "status": "success", "path": "support/13132885-set-up-single-sign-on-sso.md", - "sha256": "a591c97c7a1433c84bb7ee1d5a2461c831efb549b8138d0b2e77f06b931ecef9", - "size": 13331 + "sha256": "1f93e57e172f7caefd4b9a7792b89f1215db710b8db36e157f21914d0656ee29", + "size": 13327 }, { "url": "https://support.claude.com/en/articles/13133195-set-up-jit-or-scim-provisioning", "status": "success", "path": "support/13133195-set-up-jit-or-scim-provisioning.md", - "sha256": "af2e12a49e40b05b9664fee76ecc93800429b3411afadf9d03e481287329c9f2", - "size": 19693 + "sha256": "fe35c9542704e4e07c626cf05a1476a238e762f69d4266a182362a0770252272", + "size": 19697 }, { "url": "https://support.claude.com/en/articles/13133750-manage-members-on-team-and-enterprise-plans", @@ -9655,8 +9655,8 @@ "url": "https://support.claude.com/en/articles/13163631-configuring-session-security-settings", "status": "success", "path": "support/13163631-configuring-session-security-settings.md", - "sha256": "fb5257bedf3f3e5471a3c3088c6f7a1aa32948d1d4e2c3731af421bbf32755cb", - "size": 3706 + "sha256": "ed3826bdb41dec4a6f4cc63408785b32c9d7fa0f9b80ecd0eb78fc4c4751e343", + "size": 3702 }, { "url": "https://support.claude.com/en/articles/13171706-crisis-helpline-support-in-claude", @@ -9669,7 +9669,7 @@ "url": "https://support.claude.com/en/articles/13189465-log-in-to-your-claude-account", "status": "success", "path": "support/13189465-log-in-to-your-claude-account.md", - "sha256": "4a0a6fc0aebf07c00569aa0963b16cc79380afaae9595a8ea14142b2705e27f6", + "sha256": "75dedcca369e8f45e3d1ce2b8b9a9cbf08e49d6ff61c2e45f90bf87ead14a2e2", "size": 7036 }, { @@ -9697,21 +9697,21 @@ "url": "https://support.claude.com/en/articles/13325567-account-management-faqs", "status": "success", "path": "support/13325567-account-management-faqs.md", - "sha256": "b6e159cf72c32c9f17ec8a22e85cc5c693107a17f62bcef15d6063e0c2105650", - "size": 2636 + "sha256": "7f42632592ddc03710cc43c5c685aa3cd5ed5d662a61ee3c0704ac14f54fd2d1", + "size": 2634 }, { "url": "https://support.claude.com/en/articles/13345190-get-started-with-claude-cowork", "status": "success", "path": "support/13345190-get-started-with-claude-cowork.md", - "sha256": "e4009ac71e60082795ab79d091b1ec9cf5f65d62b023f739ad07fcb4cb81933d", + "sha256": "d97701c4f7ebc62d56ca792cab3e4437da729211d117086e4bdae89d27395238", "size": 21516 }, { "url": "https://support.claude.com/en/articles/13346458-customizing-your-console-appearance-settings", "status": "success", "path": "support/13346458-customizing-your-console-appearance-settings.md", - "sha256": "adcb325c2ac0f0b98dc59dd97cd908812ab2f169a5568fe9c33f5a067fc22ad5", + "sha256": "a4f1909e83e03df555776927884b8662643932bd3410806892d3b9c3b7ac1e88", "size": 607 }, { @@ -9732,8 +9732,8 @@ "url": "https://support.claude.com/en/articles/13371040-log-in-to-your-console-account", "status": "success", "path": "support/13371040-log-in-to-your-console-account.md", - "sha256": "6188659cefcec9558936cd20cfdf866943eb85da4d60fec0616792738e318929", - "size": 4609 + "sha256": "f2debb5204f221ae3d86c390bbd8f382d9b80d1d2a436e87affb00e0c518b3e3", + "size": 4611 }, { "url": "https://support.claude.com/en/articles/13393991-purchase-and-manage-seats-on-enterprise-plans", @@ -9788,7 +9788,7 @@ "url": "https://support.claude.com/en/articles/13641943-visual-and-interactive-content", "status": "success", "path": "support/13641943-visual-and-interactive-content.md", - "sha256": "a6a5aeb391e89762461e21da398a589db33c986992893d68549f86d56895cd2e", + "sha256": "ee6bae22c14e2b1999b7ce8c265ea4183b949c816aa237897771855936ebb8f3", "size": 6513 }, { @@ -9816,7 +9816,7 @@ "url": "https://support.claude.com/en/articles/13756069-public-sector-faqs", "status": "success", "path": "support/13756069-public-sector-faqs.md", - "sha256": "2f9ab36fecf24d0a897f2eaade20c95420655811a883b0a3f35afe21852c52a4", + "sha256": "0391f11c0475f27e496295fbd88c940761f26f98816c44f5d883087cd5707c84", "size": 8378 }, { @@ -9844,22 +9844,22 @@ "url": "https://support.claude.com/en/articles/13837433-manage-plugins-for-your-organization", "status": "success", "path": "support/13837433-manage-plugins-for-your-organization.md", - "sha256": "57a1c1410a6586d448966db7e021f98020642541cf50c4ec4e98e57237f0355f", + "sha256": "1592b420e61a824b86b5dd36dc392b0d768ab4c759292b0ea556a6248fecced5", "size": 21289 }, { "url": "https://support.claude.com/en/articles/13837440-use-plugins-in-claude", "status": "success", "path": "support/13837440-use-plugins-in-claude.md", - "sha256": "238714cbbea4523909560f331bb693d1ea5a273fce52db00793fb94b97f7163e", - "size": 10758 + "sha256": "f49bfef51d3c7e3ed147dc02f2557d68624cee4ab80314ff6cdc8122caad24e3", + "size": 10760 }, { "url": "https://support.claude.com/en/articles/13854387-schedule-recurring-tasks-in-claude-cowork", "status": "success", "path": "support/13854387-schedule-recurring-tasks-in-claude-cowork.md", - "sha256": "806d291ea8fea4c8ab8468e88829fd5475b2366ebf061ec6c3f12a153d8dd5db", - "size": 4747 + "sha256": "fbdb6ffbdd4a55c0d063424934792a085b17004d90de82b279e1b0b563849560", + "size": 4749 }, { "url": "https://support.claude.com/en/articles/13917817-google-workspace-sso-scim-email-mismatch", @@ -9949,8 +9949,8 @@ "url": "https://support.claude.com/en/articles/13947068-assign-tasks-from-anywhere-in-claude-cowork", "status": "success", "path": "support/13947068-assign-tasks-from-anywhere-in-claude-cowork.md", - "sha256": "46fc77904a35e783f2ff1db0230f0d398a5dc777bfc5d08ebef2f5587870b55f", - "size": 8524 + "sha256": "a1b23b066a60f42fc4addd723fd7e8b4a4701b17b045f40e08a979cded505eb6", + "size": 8526 }, { "url": "https://support.claude.com/en/articles/13979539-custom-visuals-in-chat-and-cowork", @@ -9970,8 +9970,8 @@ "url": "https://support.claude.com/en/articles/14116274-organize-your-tasks-with-projects-in-claude-cowork", "status": "success", "path": "support/14116274-organize-your-tasks-with-projects-in-claude-cowork.md", - "sha256": "19d823b32754930dda796ca561910047039c415a3a02e8e207906521867e8e28", - "size": 6255 + "sha256": "c702187c5707c5fc29761414154c993096d60076a02156ac986b6e97524f0647", + "size": 6263 }, { "url": "https://support.claude.com/en/articles/14128542-let-claude-use-your-computer-in-cowork", @@ -10040,8 +10040,8 @@ "url": "https://support.claude.com/en/articles/14499648-how-scim-sync-works-for-enterprise-organizations", "status": "success", "path": "support/14499648-how-scim-sync-works-for-enterprise-organizations.md", - "sha256": "e515505bd702e62835da20c49d7aa478ff188ce4154f23f7edcff8a232887215", - "size": 7674 + "sha256": "614830e44bfb26d8ddefee8ba68bdccf450bd135e639d9a7caa7ee3f9a4b2885", + "size": 7670 }, { "url": "https://support.claude.com/en/articles/14503520-available-beta-and-research-preview-features", @@ -10061,14 +10061,14 @@ "url": "https://support.claude.com/en/articles/14503613-sso-login", "status": "success", "path": "support/14503613-sso-login.md", - "sha256": "ddb2f80788b1d897ba8e58881362dbf672c29f7901d3e1155ae2957efc1f81de", - "size": 6690 + "sha256": "809bc929f71b03721f42002f11294529c33d099c7cc1a06fb4bad0a42c01a1a8", + "size": 6694 }, { "url": "https://support.claude.com/en/articles/14503643-set-up-scim-in-claude-for-government", "status": "success", "path": "support/14503643-set-up-scim-in-claude-for-government.md", - "sha256": "92e23c31c83fad5329c3ed13cd78813685d5a0402f627c0648da0b7ad0d9e7e4", + "sha256": "09b7c6c919f66d4749c00d8ed3984f4c8e0c12e589a919e21ccf467992ff9e00", "size": 6419 }, { @@ -10096,8 +10096,8 @@ "url": "https://support.claude.com/en/articles/14503775-mcp-web-search", "status": "success", "path": "support/14503775-mcp-web-search.md", - "sha256": "be1868daa39bb278285897cf71d436d299697aa8847d14f0bce6f8d8bcd20a0a", - "size": 4679 + "sha256": "517143417fc9148adb47bc0c2cf9363491e0e844baac61c69161c295b828accb", + "size": 4675 }, { "url": "https://support.claude.com/en/articles/14503794-model-availability-in-claude-for-government", @@ -10194,22 +10194,22 @@ "url": "https://support.claude.com/en/articles/14604397-set-up-your-design-system-in-claude-design", "status": "success", "path": "support/14604397-set-up-your-design-system-in-claude-design.md", - "sha256": "21bbfc9f14935e986d5bda0493f32fecb1900a7326f9e87a92edd59a21f24800", - "size": 4402 + "sha256": "352a23afe0f759eb5445c35a8c26a53a2440ac50582f21045f96e405268d6d21", + "size": 4398 }, { "url": "https://support.claude.com/en/articles/14604406-claude-design-admin-guide-for-team-and-enterprise-plans", "status": "success", "path": "support/14604406-claude-design-admin-guide-for-team-and-enterprise-plans.md", - "sha256": "2932933a148c755dfa72a2935c60b13f830de63311d74f1f5e91393f00974648", - "size": 12737 + "sha256": "47070fd0bfa4d94a5990913f10029d79c498649a2e88d6b33ac44b06a520cf0b", + "size": 12739 }, { "url": "https://support.claude.com/en/articles/14604416-get-started-with-claude-design", "status": "success", "path": "support/14604416-get-started-with-claude-design.md", - "sha256": "4d97a674629f580559805ce0c0c69cf64b92ca6e0c5ed624c77cbbaab8e97ae1", - "size": 11136 + "sha256": "8d53a88738eed95a1c477a76c2e2a6d5d13ac4ea458b5f7c716e7a287bb73294", + "size": 11132 }, { "url": "https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude-opus-and-sonnet", @@ -10334,8 +10334,8 @@ "url": "https://support.claude.com/en/articles/15330088-set-a-default-model-for-your-organization", "status": "success", "path": "support/15330088-set-a-default-model-for-your-organization.md", - "sha256": "09676f589375a78fe88045a5efe40a3b066687d4d87d3327dfcc0a5699e9aabc", - "size": 7772 + "sha256": "0966ba41fc3005da26a9fbfda9e5a7f2443c06556b05a79b341b2a207d5cd94f", + "size": 7770 }, { "url": "https://support.claude.com/en/articles/15330651-claude-enterprise-admin-api-reference-guide", @@ -10446,8 +10446,8 @@ "url": "https://support.claude.com/en/articles/15694740-manage-model-access-for-your-organization", "status": "success", "path": "support/15694740-manage-model-access-for-your-organization.md", - "sha256": "c0f914bb32b95250c1afb08a8ea68c9e8f0bff10ab9423f745f56cdf5c4c090c", - "size": 10147 + "sha256": "f535d14f69730a51027bfd1055f8857067e261271c6ed5405932a29a8e1deb5f", + "size": 10143 }, { "url": "https://support.claude.com/en/articles/15707726-using-claude-for-legal-work-privilege-confidentiality-and-how-to-think-about-configuration", @@ -10481,7 +10481,7 @@ "url": "https://support.claude.com/en/articles/15936181-get-started-with-1password-for-claude", "status": "success", "path": "support/15936181-get-started-with-1password-for-claude.md", - "sha256": "f392f7de34040ca9f958d8c5dce83a7cb377158ec0e43440775922974cfc74ba", + "sha256": "3302186f26d99191200844a97884f4eb46945c5b4be7d673785b3b86ca4a2fc9", "size": 5060 }, { @@ -10530,8 +10530,8 @@ "url": "https://support.claude.com/en/articles/16607638-understanding-your-pro-or-max-plan-invoices", "status": "success", "path": "support/16607638-understanding-your-pro-or-max-plan-invoices.md", - "sha256": "f62a105a90d47af5167f544f3217647703f77deaf1b5df381840d981549fd498", - "size": 5441 + "sha256": "2e4fcdb3233fd25f4f63934f949e23f815095c13ab73f2f2e9e08ba0f70458a2", + "size": 5439 }, { "url": "https://support.claude.com/en/articles/16607668-understanding-your-team-plan-invoices", @@ -10593,8 +10593,8 @@ "url": "https://support.claude.com/en/articles/16764810-assign-a-program-to-workspaces-in-claude-console", "status": "success", "path": "support/16764810-assign-a-program-to-workspaces-in-claude-console.md", - "sha256": "42da4dbebfc41deffd201be061f0c2ecb43b043153c1324f22070ea0c4b355d0", - "size": 5109 + "sha256": "1ed80e915448a1f1e06bee90f06b4df44ef4c9cbc1781c39b80deff41bee5426", + "size": 5099 }, { "url": "https://support.claude.com/en/articles/16824617-turn-on-data-retention-for-a-workspace-in-a-zero-data-retention-organization", @@ -10607,8 +10607,8 @@ "url": "https://claude.com/docs/claude-science/admin-controls", "status": "success", "path": "claude/claude-science/admin-controls.md", - "sha256": "4a6306ba6a6af384b14f0976fb15bccc0010874b69d6d72a7918a1eb26222efe", - "size": 55897 + "sha256": "5e3d69aec2e37664fb045a2f9d04dea93504345f7d32f1048dc3e9f5ec6d44f6", + "size": 58290 }, { "url": "https://claude.com/docs/claude-science/artifacts", @@ -10621,8 +10621,8 @@ "url": "https://claude.com/docs/claude-science/changelog", "status": "success", "path": "claude/claude-science/changelog.md", - "sha256": "8dfca7040b67e3ee352a1d48d79669ec4f6b29874bd29891c9c7e4966678da19", - "size": 10338 + "sha256": "50f6fe7791f3829aafc477a5ca1af2de57722d97a46801e794e5a9877655981e", + "size": 10315 }, { "url": "https://claude.com/docs/claude-science/cloud-storage", @@ -10698,8 +10698,8 @@ "url": "https://claude.com/docs/claude-science/get-started", "status": "success", "path": "claude/claude-science/get-started.md", - "sha256": "f28f33e2c0e12704c6d2fe95dfbc97d3d1b37d31a4cdab3419324a51638c286d", - "size": 7371 + "sha256": "ba96703039f96df8db342a743a89f59a137ac2b8636ef2d556192bed5e100ee6", + "size": 10669 }, { "url": "https://claude.com/docs/claude-science/glossary", @@ -10712,8 +10712,8 @@ "url": "https://claude.com/docs/claude-science/how-claude-science-works-with-your-data", "status": "success", "path": "claude/claude-science/how-claude-science-works-with-your-data.md", - "sha256": "3193d32d468ad6667d3f30692bf2ffa8ba1f9612ae271a81f45d12eb95156eb7", - "size": 7269 + "sha256": "e0226c7ee51f955e6e819a61ee2afec676b891189a060aead3127451fd37e72d", + "size": 8822 }, { "url": "https://claude.com/docs/claude-science/legal-and-compliance", @@ -10761,8 +10761,8 @@ "url": "https://claude.com/docs/claude-science/overview", "status": "success", "path": "claude/claude-science/overview.md", - "sha256": "a1c2221b6c54fcaff554bb919c2c97ac9038d3728c4479ab4445bf3284e78f16", - "size": 1960 + "sha256": "094097b41d553058ac40691c7708826de3009c40ca20bf3d43cdb76b8dd09e32", + "size": 2048 }, { "url": "https://claude.com/docs/claude-science/remote-compute-clusters", @@ -10778,13 +10778,6 @@ "sha256": "5d73515243dff96d0d56afc136c26498a95b9184a19ef786289518dc236b1878", "size": 8202 }, - { - "url": "https://claude.com/docs/claude-science/run-on-windows", - "status": "success", - "path": "claude/claude-science/run-on-windows.md", - "sha256": "66919ba8968a84fefb257a75e09d49e8911cf758c29f01adf8fe5d0482d3aa0f", - "size": 6534 - }, { "url": "https://claude.com/docs/claude-science/the-reviewer", "status": "success", @@ -10803,15 +10796,15 @@ "url": "https://claude.com/docs/claude-tag/admins/add-connections", "status": "success", "path": "claude/claude-tag/admins/add-connections.md", - "sha256": "39f2c2d0a189a85f836d5dda3168f32320aa60834d76d725b92b76eea00e46ed", - "size": 30804 + "sha256": "62c678414d8281237e93e9fbad83ba9dd5948448d279e12bc2cd2b4824eb1935", + "size": 32039 }, { "url": "https://claude.com/docs/claude-tag/admins/attach-to-scope", "status": "success", "path": "claude/claude-tag/admins/attach-to-scope.md", - "sha256": "c439f94b654066656fca2281ae0001dc1bc8e172312a72de0f22250fcacc198d", - "size": 17947 + "sha256": "ce6d35cb6d4f51a5d5f470a857ac61f1d9ce144969ac5e725f04cc40acc02f77", + "size": 18063 }, { "url": "https://claude.com/docs/claude-tag/admins/attribute-costs", @@ -10831,8 +10824,8 @@ "url": "https://claude.com/docs/claude-tag/admins/configure-github", "status": "success", "path": "claude/claude-tag/admins/configure-github.md", - "sha256": "8dabb5a1a42e90d0849d19a7339b0bd4fe0e4ad33e6afc4c2b1c016cef1939a9", - "size": 14387 + "sha256": "8340669f3c6e45c3a09a9faa65f92792b385fbe5110d13565f86de40af236a92", + "size": 14686 }, { "url": "https://claude.com/docs/claude-tag/admins/configure-gitlab", @@ -10866,8 +10859,8 @@ "url": "https://claude.com/docs/claude-tag/admins/connections/custom", "status": "success", "path": "claude/claude-tag/admins/connections/custom.md", - "sha256": "8ceef9ca857509c179454ba1bf7b51716a425e698e56b2020daf958b06647221", - "size": 13648 + "sha256": "1c12dc80f4c9a8bc41c61d577d864ef86bf61038e01acf0c7a18585307d8bb1d", + "size": 14139 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/datadog", @@ -10894,8 +10887,8 @@ "url": "https://claude.com/docs/claude-tag/admins/connections/google", "status": "success", "path": "claude/claude-tag/admins/connections/google.md", - "sha256": "1569257eba12e8146e06106ff53068b1cd6e37db590228fcf1be6b0019b9e57e", - "size": 6372 + "sha256": "bc589cd61fc8f2d1ca16ee90052d48cb9e2144b9c79b3696c664ecdac58646fa", + "size": 6578 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/hubspot", @@ -10971,8 +10964,8 @@ "url": "https://claude.com/docs/claude-tag/admins/customize", "status": "success", "path": "claude/claude-tag/admins/customize.md", - "sha256": "6ee412fcba68e65fc83cf639edbca379d661ff7b1819c731a2ea51ce97ae4039", - "size": 23006 + "sha256": "bc96e02137a898cf124aad39fa1b844b54a6a8bffd3b7ccf17ed13a63f42161b", + "size": 23952 }, { "url": "https://claude.com/docs/claude-tag/admins/federated-access/authorization-server", @@ -11055,22 +11048,22 @@ "url": "https://claude.com/docs/claude-tag/admins/restrict-access", "status": "success", "path": "claude/claude-tag/admins/restrict-access.md", - "sha256": "7e6add5b2e33b2e9ecececd2e7a762406745356c1f72be05e8e4ade7a72a5b4e", - "size": 39522 + "sha256": "b487de282ba0a5c2379637bc810b4279fc447f1b9d16798de770d0fcd6d01b31", + "size": 44352 }, { "url": "https://claude.com/docs/claude-tag/admins/set-spend-limit", "status": "success", "path": "claude/claude-tag/admins/set-spend-limit.md", - "sha256": "526c3786c1c0cdf913c6163f85e84a6487faf5f228d7af5b57d24b38829b4cd5", - "size": 9711 + "sha256": "5f5d06f89d948569e9647a36e261af957fbc57f72742f2521126de53bc669e43", + "size": 10262 }, { "url": "https://claude.com/docs/claude-tag/admins/setup-overview", "status": "success", "path": "claude/claude-tag/admins/setup-overview.md", - "sha256": "02ffce8a4bece29f8319f7e5a679cc8e8578af38d982801cbc7cd1f2ec53906a", - "size": 29471 + "sha256": "61991f89ad5c972ee0d8276e76813bad19bb64f2c7aca95c3f269a30f7cb3da4", + "size": 30852 }, { "url": "https://claude.com/docs/claude-tag/admins/skills-repo", @@ -11083,29 +11076,29 @@ "url": "https://claude.com/docs/claude-tag/admins/troubleshooting", "status": "success", "path": "claude/claude-tag/admins/troubleshooting.md", - "sha256": "b2f16fb364e77e2c79231602ef737239c21ec0d066a348d41d609e21b3219ea5", - "size": 60430 + "sha256": "78e79e91eb29a2657d1bb05ac96dd0986d5904b2f9e50ac2c95b349dd325f79c", + "size": 62778 }, { "url": "https://claude.com/docs/claude-tag/admins/workspaces", "status": "success", "path": "claude/claude-tag/admins/workspaces.md", - "sha256": "ab448909c79fc70243e5c59444b43e5e5144ddbff5d93e39e3ca9afe4002c079", + "sha256": "af93b4eef91c296962bbc88b326de0bdb17115406b8ad4a838eadc638cdf6b50", "size": 13484 }, { "url": "https://claude.com/docs/claude-tag/concepts/agent-identity", "status": "success", "path": "claude/claude-tag/concepts/agent-identity.md", - "sha256": "457664e164ee0134263a0749eafcde3022f30b1eaf668789865d31db3a8668eb", - "size": 17802 + "sha256": "275b35272fc6fbaf073fd607847ced477418d88e7135ec972cc5892e5bc2111c", + "size": 19463 }, { "url": "https://claude.com/docs/claude-tag/concepts/data-lifecycle", "status": "success", "path": "claude/claude-tag/concepts/data-lifecycle.md", - "sha256": "d0cbfa9f78c9ea8482ca19a2e214510663e3402239d91f77a0fb046974c67f26", - "size": 33564 + "sha256": "f5904458f003e1d3b75932239e1651b51cbb63bca448666ed16bf69d73241e69", + "size": 33640 }, { "url": "https://claude.com/docs/claude-tag/concepts/for-claude-code-users", @@ -11118,36 +11111,43 @@ "url": "https://claude.com/docs/claude-tag/concepts/glossary", "status": "success", "path": "claude/claude-tag/concepts/glossary.md", - "sha256": "564fae76e86403f13934a0607d52a5bf4cf4fe3a9a7830af78abc078e1a38f1b", - "size": 6985 + "sha256": "df92b16a11df6794637f25359d4656c045a83ec0db189ed08c46e5185066fed4", + "size": 7336 }, { "url": "https://claude.com/docs/claude-tag/concepts/how-it-works", "status": "success", "path": "claude/claude-tag/concepts/how-it-works.md", - "sha256": "2ba6874ae5601d56b6a125e2de6805b0a6bb1dda6c247f8bb6cd1b83baef4084", - "size": 30875 + "sha256": "f18cea7c80853666136c318c48bc6197aa544a0ba4e48ed026323c813338f122", + "size": 31287 + }, + { + "url": "https://claude.com/docs/claude-tag/concepts/personal-connectors", + "status": "success", + "path": "claude/claude-tag/concepts/personal-connectors.md", + "sha256": "c3e8da9e9ffea2fd9bfeb6a81cd11377e0f78d8af06ea7ba39ff78fc98a8196d", + "size": 5839 }, { "url": "https://claude.com/docs/claude-tag/concepts/security-and-data", "status": "success", "path": "claude/claude-tag/concepts/security-and-data.md", - "sha256": "9581958738c6497a764bfd2a2a84b9f0e017183bc9c15e9a14dbad9f656bb2a9", - "size": 15452 + "sha256": "6d66a104a59e26c7a0191653c2130f136365c69e9ad84e677575b608c4a409ac", + "size": 17636 }, { "url": "https://claude.com/docs/claude-tag/concepts/settings-map", "status": "success", "path": "claude/claude-tag/concepts/settings-map.md", - "sha256": "067d70ebb8bf97f6e8506425664747ac8d8f563619c3314a25e265e962b38b70", - "size": 11436 + "sha256": "ee3ce676dc4c44401920ff2532e0d69091904f5d38b72149a50ef50e0b6c8a87", + "size": 12215 }, { "url": "https://claude.com/docs/claude-tag/overview", "status": "success", "path": "claude/claude-tag/overview.md", - "sha256": "ccab02d98716fcbadca57d26f756c0ad6751f5fbe17aa16e74ce6360afbbdafc", - "size": 15862 + "sha256": "7455c69fbe891dd7787472dcefefd0aaccbfa31408521679944e5ed73c55104b", + "size": 16244 }, { "url": "https://claude.com/docs/claude-tag/users/commands", @@ -11160,8 +11160,8 @@ "url": "https://claude.com/docs/claude-tag/users/getting-started", "status": "success", "path": "claude/claude-tag/users/getting-started.md", - "sha256": "018d6facac93302dfddec1df3b7d1439941f5d831200b79eca0fef491fb61a14", - "size": 14571 + "sha256": "fef468e8734898c8484189e64bbbcd6a9abfca218c8af7bdb3fa78bccbb2677e", + "size": 14740 }, { "url": "https://claude.com/docs/claude-tag/users/good-habits", @@ -11188,8 +11188,8 @@ "url": "https://claude.com/docs/claude-tag/users/proactivity", "status": "success", "path": "claude/claude-tag/users/proactivity.md", - "sha256": "c3db30585ebb66b48b64bceb63383cc2e8a1938ef1035f8e30da32dbf24e4a7f", - "size": 7809 + "sha256": "3ca4e4d9a7f215d9b3a7ec46ab5c563526842cdb9c4d6ba588010a8fb769afa7", + "size": 8211 }, { "url": "https://claude.com/docs/claude-tag/users/prompt-library", @@ -11202,8 +11202,8 @@ "url": "https://claude.com/docs/claude-tag/users/troubleshooting", "status": "success", "path": "claude/claude-tag/users/troubleshooting.md", - "sha256": "1fb014fb93aeecd96244179511b29b9703137c4eb0af82dc2610e989f3ec326a", - "size": 34650 + "sha256": "81c935f106668b743170e9bdb9aa2b7016bbe9475316de4c3087cf87823c288d", + "size": 36322 }, { "url": "https://claude.com/docs/claude-tag/users/use-cases", @@ -11251,8 +11251,8 @@ "url": "https://claude.com/docs/claude-tag/users/use-cases/marketing-team", "status": "success", "path": "claude/claude-tag/users/use-cases/marketing-team.md", - "sha256": "1d4e1334a192c4f1169406eafd4481ac175cacc150cb65264eb7b46070d1e07b", - "size": 7848 + "sha256": "760c0b1a1e993a14640ffd2fc87d13cf6a827ce03513dd4060e10b85060e91ec", + "size": 7849 }, { "url": "https://claude.com/docs/claude-tag/users/use-cases/pull-deal-state", @@ -11265,8 +11265,8 @@ "url": "https://claude.com/docs/claude-tag/users/use-cases/review-documents", "status": "success", "path": "claude/claude-tag/users/use-cases/review-documents.md", - "sha256": "9b5a4305878fe474d0c257c36c9d97533884c66c05588ab2d1ac5b33cc2bc408", - "size": 5207 + "sha256": "21a521a2cdfa054520779ed87a3ea1aa7f436d886023837e4a75dd21a5c81c99", + "size": 5208 }, { "url": "https://claude.com/docs/claude-tag/users/use-cases/track-projects", @@ -11300,8 +11300,8 @@ "url": "https://claude.com/docs/claude-tag/users/use-cases/your-own-channel", "status": "success", "path": "claude/claude-tag/users/use-cases/your-own-channel.md", - "sha256": "02227936084a6bf0fb29bb7746db03f48bc26ef9f83d486b7645e97f007bcdea", - "size": 9411 + "sha256": "1ffc11a620aaed169d6249260a8a49b8647890eabd4e6f76822b1a23dcaf375f", + "size": 9422 }, { "url": "https://claude.com/docs/claude-tag/users/when-claude-responds", @@ -11573,8 +11573,8 @@ "url": "https://claude.com/docs/cowork/changelog", "status": "success", "path": "claude/cowork/changelog.md", - "sha256": "00f25da1c8e56529133bcd25c1149f50e098f9ba84bfa9a1eaf62a05dc741796", - "size": 132264 + "sha256": "6d64e7c71e2d275a24158faaf47374916014f9175950a453e239b7cbdae38a1d", + "size": 138389 }, { "url": "https://claude.com/docs/cowork/guide/dispatch", @@ -11993,8 +11993,8 @@ "url": "https://claude.com/docs/skills/how-to", "status": "success", "path": "claude/skills/how-to.md", - "sha256": "dbb70b5bea4a5dcdb2c36ccdd3b4a9c81bb9efc972b64e136ab0af6b73c047e1", - "size": 6591 + "sha256": "a3f2076331e23dd52501080c5cf644f2d0dd2f81f3fa4b7d886550ac40dfc73a", + "size": 6468 }, { "url": "https://claude.com/docs/skills/overview", @@ -12056,15 +12056,15 @@ "url": "https://claude.com/docs/third-party/claude-desktop/configuration", "status": "success", "path": "claude/third-party/claude-desktop/configuration.md", - "sha256": "dee2cc90ed02ef4b491f39b74cd56e05069772148ba6c7ca620756c447606231", - "size": 212193 + "sha256": "a98d8629b32d8e668d9331f9683863935f2ad0f517c8eeed5e227cf40d4a1706", + "size": 224320 }, { "url": "https://claude.com/docs/third-party/claude-desktop/configuration-changelog", "status": "success", "path": "claude/third-party/claude-desktop/configuration-changelog.md", - "sha256": "ed134914de1fcd107334a948db550ffd74a1cc4bb9de423f1dee0293045b4a78", - "size": 59025 + "sha256": "00270e98fd173ee5eccca71383dfb1da8dad67442cea4b0f6c8ae7c9e90e8e1a", + "size": 60788 }, { "url": "https://claude.com/docs/third-party/claude-desktop/connectors-github", @@ -12112,8 +12112,8 @@ "url": "https://claude.com/docs/third-party/claude-desktop/feature-matrix", "status": "success", "path": "claude/third-party/claude-desktop/feature-matrix.md", - "sha256": "c209b44b39dd3bdf790f924cdcb7c79fad74204081c8b8f983ac4a42b5e4a4ea", - "size": 6868 + "sha256": "dcee6f2b8c91e17191c6e465e05f2747fd8fedad1551a69778d13b5e64e3994a", + "size": 10628 }, { "url": "https://claude.com/docs/third-party/claude-desktop/foundry", @@ -12189,8 +12189,8 @@ "url": "https://claude.com/docs/third-party/claude-desktop/overview", "status": "success", "path": "claude/third-party/claude-desktop/overview.md", - "sha256": "2c94e939be00ab749934352e9084bda3907e41179dac845e6ec77c7205d2616a", - "size": 13076 + "sha256": "51099e18ef7ef9f645e422228d45c90bcc7a1e3208a4fa59676ab6fc65cc7a7f", + "size": 13141 }, { "url": "https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions", @@ -12224,15 +12224,15 @@ "url": "https://code.claude.com/docs/en/desktop-changelog", "status": "success", "path": "en/docs/claude-code/desktop-changelog.md", - "sha256": "b78f5f245773175e9751fdce6ed3a2cf535b20ee0f90d6f0c4472d8344589a2c", - "size": 101937 + "sha256": "3c585962a30144144f6f07cddbab26d1e8ab8f6272e881441abe0a1401514a09", + "size": 102084 }, { "url": "https://code.claude.com/docs/en/slash-commands", "status": "success", "path": "en/docs/claude-code/slash-commands.md", - "sha256": "40fbfd630b33a244350a6bf1b611617f86eacf36c9e27dfb71e8d7a96b687012", - "size": 109862 + "sha256": "6cb66d6c1ab6b06eda6dd6854f4133901c8daef8fc447f59fe65ac4038ec8043", + "size": 110571 }, { "url": "https://code.claude.com/docs/en/web-scheduled-tasks", @@ -21110,6 +21110,13 @@ "sha256": "b88dbf2daabb280c54c4d82d924a3f686b88a8b368bd1ef32a504c232ac60b90", "size": 72861 }, + { + "url": "https://claude.com/docs/claude-science/run-on-windows", + "status": "success", + "path": "claude/claude-science/run-on-windows.md", + "sha256": "66919ba8968a84fefb257a75e09d49e8911cf758c29f01adf8fe5d0482d3aa0f", + "size": 6534 + }, { "url": "https://raw.githubusercontent.com/anthropics/claude-cookbooks/main/.claude/agents/code-reviewer.md", "status": "success", @@ -22528,8 +22535,8 @@ "url": "https://raw.githubusercontent.com/anthropics/skills/main/skills/claude-api/SKILL.md", "status": "success", "path": "github/skills/skills/claude-api/SKILL.md", - "sha256": "001abd67b06d9aa18f7f7c1a221200a51394f2cfb45cb583f4931bf77fd4b70f", - "size": 85701 + "sha256": "8227f0d1192594bfea04df6c9f1d9d727dd300c3f4b2c42d315dd9fe58b1a421", + "size": 86198 }, { "url": "https://raw.githubusercontent.com/anthropics/skills/main/skills/claude-api/csharp/claude-api/README.md", @@ -22787,8 +22794,8 @@ "url": "https://raw.githubusercontent.com/anthropics/skills/main/skills/claude-api/shared/anthropic-cli.md", "status": "success", "path": "github/skills/skills/claude-api/shared/anthropic-cli.md", - "sha256": "5ba2ebdda4b101bb890c6ee0f2384a81ec78b666de6ce3f37a690e12cf8fc941", - "size": 16128 + "sha256": "4f8b4319fc096b48f311eff782a3b818a872933852ecb3e811157352cb618210", + "size": 18162 }, { "url": "https://raw.githubusercontent.com/anthropics/skills/main/skills/claude-api/shared/claude-platform-on-aws.md", @@ -22815,8 +22822,8 @@ "url": "https://raw.githubusercontent.com/anthropics/skills/main/skills/claude-api/shared/live-sources.md", "status": "success", "path": "github/skills/skills/claude-api/shared/live-sources.md", - "sha256": "c2c6b9c517d36f2101bf8a7bf8718cb7ae2f274c59ae36c2207a3aa10281a69b", - "size": 22226 + "sha256": "75aef376b170d5fb62d762f7287bf2bf8d2d7589f26323ad9765a3d9625b1022", + "size": 22559 }, { "url": "https://raw.githubusercontent.com/anthropics/skills/main/skills/claude-api/shared/managed-agents-api-reference.md", @@ -22829,8 +22836,8 @@ "url": "https://raw.githubusercontent.com/anthropics/skills/main/skills/claude-api/shared/managed-agents-client-patterns.md", "status": "success", "path": "github/skills/skills/claude-api/shared/managed-agents-client-patterns.md", - "sha256": "38a7de63f40a365ebc30c9e42bd7e4295f4d43b4ac2acb8f36e37d6e9d1b4854", - "size": 11286 + "sha256": "f3d752675e225892f97da4d7bffbefd430841d6655b2c53a926f212121759d55", + "size": 12043 }, { "url": "https://raw.githubusercontent.com/anthropics/skills/main/skills/claude-api/shared/managed-agents-core.md", @@ -22850,8 +22857,8 @@ "url": "https://raw.githubusercontent.com/anthropics/skills/main/skills/claude-api/shared/managed-agents-events.md", "status": "success", "path": "github/skills/skills/claude-api/shared/managed-agents-events.md", - "sha256": "e57d755a28830fc3684d0a4bdc4d6347038790a43e2540ebc77f6c8b88137716", - "size": 24645 + "sha256": "cf449696835d8188b6ec27f90a24c517b47756e3f6a5f8f957760ac2a060473e", + "size": 24955 }, { "url": "https://raw.githubusercontent.com/anthropics/skills/main/skills/claude-api/shared/managed-agents-memory.md", @@ -22864,8 +22871,8 @@ "url": "https://raw.githubusercontent.com/anthropics/skills/main/skills/claude-api/shared/managed-agents-multiagent.md", "status": "success", "path": "github/skills/skills/claude-api/shared/managed-agents-multiagent.md", - "sha256": "0e8ad0f10ad2fda9602bd381778bd3ea7674307d0bccc52cb7c9611fb6504ad8", - "size": 25549 + "sha256": "b937599363615432ba9f69c3cc53616d2e7844907fc5a3f744355a55b9d38a1c", + "size": 26194 }, { "url": "https://raw.githubusercontent.com/anthropics/skills/main/skills/claude-api/shared/managed-agents-onboarding.md", @@ -22906,8 +22913,8 @@ "url": "https://raw.githubusercontent.com/anthropics/skills/main/skills/claude-api/shared/managed-agents-tools.md", "status": "success", "path": "github/skills/skills/claude-api/shared/managed-agents-tools.md", - "sha256": "183a7d899a00f051aa2a6337c6e825ea0db00ee5b35913f1c425679796727748", - "size": 29792 + "sha256": "3238b1e2c76a31af87a2ed90a3dba5d0293a9682001fbc8c7c23947ab0bb6470", + "size": 35652 }, { "url": "https://raw.githubusercontent.com/anthropics/skills/main/skills/claude-api/shared/managed-agents-webhooks.md", @@ -27054,840 +27061,835 @@ "size": 170 } ], - "failures": [ + "failures": [], + "dead": [ { - "url": "https://platform.claude.com/docs/en/api/admin", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization.md" + "url": "https://support.claude.com/en/articles/12650343-use-claude-for-excel", + "reason": "moved -> https://claude.com/docs/office-agents/excel" }, { - "url": "https://platform.claude.com/docs/en/api/admin/service_accounts", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/service_accounts.md" + "url": "https://support.claude.com/en/articles/13521390-use-claude-for-powerpoint", + "reason": "moved -> https://claude.com/docs/office-agents/powerpoint" }, { - "url": "https://platform.claude.com/docs/en/api/admin/analytics", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/analytics.md" + "url": "https://support.claude.com/en/articles/13892150-work-across-microsoft-365-apps", + "reason": "moved -> https://claude.com/docs/office-agents/work-across-apps" }, { - "url": "https://platform.claude.com/docs/en/api/admin/rbac_groups", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/rbac_groups.md" + "url": "https://support.claude.com/en/articles/13945233-use-claude-for-microsoft-365-with-third-party-platforms", + "reason": "moved -> https://claude.com/docs/office-agents/third-party-platforms" }, { - "url": "https://platform.claude.com/docs/en/api/admin/external_keys", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/external_keys.md" + "url": "https://support.claude.com/en/articles/14465370-use-claude-for-word", + "reason": "moved -> https://claude.com/docs/office-agents/word" }, { - "url": "https://platform.claude.com/docs/en/api/admin/cost_report", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/cost_report.md" + "url": "https://support.claude.com/en/articles/14479591-use-dictation-in-office-agents", + "reason": "moved -> https://claude.com/docs/office-agents/dictation" }, { - "url": "https://platform.claude.com/docs/en/api/admin/invites", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/invites.md" + "url": "https://support.claude.com/en/articles/14855664-use-claude-for-outlook", + "reason": "moved -> https://claude.com/docs/office-agents/outlook" }, { - "url": "https://platform.claude.com/docs/en/api/admin/api_keys", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/api_keys.md" + "url": "https://platform.claude.com/docs/en/agent-sdk/stop-reasons", + "reason": "moved -> https://code.claude.com/docs/en/agent-sdk" }, { - "url": "https://platform.claude.com/docs/en/api/admin/users", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/users.md" + "url": "https://platform.claude.com/docs/en/api/admin", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization" }, { - "url": "https://platform.claude.com/docs/en/api/admin/rate_limits", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/rate_limits.md" + "url": "https://platform.claude.com/docs/en/agents-and-tools/claude-for-sheets", + "reason": "HTTP 404" }, { - "url": "https://platform.claude.com/docs/en/api/admin/federation_issuers", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/federation/issuers.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/ethical-dilemma-navigator", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/federation_rules", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/federation/rules.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/mindfulness-mentor", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/organizations", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/alliteration-alchemist", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/rbac_roles", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/rbac_roles.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/library", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/csv-converter", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/workspaces", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/workspaces.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/pun-dit", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/spend_limits", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/spend_limits.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/sci-fi-scenario-simulator", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/usage_report", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/usage_report.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/neologism-creator", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/rate_limits/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/rate_limits/list.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/spreadsheet-sorcerer", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/federation_rules/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/federation/rules/list.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/motivational-muse", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/federation_rules/create", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/federation/rules/create.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/trivia-generator", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/federation_rules/update", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/federation/rules/update.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/cite-your-sources", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/federation_rules/retrieve", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/federation/rules/retrieve.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/riddle-me-this", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/federation_rules/archive", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/federation/rules/archive.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/efficiency-estimator", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/federation_rules/workspaces", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/federation/rules/workspaces.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/direction-decoder", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/workspaces/service_accounts", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/workspaces/service_accounts.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/latex-legend", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/workspaces/members", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/workspaces/members.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/simile-savant", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/workspaces/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/workspaces/list.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/socratic-sage", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/workspaces/create", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/workspaces/create.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/tongue-twister", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/workspaces/rate_limits", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/workspaces/rate_limits.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/product-naming-pro", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/workspaces/update", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/workspaces/update.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/tweet-tone-detector", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/workspaces/retrieve", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/workspaces/retrieve.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/code-clarifier", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/workspaces/archive", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/workspaces/archive.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/pii-purifier", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/invites/delete", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/invites/delete.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/polyglot-superpowers", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/invites/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/invites/list.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/master-moderator", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/invites/create", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/invites/create.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/memo-maestro", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/invites/retrieve", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/invites/retrieve.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/python-bug-buster", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/rbac_roles/permissions", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/rbac_roles/permissions.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/storytelling-sidekick", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/rbac_roles/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/rbac_roles/list.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/email-extractor", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/rbac_roles/retrieve", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/rbac_roles/retrieve.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/google-apps-scripter", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/users/delete", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/users/remove.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/vr-fitness-innovator", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/users/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/users/list.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/dream-interpreter", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/users/update", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/users/update.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/adaptive-editor", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/users/retrieve", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/users/retrieve.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/lesson-planner", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/organizations/me", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/retrieve.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/mood-colorizer", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/usage_report/retrieve_messages", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/usage_report/retrieve_messages.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/prose-polisher", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/usage_report/retrieve_claude_code", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/usage_report/retrieve_claude_code.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/grammar-genie", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/external_keys/validate", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/external_keys/validate.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/data-organizer", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/external_keys/delete", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/external_keys/delete.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/excel-formula-expert", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/external_keys/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/external_keys/list.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/corporate-clairvoyant", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/external_keys/create", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/external_keys/create.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/interview-question-crafter", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/external_keys/update", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/external_keys/update.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/emoji-encoder", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/external_keys/retrieve", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/external_keys/retrieve.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/babels-broadcasts", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels/reveal_token", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/reveal_token.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/grading-guru", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels/rotate_token", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/rotate_token.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/futuristic-fashion-advisor", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/list.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/hal-the-humorous-helper", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels/retrieve", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/retrieve.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/portmanteau-poet", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels/archive", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/archive.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/second-grade-simplifier", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels/tunnel_certificates", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/tunnel_certificates.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/brand-builder", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/federation_issuers/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/federation/issuers/list.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/alien-anthropologist", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/federation_issuers/create", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/federation/issuers/create.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/git-gud", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/federation_issuers/update", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/federation/issuers/update.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/sql-sorcerer", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/federation_issuers/retrieve", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/federation/issuers/retrieve.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/airport-code-analyst", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/federation_issuers/archive", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/federation/issuers/archive.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/culinary-creator", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/cost_report/retrieve", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/cost_report/retrieve.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/function-fabricator", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/rbac_groups/delete", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/delete.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/idiom-illuminator", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/rbac_groups/members", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/members.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/code-consultant", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/rbac_groups/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/list.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/career-coach", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/rbac_groups/create", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/create.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/time-travel-consultant", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/rbac_groups/update", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/update.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/meeting-scribe", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/rbac_groups/retrieve", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/retrieve.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/philosophical-musings", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/analytics/connectors", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/analytics/connectors.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/perspectives-ponderer", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/analytics/retrieve_summaries", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/analytics/retrieve_summaries.md" + "url": "https://platform.claude.com/docs/en/resources/prompt-library/review-classifier", + "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" }, { - "url": "https://platform.claude.com/docs/en/api/admin/analytics/artifacts", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/analytics/artifacts.md" + "url": "https://code.claude.com/docs/en/sdk/migration-guide", + "reason": "moved -> https://code.claude.com/docs/en/agent-sdk" }, { - "url": "https://platform.claude.com/docs/en/api/admin/analytics/users", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/analytics/users.md" + "url": "https://platform.claude.com/docs/en/api/admin/service_accounts", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/service_accounts" }, { - "url": "https://platform.claude.com/docs/en/api/admin/analytics/usage", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/analytics/usage.md" + "url": "https://platform.claude.com/docs/en/api/admin/analytics", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/analytics" }, { - "url": "https://platform.claude.com/docs/en/api/admin/analytics/plugins", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/analytics/plugins.md" + "url": "https://platform.claude.com/docs/en/api/admin/rbac_groups", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/rbac_groups" }, { - "url": "https://platform.claude.com/docs/en/api/admin/analytics/cost", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/analytics/cost.md" + "url": "https://platform.claude.com/docs/en/api/admin/external_keys", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/external_keys" }, { - "url": "https://platform.claude.com/docs/en/api/admin/analytics/skills", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/analytics/skills.md" + "url": "https://platform.claude.com/docs/en/api/admin/cost_report", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/cost_report" }, { - "url": "https://platform.claude.com/docs/en/api/admin/analytics/chat_projects", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/analytics/chat_projects.md" + "url": "https://platform.claude.com/docs/en/api/admin/invites", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/invites" }, { - "url": "https://platform.claude.com/docs/en/api/admin/service_accounts/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/service_accounts/list.md" + "url": "https://platform.claude.com/docs/en/api/admin/api_keys", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/api_keys" }, { - "url": "https://platform.claude.com/docs/en/api/admin/service_accounts/create", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/service_accounts/create.md" + "url": "https://platform.claude.com/docs/en/api/admin/users", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/users" }, { - "url": "https://platform.claude.com/docs/en/api/admin/service_accounts/update", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/service_accounts/update.md" + "url": "https://platform.claude.com/docs/en/api/admin/rate_limits", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/rate_limits" }, { - "url": "https://platform.claude.com/docs/en/api/admin/service_accounts/retrieve", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/service_accounts/retrieve.md" + "url": "https://platform.claude.com/docs/en/api/admin/federation_issuers", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/federation/issuers" }, { - "url": "https://platform.claude.com/docs/en/api/admin/service_accounts/archive", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/service_accounts/archive.md" + "url": "https://platform.claude.com/docs/en/api/admin/federation_rules", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/federation/rules" }, { - "url": "https://platform.claude.com/docs/en/api/admin/service_accounts/workspaces", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/service_accounts/workspaces.md" + "url": "https://platform.claude.com/docs/en/api/admin/organizations", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization" }, { - "url": "https://platform.claude.com/docs/en/api/admin/spend_limits/delete", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/spend_limits/delete.md" + "url": "https://platform.claude.com/docs/en/api/admin/rbac_roles", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/rbac_roles" }, { - "url": "https://platform.claude.com/docs/en/api/admin/spend_limits/increase_requests", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/spend_limits/increase_requests.md" + "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels" }, { - "url": "https://platform.claude.com/docs/en/api/admin/spend_limits/list_effective", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/spend_limits/list_effective.md" + "url": "https://platform.claude.com/docs/en/api/admin/workspaces", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/workspaces" }, { - "url": "https://platform.claude.com/docs/en/api/admin/spend_limits/create", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/spend_limits/create.md" + "url": "https://platform.claude.com/docs/en/api/admin/spend_limits", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/spend_limits" }, { - "url": "https://platform.claude.com/docs/en/api/admin/spend_limits/retrieve", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/spend_limits/retrieve.md" + "url": "https://platform.claude.com/docs/en/api/admin/usage_report", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/usage_report" }, { - "url": "https://platform.claude.com/docs/en/api/admin/api_keys/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/api_keys/list.md" + "url": "https://platform.claude.com/docs/en/api/sdks/cli", + "reason": "HTTP 404" }, { - "url": "https://platform.claude.com/docs/en/api/admin/api_keys/update", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/api_keys/update.md" + "url": "https://platform.claude.com/docs/en/api/admin/rate_limits/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/rate_limits/list" }, { - "url": "https://platform.claude.com/docs/en/api/admin/api_keys/retrieve", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/api_keys/retrieve.md" + "url": "https://platform.claude.com/docs/en/api/admin/federation_rules/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/federation/rules/list" }, { - "url": "https://platform.claude.com/docs/en/api/admin/spend_limits/increase_requests/approve", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/spend_limits/increase_requests/approve.md" + "url": "https://platform.claude.com/docs/en/api/admin/federation_rules/create", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/federation/rules/create" }, { - "url": "https://platform.claude.com/docs/en/api/admin/spend_limits/increase_requests/deny", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/spend_limits/increase_requests/deny.md" + "url": "https://platform.claude.com/docs/en/api/admin/federation_rules/update", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/federation/rules/update" }, { - "url": "https://platform.claude.com/docs/en/api/admin/spend_limits/increase_requests/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/spend_limits/increase_requests/list.md" + "url": "https://platform.claude.com/docs/en/api/admin/federation_rules/retrieve", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/federation/rules/retrieve" }, { - "url": "https://platform.claude.com/docs/en/api/admin/spend_limits/increase_requests/retrieve", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/spend_limits/increase_requests/retrieve.md" + "url": "https://platform.claude.com/docs/en/api/admin/federation_rules/archive", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/federation/rules/archive" }, { - "url": "https://platform.claude.com/docs/en/api/admin/service_accounts/workspaces/delete", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/service_accounts/workspaces/remove.md" + "url": "https://platform.claude.com/docs/en/api/admin/federation_rules/workspaces", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/federation/rules/workspaces" }, { - "url": "https://platform.claude.com/docs/en/api/admin/service_accounts/workspaces/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/service_accounts/workspaces/list.md" + "url": "https://platform.claude.com/docs/en/api/admin/workspaces/service_accounts", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/workspaces/service_accounts" }, { - "url": "https://platform.claude.com/docs/en/api/admin/service_accounts/workspaces/create", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/service_accounts/workspaces/add.md" + "url": "https://platform.claude.com/docs/en/api/admin/workspaces/members", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/workspaces/members" }, { - "url": "https://platform.claude.com/docs/en/api/admin/analytics/plugins/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/analytics/plugins/list.md" + "url": "https://platform.claude.com/docs/en/api/admin/workspaces/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/workspaces/list" }, { - "url": "https://platform.claude.com/docs/en/api/admin/analytics/skills/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/analytics/skills/list.md" + "url": "https://platform.claude.com/docs/en/api/admin/workspaces/create", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/workspaces/create" }, { - "url": "https://platform.claude.com/docs/en/api/admin/analytics/usage/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/analytics/usage/list.md" + "url": "https://platform.claude.com/docs/en/api/admin/workspaces/rate_limits", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/workspaces/rate_limits" }, { - "url": "https://platform.claude.com/docs/en/api/admin/analytics/usage/list_by_user", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/analytics/usage/list_by_user.md" + "url": "https://platform.claude.com/docs/en/api/admin/workspaces/update", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/workspaces/update" }, { - "url": "https://platform.claude.com/docs/en/api/admin/analytics/chat_projects/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/analytics/chat_projects/list.md" + "url": "https://platform.claude.com/docs/en/api/admin/workspaces/retrieve", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/workspaces/retrieve" }, { - "url": "https://platform.claude.com/docs/en/api/admin/analytics/artifacts/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/analytics/artifacts/list.md" + "url": "https://platform.claude.com/docs/en/api/admin/workspaces/archive", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/workspaces/archive" }, { - "url": "https://platform.claude.com/docs/en/api/admin/analytics/users/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/analytics/users/list.md" + "url": "https://platform.claude.com/docs/en/api/admin/invites/delete", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/invites/delete" }, { - "url": "https://platform.claude.com/docs/en/api/admin/analytics/cost/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/analytics/cost/list.md" + "url": "https://platform.claude.com/docs/en/api/admin/invites/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/invites/list" }, { - "url": "https://platform.claude.com/docs/en/api/admin/analytics/cost/list_by_user", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/analytics/cost/list_by_user.md" + "url": "https://platform.claude.com/docs/en/api/admin/invites/create", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/invites/create" }, { - "url": "https://platform.claude.com/docs/en/api/admin/analytics/connectors/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/analytics/connectors/list.md" + "url": "https://platform.claude.com/docs/en/api/admin/invites/retrieve", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/invites/retrieve" }, { - "url": "https://platform.claude.com/docs/en/api/admin/rbac_groups/members/delete", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/members/delete.md" + "url": "https://platform.claude.com/docs/en/api/admin/rbac_roles/permissions", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/rbac_roles/permissions" }, { - "url": "https://platform.claude.com/docs/en/api/admin/rbac_groups/members/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/members/list.md" + "url": "https://platform.claude.com/docs/en/api/admin/rbac_roles/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/rbac_roles/list" }, { - "url": "https://platform.claude.com/docs/en/api/admin/rbac_groups/members/create", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/members/create.md" + "url": "https://platform.claude.com/docs/en/api/admin/rbac_roles/retrieve", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/rbac_roles/retrieve" }, { - "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels/tunnel_certificates/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/tunnel_certificates/list.md" + "url": "https://platform.claude.com/docs/en/api/admin/users/delete", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/users/remove" }, { - "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels/tunnel_certificates/create", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/tunnel_certificates/create.md" + "url": "https://platform.claude.com/docs/en/api/admin/users/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/users/list" }, { - "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels/tunnel_certificates/retrieve", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/tunnel_certificates/retrieve.md" + "url": "https://platform.claude.com/docs/en/api/admin/users/update", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/users/update" }, { - "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels/tunnel_certificates/archive", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/tunnel_certificates/archive.md" + "url": "https://platform.claude.com/docs/en/api/admin/users/retrieve", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/users/retrieve" }, { - "url": "https://platform.claude.com/docs/en/api/admin/rbac_roles/permissions/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/rbac_roles/permissions/list.md" + "url": "https://platform.claude.com/docs/en/api/admin/organizations/me", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/retrieve" }, { - "url": "https://platform.claude.com/docs/en/api/admin/workspaces/rate_limits/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/workspaces/rate_limits/list.md" + "url": "https://platform.claude.com/docs/en/api/admin/usage_report/retrieve_messages", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/usage_report/retrieve_messages" }, { - "url": "https://platform.claude.com/docs/en/api/admin/workspaces/service_accounts/delete", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/workspaces/service_accounts/remove.md" + "url": "https://platform.claude.com/docs/en/api/admin/usage_report/retrieve_claude_code", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/usage_report/retrieve_claude_code" }, { - "url": "https://platform.claude.com/docs/en/api/admin/workspaces/service_accounts/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/workspaces/service_accounts/list.md" + "url": "https://platform.claude.com/docs/en/api/admin/external_keys/validate", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/external_keys/validate" }, { - "url": "https://platform.claude.com/docs/en/api/admin/workspaces/service_accounts/create", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/workspaces/service_accounts/add.md" + "url": "https://platform.claude.com/docs/en/api/admin/external_keys/delete", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/external_keys/delete" }, { - "url": "https://platform.claude.com/docs/en/api/admin/workspaces/service_accounts/update", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/workspaces/service_accounts/update.md" + "url": "https://platform.claude.com/docs/en/api/admin/external_keys/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/external_keys/list" }, { - "url": "https://platform.claude.com/docs/en/api/admin/workspaces/service_accounts/retrieve", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/workspaces/service_accounts/retrieve.md" + "url": "https://platform.claude.com/docs/en/api/admin/external_keys/create", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/external_keys/create" }, { - "url": "https://platform.claude.com/docs/en/api/admin/workspaces/members/delete", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/workspaces/members/remove.md" + "url": "https://platform.claude.com/docs/en/api/admin/external_keys/update", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/external_keys/update" }, { - "url": "https://platform.claude.com/docs/en/api/admin/workspaces/members/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/workspaces/members/list.md" + "url": "https://platform.claude.com/docs/en/api/admin/external_keys/retrieve", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/external_keys/retrieve" }, { - "url": "https://platform.claude.com/docs/en/api/admin/workspaces/members/create", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/workspaces/members/add.md" + "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels/reveal_token", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/reveal_token" }, { - "url": "https://platform.claude.com/docs/en/api/admin/workspaces/members/update", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/workspaces/members/update.md" + "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels/rotate_token", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/rotate_token" }, { - "url": "https://platform.claude.com/docs/en/api/admin/workspaces/members/retrieve", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/workspaces/members/retrieve.md" + "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/list" }, { - "url": "https://platform.claude.com/docs/en/api/admin/federation_rules/workspaces/delete", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/federation/rules/workspaces/remove.md" + "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels/retrieve", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/retrieve" }, { - "url": "https://platform.claude.com/docs/en/api/admin/federation_rules/workspaces/list", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/federation/rules/workspaces/list.md" + "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels/archive", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/archive" }, { - "url": "https://platform.claude.com/docs/en/api/admin/federation_rules/workspaces/create", - "error": "moved to https://platform.claude.com/docs/en/api/beta/organization/federation/rules/workspaces/add.md" + "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels/tunnel_certificates", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/tunnel_certificates" }, { - "url": "https://claude.com/docs/claude-science/run-on-windows-wsl", - "error": "moved to https://claude.com/docs/claude-science/run-on-windows.md" - } - ], - "dead": [ - { - "url": "https://support.claude.com/en/articles/12650343-use-claude-for-excel", - "reason": "moved -> https://claude.com/docs/office-agents/excel" + "url": "https://platform.claude.com/docs/en/api/admin/federation_issuers/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/federation/issuers/list" }, { - "url": "https://support.claude.com/en/articles/13521390-use-claude-for-powerpoint", - "reason": "moved -> https://claude.com/docs/office-agents/powerpoint" + "url": "https://platform.claude.com/docs/en/api/admin/federation_issuers/create", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/federation/issuers/create" }, { - "url": "https://support.claude.com/en/articles/13892150-work-across-microsoft-365-apps", - "reason": "moved -> https://claude.com/docs/office-agents/work-across-apps" + "url": "https://platform.claude.com/docs/en/api/admin/federation_issuers/update", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/federation/issuers/update" }, { - "url": "https://support.claude.com/en/articles/13945233-use-claude-for-microsoft-365-with-third-party-platforms", - "reason": "moved -> https://claude.com/docs/office-agents/third-party-platforms" + "url": "https://platform.claude.com/docs/en/api/admin/federation_issuers/retrieve", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/federation/issuers/retrieve" }, { - "url": "https://support.claude.com/en/articles/14465370-use-claude-for-word", - "reason": "moved -> https://claude.com/docs/office-agents/word" + "url": "https://platform.claude.com/docs/en/api/admin/federation_issuers/archive", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/federation/issuers/archive" }, { - "url": "https://support.claude.com/en/articles/14479591-use-dictation-in-office-agents", - "reason": "moved -> https://claude.com/docs/office-agents/dictation" + "url": "https://platform.claude.com/docs/en/api/admin/cost_report/retrieve", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/cost_report/retrieve" }, { - "url": "https://support.claude.com/en/articles/14855664-use-claude-for-outlook", - "reason": "moved -> https://claude.com/docs/office-agents/outlook" + "url": "https://platform.claude.com/docs/en/api/admin/rbac_groups/delete", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/delete" }, { - "url": "https://platform.claude.com/docs/en/agent-sdk/stop-reasons", - "reason": "moved -> https://code.claude.com/docs/en/agent-sdk" + "url": "https://platform.claude.com/docs/en/api/admin/rbac_groups/members", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/members" }, { - "url": "https://platform.claude.com/docs/en/agents-and-tools/claude-for-sheets", - "reason": "HTTP 404" + "url": "https://platform.claude.com/docs/en/api/admin/rbac_groups/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/list" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/ethical-dilemma-navigator", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/rbac_groups/create", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/create" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/mindfulness-mentor", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/rbac_groups/update", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/update" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/alliteration-alchemist", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/rbac_groups/retrieve", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/retrieve" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/library", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/analytics/connectors", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/analytics/connectors" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/csv-converter", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/analytics/retrieve_summaries", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/analytics/retrieve_summaries" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/pun-dit", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/analytics/artifacts", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/analytics/artifacts" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/sci-fi-scenario-simulator", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/analytics/users", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/analytics/users" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/neologism-creator", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/analytics/usage", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/analytics/usage" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/spreadsheet-sorcerer", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/analytics/plugins", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/analytics/plugins" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/motivational-muse", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/analytics/cost", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/analytics/cost" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/trivia-generator", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/analytics/skills", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/analytics/skills" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/cite-your-sources", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/analytics/chat_projects", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/analytics/chat_projects" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/riddle-me-this", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/service_accounts/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/service_accounts/list" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/efficiency-estimator", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/service_accounts/create", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/service_accounts/create" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/direction-decoder", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/service_accounts/update", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/service_accounts/update" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/latex-legend", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/service_accounts/retrieve", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/service_accounts/retrieve" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/simile-savant", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/service_accounts/archive", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/service_accounts/archive" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/socratic-sage", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/service_accounts/workspaces", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/service_accounts/workspaces" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/tongue-twister", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/spend_limits/delete", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/spend_limits/delete" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/product-naming-pro", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/spend_limits/increase_requests", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/spend_limits/increase_requests" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/tweet-tone-detector", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/spend_limits/list_effective", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/spend_limits/list_effective" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/code-clarifier", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/spend_limits/create", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/spend_limits/create" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/pii-purifier", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/spend_limits/retrieve", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/spend_limits/retrieve" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/polyglot-superpowers", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/api_keys/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/api_keys/list" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/master-moderator", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/api_keys/update", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/api_keys/update" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/memo-maestro", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/api_keys/retrieve", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/api_keys/retrieve" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/python-bug-buster", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/spend_limits/increase_requests/approve", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/spend_limits/increase_requests/approve" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/storytelling-sidekick", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/spend_limits/increase_requests/deny", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/spend_limits/increase_requests/deny" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/email-extractor", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/spend_limits/increase_requests/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/spend_limits/increase_requests/list" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/google-apps-scripter", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/spend_limits/increase_requests/retrieve", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/spend_limits/increase_requests/retrieve" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/vr-fitness-innovator", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/service_accounts/workspaces/delete", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/service_accounts/workspaces/remove" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/dream-interpreter", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/service_accounts/workspaces/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/service_accounts/workspaces/list" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/adaptive-editor", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/service_accounts/workspaces/create", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/service_accounts/workspaces/add" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/lesson-planner", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/analytics/plugins/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/analytics/plugins/list" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/mood-colorizer", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/analytics/skills/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/analytics/skills/list" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/prose-polisher", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/analytics/usage/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/analytics/usage/list" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/grammar-genie", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/analytics/usage/list_by_user", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/analytics/usage/list_by_user" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/data-organizer", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/analytics/chat_projects/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/analytics/chat_projects/list" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/excel-formula-expert", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/analytics/artifacts/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/analytics/artifacts/list" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/corporate-clairvoyant", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/analytics/users/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/analytics/users/list" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/interview-question-crafter", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/analytics/cost/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/analytics/cost/list" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/emoji-encoder", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/analytics/cost/list_by_user", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/analytics/cost/list_by_user" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/babels-broadcasts", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/analytics/connectors/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/analytics/connectors/list" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/grading-guru", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/rbac_groups/members/delete", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/members/delete" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/futuristic-fashion-advisor", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/rbac_groups/members/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/members/list" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/hal-the-humorous-helper", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/rbac_groups/members/create", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/rbac_groups/members/create" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/portmanteau-poet", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels/tunnel_certificates/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/tunnel_certificates/list" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/second-grade-simplifier", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels/tunnel_certificates/create", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/tunnel_certificates/create" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/brand-builder", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels/tunnel_certificates/retrieve", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/tunnel_certificates/retrieve" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/alien-anthropologist", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/mcp_tunnels/tunnel_certificates/archive", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/mcp_tunnels/tunnel_certificates/archive" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/git-gud", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/rbac_roles/permissions/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/rbac_roles/permissions/list" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/sql-sorcerer", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/workspaces/rate_limits/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/workspaces/rate_limits/list" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/airport-code-analyst", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/workspaces/service_accounts/delete", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/workspaces/service_accounts/remove" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/culinary-creator", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/workspaces/service_accounts/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/workspaces/service_accounts/list" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/function-fabricator", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/workspaces/service_accounts/create", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/workspaces/service_accounts/add" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/idiom-illuminator", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/workspaces/service_accounts/update", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/workspaces/service_accounts/update" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/code-consultant", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/workspaces/service_accounts/retrieve", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/workspaces/service_accounts/retrieve" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/career-coach", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/workspaces/members/delete", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/workspaces/members/remove" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/time-travel-consultant", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/workspaces/members/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/workspaces/members/list" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/meeting-scribe", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/workspaces/members/create", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/workspaces/members/add" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/philosophical-musings", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/workspaces/members/update", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/workspaces/members/update" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/perspectives-ponderer", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/workspaces/members/retrieve", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/workspaces/members/retrieve" }, { - "url": "https://platform.claude.com/docs/en/resources/prompt-library/review-classifier", - "reason": "moved -> https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices" + "url": "https://platform.claude.com/docs/en/api/admin/federation_rules/workspaces/delete", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/federation/rules/workspaces/remove" }, { - "url": "https://code.claude.com/docs/en/sdk/migration-guide", - "reason": "moved -> https://code.claude.com/docs/en/agent-sdk" + "url": "https://platform.claude.com/docs/en/api/admin/federation_rules/workspaces/list", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/federation/rules/workspaces/list" }, { - "url": "https://platform.claude.com/docs/en/api/sdks/cli", - "reason": "HTTP 404" + "url": "https://platform.claude.com/docs/en/api/admin/federation_rules/workspaces/create", + "reason": "moved -> https://platform.claude.com/docs/en/api/beta/organization/federation/rules/workspaces/add" }, { "url": "https://platform.claude.com/docs/en/about-claude/use-case-guides/classification", @@ -27961,6 +27963,10 @@ "url": "https://support.claude.com/en/articles/13163666-holiday-2025-usage-promotion", "reason": "HTTP 404" }, + { + "url": "https://claude.com/docs/claude-science/run-on-windows-wsl", + "reason": "moved -> https://claude.com/docs/claude-science/get-started" + }, { "url": "https://claude.com/docs/claude-science/whats-not-available-yet", "reason": "moved -> https://claude.com/docs/claude-science/admin-controls" @@ -27979,8 +27985,8 @@ } ], "summary": { - "total": 4094, - "downloaded": 3864, + "total": 4095, + "downloaded": 3865, "skipped": 0, "failed": 0, "dead": 230, diff --git a/content/CHANGELOG.md b/content/CHANGELOG.md index 0b4c5e01e..44dc4fdb8 100644 --- a/content/CHANGELOG.md +++ b/content/CHANGELOG.md @@ -1,5 +1,104 @@ # Changelog +## 2.1.268 + +- Added to the Claude apps gateway: with `pricing:` set in `gateway.yaml`, signed-in Claude Code clients receive the same rates through managed settings, so `/cost` and telemetry match the spend meter +- Added a startup warning for gateways when `access_control.allow_cidrs` is empty, and a one-time warning the first time a request arrives from a public address +- Added the `gatewayInternalNetworks` managed setting, letting administrators allow `/login` to a Claude apps gateway on their organization's own public IPv4 block +- Added `claude self-hosted-runner --remove-session-state` (default off): delete each session's per-session directories under `/_sessions/` when the session ends +- Added `configDirectory` to the output of `claude auth status --json` +- Added `--json` to `claude plugin install`, `uninstall`, `update`, `enable` and `disable`, and `errorDetails`/`noteDetails` to each row of `claude plugin list --json` +- Added browser-tab icons for published artifacts, chosen by Claude to match each page +- Fixed every turn failing with HTTP 400 on third-party Anthropic-compatible endpoints (`ANTHROPIC_BASE_URL`) since 2.1.265: a regex in the Artifact tool's input schema that those endpoints reject +- Fixed WebFetch hanging indefinitely on a server that keeps the response open without finishing; a fetch now fails after 300 seconds. Set `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` to override the deadline (0 turns it off) +- Fixed a respawned in-process teammate picking up tools or a system prompt from a same-named agent file in a folder you have not trusted +- Fixed sustained high CPU usage: a busy loop in long-running idle sessions no longer pins a CPU core, and rapid terminal focus reports during a session recap no longer keep the CPU high +- Fixed Claude sometimes replying "your message came through empty" after an MCP tool call +- Fixed deny and ask permission rules on symlinked directories (`/etc`, `/tmp`, `/var` on macOS; `/bin` on Linux) not applying when a path was given by its real location, and Bash commands ignoring deny rules written on a symlinked path spelling +- Fixed a case where a Read or Edit deny rule did not apply when an `env -C`, `eval` or similar command the permission checker cannot analyze was on the same line +- Fixed plugin and marketplace errors showing a token or password from a git source URL +- Fixed `/mcp` and `/plugin` server details, `claude mcp list`/`get`, and MCP login errors showing secrets resolved from `${VAR}` placeholders in MCP configs +- Fixed prompt caching and extended thinking breaking mid-session for SDK sessions using `excludeDynamicSections`: the first message is no longer re-rendered each request +- Fixed entitled users being told a model is restricted after restart or in the Desktop Code tab when a cached model-access denial was stale +- Fixed a running session silently switching to the organization's default model when another Claude Code process refreshed a stale model-access entry +- Fixed long-context 429s on Fable models showing the usage-credits consent prompt instead of the 1M-context message on Pro and Team plans +- Fixed workload identity federation via a profile (as claude-code-action configures it): processes sharing the profile could fail mid-run with `401 … jti reused` +- Fixed MCP server OAuth sign-in failing with "No available ports for OAuth redirect" when the local callback port range can't be bound +- Fixed the conversation summary produced by `/compact` and auto-compact mangling text that contained `$` sequences +- Fixed resuming a conversation that ended with `/compact`: its restored-file notes now load in the same order on every resume +- Fixed SDK prompt suggestions, side questions and `/rename` sending the conversation from before a compaction +- Fixed `@` file and `/` command suggestions not appearing after recalling a previous prompt with the up arrow and editing it +- Fixed `claude agents`: pressing ← again at a natural pace to go back to the agent list no longer gets ignored until you pause for over a second +- Fixed `claude agents` session delete getting stuck when a worktree can't be removed: the message names the cause and next step, and for a git worktree ctrl+x again deletes the directory anyway +- Fixed background agent and workflow rows in the agents panel expanding to many lines when their text contained line breaks +- Fixed Claude in Slack sessions losing their Slack tools when org managed settings set an MCP allowlist +- Fixed Claude in Chrome asking to allow the host "https" when a navigation URL had a scheme but a host that could not be parsed +- Fixed the spinner wrapping onto several lines when the current task's label is long; the label and the "Next:" task line now stay within one terminal row +- Fixed the `/bug` and `/feedback` description field showing no cursor when the terminal's native cursor is enabled +- Fixed Remote Control sessions served by `claude remote-control` showing a generated name instead of their session title in `ListAgents` +- Fixed `claude plugin validate` rejecting plugin paths whose directory name begins with two dots, which the plugin loader accepts +- Fixed plugins silently skipping a default monitors file or root SKILL.md that could not be checked +- Fixed WebFetch's error for localhost and other dotless hostnames to explain why the URL is refused and suggest curl +- Fixed PermissionRequest hooks not firing in `--print` mode +- Fixed policy-helper warnings not printing on headless (`-p`) runs +- Fixed `/resume` listing a `/fork` background session under its parent's name instead of its own `⑂` fork name +- Fixed `/remote-control` and other claude.ai-gated commands to suggest `/login` when signed out instead of showing a Claude for Enterprise migration message +- Fixed `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` not extending SessionEnd hooks that have no per-hook `timeout` (they were still cancelled after 1.5 seconds) +- Fixed `/autofix-pr` and other cloud-session commands saying to retry or install the Claude GitHub App when no GitHub account is connected; they now point to `/web-setup` or the web connect page +- Fixed cloud-session commands such as `/teleport` and `/remote-env` to explain when an organization policy turns them off, instead of answering "Unknown command" +- Fixed Bash sandbox instructions over-stating confinement: no unenforced path lists when filesystem isolation is off, and strict mode no longer claims commands can never run unsandboxed +- Improved fullscreen mode: adding or removing a prompt line (Shift+Enter) now repaints as fast as typing a character instead of re-rendering the visible transcript +- Improved `--continue` / `--resume`: the conversation appears immediately instead of waiting for SessionStart hooks, and the first message no longer re-reads the whole transcript +- Improved responsiveness during tool-heavy turns by no longer redrawing the transcript for a hidden per-tool-batch reminder +- Improved startup time in projects with `.claude/workflows/` scripts: listing them no longer parses each script +- Improved auto mode denials: the message Claude receives now names the rule that blocked the action and asks Claude to try a safer method and finish unrelated work before stopping to ask you +- Improved Claude in Chrome: long page reads now stay inline instead of being saved to a file and read back +- Improved the MEMORY.md truncation warning to say how many lines were cut and where the cut starts +- Improved the terminal permission prompt for artifacts: it now leads with the ask's question +- Improved the prompt footer: an editor or `/diff` selection now shows inside the prompt input, and fullscreen mode shows Remote Control status in the header instead of the footer +- Improved the "Usage credits required for 1M context" message to say that usage credits turned on mid-session take effect after restarting Claude Code +- Improved `/plugin`: installing, enabling or disabling a plugin now takes effect when you close the menu; `/reload-plugins` is no longer needed afterwards +- Changed the system prompt on Bedrock, Vertex and Foundry to deliver environment, model and settings details as attachments, matching first-party sessions +- Changed Bedrock, Vertex and Foundry sessions to keep the tool list byte-stable across a conversation (late-connecting tools load deferred instead of rewriting it), matching first-party sessions +- Changed the task-tracking tools (TaskCreate/Get/Update/List, TodoWrite) to be offered only on Claude 3.x, Opus 4.0–4.7, Sonnet 4.0–4.6, Haiku 4.5; set `CLAUDE_CODE_ENABLE_TODO_TOOLS=1` elsewhere +- Changed the artifact data-edit permission prompt in the terminal to a card that shows the document count and who can open the artifact +- Changed local Cowork sessions set to skip all approvals: the Artifact tool now refuses a local file outside the session's folders, or behind a symlink, instead of reading it without asking +- Changed plain `WebFetch` deny and ask rules to no longer apply to Artifact tool reads and updates; use an `Artifact` rule (or `WebFetch(domain:claude.ai)`) to block or gate them +- Changed the "N MCP servers need authentication" startup notice to announce each server once instead of at every launch +- [VSCode] Fixed the session list, settings toggles, and chat tabs when `CLAUDE_CONFIG_DIR` is set in a settings file or the `environmentVariables` setting +- [VSCode] Fixed the model pill, model picker and command menu going blank in open tabs for a few seconds after a login, logout or account switch +- [VSCode] Fixed Auto disappearing from the mode picker in new-tab or just-reloaded conversations when a project or local setting overrides the model named in `~/.claude/settings.json` +- [VSCode] Fixed session names reverting to the last prompt after a window reload when a SessionStart hook is configured +- [VSCode] Fixed the footer's model pill and Remote Control pill waiting for the new tab's Claude process to start when another tab in the window is already up +- [VSCode] Fixed a second Claude process running through its full startup when a session tab's launch arrived more than half a second after its config read +- [VSCode] Fixed resuming a session from the session list ignoring `claudeCode.preferredLocation: "sidebar"` (it always opened a panel), and programmatic opens resetting that setting to "panel" +- [VSCode] Fixed Windows issues: the WSL install prompt no longer appears on machines without WSL installed, and IDE diagnostics are now returned correctly for Windows files when WSL is installed +- [VSCode] Fixed the custom style builder saving a User level style in a folder the CLI does not read when `CLAUDE_CONFIG_DIR` is set through settings +- [VSCode] Added Left and Right arrow keys to change where an always-allow permission rule is saved, for keyboard and screen reader users +- [VSCode] Added a "Claude Code: Focus last message" command that moves keyboard focus to the newest message in the conversation, for keyboard and screen reader users +- [VSCode] Changed the Manage plugins dialog to apply installs, enables, disables and uninstalls to open sessions without a restart +- [VSCode] Changed some artifact permission prompts to omit the "don't ask again" choice, matching the terminal +- [Claude Code on the web] Fixed cloud sessions running longer than about six hours silently losing files saved to persisted session folders; saves now persist for up to a day +- [Claude Code on the web] Fixed "Invalid effort level" errors when a routine resumes a session, or a session starts with no set effort, in orgs where an admin caps a model's effort +- [Claude Code on the web] Improved routine creation from a conversation: when the new routine has no connectors, Claude now says so and how to add them instead of only confirming it +- [Claude Tag] Fixed the admin settings page hanging on a loading skeleton or going blank after a transient load failure; a section that fails to load now shows a Retry button +- [Claude Tag] Added a link from a Slack channel's configure page back to the organization's Claude in Slack admin settings +- [Claude Tag] Fixed a Slack Enterprise Grid channel losing its Claude settings (repository, environment, access) after a Slack admin moved it to another workspace +- [Claude Tag] Improved how Claude explains a blocked action: it now says whether a permission check, its own decision to confirm first, or missing access stopped it +- [Claude Tag] Improved reply speed: Claude now runs several read-only lookups (searching Slack, reading a thread, finding people) at once instead of one after another +- [Claude Tag] Improved formatting of comparisons: sentence-length comparisons now come as lists instead of wide tables that scroll sideways, and long table cells wrap +- [Claude Tag] Fixed `@Claude !restart` in a thread with its own session sometimes also posting a contradictory "this thread is handled by the channel session" notice +- [Claude Tag] Improved the message shown when your Claude account is in a different organization than the Slack workspace: it now explains how to connect the workspace to your org +- [Claude Tag] Fixed Markdown links whose URL is wrapped in angle brackets showing as literal bracket text in Slack instead of a clickable link +- [Claude Tag] Fixed a workspace guest's top-level @mention in a channel where guests may use Claude sometimes getting a "your Slack account isn't connected" reply instead of an answer +- [Claude Tag] Fixed a channel's long-running session being replaced with a fresh one mid-conversation; the scheduled refresh now waits until the channel and its threads are quiet +- [Claude Tag] Fixed channel-settings cards clicked more than once telling the proposing session the change was refused after it had already applied; the outcome is now sent once +- [Claude Tag] Changed memory in public channels: each channel now keeps its own notes, and Claude no longer recalls notes it saved in other public channels; workspace notes stay shared +- [Code Review] Added a note under the still-open findings list in follow-up reviews: resolving a finding's thread, not just replying to it, stops later reviews from counting it as open +- [Code Review] Fixed reviews sometimes ending as incomplete when one of the agents verifying a finding failed midway; the review now replaces that agent and reaches a verdict +- [Code Review] Fixed a push-triggered review that was queued behind a running review still posting after the pull request had been converted to draft +- [Code Review] Fixed reviews ignoring a directory's CLAUDE.md conventions when the PR edited a root file (e.g. README.md) that only shares a name with a file that CLAUDE.md lists + ## 2.1.267 - Added `maxEffortLevel` setting (top-level or per model under `modelSettings`): caps the effort level on every provider, including Bedrock, Vertex and Foundry; users can still pick a lower level diff --git a/content/claude-code-manifest.json b/content/claude-code-manifest.json index 682c1cc74..6685c3934 100644 --- a/content/claude-code-manifest.json +++ b/content/claude-code-manifest.json @@ -6,25 +6,25 @@ "url": "https://github.com/anthropics/claude-code/issues" }, "dist": { - "shasum": "11710a497103b7cd03f8035c587875bd91b7925d", - "tarball": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-2.1.267.tgz", + "shasum": "4fca301638492c98f248316b438c58c4286624ae", + "tarball": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-2.1.268.tgz", "fileCount": 7, - "integrity": "sha512-0rErYxMp/5uJKt2Z8zJVRmuGEijTiDOb659YnELpGsxyrOp0BKhoOrT8tyNrK5yn8VLYXxc3X3KXfT9woL0R4g==", + "integrity": "sha512-DSRUVAbRRH7WaHm99OErT4FJQDkbhIUb8mIaevcFrXtKCZwA9UmKY5+SOFWmgyeEUj2Uh1pFw0Rk/gYffmUEUw==", "signatures": [ { - "sig": "MEUCIFpmXPZ5ll+CSpQW+LFPMeOm1741byDHpMfapVR9fA+EAiEAlP0PSv35fr6LYteaMx4wHmy0ijceGR4zLVj69G9HpeE=", + "sig": "MEUCIQDAYRCjoi6mwaNTxEsZyp1bRS5d/NlD6/DHUm5D1bqy+wIgIRft1vWuFJ9xK4gB9/Anixzhno3YiBzKDwF8sJ1sNj8=", "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U" }, { - "sig": "MEUCIQDyMK3VagZW7DBKtAQdF8VHrJvvUfowA94KtJRkDuZ/VAIgA3sPfsXKE2DYqKeUpbKd0qWV3R+gpNqDJ0f3v+GP0WE=", + "sig": "MEUCIQDVihj3hZnCIORrikeHG2sG8lb3f0YBGJwVs4etWPbJswIgXvjAbVxNB+l2jB4p3Rf/d9x9QFiGVTmT5wVYEoqrQiM=", "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U" } ], - "unpackedSize": 183634 + "unpackedSize": 184019 }, "name": "@anthropic-ai/claude-code", "type": "module", - "_from": "file:staged-npm/anthropic-ai-claude-code-2.1.267.tgz", + "_from": "file:staged-npm/anthropic-ai-claude-code-2.1.268.tgz", "author": { "name": "Anthropic", "email": "support@anthropic.com" @@ -42,8 +42,8 @@ "email": "wolffiex@anthropic.com" }, "homepage": "https://github.com/anthropics/claude-code", - "_resolved": "/home/runner/work/claude-cli-internal/claude-cli-internal/staged-npm/anthropic-ai-claude-code-2.1.267.tgz", - "_integrity": "sha512-0rErYxMp/5uJKt2Z8zJVRmuGEijTiDOb659YnELpGsxyrOp0BKhoOrT8tyNrK5yn8VLYXxc3X3KXfT9woL0R4g==", + "_resolved": "/home/runner/work/claude-cli-internal/claude-cli-internal/staged-npm/anthropic-ai-claude-code-2.1.268.tgz", + "_integrity": "sha512-DSRUVAbRRH7WaHm99OErT4FJQDkbhIUb8mIaevcFrXtKCZwA9UmKY5+SOFWmgyeEUj2Uh1pFw0Rk/gYffmUEUw==", "_npmVersion": "11.19.0", "description": "Use Claude, Anthropic's AI assistant, right from your terminal. Claude can understand your codebase, edit files, run terminal commands, and handle entire workflows for you.", "directories": {}, @@ -104,20 +104,21 @@ "_nodeVersion": "24.20.0", "dependencies": {}, "_hasShrinkwrap": false, + "readmeFilename": "README.md", "optionalDependencies": { - "@anthropic-ai/claude-code-linux-x64": "2.1.267", - "@anthropic-ai/claude-code-win32-x64": "2.1.267", - "@anthropic-ai/claude-code-darwin-x64": "2.1.267", - "@anthropic-ai/claude-code-linux-arm64": "2.1.267", - "@anthropic-ai/claude-code-win32-arm64": "2.1.267", - "@anthropic-ai/claude-code-darwin-arm64": "2.1.267", - "@anthropic-ai/claude-code-linux-x64-musl": "2.1.267", - "@anthropic-ai/claude-code-linux-arm64-musl": "2.1.267" + "@anthropic-ai/claude-code-linux-x64": "2.1.268", + "@anthropic-ai/claude-code-win32-x64": "2.1.268", + "@anthropic-ai/claude-code-darwin-x64": "2.1.268", + "@anthropic-ai/claude-code-linux-arm64": "2.1.268", + "@anthropic-ai/claude-code-win32-arm64": "2.1.268", + "@anthropic-ai/claude-code-darwin-arm64": "2.1.268", + "@anthropic-ai/claude-code-linux-x64-musl": "2.1.268", + "@anthropic-ai/claude-code-linux-arm64-musl": "2.1.268" }, "_npmOperationalInternal": { - "tmp": "tmp/claude-code_2.1.267_1788978342725_0.5239077374707701", + "tmp": "tmp/claude-code_2.1.268_1789065671686_0.460315409648951", "host": "s3://npm-registry-packages-npm-production" }, - "_id": "@anthropic-ai/claude-code@2.1.267", - "version": "2.1.267" + "_id": "@anthropic-ai/claude-code@2.1.268", + "version": "2.1.268" } \ No newline at end of file diff --git a/content/claude/claude-science/admin-controls.md b/content/claude/claude-science/admin-controls.md index 7ca5414fe..9db95648a 100644 --- a/content/claude/claude-science/admin-controls.md +++ b/content/claude/claude-science/admin-controls.md @@ -180,7 +180,7 @@ The status column in each table shows one of four values: | Setting in claude.ai | Status for Claude Science | Note | | -------------------------------------------------------------------------------- | -------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Claude Science > Enable for your organization | Supported in Claude Science | Off by default for Team and Enterprise. An Owner or Primary Owner turns it on under **Organization settings** > **Claude Science** (see [Enable Claude Science](/docs/claude-science/enable-claude-science)). Assigning seats doesn't turn it on. | -| Data and privacy > Rate chats | Supported in Claude Science | When you turn this off, the app hides its response rating buttons and feedback form, as claude.ai does. | +| Data and privacy > Rate chats | Supported in Claude Science | When you turn this off, the app hides its response rating buttons and feedback form, as claude.ai does. If your organization uses customer-managed encryption keys (CMEK), you can't turn this setting on and the app doesn't show these controls. | | Organization and access > Organization instructions | Supported in Claude Science | Anthropic adds your organization instructions to the app's requests to Claude, as it does for claude.ai chat, so members don't need to update the app for a change to apply. | | Skills > Organization skills and Policy | Supported in Claude Science | Skills you add under **Organization skills**, and members' own claude.ai skills, appear in Claude Science while **Skills** is on, and **User-created skills** decides whether a member can save a skill from the app to their own claude.ai account. The skills that come with the app and the skills members add in it are controlled on the **Claude Science** page: one switch per Featured skill, and **Allow custom skills** for skills members add themselves (see [Featured connectors and skills](#featured-connectors-and-skills) and [Custom skills](#custom-skills)). | | Capabilities > Web search | Not applicable in Claude Science | This setting governs claude.ai chat. Claude Science can search the web regardless of it, and the **Claude Science** page has no switch for web search. | @@ -203,12 +203,12 @@ The status column in each table shows one of four values: ### Data and privacy -| Setting in claude.ai | Status for Claude Science | Note | -| -------------------------------------------------------------------------------------------------------- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| Data and privacy > Encryption keys (customer-managed keys) | Supported in Claude Science | Anthropic handles Claude Science requests to Claude under your key the same way it handles claude.ai chat requests. Compliance API session transcripts are also encrypted under your key. | -| Data and privacy > Data residency (US-only inference), or the regional processing terms in your contract | Supported in Claude Science | Governs where Anthropic processes Claude Science requests to Claude, as for your other Claude products. It doesn't cover code that runs on the member's computer, SSH hosts, or Modal account (the same boundary as Claude Code). | -| Data and privacy > HIPAA Compliance | Not applicable in Claude Science | Organizations with HIPAA compliance enabled can turn Claude Science on, but its use isn't covered under your BAA and members must keep protected health information out of it. These organizations start from stricter defaults, listed under [Defaults by plan](#defaults-by-plan). | -| Data and privacy > Retention period for chats and projects | Partially supported in Claude Science | The auto-delete window doesn't cover data on members' computers or the model-call logs Anthropic keeps for this product. For Enterprise organizations with the Compliance API enabled, the window does apply to the session transcripts it returns. | +| Setting in claude.ai | Status for Claude Science | Note | +| -------------------------------------------------------------------------------------------------------- | ------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Data and privacy > Encryption keys (customer-managed keys) | Supported in Claude Science | The content Anthropic stores from Claude Science (model-call logs, skills members publish, and, where the Compliance API is enabled, session transcripts) is encrypted under your key. Data stored on the member's computer isn't hosted by Anthropic, and work members send to their own SSH hosts, Modal account, or scientific model endpoints doesn't pass through Anthropic, so neither is under your key. In organizations that use customer-managed encryption keys, the app also hides its response rating buttons and feedback form, as claude.ai does. See [Customer-managed encryption keys](/docs/claude-science/how-claude-science-works-with-your-data#customer-managed-encryption-keys). | +| Data and privacy > Data residency (US-only inference), or the regional processing terms in your contract | Supported in Claude Science | Governs where Anthropic processes Claude Science requests to Claude, as for your other Claude products. It doesn't cover code that runs on the member's computer, SSH hosts, or Modal account (the same boundary as Claude Code). | +| Data and privacy > HIPAA Compliance | Not applicable in Claude Science | Organizations with HIPAA compliance enabled can turn Claude Science on, but its use isn't covered under your BAA and members must keep protected health information out of it. These organizations start from stricter defaults, listed under [Defaults by plan](#defaults-by-plan). | +| Data and privacy > Retention period for chats and projects | Partially supported in Claude Science | The auto-delete window doesn't cover data on members' computers or the model-call logs Anthropic keeps for this product. For Enterprise organizations with the Compliance API enabled, the window does apply to the session transcripts it returns. | ### Audit and compliance diff --git a/content/claude/claude-science/changelog.md b/content/claude/claude-science/changelog.md index 3ee29ce15..0903f50c9 100644 --- a/content/claude/claude-science/changelog.md +++ b/content/claude/claude-science/changelog.md @@ -7,7 +7,7 @@ > Release notes for Claude Science, including new features, improvements, and bug fixes by version. - * Claude Science is now available for Windows: download it from [claude.com/product/claude-science](https://claude.com/product/claude-science), and see [Run on Windows](/docs/claude-science/run-on-windows) for requirements and setup + * Claude Science is now available for Windows: download it from [claude.com/product/claude-science](https://claude.com/product/claude-science), and see [Get started](/docs/claude-science/get-started) for setup * Various bug fixes and improvements diff --git a/content/claude/claude-science/get-started.md b/content/claude/claude-science/get-started.md index 1205841f1..eaefdcbb8 100644 --- a/content/claude/claude-science/get-started.md +++ b/content/claude/claude-science/get-started.md @@ -14,7 +14,26 @@ - Download the installer from [claude.com/product/claude-science](https://claude.com/product/claude-science) and open it. It installs Claude Science for your user account without administrator rights, adds **Claude Science** to the Start menu and the desktop, and opens the app in its own window. The first launch sets up the sandbox and downloads the app window engine (about 150 MB) before the window appears, so it takes longer than later launches, and the starter Python and R environments keep setting up in the background. For requirements, updates, and uninstalling, see [Run on Windows](/docs/claude-science/run-on-windows). + Download the installer from [claude.com/product/claude-science](https://claude.com/product/claude-science) and open it. It installs Claude Science for your user account, adds **Claude Science** to the Start menu and the desktop, and opens the app in its own window. The installer is signed by Anthropic, PBC. On first launch, Claude Science sets up the sandbox and downloads its app window engine (about 150 MB) from `downloads.claude.ai` before the window appears, so the first start takes longer than later ones, and a notice shows progress. The starter Python and R environments keep setting up in the background for several minutes after the window opens. + + **One-time Windows permission.** If Claude Science asks for one-time permission from Windows so that cells can run git and Command Prompt scripts and PowerShell can change folders, **Yes** lets Windows ask for approval (an administrator's password if you aren't one) and **No** leaves those features off. Python and R cells work either way, and the **Ask Windows now** button under **Settings** > **Permissions** grants the permission later. + + **Notification-area icon.** Closing the window leaves Claude Science running, with an icon in the notification area of the taskbar. Click the icon to reopen the window, or choose **Quit Claude Science** from the icon's menu to stop the app. + + **Updates.** Claude Science checks for updates in the background and shows **Update available** when one is ready; choose **Restart to update** to install it. Administrators who distribute the app themselves can turn the background check off with `[update] auto_update = false` (see [Manage Claude Science on devices](/docs/claude-science/manage-on-devices#deploy-configuration-with-device-management)). To update by hand instead, open a newer installer, which upgrades the installed copy in place and keeps your data. + + **Uninstall.** Quit Claude Science from its notification-area icon first, because the uninstaller refuses to run while the app is running. Then uninstall **Claude Science** from **Settings** > **Apps** > **Installed apps**, or run `claude-science uninstall` in a terminal. Either way your data is kept. To remove the data as well, run `claude-science uninstall --purge` in a terminal instead. + + **Corporate networks.** Claude Science follows the proxy configured in Windows proxy settings and trusts corporate root certificates installed for the whole computer, so most managed PCs need no Claude Science configuration. See [Use Claude Science on a corporate network](/docs/claude-science/corporate-networks). + + **Differences on Windows:** + + * Claude runs shell commands with PowerShell. Command Prompt scripts, git inside cells, and folder changes in PowerShell need the one-time Windows permission. + * Only folders on local NTFS or ReFS drives can be granted, not network shares, mapped network drives, FAT or exFAT drives (many USB sticks and memory cards), or a whole drive such as `D:\`. Copy such files to a local folder or attach them in the chat. + * [Custom connectors](/docs/claude-science/custom-connectors) that run a local command start with `npx`, `node`, `python`, or the full path of a program. Connectors launched through `npm` or a `.cmd`, `.bat`, or `.ps1` file aren't supported. + * The **Model endpoints** section of **Settings** > **Compute** (NVIDIA BioNeMo NIM) isn't available. + + **Linux version under WSL.** The Windows app itself doesn't need WSL. The Linux command-line version of Claude Science also runs under Windows Subsystem for Linux (WSL 2) with Ubuntu 24.04 or later. Inside the Ubuntu terminal, follow the install steps in the Linux tab, then start Claude Science with `claude-science serve --port 8765 --no-browser` instead, and open the printed link in a Windows browser. @@ -44,7 +63,7 @@ ## Sign in and complete setup -When the app opens, sign in with your Claude account. On Windows, the app opens claude.ai in your default browser for this and continues in the app window once you approve the sign-in. If the sign-in redirect can't return to the app (for example, through an SSH tunnel), use the **Paste code instead** option on the sign-in screen. No API key is required. +When the app opens, sign in with your Claude account. On Windows, click the **Sign in on the web** button and confirm with **Continue**; the app opens claude.ai in your default browser and continues in the app window once you approve the sign-in there. If the sign-in redirect can't return to the app (for example, through an SSH tunnel), use the **Paste code instead** option on the sign-in screen. No API key is required. After sign-in, a setup wizard walks you through enabling connectors and skills, setting which websites Claude can access, and choosing whether memory is on. You can change these at any time in Settings. @@ -53,7 +72,7 @@ After sign-in, a setup wizard walks you through enabling connectors and skills, - Deleting the data folder removes all projects, artifacts, and conversation history. Deleting the folder and the application removes Claude Science entirely; on Windows, [uninstall the app](/docs/claude-science/run-on-windows#uninstall) from **Settings** > **Apps** > **Installed apps**. + Deleting the data folder removes all projects, artifacts, and conversation history. Deleting the folder and the application removes Claude Science entirely; on Windows, quit the app from its notification-area icon, then uninstall it from **Settings** > **Apps** > **Installed apps**. ## Run your first analysis @@ -68,7 +87,7 @@ After sign-in, a setup wizard walks you through enabling connectors and skills, * macOS says the application isn't supported, or the app icon appears crossed out: the download page picked the build for the wrong processor. Return to the download page and choose Mac (Intel) or Mac (Apple Silicon) to match your Mac. To check which you have, open the Apple menu, choose About This Mac, and look at the Chip or Processor line. * No browser tab appeared on macOS or Linux: on macOS, choose Open from the menu bar icon. On Linux, copy the printed URL into a browser on the same machine, or run `claude-science url` to print a fresh one. -* A Claude Science message on Windows says the app was not installed because the file could not be confirmed: download the installer again from [claude.com/product/claude-science](https://claude.com/product/claude-science) and open the new file. If the message persists, the PC could not verify the publisher's signature, so ask your IT team. +* A Claude Science message on Windows says the app was not installed because the file could not be confirmed: the copy you opened still runs but isn't installed. Download the installer again from [claude.com/product/claude-science](https://claude.com/product/claude-science) and open the new file. If the message persists, the PC could not verify the publisher's signature, so ask your IT team. * The Windows app reports that it couldn't set up the app window engine: the first launch downloads that engine from `downloads.claude.ai`, and this usually means the app couldn't reach it. Check the internet connection, and on a corporate network ask IT to allow that domain (see [Network requirements](/docs/claude-science/network-requirements)). * On Windows, environment builds or other features fail and the PC doesn't have the Microsoft Visual C++ Redistributable (x64): install the latest supported x64 version from [Microsoft's download page](https://learn.microsoft.com/cpp/windows/latest-supported-vc-redist), then quit Claude Science from its notification-area icon and open it again. * Linux refuses to start: a sandbox dependency is missing (install bubblewrap and socat as shown in the Install section), too old, or blocked. Check your bubblewrap version with `bwrap --version`, then match the error message to its fix in the [Linux troubleshooting table](/docs/claude-science/run-on-remote-linux-server#troubleshooting). diff --git a/content/claude/claude-science/how-claude-science-works-with-your-data.md b/content/claude/claude-science/how-claude-science-works-with-your-data.md index c2f8706e7..dfb449b13 100644 --- a/content/claude/claude-science/how-claude-science-works-with-your-data.md +++ b/content/claude/claude-science/how-claude-science-works-with-your-data.md @@ -6,11 +6,11 @@ > What Anthropic receives from Claude Science, what stays on members' computers, and what Enterprise organizations can retrieve through the Compliance API. -Claude Science is a local-first application. Conversation history and artifacts are stored on the member's computer, and Anthropic doesn't sync them to the member's Claude account or to other devices. Anthropic does receive the prompts and responses the app exchanges with Claude, and handles them under its standard retention and Trust & Safety policies. For Enterprise organizations with the Compliance API enabled, Anthropic also retains those exchanges as session transcripts that the organization can retrieve; [Compliance API coverage](#compliance-api-coverage) explains what they contain. The following sections cover each of these, plus remote compute and connectors. +Claude Science is a local-first application. Conversation history and artifacts are stored on the member's computer, and Anthropic doesn't sync them to the member's Claude account or to other devices. Anthropic does receive the prompts and responses the app exchanges with Claude, and handles them under its standard retention and Trust & Safety policies. For Enterprise organizations with the Compliance API enabled, Anthropic also retains those exchanges as session transcripts that the organization can retrieve; [Compliance API coverage](#compliance-api-coverage) explains what they contain. The following sections cover each of these, plus remote compute, connectors, and customer-managed encryption keys. ## What Anthropic receives -Each time the app calls Claude, the prompt and Claude's response travel to Anthropic's servers and are logged under Anthropic's standard retention policy for model traffic (see How long do you store my organization's data in the Privacy Center), the same policy that applies to other Claude products. If your organization has CMEK enabled, model-call logging follows the same CMEK handling as your other Claude products. Your organization's Custom Data Retention setting doesn't change how long these model-call logs are kept. It does apply to the session transcripts that Anthropic keeps for Enterprise organizations with the Compliance API enabled, described in [Compliance API coverage](#compliance-api-coverage). The app also sends product-usage telemetry (event counts and timings, not conversation content) and, when it runs into an error, a redacted error report (the error type and its location in Claude Science's own code, not conversation content or research data). Both are turned off by the same [device configuration](/docs/claude-science/manage-on-devices#telemetry) setting. +Each time the app calls Claude, the prompt and Claude's response travel to Anthropic's servers and are logged under Anthropic's standard retention policy for model traffic (see How long do you store my organization's data in the Privacy Center), the same policy that applies to other Claude products. If your organization uses [customer-managed encryption keys (CMEK)](https://platform.claude.com/docs/en/manage-claude/cmek), these model-call logs are encrypted under your key (see [Customer-managed encryption keys](#customer-managed-encryption-keys) below). Your organization's Custom Data Retention setting doesn't change how long these model-call logs are kept. It does apply to the session transcripts that Anthropic keeps for Enterprise organizations with the Compliance API enabled, described in [Compliance API coverage](#compliance-api-coverage). The app also sends product-usage telemetry (event counts and timings, not conversation content) and, when it runs into an error, a redacted error report (the error type and its location in Claude Science's own code, not conversation content or research data). Both are turned off by the same [device configuration](/docs/claude-science/manage-on-devices#telemetry) setting. ## Compliance API coverage @@ -20,18 +20,26 @@ Anthropic captures a session only while the Compliance API is enabled for your o A transcript is reconstructed from what the app exchanged with Claude during the session: the member's prompts, Claude's responses, tool calls (including code and file content Claude wrote through them), and the text portions of tool results, including text from files that Claude read, subject to the size limits the Compliance API applies. Claude's extended thinking and the app's system prompt aren't included (a placeholder marks where the system prompt was), tool definitions and connector (MCP server) configuration are omitted, and images, PDFs, and other non-text content appear as placeholders. Content that never reached the Claude API, such as a local file the session never sent, isn't in the transcript. -Anthropic keeps these transcripts for six years from capture by default. If your organization has set a Custom Data Retention period (in claude.ai under Organization settings > Data and privacy), that period applies to the transcripts instead, and when more than one retention period is set, the shortest applies. If your organization uses CMEK, the transcripts are encrypted under your key. The session endpoints are read-only, so transcripts can't be deleted through the API before they expire; see [Retention and deletion](https://platform.claude.com/docs/en/manage-claude/compliance-sessions#retention-and-deletion) for the current terms. +Anthropic keeps these transcripts for six years from capture by default. If your organization has set a Custom Data Retention period (in claude.ai under Organization settings > Data and privacy), that period applies to the transcripts instead, and when more than one retention period is set, the shortest applies. If your organization uses [customer-managed encryption keys (CMEK)](https://platform.claude.com/docs/en/manage-claude/cmek), the transcripts are encrypted under your key. The session endpoints are read-only, so transcripts can't be deleted through the API before they expire; see [Retention and deletion](https://platform.claude.com/docs/en/manage-claude/compliance-sessions#retention-and-deletion) for the current terms. The Compliance API's [Activity Feed](https://platform.claude.com/docs/en/manage-claude/compliance-activity-feed) also records changes to your Claude Science organization settings, such as turning the product on or off. The [Compliance API reference](https://platform.claude.com/docs/en/api/compliance/activities/list) describes these events. ## Remote compute -When a member chooses to connect the app to remote compute (an owned server or cloud account they control), the app sends code and data directly to that destination. That traffic doesn't pass through Anthropic. You can turn SSH hosts, Modal, and scientific model endpoints off for the organization under **Organization settings** > **Claude Science** (see [SSH hosts](/docs/claude-science/admin-controls#ssh-hosts), [Modal](/docs/claude-science/admin-controls#modal), and [Scientific model endpoints](/docs/claude-science/admin-controls#scientific-model-endpoints)). For setup details, see [Remote compute clusters](/docs/claude-science/remote-compute-clusters) and [Compute providers](/docs/claude-science/compute-providers) in the user documentation. +When a member chooses to connect the app to remote compute (an owned server or cloud account they control), the app sends code and data directly to that destination. That traffic doesn't pass through Anthropic, and Anthropic doesn't store it. For organizations that use customer-managed encryption keys, see [Customer-managed encryption keys](#customer-managed-encryption-keys). You can turn SSH hosts, Modal, and scientific model endpoints off for the organization under **Organization settings** > **Claude Science** (see [SSH hosts](/docs/claude-science/admin-controls#ssh-hosts), [Modal](/docs/claude-science/admin-controls#modal), and [Scientific model endpoints](/docs/claude-science/admin-controls#scientific-model-endpoints)). For setup details, see [Remote compute clusters](/docs/claude-science/remote-compute-clusters) and [Compute providers](/docs/claude-science/compute-providers) in the user documentation. ## Connectors Directory connectors you publish as an admin are reached through Anthropic's hosted connector service, so your directory connector permissions and tunnels apply. Connectors a member adds locally (either running on their own computer or pointing at a custom URL) talk to their app directly, without routing through Anthropic. You can turn custom connectors off for the organization (see [Custom connectors](/docs/claude-science/admin-controls#custom-connectors)). +## Customer-managed encryption keys + +Organizations that use [customer-managed encryption keys (CMEK)](https://platform.claude.com/docs/en/manage-claude/cmek) can turn on Claude Science. The content Anthropic stores from the app is encrypted under your key, including the model-call logs of members' conversations with Claude, skills members publish, and, for Enterprise organizations with the Compliance API enabled, session transcripts. + +The app's conversation history, files, artifacts, and memory are stored on the member's computer and aren't hosted by Anthropic; of these, only what the app sends to Claude reaches Anthropic, where your key covers it as this section describes. Work members send to their own SSH hosts, Modal account, or scientific model endpoints goes directly there, not through Anthropic, and isn't under your key or any Anthropic-managed key, so review those providers' data handling. You can turn these connections off under **Organization settings** > **Claude Science**. + +In organizations with CMEK enabled, the app hides its response rating buttons and feedback form, as claude.ai does. + ## What this means for you as an admin Because conversations and artifacts live on members' computers, Custom Data Retention and Org Data Export don't reach that local data. For Enterprise organizations with the Compliance API enabled, Anthropic also keeps session transcripts captured from the app's model calls, which include file text the app sent to Claude, and a record of settings changes (see [Compliance API coverage](#compliance-api-coverage)). Device management is the control you have for local data: your device management software (such as your MDM or EDR) governs the app's local folder the same way it governs any other local application data. Identity controls (SSO, SCIM, roles) apply because sign-in goes through claude.ai. See [Admin controls](/docs/claude-science/admin-controls) for the organization settings that govern what members can connect the app to, and for what IP allowlisting and session duration cover. diff --git a/content/claude/claude-science/overview.md b/content/claude/claude-science/overview.md index 34a7d6132..abda09088 100644 --- a/content/claude/claude-science/overview.md +++ b/content/claude/claude-science/overview.md @@ -22,4 +22,4 @@ Your files stay on your computer, and code runs in a sandbox. You approve each n * macOS 13 or later (Apple silicon or Intel), Windows 11 (x64), or Linux x64 on a glibc-based distribution. * About 5 GB of free disk space for the runtime and starter environments. * On Linux: socat, bubblewrap 0.8.0 or later, and unprivileged user namespaces permitted by the kernel. -* On Windows: the Microsoft Visual C++ Redistributable (x64), which some features depend on and most PCs already have (see [Run on Windows](/docs/claude-science/run-on-windows#requirements)). +* On Windows: the Microsoft Visual C++ Redistributable (x64), which some features depend on and most PCs already have. If yours doesn't, install the latest supported x64 version from [Microsoft's download page](https://learn.microsoft.com/cpp/windows/latest-supported-vc-redist). diff --git a/content/claude/claude-tag/admins/add-connections.md b/content/claude/claude-tag/admins/add-connections.md index 4c87f0fbd..563e72538 100644 --- a/content/claude/claude-tag/admins/add-connections.md +++ b/content/claude/claude-tag/admins/add-connections.md @@ -14,7 +14,7 @@ export const BetaNote = () => Claude Tag is in public beta. Features and b ## Your first Access bundle -An [Access bundle](/docs/claude-tag/concepts/glossary#access-bundle) is a named set of credentials, repository grants, and instructions that Claude uses in the channels the bundle covers. A connection is one service credential inside a bundle, like a Datadog API key or a warehouse service account, that Claude uses to act in that service from any channel under the bundle's [scope](/docs/claude-tag/concepts/glossary#scope). +An [Access bundle](/docs/claude-tag/concepts/glossary#access-bundle) is a named set of credentials, domain entries, repository grants, plugins, and instructions that Claude uses in the channels the bundle covers. A connection is one service credential inside a bundle, like a Datadog API key or a warehouse service account, that Claude uses to act in that service from any channel under the bundle's [scope](/docs/claude-tag/concepts/glossary#scope). If you're in [setup](/docs/claude-tag/admins/setup-overview), you add these connections there; skip to [Decide what to connect](#decide-what-to-connect). The steps below are for creating a bundle outside setup, on the admin page directly. @@ -28,13 +28,13 @@ If you're in [setup](/docs/claude-tag/admins/setup-overview), you add these conn - The new bundle is named after its scope, like **Acme bundle** for a workspace named Acme or **#engineering bundle** for that channel. To rename it, click the pencil next to the name (the console uses "profile" and "Access bundle" interchangeably). + A bundle created on a workspace or channel scope is named after that scope, like **Acme bundle** for a workspace named Acme or **#engineering bundle** for that channel. A bundle created on **Default Slack** is named **Untitled access bundle** until you rename it. To rename a bundle, click the pencil next to the name (the console uses "profile" and "Access bundle" interchangeably). You can also create an unattached bundle by clicking **Create** on the **Access bundles** page in the left navigation, then attach it to scopes afterward. A bundle created there is named **Untitled access bundle** until you rename it. -Connections belong to the [agent identity](/docs/claude-tag/concepts/agent-identity), not to any person. Personal claude.ai connectors apply only in DMs. +Connections belong to the [agent identity](/docs/claude-tag/concepts/agent-identity), not to any person. Personal claude.ai connectors apply in DMs. In organizations where [personal connectors in channels](/docs/claude-tag/concepts/personal-connectors) is available, Claude can also use a member's own connectors in a channel for that member's own tasks, after the member allows it. Name a bundle after what it grants, since the name is what you'll read when deciding which bundles to bind to a channel: `data-readonly`, `github-write`, `monitoring`, `gtm-tools`. A capability name stays meaningful when the same bundle serves several teams; a team name (`devprod-team`) works when one team's full access is the unit you'll reuse. @@ -117,13 +117,16 @@ To get there, open the bundle from the scope that covers the channel, under **Cl * **Domain**: the hostname to allow; a wildcard is allowed as the leftmost label, like `*.example.com`, and covers subdomains at any depth but not `example.com` itself * **Ports**: needed only when the service listens on something other than 443 +For example, to let Claude check a vendor's status page at `status.example.org`, enter `status.example.org` in the **Domain** field and leave the **Ports** field empty. + You don't have to predict the full list up front. When a request is blocked, Claude says so in the thread and names the host, with wording like "blocked by the network egress proxy" (that is, by Agent Proxy); add that host here and retry. If the host is listed and Claude still reports it blocked, check these in order: * **The bundle is attached to the channel's scope.** Claude can use a Domains entry only in channels whose scope, or an ancestor scope, has this bundle attached; see [Attach bundles to scopes](/docs/claude-tag/admins/attach-to-scope). * **The entry matches the exact host.** A wildcard like `*.example.com` doesn't cover `example.com` itself, and `www.example.com` and `example.com` are different hosts. * **The request didn't move to another host.** If the page redirects, or loads from a CDN or a sign-in host, allow that host too; Claude names the host it was blocked on. * **The port is listed.** Needed only when the service listens on something other than 443. -* **A minute has passed since you saved.** Agent Proxy picks up a new entry within about a minute, in existing threads as well as new ones, so retry in the same thread after a short wait. +* **A minute has passed since you saved the entry.** Agent Proxy picks up a new entry within about a minute, in existing threads as well as new ones, so retry in the same thread after a short wait. +* **The bundle was attached before the thread started.** A bundle you attach after a thread started isn't guaranteed to reach that thread, so start a fresh thread to use its entries. * **The request came from a channel, not a DM.** A bundle attached to a channel doesn't apply in DMs. Typical entries are hosts the work calls without a key, such as a docs site or a public API. Common package registries are usually already reachable through the [environment's Trusted access default](#broad-web-access-through-the-environment), and a host that needs a credential belongs in a [connection](#add-a-connection) instead. Entries appear below the form, and each one can be edited or removed from its row. @@ -169,7 +172,7 @@ For a custom connection, choose the credential type: | Bearer | API keys and OAuth bearer tokens. Most SaaS REST APIs. | | Basic | HTTP Basic authentication. | | Body parameter | A token the API expects in the request body or query string instead of a header. | -| AWS SigV4 | Signed requests to AWS APIs with an access key pair. | +| AWS SigV4 | Signed requests to AWS service endpoints with an access key pair. | | GCP access token (with Service Account Key) | Google Cloud APIs via a service-account JSON key. Google Workspace services like Drive and Calendar also use this; see [the Google guide](/docs/claude-tag/admins/connections/google). | | GCP IAP (with Service Account Key) | Google Cloud services behind Identity-Aware Proxy. | | OAuth 2.0 JWT bearer | Server-to-server OAuth. | @@ -200,7 +203,7 @@ Check the host against your account's region before saving. Some presets fill a After saving, you can narrow a connection. Select **Edit** on the connection's row in the bundle's **Credentials** tab. The **Edit connection** dialog lets you rename the connection and, where the connection has an allow rule, restrict it by HTTP method and path, for example to allow `GET` but not `DELETE`. -Agent Proxy starts applying a change within about a minute of your saving it, in existing threads as well as new ones. It evaluates connections and Domains entries from the most specific scope outward (channel, then workspace, then organization), and within a scope by priority; the first match decides. A request that matches no connection, no Domains entry, and nothing in the environment's network access is blocked. Private IP ranges and cloud metadata endpoints stay blocked regardless. +Agent Proxy starts applying an edit to a connection or a Domains entry within about a minute after you save it, in existing threads as well as new ones. It evaluates connections and Domains entries from the most specific scope outward (channel, then workspace, then organization), and within a scope by priority; the first match decides. A request that matches no connection, no Domains entry, and nothing in the environment's network access is blocked. Private IP ranges and cloud metadata endpoints stay blocked regardless. ### Connections vs claude.ai connectors @@ -210,16 +213,17 @@ The connection gallery lists credential types the agent can hold, not the connec A connection grants access; a plugin teaches Claude how to use it well. A plugin is a packaged set of skills: reusable instructions for working with a specific tool or following a specific process. Attach a plugin to the same Access bundle or scope that carries the connection, so the credential arrives with directions for using it. -A Datadog API key, for example, makes the API reachable, and a Datadog plugin tells Claude which endpoints answer which questions. Sessions in covered channels pick up attached plugins automatically, with nothing to install or enable. Channel members can also add plugins available to your organization from the channel's [Configure page](/docs/claude-tag/users/good-habits#configure-claude-for-a-channel), unless an admin has [restricted editing to admins](/docs/claude-tag/admins/attach-to-scope#restrict-who-can-set-channel-instructions). +A Datadog API key, for example, makes the API reachable, and a Datadog plugin tells Claude which endpoints answer which questions. Once you turn a plugin on for a bundle or add it to a scope, sessions in the channels that bundle or scope covers pick up the plugin automatically. Nobody in those channels has to turn that plugin on. A channel member can also add a plugin available to your organization, by asking Claude in the channel or from the channel's [Configure page](/docs/claude-tag/users/good-habits#configure-claude-for-a-channel), unless an admin has [restricted editing to admins](/docs/claude-tag/admins/attach-to-scope#restrict-who-can-set-channel-instructions). Anthropic provides plugins for common tools and processes, and you can add your own from a [skills repository](/docs/claude-tag/admins/skills-repo). To give Claude organization-wide skills, package them as a plugin. -Plugins attach in two places, and the two behave differently: +Admins and channel members turn plugins on in different places: * A plugin added directly on a scope (the plugin chips on the scope's panel) is enabled there as soon as you add it. * A bundle's **Plugins** tab lists the plugins available to your organization, each off until you toggle it on. +* A channel member can ask Claude to add a plugin to their channel, unless an admin has [restricted editing to admins](/docs/claude-tag/admins/attach-to-scope#restrict-who-can-set-channel-instructions). Claude proposes the change and adds the plugin only after someone in that channel selects **Confirm**. -Registering a plugin at the organization level makes it available, not active. It takes effect only where a bundle enables it or a scope adds it directly. +Adding a plugin for your whole organization makes it available, not active. The plugin takes effect only where a bundle enables it or a scope adds it directly. Adding or removing plugins and skills applies to new threads only. A thread already running keeps the set it began with; start a fresh thread to pick up changes. See [What survives between replies](/docs/claude-tag/concepts/how-it-works#what-survives-between-replies). diff --git a/content/claude/claude-tag/admins/attach-to-scope.md b/content/claude/claude-tag/admins/attach-to-scope.md index 2d8e11eb3..0300b93a3 100644 --- a/content/claude/claude-tag/admins/attach-to-scope.md +++ b/content/claude/claude-tag/admins/attach-to-scope.md @@ -57,7 +57,7 @@ To bind one bundle to several channels in one pass, open the bundle from a scope A channel that doesn't appear in the list yet needs a scope created for it: 1. On [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), find the workspace on the **Slack** tab under **Claude Tag's access** and select **Add channel**. -2. Paste the channel's ID into the **Channel ID** field. Channel IDs start with `C`, or with `G` for some older private channels. Copy the ID from the channel's details in Slack. +2. Pick the channel in the **Channel** field. Type a name to search public channels, or paste a channel ID or channel link copied from Slack. Private channels don't appear in the search results, so for a private channel, paste its ID from the channel's details in Slack. Channel IDs start with `C`, or with `G` for some older private channels. 3. Save, then bind bundles in the new scope's **Access bundles** section, the same as for a workspace. In a channel shared across more than one workspace in your Enterprise Grid, bundles bound to the channel or its workspace don't apply. See [Channels shared across workspaces in your Enterprise Grid](/docs/claude-tag/admins/restrict-access#channels-shared-across-workspaces-in-your-enterprise-grid) for what Claude does there instead. @@ -77,7 +77,13 @@ Each connector or repository row in these sections carries an origin line that s Select the scope name to open that scope, or the bundle name to open the bundle. -The grant still lives in a bundle. The item is added to the bundle that was created for that scope, or to the scope's only bundle when that bundle is bound nowhere else, and otherwise a new bundle is created for the scope. If the bundle created for the scope is now bound to other scopes too, the add is refused with a message telling you to manage that bundle's repositories and connectors in **Access bundles** instead, so adding here never widens another scope's access. +An item you add with the **+** button is still stored in a bundle, chosen in this order: + +1. The bundle that was created for that scope, if it exists +2. The scope's only bundle, if that bundle is bound nowhere else +3. A new bundle created for the scope + +When the receiving bundle is bound to other scopes too, the picker shows a note that the addition applies in every scope the bundle is bound to. ## Precedence when bundles overlap @@ -93,7 +99,7 @@ When two bundles each carry a credential for the same host: ### Repositories and plugins -Repository grants and plugins from every bound bundle are combined as a union; a channel gets every repo and plugin from any bundle in its chain. The **Access summary** section, shown when a scope you select on the Slack tab has any resolved connections or repositories, lists them with the bundle each one comes from. Plugins aren't listed there. The scope's **Plugins** section shows only the plugins attached at that scope, and plugins inherited from wider scopes and from bundles apply without appearing in it. +Repository grants and plugins from every bound bundle are combined as a union; a channel gets every repo and plugin from any bundle in its chain. To see what applies to a channel, select its scope on the **Slack** tab. The scope's panel lists everything that applies there in its **Connectors**, **Repositories**, and **Plugins** sections, inherited items included. Each row's origin line says **Inherited from** the wider scope or **Attached from** the bundle that carries it. Select the scope or bundle name in the origin line to open it. ### Custom instructions diff --git a/content/claude/claude-tag/admins/configure-github.md b/content/claude/claude-tag/admins/configure-github.md index 296384376..a965b9277 100644 --- a/content/claude/claude-tag/admins/configure-github.md +++ b/content/claude/claude-tag/admins/configure-github.md @@ -30,11 +30,13 @@ You link GitHub once for your Claude organization, then grant repositories per A - Click **Connect Claude to GitHub** (**Connect**, once any account is already linked) and complete the GitHub authorization. After authorizing, the page shows two sections: **Connected GitHub accounts** lists accounts already linked, with a **Type** column of **Organization** or **Personal**, and **Unlinked accounts** lists organizations where the Claude GitHub App is installed but not yet linked. Claude Tag uses **Organization** accounts only; a **Personal** row is someone's own GitHub account and can't be used for your repositories. + Click **Connect Claude to GitHub** (**Connect**, once any account is already linked) and complete the GitHub authorization. After authorizing, the **Connected GitHub accounts** table lists the GitHub accounts the Claude GitHub App is installed on. The **Type** column reads **Organization** or **Personal**. An account already linked to your Claude organization shows **Connected**, and one that still needs linking shows **Not linked**. Claude Tag uses **Organization** accounts only; a **Personal** row is someone's own GitHub account and can't be used for your repositories. - If your organization is under **Unlinked accounts**, click **Link** next to it. If it isn't listed at all, click **Install on another organization** and complete the install on github.com; you're returned to this page with the organization under **Connected GitHub accounts** as **Connected**. + If your organization's row reads **Not linked**, select the **Link** button next to it. If it isn't listed at all, click **Install on another organization** and complete the install on github.com; you're returned to this page with the organization under **Connected GitHub accounts** as **Connected**. + + An organization can also be missing from the table because single sign-on (SSO) on GitHub hides it. A note under the table counts the organizations hidden that way. To make them appear, authorize the Claude app for those organizations on GitHub. * A disabled **Link** button means you can't link that account yet; the button's tooltip names the reason, such as not being an owner of that GitHub organization * A **Needs permissions** status means the installation has a pending request; **Review permissions** takes you to github.com to approve it @@ -44,7 +46,7 @@ You link GitHub once for your Claude organization, then grant repositories per A ## Grant repository access -The remaining steps are in the Claude Tag admin page, not GitHub's settings. Repository grants live on the Access bundle; editing a bundle's Repositories tab requires the **Owner** role in your Claude organization. A [channel manager](/docs/claude-tag/admins/restrict-access#delegate-channel-setup-to-channel-managers) can also add repositories to their own channel, limited to repositories their GitHub account can write to. +The remaining steps are in the Claude Tag admin page, not GitHub's settings. Repository grants live on the Access bundle; editing a bundle's Repositories tab requires the **Owner** role in your Claude organization. A [channel manager](/docs/claude-tag/admins/restrict-access#delegate-channel-setup-to-channel-managers) can also add repositories to their own channel, limited to repositories their GitHub account is an admin of. diff --git a/content/claude/claude-tag/admins/connections/custom.md b/content/claude/claude-tag/admins/connections/custom.md index 754bb6641..9493f7009 100644 --- a/content/claude/claude-tag/admins/connections/custom.md +++ b/content/claude/claude-tag/admins/connections/custom.md @@ -43,7 +43,7 @@ After saving, where the credential has an allow rule, you can narrow it by HTTP | **Bearer** | An API key or token sent as `Authorization: Bearer `. Most SaaS REST APIs. | | **Basic** | HTTP Basic authentication (`Authorization: Basic `) | | **Body parameter** | A token the API expects in the request body or query string instead of a header | -| **AWS SigV4** | AWS services and APIs that require Signature Version 4 signing | +| **AWS SigV4** | AWS service APIs on `amazonaws.com` endpoints that require Signature Version 4 signing | | **GCP access token (with Service Account Key)** | Google Cloud APIs; the proxy exchanges the SA key for an access token | | **GCP IAP (with Service Account Key)** | Google Cloud services behind Identity-Aware Proxy | | **OAuth 2.0 JWT bearer** | APIs that accept a JWT signed with your private key in exchange for an access token (DocuSign, for example) | @@ -56,14 +56,22 @@ If you're unsure which type, check the service's API authentication docs for whi ### AWS SigV4 -Use the **AWS SigV4** credential type for AWS service APIs (S3, Lambda, Amazon Bedrock, an API Gateway endpoint with IAM authorization). Agent Proxy reads the AWS service and signing region from the hostname and signs each outbound request with the credential at the boundary, so neither the model nor the sandbox holds the keys. The host must be an `amazonaws.com` endpoint; the proxy can't sign requests to an API Gateway custom domain or to a non-AWS API that uses Signature Version 4. +Use the **AWS SigV4** credential type for AWS service APIs such as S3, Lambda, and DynamoDB. Agent Proxy reads the AWS service and signing region from the hostname and signs each outbound request with the credential at the boundary, so neither the model nor the sandbox holds the keys. -| Field | Value | -| :---------------- | :---------------------------------------------------------------------------------------------------------------------- | -| Access key ID | The IAM user or role access key, for example `AKIAIOSFODNN7EXAMPLE` | -| Secret access key | The matching secret access key | -| Session token | Optional. Only needed for temporary credentials from AWS STS. | -| Allowed websites | The AWS service endpoint host, for example `s3.us-east-1.amazonaws.com` or `abc123.execute-api.us-east-1.amazonaws.com` | +Agent Proxy signs requests to hostnames in these forms: + +* `service.region.amazonaws.com` +* S3 virtual-hosted-style endpoints, for example `my-bucket.s3.us-east-1.amazonaws.com` +* The regionless hosts of global AWS services such as IAM, STS, and CloudFront + +Apart from S3 virtual-hosted-style endpoints, Agent Proxy can't read the service from a hostname that has extra parts before the service name, so requests to those hosts fail before reaching AWS. Examples include the host of an API Gateway invoke URL, such as `abc123.execute-api.us-east-1.amazonaws.com`, and the host of an Amazon Managed Workflows for Apache Airflow (MWAA) environment. The proxy also can't sign requests to an API Gateway custom domain or to a non-AWS API that uses Signature Version 4. + +| Field | Value | +| :---------------- | :---------------------------------------------------------------------------------------------------------- | +| Access key ID | The IAM user or role access key, for example `AKIAIOSFODNN7EXAMPLE` | +| Secret access key | The matching secret access key | +| Session token | Optional. Only needed for temporary credentials from AWS STS. | +| Allowed websites | The AWS service endpoint host, for example `s3.us-east-1.amazonaws.com` or `lambda.us-east-1.amazonaws.com` | Use long-lived credentials from a dedicated IAM user where you can. Temporary STS credentials work but expire on their own schedule, and the connection stops working when they do; you re-enter all three values to rotate. diff --git a/content/claude/claude-tag/admins/connections/google.md b/content/claude/claude-tag/admins/connections/google.md index 249aad243..7e37e502e 100644 --- a/content/claude/claude-tag/admins/connections/google.md +++ b/content/claude/claude-tag/admins/connections/google.md @@ -14,7 +14,7 @@ export const BetaNote = () => Claude Tag is in public beta. Features and b Connecting Google Drive, Calendar, and Gmail lets Claude read documents, spreadsheets, calendar events, and email from any channel under the bundle's scope. You add it as a connection inside an [Access bundle](/docs/claude-tag/admins/add-connections); the credential belongs to the agent, not to any person. -This is an HTTP API connection, not a personal claude.ai connector. A member's own Google connector applies only in DMs. +This is an HTTP API connection, not a personal claude.ai connector. A member's own Google connector applies in DMs. In organizations where [personal connectors in channels](/docs/claude-tag/concepts/personal-connectors) is available, Claude can also use it in a channel for that member's own tasks, after the member allows it. ## Choose OAuth or a service account diff --git a/content/claude/claude-tag/admins/customize.md b/content/claude/claude-tag/admins/customize.md index 07e6ec487..374ab1096 100644 --- a/content/claude/claude-tag/admins/customize.md +++ b/content/claude/claude-tag/admins/customize.md @@ -25,20 +25,20 @@ Connections and plugins decide what Claude *can do*; instructions and memory sha Access and organization-wide behavior are set at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), per scope (a scope is a channel, a workspace, or your whole organization), so the same agent can work differently in different channels. Most controls below are Owner-only. -| Setting | What it does | More | -| :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------- | -| Custom instructions | Standing guidance read in every session on a scope, like team conventions. Outranks channel memory. | [Add custom instructions](/docs/claude-tag/admins/attach-to-scope#add-custom-instructions) | -| Respond automatically | Whether Claude replies to a channel's messages without an @-mention. Channel members can change it too, from Slack or the channel's Configure page. | [Turn automatic replies on or off](/docs/claude-tag/users/when-claude-responds#turn-automatic-replies-on-or-off) | -| Plugins | Bundles of skills that teach Claude how to use a specific tool | [Attach plugins](/docs/claude-tag/admins/add-connections#attach-plugins) | -| Connections | Which systems it can reach from each channel | [Add connections](/docs/claude-tag/admins/add-connections) | -| Default model | Which Claude model handles sessions in a scope | [Choose the model for a scope](#choose-the-model-for-a-scope) | -| Auto mode allow rules | Actions pre-approved in a scope's sessions that Claude's permission checker would otherwise flag or stop | [Auto mode allow rules](#auto-mode-allow-rules) | -| Environment | Which cloud environment a scope's sessions run in | [Configure the environment for a scope](#configure-the-environment-for-a-scope) | -| Claude Tag version | Which generation answers (New, Legacy, or Off) in a scope. On the Team plan, a single [**Enable Claude Tag** switch](/docs/claude-tag/admins/workspaces#turn-claude-tag-on-or-off-on-the-team-plan) replaces it. | [Migrate from the earlier Claude in Slack](/docs/claude-tag/admins/workspaces#set-the-version-for-a-scope) | +| Setting | What it does | More | +| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------- | +| Custom instructions | Standing guidance read in every session on a scope, like team conventions. Outranks channel memory. | [Add custom instructions](/docs/claude-tag/admins/attach-to-scope#add-custom-instructions) | +| Respond automatically | Whether Claude replies to a channel's messages without an @-mention. **Respond automatically** exists only on channels, not on workspaces or your whole organization. Channel members can change it too, from Slack or the channel's Configure page. | [Turn automatic replies on or off](/docs/claude-tag/users/when-claude-responds#turn-automatic-replies-on-or-off) | +| Plugins | Bundles of skills that teach Claude how to use a specific tool | [Attach plugins](/docs/claude-tag/admins/add-connections#attach-plugins) | +| Connections | Which systems it can reach from each channel | [Add connections](/docs/claude-tag/admins/add-connections) | +| Default model | Which Claude model handles sessions in a scope | [Choose the model for a scope](#choose-the-model-for-a-scope) | +| Auto mode allow rules | Actions pre-approved in a scope's sessions that Claude's permission checker would otherwise flag or stop | [Auto mode allow rules](#auto-mode-allow-rules) | +| Environment | Which cloud environment a scope's sessions run in | [Configure the environment for a scope](#configure-the-environment-for-a-scope) | +| Claude Tag version | Which generation answers (New, Legacy, or Off) in a scope. On the Team plan, a single [**Enable Claude Tag** switch](/docs/claude-tag/admins/workspaces#turn-claude-tag-on-or-off-on-the-team-plan) replaces it. | [Migrate from the earlier Claude in Slack](/docs/claude-tag/admins/workspaces#set-the-version-for-a-scope) | ### Channel connections are separate from personal connectors -An Owner configures Claude's connections, plugins, and skills, and they apply per scope. They are separate from the connectors, skills, or MCP servers an individual user has set up in their own claude.ai or Claude Desktop account. A user's personal connectors are not available to Claude in a channel, and the channel's connections are not listed among that user's personal connectors in claude.ai. Projects in claude.ai are separate too. Claude doesn't read a Project's instructions or knowledge in Slack, and a channel can't be pointed at a Project. Put standing guidance for a channel in its [custom instructions](/docs/claude-tag/admins/attach-to-scope#add-custom-instructions). +An Owner configures Claude's connections, plugins, and skills, and they apply per scope. They are separate from the connectors, skills, or MCP servers an individual user has set up in their own claude.ai or Claude Desktop account. A user's personal connectors are not part of a channel's configuration, and the channel's connections are not listed among that user's personal connectors in claude.ai. In organizations where [personal connectors in channels](/docs/claude-tag/concepts/personal-connectors) is available, Claude can use a user's personal connectors in a channel for that user's own tasks, after the user allows it. That work runs with the user's permissions and is recorded under their name. Projects in claude.ai are separate too. Claude doesn't read a Project's instructions or knowledge in Slack, and a channel can't be pointed at a Project. Put standing guidance for a channel in its [custom instructions](/docs/claude-tag/admins/attach-to-scope#add-custom-instructions). To give Claude access to a tool that is not in the built-in connection list, including a custom MCP server, see [add a custom connection](/docs/claude-tag/admins/connections/custom). @@ -60,7 +60,7 @@ Members can also tailor how Claude works in the channel from its Configure page The Configure page also shows the channel's resolved access. Its **Tools and access** tab lists the channel's resolved connections and any allowed domains. Members can see those lists but not change them there. The same tab's **Plugins** card lists the plugins available to Claude in the channel; members can add plugins there unless an admin has [restricted editing to admins](/docs/claude-tag/admins/attach-to-scope#restrict-who-can-set-channel-instructions). The card groups plugins **Added by your admin**, which members can't remove, separately from plugins **Added by members**, which members can remove. The Configure page's **Routines** tab lists the channel's [routines](/docs/claude-tag/users/proactivity) with each one's schedule, status, and last run. -On the Enterprise plan, an Owner can name [channel managers](/docs/claude-tag/admins/restrict-access#delegate-channel-setup-to-channel-managers) for a channel. They set the channel's default model, repositories, and connections from the same page. +On the Enterprise plan, an Owner can name [channel managers](/docs/claude-tag/admins/restrict-access#delegate-channel-setup-to-channel-managers) for a channel. They set the channel's default model, repositories, connections, and plugins from the same page. ## Choose the model for a scope @@ -126,7 +126,7 @@ When a session starts, Claude uses the first environment it finds, in this order 3. The **Environment** setting on **Default Slack access** 4. The [organization's default environment](https://code.claude.com/docs/en/cloud-environments#the-default-environment), which an Owner chooses under **Cloud sessions** at [`claude.ai/admin-settings/claude-code`](https://claude.ai/admin-settings/claude-code) -If you haven't chosen an environment on a scope, its picker shows **Organization default**, but sessions there may still run on an environment you chose on the workspace or on **Default Slack access**. If a channel's sessions aren't on the environment you expect, see [channel sessions use the wrong environment](/docs/claude-tag/admins/troubleshooting#channel-sessions-use-the-wrong-environment-or-can%E2%80%99t-find-one). +If you haven't chosen an environment on a scope, its picker shows **Organization default**, but sessions there may still run on an environment you chose on the workspace or on **Default Slack access**. In a channel where Claude runs with [channel-only access](/docs/claude-tag/admins/restrict-access#how-channel-only-works) because a guest is present, sessions run on the standard environment regardless of these settings. If a channel's sessions aren't on the environment you expect, see [channel sessions use the wrong environment](/docs/claude-tag/admins/troubleshooting#channel-sessions-use-the-wrong-environment-or-can%E2%80%99t-find-one). ## Auto mode allow rules diff --git a/content/claude/claude-tag/admins/restrict-access.md b/content/claude/claude-tag/admins/restrict-access.md index 12d46ab76..ce2eac74b 100644 --- a/content/claude/claude-tag/admins/restrict-access.md +++ b/content/claude/claude-tag/admins/restrict-access.md @@ -124,7 +124,7 @@ If someone invites the app into another channel afterward, Claude stays silent t DMs, guest channels, and shared channels sit outside the version setting: * **DMs.** The version setting doesn't cover them. To close those off too, turn off the [**Allow direct messages**](#allow-or-disable-direct-messages) toggle. -* **Guest channels.** By default Claude is off in any channel that includes a Slack guest. If a chosen channel has guests, also set [Allow Claude to work in channels with guests](#restrict-guest-channels) to **Allow** on its scope. +* **Guest channels.** By default Claude is off in any channel that includes a Slack guest. If a chosen channel has guests, also set [Allow Claude to work in channels with guests](#restrict-guest-channels) to **Allow** or **Channel only** on its scope. * **Shared channels.** A [channel shared across workspaces in your Enterprise Grid](#channels-shared-across-workspaces-in-your-enterprise-grid) takes its settings from **Default Slack access** only, and Claude [doesn't operate in Slack Connect channels](#externally-shared-channels) at all; neither can serve as a chosen channel. To control who can use Claude in the allowed channels, turn on the [restriction toggle](#restrict-who-can-use-claude); to cap what a channel spends, [set a per-channel spend limit](#set-spend-limits). @@ -142,11 +142,42 @@ A channel that matches a blocked pattern stays off-limits even when it also matc ### Restrict guest channels -By default, Claude is disabled in any channel that includes a Slack guest. To allow it there, set **Allow Claude to work in channels with guests** to **Allow** for the scope covering the channel; **Restrict** (the default) keeps it off wherever a guest is present. The setting is at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), on the **Slack** tab under **Claude Tag's access**, in the scope's collapsed **Advanced** section. +By default, Claude is disabled in any channel that includes a Slack guest. You can change this default per scope with the **Allow Claude to work in channels with guests** setting, at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag) → **Claude Tag's access** → **Slack** → the scope → the collapsed **Advanced** section. The setting has three values: -**Allow** applies to every guest channel the scope covers, and guests in those channels can see Claude's replies and interact with it. To open one channel rather than a whole workspace, set it on the channel's own scope. +| Value | What Claude does in a channel that includes a guest | +| ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Restrict** (default) | Doesn't reply. When someone mentions it, Claude posts a short notice that it doesn't respond in channels that include guests, with a link to this setting. | +| **Channel only** | Replies, but while a guest is present it runs with [channel-only access](#how-channel-only-works). The channel's own instructions and any access bundle attached directly to the channel still apply. | +| **Allow** | Replies with the full access the scope gives it. Bundles, connections, and instructions from the workspace and from **Default Slack access** apply, along with repositories, memory, and skills. | -**Allow** controls whether Claude replies, not what it can search. Workspace search is unavailable in any channel that includes a guest, even when the setting is **Allow**. Search results could include content from channels the guests can't see, the same reason Claude doesn't search private channels. To run a search that covers the workspace, ask from a channel without guests. +A channel without its own value shows **Inherit** and takes the value from its workspace, or from **Default Slack access**. Only an organization Owner can choose **Allow** or set a scope back to **Inherit**. The setting applies to every guest channel the scope covers. To open one channel rather than a whole workspace, set it on the channel's own scope. + +Under every value, guests in the channel can read what Claude posts there. + +In any channel that includes a guest, even under **Allow**, Claude won't search the workspace, look up people or channels, or read channels other than the one it's in. The results could include content the guests can't see in Slack, which is also why Claude doesn't search private channels. To have Claude search, look someone up, or read another channel, ask from a channel without guests. + +#### How Channel only works + +Use **Channel only** to keep Claude available in a channel shared with contractors, clients, or agency partners without exposing the rest of the organization's setup to that conversation. While a guest is in the channel, Claude has: + +* No [access bundles](/docs/claude-tag/admins/attach-to-scope) from the workspace or from **Default Slack access**. A bundle attached directly to this channel's scope still applies, with its connections, instructions, and plugins. Attach to a guest channel only what you're comfortable with Claude using in a conversation guests can read. +* No connections set directly on the channel. +* No repositories, including any in a bundle attached to the channel. +* No instructions set on the workspace or the organization. Instructions set on the channel itself still apply. +* No memory, including this channel's own, and no skills. +* No [environment set on the scope](/docs/claude-tag/admins/customize#configure-the-environment-for-a-scope). The session runs on the standard environment, so the setup script, environment variables, and network access level of the environment you chose don't apply while a guest is present. + +Claude decides which access applies when a conversation starts. When no guest is in the channel, new conversations get full access, as under **Allow**. + +A conversation that was underway before the first guest joined doesn't keep its full access. The next message from a workspace member in that thread starts the conversation over with channel-only access. A guest who writes there before a member does gets the same notice as under **Restrict**. + +While a guest is present, Claude replies only to mentions and to threads it's already part of. It doesn't act on other messages in the channel on its own, even where [**Respond automatically**](/docs/claude-tag/users/when-claude-responds#turn-automatic-replies-on-or-off) is on. + +A guest can talk to Claude by mentioning `@Claude` or by replying in a thread Claude is part of, and Claude answers them. A guest can't approve a tool or permission request, and can't restart, mute, fork, or stop the session. If a guest clicks approve, nothing is granted. + +Treat a channel's instructions, and the instructions in any bundle attached to the channel, as visible to everyone in that channel, including guests. Under **Channel only**, Claude follows them in replies that guests can read and respond to. + +**Channel only** takes effect where the **New** [Claude Tag version](/docs/claude-tag/admins/workspaces#set-the-version-for-a-scope) answers. On a scope where **Legacy** answers, a channel that includes a guest is treated as **Restrict**. ### Externally shared channels @@ -181,29 +212,31 @@ A spend limit is a cap on how much of your organization's usage balance Claude T * **Organization-wide limit.** Caps total Claude Tag spend across every channel. * **Default spend limit.** A default limit applied to each channel that doesn't have its own. * **Per-channel limits.** Set on any channel from its row in the per-channel spend table, in addition to the organization limit. A channel doesn't need its own scope to take a limit. -* **Per-channel spend.** How much each channel has spent against its limit in the current billing period, at list price, on the same page. +* **Per-channel spend.** How much each channel has spent against its limit in the current billing period, at list price, on the same page. Usage covered by a promotional credit isn't counted here and shows as \$0.00. The **Spend by channel** table at [`claude.ai/analytics/claude-tag`](https://claude.ai/analytics/claude-tag) shows list-price spend including covered usage. Work that would exceed a limit is declined rather than silently truncated. A user blocked by a limit can request more usage from their admin in Slack, and the admin notification names whether the usage balance or the limit caused the block. ### Usage analytics -Spend trends live at [`claude.ai/analytics/claude-tag`](https://claude.ai/analytics/claude-tag), the Claude Tag section of the Analytics dashboard, refreshed once a day. It shows total and projected month-end spend for the period you pick, spend by channel with a CSV export, DM versus channel spend, [spend by kind of work](/docs/claude-tag/admins/set-spend-limit#see-spend-by-kind-of-work), and any promotional credit, as billed after your discount. Anyone with permission to view your organization's Analytics dashboard can open it; it has no controls, so use the usage page to change a limit. The two pages link to each other. +Spend trends live at [`claude.ai/analytics/claude-tag`](https://claude.ai/analytics/claude-tag), the Claude Tag section of the Analytics dashboard, refreshed once a day. It shows total and projected month-end spend for the period you pick, spend by channel with a CSV export, DM versus channel spend, [spend by kind of work](/docs/claude-tag/admins/set-spend-limit#see-spend-by-kind-of-work), and any promotional credit. Billed figures are shown after your discount. Anyone with permission to view your organization's Analytics dashboard can open it; it has no controls, so use the usage page to change a limit. The two pages link to each other. + +When the period you pick falls within the current month, the **Spend by channel** table shows a **Billed** column and a **List price** column. Usage covered by a promotional credit shows as \$0.00 under **Billed** and at its list price under **List price**. ## Delegate channel setup to channel managers A channel manager is a member of your Claude organization who can set up Claude in specific channels without the Owner role. Channel managers are available on the Enterprise plan, and you must be an Owner to add or remove them. -You name channel managers one channel at a time. For that channel, a channel manager adds repositories and credentials, sets the default model, and edits channel instructions. Every other setting at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag) stays with Owners. +You name channel managers one channel at a time. For that channel, a channel manager sets the default model, adds repositories, manages credentials and plugins in the channel's bundle, and edits channel instructions. Every other setting at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag) stays with Owners. ### What a channel manager can do on the Configure page A channel manager has to be a member of the channel in Slack. The channel's [Configure page](/docs/claude-tag/users/good-habits#configure-claude-for-a-channel), reached from the **Configure** link in any Claude reply, is split into tabs. In a channel you assigned to them, a channel manager sees the **Default model** card on the **General** tab and the repository and access bundle cards on the **Tools and access** tab. Members without the role don't see those cards. Owners and Admins also see an **Admin** tab, whose **Channel settings** card holds some of the channel scope's settings from admin settings. -| Setting | What a channel manager can do | -| :----------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Default model** | Choose the model new threads in the channel start on, from the models your organization allows. **Inherit** keeps the workspace or organization default | -| **Repositories** | Add repositories beyond the ones your bundles already grant the channel. They can add only repositories their own GitHub account can write to | -| **Access bundles** | Add, rotate, test, and remove credentials in the bundle Claude created for the channel and in any bundle they created for it. If the channel has no bundle yet, they can create one. They can't edit a bundle you created or a bundle that other channels share | +| Setting | What a channel manager can do | +| :----------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| **Default model** | Choose the model new threads in the channel start on, from the models your organization allows. **Inherit** keeps the workspace or organization default | +| **Repositories** | Add repositories beyond the ones your bundles already grant the channel. They can add only repositories their own GitHub account is an admin of | +| **Access bundles** | Add, rotate, test, and remove credentials, and turn [plugins](/docs/claude-tag/admins/add-connections#attach-plugins) on or off, in the bundle Claude created for the channel and in any bundle they created for it. If the channel has no bundle yet, they can create one. They can't edit a bundle you created or a bundle that other channels share | When a channel manager adds a credential, Claude also allows the host that credential uses. Channel managers can't change the bundle's domains or rules in any other way. Credentials that use Claude's own identity (mutual TLS, AWS or GCP service identity, and IAP) stay Owner-only: a channel manager can't add, change, or rotate one, but can delete one from the channel's bundle, including one an Owner added. If that happens, Claude loses access to that service until an Owner adds the credential back. @@ -259,19 +292,19 @@ The [Audit page](/docs/claude-tag/admins/audit) at [`claude.ai/admin-settings/cl Creating bundles, binding them to scopes, and pairing workspaces need an Owner. A [channel manager](#delegate-channel-setup-to-channel-managers) configures only the channels assigned to them. Everything else happens inside the channel and is open to its members. The table lists each action and who can take it. -| Action | Owner | Channel manager | Channel member | -| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------ | :---------------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------- | -| Pair a workspace | Yes | No | No | -| Create, rename, delete, or bind an Access bundle | Yes | Only to create a bundle for an assigned channel | No | -| Edit a bundle's Repositories, Plugins, or Instructions tab | Yes | No | No | -| Edit a bundle's Credentials or Domains tab | Yes | Credentials tab only, in a bundle created for an assigned channel | No | -| Add a channel manager | Yes | No | No | -| Set a channel's default model or repositories from the Configure page | Yes | Yes, in assigned channels | No | -| Set a channel's default model by asking Claude in a thread, unless the scope's [Channel member edits](/docs/claude-tag/admins/attach-to-scope#restrict-who-can-set-channel-instructions) setting is **Block** | Yes | Yes | Yes | -| Write channel memory | Yes, in the channel | Yes, in the channel | Yes | -| Set channel instructions from the Configure link | Yes | Yes, in assigned channels | Yes, unless the scope's [Channel member edits](/docs/claude-tag/admins/attach-to-scope#restrict-who-can-set-channel-instructions) setting blocks it | -| Create, list, or disable a scheduled job in the channel | Yes, in the channel | Yes, in the channel | Yes | -| Remove Claude from a channel | Yes | Yes, with `/remove`, unless your Slack admin restricts it | Yes, with `/remove`, unless your Slack admin restricts it | +| Action | Owner | Channel manager | Channel member | +| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------ | :-------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------- | +| Pair a workspace | Yes | No | No | +| Create, rename, delete, or bind an Access bundle | Yes | Only to create a bundle for an assigned channel | No | +| Edit a bundle's Repositories, Domains, or Instructions tab | Yes | No | No | +| Edit a bundle's Credentials or Plugins tab | Yes | Yes, in a bundle created for an assigned channel | No | +| Add a channel manager | Yes | No | No | +| Set a channel's default model or repositories from the Configure page | Yes | Yes, in assigned channels | No | +| Set a channel's default model by asking Claude in a thread, unless the scope's [Channel member edits](/docs/claude-tag/admins/attach-to-scope#restrict-who-can-set-channel-instructions) setting is **Block** | Yes | Yes | Yes | +| Write channel memory | Yes, in the channel | Yes, in the channel | Yes | +| Set channel instructions from the Configure link | Yes | Yes, in assigned channels | Yes, unless the scope's [Channel member edits](/docs/claude-tag/admins/attach-to-scope#restrict-who-can-set-channel-instructions) setting blocks it | +| Create, list, or disable a scheduled job in the channel | Yes, in the channel | Yes, in the channel | Yes | +| Remove Claude from a channel | Yes | Yes, with `/remove`, unless your Slack admin restricts it | Yes, with `/remove`, unless your Slack admin restricts it | Scheduled jobs run with the channel's credentials, so a member creating one can't reach anything the channel itself can't. diff --git a/content/claude/claude-tag/admins/set-spend-limit.md b/content/claude/claude-tag/admins/set-spend-limit.md index 521f66a51..3a94db977 100644 --- a/content/claude/claude-tag/admins/set-spend-limit.md +++ b/content/claude/claude-tag/admins/set-spend-limit.md @@ -10,7 +10,7 @@ export const BetaNote = () => Claude Tag is in public beta. Features and b -Work Claude does in channels bills to your **organization's usage balance**, not to individual seats. The **spend limit** is a cap you set on how much of that balance Claude Tag can use each billing period. +Work Claude does in channels bills to your **organization's usage balance**, not to individual seats. The **spend limit** is a cap you set on how much of that balance Claude Tag can use each month. | Work | Bills to | Capped by | | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------- | :---------------------------------------------------------------------------------------------------- | @@ -35,11 +35,11 @@ Not every organization sees this page. A trial organization that hasn't enabled - Enter an amount in your organization's billing currency. The spend limit resets at the start of each billing period and applies across every paired workspace. You can change it any time. + Enter an amount in your organization's billing currency. The spend limit resets at the start of each month and applies across every paired workspace. You can change it any time. -There's no published per-task cost guidance. For a pilot, set a spend limit you're comfortable with for the first billing period, then watch the per-channel usage breakdown on the same page and adjust. +There's no published per-task cost guidance. For a pilot, set a spend limit you're comfortable with for the first month, then watch the per-channel usage breakdown on the same page and adjust. If a promotional credit covers the pilot's usage, that breakdown shows \$0.00. In that case, watch the **List price** column of the **Spend by channel** table at [`claude.ai/analytics/claude-tag`](https://claude.ai/analytics/claude-tag) instead. ## What happens when the spend limit is reached @@ -64,7 +64,9 @@ Per-channel limits and the per-channel spend breakdown are on the same usage pag ## Attribute costs by channel -In claude.ai you see spend per channel, not per user. The usage page at [`claude.ai/admin-settings/usage/claude-tag`](https://claude.ai/admin-settings/usage/claude-tag) shows each channel's spend. Channel work bills to your organization's usage balance, not to any user's seat. +In claude.ai you see spend per channel, not per user. Channel work bills to your organization's usage balance, not to any user's seat. + +The usage page at [`claude.ai/admin-settings/usage/claude-tag`](https://claude.ai/admin-settings/usage/claude-tag) shows spend broken down by channel, at list price. Usage covered by a promotional credit isn't counted there and shows as \$0.00. To see each channel's list-price spend for the current month including covered usage, use the **List price** column of the **Spend by channel** table at [`claude.ai/analytics/claude-tag`](https://claude.ai/analytics/claude-tag). To attribute spend to teams or departments for showback or chargeback reporting, structure channels so each maps to one team or department, and give those channels [their own scopes](/docs/claude-tag/admins/attach-to-scope). The per-channel breakdown then reads as your per-team report, and per-channel spend limits act as team-level budgets. diff --git a/content/claude/claude-tag/admins/setup-overview.md b/content/claude/claude-tag/admins/setup-overview.md index 8ac854ebe..21cb57f98 100644 --- a/content/claude/claude-tag/admins/setup-overview.md +++ b/content/claude/claude-tag/admins/setup-overview.md @@ -23,16 +23,16 @@ Go to [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/c The console saves your progress, so you can leave and come back to where you stopped. When you've launched, [verify your setup](#verify-your-setup). - | Prerequisite | Why you need it | If you don't have it | - | :------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | A **Team or Enterprise plan** on claude.ai | Claude Tag is available on Team and Enterprise plans, on Anthropic's first-party service. It isn't available on individual plans (Free, Pro, or Max), or for third-party deployments. | Start a Team or Enterprise plan at [claude.com/pricing](https://claude.com/pricing) | - | A Claude organization **without Zero Data Retention (ZDR)** | Claude Tag stores channel memory and session transcripts, which ZDR doesn't permit. | Claude Tag isn't available to ZDR organizations | - | **Routines** enabled for your Claude organization | Until it is, Claude answers every mention and DM with a reply that it's unavailable and does no work. | An admin enables Routines at [`claude.ai/admin-settings/claude-code`](https://claude.ai/admin-settings/claude-code) | - | **Owner** role in the Claude organization you're setting up | Pairing a workspace and creating Access bundles are Owner-only writes. Roles are per organization, so being an Owner elsewhere doesn't carry over. | Ask an Owner to run setup, or have one promote you at [`claude.ai/admin-settings/members`](https://claude.ai/admin-settings/members) | - | A **Slack workspace admin** | Running `@Claude connect` requires a Slack workspace admin; installing the app usually does too. | If that's someone else, [send them the install request](#if-you-re-not-the-slack-workspace-admin) early (app approval can take time), and plan to be online together when you pair; pairing codes expire 15 minutes after they're issued | - | **Usage credits** (Team plans) | Channel work draws from your organization's usage balance; on a Team plan nothing runs until credits are loaded. | Check whether your organization has a [launch usage credit](https://support.claude.com/en/articles/15575654-claude-tag-launch-promo-for-claude-team-and-enterprise) before buying; otherwise, buy credits at [`claude.ai/admin-settings/usage`](https://claude.ai/admin-settings/usage) | - | *(Optional)* The **Claude GitHub App** linked to your Claude organization | Linking GitHub first turns setup's GitHub step into repository selection instead of an app install. | [Link your GitHub organization](/docs/claude-tag/admins/configure-github#link-your-github-organization) first, or grant repository access after setup | - | *(Optional)* A **channel to test in** | You'll invite Claude to a channel to [verify your setup](#verify-your-setup). | Create a private Slack channel for the pilot, or pick any existing one | + | Prerequisite | Why you need it | If you don't have it | + | :------------------------------------------------------------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | A **Team or Enterprise plan** on claude.ai | Claude Tag is available on Team and Enterprise plans, on Anthropic's first-party service. It isn't available on individual plans (Free, Pro, or Max), or for third-party deployments. | Start a Team or Enterprise plan at [claude.com/pricing](https://claude.com/pricing) | + | A Claude organization **without Zero Data Retention (ZDR) or customer-managed encryption (CMEK)** | Claude Tag stores channel memory and session transcripts, which ZDR doesn't permit. A CMEK policy doesn't allow Claude Tag either. | Claude Tag isn't available to organizations with a ZDR or CMEK policy | + | **Routines** enabled for your Claude organization | Until it is, Claude answers every mention and DM with a reply that it's unavailable and does no work. | An admin enables Routines at [`claude.ai/admin-settings/claude-code`](https://claude.ai/admin-settings/claude-code) | + | **Owner** role in the Claude organization you're setting up | Pairing a workspace and creating Access bundles are Owner-only writes. Roles are per organization, so being an Owner elsewhere doesn't carry over. | Ask an Owner to run setup, or have one promote you at [`claude.ai/admin-settings/members`](https://claude.ai/admin-settings/members) | + | A **Slack workspace admin** | Running `@Claude connect` requires a Slack workspace admin; installing the app usually does too. | If that's someone else, [send them the install request](#if-you-re-not-the-slack-workspace-admin) early (app approval can take time), and plan to be online together when you pair; pairing codes expire 15 minutes after they're issued | + | **Usage credits** (Team plans) | Channel work draws from your organization's usage balance; on a Team plan nothing runs until credits are loaded. | Check whether your organization has a [launch usage credit](https://support.claude.com/en/articles/15575654-claude-tag-launch-promo-for-claude-team-and-enterprise) before buying; otherwise, buy credits at [`claude.ai/admin-settings/usage`](https://claude.ai/admin-settings/usage) | + | *(Optional)* The **Claude GitHub App** linked to your Claude organization | Linking GitHub first turns setup's GitHub step into repository selection instead of an app install. | [Link your GitHub organization](/docs/claude-tag/admins/configure-github#link-your-github-organization) first, or grant repository access after setup | + | *(Optional)* A **channel to test in** | You'll invite Claude to a channel to [verify your setup](#verify-your-setup). | Create a private Slack channel for the pilot, or pick any existing one | If any of your services restrict traffic by IP, file the [network requirements](/docs/claude-tag/admins/network-requirements) request with your network team early; in many organizations, IP allowlist changes take days to approve. @@ -113,11 +113,11 @@ See [Give Claude access](/docs/claude-tag/admins/add-connections) for which serv ## Connect GitHub -**Where:** the Claude Tag setup page at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag). If the app isn't installed yet, the step sends you to github.com to install it. +**Where:** the Claude Tag setup page at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag). If the app isn't installed yet, select **Start setup** on the step to open your [Claude GitHub settings](/docs/claude-tag/admins/configure-github), where you sign in with GitHub, authorize your organization, and install the app. Claude reaches GitHub through the [Claude GitHub App](/docs/claude-tag/admins/configure-github) rather than an account and credential, so GitHub has its own step. The setup page shows one of three things, depending on where the Claude GitHub App is installed: -* **Install the Claude GitHub App**, when the app isn't linked to your Claude organization yet. Only an owner of your GitHub organization can install it. If that's you, follow the steps shown. If not, send the message the step shows to a GitHub organization owner, skip this step, and continue with setup. After they install the app, [grant repositories](/docs/claude-tag/admins/configure-github#grant-repository-access) from the admin page. +* **Connect GitHub**, when the app isn't linked to your Claude organization yet. Only an owner of your GitHub organization can install the app. If that's you, follow the steps shown. If not, send the message the step shows to a GitHub organization owner, skip this step, and continue with setup. After they install the app, [grant repositories](/docs/claude-tag/admins/configure-github#grant-repository-access) from the admin page. * **Choose your GitHub repos**, when the app is already linked. Grant every repository or pick specific ones. * **The Claude app is installed on \[username], a personal account**, when the app was installed on someone's personal GitHub account rather than an organization. Claude Tag connects to a GitHub organization only. A GitHub organization owner installs the app on the organization that owns your repositories (see [Link your GitHub organization](/docs/claude-tag/admins/configure-github#link-your-github-organization)). You can skip the step and continue with setup while that happens, then [grant repositories](/docs/claude-tag/admins/configure-github#grant-repository-access) from the admin page afterward. @@ -157,7 +157,7 @@ To finish this step later, select **Skip** and confirm past the warning that Cla **Where:** the Claude Tag setup page at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag). -Channel work draws from your organization's usage balance, not from individual seats; the spend limit caps how much of that balance Claude Tag can use each billing period. DMs run on the user's own claude.ai account and aren't capped by this limit. If your organization has a [launch usage credit](https://support.claude.com/en/articles/15575654-claude-tag-launch-promo-for-claude-team-and-enterprise), the launch screen shows the amount and the date it runs through, and after launch the admin page shows it under **Included usage** with how much is used. You're billed for usage beyond it, up to the spend limit. +Channel work draws from your organization's usage balance, not from individual seats; the spend limit caps how much of that balance Claude Tag can use each month. DMs run on the user's own claude.ai account and aren't capped by this limit. If your organization has a [launch usage credit](https://support.claude.com/en/articles/15575654-claude-tag-launch-promo-for-claude-team-and-enterprise), the launch screen shows the amount and the date it runs through, and after launch the admin page shows it under **Included usage** with how much is used. You're billed for usage beyond it, up to the spend limit. If the setup page shows a **Buy usage credits** step before Launch, buy credits on that step to continue. The launch screen then doesn't include **Set monthly spend limits**, so set a limit after launch at [`claude.ai/admin-settings/usage/claude-tag`](https://claude.ai/admin-settings/usage/claude-tag). @@ -167,7 +167,9 @@ If the setup page shows a **Buy usage credits** step before Launch, buy credits - The toggle is on by default: after launch, Claude DMs each member of the workspace to help them get started. Those DMs don't count toward your usage. Turn the toggle off to skip them. The same setting appears on the admin page afterward as **Let people know they can talk to Claude**, marked **Members notified** once the DMs have gone out. + The toggle is on by default: after launch, Claude DMs each member of the workspace to help them get started. Those DMs don't count toward your usage. Turn the toggle off to skip them. + + The admin page has a matching row, **Let people know they can talk to Claude**. To send the DMs from the admin page, select **Notify members now** on that row and confirm. The row reads **Members notified** once the DMs have gone out. @@ -245,19 +247,19 @@ What you connected during setup is attached to the workspace you paired, or to e Every entry has the same sections: **Connectors**, **Repositories**, **Plugins**, **Custom instructions**, **Access bundles**, and, under **Advanced**, the **Default model**. An [Access bundle](/docs/claude-tag/concepts/glossary#access-bundle) is a named set of connections, repositories, plugins, and instructions that you can attach to more than one place. Setup created one on your workspace's entry, named after the workspace (for example, **Tag Test default**), holding the tools you connected. -| To do this | Go to | Learn more | -| :---------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------- | -| Change the model Claude replies with | The entry's **Advanced** section, **Default model**. Set it on **Default Slack** to change it everywhere, or on one channel. | [Choose the model for a scope](/docs/claude-tag/admins/customize#choose-the-model-for-a-scope) | -| Give Claude standing instructions | The **Custom instructions** field on **Default Slack** for every channel, or on one channel's entry for that channel only. | [Customize](/docs/claude-tag/admins/customize) | -| Connect another tool, or one you skipped | **Connectors** on the entry, or the bundle named after your workspace under **Access bundles**. | [Give Claude access](/docs/claude-tag/admins/add-connections) | -| Let Claude reach a site or API that has no credential | The **Domains** list of the Access bundle, under **Access bundles**. | [Allow a host without a credential](/docs/claude-tag/admins/add-connections#allow-a-host-without-a-credential) | -| Grant more repositories | **Repositories** on the entry. | [Configure GitHub access](/docs/claude-tag/admins/configure-github) | -| Give one channel more than the default | Select the channel and add to it. | [Configure per-channel access](/docs/claude-tag/admins/attach-to-scope) | -| Limit where Claude works or who can use it | | [Restrict where Claude operates](/docs/claude-tag/admins/restrict-access) | -| Pair another workspace, or disconnect one | The Slack row's **⋮** menu under **Where Claude Tag works**. | [Manage workspaces](/docs/claude-tag/admins/workspaces) | -| Change the spend limit | [`claude.ai/admin-settings/usage/claude-tag`](https://claude.ai/admin-settings/usage/claude-tag). | [Set a spend limit](/docs/claude-tag/admins/set-spend-limit) | -| Turn Claude Tag off | The **Enable Claude Tag for your organization** toggle at the top of the admin page. | | -| Bring in the first users | | [Getting started for users](/docs/claude-tag/users/getting-started) | +| To do this | Go to | Learn more | +| :---------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------- | +| Change the model Claude replies with | The entry's **Advanced** section, **Default model**. Set it on **Default Slack** to change it everywhere, or on one channel. | [Choose the model for a scope](/docs/claude-tag/admins/customize#choose-the-model-for-a-scope) | +| Give Claude standing instructions | The **Custom instructions** field on **Default Slack** for every channel, or on one channel's entry for that channel only. | [Customize](/docs/claude-tag/admins/customize) | +| Connect another tool, or one you skipped | **Connectors** on the entry, or the bundle named after your workspace under **Access bundles**. | [Give Claude access](/docs/claude-tag/admins/add-connections) | +| Let Claude reach a site or API that has no credential | The **Domains** list of the Access bundle, under **Access bundles**. | [Allow a host without a credential](/docs/claude-tag/admins/add-connections#allow-a-host-without-a-credential) | +| Grant more repositories | **Repositories** on the entry. | [Configure GitHub access](/docs/claude-tag/admins/configure-github) | +| Give one channel more than the default | Select the channel and add to it. | [Configure per-channel access](/docs/claude-tag/admins/attach-to-scope) | +| Limit where Claude works or who can use it | | [Restrict where Claude operates](/docs/claude-tag/admins/restrict-access) | +| Pair another workspace, or disconnect one | The Slack row's **⋮** menu under **Where Claude Tag works**. Disconnecting permanently deletes the workspace's Claude data. See [Data lifecycle and deletion](/docs/claude-tag/concepts/data-lifecycle). | [Manage workspaces](/docs/claude-tag/admins/workspaces) | +| Change the spend limit | [`claude.ai/admin-settings/usage/claude-tag`](https://claude.ai/admin-settings/usage/claude-tag). | [Set a spend limit](/docs/claude-tag/admins/set-spend-limit) | +| Turn Claude Tag off | The **Enable Claude Tag for your organization** toggle at the top of the admin page. | | +| Bring in the first users | | [Getting started for users](/docs/claude-tag/users/getting-started) | ## Common setup issues diff --git a/content/claude/claude-tag/admins/troubleshooting.md b/content/claude/claude-tag/admins/troubleshooting.md index c8c890b21..5dbf63b66 100644 --- a/content/claude/claude-tag/admins/troubleshooting.md +++ b/content/claude/claude-tag/admins/troubleshooting.md @@ -16,7 +16,7 @@ This page covers errors you might hit setting up and administering Claude Tag: S If someone reports that Claude can't reach a service you connected, check two things before anything else: -* The connection is in a [bundle attached to that channel's scope](/docs/claude-tag/admins/attach-to-scope). +* The connection reaches that channel through an attached bundle. To check, go to [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag) > **Claude Tag's access** > **Slack** > the channel's scope (or its workspace's scope, if the channel isn't listed) > **Access summary**, which includes access [inherited from wider scopes](/docs/claude-tag/admins/attach-to-scope#how-scopes-inherit). If there's no **Access summary** section, or the connection isn't in it, [attach the bundle](/docs/claude-tag/admins/attach-to-scope#attach-the-bundle) to the channel's scope; if the channel has no scope yet, select **Add channel** on its workspace to [create the scope](/docs/claude-tag/admins/attach-to-scope#attach-to-a-channel) first. * The test ran in a new thread; an existing thread isn't told about a connection added after it started, though the connection works there if the request names the service. ## Setup errors @@ -130,7 +130,7 @@ If the failure happens while Claude is posting a message rather than replying, t **What it means** -**Allow Claude to work in channels with guests** is set to **Restrict** for this channel's [scope](/docs/claude-tag/concepts/glossary#scope), so Claude checks the channel for guests before replying, and this install predates the `users:read` permission that check needs. +**Allow Claude to work in channels with guests** is set to **Restrict** or **Channel only** for this channel's [scope](/docs/claude-tag/concepts/glossary#scope), so Claude checks the channel for guests before replying, and this install predates the `users:read` permission that check needs. **How to resolve** @@ -177,9 +177,11 @@ The channel includes at least one Slack guest account, and **Allow Claude to wor Either fix works: * Remove the guests from the channel, or move the conversation to a channel with no guests; this changes no settings, so no other channel is affected. -* Or set **Allow Claude to work in channels with guests** to **Allow** for the scope covering this channel. The setting is at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), on the **Slack** tab under **Claude Tag's access**, in the scope's collapsed **Advanced** section. **Allow** applies to every guest channel that scope covers, and guests there can see Claude's replies and interact with it. To limit it to one channel, set it on the channel's own scope. See [restrict guest channels](/docs/claude-tag/admins/restrict-access#restrict-guest-channels) for the full exposure picture. +* Change **Allow Claude to work in channels with guests** for the scope covering this channel, at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag) → **Claude Tag's access** → **Slack** → the scope → the collapsed **Advanced** section. **Channel only** restores replies with [channel-only access](/docs/claude-tag/admins/restrict-access#how-channel-only-works). **Allow** restores replies with the scope's full access, and only an organization Owner can choose it. See [restrict guest channels](/docs/claude-tag/admins/restrict-access#restrict-guest-channels) for what each value exposes. -**Allow** restores replies, not workspace search. Claude can't search the workspace from a channel that includes guests, even when the setting is **Allow**. Removing the guests restores search as well. +Either value applies to every guest channel that scope covers. To limit the change to one channel, set the value on the channel's own scope. + +Either value restores replies, not workspace search. Claude can't search the workspace from a channel that includes guests, even under **Allow**. Removing the guests restores search as well. If the fix worked, a mention in the channel gets a reply. @@ -340,6 +342,10 @@ A Slack workspace can pair with only one Claude organization at a time, and this 2. Have an Owner in that organization [disconnect the workspace](/docs/claude-tag/admins/workspaces#revoke-a-pairing) from their **Connected workspaces** list. 3. Send `@Claude connect` again for a fresh code and redeem it here. + + Disconnecting deletes the workspace's Claude data, including its memory, channel configurations, sessions, and the routines set up in its channels. The deletion can't be undone. See [Data lifecycle and deletion](/docs/claude-tag/concepts/data-lifecycle) for the full list of what's deleted. + + ### Claim code is invalid, expired, or already used @@ -462,6 +468,10 @@ The **Enable Claude Tag for your organization** toggle is off in admin settings, 2. If the message persists, check which Claude organization the workspace is paired to. If your company has more than one (a trial organization alongside the main one, for example), an Owner in the wrong organization can [revoke the pairing](/docs/claude-tag/admins/workspaces#revoke-a-pairing) so you can pair the workspace to the right one. 3. If the right organization has the toggle on and the message persists, contact your account team to confirm Claude Tag is enabled for it. + + Revoking the pairing deletes the workspace's Claude data, including its memory, channel configurations, sessions, and the routines set up in its channels. The deletion can't be undone. See [Data lifecycle and deletion](/docs/claude-tag/concepts/data-lifecycle) for the full list of what's deleted. + + ### Claude Tag is unavailable because Routines are not enabled **What you see** @@ -584,7 +594,7 @@ Go through these checks in order; the same checks, in the same order, apply when 2. **A bundle with GitHub access on this channel's scope**: bundles attach per scope, so the bundle that carries GitHub access must be attached to a scope that covers this channel; [Attach the bundle to a scope](/docs/claude-tag/admins/attach-to-scope) covers attachment and inheritance. If the bundle is attached, asking `@Claude what can you access from this channel?` in a new thread lists GitHub. 3. **A fresh thread**: a new thread picks up every configuration change, so test in one before checking anything further. 4. **The repository granted in the bundle**: the repository must be listed in the bundle's **Repositories** tab, per [Grant repository access](/docs/claude-tag/admins/configure-github#grant-repository-access). If the repository is granted, asking Claude to read a file from it works in a new thread. Granting makes the repository available to clone, but the code doesn't enter a session until a request names it. -5. **The GitHub App installation covers the repository**: if Claude reports a repository isn't available, isn't configured, or returned a 403, check the installation, since the app's repository selection is upstream of the bundle grant. At [`claude.ai/admin-settings/github`](https://claude.ai/admin-settings/github), the organization that owns the repository should show **Connected** under **Connected GitHub accounts**. If it appears under **Unlinked accounts** with a **Needs permissions** status instead, the install is waiting on a GitHub organization owner. Click **Review permissions** to approve it on github.com. If you aren't a GitHub organization owner, use **Copy message** under **Not a GitHub account owner?** on that settings page to send the request to someone who is. If the organization isn't listed at all, install the app with **Install on another organization**; [Link your GitHub organization](/docs/claude-tag/admins/configure-github#link-your-github-organization) covers both. +5. **The GitHub App installation covers the repository**: if Claude reports a repository isn't available, isn't configured, or returned a 403, check the installation, since the app's repository selection is upstream of the bundle grant. At [`claude.ai/admin-settings/github`](https://claude.ai/admin-settings/github), the organization that owns the repository should show **Connected** under **Connected GitHub accounts**. If its row shows a **Needs permissions** status instead, the install is waiting on a GitHub organization owner. Click **Review permissions** to approve it on github.com. If you aren't a GitHub organization owner, use **Copy message** under **Not a GitHub account owner?** on that settings page to send the request to someone who is. If the organization isn't listed at all, install the app with **Install on another organization**; [Link your GitHub organization](/docs/claude-tag/admins/configure-github#link-your-github-organization) covers both. For GitHub Enterprise Server repositories, confirm [the GHE host is registered](/docs/claude-tag/admins/configure-github#github-enterprise-server) instead. The github.com App install doesn't cover them. @@ -624,7 +634,7 @@ Assign the user a seat that includes Claude Code on the **Members** page at [`cl ## Session start errors -Session start errors appear before any work begins. Some are transient and clear on retry; the rest point to capacity or environment configuration rather than credentials. +Session start errors appear before any work begins. Some are transient and clear on retry; the rest point to capacity or environment configuration. ### Still waiting for available capacity @@ -636,11 +646,19 @@ Claude posts in the thread: **What it means** -Compute capacity is temporarily busy. The session starts on its own once capacity frees up. +The session was created and is still waiting for compute to run it. Why it waits differs between Anthropic-hosted and self-hosted [environments](/docs/claude-tag/admins/customize#configure-the-environment-for-a-scope). + +On an Anthropic-hosted environment, capacity is temporarily busy or the session is taking longer than usual to start, and the session normally starts on its own. If it never starts, Claude posts the [Session failed to start](#session-failed-to-start-the-session-container-never-connected) message instead. + +On a [self-hosted environment](https://code.claude.com/docs/en/self-hosted-environments), no runner has claimed the session yet. The session waits in the environment's queue until a runner claims it. **How to resolve** -Wait; no action is needed. Users should reply in the same thread if they have more to add, since starting a new thread only queues a second session behind the first. +On an Anthropic-hosted environment, wait; no action is needed. + +On a self-hosted environment, use [Troubleshooting](https://code.claude.com/docs/en/self-hosted-environments-deploy#troubleshooting) in the self-hosted environments guide to find out why no runner is claiming the session. The queued session starts once a runner claims it. + +Either way, users should reply in the same thread if they have more to add, since starting a new thread only queues a second session behind the first. ### Session failed to start: the session container never connected diff --git a/content/claude/claude-tag/admins/workspaces.md b/content/claude/claude-tag/admins/workspaces.md index add27c02e..2d4a8dcb5 100644 --- a/content/claude/claude-tag/admins/workspaces.md +++ b/content/claude/claude-tag/admins/workspaces.md @@ -89,7 +89,7 @@ When a workspace or channel entry shows a notice that its settings aren't applie | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | "These settings aren't applied while Claude Tag is disabled. They're saved and will take effect once it's enabled." | Go to [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag) → **Claude Tag's access** → **Slack** → **Default Slack** → **Enable Claude Tag** and turn the switch on | | "These settings aren't applied while Claude Tag is turned off for this workspace or channel; the org-wide Enable Claude Tag setting doesn't override that. They're saved and will take effect once it's turned back on." | The workspace, or the channel's workspace, is set to **Off** on its own, and the switch doesn't override it. While you have the switch, the admin page has no control for that setting | -| "These settings aren’t applied while Claude Tag setup is incomplete for this workspace or channel." | Select **Resume** beside the notice and finish that workspace's setup | +| "These settings aren’t applied while Claude Tag setup is incomplete for this workspace or channel." | Select the **Resume** *workspace* **setup** button beside the notice and finish that workspace's setup. On a channel's entry, the button's label names the channel's workspace | ## Revoke a pairing diff --git a/content/claude/claude-tag/concepts/agent-identity.md b/content/claude/claude-tag/concepts/agent-identity.md index 807cb1df1..60ad1168b 100644 --- a/content/claude/claude-tag/concepts/agent-identity.md +++ b/content/claude/claude-tag/concepts/agent-identity.md @@ -4,7 +4,7 @@ # How agent identity works -> Claude Tag acts under its own service accounts in Slack channels, not as you. See how channel access is bounded, how credentials reach it, and why DMs differ. +> Claude Tag acts under its own service accounts in Slack channels, not as you. See how channel access is bounded, how credentials reach it, how Claude uses your personal connectors for your own tasks in a channel, and why DMs differ. export const BetaNote = () => Claude Tag is in public beta. Features and behavior described here may change before general availability.; @@ -12,7 +12,7 @@ export const BetaNote = () => Claude Tag is in public beta. Features and b Claude Tag's identity depends on where you message it. -In Slack channels, Claude acts with its own service accounts, rather than as a specific user. An organization Owner [provisions this identity during setup](/docs/claude-tag/admins/setup-overview), so it arrives with its own account in each system it works in: the Claude app in Slack, the Claude GitHub App on GitHub, and a service account in every other connected tool. Actions it takes are attributed to those accounts; for example, posts come from the Claude app and pull requests show the Claude GitHub App as the author. +In Slack channels, Claude acts with its own service accounts, rather than as a specific user. An organization Owner [provisions this identity during setup](/docs/claude-tag/admins/setup-overview), so it arrives with its own account in each system it works in: the Claude app in Slack, the Claude GitHub App on GitHub, and a service account in every other connected tool. Actions it takes are attributed to those accounts; for example, posts come from the Claude app and pull requests show the Claude GitHub App as the author. In organizations where personal connectors in channels is available, Claude can also use your own claude.ai connectors for a task you hand it in a channel, after you allow it. See [Personal connectors in a channel](#personal-connectors-in-a-channel). In direct messages (DMs) between a user and `@Claude`, the provisioned identity does not apply. DMs are one-to-one only; group DMs aren't supported. A DM has no channel to scope it to, so a DM session runs on [the individual's own claude.ai account](#direct-message-channels) instead, with their personal connectors. GitHub is the exception in attribution: a pull request opened from a DM is authored by the Claude GitHub App, the same as in channels, though the session can only work with repositories connected on that user's own account. Owners can disable DMs organization-wide; see [Allow or disable direct messages](/docs/claude-tag/admins/restrict-access#allow-or-disable-direct-messages). @@ -30,9 +30,9 @@ When Claude works on a channel task, the request moves through three places: The diagram below traces one request through this process. -Diagram showing the request path across three zones, labeled your Slack workspace, Anthropic's infrastructure, and your systems. A task mentioned in the Slack workspace runs in a session sandbox in the middle zone, one sandbox per thread, holding no credentials. Outbound requests pass to Agent Proxy, which injects the credential drawn from the credential store; a request matching no rule is blocked. Credentialed requests reach your systems, like GitHub, a data warehouse, monitoring, or any HTTP API. A dashed return path shows results posting back in the thread, as Claude. +Diagram showing the request path across three zones, labeled your Slack workspace, Anthropic's infrastructure, and your systems. A task mentioned in the Slack workspace runs in a session sandbox in the middle zone, one sandbox per thread, holding no credentials. Outbound requests pass to Agent Proxy, which injects the credential drawn from the credential store; a request that no rule, domain entry, or environment network access setting allows is blocked. Credentialed requests reach your systems, like GitHub, a data warehouse, monitoring, or any HTTP API. A dashed return path shows results posting back in the thread, as Claude. -Diagram showing the request path across three zones, labeled your Slack workspace, Anthropic's infrastructure, and your systems. A task mentioned in the Slack workspace runs in a session sandbox in the middle zone, one sandbox per thread, holding no credentials. Outbound requests pass to Agent Proxy, which injects the credential drawn from the credential store; a request matching no rule is blocked. Credentialed requests reach your systems, like GitHub, a data warehouse, monitoring, or any HTTP API. A dashed return path shows results posting back in the thread, as Claude. +Diagram showing the request path across three zones, labeled your Slack workspace, Anthropic's infrastructure, and your systems. A task mentioned in the Slack workspace runs in a session sandbox in the middle zone, one sandbox per thread, holding no credentials. Outbound requests pass to Agent Proxy, which injects the credential drawn from the credential store; a request that no rule, domain entry, or environment network access setting allows is blocked. Credentialed requests reach your systems, like GitHub, a data warehouse, monitoring, or any HTTP API. A dashed return path shows results posting back in the thread, as Claude. @@ -97,11 +97,17 @@ This design has four consequences. * **Configure once.** Everyone in the scope can use it immediately. * **Predictability.** What Claude can do never changes based on who asked. -* **Personal connectors apply in DMs.** A shared channel uses only the service-account connections an admin attached, not connectors on anyone's claude.ai account. -* **Clean audit.** Actions in connected tools show up under a service account your security team already knows how to reason about. +* **Personal connectors are separate.** A shared channel session uses only the service-account connections an admin attached. Where [personal connectors in channels](#personal-connectors-in-a-channel) is available, Claude uses the connectors on your own claude.ai account only for your own tasks, after you allow it. +* **Clean audit.** Actions the channel session takes in connected tools show up under a service account your security team already knows how to reason about. That service-account identity is also how Claude appears wherever it acts. In Slack, it posts as the Claude app. On GitHub, commits and pull requests show the Claude GitHub App, and pull requests link back to the Slack thread they came from. In every other connected service, actions appear under the service account an admin provisioned, in that service's audit log. +### Personal connectors in a channel + +A channel session works with the channel's Access bundles, so the [connectors on your own claude.ai account](/docs/connectors/overview) are not part of it. Personal connectors in channels is available to a limited number of organizations. Where it is available and a task you hand Claude needs something only your connectors can reach, Claude can use your connector for that part of the work, and it asks you before it starts. The work runs with your permissions and is recorded under your name. Requests other people make to Claude in the task's thread run with the channel's own access, not with your connectors. Claude is designed to take direction from you, treating what other people post in the thread as information for the task rather than as instructions. + +[Personal connectors in channels](/docs/claude-tag/concepts/personal-connectors) covers how you approve connector use, when Claude holds a result for your review before posting, what other people in the channel see, and how to stop a task. + ## Direct message channels A DM with Claude works differently from a channel. There is no scope to attach an identity to, so a DM session runs with your own claude.ai account instead, the same way a Claude Code session on the web does, using your own connectors and credentials, with results attributed to you (pull requests excepted; the Claude GitHub App authors those from DMs too). The diagram contrasts with the channel path above; the sandbox is the same engine, but everything around it is yours. diff --git a/content/claude/claude-tag/concepts/data-lifecycle.md b/content/claude/claude-tag/concepts/data-lifecycle.md index 95bd66c75..5b737c7fe 100644 --- a/content/claude/claude-tag/concepts/data-lifecycle.md +++ b/content/claude/claude-tag/concepts/data-lifecycle.md @@ -90,7 +90,7 @@ The controls that delete Claude Tag data, from largest to smallest: * **Disconnect a workspace or an Enterprise Grid** at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), or uninstall the app from the workspace in Slack. Deletes all of that workspace's data. See [Revoke a pairing](/docs/claude-tag/admins/workspaces#revoke-a-pairing) * **Remove a channel's scope** in the **Claude Tag's access** section. Deletes that channel's data recorded so far -* **Delete a scope's memory files**, from the scope's options menu, or tell Claude in the channel to forget an entry. See [Check and correct what Claude Tag remembers](/docs/claude-tag/users/memory#check-and-correct-what-claude-tag-remembers) +* **Delete a scope's memory files**: select **View memory files** in the scope's options menu, choose a file, then select **Delete**. You can also tell Claude in the channel to forget an entry. See [Check and correct what Claude Tag remembers](/docs/claude-tag/users/memory#check-and-correct-what-claude-tag-remembers) * **Delete a routine** from the **Scheduled work** tab, or ask Claude to delete it in the channel or direct message where it was set up. See [Audit Claude Tag activity](/docs/claude-tag/admins/audit) There is no control in Slack or in your Claude admin settings that deletes a single thread's transcript on its own. During the beta, Claude Tag session transcripts and memory aren't included in your organization's data exports, and the Compliance API doesn't list or delete Claude Tag sessions. For a deletion request these controls don't cover, contact your account team or [privacy@anthropic.com](mailto:privacy@anthropic.com). diff --git a/content/claude/claude-tag/concepts/glossary.md b/content/claude/claude-tag/concepts/glossary.md index 369eddf88..bf2a8ef64 100644 --- a/content/claude/claude-tag/concepts/glossary.md +++ b/content/claude/claude-tag/concepts/glossary.md @@ -24,7 +24,7 @@ The network layer that injects credentials into Claude's outbound requests. The ## Channel manager -A member of your Claude organization whom an Owner has named to set up specific channels. For each channel assigned to them, a channel manager sets the default model, adds repositories their own GitHub account can write to, and manages credentials in the channel's own bundle, without holding the Owner role. See [Delegate channel setup to channel managers](/docs/claude-tag/admins/restrict-access#delegate-channel-setup-to-channel-managers). +A member of your Claude organization whom an Owner has named to set up specific channels. For each channel assigned to them, a channel manager sets the default model, adds repositories their own GitHub account is an admin of, and manages credentials and plugins in the channel's own bundle, without holding the Owner role. See [Delegate channel setup to channel managers](/docs/claude-tag/admins/restrict-access#delegate-channel-setup-to-channel-managers). ## Channel memory @@ -47,11 +47,11 @@ Your admin chooses which generation answers `@Claude` in a given channel, so two A credential for one external service that Claude uses on the channel's behalf, like a Datadog API key or a GitHub App installation. Connections belong to the agent identity, not to any user, and are grouped into [Access bundles](#access-bundle) by an admin. -A connection is not a connector. A connector belongs to your personal claude.ai account. Claude cannot use your connectors in channels; it uses the channel's connections. The one exception is a DM, where it uses your own account instead; see [how DMs work in this model](/docs/claude-tag/concepts/agent-identity#direct-message-channels). +A connection is not a connector. A connector belongs to your personal claude.ai account. A channel session uses the channel's connections. In organizations where [personal connectors in channels](/docs/claude-tag/concepts/personal-connectors) is available, Claude can also use your connectors there for your own tasks, after you allow it. A DM uses your own account instead, as [how DMs work in this model](/docs/claude-tag/concepts/agent-identity#direct-message-channels) describes. ## Connector -A tool you add to your own claude.ai account, like Gmail, Google Drive, or a custom MCP server, listed under [Customize > Connectors](https://claude.ai/customize/connectors). Connectors are personal; in Slack they apply only in DMs. For the agent-side equivalent that works in channels, see [Connection](#connection). +A tool you add to your own claude.ai account, like Gmail, Google Drive, or a custom MCP server, listed under [Customize > Connectors](https://claude.ai/customize/connectors). Connectors are personal. In Slack they apply in DMs. In organizations where [personal connectors in channels](/docs/claude-tag/concepts/personal-connectors) is available, Claude can also use them in a channel for your own tasks, after you allow it. For the agent-side equivalent that works in channels, see [Connection](#connection). ## Environment diff --git a/content/claude/claude-tag/concepts/how-it-works.md b/content/claude/claude-tag/concepts/how-it-works.md index 3b4aabca8..7aa890f6b 100644 --- a/content/claude/claude-tag/concepts/how-it-works.md +++ b/content/claude/claude-tag/concepts/how-it-works.md @@ -138,7 +138,7 @@ Anthropic offers several ways to work with Claude on real tasks; they reach the | Who sees the work | Everyone in the channel | Just you | Just you | | Best for | Shared work the team should see and steer | Personal research and drafting | Hands-on coding in your own checkout | -The short version: **team work → Claude Tag; personal work → Cowork or Claude Code.** Claude Tag's connections authenticate the agent itself with service accounts, not any person. Personal connectors apply in a Claude Tag DM, which runs on your own claude.ai account, the same way Cowork does. +The short version: **team work → Claude Tag; personal work → Cowork or Claude Code.** Claude Tag's connections authenticate the agent itself with service accounts, not any person. Personal connectors apply in a Claude Tag DM, which runs on your own claude.ai account, the same way Cowork does. In organizations where [personal connectors in channels](/docs/claude-tag/concepts/personal-connectors) is available, Claude can also use your personal connectors in a channel for your own tasks, after you allow it. ## Key concepts @@ -209,7 +209,7 @@ Because access is set per channel rather than per person, the way to find out wh * **Ask what Claude can reach.** In any channel, `@Claude what can you access from this channel?` lists its current reach. * **If Claude cannot reach something, the channel was not granted access.** Another channel may have the access, and an organization Owner can add it. [How agent identity works](/docs/claude-tag/concepts/agent-identity) covers the model. -* **Personal connectors apply only in DMs.** A connection an admin attaches to a channel is separate from a connector on your personal claude.ai account; anything on your own account works in your DMs, not here. +* **Personal connectors are separate from channel connections.** A connection an admin attaches to a channel is separate from a connector on your personal claude.ai account. Your own connectors work in your DMs. In organizations where [personal connectors in channels](/docs/claude-tag/concepts/personal-connectors) is available, Claude can also use them in a channel for your own tasks, after you allow it. ### One-off and scheduled tasks diff --git a/content/claude/claude-tag/concepts/personal-connectors.md b/content/claude/claude-tag/concepts/personal-connectors.md new file mode 100644 index 000000000..a30f5c1f6 --- /dev/null +++ b/content/claude/claude-tag/concepts/personal-connectors.md @@ -0,0 +1,65 @@ +> ## Documentation Index +> Fetch the complete documentation index at: https://claude.com/docs/llms.txt +> Use this file to discover all available pages before exploring further. + +# Personal connectors in channels + +> Claude can use your own claude.ai connectors, called personal connectors, for your tasks in a Slack channel. See how you approve connector use, when Claude asks you to review a result before posting it, and what other people in the channel can reach. + +export const BetaNote = () => Claude Tag is in public beta. Features and behavior described here may change before general availability.; + + + +Personal connectors are the tools you add to your own claude.ai account, like your calendar or your email. When a task you ask for in a Slack channel needs one of your own tools, Claude can offer to use your connector for it. + +Connector use in channels is available to a limited number of organizations. If Claude never offers to use your connectors in a channel, connector use in channels may not be available to your organization, and the channel works with admin-attached connections as described in [how agent identity works](/docs/claude-tag/concepts/agent-identity). + +## Where your connectors apply + +In a channel, an admin decides the shared access. The channel uses the connections an admin attached to it, and everyone who asks there gets the same access. In organizations where connector use in channels is available, Claude can also use the connectors on your own claude.ai account in that channel. When you ask Claude there for something that needs one of your own tools, it can use your connector for your task. + +In a direct message (DM), your connectors apply on their own, because a DM runs on [your own claude.ai account](/docs/claude-tag/concepts/agent-identity#direct-message-channels). + +[Routines](/docs/claude-tag/users/proactivity) and other work Claude starts on its own in a channel use the channel's connections, never your connectors. Claude uses your connectors only while working on a request you made yourself. + +Your connectors serve only you. When someone else in the channel asks Claude for something, their request doesn't control or use your connectors, even in a shared channel. Claude works with your permissions, reaches only what your account can reach, and records what it does under your name. + +To add or remove connectors on your account, open the **Customize > Connectors** page on claude.ai; see [connectors on claude.ai](/docs/connectors/overview) for setup. + +## Control connector use + +### Approve connector use + +By design, Claude asks before it starts using your connectors in a channel. The first time a task calls for one of your connectors, Claude shows you a prompt in the thread that only you can see, with three choices: + +* **Allow** starts the work in auto mode. Claude uses your connectors as the task needs them and checks with you before posting anything that looks sensitive. +* **Allow with review** starts the work and shows you every result to approve before it posts to the channel. +* **Don't allow** declines this request, and Claude doesn't use your connectors. A later request can prompt you again. + +To save **Allow** or **Allow with review** for future tasks in every channel, select the **Use this choice for future requests** checkbox on the prompt before you choose. Once you've saved a choice, Claude starts a task you @-mention it for without showing the prompt. + +To change a saved answer, open the Claude app in Slack and select its **Home** tab. The **Home** tab offers **Auto mode**, **Ask every time**, and **Allow with review**. **Ask every time** is the setting before you save a choice. + +### Review results before posting + +Claude can hold a result and show it to you before anything posts to the channel. When you chose **Allow with review**, Claude holds every result. When you chose **Allow**, Claude holds a result when the content looks sensitive and posts the rest directly. Once you approve a held result, Claude posts it in the thread where you asked. + +On the Enterprise plan, an Owner can set the review rule for a scope with the **Delegated task results** setting, at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag) → **Claude Tag's access** → **Slack** → the scope → **Advanced** → **Delegated task results**. **Require review** removes **Allow** from the prompt and **Auto mode** from the **Home** tab, so Claude holds every result for your review. **Share without review** removes **Allow with review** from both. + +### Stop connector use + +To stop a task that's using your connectors, select **Stop** under the message in the task's thread where Claude says it's going to use your connectors. Only you can see the **Stop** button. + +## What other people in the channel see + +Results stay visible in the channel. What Claude posts back to a channel thread is readable by everyone there, like any other work Claude does in a channel. Claude's detailed work on a task you approved lives in a session only you can open. The work runs with your permissions and is recorded under your name. + +Other people can't use your connectors. Requests other people make to Claude in your task's thread run with the channel's own access, not with yours. + +While Claude works on your connector task, it is designed to take direction from you and to treat what other people post in the thread as information for the task rather than as instructions. + +## Related resources + +* [How agent identity works](/docs/claude-tag/concepts/agent-identity): whose identity and access Claude uses in channels and DMs +* [Connectors](/docs/connectors/overview): set up and manage connectors on your claude.ai account +* [Get started](/docs/claude-tag/users/getting-started): hand Claude your first task in a channel diff --git a/content/claude/claude-tag/concepts/security-and-data.md b/content/claude/claude-tag/concepts/security-and-data.md index 975fedeaf..dde27ca4b 100644 --- a/content/claude/claude-tag/concepts/security-and-data.md +++ b/content/claude/claude-tag/concepts/security-and-data.md @@ -4,7 +4,7 @@ # Security and data handling -> Claude Tag runs in an isolated sandbox that holds no credentials. Covers sandbox isolation, credential storage, network egress, service accounts, isolating credentials between channels and what one channel can reach, who can open a published artifact, and which members can invoke Claude. +> How Claude Tag keeps credentials out of the sandbox, limits where a channel session's requests can go, and controls who can see artifacts and invoke Claude. export const BetaNote = () => Claude Tag is in public beta. Features and behavior described here may change before general availability.; @@ -20,15 +20,15 @@ DMs run on the user's own claude.ai account instead and are covered separately o Each Slack thread runs in its own sandbox. In an Anthropic-hosted environment, every outbound call from that sandbox passes through the same checkpoints. -Diagram showing the request path across three zones, labeled your Slack workspace, Anthropic's infrastructure, and your systems. A task mentioned in the Slack workspace runs in a session sandbox in the middle zone, one sandbox per thread, holding no credentials. Outbound requests pass to Agent Proxy, which injects the credential drawn from the credential store; a request matching no rule is blocked. Credentialed requests reach your systems, like GitHub, a data warehouse, monitoring, or any HTTP API. A dashed return path shows results posting back in the thread, as Claude. +Diagram showing the request path across three zones, labeled your Slack workspace, Anthropic's infrastructure, and your systems. A task mentioned in the Slack workspace runs in a session sandbox in the middle zone, one sandbox per thread, holding no credentials. Outbound requests pass to Agent Proxy, which injects the credential drawn from the credential store; a request that no rule, domain entry, or environment network access setting allows is blocked. Credentialed requests reach your systems, like GitHub, a data warehouse, monitoring, or any HTTP API. A dashed return path shows results posting back in the thread, as Claude. -Diagram showing the request path across three zones, labeled your Slack workspace, Anthropic's infrastructure, and your systems. A task mentioned in the Slack workspace runs in a session sandbox in the middle zone, one sandbox per thread, holding no credentials. Outbound requests pass to Agent Proxy, which injects the credential drawn from the credential store; a request matching no rule is blocked. Credentialed requests reach your systems, like GitHub, a data warehouse, monitoring, or any HTTP API. A dashed return path shows results posting back in the thread, as Claude. +Diagram showing the request path across three zones, labeled your Slack workspace, Anthropic's infrastructure, and your systems. A task mentioned in the Slack workspace runs in a session sandbox in the middle zone, one sandbox per thread, holding no credentials. Outbound requests pass to Agent Proxy, which injects the credential drawn from the credential store; a request that no rule, domain entry, or environment network access setting allows is blocked. Credentialed requests reach your systems, like GitHub, a data warehouse, monitoring, or any HTTP API. A dashed return path shows results posting back in the thread, as Claude. -| Checkpoint | The guarantee | -| :----------- | :------------------------------------------------------------------------------------------------------------- | -| The sandbox | Holds no credentials | -| Agent Proxy | Injects credentials from the credential store at request time, and blocks traffic to unlisted hosts by default | -| Your systems | See the agent's own accounts, so its actions there are attributable | +| Checkpoint | The guarantee | +| :----------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| The sandbox | Holds no credentials | +| Agent Proxy | Injects credentials from the credential store at request time, and blocks a request that no [connection](/docs/claude-tag/admins/add-connections#set-allowed-websites), [**Domains** entry](/docs/claude-tag/admins/add-connections#allow-a-host-without-a-credential), or [environment network access level](/docs/claude-tag/admins/add-connections#broad-web-access-through-the-environment) allows | +| Your systems | See the agent's own accounts, so its actions there are attributable | ### Compute and the sandbox @@ -39,7 +39,7 @@ When a thread goes quiet, its sandbox is released; replying in the thread builds * **Persists:** The thread, its visible work, and anything pushed to a branch, opened as a pull request, or posted into Slack. * **Does not persist:** Files that existed only inside the sandbox. To keep generated files, ask Claude to push them to a branch or post them in the thread. -Claude Tag retains channel memory and session transcripts. Because of that retention, Claude Tag isn't available to organizations with Zero Data Retention (ZDR) enabled. +Claude Tag retains channel memory and session transcripts. Because of that retention, Claude Tag isn't available to organizations with Zero Data Retention (ZDR) enabled. Claude Tag also isn't available to organizations with a customer-managed encryption (CMEK) policy. ### Credential storage @@ -69,7 +69,9 @@ In channels, Claude acts under service credentials of its own, not under the acc A connection belongs to that agent identity and is shared by everyone the bundle's scope covers. Anyone in a channel under that scope can ask Claude to act with the credential, so whatever the connected account can read or write is available to every member of those channels. Connect a dedicated identity you control for each service, such as a `claude@yourcompany.example.com` seat or a native service account, rather than a personal login. A dedicated account keeps the agent's actions separately auditable in each tool's logs and lets you revoke its access without affecting a person; see [Create a dedicated account per service](/docs/claude-tag/admins/add-connections#create-a-dedicated-account-per-service). -DMs with `@Claude` run on the user's own claude.ai account instead, with that user's personal connectors, and work there is attributed to them, except pull requests, which the Claude GitHub App authors from DMs as well. Personal connectors apply only in DMs, never in channels. Owners can disable DMs organization-wide; see [Allow or disable direct messages](/docs/claude-tag/admins/restrict-access#allow-or-disable-direct-messages). +DMs with `@Claude` run on the user's own claude.ai account instead, with that user's personal connectors, and work there is attributed to them, except pull requests, which the Claude GitHub App authors from DMs as well. Owners can disable DMs organization-wide; see [Allow or disable direct messages](/docs/claude-tag/admins/restrict-access#allow-or-disable-direct-messages). + +Personal connectors in channels is available to a limited number of organizations. Where it is available, Claude uses a user's personal connectors in a channel only for that user's own tasks, after the user allows it. The work runs with that user's permissions and is recorded under their name. Requests other people make to Claude in the task's thread run with the channel's own access, not with that user's connectors. Claude is designed to take direction from the connector's owner, treating what other people post in the thread as information for the task rather than as instructions, and the owner can tell Claude in the task's thread to stop. See [Personal connectors in channels](/docs/claude-tag/concepts/personal-connectors). ### Isolate credentials between channels @@ -87,7 +89,7 @@ Confine a credential to one channel in three steps: 1. Attach its bundle to that channel and nowhere broader. 2. Keep the channel private. A bundle on a public channel [grants its access to anyone who joins](/docs/claude-tag/admins/attach-to-scope#attach-to-a-channel). -3. Check the channel's **Access summary** on the [Slack tab in admin settings](/docs/claude-tag/admins/attach-to-scope). It shows the access the channel actually gets, including what it inherits from the workspace and Default Slack access. +3. Check the channel's **Connectors**, **Repositories**, and **Plugins** sections on the [Slack tab in admin settings](/docs/claude-tag/admins/attach-to-scope). They list the access the channel gets, including rows inherited from the workspace or from Default Slack access, each with an origin line naming where it comes from. Claude [doesn't operate in externally shared channels](/docs/claude-tag/admins/restrict-access#externally-shared-channels), so a channel shared with another company never has a session to isolate. diff --git a/content/claude/claude-tag/concepts/settings-map.md b/content/claude/claude-tag/concepts/settings-map.md index 29e4298af..a2333241c 100644 --- a/content/claude/claude-tag/concepts/settings-map.md +++ b/content/claude/claude-tag/concepts/settings-map.md @@ -4,7 +4,7 @@ # Claude Tag settings map -> Claude Tag settings map: the admin page for access and behavior, the usage page for spend limits, the in-Slack Configure link for channel instructions, and personal connectors for DMs. Claude Managed Agents is configured separately on the Claude Platform. +> Claude Tag settings map: the admin page for access and behavior, the usage page for spend limits, the in-Slack Configure link for channel instructions, and personal connectors for DMs and your own tasks in channels. Claude Managed Agents is configured separately on the Claude Platform. export const BetaNote = () => Claude Tag is in public beta. Features and behavior described here may change before general availability.; @@ -12,13 +12,13 @@ export const BetaNote = () => Claude Tag is in public beta. Features and b Claude Tag's settings live on claude.ai, split across a few pages that each own a different kind of setting. Which page you need depends on what you're changing. The table maps each surface to what it controls. -| Surface | Who changes it | What it controls | -| :--------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| [Claude Tag admin page](https://claude.ai/admin-settings/claude-tag) | An Owner in your Claude organization | Access, behavior, and restrictions for channels, per [scope](/docs/claude-tag/concepts/glossary#scope) | -| [Usage page](https://claude.ai/admin-settings/usage/claude-tag) | An admin | Spend limits and each channel's spend against them | -| [Analytics page](https://claude.ai/analytics/claude-tag) | Anyone who can view the Analytics dashboard | Spend trends, projections, and per-channel reports; read-only | -| The **Configure** link in the footer of any Claude reply in a channel | Channel members (unless an admin restricts editing) and [channel managers](/docs/claude-tag/admins/restrict-access#delegate-channel-setup-to-channel-managers) for their assigned channels | One channel's instructions and whether Claude replies there without an @-mention. Channel managers also set the channel's default model, repositories, and connections | -| [Customize > Connectors](https://claude.ai/customize/connectors) on your own claude.ai account | You | Which of your personal tools apply in [DMs](/docs/claude-tag/concepts/agent-identity#direct-message-channels) | +| Surface | Who changes it | What it controls | +| :--------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [Claude Tag admin page](https://claude.ai/admin-settings/claude-tag) | An Owner in your Claude organization | Access, behavior, and restrictions for channels, per [scope](/docs/claude-tag/concepts/glossary#scope) | +| [Usage page](https://claude.ai/admin-settings/usage/claude-tag) | An admin | Spend limits and each channel's spend against them | +| [Analytics page](https://claude.ai/analytics/claude-tag) | Anyone who can view the Analytics dashboard | Spend trends, projections, and per-channel reports; read-only | +| The **Configure** link in the footer of any Claude reply in a channel | Channel members (unless an admin restricts editing) and [channel managers](/docs/claude-tag/admins/restrict-access#delegate-channel-setup-to-channel-managers) for their assigned channels | One channel's instructions and whether Claude replies there without an @-mention. Channel managers also set the channel's default model, repositories, connections, and plugins | +| [Customize > Connectors](https://claude.ai/customize/connectors) on your own claude.ai account | You | Which of your personal tools apply in [DMs](/docs/claude-tag/concepts/agent-identity#direct-message-channels) and, where available, for [your own tasks in a channel](/docs/claude-tag/concepts/personal-connectors) | Channel memory and routines aren't in the table because you change them by talking to Claude in the channel; see [what anyone can change from the channel](/docs/claude-tag/admins/customize#change-behavior-from-the-channel). Owners can review both, as each scope's memory files and scheduled work, from [the Audit page](/docs/claude-tag/admins/audit), labeled **Activity** in the console. @@ -37,6 +37,8 @@ Everything an Owner configures for channels lives at [`claude.ai/admin-settings/ Spend limits live at [`claude.ai/admin-settings/usage/claude-tag`](https://claude.ai/admin-settings/usage/claude-tag), a different page than the Claude Tag admin page. It holds the organization-wide spend limit, the default spend limit for channels, per-channel limits, and each channel's spend against its limit. If your organization bills through a reseller, this page is not available. See [Set a spend limit](/docs/claude-tag/admins/set-spend-limit) for funding the usage balance and what users see when a limit is reached. +Usage covered by a promotional credit isn't counted on the usage page and shows as \$0.00 there. To see each channel's list-price spend for the current month including covered usage, use the **List price** column of the **Spend by channel** table at [`claude.ai/analytics/claude-tag`](https://claude.ai/analytics/claude-tag). + Spend trends live at [`claude.ai/analytics/claude-tag`](https://claude.ai/analytics/claude-tag), the Claude Tag section of the Analytics dashboard. It shows total and projected spend, spend by channel, and [spend by kind of work](/docs/claude-tag/admins/set-spend-limit#see-spend-by-kind-of-work) for the period you pick, and anyone with permission to view the Analytics dashboard can open it. It has no controls; see [Usage analytics](/docs/claude-tag/admins/restrict-access#usage-analytics). ## The Configure page @@ -53,7 +55,7 @@ On the Enterprise plan, an Owner can name [channel managers](/docs/claude-tag/ad ## Personal connectors on claude.ai -Connectors you add to your own claude.ai account, under **Customize > Connectors**, apply only in DMs with Claude, because [a DM runs on your own account](/docs/claude-tag/concepts/agent-identity#direct-message-channels). A channel uses only the connections an admin attached to it, and personal connectors never apply there. Slack has no connector settings of its own. +Connectors you add to your own claude.ai account, under **Customize > Connectors**, apply in DMs with Claude, because [a DM runs on your own account](/docs/claude-tag/concepts/agent-identity#direct-message-channels). A channel session uses the connections an admin attached to it. In organizations where [personal connectors in channels](/docs/claude-tag/concepts/personal-connectors) is available, Claude can also use your personal connectors there for your own tasks, after you allow it. Slack has no connector settings of its own. See [connectors on claude.ai](/docs/connectors/overview) for setting one up, and [the troubleshooting entry](/docs/claude-tag/users/troubleshooting#a-connector-works-on-claude-ai-but-not-in-slack) if a connector you use on claude.ai is missing in Slack. diff --git a/content/claude/claude-tag/overview.md b/content/claude/claude-tag/overview.md index 6a9062bc1..e22050dab 100644 --- a/content/claude/claude-tag/overview.md +++ b/content/claude/claude-tag/overview.md @@ -170,6 +170,8 @@ Direct messages don't draw from this balance. A DM runs on the sender's own clau To learn what your team's usage costs, run a pilot with a spend limit set and watch the per-channel breakdown on the [usage page in your admin settings](https://claude.ai/admin-settings/usage/claude-tag). Your organization may already have a [launch usage credit](https://support.claude.com/en/articles/15575654-claude-tag-launch-promo-for-claude-team-and-enterprise) to run that pilot against before it funds the balance itself. +The usage page doesn't count usage that a credit covers, so that usage shows as \$0.00 there. While the credit covers your pilot, watch the **List price** column of the **Spend by channel** table at [`claude.ai/analytics/claude-tag`](https://claude.ai/analytics/claude-tag) instead. That column shows each channel's list-price spend for the current month, including covered usage. + [Set a spend limit](/docs/claude-tag/admins/set-spend-limit) covers how to fund the balance on each plan, set the limit, and what happens when usage reaches it.
For end users
diff --git a/content/claude/claude-tag/users/getting-started.md b/content/claude/claude-tag/users/getting-started.md index 015e31652..5349f1f27 100644 --- a/content/claude/claude-tag/users/getting-started.md +++ b/content/claude/claude-tag/users/getting-started.md @@ -130,3 +130,4 @@ The instruction saves to channel memory and applies to everyone's threads. Publi * [Good habits](/docs/claude-tag/users/good-habits): how to write tasks that finish * [Set up routines](/docs/claude-tag/users/proactivity): once a task works, have Claude run it on its own schedule * [Commands](/docs/claude-tag/users/commands): exact words starting with `!` that run a fixed action, like `!restart` for a stuck session +* [Personal connectors in channels](/docs/claude-tag/concepts/personal-connectors): how Claude can use your own claude.ai connectors for a task you hand it in a channel diff --git a/content/claude/claude-tag/users/proactivity.md b/content/claude/claude-tag/users/proactivity.md index 0eb213352..0b18da0fa 100644 --- a/content/claude/claude-tag/users/proactivity.md +++ b/content/claude/claude-tag/users/proactivity.md @@ -44,7 +44,7 @@ Claude can subscribe to a single pull request and react when it updates. A subsc ## Routine recipes -Each recipe below sets up a complete routine with one message. Adapt the channel names, repositories, and times to your own, and name the timezone so the schedule fires when you expect. +Each recipe below sets up a complete routine with one message. Adapt the channel names, repositories, and times to your own, and name the timezone in each message, since schedules run in UTC. ### Daily standup summary @@ -111,7 +111,8 @@ A few boundaries apply: * A job runs with the channel's connections, the same as an interactive request. * Claude can post a job's output into another public channel in the same workspace only if the job's own channel is public and Claude has been added to the target channel. It labels the message with the channel it came from. * Claude doesn't post job output to private channels, DMs, group DMs, or externally shared channels, and doesn't message people directly. The one exception is the completion or failure notice it sends to whoever set up the routine, and only when that person's Slack account is connected to their Claude account. -* Schedules default to UTC. When you say "every weekday at 9am," include the timezone (for example "9am Pacific") so Claude converts correctly; without one it may guess. Ask "what triggers do you have set up?" to confirm the time it actually scheduled. +* Schedules run in UTC. Name the timezone when you set a schedule, as in "every weekday at 9am Pacific". With no timezone in your message, Claude uses the one on your Slack profile. To confirm the time Claude set, send [`@Claude !routines`](/docs/claude-tag/users/commands#list-the-routines-in-a-channel), which lists schedules in UTC. +* A routine runs at a fixed UTC time, so each daylight saving change shifts its local time by an hour, in the same direction the clocks move. A routine running at 9am Pacific moves to 10am after the clocks go forward, or to 8am after they go back. Ask Claude to reschedule the routine to the local time you want. * A scheduled job that touches a github.com repository uses the same GitHub connection your admin set up for interactive work. See [Configure GitHub access](/docs/claude-tag/admins/configure-github#scheduled-work-uses-the-same-connection). ## Related resources diff --git a/content/claude/claude-tag/users/troubleshooting.md b/content/claude/claude-tag/users/troubleshooting.md index f7198df96..99ed8a93b 100644 --- a/content/claude/claude-tag/users/troubleshooting.md +++ b/content/claude/claude-tag/users/troubleshooting.md @@ -85,12 +85,14 @@ Or, if the session never started: **What it means** -The first message means compute capacity is temporarily busy; the session starts on its own once capacity frees up. The second means the session didn't start at all, which is transient. +The first message means the session was created and is waiting for capacity to run it. The session normally starts on its own within a few minutes. If your organization runs Claude's sessions on its own infrastructure, the wait lasts until that infrastructure starts the session. + +The second message means the session didn't start at all. The failure is usually temporary. **How to resolve** -* For the capacity message, wait a few minutes; no action is needed. To add context while waiting, @-mention Claude in the same thread rather than starting a new one. A new thread only queues a second session behind the first. -* For the failed-start message, mention Claude in the same thread to retry. If the retry worked, the session starts and Claude begins the task. +* For the capacity message, wait a few minutes. To add context while waiting, @-mention Claude in the same thread rather than starting a new one. A new thread only queues a second session behind the first. If Claude still hasn't started after several more minutes, send your admin [Still waiting for available capacity](/docs/claude-tag/admins/troubleshooting#still-waiting-for-available-capacity). +* For the failed-start message, mention Claude in the same thread to retry. If the session fails to start again, ask an admin. ### Claude didn't react to a message I edited @@ -160,7 +162,7 @@ Any of these fixes works: * Remove the guests from the channel. In Slack, open **Channel details** → **Members** and filter by "guests"; guests show a **guest** badge on their Slack profile. * Move the conversation to a channel with no guests. -* Ask a claude.ai organization owner to allow Claude to respond in channels that include guests, and send them [the guest access setting](/docs/claude-tag/admins/restrict-access#restrict-guest-channels). If you don't know who your organization's owners are, ask whoever set Claude up in your workspace. +* Ask a claude.ai organization owner to change the guest setting for this channel, and send them [the guest access setting](/docs/claude-tag/admins/restrict-access#restrict-guest-channels). They can let Claude reply with only the channel's own setup, or with full access. If you don't know who your organization's owners are, ask whoever set Claude up in your workspace. The guest access setting restores replies, not workspace search. Claude can't search the workspace from a channel that includes guests, even when it's allowed to respond there. Removing the guests or moving the conversation to a channel with no guests restores search as well. @@ -232,7 +234,7 @@ Start a new thread. You can paste a summary of where the previous one left off. ## Claude stopped mid-task -The messages in this section mean a session started and then stopped partway through. In most cases the work isn't lost, and the same thread picks up where it stopped. Each entry says whether anything needs redoing. +The messages in this section mean a session started and then stopped partway through. For most of them the work is still there, and the same thread picks up where it stopped. For a disconnect, work that existed only on the machine running the session can be lost. Each entry says whether anything needs redoing. ### I hit repeated API server errors @@ -310,21 +312,25 @@ Wait a few minutes, then mention Claude in the same thread to retry. If the same **What you see** -Claude posts in the thread: +In the thread, Claude posts a message that begins "I got disconnected partway through and may not have finished" or "I lost my connection". The rest of the message either says that Claude is recovering on its own and how long to wait before mentioning it, or asks you to mention it so it can start again. -> I got disconnected partway through and may not have finished. Reconnecting and resuming automatically — usually within a few minutes, though a slow recovery can take much longer. Mention me if I don't follow up. +A disconnect message appears in a thread where you're working with Claude, including a direct-message thread; Claude doesn't post one in a channel it's only watching or from a routine. -When Claude reconnects, it edits that message to "I reconnected and I'm carrying on where I left off. No need to mention me." When automatic recovery isn't armed, the message is "I got disconnected partway through and may not have finished. Mention me to pick up where I left off." instead. +If the machine running the session comes back, Claude removes the disconnect message from the thread, and there's nothing for you to do. If Claude restarts on a fresh machine instead, it edits the disconnect message to: -You can see it in a thread where you're working with Claude, including a direct-message thread; Claude doesn't post it in a channel it's only watching or from a routine. +> I've restarted on a fresh machine. Uncommitted changes from before the restart may not have carried over, so I'll re-check my work before continuing. No need to mention me. **What it means** -The sandbox running this thread's session stopped partway through a turn, so the step Claude was on may not have finished. The thread's conversation is intact. +The machine running this thread's session, the sandbox Claude works in, stopped partway through a turn, so the step Claude was on may not have finished. The thread's conversation is intact, and so is work Claude pushed to a branch, opened as a pull request, or posted into the thread. Files and drafts that existed only on the machine that stopped may not carry over to a fresh one. The entry [Claude lost work it created earlier](#claude-lost-work-it-created-earlier) describes the same kind of loss. **How to resolve** -Wait for the reconnect message, or mention Claude in the same thread when the message asks you to. Claude resumes there and continues from the conversation; ask it to check on the step it was working on and redo anything that didn't finish. If the same notice comes back, the underlying problem hasn't cleared yet. Wait a few minutes and mention Claude again. +If the message says how long to wait, wait that long. If Claude hasn't posted in the thread by then, or if the message asks you to mention Claude, mention `@Claude` in the same thread. Claude runs the interrupted step again, so check the files and drafts from before the disconnect and ask Claude to redo anything that's missing. + +If the message says there's no need to mention Claude, wait for Claude to post in the thread. Claude re-checks its earlier work, then continues. + +If a disconnect message comes back after you mention Claude, the problem hasn't cleared yet. Wait a few minutes, then mention Claude in the thread again. ### Something went wrong and I couldn't finish this turn @@ -478,13 +484,13 @@ A connector you use on claude.ai is missing when you work with Claude in Slack, **What it means** -Where you message Claude determines which connectors apply. A channel uses only the connections an admin attached to it, and personal connectors never apply there. A DM runs on your own claude.ai account and uses that account's connectors. +Where you message Claude determines which connectors apply. A channel session uses the connections an admin attached to it. In organizations where [personal connectors in channels](/docs/claude-tag/concepts/personal-connectors) is available, Claude can also use your personal connectors there for your own tasks, after you allow it. A DM runs on your own claude.ai account and uses that account's connectors. You set up and authenticate connectors on claude.ai under **Customize > Connectors**; Slack has no connector settings of its own. The [settings map](/docs/claude-tag/concepts/settings-map) covers every settings surface. **How to resolve** -For a channel, ask your admin to [add a connection](/docs/claude-tag/admins/add-connections) for the service. +For a channel, ask your admin to [add a connection](/docs/claude-tag/admins/add-connections) for the service. If [personal connectors in channels](/docs/claude-tag/concepts/personal-connectors) is available to your organization, Claude can also use your personal connectors for your own tasks, after you allow it. For a DM, work through these in order: diff --git a/content/claude/claude-tag/users/use-cases/marketing-team.md b/content/claude/claude-tag/users/use-cases/marketing-team.md index 67305eb6d..43e53feba 100644 --- a/content/claude/claude-tag/users/use-cases/marketing-team.md +++ b/content/claude/claude-tag/users/use-cases/marketing-team.md @@ -95,7 +95,7 @@ When the team checks the same campaign numbers at the start of every week, sched @Claude every Monday at 9am Eastern, post last week's campaign metrics as a chart: signups by campaign, week-over-week change, and a two-line note on anything unusual. ``` -Naming the timezone matters, since schedules default to UTC. To list or cancel scheduled work later, see [Manage standing work](/docs/claude-tag/users/proactivity#manage-standing-work). +Name the timezone in the message, since schedules run in UTC. To list or cancel scheduled work later, see [Manage standing work](/docs/claude-tag/users/proactivity#manage-standing-work). ### Save brand voice rules to channel memory diff --git a/content/claude/claude-tag/users/use-cases/review-documents.md b/content/claude/claude-tag/users/use-cases/review-documents.md index 02e8f34f7..5f20e1a1f 100644 --- a/content/claude/claude-tag/users/use-cases/review-documents.md +++ b/content/claude/claude-tag/users/use-cases/review-documents.md @@ -76,7 +76,7 @@ New documents arrive every week, and the same check applies to each. Schedule th @Claude every Monday at 9am Pacific, check the shared folder for documents added in the past week, review each against the review checklist, and post the findings here. ``` -Including the timezone matters, since schedules default to UTC. To list or cancel scheduled work later, see [Manage standing work](/docs/claude-tag/users/proactivity#manage-standing-work). +Include the timezone in the message, since schedules run in UTC. To list or cancel scheduled work later, see [Manage standing work](/docs/claude-tag/users/proactivity#manage-standing-work). Keep the checklist as a document Claude can read, in the connected tool or linked in the channel, rather than re-describing its contents in [channel memory](/docs/claude-tag/users/memory). diff --git a/content/claude/claude-tag/users/use-cases/your-own-channel.md b/content/claude/claude-tag/users/use-cases/your-own-channel.md index f555c1e95..55b6004f5 100644 --- a/content/claude/claude-tag/users/use-cases/your-own-channel.md +++ b/content/claude/claude-tag/users/use-cases/your-own-channel.md @@ -58,7 +58,7 @@ Open threads pile up here the way they do in any project channel. A scheduled di @Claude every Friday at 3pm Pacific, post a digest of this channel: what closed this week, what's still open, and what hasn't moved in five days. Skip anything with a ✅ reaction. ``` -Give the digest a concrete threshold, like five days without movement, and stalled work shows up without you asking for it. React ✅ to anything you consider done, and the digest drops it. Include the timezone, since schedules default to UTC. To list, edit, or cancel scheduled work later, see [manage standing work](/docs/claude-tag/users/proactivity#manage-standing-work). +Give the digest a concrete threshold, like five days without movement, and stalled work shows up without you asking for it. React ✅ to anything you consider done, and the digest drops it. Include the timezone in the message, since schedules run in UTC. To list, edit, or cancel scheduled work later, see [Manage standing work](/docs/claude-tag/users/proactivity#manage-standing-work). ### Hand a thread to a teammate diff --git a/content/claude/cowork/changelog.md b/content/claude/cowork/changelog.md index 75816b50c..4fed09cef 100644 --- a/content/claude/cowork/changelog.md +++ b/content/claude/cowork/changelog.md @@ -6,6 +6,45 @@ > Release notes for Claude Desktop + + **General** + + * Changed messages sent while Claude is still replying: they now wait in the conversation looking like sent messages, the first waiting message offers Send now, which stops the current reply and sends it next, and Cmd/Ctrl+Enter sends your message right away, interrupting the current turn. + * Fixed Claude's clicks, scrolls, screenshots, and page scripts in the built-in browser stalling, timing out, or failing while the browser pane was hidden or the window was minimized or in the background, and fixed elements picked with "Select element" reaching Claude without their styles or with a screenshot of the wrong part of the page. + * Fixed links that open a new tab to claude.ai or claude.com pages, like Upgrade buttons and some download links, doing nothing when clicked; they now open in your default browser. + * Fixed sites on a private network (VPN, Tailscale, or intranet hosts) loading without their styles, scripts, or data in the built-in browser, and URLs typed into the built-in browser in cloud sessions not reaching private-network sites. + * Fixed the app window resetting to its default size and position after an update or a display change. + + **Code** + + * Added a default transcript view setting: choose whether new sessions open in the Normal, Thinking, or Verbose view from Settings > Claude Code, or make the current view the default from a session's Transcript view menu. The choice syncs between the desktop app and claude.ai. + * Fixed Code sessions failing to start on some Microsoft Store and MSIX installs on Windows. + * Fixed model changes being refused with a message saying organization-managed hooks could not be checked, for some organizations that manage Claude Code plugins; the session now restarts on the chosen model. + * Fixed sessions failing to start on Windows for accounts with many plugins installed. + * Fixed several SSH session issues: hosts slowly accumulating leftover background processes from older Claude versions until sessions there failed, sessions from one computer being ended when a second computer's Claude app cleaned up the same host, sessions permanently losing their connection after a saved connection's host or port was edited, and history missing its newest messages soon after launch or a reconnect. + * Fixed WSL sessions failing to start or reconnect, including background reconnects right after an app update, when WSL reported a momentary error. + + **Cowork** + + * Changed what happens on Windows PCs where a Windows update released September 8, 2026 prevents Claude's workspace from reaching your files: the app now names that cause instead of deleting and reinstalling the workspace. This does not fix the underlying problem, and the workspace still can't reach your files on those PCs. + * Fixed a session appearing stuck running when an organization hook blocked a message; the reason the message was blocked is now shown. + * Fixed an Office file preview sometimes showing "Failed to load PDF document" instead of the spreadsheet or document view. + * Fixed long-running tasks failing with an authentication error after the app renewed your sign-in in the background; the running task now picks up the renewed sign-in and continues. + + **3P** + + * Added `coworkVmIpv6Enabled`, which gives the Cowork workspace VM an IPv6 address and route so the agent's tools can reach IPv6-only hosts through the device's own IPv6 connectivity. macOS and Windows; off by default. `coworkEgressAllowedHosts` still decides which hostnames the tools may reach. + * Added `sshTransport` (beta), which chooses the SSH engine that carries Code sessions: `system-openssh` runs the OpenSSH `ssh` program on the device, so connections can use the organization's own SSH setup (for example Kerberos sign-in, including on Windows), and `builtin` uses the app's built-in SSH library. Unset or `auto` keeps the build's default. + * Added a deprecation notice in the Setup window under any managed-configuration setting that is scheduled to stop being accepted, naming the date and what to use instead. + * Added organization-set session retention. `chatSessionRetentionDays`, `coworkSessionRetentionDays`, and `codeSessionRetentionDays` each delete that surface's idle sessions from the device, along with their files, after the set number of days (1 to 3650) without activity; unset deletes nothing. `sessionRetentionHold` suspends all automatic deletion for the users it is set for, as a legal hold. Projects, Spaces, and memory stay, and a Code session's uncommitted work stays on disk. + * Changed app launch to open the home composer on the last-used Chat or Cowork mode instead of always opening Cowork first. + * Changed hooks from organization plugins to also run in Chat, matching Cowork and Code. + * Deprecated an undocumented client-certificate fallback setting that releases from 1.49585.0 on no longer read, since the app now presents TLS client certificates natively. Deployments that still set it keep working unchanged, but their users see an in-app deprecation warning from November 3, 2026, and the setting stops being accepted on November 17, 2026; remove it once every device is on 1.49585.0 or later. + * Improved the connection test against gateways that require a TLS client certificate the device does not have: the result now says the device did not present a certificate the gateway accepts, so the connection could not be tested, instead of reporting the model as rejected. + * Fixed Claude Code's own settings on the device (a user's or project's settings file, or a `managed-settings.json`) being able to turn OpenTelemetry trace export back on after an administrator configured a collector with traces off; with `otlpEndpoint` set, Cowork and Code sessions now export traces only when `otlpTracesEnabled` is `true`. + * Fixed Amazon Bedrock and Google Vertex AI sessions retrying a failed request for several minutes when the AWS or Google Cloud credential on the machine had expired; the request now stops after one retry so the credential can be refreshed. + + A Windows update released September 8, 2026 (including KB5124008) stops Cowork from reaching your files when it runs on your Windows PC, so tasks fail or the workspace does not start. This affects Cowork on third-party inference deployments and Cowork sessions that run on your computer rather than in the cloud. Cloud sessions and Claude Code, including the Code tab, are not affected. Chat cloud sessions are not affected, but Chat sessions on third-party inference deployments are affected if using advanced file analysis. The cause is a change in Windows, so restarting or reinstalling Claude does not help. We are investigating and working to resolve this as quickly as possible. diff --git a/content/claude/skills/how-to.md b/content/claude/skills/how-to.md index 79209d22b..736941844 100644 --- a/content/claude/skills/how-to.md +++ b/content/claude/skills/how-to.md @@ -49,11 +49,7 @@ description: Apply Acme Corp brand guidelines to presentations and documents, in **name**: Lowercase letters, numbers, and hyphens only. Maximum 64 characters. Must match the directory name. -**description**: Explains what the skill does and when to use it. Claude uses this to determine when to invoke your skill. - - - Claude.ai limits descriptions to **200 characters**. The [Agent Skills specification](https://agentskills.io/specification) allows up to 1024 characters, but skills uploaded to Claude.ai must use the shorter limit. - +**description**: Explains what the skill does and when to use it. Claude uses this to determine when to invoke your skill. Maximum 1,024 characters, the same limit as the [Agent Skills specification](https://agentskills.io/specification). ### Markdown body diff --git a/content/claude/third-party/claude-desktop/configuration-changelog.md b/content/claude/third-party/claude-desktop/configuration-changelog.md index 36e0d7c90..a5eecbdba 100644 --- a/content/claude/third-party/claude-desktop/configuration-changelog.md +++ b/content/claude/third-party/claude-desktop/configuration-changelog.md @@ -8,6 +8,38 @@ Configuration keys by Claude Desktop release. Each section lists keys added in that release, with the MDM key name (for plist/registry deployment) and the equivalent JSON shape (for local-file or bootstrap remote configuration). + +
+ | MDM key | Type | Description | + | ---------------------------------------------------------------------------------------------------- | --------- | ------------------------------- | + | [`sshTransport`](/docs/third-party/claude-desktop/configuration#sshtransport) · Beta | `enum` | SSH connection engine | + | [`chatSessionRetentionDays`](/docs/third-party/claude-desktop/configuration#chatsessionretentiondays) | `integer` | Chat retention period | + | [`coworkSessionRetentionDays`](/docs/third-party/claude-desktop/configuration#coworksessionretentiondays) | `integer` | Cowork retention period | + | [`codeSessionRetentionDays`](/docs/third-party/claude-desktop/configuration#codesessionretentiondays) | `integer` | Code retention period | + | [`sessionRetentionHold`](/docs/third-party/claude-desktop/configuration#sessionretentionhold) | `boolean` | Suspend session deletion | + | [`coworkVmIpv6Enabled`](/docs/third-party/claude-desktop/configuration#coworkvmipv6enabled) | `boolean` | Enable IPv6 in the workspace VM | +
+ + **JSON (e.g. for non-MDM users or Bootstrap):** + + ```json theme={null} + { + "codeSurface": { + "sshTransport": "" + }, + "sessionRetention": { + "chatDays": "", + "coworkDays": "", + "codeDays": "", + "legalHold": "" + }, + "workspace": { + "vmIpv6Enabled": "" + } + } + ``` +
+ **Changed:** diff --git a/content/claude/third-party/claude-desktop/configuration.md b/content/claude/third-party/claude-desktop/configuration.md index 56e07167f..f0aaf6825 100644 --- a/content/claude/third-party/claude-desktop/configuration.md +++ b/content/claude/third-party/claude-desktop/configuration.md @@ -87,6 +87,7 @@ The reference below is generated from the configuration schema and grouped to ma | Re-run helper for silent refresh
`inferenceCredentialHelperSilentRefreshEnabled` | `boolean` | MDM + Bootstrap | `true` | On credential expiry, re-run the helper (CLAUDE\_HELPER\_CONTEXT=mid-session-refresh) to recover silently. Turn off if the helper can’t run non-interactively. Defaults to `true`. | | Proxy server URL
`egressProxyUrl` | `string` | MDM only | — | Send the app’s and the agent’s traffic through this HTTP proxy instead of the operating system’s proxy settings. | | Proxy auto-config (PAC) URL
`egressProxyPacUrl` | `string` | MDM only | — | URL of a PAC file that decides the proxy per request. Wins over the proxy server URL when both are set. | +| Enable IPv6 in the workspace VM
`coworkVmIpv6Enabled` | `boolean` | MDM + Bootstrap | — | Give the Cowork workspace VM an IPv6 address and route so the agent’s tools can reach IPv6-only hosts through the device. macOS and Windows; off by default. | | Artifact preview iframe origin
`userContentRendererUrl` | `string` | MDM + Bootstrap | — | HTTPS origin of the user-content-renderer deployment used for artifact and file previews. Defaults to the commercial host when unset. | | Inference provider
`inferenceProvider` | `enum` | MDM + Bootstrap | — | Selects the inference backend. Setting this key activates third-party mode. One of: `gateway`, `anthropic`, `bedrock`, `mantle`, `vertex`, `foundry`. | | Credential kind
`inferenceCredentialKind` | `enum` | MDM + Bootstrap | — | Selects the credential source. When set, only that source is used (no fallback). One of: `static`, `helper-script`, `interactive`, `vendor-profile`, `workforce`. Deprecated: `inferenceCredentialKind: "oauth" (Vertex AI)` (accepted until October 7, 2026); use "interactive" — the same Google sign-in under its new name (in hosted or nested documents, switch once every desktop is on a release that knows the Vertex "interactive" kind). If it is still present after that, "oauth" will no longer be a Vertex AI credential kind: the value will be reported as invalid and ignored — the device will then derive the kind from the credential fields present (Google sign-in when an OAuth client id is set), and the hosted editor will refuse to save the configuration until the kind is changed. Deprecated: `inferenceCredentialKind: "interactive" together with inferenceVertexWorkforceAudience (Vertex AI)` (accepted until October 7, 2026); use "workforce" — or remove inferenceVertexWorkforceAudience if Google sign-in ("interactive") is what is meant. If it is still present after that, the audience will no longer imply Workforce Identity: the kind will stay "interactive" (Google sign-in), which needs inferenceVertexOAuthClientId — without it the configuration will be reported as incomplete and inference will not start. | @@ -133,6 +134,14 @@ The reference below is generated from the configuration schema and grouped to ma On macOS and Windows the Cowork workspace VM is handed a copy of the script when it starts and evaluates it for each request itself; there `myIpAddress()` returns the VM's internal address rather than the device's, so a script that chooses by client subnet gives the VM its off-network answer (if that download fails, the VM connects directly). The Claude Code engine behind Chat, Cowork, and Code cannot evaluate a PAC file, so the app hands it one proxy (whichever the script returns for your inference endpoint) plus a bypass for loopback and `*.local` names. If the script answers `DIRECT` or only `SOCKS` for that endpoint, the engine uses no proxy at all, so have it return an HTTP `PROXY host:port` entry there; if the engine needs different rules, set `HTTPS_PROXY` and `NO_PROXY` in Claude Code managed settings, which win for the engine on the host. + + When set to `true`, the Cowork workspace VM on macOS and Windows gets a static IPv6 address (a unique local `fd…` address) and an IPv6 default route on its virtual network next to its IPv4 address, and the VM's gateway forwards that traffic over the device's own IPv6 connectivity, as it already does for IPv4. Use it when the tools the agent runs in the VM (shell commands, package installs, `git`, plugin commands, and the whole engine under `requireCoworkFullVmSandbox`) must reach IPv6-only destinations. The VM's resolver then also returns IPv6 (AAAA) answers. A connection the VM makes over IPv6 succeeds only where the device's own IPv6 does; on a device without working IPv6, destinations that have both keep working over IPv4 and IPv6-only destinations stay unreachable. Because the VM's address is unique-local, most tools in it keep preferring IPv4 for destinations that have both, so IPv6 mostly carries traffic to IPv6-only destinations. + + This is a reachability setting, not an egress control: `coworkEgressAllowedHosts` keeps deciding which hostnames the agent's tools may reach, by name, over either protocol, and IPv6 literals are still not accepted there. Hosts your policies allow must also be reachable, and filtered the way you intend, over IPv6 on your network. + + Unset (default): the VM is IPv4-only and its resolver returns no IPv6 answers. A change takes effect the next time the workspace VM starts, typically at the next app launch. Does not apply to the Cowork workspace VM on Linux or to Code sessions, which use the device's own network stack. + + The app activates 3P mode only when this is set and the required credential keys for the selected provider are present and valid; otherwise it launches in standard mode. Keys for providers other than the selected one are ignored. Each provider's required keys are documented on its dedicated page under Inference providers. @@ -380,11 +389,12 @@ The reference below is generated from the configuration schema and grouped to ma ### Code surface -| Setting | Type | Availability | Default | Description | -| ------------------------------------------------------------------------------------------ | ---------- | ---------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Allow Code
`isClaudeCodeForDesktopEnabled` | `boolean` | MDM + Bootstrap | `true` | Enable Code. Claude writes and runs code. Defaults to `true`. | -| SSH host allowlist
`sshHostAllowlist` | `string[]` | MDM + Bootstrap · Beta | — | SSH hosts users may connect to for Code sessions. Empty or unset: off unless the device’s Claude Code managed-settings allowlist applies. \* allows any host. | -| SSH client program
`sshClientPath` | `string` | MDM + Bootstrap · Beta | — | Absolute path to the OpenSSH ssh program the app runs for SSH sessions. Unset: the first ssh on the user’s PATH. | +| Setting | Type | Availability | Default | Description | +| ------------------------------------------------------------------------------------------ | ---------- | ---------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Allow Code
`isClaudeCodeForDesktopEnabled` | `boolean` | MDM + Bootstrap | `true` | Enable Code. Claude writes and runs code. Defaults to `true`. | +| SSH host allowlist
`sshHostAllowlist` | `string[]` | MDM + Bootstrap · Beta | — | SSH hosts users may connect to for Code sessions. Empty or unset: off unless the device’s Claude Code managed-settings allowlist applies. \* allows any host. | +| SSH client program
`sshClientPath` | `string` | MDM + Bootstrap · Beta | — | Absolute path to the OpenSSH ssh program the app runs for SSH sessions. Unset: the first ssh on the user’s PATH. | +| SSH connection engine
`sshTransport` | `enum` | MDM + Bootstrap · Beta | — | Which SSH engine carries Code sessions: the OpenSSH ssh program on the device, or the app’s built-in SSH library. Unset or auto: the build’s default. One of: `auto`, `system-openssh`, `builtin`. | @@ -398,7 +408,17 @@ The reference below is generated from the configuration schema and grouped to ma - Pins which OpenSSH client the app runs wherever it starts `ssh`: evaluating the user's SSH configuration (`ssh -G`), making the SSH connection and its channels, and the Code tab's terminal. `ssh-keygen` and `ssh-add` are taken from the same directory when they exist there, otherwise from PATH. The program must be OpenSSH 7.6 or newer; on macOS and Linux a wrapper script that ends in one is accepted, on Windows it must be a native `.exe` (not a .cmd, .bat or .ps1 script). When this key is set and the program is missing, cannot be run, or is too old, SSH sessions fail with an error telling the user to ask their IT administrator (the configured path is in its details) — the app never falls back to another ssh. On Windows, where SSH connections do not yet run through an ssh program, the key currently affects configuration evaluation and the terminal only. + Pins which OpenSSH client the app runs wherever it starts `ssh`: evaluating the user's SSH configuration (`ssh -G`), making the SSH connection and its channels, and the Code tab's terminal. `ssh-keygen` and `ssh-add` are taken from the same directory when they exist there, otherwise from PATH. The program must be OpenSSH 7.6 or newer (on Windows, Win32-OpenSSH 9.4 or newer to carry the connection); on macOS and Linux a wrapper script that ends in one is accepted, on Windows it must be a native `.exe` (not a .cmd, .bat or .ps1 script). When this key is set and the program is missing, cannot be run, or is too old, SSH sessions fail with an error telling the user to ask their IT administrator (the configured path is in its details) — the app never falls back to another ssh. The connection itself runs through this program on the system-OpenSSH engine, which the SSH connection engine setting's `system-openssh` value selects on every platform, including Windows; when the app's built-in SSH library makes the connection instead, this key still governs configuration evaluation (`ssh -G`), host-key lookups (`ssh-keygen`) and the terminal. + + + + `system-openssh`: the app makes every SSH connection by running an OpenSSH `ssh` program — the one `sshClientPath` names, otherwise the first `ssh` on the user's PATH (on Windows, a Win32-OpenSSH `ssh.exe`: the PATH one, else the in-box or Microsoft-installed client) — so the organization's own OpenSSH build, with its Kerberos/GSSAPI, certificate and `ssh_config` support, is what authenticates. The program must be OpenSSH 7.6 or newer (Windows: Win32-OpenSSH 9.4 or newer). When `sshClientPath` is set and that program cannot be used, sessions fail with an error telling the user to ask their IT administrator rather than falling back; when it is unset and Windows has no usable client, the built-in library is used. + + `builtin`: the app's built-in SSH library makes the connection, whatever the build's default. + + `auto` or unset: the build's default engine. + + An explicit value applies to new connections (sessions already connected keep their engine) and overrides the build's default in both directions, including any remote switch-off Anthropic ships for the OpenSSH engine — so with `system-openssh` set, switching back is done here, by setting `builtin`. @@ -708,7 +728,7 @@ The reference below is generated from the configuration schema and grouped to ma By default the app asks `api.anthropic.com` which version to install. That host also serves the model APIs, so organizations that block un-approved LLM endpoints at the network edge end up blocking updates too. - Turn this on to read the same feed from `releases.claude.com`, a hostname that serves only the desktop update-check route and carries no model API. `api.anthropic.com` can then stay blocked without breaking auto-update. Rollout behavior is unchanged; the installer download still comes from `downloads.claude.ai` as before. + Turn this on to read the same feed from `releases.claude.com`, a hostname that carries no model API. `api.anthropic.com` can then stay blocked without breaking auto-update. Rollout behavior is unchanged; the installer download still comes from `downloads.claude.ai` as before. @@ -777,12 +797,39 @@ The reference below is generated from the configuration schema and grouped to ma - Enables Claude Code's session tracing (`CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1` + `OTEL_TRACES_EXPORTER=otlp`) in spawned Cowork tasks and Code sessions. Each user interaction exports a trace whose spans and events carry `trace_id`/`span_id`, enabling end-to-end correlation in your observability backend (metrics do not carry trace context; correlate those via `session.id`). Traces go to the collector endpoint and protocol configured above. The span structure may evolve between Claude Code releases; see the [Claude Code monitoring docs](https://code.claude.com/docs/en/monitoring-usage). + Enables Claude Code's session tracing (`CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1` + `OTEL_TRACES_EXPORTER=otlp`) in spawned Cowork tasks and Code sessions. Each user interaction exports a trace whose spans and events carry `trace_id`/`span_id`, enabling end-to-end correlation in your observability backend (metrics do not carry trace context; correlate those via `session.id`). Traces go to the collector endpoint and protocol configured above. When `otlpEndpoint` is set, this key alone decides whether those sessions export traces: leaving it unset or `false` keeps traces off even if Claude Code's own settings or managed settings (for example a `managed-settings.json` on the device) turn tracing on. Without `otlpEndpoint` it has no effect. The span structure may evolve between Claude Code releases; see the [Claude Code monitoring docs](https://code.claude.com/docs/en/monitoring-usage). ## Limits +### Session retention + +| Setting | Type | Availability | Default | Description | +| ------------------------------------------------------------------------------------------------- | --------- | --------------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Chat retention period
`chatSessionRetentionDays` | `integer` | MDM + Bootstrap | — | Delete chats, with their files, after this many days without activity. Unset: kept until the user deletes them. Projects and memory stay. Range: 1–3650. | +| Cowork retention period
`coworkSessionRetentionDays` | `integer` | MDM + Bootstrap | — | Delete Cowork tasks, with their uploads and outputs, after this many days without activity. Unset: kept until the user deletes them. Spaces and memory stay. Range: 1–3650. | +| Code retention period
`codeSessionRetentionDays` | `integer` | MDM + Bootstrap | — | Delete Code sessions, conversation included, after this many days without activity. Unset: kept until the user deletes them. Uncommitted work stays on disk. Range: 1–3650. | +| Suspend session deletion
`sessionRetentionHold` | `boolean` | MDM + Bootstrap | — | Suspend all automatic session deletion for these users (legal hold). While on, the retention periods above delete nothing. | + + + + The app deletes whole sessions in the background shortly after it fetches this configuration (at launch and on each re-poll), or some minutes after launch and then daily when the configuration comes from device management alone. Idle time runs from the session's last activity; viewing an old Code session counts as activity, viewing an old chat or Cowork task without continuing it does not durably. A session that is running or open on screen is skipped and checked again on the next pass, as is a chat or Cowork task whose folder changed on disk within the period. Pinned sessions are not exempt. Minimum 1 day; a value that cannot be read as a whole number of days deletes nothing. Set through the served configuration or in the device-management profile that carries the rest of the configuration. What it does not reach: another account's sessions on the device (evaluated when that account signs in), Code sessions on a remote machine (SSH/WSL), Cowork background (dispatch) tasks the sidebar does not list, a chat or Cowork task whose folder cannot be located, and Claude Code files not named by a session id (prompt history, plans, shell snapshots), which keep Claude Code's own retention. Honored only by Claude Desktop configured for a third-party model provider. + + + + The app deletes whole sessions in the background shortly after it fetches this configuration (at launch and on each re-poll), or some minutes after launch and then daily when the configuration comes from device management alone. Idle time runs from the session's last activity; viewing an old Code session counts as activity, viewing an old chat or Cowork task without continuing it does not durably. A session that is running or open on screen is skipped and checked again on the next pass, as is a chat or Cowork task whose folder changed on disk within the period. Pinned sessions are not exempt. Minimum 1 day; a value that cannot be read as a whole number of days deletes nothing. Set through the served configuration or in the device-management profile that carries the rest of the configuration. What it does not reach: another account's sessions on the device (evaluated when that account signs in), Code sessions on a remote machine (SSH/WSL), Cowork background (dispatch) tasks the sidebar does not list, a chat or Cowork task whose folder cannot be located, and Claude Code files not named by a session id (prompt history, plans, shell snapshots), which keep Claude Code's own retention. Honored only by Claude Desktop configured for a third-party model provider. + + + + The app deletes whole sessions in the background shortly after it fetches this configuration (at launch and on each re-poll), or some minutes after launch and then daily when the configuration comes from device management alone. Idle time runs from the session's last activity; viewing an old Code session counts as activity, viewing an old chat or Cowork task without continuing it does not durably. A session that is running or open on screen is skipped and checked again on the next pass, as is a chat or Cowork task whose folder changed on disk within the period. Pinned sessions are not exempt. Minimum 1 day; a value that cannot be read as a whole number of days deletes nothing. Set through the served configuration or in the device-management profile that carries the rest of the configuration. What it does not reach: another account's sessions on the device (evaluated when that account signs in), Code sessions on a remote machine (SSH/WSL), Cowork background (dispatch) tasks the sidebar does not list, a chat or Cowork task whose folder cannot be located, and Claude Code files not named by a session id (prompt history, plans, shell snapshots), which keep Claude Code's own retention. Honored only by Claude Desktop configured for a third-party model provider. + + + + Meant to be set per user or group, through the served configuration's group overrides or in the same device-management profile that carries the rest of the configuration (a profile carrying only this key makes the device profile-managed, like any policy key); a hold in the device's profile also counts when the served configuration does not restate it. Deletion stops at the first configuration fetch that carries this value, before it takes effect as configuration at the next relaunch; a device that cannot reach its configuration server deletes nothing. + + + ### Token limits | Setting | Type | Availability | Default | Description | diff --git a/content/claude/third-party/claude-desktop/feature-matrix.md b/content/claude/third-party/claude-desktop/feature-matrix.md index 3fe342b66..75217ad5c 100644 --- a/content/claude/third-party/claude-desktop/feature-matrix.md +++ b/content/claude/third-party/claude-desktop/feature-matrix.md @@ -10,7 +10,7 @@ The tables below compare the feature set of Claude Desktop on third-party (3P) t ## Key differences -**Configuration.** Claude Enterprise uses a web-based admin console. Claude Desktop on 3P is configured via [MDM](/docs/third-party/claude-desktop/mdm) (Jamf, Intune, Group Policy) or a [bootstrap server](/docs/third-party/claude-desktop/bootstrap); organizations in the admin console beta can instead manage it from **Organization settings** on claude.ai. +**Configuration.** Both are administered from the web-based [admin console](/docs/third-party/claude-desktop/admin-console) in **Organization settings** on claude.ai. Claude Desktop on 3P can also be configured through [MDM](/docs/third-party/claude-desktop/mdm) (Jamf, Intune, Group Policy) or a [bootstrap server](/docs/third-party/claude-desktop/bootstrap). **Telemetry.** Claude Desktop on 3P sends usage and debugging metrics only, and these can be fully disabled via managed configuration. Claude Enterprise does not offer telemetry toggles. See [Telemetry and egress](/docs/third-party/claude-desktop/telemetry). @@ -22,34 +22,36 @@ The tables below compare the feature set of Claude Desktop on third-party (3P) t ## User features -| Feature | Claude Enterprise | Claude Desktop on 3P | -| --------------------------------------------------- | :---------------: | :------------------: | -| Chat | ✓ | ✓ (admin opt-in) | -| Cowork | ✓ | ✓ | -| Code | ✓ | ✓ | -| Auto mode (Code) | ✓ | ✓ (admin opt-in) | -| Automatically approve / Skip all approvals (Cowork) | — ¶ | ✓ (admin opt-in) | -| Projects | ✓ | ✓ | -| Code execution for analysis | ✓ | ✓ | -| Web search | ✓ | ✓ § | -| File access, upload, and export | ✓ | ✓ | -| Local MCP | ✓ | ✓ | -| Remote MCP | ✓ | ✓ | -| Skills, plugins, and hooks | ✓ | ✓ | -| Artifacts | ✓ | ✓ | -| Memory | ✓ | ✓ † | -| Scheduled tasks | ✓ | ✓ | -| Global languages | ✓ | ✓ | -| Project and plugin sharing | ✓ | — | -| Plugin marketplaces | ✓ | ✓ | -| Mobile | ✓ | — | -| claude.ai web-based access | ✓ | — | -| Voice mode | ✓ | — | -| Claude in Chrome | ✓ | — | -| Claude Design | ✓ | — | -| Claude Security | ✓ | — | -| Claude Tag | ✓ | — | -| Computer use | — | — | +| Feature | Claude Enterprise | Claude Desktop on 3P | +| ----------------------------------------------------------------------------------------------------------------------------------- | :---------------: | :------------------: | +| Chat | ✓ | ✓ | +| Cowork | ✓ | ✓ | +| Code | ✓ | ✓ | +| Auto mode (Code) | ✓ | ✓ | +| [SSH remote Code sessions](/docs/third-party/claude-desktop/ssh-remote-sessions) | ✓ | ✓ | +| Automatically approve / Skip all approvals (Cowork) | — ¶ | ✓ | +| Projects | ✓ | ✓ | +| Code execution for analysis | ✓ | ✓ | +| Web search | ✓ | ✓ § | +| File access, upload, and export | ✓ | ✓ | +| Local MCP | ✓ | ✓ | +| Remote MCP | ✓ | ✓ | +| [Microsoft 365](/docs/third-party/claude-desktop/connectors-m365) and [GitHub](/docs/third-party/claude-desktop/connectors-github) connectors | ✓ | ✓ | +| Skills, plugins, and hooks | ✓ | ✓ | +| Artifacts | ✓ | ✓ | +| Memory | ✓ | ✓ † | +| Scheduled tasks | ✓ | ✓ | +| Global languages | ✓ | ✓ | +| Project and plugin sharing | ✓ | — | +| Plugin marketplaces | ✓ | ✓ | +| Mobile | ✓ | — | +| claude.ai web-based access | ✓ | — | +| Voice mode | ✓ | — | +| Claude in Chrome | ✓ | — | +| Claude Design | ✓ | — | +| Claude Security | ✓ | — | +| Claude Tag | ✓ | — | +| Computer use | — | — | § Amazon Bedrock deployments and gateways that do not forward Anthropic server tools need a web search provider configured first; see [Web search options](/docs/third-party/claude-desktop/web-tools#web-search-options). @@ -59,18 +61,21 @@ The tables below compare the feature set of Claude Desktop on third-party (3P) t ## Admin features -| Feature | Claude Enterprise | Claude Desktop on 3P | -| --------------------------------------------- | :----------------: | :------------------: | -| Endpoint / gateway configuration | — | ✓ | -| Skills, hooks, and plugins distribution | ✓ | ✓ | -| MCP server allowlist | ✓ | ✓ | -| Feature toggles (web search, local MCP, etc.) | ✓ | ✓ | -| Auto-updates | ✓ | ✓ (configurable) | -| Per-user spend caps | ✓ (differentiated) | ✓ (blanket only) | -| Compliance API | ✓ | — ‡ | -| Analytics API | ✓ | — ‡ | -| OpenTelemetry export | ✓ | ✓ | -| User management via UI | ✓ | — | -| RBAC | ✓ | via MDM | +| Feature | Claude Enterprise | Claude Desktop on 3P | +| --------------------------------------------------------------------------------------------- | :---------------: | :------------------: | +| Endpoint / gateway configuration | — | ✓ | +| Skills, hooks, and plugins distribution | ✓ | ✓ | +| MCP server allowlist | ✓ | ✓ | +| Feature toggles (web search, local MCP, etc.) | ✓ | ✓ | +| Auto-updates | ✓ | ✓ | +| Per-user usage caps | ✓ | ✓ | +| [Data retention policies](/docs/third-party/claude-desktop/configuration#chatsessionretentiondays) | ✓ | ✓ | +| Compliance API | ✓ | — ‡ | +| Analytics API | ✓ | — ‡ | +| OpenTelemetry export | ✓ | ✓ | +| User management via UI | ✓ | ✓ ◊ | +| RBAC | ✓ | ✓ ◊ | ‡ Many of these capabilities can be achieved via OpenTelemetry export to your own collector. See [Monitoring](/docs/cowork/monitoring). + +◊ With the [Enterprise Admin Console](/docs/third-party/claude-desktop/admin-console), administrators add users and groups, connect single sign-on and SCIM, assign administrator roles, and set per-group permission policies from **Organization settings** on claude.ai. Deployments configured through MDM or a bootstrap server manage access through those channels. diff --git a/content/claude/third-party/claude-desktop/overview.md b/content/claude/third-party/claude-desktop/overview.md index 560851051..8d227e56a 100644 --- a/content/claude/third-party/claude-desktop/overview.md +++ b/content/claude/third-party/claude-desktop/overview.md @@ -19,7 +19,7 @@ Claude Desktop on 3P is designed for organizations whose security, regulatory, o How far a deployment is separated from Anthropic depends on the provider you choose. On Google Cloud's Agent Platform and Amazon Bedrock, the cloud provider processes conversation data in the region you select. On Microsoft Foundry, Anthropic operates the Claude models, and residency follows the Foundry deployment type. Review [Data handling by provider](#data-handling-by-provider) and [Data residency and international deployment](#data-residency-and-international-deployment) before choosing a provider. -If your organization can use Anthropic's first-party products directly, standard Claude Desktop with [Cowork](/docs/cowork/overview) on a Team or Enterprise plan is simpler to deploy, offers an in-app UI for user management, analytics, and RBAC, and releases new features more quickly than Claude Desktop on 3P. Choose Claude Desktop on 3P when routing inference through Anthropic's API is not an option. +If your organization can use Anthropic's first-party products directly, standard Claude Desktop with [Cowork](/docs/cowork/overview) on a Team or Enterprise plan is simpler to deploy and releases new features more quickly than Claude Desktop on 3P. Choose Claude Desktop on 3P when routing inference through Anthropic's API is not an option. ## Architecture @@ -29,10 +29,10 @@ Claude Desktop on 3P keeps the standard feature set and relocates inference to t | ---------------------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | | Model inference | Anthropic API | Your configured provider endpoint (Google Cloud's Agent Platform, Amazon Bedrock, Microsoft Foundry, or gateway), or the Anthropic API | | Web application | Loaded from claude.ai | Bundled inside the desktop app | -| User identity | Anthropic account | Local device identity only (Anthropic account when managed from the claude.ai admin console, in beta) | +| User identity | Anthropic account | Local device identity only (Anthropic account when managed from the claude.ai admin console) | | Conversation storage | Anthropic backend | Local disk on the user's machine | | Code execution sandbox | Local VM | Local VM (identical) | -| Configuration | Admin console at claude.ai | OS-native configuration (MDM-managed or per-user), or the claude.ai admin console (beta) | +| Configuration | Admin console at claude.ai | OS-native configuration (MDM-managed or per-user), a bootstrap server, or the claude.ai admin console | The desktop app detects 3P mode at launch from the configured inference provider. When a provider and its credentials are present, the sign-in screen offers the option to skip Anthropic authentication and start the app using your inference-provider configuration instead. @@ -41,7 +41,7 @@ The desktop app detects 3P mode at launch from the configured inference provider * **Conversation content goes only to your configured endpoint.** The app sends prompts, responses, files, and tool outputs only to your configured inference endpoint and stores them only on the local machine. What happens to that content at the endpoint depends on the provider, as described under [Data handling by provider](#data-handling-by-provider). * **Sandboxed tool execution.** Shell commands run in the hardened Cowork VM; file access is scoped to your allowed folders and web fetches to your egress allowlist. * **Auditable telemetry.** Crash reports and product analytics are scrubbed of conversation and user data before being sent to Anthropic, and can be fully disabled via configuration keys. Independently, you can export session activity to your own OpenTelemetry collector. The export is metadata only by default, with prompt and tool content available as an explicit opt-in. -* **Centrally managed.** All configuration is delivered via your existing MDM (Jamf, Intune, Workspace ONE, Group Policy) and cannot be overridden by end users when an admin profile is present. +* **Centrally managed.** Configuration is delivered through your existing MDM (Jamf, Intune, Workspace ONE, Group Policy), a [bootstrap server](/docs/third-party/claude-desktop/bootstrap), or the [admin console](/docs/third-party/claude-desktop/admin-console). End users cannot override a configuration that MDM delivers. For a detailed treatment of the threat model, sandbox boundaries, and data flows, request access to the [Claude Cowork Desktop Security Architecture Overview](https://trust.anthropic.com/resources?s=2a7bbzo1lyymvdt551q7kl\&name=claude-cowork-desktop-security-architecture-overview) on Anthropic's Trust Center. For architecture, telemetry, and controls information specific to Claude Desktop on 3P, see the [Claude Desktop Security Overview (Third-party platforms)](https://trust.anthropic.com/resources?s=0c8rx4s7mm5ierz8ppetfs\&name=claude-cowork-security-overview-\(third-party-platforms\)) on the Trust Center. diff --git a/content/en/api/errors.md b/content/en/api/errors.md index 4bd54d092..861750c29 100644 --- a/content/en/api/errors.md +++ b/content/en/api/errors.md @@ -475,13 +475,19 @@ Use `thinking: {"type": "enabled", "budget_tokens": N}` on these models; see [Ex ### Thinking cannot be disabled -On Claude Fable 5.1, [Claude Mythos 5.1](https://anthropic.com/glasswing), Claude Fable 5, [Claude Mythos 5](https://anthropic.com/glasswing), and [Claude Mythos Preview](https://anthropic.com/glasswing), thinking is always on. Sending `thinking: {"type": "disabled"}` to any of these models returns a 400 `invalid_request_error`: +On Claude Fable 5.1, [Claude Mythos 5.1](https://anthropic.com/glasswing), Claude Fable 5, [Claude Mythos 5](https://anthropic.com/glasswing), and [Claude Mythos Preview](https://anthropic.com/glasswing), thinking is always on. Sending `thinking: {"type": "disabled"}` to any of these models returns a 400 `invalid_request_error`. On all of these models except Claude Mythos Preview, the message reads: + +```text wrap +"thinking.type.disabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior. +``` + +On Claude Mythos Preview, the only one of these models that accepts extended thinking, the message reads: ```text wrap "thinking.type.disabled" is not supported for this model. Thinking defaults to adaptive mode when not specified; use "thinking.type.enabled" with "budget_tokens" for extended thinking. ``` -On Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5, and Claude Mythos 5, the error message's own suggestion of `"thinking.type.enabled"` is also rejected. Omit the `thinking` parameter and the request runs with adaptive thinking. To keep thinking content out of responses without turning thinking off, set `display: "omitted"` on the thinking configuration. See [Troubleshooting thinking](https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#error-thinking-type-disabled). +Omit the `thinking` parameter and the request runs with adaptive thinking. To keep thinking content out of responses without turning thinking off, set `display: "omitted"` on the thinking configuration. See [Troubleshooting thinking](https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#error-thinking-type-disabled). ### Forced tool use not supported diff --git a/content/en/build-with-claude/extended-thinking.md b/content/en/build-with-claude/extended-thinking.md index 384d2d752..0aa874fd7 100644 --- a/content/en/build-with-claude/extended-thinking.md +++ b/content/en/build-with-claude/extended-thinking.md @@ -290,7 +290,7 @@ When you are ready to move off manual budgets, see [Migrating to adaptive thinki Interleaved thinking lets Claude think between tool calls within a single assistant turn, reasoning about each tool result before deciding what to do next. For the concept, the turn structure, and how it behaves on adaptive-thinking models, see [interleaved thinking](https://platform.claude.com/docs/en/build-with-claude/thinking#interleaved-thinking) in the thinking overview. This section covers how to enable it when you use manual `type: "enabled"` thinking. -On Claude Opus 4.5, Claude Sonnet 4.5, and earlier Claude 4 models (Claude Opus 4.1, Claude Opus 4, and Claude Sonnet 4), add the `interleaved-thinking-2025-05-14` [beta header](https://platform.claude.com/docs/en/api/beta-headers) to your API request. +On Claude Opus 4.5, Claude Sonnet 4.5, and earlier Claude 4 models, add the `interleaved-thinking-2025-05-14` [beta header](https://platform.claude.com/docs/en/api/beta-headers) to your API request. The 4.6 generation splits in manual mode: diff --git a/content/en/build-with-claude/task-budgets.md b/content/en/build-with-claude/task-budgets.md index 70f58c664..a6f0e2fa9 100644 --- a/content/en/build-with-claude/task-budgets.md +++ b/content/en/build-with-claude/task-budgets.md @@ -624,7 +624,7 @@ Run a representative sample of tasks **without** `task_budget` set and record th Run this across a representative set of tasks and record the distribution. Start with the p99 of your per-task token spend to understand how providing the model with a task budget might modify the model's behavior, then test up or down as needed. -The minimum accepted `task_budget.total` is model-specific. On every model that supports task budgets (see [Feature support](https://platform.claude.com/docs/en/build-with-claude/task-budgets#feature-support)) it is **20,000 tokens**, and smaller values return a 400 error. +The minimum accepted `task_budget.total` is **20,000 tokens** on every model that supports task budgets (see [Feature support](https://platform.claude.com/docs/en/build-with-claude/task-budgets#feature-support)). Smaller values return a 400 error. ## Interaction with other parameters diff --git a/content/en/build-with-claude/thinking-troubleshooting.md b/content/en/build-with-claude/thinking-troubleshooting.md index 09e0dfec3..522e8495e 100644 --- a/content/en/build-with-claude/thinking-troubleshooting.md +++ b/content/en/build-with-claude/thinking-troubleshooting.md @@ -56,13 +56,19 @@ Switch the request to `thinking: {type: "adaptive"}` and steer thinking depth wi ## A 400 error says `"thinking.type.disabled"` is not supported -The request fails with a 400 error whose message reads: +The request fails with a 400 error. On Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5, and Claude Mythos 5, the message reads: + +```text wrap +"thinking.type.disabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior. +``` + +On Claude Mythos Preview, the only one of these models that accepts extended thinking, the message reads: ```text wrap "thinking.type.disabled" is not supported for this model. Thinking defaults to adaptive mode when not specified; use "thinking.type.enabled" with "budget_tokens" for extended thinking. ``` -This happens on models where thinking is always on: Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5, Claude Mythos 5, and Claude Mythos Preview reject `"disabled"`. All of these except Claude Mythos Preview also reject the error text's suggested `"thinking.type.enabled"`. +This happens because thinking is always on for all of these models (see the [per-model configuration table](https://platform.claude.com/docs/en/build-with-claude/thinking-troubleshooting#rejected-configurations)). Omit the `thinking` parameter; these models think without any configuration. If your goal was to keep thinking text out of responses, use `display: "omitted"` instead of disabling thinking; see [Controlling thinking display](https://platform.claude.com/docs/en/build-with-claude/thinking#controlling-thinking-display). diff --git a/content/en/docs/claude-code/agent-sdk/modifying-system-prompts.md b/content/en/docs/claude-code/agent-sdk/modifying-system-prompts.md index d128d9e5b..32959bf94 100644 --- a/content/en/docs/claude-code/agent-sdk/modifying-system-prompts.md +++ b/content/en/docs/claude-code/agent-sdk/modifying-system-prompts.md @@ -367,9 +367,9 @@ The SDK assembles the blocks from the array as follows: By default, Claude Code builds the system prompt once, on a session's first request, with your `append` text or custom prompt included, and records it in the session. Until the session is compacted, every later request uses that recorded prompt, including after you return to the session with `resume` or `continue`. If you pass a different `append` or custom prompt on that later call, it takes effect once the session is compacted or in a new session. -Recording applies in sessions that [fetch feature flags](/docs/en/env-vars#features-that-need-feature-flag-fetching), as sessions using a claude.ai or Console account do by default. On Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, and in other sessions that don't fetch them, Claude Code rebuilds the prompt on every request. If you start Claude Code in [bare mode](/docs/en/headless#start-faster-with-bare-mode) by passing `--bare` through `extraArgs` or setting `CLAUDE_CODE_SIMPLE=1`, recording stays off unless you set `snapshot: true` on the object form of `systemPrompt`. Recording an `append` or custom prompt by default requires Claude Code v2.1.265 or later, which the TypeScript Agent SDK bundles from v0.3.265. +If you start Claude Code in [bare mode](/docs/en/headless#start-faster-with-bare-mode) by passing `--bare` through `extraArgs` or setting `CLAUDE_CODE_SIMPLE=1`, recording stays off unless you set `snapshot: true` on the object form of `systemPrompt`. Recording an `append` or custom prompt by default requires Claude Code v2.1.265 or later, which the TypeScript Agent SDK bundles from v0.3.265. Before Claude Code v2.1.268, sessions that don't [fetch feature flags](/docs/en/env-vars#features-that-need-feature-flag-fetching), including sessions on Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry, rebuilt the prompt on every request and `snapshot` had no effect. -To rebuild the prompt on every request instead, set `snapshot: false` on the object form of `systemPrompt` in the TypeScript SDK: `{ type: "preset", preset: "claude_code", append, snapshot: false }` or `{ type: "custom", prompt, snapshot: false }`. Use this form while you iterate on prompt wording, or when your application changes `append` between calls that resume the same session. The `snapshot` field requires `@anthropic-ai/claude-agent-sdk` v0.3.257 or later and has no effect in sessions that don't fetch feature flags. +To rebuild the prompt on every request instead, set `snapshot: false` on the object form of `systemPrompt` in the TypeScript SDK: `{ type: "preset", preset: "claude_code", append, snapshot: false }` or `{ type: "custom", prompt, snapshot: false }`. Use this form while you iterate on prompt wording, or when your application changes `append` between calls that resume the same session. The `snapshot` field requires `@anthropic-ai/claude-agent-sdk` v0.3.257 or later. ## Compare the four approaches diff --git a/content/en/docs/claude-code/agent-sdk/python.md b/content/en/docs/claude-code/agent-sdk/python.md index d80afc91f..e5940a6a4 100644 --- a/content/en/docs/claude-code/agent-sdk/python.md +++ b/content/en/docs/claude-code/agent-sdk/python.md @@ -2882,9 +2882,7 @@ When Monitor runs a command, it follows the same permission rules as Bash; a Web **Tool name:** `TodoWrite` - On Python Agent SDK 0.2.139 and later, the following restriction applies. - - The following tools aren't available on Opus 4.8, Sonnet 5, Fable 5, Mythos 5, or later versions of those families unless you opt in: + The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in: * `TodoWrite` * `TaskCreate` @@ -2892,7 +2890,9 @@ When Monitor runs a command, it follows the same permission rules as Bash; a Web * `TaskUpdate` * `TaskList` - On other models, Claude Code provides the Task tools by default and `TodoWrite` only when you set `CLAUDE_CODE_ENABLE_TASKS=0`. + Wherever the tools are available, Claude Code provides the four Task tools, or `TodoWrite` instead when you set `CLAUDE_CODE_ENABLE_TASKS=0`. + + This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268. See [Model availability](/docs/en/agent-sdk/todo-tracking#model-availability) to opt in. diff --git a/content/en/docs/claude-code/agent-sdk/todo-tracking.md b/content/en/docs/claude-code/agent-sdk/todo-tracking.md index d6639fb9c..4f960dac2 100644 --- a/content/en/docs/claude-code/agent-sdk/todo-tracking.md +++ b/content/en/docs/claude-code/agent-sdk/todo-tracking.md @@ -6,16 +6,14 @@ > Track todos in Agent SDK sessions and render Claude's progress in your application from structured tool calls -On the models listed under [Model availability](#model-availability), Claude tracks multi-step work without a written todo list, and Claude Code leaves the [task-tracking tools](/docs/en/tools-reference#task-tool-availability) out of sessions by default. You don't need anything on this page for Claude to work through multi-step tasks on those models. +Claude Code provides the [task-tracking tools](/docs/en/tools-reference#task-tool-availability) by default only on the models listed under [Model availability](#model-availability). Newer models track multi-step work without a written todo list, so on those you don't need anything on this page for Claude to work through multi-step tasks. In a session that has the task-tracking tools, Claude keeps a written todo list, updating each item's status as it works. You see each change in the message stream as a structured tool call. Opt a session in only when your application reads those tool calls, whether to log task activity or to render its own progress display. ## Model availability - On TypeScript Agent SDK 0.3.233 and later, or Python Agent SDK 0.2.139 and later, the following restriction applies. - - The following tools aren't available on Opus 4.8, Sonnet 5, Fable 5, Mythos 5, or later versions of those families unless you opt in: + The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in: * `TodoWrite` * `TaskCreate` @@ -23,10 +21,12 @@ In a session that has the task-tracking tools, Claude keeps a written todo list, * `TaskUpdate` * `TaskList` - On other models, Claude Code provides the Task tools by default and `TodoWrite` only when you set `CLAUDE_CODE_ENABLE_TASKS=0`. + Wherever the tools are available, Claude Code provides the four Task tools, or `TodoWrite` instead when you set `CLAUDE_CODE_ENABLE_TASKS=0`. + + This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268. -On the listed models, unless you opt a session in, you see no `tool_use` blocks for the tools in the message stream. The Agent SDK applies these defaults through the Claude Code binary that it bundles. If you point `pathToClaudeCodeExecutable` (TypeScript) or `cli_path` (Python) at your own Claude Code install, you get whichever tools that install provides, under its own defaults. To see the exact set in a running session, [check which tools are available](/docs/en/tools-reference#check-which-tools-are-available). To opt a session in, do one of the following: +On a model that doesn't have the tools by default, unless you opt a session in, you see no `tool_use` blocks for them in the message stream. The Agent SDK applies these defaults through the Claude Code binary that it bundles. If you point `pathToClaudeCodeExecutable` (TypeScript) or `cli_path` (Python) at your own Claude Code install, you get whichever tools that install provides, under its own defaults. To see the exact set in a running session, [check which tools are available](/docs/en/tools-reference#check-which-tools-are-available). To opt a session in, do one of the following: * Name one of the tools in the [`allowedTools`](/docs/en/agent-sdk/permissions#allow-and-deny-rules) (TypeScript) or `allowed_tools` (Python) option * List the tools in the `tools` option, which restricts the session's built-in tools to the ones it names. Include the tools you want alongside the other built-in tools you use diff --git a/content/en/docs/claude-code/agent-sdk/typescript.md b/content/en/docs/claude-code/agent-sdk/typescript.md index d5e0eec98..947c6aa13 100644 --- a/content/en/docs/claude-code/agent-sdk/typescript.md +++ b/content/en/docs/claude-code/agent-sdk/typescript.md @@ -666,9 +666,11 @@ Before Agent SDK v0.3.238, the response never carried the field, and Claude Code The response always reports `fast_mode_state`, and when something blocks [fast mode](/docs/en/fast-mode), `fast_mode_disabled_reason` carries the reason code alongside it, so you can explain the blocked state instead of re-deriving availability. Both behaviors require Claude Code v2.1.219 or later. Before v2.1.219, the response omitted `fast_mode_state` when fast mode wasn't available and never carried a reason. For the reason codes and their meanings, see [`fast_mode_disabled_reason`](#sdkresultmessage) on the result message. -When a client sends `initialize` to a session that is already running, the control-response wrapper also carries an optional `pending_permission_requests` array. The field is on the response wrapper itself, not in the `SDKControlInitializeResponse` payload above. Each entry is a complete `control_request` message with the same `{ type: "control_request", request_id, request }` shape the session streams for permission requests while running. +The control-response wrapper for a successful `initialize` also carries a `pending_permission_requests` array. The field is on the response wrapper itself, not in the `SDKControlInitializeResponse` payload above. Each entry is a complete `control_request` message with the same `{ type: "control_request", request_id, request }` shape the session streams for permission requests while running. -These are requests that were issued before the client connected and are still awaiting a reply. The SDK reads the array for you and dispatches each entry to your [`canUseTool`](#canusetool) callback, the same redelivery that [`reinitialize()`](#query-object) triggers after a transport gap. Handle repeated request IDs idempotently, because an entry can repeat a request the callback already received before the connection dropped. +The array lists the permission requests that this Claude Code process has issued and not yet resolved. The SDK reads the array for you and dispatches each entry to your [`canUseTool`](#canusetool) callback, the same redelivery that [`reinitialize()`](#query-object) triggers after a transport gap. Handle repeated request IDs idempotently, because an entry can repeat a request the callback already received before the connection dropped. + +The array is always present on a successful `initialize` response and is empty when this process has no unresolved permission request. Requires Claude Code v2.1.268 or later. Earlier versions could omit the field, so if you parse the wire protocol yourself, treat a missing field as an older CLI rather than as proof that nothing is pending. ### `SDKControlInterruptResponse` @@ -2794,9 +2796,7 @@ type TodoWriteInput = { Creates and manages a structured task list for tracking progress. - On TypeScript Agent SDK 0.3.233 and later, the following restriction applies. - - The following tools aren't available on Opus 4.8, Sonnet 5, Fable 5, Mythos 5, or later versions of those families unless you opt in: + The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in: * `TodoWrite` * `TaskCreate` @@ -2804,7 +2804,9 @@ Creates and manages a structured task list for tracking progress. * `TaskUpdate` * `TaskList` - On other models, Claude Code provides the Task tools by default and `TodoWrite` only when you set `CLAUDE_CODE_ENABLE_TASKS=0`. + Wherever the tools are available, Claude Code provides the four Task tools, or `TodoWrite` instead when you set `CLAUDE_CODE_ENABLE_TASKS=0`. + + This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268. See [Model availability](/docs/en/agent-sdk/todo-tracking#model-availability) to opt in. @@ -3112,7 +3114,7 @@ type ArtifactInput = { }; ``` -Publishes a local `.html` or `.md` file as a hosted artifact page, or lists the user's published artifacts. Omit `action` or pass `"publish"` to publish `file_path`, which is required for the publish action along with `favicon`, one or two emoji for the browser tab. `title` names the published page in the browser tab and gallery when the HTML file has no `` tag. `url` targets an existing artifact to update in place instead of minting a new one. +Publishes a local `.html` or `.md` file as a hosted artifact page, or lists the user's published artifacts. Omit `action` or pass `"publish"` to publish `file_path`, which is required for the publish action along with `favicon`, one or two emoji that mark the artifact in the user's gallery. `title` names the published page in the browser tab and gallery when the HTML file has no `<title>` tag. `url` targets an existing artifact to update in place instead of minting a new one. `force` is a last-resort overwrite that discards a newer version another session published. On a conflict, the failed publish returns the newer content; Claude merges its changes onto that content, or re-reads the artifact, and publishes again. Pass `force` only when the user explicitly asks to discard that version. @@ -3750,9 +3752,7 @@ type TodoWriteOutput = { Returns the previous and updated task lists. <Note> - On TypeScript Agent SDK 0.3.233 and later, the following restriction applies. - - The following tools aren't available on Opus 4.8, Sonnet 5, Fable 5, Mythos 5, or later versions of those families unless you opt in: + The following tools are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. On every other model, including model IDs Claude Code doesn't recognize, they aren't available unless you opt in: * `TodoWrite` * `TaskCreate` @@ -3760,7 +3760,9 @@ Returns the previous and updated task lists. * `TaskUpdate` * `TaskList` - On other models, Claude Code provides the Task tools by default and `TodoWrite` only when you set `CLAUDE_CODE_ENABLE_TASKS=0`. + Wherever the tools are available, Claude Code provides the four Task tools, or `TodoWrite` instead when you set `CLAUDE_CODE_ENABLE_TASKS=0`. + + This default set applies in Claude Code v2.1.268 and later, which the TypeScript Agent SDK bundles from v0.3.268. See [Model availability](/docs/en/agent-sdk/todo-tracking#model-availability) to opt in. </Note> diff --git a/content/en/docs/claude-code/agent-view.md b/content/en/docs/claude-code/agent-view.md index 0240bbbb3..0b82f8ad2 100644 --- a/content/en/docs/claude-code/agent-view.md +++ b/content/en/docs/claude-code/agent-view.md @@ -547,6 +547,11 @@ What happens to a worktree Claude created for the session: When another finished session's records also name the worktree, it stays when you delete again; push the commits, then delete again. * A worktree git no longer recognizes, for example after `git worktree prune`, doesn't block the delete. Claude Code deletes the session and leaves the directory on disk. +* When git or your [`WorktreeRemove` hook](/docs/en/hooks#worktreeremove) fails to remove the worktree, Claude Code keeps the worktree and the session, and the message names the cause. For a hook, the message says how it ended, such as `exited 1`, and quotes the start of its stderr. The message also tells you which of these to do next: + + * Delete the session again to remove the directory anyway, by pressing `Ctrl+X` twice on its row in agent view or running the `claude rm <id> --force-remove-worktree <worktree-id>` command that the `claude rm` refusal printed. Claude Code offers this only when it can confirm the directory is one of the repository's linked worktrees under `.claude/worktrees/` with no uncommitted changes to tracked files, no nested repository inside it, and no other session's record naming it. The worktree's branch stays in the repository. + * Fix what stands in the way, such as committing or stashing the uncommitted changes, closing whatever is using the directory, or fixing the hook, then delete the session again. + * Remove the directory yourself, then delete the session again. A worktree you created yourself and started the session inside is left in place either way. @@ -679,20 +684,21 @@ claude agents --settings ./ci-settings.json --add-dir ../shared-lib Every background session has a short ID you can use from the shell. The ID is printed when you start a session with `claude --bg`, and each session's ID is its directory name under `~/.claude/jobs/`. These commands are useful for scripting or when you don't want to open agent view. -| Command | Purpose | -| :--------------------------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `claude agents` | Open agent view | -| `claude agents --cwd <path>` | Open agent view scoped to sessions started under `<path>` | -| `claude agents --json` | Print sessions as a JSON array and exit. See [List sessions as JSON](#list-sessions-as-json) | -| `claude attach <id>` | Attach to a session in this terminal | -| `claude logs <id>` | Print the session's recent output | -| `claude stop <id>` | Stop a session. Also accepts `claude kill` | -| `claude respawn <id>` | Restart a session, running or stopped, e.g. to pick up an updated Claude Code binary. The restarted session resumes its saved conversation; when none is on disk, it runs its original prompt again as a new conversation | -| `claude respawn --all` | Restart every running session, e.g. to move all sessions onto an updated Claude Code binary at once | -| `claude rm <id>` | Remove a session from the list, along with a worktree Claude created for it when that's safe to delete; see [What deleting a session removes](#what-deleting-a-session-removes). The conversation transcript stays on your local machine and remains available through `claude --resume` | -| `claude rm <id> --discard-unpushed <commit>@<worktree-id>` | Delete a session whose delete was refused over unpushed commits, discarding the worktree along with its branch and commits. Pass the exact value that refusal printed; see [What deleting a session removes](#what-deleting-a-session-removes). Requires v2.1.260 or later | -| `claude daemon status` | Print the [supervisor's](#the-supervisor-process) state, version, socket directory, and worker count | -| `claude daemon stop --any` | Stop the supervisor process and the background sessions it hosts. Pass `--keep-workers` to leave background sessions running so the next supervisor reconnects to them. The next `claude agents` or `claude --bg` starts a fresh supervisor | +| Command | Purpose | +| :--------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `claude agents` | Open agent view | +| `claude agents --cwd <path>` | Open agent view scoped to sessions started under `<path>` | +| `claude agents --json` | Print sessions as a JSON array and exit. See [List sessions as JSON](#list-sessions-as-json) | +| `claude attach <id>` | Attach to a session in this terminal | +| `claude logs <id>` | Print the session's recent output | +| `claude stop <id>` | Stop a session. Also accepts `claude kill` | +| `claude respawn <id>` | Restart a session, running or stopped, e.g. to pick up an updated Claude Code binary. The restarted session resumes its saved conversation; when none is on disk, it runs its original prompt again as a new conversation | +| `claude respawn --all` | Restart every running session, e.g. to move all sessions onto an updated Claude Code binary at once | +| `claude rm <id>` | Remove a session from the list, along with a worktree Claude created for it when that's safe to delete; see [What deleting a session removes](#what-deleting-a-session-removes). The conversation transcript stays on your local machine and remains available through `claude --resume` | +| `claude rm <id> --discard-unpushed <commit>@<worktree-id>` | Delete a session whose delete was refused over unpushed commits, discarding the worktree along with its branch and commits. Pass the exact value that refusal printed; see [What deleting a session removes](#what-deleting-a-session-removes). Requires v2.1.260 or later | +| `claude rm <id> --force-remove-worktree <worktree-id>` | Delete a session whose delete was refused because git or the `WorktreeRemove` hook couldn't remove its worktree, deleting the worktree directory anyway and leaving its branch in the repository. Pass the exact value that refusal printed; see [What deleting a session removes](#what-deleting-a-session-removes). Requires v2.1.268 or later | +| `claude daemon status` | Print the [supervisor's](#the-supervisor-process) state, version, socket directory, and worker count | +| `claude daemon stop --any` | Stop the supervisor process and the background sessions it hosts. Pass `--keep-workers` to leave background sessions running so the next supervisor reconnects to them. The next `claude agents` or `claude --bg` starts a fresh supervisor | ### List sessions as JSON @@ -927,6 +933,7 @@ Agent view has evolved quickly during research preview. If you are on an older C | Version | Change | | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| v2.1.268 | When a [delete is refused](#what-deleting-a-session-removes) because git or your `WorktreeRemove` hook couldn't remove the worktree, the message names the cause, including how a hook ended and the start of its stderr. For a linked worktree under the repository's `.claude/worktrees/` with no uncommitted changes to tracked files, no nested repository inside it, and no other session's record naming it, deleting the session again removes the directory anyway, from agent view or with `claude rm <id> --force-remove-worktree <worktree-id>`. Before this release, the row showed only `worktree could not be removed (WorktreeRemove hook failed)` or git's error, the hook's stderr went only to the debug log, and deleting again was refused the same way. | | v2.1.260 | When you [background a session](#from-inside-a-session), your other sessions' [agent listing](/docs/en/cross-session-messaging#see-which-sessions-claude-can-reach) shows the conversation once, as its background session, and their messages to it no longer reach the terminal you moved it from. Before this release, that terminal could stay listed as a second interactive session under the conversation's name, and a session that had messaged the conversation before the move kept delivering to that terminal. | | v2.1.260 | When a [delete is refused over unpushed commits](#what-deleting-a-session-removes), the message names the worktree's branch and how many commits are unpushed, and deleting the session again discards the worktree and its commits. Before this release, the refusal said only `worktree has commits that are not pushed anywhere`, deleting again was refused the same way, and deleting the session required pushing the commits or removing the worktree by hand. | | v2.1.257 | `←` [detaches from an attached session while the `/btw` overlay is open](#attach-to-a-session), even mid-answer, and the overlay reopens when you next attach. Before this release, `←` didn't detach while the overlay was open. | diff --git a/content/en/docs/claude-code/analytics.md b/content/en/docs/claude-code/analytics.md index 3541a99eb..205be2080 100644 --- a/content/en/docs/claude-code/analytics.md +++ b/content/en/docs/claude-code/analytics.md @@ -121,10 +121,6 @@ Click **Export all users** to download complete contribution data for all users When contribution metrics are enabled, Claude Code analyzes merged pull requests to determine which code was written with Claude Code assistance. This is done by matching Claude Code session activity against the code in each PR. -#### Tagging criteria - -PRs are tagged as "with Claude Code" if they contain at least one line of code written during a Claude Code session. The system uses conservative matching: only code where there is high confidence in Claude Code's involvement is counted as assisted. - #### Attribution process When a pull request is merged: diff --git a/content/en/docs/claude-code/artifacts.md b/content/en/docs/claude-code/artifacts.md index 27ed4e8b3..eaa255846 100644 --- a/content/en/docs/claude-code/artifacts.md +++ b/content/en/docs/claude-code/artifacts.md @@ -58,7 +58,7 @@ After you approve an artifact once, Claude Code republishes it without asking, a After the first publish, Claude prints the URL, and your browser opens to the new page. If you sent the prompt through [Remote Control](/docs/en/remote-control) from claude.ai, Claude Desktop, or the Claude mobile app, no tab opens on the machine running the session. The browser opens there the next time Claude publishes the artifact from a prompt you type at the terminal. Press `Ctrl+]` at any time to reopen the session's most recent artifact. -Claude picks the artifact's title and an emoji for its browser-tab icon. Both appear in your [gallery of artifacts](#share-an-artifact) on claude.ai and in shared links, so ask Claude to use a specific title or icon if you want one. +Claude picks the artifact's title and an emoji, and both appear in your [gallery of artifacts](#share-an-artifact) on claude.ai and in shared links. Claude can also pick a browser-tab icon that matches what the page is, such as a chart or a calendar. Ask Claude for a specific title, emoji, or tab icon if you want one. To stop the browser from opening automatically when a new artifact is published, set `CLAUDE_CODE_ARTIFACT_AUTO_OPEN=0` in your environment. diff --git a/content/en/docs/claude-code/auto-mode-config.md b/content/en/docs/claude-code/auto-mode-config.md index 24de1b28c..7a8c9cc0e 100644 --- a/content/en/docs/claude-code/auto-mode-config.md +++ b/content/en/docs/claude-code/auto-mode-config.md @@ -377,9 +377,9 @@ When the classifier produces [no verdict on the action](/docs/en/errors#auto-mod To see what the classifier blocked, find the tool call in the conversation. If the call appears shortened or folded into a summary line such as `Ran 3 shell commands`, press `Ctrl+O` to open the [transcript viewer](/docs/en/interactive-mode#transcript-viewer), which expands it. -Two other places on screen that report denials leave out the command or URL: the notice near the input box, such as `bash denied by auto mode · Blocked by classifier · /permissions`, gives the tool and the reason, and the **Recently denied** tab lists a shell command by the description Claude wrote for it. To capture the exact input of these denials programmatically, add a [`PermissionDenied` hook](/docs/en/hooks#permissiondenied), which receives it as `tool_input`. +Two other places on screen that report denials leave out the command or URL: the notice near the input box, such as `bash denied by auto mode · [Data Exfiltration] · /permissions`, gives the tool and the reason, and the **Recently denied** tab lists a shell command by the description Claude wrote for it. To capture the exact input of these denials programmatically, add a [`PermissionDenied` hook](/docs/en/hooks#permissiondenied), which receives it as `tool_input`. -The text beneath the call tells you whether there is anything to fix. Text that reports a problem with the classifier itself, such as a model that `is temporarily unavailable` or a classifier error, means Claude Code blocked the call without a final verdict from the classifier; see [Auto mode cannot determine the safety of an action](/docs/en/errors#auto-mode-cannot-determine-the-safety-of-an-action) for what to do. Otherwise, a line reading `Denied by auto mode classifier` with a reason such as `Blocked by classifier` means the classifier judged the call unsafe, so pick the fix from what the call was trying to reach or do: +The text beneath the call tells you whether there is anything to fix. Text that reports a problem with the classifier itself, such as a model that `is temporarily unavailable` or a classifier error, means Claude Code blocked the call without a final verdict from the classifier; see [Auto mode cannot determine the safety of an action](/docs/en/errors#auto-mode-cannot-determine-the-safety-of-an-action) for what to do. Otherwise, a line reading `Denied by auto mode classifier` with a reason such as `[Production Deploy]` or `Blocked by classifier` means the classifier judged the call unsafe, so pick the fix from what the call was trying to reach or do: * A destination Claude needs throughout the task, such as a package registry, an internal domain, or a repository host: add it to `autoMode.environment`. * A command you want to run without review from now on: add an `allow` rule. @@ -387,7 +387,7 @@ The text beneath the call tells you whether there is anything to fix. Text that You can add the environment entry or `allow` rule from the `/permissions` dialog's [**Auto mode** tab](#edit-rules-from-permissions). -The reason shown with the call is the fixed text `Blocked by classifier` in most sessions, in Claude Code v2.1.208 and later: the classifier scores each action on an internal severity scale rather than writing an explanation. Some sessions run a classifier model that writes a short explanation instead, in v2.1.193 and later; when one appears, treat it as a hint about which destination or intent the classifier was missing. Claude Code selects the classifier model, so which reason you see isn't something you configure. +In most sessions the reason names the rule the classifier matched, in square brackets, such as `[Data Exfiltration]` or `[Production Deploy]`, and some sessions run a classifier model that adds a short explanation. Claude Code selects the classifier model, so which form you see isn't something you configure. ### Fix repeated denials diff --git a/content/en/docs/claude-code/changelog.md b/content/en/docs/claude-code/changelog.md index b8f4edf2f..056075ce0 100644 --- a/content/en/docs/claude-code/changelog.md +++ b/content/en/docs/claude-code/changelog.md @@ -10,6 +10,105 @@ This page is generated from the [CHANGELOG.md on GitHub](https://github.com/anth Run `claude --version` to check your installed version. +<Update label="2.1.268" description="September 10, 2026"> + * Added to the Claude apps gateway: with `pricing:` set in `gateway.yaml`, signed-in Claude Code clients receive the same rates through managed settings, so `/cost` and telemetry match the spend meter + * Added a startup warning for gateways when `access_control.allow_cidrs` is empty, and a one-time warning the first time a request arrives from a public address + * Added the `gatewayInternalNetworks` managed setting, letting administrators allow `/login` to a Claude apps gateway on their organization's own public IPv4 block + * Added `claude self-hosted-runner --remove-session-state` (default off): delete each session's per-session directories under `<base-dir>/_sessions/` when the session ends + * Added `configDirectory` to the output of `claude auth status --json` + * Added `--json` to `claude plugin install`, `uninstall`, `update`, `enable` and `disable`, and `errorDetails`/`noteDetails` to each row of `claude plugin list --json` + * Added browser-tab icons for published artifacts, chosen by Claude to match each page + * Fixed every turn failing with HTTP 400 on third-party Anthropic-compatible endpoints (`ANTHROPIC_BASE_URL`) since 2.1.265: a regex in the Artifact tool's input schema that those endpoints reject + * Fixed WebFetch hanging indefinitely on a server that keeps the response open without finishing; a fetch now fails after 300 seconds. Set `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` to override the deadline (0 turns it off) + * Fixed a respawned in-process teammate picking up tools or a system prompt from a same-named agent file in a folder you have not trusted + * Fixed sustained high CPU usage: a busy loop in long-running idle sessions no longer pins a CPU core, and rapid terminal focus reports during a session recap no longer keep the CPU high + * Fixed Claude sometimes replying "your message came through empty" after an MCP tool call + * Fixed deny and ask permission rules on symlinked directories (`/etc`, `/tmp`, `/var` on macOS; `/bin` on Linux) not applying when a path was given by its real location, and Bash commands ignoring deny rules written on a symlinked path spelling + * Fixed a case where a Read or Edit deny rule did not apply when an `env -C`, `eval` or similar command the permission checker cannot analyze was on the same line + * Fixed plugin and marketplace errors showing a token or password from a git source URL + * Fixed `/mcp` and `/plugin` server details, `claude mcp list`/`get`, and MCP login errors showing secrets resolved from `${VAR}` placeholders in MCP configs + * Fixed prompt caching and extended thinking breaking mid-session for SDK sessions using `excludeDynamicSections`: the first message is no longer re-rendered each request + * Fixed entitled users being told a model is restricted after restart or in the Desktop Code tab when a cached model-access denial was stale + * Fixed a running session silently switching to the organization's default model when another Claude Code process refreshed a stale model-access entry + * Fixed long-context 429s on Fable models showing the usage-credits consent prompt instead of the 1M-context message on Pro and Team plans + * Fixed workload identity federation via a profile (as claude-code-action configures it): processes sharing the profile could fail mid-run with `401 … jti reused` + * Fixed MCP server OAuth sign-in failing with "No available ports for OAuth redirect" when the local callback port range can't be bound + * Fixed the conversation summary produced by `/compact` and auto-compact mangling text that contained `$` sequences + * Fixed resuming a conversation that ended with `/compact`: its restored-file notes now load in the same order on every resume + * Fixed SDK prompt suggestions, side questions and `/rename` sending the conversation from before a compaction + * Fixed `@` file and `/` command suggestions not appearing after recalling a previous prompt with the up arrow and editing it + * Fixed `claude agents`: pressing ← again at a natural pace to go back to the agent list no longer gets ignored until you pause for over a second + * Fixed `claude agents` session delete getting stuck when a worktree can't be removed: the message names the cause and next step, and for a git worktree ctrl+x again deletes the directory anyway + * Fixed background agent and workflow rows in the agents panel expanding to many lines when their text contained line breaks + * Fixed Claude in Slack sessions losing their Slack tools when org managed settings set an MCP allowlist + * Fixed Claude in Chrome asking to allow the host "https" when a navigation URL had a scheme but a host that could not be parsed + * Fixed the spinner wrapping onto several lines when the current task's label is long; the label and the "Next:" task line now stay within one terminal row + * Fixed the `/bug` and `/feedback` description field showing no cursor when the terminal's native cursor is enabled + * Fixed Remote Control sessions served by `claude remote-control` showing a generated name instead of their session title in `ListAgents` + * Fixed `claude plugin validate` rejecting plugin paths whose directory name begins with two dots, which the plugin loader accepts + * Fixed plugins silently skipping a default monitors file or root SKILL.md that could not be checked + * Fixed WebFetch's error for localhost and other dotless hostnames to explain why the URL is refused and suggest curl + * Fixed PermissionRequest hooks not firing in `--print` mode + * Fixed policy-helper warnings not printing on headless (`-p`) runs + * Fixed `/resume` listing a `/fork` background session under its parent's name instead of its own `⑂` fork name + * Fixed `/remote-control` and other claude.ai-gated commands to suggest `/login` when signed out instead of showing a Claude for Enterprise migration message + * Fixed `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` not extending SessionEnd hooks that have no per-hook `timeout` (they were still cancelled after 1.5 seconds) + * Fixed `/autofix-pr` and other cloud-session commands saying to retry or install the Claude GitHub App when no GitHub account is connected; they now point to `/web-setup` or the web connect page + * Fixed cloud-session commands such as `/teleport` and `/remote-env` to explain when an organization policy turns them off, instead of answering "Unknown command" + * Fixed Bash sandbox instructions over-stating confinement: no unenforced path lists when filesystem isolation is off, and strict mode no longer claims commands can never run unsandboxed + * Improved fullscreen mode: adding or removing a prompt line (Shift+Enter) now repaints as fast as typing a character instead of re-rendering the visible transcript + * Improved `--continue` / `--resume`: the conversation appears immediately instead of waiting for SessionStart hooks, and the first message no longer re-reads the whole transcript + * Improved responsiveness during tool-heavy turns by no longer redrawing the transcript for a hidden per-tool-batch reminder + * Improved startup time in projects with `.claude/workflows/` scripts: listing them no longer parses each script + * Improved auto mode denials: the message Claude receives now names the rule that blocked the action and asks Claude to try a safer method and finish unrelated work before stopping to ask you + * Improved Claude in Chrome: long page reads now stay inline instead of being saved to a file and read back + * Improved the MEMORY.md truncation warning to say how many lines were cut and where the cut starts + * Improved the terminal permission prompt for artifacts: it now leads with the ask's question + * Improved the prompt footer: an editor or `/diff` selection now shows inside the prompt input, and fullscreen mode shows Remote Control status in the header instead of the footer + * Improved the "Usage credits required for 1M context" message to say that usage credits turned on mid-session take effect after restarting Claude Code + * Improved `/plugin`: installing, enabling or disabling a plugin now takes effect when you close the menu; `/reload-plugins` is no longer needed afterwards + * Changed the system prompt on Bedrock, Vertex and Foundry to deliver environment, model and settings details as attachments, matching first-party sessions + * Changed Bedrock, Vertex and Foundry sessions to keep the tool list byte-stable across a conversation (late-connecting tools load deferred instead of rewriting it), matching first-party sessions + * Changed the task-tracking tools (TaskCreate/Get/Update/List, TodoWrite) to be offered only on Claude 3.x, Opus 4.0–4.7, Sonnet 4.0–4.6, Haiku 4.5; set `CLAUDE_CODE_ENABLE_TODO_TOOLS=1` elsewhere + * Changed the artifact data-edit permission prompt in the terminal to a card that shows the document count and who can open the artifact + * Changed local Cowork sessions set to skip all approvals: the Artifact tool now refuses a local file outside the session's folders, or behind a symlink, instead of reading it without asking + * Changed plain `WebFetch` deny and ask rules to no longer apply to Artifact tool reads and updates; use an `Artifact` rule (or `WebFetch(domain:claude.ai)`) to block or gate them + * Changed the "N MCP servers need authentication" startup notice to announce each server once instead of at every launch + * \[VSCode] Fixed the session list, settings toggles, and chat tabs when `CLAUDE_CONFIG_DIR` is set in a settings file or the `environmentVariables` setting + * \[VSCode] Fixed the model pill, model picker and command menu going blank in open tabs for a few seconds after a login, logout or account switch + * \[VSCode] Fixed Auto disappearing from the mode picker in new-tab or just-reloaded conversations when a project or local setting overrides the model named in `~/.claude/settings.json` + * \[VSCode] Fixed session names reverting to the last prompt after a window reload when a SessionStart hook is configured + * \[VSCode] Fixed the footer's model pill and Remote Control pill waiting for the new tab's Claude process to start when another tab in the window is already up + * \[VSCode] Fixed a second Claude process running through its full startup when a session tab's launch arrived more than half a second after its config read + * \[VSCode] Fixed resuming a session from the session list ignoring `claudeCode.preferredLocation: "sidebar"` (it always opened a panel), and programmatic opens resetting that setting to "panel" + * \[VSCode] Fixed Windows issues: the WSL install prompt no longer appears on machines without WSL installed, and IDE diagnostics are now returned correctly for Windows files when WSL is installed + * \[VSCode] Fixed the custom style builder saving a User level style in a folder the CLI does not read when `CLAUDE_CONFIG_DIR` is set through settings + * \[VSCode] Added Left and Right arrow keys to change where an always-allow permission rule is saved, for keyboard and screen reader users + * \[VSCode] Added a "Claude Code: Focus last message" command that moves keyboard focus to the newest message in the conversation, for keyboard and screen reader users + * \[VSCode] Changed the Manage plugins dialog to apply installs, enables, disables and uninstalls to open sessions without a restart + * \[VSCode] Changed some artifact permission prompts to omit the "don't ask again" choice, matching the terminal + * \[Claude Code on the web] Fixed cloud sessions running longer than about six hours silently losing files saved to persisted session folders; saves now persist for up to a day + * \[Claude Code on the web] Fixed "Invalid effort level" errors when a routine resumes a session, or a session starts with no set effort, in orgs where an admin caps a model's effort + * \[Claude Code on the web] Improved routine creation from a conversation: when the new routine has no connectors, Claude now says so and how to add them instead of only confirming it + * \[Claude Tag] Fixed the admin settings page hanging on a loading skeleton or going blank after a transient load failure; a section that fails to load now shows a Retry button + * \[Claude Tag] Added a link from a Slack channel's configure page back to the organization's Claude in Slack admin settings + * \[Claude Tag] Fixed a Slack Enterprise Grid channel losing its Claude settings (repository, environment, access) after a Slack admin moved it to another workspace + * \[Claude Tag] Improved how Claude explains a blocked action: it now says whether a permission check, its own decision to confirm first, or missing access stopped it + * \[Claude Tag] Improved reply speed: Claude now runs several read-only lookups (searching Slack, reading a thread, finding people) at once instead of one after another + * \[Claude Tag] Improved formatting of comparisons: sentence-length comparisons now come as lists instead of wide tables that scroll sideways, and long table cells wrap + * \[Claude Tag] Fixed `@Claude !restart` in a thread with its own session sometimes also posting a contradictory "this thread is handled by the channel session" notice + * \[Claude Tag] Improved the message shown when your Claude account is in a different organization than the Slack workspace: it now explains how to connect the workspace to your org + * \[Claude Tag] Fixed Markdown links whose URL is wrapped in angle brackets showing as literal bracket text in Slack instead of a clickable link + * \[Claude Tag] Fixed a workspace guest's top-level @mention in a channel where guests may use Claude sometimes getting a "your Slack account isn't connected" reply instead of an answer + * \[Claude Tag] Fixed a channel's long-running session being replaced with a fresh one mid-conversation; the scheduled refresh now waits until the channel and its threads are quiet + * \[Claude Tag] Fixed channel-settings cards clicked more than once telling the proposing session the change was refused after it had already applied; the outcome is now sent once + * \[Claude Tag] Changed memory in public channels: each channel now keeps its own notes, and Claude no longer recalls notes it saved in other public channels; workspace notes stay shared + * \[Code Review] Added a note under the still-open findings list in follow-up reviews: resolving a finding's thread, not just replying to it, stops later reviews from counting it as open + * \[Code Review] Fixed reviews sometimes ending as incomplete when one of the agents verifying a finding failed midway; the review now replaces that agent and reaches a verdict + * \[Code Review] Fixed a push-triggered review that was queued behind a running review still posting after the pull request had been converted to draft + * \[Code Review] Fixed reviews ignoring a directory's CLAUDE.md conventions when the PR edited a root file (e.g. README.md) that only shares a name with a file that CLAUDE.md lists +</Update> + <Update label="2.1.267" description="September 9, 2026"> * Added `maxEffortLevel` setting (top-level or per model under `modelSettings`): caps the effort level on every provider, including Bedrock, Vertex and Foundry; users can still pick a lower level * Added `--system-prompt-snapshot off` to render the system prompt fresh on every request instead of reusing the conversation's recorded prompt (for iterating on prompt text) diff --git a/content/en/docs/claude-code/channels-reference.md b/content/en/docs/claude-code/channels-reference.md index 49559e639..6a432c1a7 100644 --- a/content/en/docs/claude-code/channels-reference.md +++ b/content/en/docs/claude-code/channels-reference.md @@ -164,7 +164,7 @@ This example uses [Bun](https://bun.sh) as the runtime for its built-in HTTP ser If the event doesn't arrive, the diagnosis depends on what `curl` returned: - * **`curl` succeeds but nothing reaches Claude**: run `/mcp` in your session to check the server's status. A `failed` status usually means a dependency or import error in your server file; check the debug log at `~/.claude/debug/<session-id>.txt` for the stderr trace. + * **`curl` succeeds but nothing reaches Claude**: run `/mcp` in your session to check the server's status. A `failed` status usually means a dependency or import error in your server file. To see the stderr trace, restart with `claude --debug --dangerously-load-development-channels server:webhook` and check the debug log at `~/.claude/debug/<session-id>.txt`. * **`curl` fails with "connection refused"**: the port is either not bound yet or a stale process from an earlier run is holding it. `lsof -i :<port>` shows what's listening; `kill` the stale process before restarting your session. </Step> </Steps> diff --git a/content/en/docs/claude-code/channels.md b/content/en/docs/claude-code/channels.md index 7947151da..8e532e316 100644 --- a/content/en/docs/claude-code/channels.md +++ b/content/en/docs/claude-code/channels.md @@ -45,7 +45,7 @@ Each supported channel is a plugin that requires [Bun](https://bun.sh). For a ha * `Marketplace "claude-plugins-official" not found`: add the marketplace with `/plugin marketplace add anthropics/claude-plugins-official`, then retry the install. * The plugin is [not found in the marketplace](/docs/en/discover-plugins#install-plugins): check the plugin name. - When the install asks for an installation scope, choose the user scope option so the plugin is available across all your projects. Check the install summary: if it reports `Run /reload-plugins to activate.`, run that command to activate the plugin's configure command. + When the install asks for an installation scope, choose the user scope option so the plugin is available across all your projects. Check the install summary: if it reports `Run /reload-plugins to activate.`, see [Apply plugin changes without restarting](/docs/en/discover-plugins#apply-plugin-changes-without-restarting) to make the plugin's configure command available. </Step> <Step title="Configure your token"> @@ -123,7 +123,7 @@ Each supported channel is a plugin that requires [Bun](https://bun.sh). For a ha * `Marketplace "claude-plugins-official" not found`: add the marketplace with `/plugin marketplace add anthropics/claude-plugins-official`, then retry the install. * The plugin is [not found in the marketplace](/docs/en/discover-plugins#install-plugins): check the plugin name. - When the install asks for an installation scope, choose the user scope option so the plugin is available across all your projects. Check the install summary: if it reports `Run /reload-plugins to activate.`, run that command to activate the plugin's configure command. + When the install asks for an installation scope, choose the user scope option so the plugin is available across all your projects. Check the install summary: if it reports `Run /reload-plugins to activate.`, see [Apply plugin changes without restarting](/docs/en/discover-plugins#apply-plugin-changes-without-restarting) to make the plugin's configure command available. </Step> <Step title="Configure your token"> diff --git a/content/en/docs/claude-code/claude-apps-gateway-config.md b/content/en/docs/claude-code/claude-apps-gateway-config.md index ed97c88f1..ffae15b81 100644 --- a/content/en/docs/claude-code/claude-apps-gateway-config.md +++ b/content/en/docs/claude-code/claude-apps-gateway-config.md @@ -30,7 +30,7 @@ Five sections are [required](#required-sections). Every other section is [option * [`admin`](#admin): Admin API auth and retention for spend limits * [`enforcement`](#enforcement): spend-limit fail-open or fail-closed behavior -* [`pricing`](#pricing): contracted rates and a discount multiplier for the spend meter +* [`pricing`](#pricing): contracted rates and a discount multiplier for the spend meter and for the cost figures developers see * [`models`](#models) and `auto_include_builtin_models`: admin-curated model list and per-upstream IDs * [`managed`](#managed): managed settings policies by IdP group * [`telemetry`](#telemetry): OTLP forwarding to your observability stack @@ -118,7 +118,11 @@ For local development, point `postgres_url` at a throwaway Postgres container, f ### `upstreams` -`upstreams` is an ordered list. The gateway forwards inference to the first upstream that resolves the requested model. On `5xx`, `429`, `401`, `403`, `404`, or timeout it fails over to the next; other `4xx` doesn't, because those errors are attributable to the request rather than the upstream. A `401` or `403` means the gateway's own credential failed against that upstream, and a `404` means that upstream doesn't serve the requested model, so a later upstream in the list still can. +`upstreams` is an ordered list. The gateway forwards inference to the first upstream that resolves the requested model. + +On `5xx`, `429`, `401`, `403`, `404`, or timeout the gateway fails over to the next upstream; other `4xx` doesn't, because those errors are attributable to the request rather than the upstream. A `401` or `403` means the gateway's own credential failed against that upstream. A `404` means that upstream doesn't serve the requested model, so a later upstream in the list still can. + +If you set `forward_user_identity: true` on an upstream, a `429` it returns to a request that carried the developer's email doesn't fail over. See [how a per-user limit denial reaches the developer](#per-user-identity-headers-for-a-proxy-you-run). Failover on `404` requires gateway v2.1.198 or later. Earlier releases returned the first `404` to the client even when a later upstream in the list served the model. @@ -204,6 +208,8 @@ The gateway adds these headers to every request it forwards to that upstream. When the IdP token carries no email, the gateway sends only `x-claude-gateway-user-id` and omits the two email headers. If your IdP puts the email in a different claim, set [`oidc.email_claim`](#oidc) to that claim. +When your proxy answers `429` to a request that carried the developer's email, the gateway returns that response to the developer as-is instead of failing over to the next upstream, so your proxy's per-user budget or rate limit holds. The proxy's other responses follow the ordinary [failover rules](#upstreams). If a developer's IdP token carries no email, the gateway forwards their requests without the email headers, so a `429` to one of those requests counts as upstream capacity and fails over. Before v2.1.267 on the gateway server, every `429` failed over. + Set `forward_user_identity` only on an upstream whose `base_url` is a proxy you operate. The gateway sends developer emails to whatever server that `base_url` names. If the `base_url` is the Anthropic API, which is the default, the gateway refuses to start. #### Amazon Bedrock @@ -333,7 +339,9 @@ The same provider can appear more than once with a distinct `name:`. This covers The gateway tries upstreams in order. `5xx`, `429`, `401`, `403`, `404`, timeouts, and missing-endpoint (`501`) fail over; other `4xx` doesn't. -`429` is per-upstream capacity, so provisioned-throughput (PT) exhaustion fails over to on-demand. `404` is per-upstream model availability, so an upstream that hasn't enabled a model doesn't block a later upstream that serves it. An upstream that can't resolve the requested model is skipped without a network round-trip. +`429` is per-upstream capacity, so provisioned-throughput (PT) exhaustion fails over to on-demand. If you set [`forward_user_identity: true`](#per-user-identity-headers-for-a-proxy-you-run) on an upstream, a `429` to a request that carried the developer's email is a per-user denial instead and doesn't fail over. + +`404` is per-upstream model availability, so an upstream that hasn't enabled a model doesn't block a later upstream that serves it. An upstream that can't resolve the requested model is skipped without a network round-trip. This example routes a provisioned-throughput Amazon Bedrock allotment first, overflows to on-demand and a second account, and falls back to the Anthropic API last: @@ -431,7 +439,7 @@ The `enforcement` block controls how spend-limit checks behave when the store is The `pricing` block tells the spend meter what to charge instead of USD list price, so caps and [`/effective`](/docs/en/claude-apps-gateway-spend-limits#%2Feffective) reflect your contracted rates. Amounts stay in USD and remain an estimate, not an invoice. Two prerequisites: * Claude Code v2.1.227 or later on the gateway server. Earlier versions reject the unknown key at boot. -* An [`admin:`](#admin) block, because only the spend meter reads `pricing`. The gateway refuses to start with `pricing` set and no `admin`. +* An [`admin:`](#admin) block or, in v2.1.268 or later, a [`managed:`](#managed) block with at least one policy. The gateway refuses to start with `pricing` set and neither block, because nothing would read it. ```yaml theme={null} pricing: @@ -448,7 +456,7 @@ pricing: | Field | Required | Description | | ------------ | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `multiplier` | No | Default `1`. The meter multiplies every metered amount by this, whether list-priced or overridden, so `0.85` bills 85% of the price. Must be greater than 0 and at most 1. | -| `overrides` | No | Rows of `{upstream, model, input, output, cache_read, cache_write}` in USD per million tokens. All four rates are required and must be positive. | +| `overrides` | No | Rows of `{upstream, model, input, output, cache_read, cache_write}` in USD per million tokens. All four rates are required. Each must be greater than 0 and at most 10000. | How the meter matches an override row: @@ -460,6 +468,14 @@ How the meter matches an override row: For per-region rates, give each region its own named upstream and one row per upstream. +#### Send the rates to signed-in clients + +With v2.1.268 or later on the gateway server, the gateway also puts the rates from `pricing` into the [`managed`](#managed) policies it serves, as the [`modelPricing`](/docs/en/settings-reference#modelpricing) managed setting. Developers matched by a policy then see the `pricing` rates for the first upstream that serves each model ID in `/usage`, the status line, and OpenTelemetry. A developer who matches no policy receives no managed settings, so their figures stay at list price. Clients apply the setting in Claude Code v2.1.242 or later. + +* What the gateway adds: unless a policy's `cli` block already sets `modelPricing`, the gateway adds the `multiplier` and, for every model ID a client can request, the override row of the first upstream that serves that ID. A rate that only a failover upstream charges stays on the gateway. +* Opt one policy out: set `modelPricing` to `{}` in that policy's `cli` block, and its developers stay at list price. +* Keep a policy's own rates: a policy whose `cli` block sets `modelPricing` with its own `multiplier` or `overrides` keeps that `modelPricing` whole, and the gateway adds no rates of its own to it. + ### `models` The `models` block is an optional admin-curated model list, served at `/v1/models` and used to translate model IDs per upstream. It is required for non-US Amazon Bedrock regions, Amazon Bedrock provisioned-throughput ARNs, and Microsoft Foundry deployment names. @@ -642,7 +658,7 @@ The gateway derives much of the response from the matched policy's `cli` block a * The model list, from `availableModels` * Disabled tools, from bare tool-name `permissions.deny` entries. If you set `disabledBuiltinTools` in the policy's `desktop` block, the gateway serves the union of your value and the derived list, so you can disable more tools this way but can't re-enable one you disabled through `permissions.deny` * The egress allowlist, from `sandbox.network.allowedDomains`. If you set `coworkEgressAllowedHosts` in the policy's `desktop` block, the gateway uses that value instead of the derived list -* An OTLP endpoint that points at the gateway itself, which fans out to your destinations, included when [`telemetry`](#telemetry) forwarding is configured. +* An OTLP endpoint that points at the gateway itself, and the signed-in user's identity attributes. The gateway relays the exports it receives at that endpoint to your `forward_to` destinations. It includes the endpoint and the attributes when you set both [`telemetry.forward_to`](#telemetry) and `listen.public_url`. Claude Desktop exports every signal with one encoding: `http/protobuf`, or `http/json` when you set `OTEL_EXPORTER_OTLP_PROTOCOL` or one of its per-signal variants to `http/json` in the policy's `env`. Before Claude Code v2.1.261 on the gateway server, the response set `http/json` regardless, so a collector that accepts only protobuf rejected Claude Desktop's exports @@ -696,10 +712,18 @@ Gateway policies apply to every Claude Code invocation on the machine, including ### `telemetry` -The CLI sends OpenTelemetry Protocol (OTLP) over HTTP metrics, logs, and, when enabled, traces to the gateway, which relays them verbatim to each configured destination. See [Monitoring usage](/docs/en/monitoring-usage) for the metrics and events the CLI emits. +The CLI sends metrics, logs, and, when enabled, traces to the gateway, which relays them verbatim to each configured destination. The exports use OpenTelemetry Protocol (OTLP) over HTTP. To skip the relay and have sessions export straight to your collector, [name the collector in a policy](#export-directly-to-your-collector). See [Monitoring usage](/docs/en/monitoring-usage) for the metrics and events the CLI emits. The CLI stamps each export with the authenticated user's identity, read from the gateway-issued JWT: the `user.id`, `user.email`, and `user.groups` attributes. Per-developer cost and usage attribution therefore works with no developer-side configuration. +[Claude Desktop](#claude-desktop-overlay) and Cowork sessions signed in through the gateway stamp their telemetry with `user.email` and `user.groups` alongside `enduser.id`, so you can cover terminal, Desktop, and Cowork usage with one query on `user.email` or `user.groups`. `user.groups` is the comma-separated IdP group list. + +Like all OpenTelemetry data from Claude Code, these attributes go only to destinations your organization configures, never to Anthropic. + +If a user's group list is longer than 255 characters once percent-encoded, or a group name contains a comma or equals sign, the gateway leaves `user.groups` off that user's Desktop and Cowork telemetry rather than truncating it. That user's terminal sessions still carry the full list. + +You need Claude Code v2.1.265 or later on the gateway server for `user.email` and `user.groups` on Desktop and Cowork telemetry, and Claude Desktop 1.24012 or later on each developer's machine for `user.groups`. + ```yaml theme={null} telemetry: forward_to: @@ -731,21 +755,63 @@ Each `forward_to` URL must use `https://`, with one exception for a collector on For an in-cluster collector, expose it over HTTPS at its own internal address, or run it as a sidecar with the variable set. -Telemetry is off in the CLI by default. Configuring `telemetry.forward_to` together with `listen.public_url` turns it on. The gateway pushes six env vars to every connected client through `/managed/settings`: +Telemetry is off in the CLI by default. When you set both `telemetry.forward_to` and `listen.public_url`, the gateway turns it on for connected clients by pushing six environment variables through `/managed/settings`: * `CLAUDE_CODE_ENABLE_TELEMETRY=1` -* `OTEL_METRICS_EXPORTER=otlp` -* `OTEL_LOGS_EXPORTER=otlp` -* `OTEL_TRACES_EXPORTER=otlp` +* `OTEL_METRICS_EXPORTER`, `OTEL_LOGS_EXPORTER`, and `OTEL_TRACES_EXPORTER`, each set to `otlp` if at least one `forward_to` destination enables that signal and to `none` otherwise * `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>` * `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf` -The pushed endpoint is built from the public URL, so metrics and logs need no OTEL configuration from developers or policies. The pushed configuration is applied at the managed tier, overriding `OTEL_*` variables a developer sets locally. Whether or not the gateway pushes these variables, a CLI signed in through `/login` that has OTLP/HTTP export enabled sends its exports to the gateway rather than to a locally configured endpoint, and without a `forward_to` destination for a signal the gateway accepts and discards it; if you already collect Claude Code telemetry directly, add your collector as a `forward_to` destination. +Before Claude Code v2.1.265 on the gateway server, the gateway pushed all three exporter selectors as `otlp`, including for signals no destination opted into. + +The pushed endpoint is built from the public URL, so metrics and logs need no OTEL configuration from developers or policies. + +Developers signed in through `/login` can't redirect exports with their own OTEL configuration: + +* **Locally set variables**: Claude Code applies the pushed variables at the managed tier, so each one overrides the value a developer sets for it locally. +* **Locally configured endpoints**: with OTLP/HTTP export enabled, the CLI ignores any locally configured endpoint, whether or not the gateway pushed the telemetry variables. Its exports go to the gateway unless a policy [names your collector as the endpoint](#export-directly-to-your-collector). + +Without a `forward_to` destination for a signal, the gateway accepts and discards it. If developers already export Claude Code telemetry to one of your collectors, add it as a `forward_to` destination, with logs or traces enabled if they export those, so it keeps receiving their data after they sign in. To skip the relay instead, [name the collector in a policy](#export-directly-to-your-collector). + +[Traces](/docs/en/monitoring-usage#traces-beta) also require `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1` on each client. Set it in a managed policy's `env` block, since the gateway doesn't push it. Developers approve it in the same [security approval dialog](#managed) that the pushed endpoint already triggers. -[Traces](/docs/en/monitoring-usage#traces-beta) additionally require `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA=1` on each client. The gateway doesn't push that variable, so set it through a managed policy's `env` block. It isn't among the variables Claude Code applies without the developer's approval, so delivering it through a policy is covered by the same [security approval dialog](#managed) that the pushed OTLP endpoint already triggers. +Set it to `1` only in the policies whose groups you want traced. A policy that doesn't set it inherits the value from your `match: {}` catch-all policy if that policy sets one, per the [merge rules](#managed). To keep a group's clients from sending traces even when a developer sets the variable locally, set it to `0` in that group's policy. Both protobuf and JSON OTLP encodings are relayed, and any OpenTelemetry-compatible backend works as a destination. +#### Export directly to your collector + +To have sessions signed in through `/login` send telemetry straight to your collector instead of through the relay, set `OTEL_EXPORTER_OTLP_ENDPOINT` to the collector's `https://` base URL in the `env` block of a [managed policy](#managed). Claude Code appends `/v1/metrics`, `/v1/logs`, or `/v1/traces` to the URL you set, such as `https://otel-collector.example.com:4318`, and exports each signal there over OTLP/HTTP. Requires Claude Code v2.1.265 or later on each developer's machine. Earlier clients export through the relay. + +To authenticate to the collector, set `OTEL_EXPORTER_OTLP_HEADERS` in the same `env` block. Sessions never send the developer's gateway session token to a collector named this way. + +When you add or change this endpoint in a policy, Claude Code asks each developer to approve it in the [security approval dialog](#managed) before applying it in an interactive session. + +Claude Code checks the endpoint before it exports a signal directly, and keeps that signal on the relay when a check fails. The checks include: + +* The endpoint comes from the gateway itself. If you set the same variable in an MDM profile or a local `managed-settings.json`, exports stay on the relay. +* The URL uses `https://`, or `http://` to a loopback address +* The URL resolves to a path ending in `/v1/<signal>`, with no query or fragment. Claude Code builds that path itself from the generic variable. It uses a per-signal variable such as `OTEL_EXPORTER_OTLP_METRICS_ENDPOINT` as written, so include the full path there. +* The URL isn't the gateway's own host. An endpoint addressed to the gateway keeps the relay path and its session token. +* Neither you nor the developer has configured [`otelHeadersHelper`](/docs/en/settings-reference#otelheadershelper) in any settings source. With a helper configured, every signal stays on the relay. + +The endpoint you name changes only where exports go. You still choose which signals export at all with the `OTEL_*_EXPORTER` selectors. + +The endpoint alone doesn't turn export on, so also set the variables that do, unless the gateway already pushes them: + +* If the gateway already [pushes the telemetry variables](#telemetry), they cover enablement, selectors, and protocol, and your explicit endpoint overrides the pushed `<public_url>` value. Set an `OTEL_*_EXPORTER` selector to `otlp` yourself only for a signal that no `forward_to` destination enables. +* If it doesn't, also set `CLAUDE_CODE_ENABLE_TELEMETRY=1`, the `OTEL_*_EXPORTER` selectors, and `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`. + +When the developer signs out, or signs in to a different gateway, exports to the collector stop and Claude Code drops each remaining batch rather than sending it. + +#### When a destination fails + +The gateway doesn't buffer, retry, or store telemetry, so it drops an export that doesn't reach a destination rather than delivering it late. Each destination succeeds or fails on its own, and the exporting client receives a success response either way, so a failed delivery appears only in the gateway's log. + +After five consecutive failed deliveries to a destination, the gateway pauses forwarding to it in 30-second stretches, logging each pause, until a delivery succeeds. Any error response, timeout, or connection error counts as a failed delivery, except `400`, `413`, `415`, `422`, and `431`, which mean the collector refused that export's payload as malformed or too large. + +A refused payload neither advances nor resets the failure count: the gateway keeps forwarding to the destination and logs a warning naming it and the status, on the destination's first refusal and every hundredth after. + ### HTTP tuning Four optional top-level blocks, `access_control`, `limits`, `timeouts`, and `rate_limits`, tune the HTTP surface. The defaults suit most deployments. @@ -829,6 +895,7 @@ store: # fail_closed_on_error: false # Meter at contracted rates instead of USD list price. Requires admin:. +# With managed:, the same rates also go to signed-in clients. # Rates below are placeholders, not real contract prices. # pricing: # multiplier: 0.85 @@ -920,13 +987,7 @@ For the CLI, set these keys in the per-OS `managed-settings.json`. The two login `parentSettingsBehavior: "merge"` keeps Claude Desktop's delivery of the egress allowlist to its embedded Claude Code sessions working; [Deliver policy to Claude Desktop sessions](/docs/en/claude-apps-gateway#deliver-policy-to-claude-desktop-sessions) explains the mechanism and where the opt-in must sit. -Deploy the `managed-settings.json` file to each device, typically via your MDM platform. The file path differs by platform: - -| Platform | Path | -| ------------- | ----------------------------------------------------------------------------------------------------------------------------- | -| macOS | `/Library/Application Support/ClaudeCode/managed-settings.json`, or the `com.anthropic.claudecode` managed preferences domain | -| Linux and WSL | `/etc/claude-code/managed-settings.json` | -| Windows | `C:\Program Files\ClaudeCode\managed-settings.json`, or Group Policy via the HKLM registry | +Deploy the `managed-settings.json` file to each device, typically via your MDM platform. The file path differs by platform. See [where each mechanism stores the policy](/docs/en/managed-settings#where-each-mechanism-stores-the-policy). By default, a registry policy on Windows or a managed-preferences plist on macOS replaces the `managed-settings.json` file rather than merging with it, apart from the [exception keys and cross-source checks above](#precedence-with-other-managed-sources). All three keys in this snippet follow the highest-priority-source rule, so fleets that deliver policy through Group Policy or configuration profiles must put all three in that mechanism instead. diff --git a/content/en/docs/claude-code/claude-apps-gateway-deploy.md b/content/en/docs/claude-code/claude-apps-gateway-deploy.md index a3f659389..8122d0e20 100644 --- a/content/en/docs/claude-code/claude-apps-gateway-deploy.md +++ b/content/en/docs/claude-code/claude-apps-gateway-deploy.md @@ -112,7 +112,7 @@ Once the gateway is serving, push `forceLoginMethod`, `forceLoginGatewayUrl`, an Once you deploy the keys, Claude Code stops using a leftover API key or claude.ai login on the machine, so plan the push together with your sign-in instructions. [Administrator policy requires a Cloud gateway sign-in](/docs/en/errors#administrator-policy-requires-a-cloud-gateway-sign-in) describes the messages developers see. -See [Client-side managed settings](/docs/en/claude-apps-gateway-config#client-side-managed-settings) for the file paths and the Claude Desktop `bootstrapUrl` equivalent. +See [where each mechanism stores the policy](/docs/en/managed-settings#where-each-mechanism-stores-the-policy) for the file paths, and [Client-side managed settings](/docs/en/claude-apps-gateway-config#client-side-managed-settings) for the Claude Desktop `bootstrapUrl` equivalent. ## Operations diff --git a/content/en/docs/claude-code/claude-apps-gateway.md b/content/en/docs/claude-code/claude-apps-gateway.md index f99e7d65b..48a3c93b2 100644 --- a/content/en/docs/claude-code/claude-apps-gateway.md +++ b/content/en/docs/claude-code/claude-apps-gateway.md @@ -393,7 +393,10 @@ The device flow separates the polling CLI from the approving browser, so a remot These guarantees apply to every session signed in through `/login`. The embedded sessions Claude Desktop launches get their policy as described in [Deliver policy to Claude Desktop sessions](#deliver-policy-to-claude-desktop-sessions), and the telemetry bullet says where their exports go. * **Model access**: requests for models the policy doesn't grant return 400, and the `/model` picker is filtered to the policy's `availableModels` allowlist. Set [`enforceAvailableModels: true`](/docs/en/model-config#default-model-behavior) in the policy so the Default option resolves to a model inside `availableModels` instead of to Claude Code's built-in default; without it, Default stays selectable and is rejected at request time if that model isn't granted. -* **Telemetry destination**: in sessions signed in through `/login`, the CLI sends its OTLP/HTTP exports to the gateway regardless of any locally set `OTEL_EXPORTER_OTLP_ENDPOINT`, and the gateway relays them to the destinations in [`telemetry.forward_to`](/docs/en/claude-apps-gateway-config#telemetry). In the embedded sessions [Claude Desktop launches](#connect-claude-desktop), the CLI sends its exports to the configured `OTEL_EXPORTER_OTLP_ENDPOINT`. The CLI attaches the gateway session token to those exports only when that endpoint points at the gateway itself. With no destination configured for a signal, the gateway accepts and discards it, so if you already collect Claude Code telemetry directly, add your collector as a `forward_to` destination. +* **Telemetry destination**: in sessions signed in through `/login`, the CLI sends its OTLP/HTTP exports to the gateway rather than to a locally set `OTEL_EXPORTER_OTLP_ENDPOINT`, unless a policy [names your collector as the endpoint](/docs/en/claude-apps-gateway-config#export-directly-to-your-collector). The gateway relays the exports it receives to the destinations in [`telemetry.forward_to`](/docs/en/claude-apps-gateway-config#telemetry). + * In the embedded sessions [Claude Desktop launches](#connect-claude-desktop), the CLI sends its exports to the configured `OTEL_EXPORTER_OTLP_ENDPOINT`. The CLI attaches the gateway session token to those exports only when that endpoint points at the gateway itself. + * With no destination configured for a signal, the gateway accepts and discards it. + * If you already collect Claude Code telemetry directly, add your collector as a `forward_to` destination, or name it in a policy to skip the relay. * **Credentials**: the gateway token is the session's only credential. [Anthropic profiles](/docs/en/authentication#anthropic-profiles-and-federation-credentials) and any earlier claude.ai login are ignored while signed in, so developers don't need to log out of claude.ai first. For a configured `ANTHROPIC_API_KEY`, `ANTHROPIC_AUTH_TOKEN`, or `apiKeyHelper` credential, see [Administrator policy requires a Cloud gateway sign-in](/docs/en/errors#administrator-policy-requires-a-cloud-gateway-sign-in). * **Managed settings**: locked keys can't be overridden locally. The CLI applies the policy at startup and applies changes on each hourly poll, apart from the [changes that apply only at the next launch](/docs/en/server-managed-settings#fetch-and-caching-behavior). * **Startup with the gateway unreachable**: signed-in sessions exit at startup with an error after about 10 seconds rather than starting without their settings. diff --git a/content/en/docs/claude-code/claude-code-on-the-web.md b/content/en/docs/claude-code/claude-code-on-the-web.md index 5db596f4e..1b6bf5021 100644 --- a/content/en/docs/claude-code/claude-code-on-the-web.md +++ b/content/en/docs/claude-code/claude-code-on-the-web.md @@ -306,7 +306,7 @@ Claude may reply to review comment threads on GitHub as part of resolving them. Each cloud session is separated from your machine and from other sessions through several layers: * **Isolated virtual machines**: each session runs in an isolated, Anthropic-managed VM. Sessions your organization routes to a [self-hosted environment](/docs/en/self-hosted-environments) run on your own infrastructure instead, where isolation is your deployment's responsibility -* **Network access controls**: in Anthropic-hosted environments, network access is limited by default and can be disabled. In a self-hosted environment, you restrict session egress at your own network boundary. When running with network access disabled, Claude Code can still communicate with the Anthropic API, which may allow data to exit the VM. +* <span id="default-allowed-domains" />**Network access controls**: in Anthropic-hosted environments, network access is limited by default and can be disabled. See [Network access](/docs/en/cloud-environments#network-access) for the access levels, the [default allowed domains](/docs/en/cloud-environments#default-allowed-domains), and the traffic that doesn't go through the allowlist. In a self-hosted environment, you restrict session egress at your own network boundary. When running with network access disabled, Claude Code can still communicate with the Anthropic API, which may allow data to exit the VM. * **Credential protection**: in Anthropic-hosted environments, git credentials and signing keys stay outside the sandbox, and a proxy authenticates on the session's behalf with scoped credentials. In a self-hosted environment, your deployment supplies git credentials; see [Configure git](/docs/en/self-hosted-environments-deploy#configure-git) * **API credentials**: in Anthropic-hosted environments on Pro and Max plans, keys you [add to a cloud environment](/docs/en/cloud-environments#add-api-credentials) stay outside the sandbox the same way, attached to matching requests after they leave the session. A self-hosted environment doesn't have API credentials, and Team and Enterprise plans don't have them yet * **Secure analysis**: code is analyzed and modified within the session's isolated environment before creating PRs diff --git a/content/en/docs/claude-code/claude-security.md b/content/en/docs/claude-code/claude-security.md index df3073b91..b14e21b1a 100644 --- a/content/en/docs/claude-code/claude-security.md +++ b/content/en/docs/claude-code/claude-security.md @@ -36,11 +36,7 @@ If the install fails, the fix depends on which message Claude Code reports: * If it reports `Marketplace "claude-plugins-official" not found`, add the marketplace with `/plugin marketplace add anthropics/claude-plugins-official`, then retry the install. * If it reports that it [can't find the plugin in the marketplace](/docs/en/discover-plugins#install-plugins), check the plugin name for a typo. -Check the install summary. If it reports `Run /reload-plugins to activate.`, apply the pending change without a restart: - -```text theme={null} -/reload-plugins -``` +Check the install summary. If it reports `Run /reload-plugins to activate.`, see [Apply plugin changes without restarting](/docs/en/discover-plugins#apply-plugin-changes-without-restarting) to activate the plugin in your current session. Once the plugin is active, you're ready to [scan and fix your codebase](#scan-and-fix-your-codebase). diff --git a/content/en/docs/claude-code/cli-reference.md b/content/en/docs/claude-code/cli-reference.md index d4cf5b18b..702f5115c 100644 --- a/content/en/docs/claude-code/cli-reference.md +++ b/content/en/docs/claude-code/cli-reference.md @@ -10,42 +10,42 @@ You can start sessions, pipe content, resume conversations, and manage updates with these commands: -| Command | Description | Example | -| :------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- | -| `claude` | Start interactive session | `claude` | -| `claude "query"` | Start interactive session with initial prompt | `claude "explain this project"` | -| `claude -p "query"` | Query via SDK, then exit | `claude -p "explain this function"` | -| `cat file \| claude -p "query"` | Process piped content | `cat logs.txt \| claude -p "explain"` | -| `claude -c` | Continue most recent conversation in current directory | `claude -c` | -| `claude -c -p "query"` | Continue via SDK | `claude -c -p "Check for type errors"` | -| `claude -r "<session>" "query"` | Resume session by ID or name | `claude -r "auth-refactor" "Finish this PR"` | -| `claude update` | Update to latest version | `claude update` | -| `claude gateway` | Start the self-hosted [Claude apps gateway](/docs/en/claude-apps-gateway) server, for administrators deploying SSO and policy in front of Claude Code on Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry. Requires `--config` pointing at a [`gateway.yaml`](/docs/en/claude-apps-gateway-config). Available in Claude Code v2.1.195 and later. | `claude gateway --config gateway.yaml` | -| `claude install [version]` | Install or reinstall the native binary. Accepts a version like `2.1.118`, or `stable` or `latest`. See [Install a specific version](/docs/en/setup#install-a-specific-version) | `claude install stable` | -| `claude auth login` | Sign in to your Anthropic account. Use `--email` to pre-fill your email address, `--sso` to force SSO authentication, and `--console` to sign in with Anthropic Console for API usage billing instead of a Claude subscription | `claude auth login --console` | -| `claude auth logout` | Log out from your Anthropic account | `claude auth logout` | -| `claude auth status` | Show authentication status as JSON. Use `--text` for human-readable output. Exits with code 0 if logged in, 1 if not | `claude auth status` | -| `claude agents` | Open [agent view](/docs/en/agent-view) to monitor and dispatch parallel background sessions. Use `--cwd <path>` to show only sessions started under that directory, or `--json` to print active sessions as a JSON array for scripting (`--json --all` also includes completed background sessions). Pass `--permission-mode`, `--model`, `--effort`, or `--agent` to set [defaults for dispatched sessions](/docs/en/agent-view#permission-mode-model-and-effort). Accepts `--settings`, `--add-dir`, `--plugin-dir`, and `--mcp-config` like the top-level `claude` command. Opening agent view requires an interactive terminal | `claude agents --json` | -| `claude attach <id>` | Attach to a [background session](/docs/en/agent-view#manage-sessions-from-the-shell) in this terminal | `claude attach 7c5dcf5d` | -| `claude auto-mode defaults` | Print the built-in [auto mode](/docs/en/permission-modes#eliminate-prompts-with-auto-mode) classifier rules as JSON. Use `claude auto-mode config` to see your effective config with settings applied. `--label <prefix>` prints only the rules whose label starts with that prefix, matched case-insensitively. Requires Claude Code v2.1.208 or later | `claude auto-mode defaults --label 'Git Destructive'` | -| `claude auto-mode reset` | Restore the default [auto mode](/docs/en/permission-modes#eliminate-prompts-with-auto-mode) configuration by removing the `autoMode` section from your user settings file. Prompts for confirmation before writing; pass `-y`/`--yes` to skip the prompt. Rules from [managed settings](/docs/en/server-managed-settings) or the `--settings` flag still apply. Requires Claude Code v2.1.212 or later. See [Inspect the defaults and your effective config](/docs/en/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` | -| `claude daemon status` | Print the background-session [supervisor's](/docs/en/agent-view#the-supervisor-process) state, version, socket directory, and worker count for diagnostics. Exits 1 if the supervisor isn't running | `claude daemon status` | -| `claude daemon stop --any` | Stop the background-session [supervisor](/docs/en/agent-view#the-supervisor-process) and the sessions it hosts. Pass `--keep-workers` to leave background sessions running so the next supervisor reconnects to them. `--any` confirms stopping an on-demand supervisor, which is the default. Use this to recover from an [unresponsive supervisor](/docs/en/agent-view#agent-view-says-the-background-service-did-not-respond) | `claude daemon stop --any --keep-workers` | -| `claude doctor` | Print read-only installation and settings diagnostics from the terminal without starting a session, including install health, settings-file validation errors, and Remote Control eligibility. For the in-session setup checkup that can also apply fixes, run [`/doctor`](/docs/en/commands#all-commands) | `claude doctor` | -| `claude import [source]` | Start an interactive session that runs [`/import`](/docs/en/commands#all-commands) to bring configuration from other coding agents into Claude Code. Accepts the same `--dry-run` and `--yes` options as the command. Not available on Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, or Claude Platform on AWS. Also unavailable when you turn off [feature-flag fetching](/docs/en/env-vars#features-that-need-feature-flag-fetching). Requires Claude Code v2.1.213 or later | `claude import codex --dry-run` | -| `claude logs <id>` | Print recent output from a [background session](/docs/en/agent-view#manage-sessions-from-the-shell) | `claude logs 7c5dcf5d` | -| `claude mcp` | Configure Model Context Protocol (MCP) servers | See the [Claude Code MCP documentation](/docs/en/mcp). | -| `claude mcp login <name>` | Run a configured MCP server's OAuth flow without opening the interactive `/mcp` panel. Works for HTTP, SSE, and claude.ai connector servers. Add `--no-browser` over SSH to print the authorization URL instead of opening a browser, then paste the redirect URL back at the prompt. Requires Claude Code v2.1.186 or later. See [Authenticate from the command line](/docs/en/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` | -| `claude mcp logout <name>` | Clear stored OAuth credentials for an MCP server. Requires Claude Code v2.1.186 or later | `claude mcp logout sentry` | -| `claude plugin` | Manage Claude Code [plugins](/docs/en/plugins). Alias: `claude plugins`. See [plugin reference](/docs/en/plugins-reference#cli-commands-reference) for subcommands | `claude plugin install code-review@claude-plugins-official` | -| `claude project purge [path]` | Delete all local Claude Code state for a project: transcripts, task lists, debug logs, file-edit history, prompt history lines, and the project's entry in `~/.claude.json`. Omit `[path]` to pick from an interactive list. Flags: `--dry-run` to preview, `-y`/`--yes` to skip confirmation, `-i`/`--interactive` to confirm each item, `--all` for every project. See [Clear local data](/docs/en/claude-directory#clear-local-data) | `claude project purge ~/work/repo --dry-run` | -| `claude remote-control` | Start a [Remote Control](/docs/en/remote-control) server to control Claude Code from Claude.ai or the Claude app. Runs in server mode (no local interactive session). See [Server mode flags](/docs/en/remote-control#start-a-remote-control-session). After you stop the server, you can bring back the sessions it was serving. See [Resume sessions after stopping the server](/docs/en/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` | -| `claude respawn <id>` | Restart a [background session](/docs/en/agent-view#manage-sessions-from-the-shell), running or stopped, with its conversation intact. Use `--all` to restart every running session, e.g. to pick up an updated Claude Code binary | `claude respawn 7c5dcf5d` | -| `claude rm <id>` | Remove a [background session](/docs/en/agent-view#manage-sessions-from-the-shell) from the list. Accepts `--discard-unpushed <commit>@<worktree-id>` to discard the worktree and its commits; when a [delete is refused over unpushed commits](/docs/en/agent-view#what-deleting-a-session-removes), the refusal prints the exact value to pass. `--discard-unpushed` requires Claude Code v2.1.260 or later. The conversation transcript stays on your local machine, available through `claude --resume` | `claude rm 7c5dcf5d` | -| `claude self-hosted-runner` | Start a runner process that registers this machine or container with a [self-hosted environment](/docs/en/self-hosted-environments) and hosts Claude Code cloud sessions on your infrastructure. Run `claude self-hosted-runner setup` for a guided operator walkthrough, `claude self-hosted-runner doctor` to [diagnose a deployed runner](/docs/en/self-hosted-environments-deploy#troubleshooting), and `claude self-hosted-runner orchestrator` to spawn [on-demand runners](/docs/en/self-hosted-environments-configuration#on-demand-runners). Requires Claude Code v2.1.224 or later | `claude self-hosted-runner setup` | -| `claude setup-token` | Generate a long-lived OAuth token for CI and scripts. Prints the token to the terminal without saving it. Requires a Claude subscription. See [Generate a long-lived token](/docs/en/authentication#generate-a-long-lived-token) | `claude setup-token` | -| `claude stop <id>` | Stop a [background session](/docs/en/agent-view#manage-sessions-from-the-shell). Also accepts `claude kill` | `claude stop 7c5dcf5d` | -| `claude ultrareview [target]` | Run [ultrareview](/docs/en/ultrareview#run-ultrareview-non-interactively) non-interactively. Prints findings to stdout and exits 0 on success or 1 on failure. Use `--json` for the raw payload and `--timeout <minutes>` to override the 45-minute default. Use `--post` on a `github.com` pull request target to post the finished findings to the PR as one plain comment from your GitHub account. `--no-post` is the default. `--post` and `--no-post` require Claude Code v2.1.227 or later. See [Post findings to the pull request](/docs/en/ultrareview#post-findings-to-the-pull-request) | `claude ultrareview 1234 --json` | +| Command | Description | Example | +| :------------------------------ | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- | +| `claude` | Start interactive session | `claude` | +| `claude "query"` | Start interactive session with initial prompt | `claude "explain this project"` | +| `claude -p "query"` | Query via SDK, then exit | `claude -p "explain this function"` | +| `cat file \| claude -p "query"` | Process piped content | `cat logs.txt \| claude -p "explain"` | +| `claude -c` | Continue most recent conversation in current directory | `claude -c` | +| `claude -c -p "query"` | Continue via SDK | `claude -c -p "Check for type errors"` | +| `claude -r "<session>" "query"` | Resume session by ID or name | `claude -r "auth-refactor" "Finish this PR"` | +| `claude update` | Update to latest version | `claude update` | +| `claude gateway` | Start the self-hosted [Claude apps gateway](/docs/en/claude-apps-gateway) server, for administrators deploying SSO and policy in front of Claude Code on Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry. Requires `--config` pointing at a [`gateway.yaml`](/docs/en/claude-apps-gateway-config). Available in Claude Code v2.1.195 and later. | `claude gateway --config gateway.yaml` | +| `claude install [version]` | Install or reinstall the native binary. Accepts a version like `2.1.118`, or `stable` or `latest`. See [Install a specific version](/docs/en/setup#install-a-specific-version) | `claude install stable` | +| `claude auth login` | Sign in to your Anthropic account. Use `--email` to pre-fill your email address, `--sso` to force SSO authentication, and `--console` to sign in with Anthropic Console for API usage billing instead of a Claude subscription | `claude auth login --console` | +| `claude auth logout` | Log out from your Anthropic account | `claude auth logout` | +| `claude auth status` | Show authentication status as JSON. Use `--text` for human-readable output. Exits with code 0 if logged in, 1 if not | `claude auth status` | +| `claude agents` | Open [agent view](/docs/en/agent-view) to monitor and dispatch parallel background sessions. Use `--cwd <path>` to show only sessions started under that directory, or `--json` to print active sessions as a JSON array for scripting (`--json --all` also includes completed background sessions). Pass `--permission-mode`, `--model`, `--effort`, or `--agent` to set [defaults for dispatched sessions](/docs/en/agent-view#permission-mode-model-and-effort). Accepts `--settings`, `--add-dir`, `--plugin-dir`, and `--mcp-config` like the top-level `claude` command. Opening agent view requires an interactive terminal | `claude agents --json` | +| `claude attach <id>` | Attach to a [background session](/docs/en/agent-view#manage-sessions-from-the-shell) in this terminal | `claude attach 7c5dcf5d` | +| `claude auto-mode defaults` | Print the built-in [auto mode](/docs/en/permission-modes#eliminate-prompts-with-auto-mode) classifier rules as JSON. Use `claude auto-mode config` to see your effective config with settings applied. `--label <prefix>` prints only the rules whose label starts with that prefix, matched case-insensitively. Requires Claude Code v2.1.208 or later | `claude auto-mode defaults --label 'Git Destructive'` | +| `claude auto-mode reset` | Restore the default [auto mode](/docs/en/permission-modes#eliminate-prompts-with-auto-mode) configuration by removing the `autoMode` section from your user settings file. Prompts for confirmation before writing; pass `-y`/`--yes` to skip the prompt. Rules from [managed settings](/docs/en/server-managed-settings) or the `--settings` flag still apply. Requires Claude Code v2.1.212 or later. See [Inspect the defaults and your effective config](/docs/en/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` | +| `claude daemon status` | Print the background-session [supervisor's](/docs/en/agent-view#the-supervisor-process) state, version, socket directory, and worker count for diagnostics. Exits 1 if the supervisor isn't running | `claude daemon status` | +| `claude daemon stop --any` | Stop the background-session [supervisor](/docs/en/agent-view#the-supervisor-process) and the sessions it hosts. Pass `--keep-workers` to leave background sessions running so the next supervisor reconnects to them. `--any` confirms stopping an on-demand supervisor, which is the default. Use this to recover from an [unresponsive supervisor](/docs/en/agent-view#agent-view-says-the-background-service-did-not-respond) | `claude daemon stop --any --keep-workers` | +| `claude doctor` | Print read-only installation and settings diagnostics from the terminal without starting a session, including install health, settings-file validation errors, and Remote Control eligibility. For the in-session setup checkup that can also apply fixes, run [`/doctor`](/docs/en/commands#all-commands) | `claude doctor` | +| `claude import [source]` | Start an interactive session that runs [`/import`](/docs/en/commands#all-commands) to bring configuration from other coding agents into Claude Code. Accepts the same `--dry-run` and `--yes` options as the command. Not available on Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, or Claude Platform on AWS. Also unavailable when you turn off [feature-flag fetching](/docs/en/env-vars#features-that-need-feature-flag-fetching). Requires Claude Code v2.1.213 or later | `claude import codex --dry-run` | +| `claude logs <id>` | Print recent output from a [background session](/docs/en/agent-view#manage-sessions-from-the-shell) | `claude logs 7c5dcf5d` | +| `claude mcp` | Configure Model Context Protocol (MCP) servers | See the [Claude Code MCP documentation](/docs/en/mcp). | +| `claude mcp login <name>` | Run a configured MCP server's OAuth flow without opening the interactive `/mcp` panel. Works for HTTP, SSE, and claude.ai connector servers. Add `--no-browser` over SSH to print the authorization URL instead of opening a browser, then paste the redirect URL back at the prompt. Requires Claude Code v2.1.186 or later. See [Authenticate from the command line](/docs/en/mcp#authenticate-from-the-command-line) | `claude mcp login sentry` | +| `claude mcp logout <name>` | Clear stored OAuth credentials for an MCP server. Requires Claude Code v2.1.186 or later | `claude mcp logout sentry` | +| `claude plugin` | Manage Claude Code [plugins](/docs/en/plugins). Alias: `claude plugins`. See [plugin reference](/docs/en/plugins-reference#cli-commands-reference) for subcommands | `claude plugin install code-review@claude-plugins-official` | +| `claude project purge [path]` | Delete all local Claude Code state for a project: transcripts, task lists, debug logs, file-edit history, prompt history lines, and the project's entry in `~/.claude.json`. Omit `[path]` to pick from an interactive list. Flags: `--dry-run` to preview, `-y`/`--yes` to skip confirmation, `-i`/`--interactive` to confirm each item, `--all` for every project. See [Clear local data](/docs/en/claude-directory#clear-local-data) | `claude project purge ~/work/repo --dry-run` | +| `claude remote-control` | Start a [Remote Control](/docs/en/remote-control) server to control Claude Code from Claude.ai or the Claude app. Runs in server mode (no local interactive session). See [Server mode flags](/docs/en/remote-control#start-a-remote-control-session). After you stop the server, you can bring back the sessions it was serving. See [Resume sessions after stopping the server](/docs/en/remote-control#resume-sessions-after-stopping-the-server) | `claude remote-control --name "My Project"` | +| `claude respawn <id>` | Restart a [background session](/docs/en/agent-view#manage-sessions-from-the-shell), running or stopped, with its conversation intact. Use `--all` to restart every running session, e.g. to pick up an updated Claude Code binary | `claude respawn 7c5dcf5d` | +| `claude rm <id>` | Remove a [background session](/docs/en/agent-view#manage-sessions-from-the-shell) from the list. When the removal is [refused over the session's worktree](/docs/en/agent-view#what-deleting-a-session-removes) and a second `claude rm` can resolve it, the refusal prints the exact flag and value to pass: `--discard-unpushed <commit>@<worktree-id>` discards a worktree that has unpushed commits along with those commits, and `--force-remove-worktree <worktree-id>` deletes a worktree directory that git or the `WorktreeRemove` hook couldn't remove. `--discard-unpushed` requires Claude Code v2.1.260 or later, and `--force-remove-worktree` requires v2.1.268 or later. The conversation transcript stays on your local machine, available through `claude --resume` | `claude rm 7c5dcf5d` | +| `claude self-hosted-runner` | Start a runner process that registers this machine or container with a [self-hosted environment](/docs/en/self-hosted-environments) and hosts Claude Code cloud sessions on your infrastructure. Run `claude self-hosted-runner setup` for a guided operator walkthrough, `claude self-hosted-runner doctor` to [diagnose a deployed runner](/docs/en/self-hosted-environments-deploy#troubleshooting), and `claude self-hosted-runner orchestrator` to spawn [on-demand runners](/docs/en/self-hosted-environments-configuration#on-demand-runners). Requires Claude Code v2.1.224 or later | `claude self-hosted-runner setup` | +| `claude setup-token` | Generate a long-lived OAuth token for CI and scripts. Prints the token to the terminal without saving it. Requires a Claude subscription. See [Generate a long-lived token](/docs/en/authentication#generate-a-long-lived-token) | `claude setup-token` | +| `claude stop <id>` | Stop a [background session](/docs/en/agent-view#manage-sessions-from-the-shell). Also accepts `claude kill` | `claude stop 7c5dcf5d` | +| `claude ultrareview [target]` | Run [ultrareview](/docs/en/ultrareview#run-ultrareview-non-interactively) non-interactively. Prints findings to stdout and exits 0 on success or 1 on failure. Use `--json` for the raw payload and `--timeout <minutes>` to override the 45-minute default. Use `--post` on a `github.com` pull request target to post the finished findings to the PR as one plain comment from your GitHub account. `--no-post` is the default. `--post` and `--no-post` require Claude Code v2.1.227 or later. See [Post findings to the pull request](/docs/en/ultrareview#post-findings-to-the-pull-request) | `claude ultrareview 1234 --json` | If you mistype a subcommand, Claude Code suggests the closest match and exits without starting a session. For example, `claude udpate` prints `Did you mean claude update?`. @@ -159,7 +159,7 @@ For persistent personas you can switch between and share across a project, use [ By default, Claude Code builds the system prompt once, on a conversation's first request, with the text from any system prompt flags applied, and records it in the session. Until the conversation is compacted, every later request uses that recorded prompt, including after you return to the conversation with `--resume` or `--continue`. If you pass different system prompt flag text, or none, on that later launch, it takes effect once the conversation is compacted or when you start a new conversation. -Recording applies in sessions that [fetch feature flags](/docs/en/env-vars#features-that-need-feature-flag-fetching), as sessions signed in with a claude.ai or Console account do by default. On Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, and in other sessions that don't fetch them, Claude Code rebuilds the prompt on every request and `--system-prompt-snapshot` has no effect. If you start Claude Code in [bare mode](/docs/en/headless#start-faster-with-bare-mode), by passing `--bare` or setting `CLAUDE_CODE_SIMPLE=1`, recording stays off unless you pass `--system-prompt-snapshot on`. +If you start Claude Code in [bare mode](/docs/en/headless#start-faster-with-bare-mode), by passing `--bare` or setting `CLAUDE_CODE_SIMPLE=1`, recording stays off unless you pass `--system-prompt-snapshot on`. Before v2.1.268, sessions that don't [fetch feature flags](/docs/en/env-vars#features-that-need-feature-flag-fetching), including sessions on Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry, rebuilt the prompt on every request and `--system-prompt-snapshot` had no effect. To rebuild the prompt on every request instead, for example while you iterate on its wording across `--continue` runs, pass `--system-prompt-snapshot off`. Before v2.1.265, passing any of the system prompt flags also turned recording off unless you passed `--system-prompt-snapshot on`. diff --git a/content/en/docs/claude-code/cloud-environments.md b/content/en/docs/claude-code/cloud-environments.md index 63c3075cd..d52d35578 100644 --- a/content/en/docs/claude-code/cloud-environments.md +++ b/content/en/docs/claude-code/cloud-environments.md @@ -40,7 +40,7 @@ Configure an environment when the default isn't enough: when Claude needs to rea ## Configure your environment -Create, edit, and archive environments from the environment selector at [claude.ai/code](https://claude.ai/code), which you reach after [web onboarding](/docs/en/web-quickstart). Environments you create are personal to your account; [shared environments](#organization-shared-environments) created by an Owner appear in the same selector. See [Installed tools](#installed-tools) for what's available without any configuration. +Create, edit, and archive environments from the environment selector, which you reach at [claude.ai/code](https://claude.ai/code) after [web onboarding](/docs/en/web-quickstart), or from the prompt box in the [Desktop app](/docs/en/desktop#cloud-sessions). Environments you create are personal to your account; [shared environments](#organization-shared-environments) created by an Owner appear in the same selector. See [Installed tools](#installed-tools) for what's available without any configuration. <Steps> <Step title="Open the environment selector"> @@ -140,7 +140,7 @@ Run `/remote-env` in your terminal to choose the default environment for cloud s A [self-hosted environment](/docs/en/self-hosted-environments) ID, which has the form `ccpool_...`, follows a stricter source rule. See [`remote.defaultEnvironmentId`](/docs/en/settings-reference#remote-defaultenvironmentid) for the settings layers Claude Code honors it from. -`/remote-env` only sets the default: it doesn't start a session, and it can't add or edit environments. Manage them at [claude.ai/code](https://claude.ai/code). +`/remote-env` only sets the default: it doesn't start a session, and it can't add or edit environments. Manage them from the [environment selector](#configure-your-environment). ### Archive an environment diff --git a/content/en/docs/claude-code/desktop-changelog.md b/content/en/docs/claude-code/desktop-changelog.md index 4aab9b7c4..5d0ccb2a3 100644 --- a/content/en/docs/claude-code/desktop-changelog.md +++ b/content/en/docs/claude-code/desktop-changelog.md @@ -649,7 +649,12 @@ Your administrator can turn off local sessions with the [`disableDesktopLocalSes Cloud sessions continue in the background even if you close the app. Usage counts toward your [subscription plan limits](/docs/en/costs) with no separate compute charges. -You can create custom cloud environments with different network access levels and environment variables. Select the environment dropdown when starting a cloud session and choose **Add cloud environment**. See [Configure cloud environments](/docs/en/cloud-environments) for details on configuring network access and environment variables. +You can create custom cloud environments with different network access levels and environment variables. When you start a cloud session, open the environment dropdown in the prompt box to manage them: + +* **Add an environment**: select **Add cloud environment** +* **Edit or archive one of your own environments**: hover over it and click the gear icon + +See [Configure cloud environments](/docs/en/cloud-environments) for details on configuring network access and environment variables. ### SSH sessions diff --git a/content/en/docs/claude-code/desktop.md b/content/en/docs/claude-code/desktop.md index 4aab9b7c4..5d0ccb2a3 100644 --- a/content/en/docs/claude-code/desktop.md +++ b/content/en/docs/claude-code/desktop.md @@ -649,7 +649,12 @@ Your administrator can turn off local sessions with the [`disableDesktopLocalSes Cloud sessions continue in the background even if you close the app. Usage counts toward your [subscription plan limits](/docs/en/costs) with no separate compute charges. -You can create custom cloud environments with different network access levels and environment variables. Select the environment dropdown when starting a cloud session and choose **Add cloud environment**. See [Configure cloud environments](/docs/en/cloud-environments) for details on configuring network access and environment variables. +You can create custom cloud environments with different network access levels and environment variables. When you start a cloud session, open the environment dropdown in the prompt box to manage them: + +* **Add an environment**: select **Add cloud environment** +* **Edit or archive one of your own environments**: hover over it and click the gear icon + +See [Configure cloud environments](/docs/en/cloud-environments) for details on configuring network access and environment variables. ### SSH sessions diff --git a/content/en/docs/claude-code/discover-plugins.md b/content/en/docs/claude-code/discover-plugins.md index eb9c6b665..d3765ee5c 100644 --- a/content/en/docs/claude-code/discover-plugins.md +++ b/content/en/docs/claude-code/discover-plugins.md @@ -187,7 +187,7 @@ Anthropic also maintains a [demo plugins marketplace](https://github.com/anthrop </Step> <Step title="Use your new plugin"> - Check the install summary: if it reports `Run /reload-plugins to activate.`, run `/reload-plugins`, and if that warns that the reload will re-read the conversation, rerun it as `/reload-plugins --force`. + If the install summary reports `Run /reload-plugins to activate.`, Claude Code then runs that reload for you. If the reload warns that your next message would re-read the conversation, run `/reload-plugins --force` to activate the plugin. Plugin skills are namespaced by the plugin name, so **commit-commands** provides skills like `/commit-commands:commit`. @@ -317,7 +317,7 @@ If the refresh before a named install fails, for example because you're offline, When you install from the `/plugin` interface, the install summary tells you whether the plugin is active in your current session: * `Plugin is now active.`: Claude Code activated the plugin as part of the install. -* `Run /reload-plugins to activate.`: the plugin isn't active yet, because activating it would [invalidate the prompt cache](/docs/en/prompt-caching#enabling-or-disabling-a-plugin) or because the activation attempt failed. Run the command to activate the plugin. +* `Run /reload-plugins to activate.`: the plugin isn't active yet, because activating it would [invalidate the prompt cache](/docs/en/prompt-caching#enabling-or-disabling-a-plugin) or because the activation attempt failed. Claude Code then runs `/reload-plugins` for you. If that reload warns about the prompt cache, run `/reload-plugins --force` to [activate the plugin anyway](#apply-plugin-changes-without-restarting). * If the plugin fails to load, the summary reports the failure and the `/plugin` **Errors** tab shows the detail. Before v2.1.221, no install took effect in the current session until you ran `/reload-plugins` or restarted. @@ -359,7 +359,7 @@ When you install a plugin that declares dependencies, the install output lists w You can also manage plugins with direct commands: -* When you run `/plugin disable`, `/plugin enable`, or `/plugin uninstall`, Claude Code opens the plugin panel to apply the change and leaves it open. Press **Esc** to close the panel before typing another command. +* When you run `/plugin disable`, `/plugin enable`, or `/plugin uninstall`, Claude Code opens the plugin panel to make the change and leaves it open. Press **Esc** to close the panel before typing another command. [Apply plugin changes without restarting](#apply-plugin-changes-without-restarting) describes when the change takes effect in your session. * For scripting, use the `claude plugin` shell commands instead, which don't open the panel. List installed plugins without opening the menu: @@ -401,13 +401,16 @@ claude plugin uninstall formatter@your-org --scope project ### Apply plugin changes without restarting -When the [install summary](#install-plugins) reports `Plugin is now active.`, Claude Code already activated the plugin, and you can skip this step. For everything else, plugins you enabled or disabled during the session and installs whose summary reports `Run /reload-plugins to activate.`, apply all changes without restarting: +When you close the `/plugin` menu, Claude Code runs `/reload-plugins` for you to apply the changes you made in it, such as installing, enabling, disabling, and uninstalling plugins. If the reload would [invalidate the prompt cache](/docs/en/prompt-caching#enabling-or-disabling-a-plugin), it warns and leaves the changes pending instead; run `/reload-plugins --force` to apply them anyway. If Claude is still responding when you close the menu, the reload runs after the response finishes. -```shell theme={null} -/reload-plugins -``` +For plugin changes that happen outside the menu, run `/reload-plugins` yourself. These changes include: + +* A `claude plugin` command you ran in another terminal +* Edits to a plugin you loaded with [`--plugin-dir`](/docs/en/plugins#test-your-plugins-locally) while you develop it +* A plugin [auto-update](#configure-auto-updates) whose notification asks you to reload +* A change in a [`--plugin-dir` folder](/docs/en/plugins#test-your-plugins-locally) that Claude Code held because applying it would invalidate the prompt cache -When the reload would invalidate the prompt cache, the command warns and skips until you rerun it with `--force`. +Before v2.1.268, plugins you enabled, disabled, or uninstalled in the menu, and installs that didn't activate during the install, stayed pending until you ran `/reload-plugins`. `/reload-plugins` also runs in sessions without an interactive terminal, such as the desktop app, the Agent SDK, and [non-interactive mode](/docs/en/headless) with `-p`. Requires Claude Code v2.1.260 or later. Two limits apply in those sessions: diff --git a/content/en/docs/claude-code/env-vars.md b/content/en/docs/claude-code/env-vars.md index 4be560d2f..ac09c14c1 100644 --- a/content/en/docs/claude-code/env-vars.md +++ b/content/en/docs/claude-code/env-vars.md @@ -275,7 +275,7 @@ Numeric variables such as timeouts, token budgets, and retry counts accept scien | `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | Set to `false` to turn off prompt suggestions, the grayed-out predictions that appear in your prompt input. Takes precedence over the [`promptSuggestionEnabled`](/docs/en/settings-reference#promptsuggestionenabled) setting, which is what the **Prompt suggestions** toggle in `/config` writes. Claude Code also [pauses suggestions while your account is close to or at its usage limit](/docs/en/interactive-mode#when-claude-code-skips-suggestions). Set to `true` to keep them on until you reach the limit. Requires Claude Code v2.1.238 or later. See [Prompt suggestions](/docs/en/interactive-mode#prompt-suggestions) | | `CLAUDE_CODE_ENABLE_TASKS` | Selects which task-tracking tools Claude Code provides in [sessions that have them](/docs/en/tools-reference#task-tool-availability). By default, Claude Code provides the Task tools `TaskCreate`, `TaskUpdate`, `TaskGet`, and `TaskList`. Set to `0` to get the legacy `TodoWrite` tool instead. See [Task list](/docs/en/interactive-mode#task-list) | | `CLAUDE_CODE_ENABLE_TELEMETRY` | Set to `1` to enable OpenTelemetry data collection for metrics and logging. Required before configuring OTel exporters. See [Monitoring](/docs/en/monitoring-usage) | -| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Set to `1` to get the task-tracking tools on the models listed under [Task tool availability](/docs/en/tools-reference#task-tool-availability), where Claude Code otherwise leaves them out. `CLAUDE_CODE_ENABLE_TASKS` still selects the Task tools or `TodoWrite`. Requires Claude Code v2.1.233 or later | +| `CLAUDE_CODE_ENABLE_TODO_TOOLS` | Set to `1` to get the task-tracking tools on every model. Without it, Claude Code provides them by default only on the models listed under [Task tool availability](/docs/en/tools-reference#task-tool-availability). `CLAUDE_CODE_ENABLE_TASKS` still selects the Task tools or `TodoWrite`. Requires Claude Code v2.1.233 or later | | `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | Time in milliseconds to wait after the query loop becomes idle before automatically exiting. Useful for automated workflows and scripts using SDK mode | | `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | Set to `1` to enable [agent teams](/docs/en/agent-teams). Agent teams are experimental and disabled by default | | `CLAUDE_CODE_EXTRA_BODY` | JSON object to merge into the top level of every API request body. Useful for passing provider-specific parameters that Claude Code doesn't expose directly. A value exported in your shell also applies to the [background sessions](/docs/en/agent-view) you dispatch with `claude agents` or `--bg`. Before v2.1.206, background sessions ignored a shell-exported value and used whatever copy the background supervisor process inherited | @@ -388,6 +388,7 @@ Numeric variables such as timeouts, token budgets, and retry counts accept scien | `CLAUDE_CODE_USE_POWERSHELL_TOOL` | Controls the PowerShell tool. On Windows without Git Bash, the tool is enabled automatically; set to `0` to disable it. On Windows with Git Bash installed, the tool is on by default for claude.ai and Console accounts; set to `1` to enable it in Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry sessions, or `0` to turn it off. On Linux, macOS, and WSL, set to `1` to enable it, which requires `pwsh` on your `PATH`. When enabled on Windows, Claude can run PowerShell commands natively instead of routing through Git Bash. See [PowerShell tool](/docs/en/tools-reference#powershell-tool) | | `CLAUDE_CODE_USE_VERTEX` | Use [Google Cloud's Agent Platform](/docs/en/google-vertex-ai) | | `CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS` | Set to the number of milliseconds [WebFetch](/docs/en/tools-reference#webfetch-tool-behavior) keeps each fetched URL's response cached. The default is `900000`, which is 15 minutes. Takes plain digits only; `0`, a decimal, or any other spelling keeps the default. Claude Code reads the value once per launch, so a change in a settings `env` block applies when you next launch `claude`. Requires Claude Code v2.1.233 or later | +| `CLAUDE_CODE_WEBFETCH_DEADLINE_MS` | Upper bound in milliseconds on how long [WebFetch](/docs/en/tools-reference#webfetch-tool-behavior) waits for a page to download, including any redirects it follows. A download that hasn't completed by then fails with a deadline error. The default is `300000`, which is five minutes. Set to `0` to remove the limit. Takes plain digits only; a decimal or any other spelling keeps the default. Requires Claude Code v2.1.268 or later | | `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | Upper bound in milliseconds on how long a [workflow](/docs/en/workflows) agent waits for a same-prefix sibling's first response to begin before sending its own first request. When a fan-out starts several agents that share a [prompt-cache prefix](/docs/en/workflows#prompt-caching-in-a-fan-out), Claude Code holds all but the first agent for up to this long so the rest read the cached prefix instead of each processing it uncached. Default `5000`. Set to `0` to disable the wait. When `DISABLE_PROMPT_CACHING` is set, agents never wait. Requires Claude Code v2.1.229 or later | | `CLAUDE_CONFIG_DIR` | Override the configuration directory (default: `~/.claude`). All settings, session history, and plugins are stored under this path. For credentials, see [where Claude Code stores credentials](/docs/en/authentication#credential-management). Useful for running multiple accounts side by side: for example, `alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'`. Set it in your shell, user settings, or managed settings. Ignored in [project and local settings](/docs/en/settings-reference#variables-claude-code-ignores-in-env) | | `CLAUDE_DISABLE_ADOPT` | Set to `1` to stop in-flight background work instead of carrying it over when you background a session by pressing `←` or with [`/background`](/docs/en/agent-view#from-inside-a-session). Claude Code asks you to confirm before backgrounding, then stops the tasks that would otherwise carry over. Requires Claude Code v2.1.195 or later | @@ -513,7 +514,6 @@ With fetching off, you can't: * Get the [PowerShell tool](/docs/en/tools-reference#powershell-tool) by default for claude.ai and Console accounts on Windows with Git Bash installed; Claude Code routes shell commands through Git Bash unless you set `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. On Windows without Git Bash, the tool stays on * Get [Claude-drafted feedback](/docs/en/tools-reference#sendfeedback-tool-behavior), which Claude Code turns on through a fetched flag * Have Claude Code [exclude MCP tools whose input schema the API would reject](/docs/en/mcp#tools-with-invalid-input-schemas); it sends the schema anyway, and a request that includes it fails with [a 400 error naming the tool by its position](/docs/en/errors#tool-input-schema-is-invalid) -* Have a resumed conversation [keep its recorded system prompt](/docs/en/cli-reference#system-prompt-flags-in-resumed-conversations); Claude Code rebuilds the prompt on every request and `--system-prompt-snapshot` has no effect ### First session after an install or upgrade diff --git a/content/en/docs/claude-code/errors.md b/content/en/docs/claude-code/errors.md index d5f480d49..58aba2a9e 100644 --- a/content/en/docs/claude-code/errors.md +++ b/content/en/docs/claude-code/errors.md @@ -2531,14 +2531,14 @@ Before v2.1.221, Claude Code attempted to review every tracked file in this chec You ran `/code-review ultra <PR#>` or `claude ultrareview <PR#>`, and before creating the cloud session Claude Code asks the server whether [the GitHub account connected to your Claude account](/docs/en/ultrareview#review-a-pull-request) can reach the PR's repository. No account is connected, or the connection expired, so the cloud clone would fail and Claude Code refuses the launch. Claude Code doesn't spend a free run or bill usage credits for a refused launch. ```text theme={null} -Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/code/onboarding?step=alt-auth — then re-run /code-review ultra 1234 (allow a minute after connecting). +Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting). ``` When [`/web-setup`](/docs/en/web-quickstart#connect-from-your-terminal) isn't available in your session, the message names only the claude.ai link. **What to do:** -* Run `/web-setup` to connect your GitHub CLI login to your Claude account, or connect an account at [claude.ai/code/onboarding](https://claude.ai/code/onboarding?step=alt-auth) +* Run `/web-setup` to connect your GitHub CLI login to your Claude account, or connect an account at [claude.ai/connect-github](https://claude.ai/connect-github) * Rerun the review a minute after connecting Before v2.1.248, Claude Code didn't check this before launch. diff --git a/content/en/docs/claude-code/hooks.md b/content/en/docs/claude-code/hooks.md index afe4b2d44..c0f1bcb30 100644 --- a/content/en/docs/claude-code/hooks.md +++ b/content/en/docs/claude-code/hooks.md @@ -18,8 +18,8 @@ Claude Code runs hooks at specific points during a session. When an event fires Events fall into three cadences: -* once per session: `SessionStart` and `SessionEnd` -* once per turn: `UserPromptSubmit`, `Stop`, and `StopFailure` +* per session: `SessionStart` and `SessionEnd` +* per turn: `UserPromptSubmit`, `Stop`, and `StopFailure` * on every tool call inside the agentic loop: `PreToolUse` and `PostToolUse`, except [`EndConversation`](/docs/en/tools-reference#endconversation-tool-behavior) calls, which skip both <div style={{maxWidth: "500px", margin: "0 auto"}}> @@ -316,7 +316,7 @@ Each event type matches on a different field: | `PreModelSwitch`, `PostModelSwitch` | canonical name of the model the session switches to, as described under [PreModelSwitch](#premodelswitch) | `claude-opus-5`, `claude-opus-4-6\|claude-opus-5`, `.*opus.*` | | `SubagentStop` | agent type | same values as `SubagentStart` | | `ConfigChange` | configuration source | `user_settings`, `project_settings`, `local_settings`, `policy_settings`, `skills` | -| `CwdChanged` | no matcher support | always fires on every directory change | +| `CwdChanged` | no matcher support | always fires on every occurrence | | `DirectoryAdded` | how the directory was added | `slash_command`, `register_repo_root` | | `FileChanged` | literal filenames to watch (see [FileChanged](#filechanged)) | `.envrc\|.env` | | `StopFailure` | error type | `rate_limit`, `overloaded`, `authentication_failed`, `oauth_org_not_allowed`, `account_on_hold`, `billing_error`, `invalid_request`, `model_not_found`, `server_error`, `max_output_tokens`, `cloud_credential_error`, `unknown` | @@ -555,8 +555,6 @@ In addition to the [common fields](#common-fields), MCP tool hooks accept these Claude Code reads the tool's text content the same way it reads command-hook stdout, following the [parsing rule under exit code 0](#exit-code-0). If the named server is not connected, or the tool returns `isError: true`, the hook produces a non-blocking error and execution continues. -MCP tool hooks are available on every hook event once Claude Code has connected to your MCP servers. `SessionStart` and `Setup` typically fire before servers finish connecting, so hooks on those events should expect the "not connected" error on first run. - This example calls the `security_scan` tool on the `my_server` MCP server after each `Write` or `Edit`, passing the edited file's path: ```json theme={null} @@ -579,6 +577,34 @@ This example calls the `security_scan` tool on the `my_server` MCP server after } ``` +An `mcp_tool` hook can run only once Claude Code has made the session's MCP servers available to hooks. `SessionStart` and `Setup` can fire before that point: + +* **At launch**: `SessionStart` fires before the servers are available, including when you launch with `--continue` or `--resume`. Claude Code skips the event's `mcp_tool` hooks without calling their tools, and the [debug log](#debug-hooks) records `mcp_tool hooks are not available for the 'SessionStart' hook event (no MCP client context)`. +* **Later in a running session**: after `/clear` or a compaction, `SessionStart` fires again with the servers already available, and its `mcp_tool` hooks run. +* **On `Setup`**: `Setup` always fires before the servers are available, so Claude Code skips its `mcp_tool` hooks every time and records the same message naming `Setup`. + +For example, this configuration calls the `load_context` tool on the `my_server` MCP server from a `SessionStart` hook with no matcher, so it applies to every `SessionStart` source: + +```json theme={null} +{ + "hooks": { + "SessionStart": [ + { + "hooks": [ + { + "type": "mcp_tool", + "server": "my_server", + "tool": "load_context" + } + ] + } + ] + } +} +``` + +When you run `claude`, Claude Code skips this hook, never calls `load_context`, and writes the `no MCP client context` message to the debug log. Run `/clear` in that same session and the hook runs and calls `load_context`. A `type: "command"` hook on `SessionStart` runs at launch, so use one for anything the session needs from its first turn. + #### Prompt and agent hook fields In addition to the [common fields](#common-fields), prompt and agent hooks accept these fields: @@ -666,8 +692,6 @@ In addition to settings files and plugins, hooks can be defined directly in [ski * **Subagent hooks**: Claude Code runs them only while that subagent is running and removes them when it finishes. Claude Code converts a `Stop` hook here to `SubagentStop`, the event it fires when a subagent completes. * **Skill hooks**: Claude Code registers them when you or Claude invoke the skill and keeps running them for the rest of the session, on turns after the skill's own turn as well. To have Claude Code remove a hook after its first successful run instead, set [`once: true`](#common-fields) on it. -All hook events are supported. - This skill defines a `PreToolUse` hook that runs a security validation script before each `Bash` command: ```yaml theme={null} @@ -837,7 +861,7 @@ Events outside the standard decision model keep their own rows in the [per-event A hook that can't start lands in the same non-blocking bucket. When the script path doesn't exist or isn't executable, the shell exits with a code like 127 and you see the same notice with the interpreter's message, for example `Failed with non-blocking status code: /bin/sh: /path/to/hook.sh: No such file or directory`. For most hook events, the action proceeds. When you set up a policy hook, watch for this notice on its first run: a mistyped path in `settings.json` leaves the gate silently disabled. <Warning> - For most hook events, exit code 2 is the only exit code that blocks through the code alone. Without valid JSON on stdout, Claude Code treats exit code 1 as a non-blocking error and proceeds with the action, even though 1 is the conventional Unix failure code. If your hook is meant to enforce a policy, use `exit 2`. The exception is `WorktreeCreate`, where any non-zero exit code aborts worktree creation. + For most hook events, exit code 2 is the only exit code that blocks through the code alone. Without valid JSON on stdout, Claude Code treats exit code 1 as a non-blocking error and proceeds with the action, even though 1 is the conventional Unix failure code. If your hook is meant to enforce a policy, use `exit 2`. The worktree events differ: any non-zero exit code from `WorktreeCreate` aborts worktree creation, and any non-zero exit code from `WorktreeRemove` makes worktree removal fail if the directory still exists afterward. </Warning> #### Timeouts @@ -885,7 +909,7 @@ Exit code 2 is the way a hook signals "stop, don't do this." The effect depends | `Elicitation` | Yes | Denies the elicitation | | `ElicitationResult` | Yes | Blocks the response (action becomes decline) | | `WorktreeCreate` | Yes | Any non-zero exit code causes worktree creation to fail | -| `WorktreeRemove` | No | Failures are logged in debug mode only | +| `WorktreeRemove` | Yes | Any non-zero exit code causes worktree removal to fail if the directory still exists afterward. See [WorktreeRemove](#worktreeremove) for what happens to the directory | | `InstructionsLoaded` | No | Exit code is ignored | | `MessageDisplay` | No | The original text is displayed | @@ -925,7 +949,7 @@ The JSON object supports three kinds of fields: | Field | Default | Description | | :----------------- | :------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `continue` | `true` | If `false`, Claude stops processing entirely after the hook runs. Takes precedence over any event-specific decision fields | -| `stopReason` | none | Message shown to the user when `continue` is `false`. Not shown to Claude | +| `stopReason` | none | Message shown to the user when `continue` is `false`. It stays in the conversation, so Claude sees it if the conversation continues | | `suppressOutput` | `false` | Has no effect: Claude Code accepts the field but doesn't act on it. A successful hook's stdout is never shown in the transcript and is recorded in the debug log | | `systemMessage` | none | Warning message shown to the user. In [Agent SDK](/docs/en/agent-sdk/overview) and [`--output-format stream-json`](/docs/en/headless) output, it can arrive as an [`SDKInformationalMessage`](/docs/en/agent-sdk/typescript#sdkinformationalmessage) | | `terminalSequence` | none | A terminal escape sequence for Claude Code to emit on your behalf, such as a desktop notification, window title, or bell. Restricted to OSC `0`/`1`/`2`/`9`/`99`/`777` and BEL. If the value contains anything outside the allowlist, the field is ignored. Use this instead of writing to `/dev/tty`, which is unavailable to hooks | @@ -1014,21 +1038,22 @@ Claude Code saves the injected text in the session transcript. For mid-session e Not every event supports blocking or controlling behavior through JSON. The events that do each use a different set of fields to express that decision. Use this table as a quick reference before writing a hook: -| Events | Decision pattern | Key fields | -| :------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| UserPromptSubmit, UserPromptExpansion, PostToolUse, PostToolUseFailure, PostToolBatch, Stop, SubagentStop, ConfigChange, PreCompact | Top-level `decision` | `decision: "block"`, `reason`. Stop and SubagentStop also accept `hookSpecificOutput.additionalContext` for [non-error feedback that continues the conversation](#stop-decision-control) | -| TeammateIdle, TaskCompleted | Exit code or `continue: false` | Exit code 2 blocks the action with stderr feedback. JSON `{"continue": false, "stopReason": "..."}` also stops the teammate entirely, matching `Stop` hook behavior; [TaskCompleted ignores it when the `TaskUpdate` tool triggered the event](#taskcompleted-decision-control) | -| TaskCreated | Exit code or top-level `decision` | Exit code 2 or `decision: "block"` [cancels the task](#taskcreated-decision-control) and returns the message to Claude. `continue: false` is ignored | -| PreToolUse | `hookSpecificOutput` | `permissionDecision` (allow/deny/ask/defer), `permissionDecisionReason` | -| PreModelSwitch | `hookSpecificOutput` or top-level `decision` | `permissionDecision` (allow/deny/ask), `permissionDecisionReason`. `decision: "block"` also [cancels the switch](#premodelswitch-decision-control) | -| PermissionRequest | `hookSpecificOutput` | `decision.behavior` (allow/deny) | -| PermissionDenied | `hookSpecificOutput` | `retry: true` tells the model it may retry the denied tool call; Claude Code ignores it for [no-verdict denials](#permissiondenied-decision-control) | -| WorktreeCreate | path return | Command hook prints path on stdout; HTTP hook returns `hookSpecificOutput.worktreePath`. Hook failure or missing path fails creation | -| Elicitation | `hookSpecificOutput` | `action` (accept/decline/cancel), `content` (form field values for accept) | -| ElicitationResult | `hookSpecificOutput` | `action` (accept/decline/cancel), `content` (form field values override) | -| MessageDisplay | `hookSpecificOutput` | `displayContent` replaces the displayed text on screen. Display-only: the transcript and what Claude sees keep the original | -| SessionStart, SubagentStart, PostModelSwitch | Context only | `hookSpecificOutput.additionalContext` adds context for Claude. SessionStart also accepts [`initialUserMessage`, `watchPaths`, `sessionTitle`, and `reloadSkills`](#sessionstart-decision-control). No blocking or decision control | -| Setup, WorktreeRemove, Notification, SessionEnd, PostCompact, InstructionsLoaded, StopFailure, CwdChanged, DirectoryAdded, FileChanged | None | No decision control. Used for side effects like logging or cleanup | +| Events | Decision pattern | Key fields | +| :---------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| UserPromptSubmit, UserPromptExpansion, PostToolUse, PostToolUseFailure, PostToolBatch, Stop, SubagentStop, ConfigChange, PreCompact | Top-level `decision` | `decision: "block"`, `reason`. Stop and SubagentStop also accept `hookSpecificOutput.additionalContext` for [non-error feedback that continues the conversation](#stop-decision-control) | +| TeammateIdle, TaskCompleted | Exit code or `continue: false` | Exit code 2 blocks the action with stderr feedback. JSON `{"continue": false, "stopReason": "..."}` also stops the teammate entirely, matching `Stop` hook behavior; [TaskCompleted ignores it when the `TaskUpdate` tool triggered the event](#taskcompleted-decision-control) | +| TaskCreated | Exit code or top-level `decision` | Exit code 2 or `decision: "block"` [cancels the task](#taskcreated-decision-control) and returns the message to Claude. `continue: false` is ignored | +| PreToolUse | `hookSpecificOutput` | `permissionDecision` (allow/deny/ask/defer), `permissionDecisionReason` | +| PreModelSwitch | `hookSpecificOutput` or top-level `decision` | `permissionDecision` (allow/deny/ask), `permissionDecisionReason`. `decision: "block"` also [cancels the switch](#premodelswitch-decision-control) | +| PermissionRequest | `hookSpecificOutput` | `decision.behavior` (allow/deny) | +| PermissionDenied | `hookSpecificOutput` | `retry: true` tells the model it may retry the denied tool call; Claude Code ignores it for [no-verdict denials](#permissiondenied-decision-control) | +| WorktreeCreate | path return | Command hook prints path on stdout; HTTP hook returns `hookSpecificOutput.worktreePath`. Hook failure or missing path fails creation | +| WorktreeRemove | Exit code | Any non-zero exit code makes the removal fail if the directory still exists afterward. JSON output is discarded | +| Elicitation | `hookSpecificOutput` | `action` (accept/decline/cancel), `content` (form field values for accept) | +| ElicitationResult | `hookSpecificOutput` | `action` (accept/decline/cancel), `content` (form field values override) | +| MessageDisplay | `hookSpecificOutput` | `displayContent` replaces the displayed text on screen. Display-only: the transcript and what Claude sees keep the original | +| SessionStart, SubagentStart, PostModelSwitch | Context only | `hookSpecificOutput.additionalContext` adds context for Claude. SessionStart also accepts [`initialUserMessage`, `watchPaths`, `sessionTitle`, and `reloadSkills`](#sessionstart-decision-control). No blocking or decision control | +| Setup, Notification, SessionEnd, PostCompact, InstructionsLoaded, StopFailure, CwdChanged, DirectoryAdded, FileChanged | None | No decision control. Used for side effects like logging or cleanup | A few events can also rewrite content rather than only allow or block it: @@ -1096,7 +1121,7 @@ Each event corresponds to a point in Claude Code's lifecycle where hooks can run Runs when Claude Code starts a new session or resumes an existing session. Useful for loading development context like existing issues or recent changes to your codebase, or setting up environment variables. For static context that doesn't require a script, use [CLAUDE.md](/docs/en/memory) instead. -SessionStart runs on every session, so keep these hooks fast. Only `type: "command"` and `type: "mcp_tool"` hooks are supported. +SessionStart runs on every session, so keep these hooks fast. Only `type: "command"` and `type: "mcp_tool"` hooks are supported. See [MCP tool hook fields](#mcp-tool-hook-fields) for when `mcp_tool` hooks run. The matcher value corresponds to how the session was initiated: @@ -1264,7 +1289,7 @@ In addition to the [common input fields](#common-input-fields), Setup hooks rece Setup hooks can't block; execution continues on any exit code. On every exit code, Claude Code discards a Setup hook's [JSON output fields](#json-output), such as `systemMessage`, `continue`, and `hookSpecificOutput.additionalContext`. With `-p`, a Setup hook's stdout, stderr, and exit code appear in the run's output only as [`hook_response` events](/docs/en/headless#read-session-metadata) when you launch with `--output-format stream-json --verbose`. -Setup hooks have access to `CLAUDE_ENV_FILE`. Variables written to that file persist into subsequent Bash commands for the session, just as in [SessionStart hooks](#persist-environment-variables). Only `type: "command"` and `type: "mcp_tool"` hooks are supported. +Setup hooks have access to `CLAUDE_ENV_FILE`. Variables written to that file persist into subsequent Bash commands for the session, just as in [SessionStart hooks](#persist-environment-variables). Only `type: "command"` hooks run on `Setup`. A `type: "mcp_tool"` hook on `Setup` is always skipped, as described under [MCP tool hook fields](#mcp-tool-hook-fields). ### InstructionsLoaded @@ -1778,7 +1803,7 @@ A hook's `"ask"` also forces a permission prompt in [auto mode](/docs/en/permiss <span id="allow-with-updatedinput" /> -`AskUserQuestion` and `ExitPlanMode` require user interaction and normally block in [non-interactive mode](/docs/en/headless) with the `-p` flag. Returning `permissionDecision: "allow"` together with `updatedInput` satisfies that requirement: the hook reads the tool's input from stdin, collects the answer through your own UI, and returns it in `updatedInput` so the tool runs without prompting. Returning `"allow"` alone is not sufficient for these tools. For `AskUserQuestion`, echo back the original `questions` array and add an [`answers`](#askuserquestion) object mapping each question's text to the chosen answer. +In [non-interactive mode](/docs/en/headless) with the `-p` flag, Claude Code offers `AskUserQuestion` and `ExitPlanMode` only when the run has a [permission host](/docs/en/headless#turn-off-permission-prompts-in-unattended-runs) to receive the prompt, such as an Agent SDK `canUseTool` callback. These tools require user interaction. Returning `permissionDecision: "allow"` together with `updatedInput` satisfies that requirement: the hook reads the tool's input from stdin, collects the answer through your own UI, and returns it in `updatedInput` so the tool runs without prompting. Returning `"allow"` alone is not sufficient for these tools. For `AskUserQuestion`, echo back the original `questions` array and add an [`answers`](#askuserquestion) object mapping each question's text to the chosen answer. As of v2.1.199, an MCP tool whose server marks it with [`_meta["anthropic/requiresUserInteraction"]`](/docs/en/mcp#require-approval-for-a-specific-tool) is stricter: a hook can't skip its approval prompt with `"allow"`, with or without `updatedInput`, because Claude Code can't confirm the hook collected the interaction the tool needs. @@ -1790,12 +1815,12 @@ As of v2.1.199, an MCP tool whose server marks it with [`_meta["anthropic/requir `"defer"` is for integrations that run `claude -p` as a subprocess and read its JSON output, such as an Agent SDK app or a custom UI built on top of Claude Code. It lets that calling process pause Claude at a tool call, collect input through its own interface, and resume where it left off. Claude Code honors this value only in [non-interactive mode](/docs/en/headless) with the `-p` flag. In interactive sessions it logs a warning and ignores the hook result. -The `AskUserQuestion` tool is the typical case: Claude wants to ask the user something, but there is no terminal to answer in. The round trip works like this: +The `AskUserQuestion` tool is the typical case: Claude wants to ask the user something, but there is no terminal to answer in. A `-p` run offers `AskUserQuestion` only when it has a [permission host](/docs/en/headless#turn-off-permission-prompts-in-unattended-runs), such as an MCP tool you pass with `--permission-prompt-tool`, so start the run with one. The round trip works like this: 1. Claude calls `AskUserQuestion`. The `PreToolUse` hook fires. 2. The hook returns `permissionDecision: "defer"`. The tool doesn't execute. The process exits with `stop_reason: "tool_deferred"` and the pending tool call preserved in the transcript. 3. The calling process reads `deferred_tool_use` from the SDK result, surfaces the question in its own UI, and waits for an answer. -4. The calling process runs `claude -p --resume <session-id>`. The same tool call fires `PreToolUse` again. +4. The calling process runs `claude -p --resume <session-id>` with the same permission host. The same tool call fires `PreToolUse` again. 5. The hook returns `permissionDecision: "allow"` with the answer in `updatedInput`. The tool executes and Claude continues. The `deferred_tool_use` field carries the tool's `id`, `name`, and `input`. The `input` is the parameters Claude generated for the tool call, captured before execution: @@ -1841,7 +1866,7 @@ Matches on tool name, same values as PreToolUse. PermissionRequest hooks receive `tool_name` and `tool_input` fields like PreToolUse hooks, but without `tool_use_id`. An optional `permission_suggestions` array contains the [permission updates](#permission-update-entries) Claude Code suggests for this request, such as adding an allow rule or changing the permission mode. -The permission dialog builds its "always allow" options from these suggestions, but the array isn't an exact list of the options you see. The dialog can withhold an option whose suggestion stays in the array, for example when [`allowManagedPermissionRulesOnly`](/docs/en/settings-reference#allowmanagedpermissionrulesonly) hides rule-saving options. It can also offer options that have no suggestion entry, such as [**Yes, and switch to auto mode**](/docs/en/permission-modes#switch-permission-modes), which changes the permission mode directly rather than through a permission update. +The `permission_suggestions` array isn't an exact list of the options you see, because each permission dialog builds its own options. Some dialogs, such as the one for file edits, don't read the array at all and derive their options from the request itself. A dialog that does read it can still withhold an option whose suggestion stays in the array, for example when [`allowManagedPermissionRulesOnly`](/docs/en/settings-reference#allowmanagedpermissionrulesonly) hides rule-saving options. It can also offer options that have no suggestion entry, such as [**Yes, and switch to auto mode**](/docs/en/permission-modes#switch-permission-modes), which changes the permission mode directly rather than through a permission update. PreToolUse hooks run before every tool call, whether or not it needs permission. PermissionRequest hooks run only when Claude Code is about to ask you for permission, or when it would otherwise auto-deny a call that can't prompt. Neither event fires for [`EndConversation`](/docs/en/tools-reference#endconversation-tool-behavior). @@ -1955,7 +1980,7 @@ Match more broadly when the tool name isn't the right filter: }, "tool_response": { "filePath": "/path/to/file.txt", - "success": true + "type": "create" }, "tool_use_id": "toolu_01ABC123...", "duration_ms": 12 @@ -2076,7 +2101,7 @@ The `error` string is generally the same text Claude receives as the failed tool * For Bash and PowerShell, a command that ran and exited produces a first line `Exit code N`, then any output the command produced as one block with stdout and stderr interleaved * A payload may also carry a bare failure message with no exit-code line, when Claude Code could not start the shell process itself -* Claude Code middle-truncates strings longer than 10,000 characters around a `... [N characters truncated] ...` marker, and can insert lines of its own, such as `Command timed out after 2m 0s` +* Claude Code middle-truncates long strings around a `... [N characters truncated] ...` marker, and can insert lines of its own, such as `Command timed out after 2m 0s` #### PostToolUseFailure decision control @@ -2130,7 +2155,7 @@ In addition to the [common input fields](#common-input-fields), PostToolBatch ho `tool_response` contains the same content the model receives in the corresponding `tool_result` block. The value is a serialized string or content-block array, exactly as the tool emitted it. For `Read`, that means line-number-prefixed text rather than raw file contents. Responses can be large, so parse only the fields you need. <Note> - The `tool_response` shape differs from `PostToolUse`'s. `PostToolUse` passes the tool's structured `Output` object, such as `{filePath: "...", success: true}` for `Write`; `PostToolBatch` passes the serialized `tool_result` content the model sees. + The `tool_response` shape differs from `PostToolUse`'s. `PostToolUse` passes the tool's structured `Output` object, such as `{filePath: "...", type: "create"}` for `Write`; `PostToolBatch` passes the serialized `tool_result` content the model sees. </Note> #### PostToolBatch decision control @@ -2175,13 +2200,13 @@ In addition to the [common input fields](#common-input-fields), PermissionDenied "description": "Clean build directory" }, "tool_use_id": "toolu_01ABC123...", - "reason": "Blocked by classifier" + "reason": "[Irreversible Local Destruction]" } ``` -| Field | Description | -| :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `reason` | The denial reason: the fixed text `Blocked by classifier` in most sessions, or the classifier's written explanation when the session's classifier model provides one. For a denial where a safety check separate from auto mode refused the classifier's request or its response didn't parse, the reason starts with `Auto mode could not evaluate this action and is blocking it for safety`. For a denial because the classifier model was unavailable, the reason is the fixed text `Classifier unavailable`. See [Review denials](/docs/en/auto-mode-config#review-denials) | +| Field | Description | +| :------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `reason` | The denial reason. For a classifier verdict, in most sessions it names the matched rule in square brackets, such as `[Data Exfiltration]`; see [Review denials](/docs/en/auto-mode-config#review-denials) for the other forms. For a [no-verdict denial](#permissiondenied-decision-control), it starts with `Auto mode could not evaluate this action and is blocking it for safety`. For a denial because the classifier model was unavailable, it is the fixed text `Classifier unavailable` | #### PermissionDenied decision control @@ -2721,11 +2746,11 @@ Claude Code acts on the blocking decision from a ConfigChange hook's JSON output ### CwdChanged -Runs when the working directory changes during a session, for example when Claude executes a `cd` command. Use this to react to directory changes: reload environment variables, activate project-specific toolchains, or run setup scripts automatically. Pairs with [FileChanged](#filechanged) for tools like [direnv](https://direnv.net/) that manage per-directory environment. +Runs when a shell command in the main conversation changes the working directory, for example when Claude executes a `cd` command. Use this to react to directory changes: reload environment variables, activate project-specific toolchains, or run setup scripts automatically. Pairs with [FileChanged](#filechanged) for tools like [direnv](https://direnv.net/) that manage per-directory environment. -CwdChanged hooks have access to `CLAUDE_ENV_FILE`. Variables written to that file persist into subsequent Bash commands for the session, just as in [SessionStart hooks](#persist-environment-variables). +CwdChanged hooks have access to [`CLAUDE_ENV_FILE`](#persist-environment-variables). Variables written to that file persist into subsequent Bash commands until the next CwdChanged event, when Claude Code clears them. -CwdChanged doesn't support matchers and fires on every directory change. +CwdChanged doesn't support matchers and fires on every occurrence. #### CwdChanged input @@ -2843,7 +2868,7 @@ To confirm the hook works, ask Claude to append a CRLF line to `data.csv` with a To watch files you can't name up front, return [`watchPaths`](#filechanged-output) from a hook to update the watch list dynamically. Claude Code starts the watcher only when something names a file to watch, so seed the list with a FileChanged group whose matcher names at least one file, or with a [SessionStart](#sessionstart-decision-control) or [CwdChanged](#cwdchanged) hook that returns `watchPaths`. The matcher still filters which hook groups run when a watched file changes, so give the group that handles dynamic paths an omitted matcher, which matches every watched file and adds nothing to the watch list. A `"*"` matcher also matches every file, but Claude Code registers it in the watch list like any other value, as a literal file named `*`. -FileChanged hooks have access to `CLAUDE_ENV_FILE`. Variables written to that file persist into subsequent Bash commands for the session, just as in [SessionStart hooks](#persist-environment-variables). +FileChanged hooks have access to [`CLAUDE_ENV_FILE`](#persist-environment-variables). Variables written to that file persist into subsequent Bash commands until the next [CwdChanged](#cwdchanged) event, when Claude Code clears them. #### FileChanged input @@ -2982,7 +3007,10 @@ In addition to the [common input fields](#common-input-fields), WorktreeRemove h } ``` -WorktreeRemove hooks have no decision control. They can't block worktree removal but can perform cleanup tasks like removing version control state or archiving changes. Hook failures are logged in debug mode only. +A WorktreeRemove hook's exit code decides the outcome. When a hook exits non-zero and the directory at `worktree_path` still exists afterward, the removal fails: + +* The worktree stays on disk, and the hook's command and stderr go to the [debug log](#debug-hooks). +* If you were deleting a background session, the session stays too. The refusal message in [agent view](/docs/en/agent-view#what-deleting-a-session-removes) reports how the hook ended, such as `exited 1`, quotes the start of its stderr, and says whether deleting the session again removes the directory anyway. ### PreCompact @@ -3307,7 +3335,6 @@ For form-mode elicitation, the most common case: "session_id": "abc123", "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl", "cwd": "/Users/...", - "permission_mode": "default", "hook_event_name": "Elicitation", "mcp_server_name": "my-mcp-server", "message": "Please provide your credentials", @@ -3328,7 +3355,6 @@ For URL-mode elicitation, used for browser-based authentication: "session_id": "abc123", "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl", "cwd": "/Users/...", - "permission_mode": "default", "hook_event_name": "Elicitation", "mcp_server_name": "my-mcp-server", "message": "Please authenticate", @@ -3377,7 +3403,6 @@ In addition to the [common input fields](#common-input-fields), ElicitationResul "session_id": "abc123", "transcript_path": "/Users/.../.claude/projects/.../00893aaf-19fa-41d2-8238-13269b9b3ca0.jsonl", "cwd": "/Users/...", - "permission_mode": "default", "hook_event_name": "ElicitationResult", "mcp_server_name": "my-mcp-server", "action": "accept", @@ -3451,7 +3476,7 @@ Events that support `command`, `http`, and `mcp_tool` hooks but not `prompt` or * `WorktreeCreate` * `WorktreeRemove` -`SessionStart` and `Setup` support `command` and `mcp_tool` hooks. They don't support `http`, `prompt`, or `agent` hooks. +`SessionStart` and `Setup` support `command` and `mcp_tool` hooks, and [MCP tool hook fields](#mcp-tool-hook-fields) describes when their `mcp_tool` hooks run. They don't support `http`, `prompt`, or `agent` hooks. ### How prompt-based hooks work @@ -3763,14 +3788,13 @@ The example below shows a `settings.json` hook that runs a project script with t ## Debug hooks -Hook execution details, including which hooks matched, their exit codes, and full stdout and stderr, are written to the debug log file. Start Claude Code with `claude --debug-file <path>` to write the log to a known location, or run `claude --debug` and read the log at `~/.claude/debug/<session-id>.txt`. The `--debug` flag doesn't print to the terminal. +Hook execution details are written to the debug log file. Start Claude Code with `claude --debug-file <path>` to write the log to a known location, or run `claude --debug` and read the log at `~/.claude/debug/<session-id>.txt`. The `--debug` flag doesn't print to the terminal. For example, a `PostToolUse` hook on `Write` whose command prints `hook-ran` produces entries like: ```text theme={null} 2026-07-19T02:03:24.382Z [DEBUG] Hook output does not start with {, treating as plain text -2026-07-19T02:03:24.382Z [DEBUG] Hook PostToolUse:Write (PostToolUse) success: -hook-ran +2026-07-19T02:03:24.382Z [DEBUG] "Hook PostToolUse:Write (PostToolUse) success:\nhook-ran" ``` For more granular hook matching details, set `CLAUDE_CODE_DEBUG_LOG_LEVEL=verbose` to see additional log lines such as hook matcher counts and query matching. diff --git a/content/en/docs/claude-code/interactive-mode.md b/content/en/docs/claude-code/interactive-mode.md index ded6bdfed..d86ce80ee 100644 --- a/content/en/docs/claude-code/interactive-mode.md +++ b/content/en/docs/claude-code/interactive-mode.md @@ -340,7 +340,7 @@ Shell mode: * Exit with `Escape`, `Backspace`, or `Ctrl+U` on an empty prompt * Pasting text that starts with `!` into an empty prompt enters shell mode automatically, matching typed `!` behavior -In a regular interactive session, commands you type in shell mode run outside the [sandbox](/docs/en/sandboxing) even when you've enabled sandboxing, because the sandbox applies to the commands Claude runs. See [strict sandbox mode](/docs/en/sandboxing#the-unsandboxed-retry-escape-hatch) for the sessions where shell-mode commands run sandboxed too, such as background sessions with strict sandbox mode on. +Unless your session is one of those listed under [strict sandbox mode](/docs/en/sandboxing#the-unsandboxed-retry-escape-hatch), commands you type in shell mode run outside the [sandbox](/docs/en/sandboxing) even when you've enabled sandboxing, because the sandbox applies to the commands Claude runs. Claude responds to the command output automatically once it lands in the transcript, so you can run `! npm test` and get an explanation of the failures without a second prompt. The response costs the same as sending a normal prompt. To restore the earlier behavior where the output is added to context without a response, set [`respondToBashCommands`](/docs/en/settings-reference#respondtobashcommands) to `false` in `settings.json`. Before v2.1.186, shell mode always added output to context without a response. @@ -601,7 +601,7 @@ In an attached [background session](/docs/en/agent-view#attach-to-a-session), `L The task list is Claude's to-do checklist: items Claude created to plan multi-step work, with indicators showing what's pending, in progress, or complete. It's separate from the background-task view. To see running shells and subagents, use [`/tasks`](/docs/en/commands) instead. -On [Opus 4.8, Sonnet 5, Fable 5, Mythos 5, and later versions of those families](/docs/en/tools-reference#task-tool-availability), Claude keeps track of multi-step work without a written checklist, and Claude Code doesn't provide the tools that fill this list, so it stays empty. If you'd like the task list on those models anyway, opt in with `CLAUDE_CODE_ENABLE_TODO_TOOLS=1` or one of the other ways under [Task tool availability](/docs/en/tools-reference#task-tool-availability). On earlier models such as Opus 4.7, and after you opt in, the task list works as follows: +The list fills only in sessions that have the task-tracking tools, which Claude Code provides by default on [Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5](/docs/en/tools-reference#task-tool-availability). On any other model, including a model ID Claude Code doesn't recognize, the list stays empty unless you opt in with `CLAUDE_CODE_ENABLE_TODO_TOOLS=1` or one of the other ways under [Task tool availability](/docs/en/tools-reference#task-tool-availability). When the session has the tools, the task list works as follows: * Press `Ctrl+T` to toggle the task list view. The display shows up to five tasks at a time. When Claude hasn't created any checklist items yet, the toggle has no visible effect because there's nothing to display * If you leave the list expanded, Claude Code restores the expanded view the next time you launch into a session that still has tasks, such as with `--resume` or `--continue`. When the task list is empty, Claude Code starts it collapsed diff --git a/content/en/docs/claude-code/keybindings.md b/content/en/docs/claude-code/keybindings.md index 6635fd7e3..f830d6c9f 100644 --- a/content/en/docs/claude-code/keybindings.md +++ b/content/en/docs/claude-code/keybindings.md @@ -472,7 +472,7 @@ Set an action to `null` to unbind a default shortcut: This also works for chord bindings. Unbinding every chord that shares a prefix frees that prefix for use as a single-key binding. A chord in any active context keeps its prefix reserved, so you must unbind each chord in the context that defines it. -Claude Code binds these default chords on the `ctrl+x` prefix: `ctrl+x ctrl+k`, `ctrl+x ctrl+e`, and `ctrl+x enter` in `Chat`, `ctrl+x ctrl+b` in `Task`, and `ctrl+x b` in `DiffPanel`. The `ctrl+x enter` chord requires v2.1.247 or later, and `ctrl+x b` requires v2.1.260 or later. To reclaim `ctrl+x` itself as a single-key binding, unbind all of them: +Claude Code binds these default chords on the `ctrl+x` prefix: `ctrl+x ctrl+k`, `ctrl+x ctrl+e`, `ctrl+x enter`, `ctrl+x ctrl+a`, and `ctrl+x tab` in `Chat`, `ctrl+x ctrl+b` in `Task`, and `ctrl+x b` in `DiffPanel`. The `ctrl+x enter` chord requires v2.1.247 or later, and `ctrl+x b`, `ctrl+x ctrl+a`, and `ctrl+x tab` require v2.1.260 or later. To reclaim `ctrl+x` itself as a single-key binding, unbind all of them: ```json theme={null} { @@ -495,6 +495,8 @@ Claude Code binds these default chords on the `ctrl+x` prefix: `ctrl+x ctrl+k`, "ctrl+x ctrl+k": null, "ctrl+x ctrl+e": null, "ctrl+x enter": null, + "ctrl+x ctrl+a": null, + "ctrl+x tab": null, "ctrl+x": "chat:newline" } } diff --git a/content/en/docs/claude-code/llm-gateway-connect.md b/content/en/docs/claude-code/llm-gateway-connect.md index 977a823bc..a56de7a57 100644 --- a/content/en/docs/claude-code/llm-gateway-connect.md +++ b/content/en/docs/claude-code/llm-gateway-connect.md @@ -394,14 +394,19 @@ Setting the variable has these effects and limits: ### Route to a cloud provider through a gateway -These configurations point Claude Code at a gateway through a provider-specific base URL variable in place of `ANTHROPIC_BASE_URL`. Amazon Bedrock and Google Cloud's Agent Platform gateways accept those providers' native request formats; Microsoft Foundry and Claude Platform on AWS gateways accept the Anthropic Messages format and differ only in which base URL variable reaches them. +These configurations point Claude Code at a gateway through a provider-specific base URL variable in place of `ANTHROPIC_BASE_URL`. Amazon Bedrock and Google Cloud's Agent Platform gateways accept those providers' native request formats; Microsoft Foundry and Claude Platform on AWS gateways accept the Anthropic Messages format. On the Amazon Bedrock and Google Cloud's Agent Platform routes, Claude Code also limits the beta headers and request fields it sends to the set that provider accepts. For what your gateway receives on each route, see the [gateway compatibility guide](/docs/en/llm-gateway-protocol). Use one only if your gateway team specifically named Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, or the Claude Platform on AWS. If the [verification request](#verify-the-connection) above returned JSON, you can skip this section. -Set the block for the provider your gateway team named. The skip-auth variables tell Claude Code not to sign requests with provider credentials, since the gateway holds those. If the gateway needs its own token, add `ANTHROPIC_AUTH_TOKEN` after the block, except for Microsoft Foundry, which uses `ANTHROPIC_FOUNDRY_API_KEY` as shown. +Set the block for the provider your gateway team named. The skip-auth variables in the Amazon Bedrock, Google Cloud's Agent Platform, and Claude Platform on AWS blocks tell Claude Code not to sign requests with the cloud provider's credentials, since the gateway holds those. If the gateway also needs its own token, where you put it depends on the provider: + +* **Amazon Bedrock, Google Cloud's Agent Platform, or Claude Platform on AWS**: add `ANTHROPIC_AUTH_TOKEN` after the block. Claude Code sends it to the gateway as an `Authorization: Bearer` header. For a credential in a different scheme or header, use [`ANTHROPIC_CUSTOM_HEADERS`](#send-additional-headers) instead. Keep the skip-auth variable set either way, since without it Claude Code removes any `Authorization` header that `ANTHROPIC_AUTH_TOKEN`, an [`apiKeyHelper`](#rotate-credentials-with-apikeyhelper), or `ANTHROPIC_CUSTOM_HEADERS` would add. +* **Microsoft Foundry**: use `ANTHROPIC_FOUNDRY_API_KEY` as [its block](#microsoft-foundry) shows #### Amazon Bedrock +Leave `AWS_BEARER_TOKEN_BEDROCK` unset when the gateway issues its own credential. If you set it, Claude Code sends that [Amazon Bedrock API key](/docs/en/amazon-bedrock#2-configure-aws-credentials) as the `Authorization` header instead of your gateway token, even with `CLAUDE_CODE_SKIP_BEDROCK_AUTH` set. + <Tabs> <Tab title="Bash or Zsh"> ```bash theme={null} @@ -422,6 +427,8 @@ Set the block for the provider your gateway team named. The skip-auth variables #### Google Cloud's Agent Platform +Replace the project ID and region with your own values. Claude Code includes both in the path of each request it sends to the gateway: + <Tabs> <Tab title="Bash or Zsh"> ```bash theme={null} @@ -444,6 +451,12 @@ Set the block for the provider your gateway team named. The skip-auth variables </Tab> </Tabs> +The block covers routing and authentication. The region overrides and model pins from the [Agent Platform setup](/docs/en/google-vertex-ai#4-configure-claude-code) apply through a gateway as well: + +* **Per-model regions**: if your gateway serves some models from a region other than `CLOUD_ML_REGION`, set the matching `VERTEX_REGION_CLAUDE_*` variable for each, for example `VERTEX_REGION_CLAUDE_4_6_SONNET=europe-west1`. The [environment variables reference](/docs/en/env-vars) lists the exact names. +* **Model versions**: pin `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, and `ANTHROPIC_DEFAULT_HAIKU_MODEL` as in [Pin model versions](/docs/en/google-vertex-ai#5-pin-model-versions). Setting `ANTHROPIC_DEFAULT_HAIKU_MODEL` also moves background tasks such as session titles to that model, and that section explains which model runs them otherwise. +* **Model capabilities**: if you pin a model ID that your Claude Code version doesn't recognize, features such as effort levels or extended thinking can stay disabled on it. Declare what the model supports with [`ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES`](/docs/en/model-config#customize-pinned-model-display-and-capabilities) and its Sonnet and Haiku counterparts. + #### Microsoft Foundry Put the gateway's credential in `ANTHROPIC_FOUNDRY_API_KEY`; it is sent to the gateway as the `x-api-key` header. A gateway that expects a bearer token can take [`ANTHROPIC_FOUNDRY_AUTH_TOKEN`](/docs/en/env-vars) instead. Claude Code sends that value as the `Authorization: Bearer` header, and it takes precedence over `ANTHROPIC_FOUNDRY_API_KEY` when both are set. Requires Claude Code v2.1.203 or later. diff --git a/content/en/docs/claude-code/mcp.md b/content/en/docs/claude-code/mcp.md index 4fefdf6dc..8b0ca63e4 100644 --- a/content/en/docs/claude-code/mcp.md +++ b/content/en/docs/claude-code/mcp.md @@ -48,7 +48,7 @@ You can also have Claude scaffold a server for you with the official [`mcp-serve * `Marketplace "claude-plugins-official" not found`: add the marketplace with `/plugin marketplace add anthropics/claude-plugins-official`, then retry the install. * The plugin is [not found in the marketplace](/docs/en/discover-plugins#install-plugins): check the plugin name. - Check the install summary: if it reports `Run /reload-plugins to activate.`, run that command. + If the install summary reports `Run /reload-plugins to activate.`, Claude Code then runs that reload for you. If the reload warns that your next message would re-read the conversation, run `/reload-plugins --force`. </Step> <Step title="Run the build skill"> @@ -276,10 +276,10 @@ After discarding the entry, Claude Code fetches the server's tool list from the When a server's status is `✘ Failed to connect`, `claude mcp list` appends the failure detail to that status line, and `claude mcp get <name>` shows it on an `Issue:` line: the HTTP status or error code, plus any error text the server returned. The server's detail view in `/mcp` includes the same server-reported text in its `Issue:` row. Claude Code redacts credential-like text from this detail and never includes the expanded server URL, which can carry secrets. Claude Code appends no detail to a `✘ Connection error` status, because the exception text it would print there can embed that URL. Before v2.1.219, both commands showed only the bare failure status, without the status code or the server's error text. -When you complete authentication from `/mcp` and the connection still fails with an HTTP status or a transport error code, Claude Code adds that code and the origin of the URL it tried to the message it prints after the attempt. The origin is the scheme and host, plus the port when the URL names one, such as `https://mcp.example.com`. +When you complete authentication from `/mcp` and the connection still fails with an HTTP status or a transport error code, Claude Code adds that code and the origin of the server's URL to the message it prints after the attempt. The origin is the scheme and host, plus the port when the URL names one, such as `https://mcp.example.com`. * The path and query never appear in that message. -* Claude Code takes the origin after `${VAR}` expansion, so a host that comes from a variable appears expanded. +* For a server in the local, project, or user [scope](#mcp-installation-scopes) or in managed MCP configuration, the origin shows the host as written in that configuration, so a `${VAR}` reference in the host isn't expanded in the message. * For a failure with no status or error code, Claude Code shows the error text without the origin. A remote server whose configuration has an empty `url` shows as `not configured` in `/mcp`, in `claude mcp list`, and in the [`/plugin`](/docs/en/plugins) manager, and Claude Code doesn't attempt to connect to it. A plugin can include a placeholder entry like this for a connector you configure later, so Claude Code doesn't report it as an error or a setup issue. The server's detail view in `/mcp` reads `No URL configured for this server`; set the entry's `url` to connect it. Before v2.1.208, Claude Code reported an empty `url` as a configuration issue with a prompt to reconnect. @@ -479,7 +479,7 @@ Or inline in `plugin.json`: * **Automatic lifecycle**: servers connect and disconnect at these points: * At session startup, Claude Code connects the servers for enabled plugins automatically. In `/mcp`, a remote (HTTP or SSE) plugin server you've used before can show the [`cached` status](#server-status-detail) instead; Claude Code connects it when Claude first calls one of its tools - * If you enable or disable a plugin during a session, run `/reload-plugins` to connect or disconnect its MCP servers. In a session without an interactive terminal, the reload doesn't connect or disconnect plugin MCP servers; those changes take effect in your next session + * If you enable or disable a plugin during a session, Claude Code connects or disconnects its MCP servers when the change applies. [Apply plugin changes without restarting](/docs/en/discover-plugins#apply-plugin-changes-without-restarting) describes when that is. In a session without an interactive terminal, `/reload-plugins` doesn't connect or disconnect plugin MCP servers; those changes take effect in your next session * When you reload, Claude Code keeps the live connections of plugin servers whose configuration is unchanged, and does the same when you [replace the session's MCP server list](/docs/en/agent-sdk/typescript#mcpsetserversresult) from the Agent SDK without naming them * When you [move the session with `/cd`](/docs/en/permissions#move-the-session-to-another-directory) on v2.1.246 or later, Claude Code connects the servers of plugins the new directory's settings enable and disconnects the servers of plugins that are no longer enabled, so you don't need to run `/reload-plugins` after the move * In [web sessions](/docs/en/claude-code-on-the-web), an MCP call to a plugin server that isn't connected yet, such as right after an idle session wakes, starts the server on demand and waits for it to connect diff --git a/content/en/docs/claude-code/memory.md b/content/en/docs/claude-code/memory.md index 9a9fe1976..7bb4147f8 100644 --- a/content/en/docs/claude-code/memory.md +++ b/content/en/docs/claude-code/memory.md @@ -247,7 +247,9 @@ Glob syntax treats `[` as the start of a bracket expression such as `[abc]`. A p #### Share rules across projects with symlinks -The `.claude/rules/` directory supports symlinks, so you can maintain a shared set of rules and link them into multiple projects. Symlinks are resolved and loaded normally, and circular symlinks are detected and handled gracefully. +The `.claude/rules/` directory supports symlinks, so you can maintain a shared set of rules and link them into multiple projects. Circular symlinks are detected and handled gracefully. + +Claude Code treats a symlink whose target is outside your working directory like an [external import](#import-additional-files). The linked rules don't load until you approve external imports for the project, and after that only the ones without a [`paths` field](#path-specific-rules) load. Claude Code asks for that approval only when a project memory file imports a file outside the working directory with `@path`, not for symlinks alone. To load shared rules without that approval, keep them in [`~/.claude/rules/`](#user-level-rules), where they apply to every project on your machine. This example links both a shared directory and an individual file: diff --git a/content/en/docs/claude-code/monitoring-usage.md b/content/en/docs/claude-code/monitoring-usage.md index 1d20cad55..6bc79f099 100644 --- a/content/en/docs/claude-code/monitoring-usage.md +++ b/content/en/docs/claude-code/monitoring-usage.md @@ -463,7 +463,7 @@ All metrics and events share these standard attributes: | `user.account_uuid` | Account UUID (when authenticated) | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (default: true) | | `user.account_id` | Account ID in tagged format matching Anthropic admin APIs (when authenticated), such as `user_01BWBeN28...` | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` (default: true) | | `user.id` | Random anonymous identifier generated on first run and persisted in `~/.claude.json`. It contains no personal information and is not derived from your Claude account. Deleting the file produces a new unrelated value on next run. | Always included | -| `user.email` | User email address (when authenticated via OAuth) | Always included when available | +| `user.email` | User email address, from your sign-in or, in a [cloud session](/docs/en/claude-code-on-the-web), from the session's own credentials | Always included when available | | `terminal.type` | Terminal type, such as `iTerm.app`, `vscode`, `cursor`, or `tmux` | Always included when detected | | Keys from `OTEL_RESOURCE_ATTRIBUTES` | Custom attributes you set, such as `department` or `team.id`. See [Multi-team organization support](#multi-team-organization-support) | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` (default: true) | @@ -1207,7 +1207,9 @@ Per-model breakdowns of commits can only be approximated by joining against the Claude Code retries failed API requests internally and emits a single `claude_code.api_error` event only after it gives up, so the event itself is the terminal signal for that request. Intermediate retry attempts are not logged as separate events. -The `attempt` attribute on the event records the total number of attempts. `CLAUDE_CODE_MAX_RETRIES` defaults to 10 and is capped at 15; as of v2.1.199, `CLAUDE_CODE_RETRY_WATCHDOG` raises the default and removes the cap. When the request exhausts all retries on a transient error, `attempt` equals one more than that effective limit: 11 by default, and never more than 16 unless the watchdog is set. A lower value indicates a non-retryable error such as a `400` response. +The `attempt` attribute on the event records the total number of attempts. `CLAUDE_CODE_MAX_RETRIES` defaults to 10 and is capped at 15. On v2.1.199 or later, you can set `CLAUDE_CODE_RETRY_WATCHDOG` to raise the default and remove the cap. + +When the request exhausts all retries on a transient error, `attempt` equals one more than that effective limit: 11 by default, and never more than 16 unless the watchdog is set. A lower value indicates a non-retryable error such as a `400` response, or a cause with its own smaller retry budget. For example, Claude Code retries a failure to load AWS or Google Cloud credentials at most twice. To distinguish a session that recovered from one that stalled, group events by `session.id` and check whether a later `api_request` event exists after the error. @@ -1230,7 +1232,7 @@ OpenTelemetry events are the audit data source for Claude Code activity. Every e ### Attribute actions to users -The [standard attributes](#standard-attributes) on each event include the authenticated user's identity: `user.email`, `user.account_uuid`, `user.account_id`, and `organization.id` when signed in with a Claude account, plus `user.id` and the per-session `session.id`. `user.id` is an installation-scoped identifier, except on [Claude apps gateway](/docs/en/claude-apps-gateway) sessions, where it is the IdP subject from the gateway-issued token. +The [standard attributes](#standard-attributes) on each event include the authenticated user's identity: `user.email`, `user.account_uuid`, `user.account_id`, and `organization.id` when signed in with a Claude account or, in a [cloud session](/docs/en/claude-code-on-the-web), when the session's own credentials carry them, plus `user.id` and the per-session `session.id`. `user.id` is an installation-scoped identifier, except on [Claude apps gateway](/docs/en/claude-apps-gateway) sessions, where it is the IdP subject from the gateway-issued token. MCP tool calls, Bash commands, and file edits are therefore attributed to the developer who started the session. Claude Code doesn't act under a separate service account; the identity recorded on each event is the developer's own Claude account, or the developer's IdP identity on a [Claude apps gateway](/docs/en/claude-apps-gateway) session. diff --git a/content/en/docs/claude-code/permission-modes.md b/content/en/docs/claude-code/permission-modes.md index 75e0f4feb..2adedd056 100644 --- a/content/en/docs/claude-code/permission-modes.md +++ b/content/en/docs/claude-code/permission-modes.md @@ -454,7 +454,7 @@ Repeated blocks usually mean the classifier is missing context about your infras 1. Actions matching your [allow, ask, or deny rules](/docs/en/permissions#manage-permissions) resolve immediately. Writes to [protected paths](#protected-paths) route to the classifier even when an allow rule matches, and so do `rm` and `rmdir` removals targeting a [critical path](#critical-paths) in Claude Code v2.1.218 and later. MCP tools marked [`requiresUserInteraction`](/docs/en/mcp#require-approval-for-a-specific-tool) prompt you directly even when an allow rule matches, and so do connector tools [your organization set to `ask`](/docs/en/mcp#organization-controls-on-connector-tools) in sessions where that setting reaches Claude Code. Ask rules that match on a command's content, such as `Bash(git push *)`, fall back to a permission prompt 2. Read-only actions and file edits in your working directory are auto-approved, except writes to [protected paths](#protected-paths) and [the first read outside the working directories](#first-read-outside-the-working-directories), which prompts you 3. Everything else goes to the classifier. The connector tools and `requiresUserInteraction` MCP tools that prompt you directly in step 1 never reach the classifier, so neither an org-required approval nor a consent step is auto-approved - 4. If the classifier blocks, Claude receives the reason and tries an alternative. In most sessions the reason is the fixed text `Blocked by classifier` rather than a written explanation, in Claude Code v2.1.208 and later; see [Review denials](/docs/en/auto-mode-config#review-denials) + 4. If the classifier blocks, Claude receives the reason and tries an alternative. In most sessions the reason names the rule the classifier matched, such as `[Data Exfiltration]`, rather than giving a written explanation; see [Review denials](/docs/en/auto-mode-config#review-denials) On entering auto mode, broad allow rules that grant arbitrary code execution are dropped: diff --git a/content/en/docs/claude-code/plugin-marketplaces.md b/content/en/docs/claude-code/plugin-marketplaces.md index be4d0923a..e43b5d5d6 100644 --- a/content/en/docs/claude-code/plugin-marketplaces.md +++ b/content/en/docs/claude-code/plugin-marketplaces.md @@ -92,7 +92,7 @@ This example creates a marketplace with one plugin: a `quality-review` skill for </Step> <Step title="Add and install"> - From the directory that contains `my-marketplace`, start Claude Code and run the following commands. The install command opens a plugin details view where you select an installation scope to confirm the install. Check the install summary: if it reports `Run /reload-plugins to activate.`, run that command. + From the directory that contains `my-marketplace`, start Claude Code and run the following commands. The install command opens a plugin details view where you select an installation scope to confirm the install. Check the install summary: if it reports `Run /reload-plugins to activate.`, see [Apply plugin changes without restarting](/docs/en/discover-plugins#apply-plugin-changes-without-restarting). ```shell theme={null} /plugin marketplace add ./my-marketplace diff --git a/content/en/docs/claude-code/plugins-reference.md b/content/en/docs/claude-code/plugins-reference.md index 417098c98..61933d282 100644 --- a/content/en/docs/claude-code/plugins-reference.md +++ b/content/en/docs/claude-code/plugins-reference.md @@ -1004,10 +1004,19 @@ claude plugin install <plugin> [options] | `-s, --scope <scope>` | Installation scope: `user`, `project`, or `local` | `user` | | `--config <key=value>` | Set a [`userConfig`](#user-configuration) option declared in the plugin's manifest. Repeat the flag to set multiple options | | | `-y, --yes` | Accept a command the plugin's marketplace declares, without the confirmation prompt: the command that produces a plugin with a [`command` source](/docs/en/plugin-marketplaces#command-sources), or the [`headersHelper`](/docs/en/plugin-marketplaces#authenticate-archive-downloads) that authenticates an archive download. Accepting a `headersHelper` requires Claude Code v2.1.238 or later. Claude Code still prints the command first. Required when stdin or stdout isn't a TTY. Has no effect inside a Claude Code session, so run the command from your own terminal | | +| `--json` | Print the result as one JSON object on the last line of stdout instead of the human-readable message, for use in scripts. See [JSON result format](#plugin-json-result). Requires Claude Code v2.1.268 or later | | | `-h, --help` | Display help for command | | Scope determines which settings file the installed plugin is added to. For example, `--scope project` writes to `enabledPlugins` in .claude/settings.json, making the plugin available to everyone who clones the project repository. +<span id="plugin-json-result" />With `--json`, the last line of stdout is one JSON object. Parse only that line, because Claude Code prints any command the marketplace declares ahead of it. Three fields are always present: + +* `command`: the subcommand that ran, such as `install` +* `outcome`: `ok` or `failed` +* `message`: a human-readable description of the result + +Other fields, such as `pluginId`, `scope`, and `failureCode`, appear only when they apply. The `--json` option on `plugin uninstall`, `plugin update`, `plugin enable`, and `plugin disable` prints the same object with that subcommand's own fields. A usage error, such as an invalid `--scope`, prints no result line and exits 1 with the reason on stderr. + **Examples:** ```bash theme={null} @@ -1035,13 +1044,14 @@ claude plugin uninstall <plugin> [options] **Options:** -| Option | Description | Default | -| :-------------------- | :------------------------------------------------------------------------------------------------------- | :------ | -| `-s, --scope <scope>` | Uninstall from scope: `user`, `project`, or `local` | `user` | -| `--keep-data` | Preserve the plugin's [persistent data directory](#persistent-data-directory) | | -| `--prune` | Also remove auto-installed dependencies that no other plugin requires. See [plugin prune](#plugin-prune) | | -| `-y, --yes` | Skip the `--prune` confirmation prompt. Required when stdin or stdout is not a TTY | | -| `-h, --help` | Display help for command | | +| Option | Description | Default | +| :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ | +| `-s, --scope <scope>` | Uninstall from scope: `user`, `project`, or `local` | `user` | +| `--keep-data` | Preserve the plugin's [persistent data directory](#persistent-data-directory) | | +| `--prune` | Also remove auto-installed dependencies that no other plugin requires. See [plugin prune](#plugin-prune) | | +| `-y, --yes` | Skip the `--prune` confirmation prompt. Required when stdin or stdout is not a TTY | | +| `--json` | Print the result as one JSON object on the last line of stdout, in the [same format as `plugin install --json`](#plugin-json-result). Can't be combined with `--prune`. Requires Claude Code v2.1.268 or later | | +| `-h, --help` | Display help for command | | **Aliases:** `remove`, `rm` @@ -1086,10 +1096,11 @@ claude plugin enable <plugin> [options] **Options:** -| Option | Description | Default | -| :-------------------- | :------------------------------------------------------------------------------------------------------------------------ | :---------- | -| `-s, --scope <scope>` | Scope to enable: `user`, `project`, or `local`. When omitted, Claude Code detects the scope where the plugin is installed | Auto-detect | -| `-h, --help` | Display help for command | | +| Option | Description | Default | +| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------- | +| `-s, --scope <scope>` | Scope to enable: `user`, `project`, or `local`. When omitted, Claude Code detects the scope where the plugin is installed | Auto-detect | +| `--json` | Print the result as one JSON object on the last line of stdout, in the [same format as `plugin install --json`](#plugin-json-result). Requires Claude Code v2.1.268 or later | | +| `-h, --help` | Display help for command | | ### plugin disable @@ -1105,11 +1116,12 @@ claude plugin disable [plugin] [options] **Options:** -| Option | Description | Default | -| :-------------------- | :------------------------------------------------------------------------------------------------------------------------- | :---------- | -| `-a, --all` | Disable all enabled plugins. Can't be combined with `--scope` | | -| `-s, --scope <scope>` | Scope to disable: `user`, `project`, or `local`. When omitted, Claude Code detects the scope where the plugin is installed | Auto-detect | -| `-h, --help` | Display help for command | | +| Option | Description | Default | +| :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------- | +| `-a, --all` | Disable all enabled plugins. Can't be combined with `--scope` | | +| `-s, --scope <scope>` | Scope to disable: `user`, `project`, or `local`. When omitted, Claude Code detects the scope where the plugin is installed | Auto-detect | +| `--json` | Print the result as one JSON object on the last line of stdout, in the [same format as `plugin install --json`](#plugin-json-result). Requires Claude Code v2.1.268 or later | | +| `-h, --help` | Display help for command | | ### plugin update @@ -1129,6 +1141,7 @@ claude plugin update <plugin> [options] | :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ | | `-s, --scope <scope>` | Scope to update: `user`, `project`, `local`, or `managed` | `user` | | `-y, --yes` | Accept a command the plugin's marketplace declares, without the confirmation prompt: the command that produces a plugin with a [`command` source](/docs/en/plugin-marketplaces#command-sources), or the [`headersHelper`](/docs/en/plugin-marketplaces#authenticate-archive-downloads) that authenticates an archive download. Accepting a `headersHelper` requires Claude Code v2.1.238 or later. Claude Code still prints the command first. Required when stdin or stdout isn't a TTY. Has no effect inside a Claude Code session, so run the command from your own terminal | | +| `--json` | Print the result as one JSON object on the last line of stdout, in the [same format as `plugin install --json`](#plugin-json-result). Requires Claude Code v2.1.268 or later | | | `-h, --help` | Display help for command | | <Note> @@ -1147,11 +1160,11 @@ claude plugin list [options] **Options:** -| Option | Description | Default | -| :------------ | :------------------------------------------------------------- | :------ | -| `--json` | Output as JSON | | -| `--available` | Include available plugins from marketplaces. Requires `--json` | | -| `-h, --help` | Display help for command | | +| Option | Description | Default | +| :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ | +| `--json` | Output as JSON. A plugin row with load problems or authoring warnings carries `errors` or `notes` string arrays. On Claude Code v2.1.268 or later, parallel `errorDetails` and `noteDetails` arrays give each entry's diagnostic `type` and the names it refers to, such as the plugin, marketplace, server, or file | | +| `--available` | Include available plugins from marketplaces. Requires `--json` | | +| `-h, --help` | Display help for command | | Within an interactive session, `/plugin list` prints a similar listing inline, but it covers marketplace-installed plugins only: diff --git a/content/en/docs/claude-code/plugins.md b/content/en/docs/claude-code/plugins.md index d76260541..2ba160b92 100644 --- a/content/en/docs/claude-code/plugins.md +++ b/content/en/docs/claude-code/plugins.md @@ -218,7 +218,7 @@ When reviewing code, check for: 4. Test coverage ``` -After you install the plugin, check the install summary: if it reports `Run /reload-plugins to activate.`, run that command to load the Skills. For complete Skill authoring guidance including progressive disclosure and tool restrictions, see [Agent Skills](/docs/en/skills). +After you install the plugin, check the install summary: if it reports `Run /reload-plugins to activate.`, see [Apply plugin changes without restarting](/docs/en/discover-plugins#apply-plugin-changes-without-restarting) to load the Skills in your current session. For complete Skill authoring guidance including progressive disclosure and tool restrictions, see [Agent Skills](/docs/en/skills). ### Add LSP servers to your plugin diff --git a/content/en/docs/claude-code/prompt-caching.md b/content/en/docs/claude-code/prompt-caching.md index 712c3662e..0de3b4e8c 100644 --- a/content/en/docs/claude-code/prompt-caching.md +++ b/content/en/docs/claude-code/prompt-caching.md @@ -22,11 +22,11 @@ The API caches by matching the start of each request, called the prefix, against To get the most out of prefix matching, Claude Code orders each request so content that rarely changes between turns comes first: -| Layer | Content | Changes when | -| --------------- | ----------------------------------------------- | --------------------------------------------------------------------- | -| System prompt | Core instructions, tool definitions | The set of loaded tool definitions changes or Claude Code is upgraded | -| Project context | CLAUDE.md, auto memory, unscoped rules | Session starts, or after `/clear` or `/compact` | -| Conversation | Your messages, Claude's responses, tool results | Every turn | +| Layer | Content | Changes when | +| --------------- | ----------------------------------------------- | ----------------------------------------------- | +| System prompt | Core instructions, tool definitions | The set of loaded tool definitions changes | +| Project context | CLAUDE.md, auto memory, unscoped rules | Session starts, or after `/clear` or `/compact` | +| Conversation | Your messages, Claude's responses, tool results | Every turn | A change to the conversation layer leaves the system prompt and project context cached. A change to the system prompt invalidates everything, because all later content now sits behind a different prefix. The third column gives common triggers rather than an exhaustive list, and the sections below cover the full set. @@ -72,7 +72,6 @@ These actions cause the next request to miss part or all of the cache. You see a * [Connecting or disconnecting an MCP server](#connecting-or-disconnecting-an-mcp-server) * [Enabling or disabling a plugin](#enabling-or-disabling-a-plugin) * [Denying an entire tool](#denying-an-entire-tool) -* [Changing output style](#changing-output-style) * [Compacting the conversation](#compacting-the-conversation) * [Accumulating many images](#accumulating-many-images) * [Upgrading Claude Code](#upgrading-claude-code) @@ -139,14 +138,14 @@ When you enable a [code intelligence plugin](/docs/en/discover-plugins#code-inte #### When plugin changes apply -A plugin change applies when you run [`/reload-plugins`](/docs/en/discover-plugins#apply-plugin-changes-without-restarting) or start a new session, not when you run `/plugin enable` or `/plugin disable`. You pay the cost, whether appended announcements or a full re-read, on the first turn after the change applies. Claude Code can also apply a change on its own: +A change you make in the `/plugin` menu goes through [`/reload-plugins`](/docs/en/discover-plugins#apply-plugin-changes-without-restarting), which Claude Code runs for you when you close the menu. You pay the cost, whether appended announcements or a full re-read, on the first turn after the change applies. Claude Code can also apply a change on its own: * For a plugin with a `command` source, Claude Code [can reload the plugin itself](/docs/en/plugin-marketplaces#when-claude-code-re-runs-the-command). -* When you [install a plugin from the `/plugin` interface](/docs/en/discover-plugins#install-plugins), Claude Code can activate it during the install. Claude Code tells you in the install summary whether it did or whether to run `/reload-plugins`. +* When you [install a plugin from the `/plugin` interface](/docs/en/discover-plugins#install-plugins), Claude Code can activate it during the install. The install summary tells you whether it did. * When you [move the session with `/cd`](/docs/en/permissions#move-the-session-to-another-directory) on v2.1.246 or later, Claude Code applies the plugins the new directory's settings enable as part of the move, without the full re-read warning that holds a `/reload-plugins`. * In interactive sessions, when you add or remove a plugin in a [folder of plugins](/docs/en/plugins#test-your-plugins-locally) you passed with `--plugin-dir`, the change applies right away. If applying it would trigger a full re-read, Claude Code holds the change instead and shows a notice to run `/reload-plugins`. Requires Claude Code v2.1.265 or later. -When you run `/reload-plugins` and the reload would trigger a full re-read, Claude Code shows a warning and doesn't apply the reload. Rerun it with `--force` to apply the reload anyway. +When `/reload-plugins` runs and the reload would trigger a full re-read, Claude Code shows a warning and doesn't apply the reload. Run `/reload-plugins --force` to apply it anyway. `/reload-plugins` also runs in sessions without an interactive terminal, such as the desktop app, the Agent SDK, and [non-interactive mode](/docs/en/headless) with `-p`, when you type it into the session directly. Requires Claude Code v2.1.260 or later. @@ -162,17 +161,9 @@ Adding a bare tool name like `Bash` or `WebFetch` as a [deny rule](/docs/en/perm Only a deny rule that matches in the tool-name position has this effect: a bare tool name, the equivalent `Bash(*)` form, or a [tool-name glob](/docs/en/permissions#tool-name-wildcards) like `"*"`. A glob that matches only MCP tools, such as `"mcp__*"`, removes those tools the same way but leaves the cache intact when the matched tools are [deferred](#connecting-or-disconnecting-an-mcp-server), the default, since deferred definitions were never in the cached prefix. Scoped deny rules like `Bash(rm *)`, and all allow and ask rules, don't change which tools Claude sees. Claude Code checks them when Claude attempts a call, leaving the prefix intact. -### Changing output style - -When you switch [output styles](/docs/en/output-styles) mid-session with `/config` or the `outputStyle` setting, Claude uses the new style starting with your next message. In a conversation that [keeps a recorded system prompt](/docs/en/cli-reference#system-prompt-flags-in-resumed-conversations), as sessions signed in with a claude.ai or Console account do by default, Claude Code delivers the new style's instructions as a message in the conversation. That request still reads the system prompt and the earlier conversation from the cache. - -In sessions that don't [fetch feature flags](/docs/en/env-vars#features-that-need-feature-flag-fetching), such as on Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry, the style's instructions are part of the system prompt, so the request after a switch reads the entire conversation history with no cache hits. There, switch styles before your first message in a session or right after `/clear` or `/compact`, when there is little or no conversation history to re-read. - -Before v2.1.251, a mid-session style switch kept the cache but didn't apply until you ran `/clear` or started a new session. - ### Compacting the conversation -[Compaction](/docs/en/context-window#what-survives-compaction) replaces your message history with a summary. By design, this invalidates the conversation layer, since the next request has a new, shorter history that doesn't share a prefix with the old one. Claude Code reuses the system prompt layer and reloads project context from disk, which cache-hits only if CLAUDE.md and memory are unchanged since the session started. +[Compaction](/docs/en/context-window#what-survives-compaction) replaces your message history with a summary. By design, this invalidates the conversation layer, since the next request has a new, shorter history that doesn't share a prefix with the old one. Claude Code reuses the system prompt layer unless the conversation was [resumed while keeping a system prompt that would otherwise have changed](#resuming-a-session); in that case the first compaction switches to the current prompt and that layer rebuilds once. It reloads project context from disk, which cache-hits only if CLAUDE.md and memory are unchanged since the session started. To produce the summary, Claude Code sends a separate request with the same system prompt, tools, and history as your conversation, plus a summarization instruction appended as a final user message. While the cache is warm, that request reads your prefix from the cache, so a mid-session `/compact` costs a fraction of what the context size suggests and spends most of its time generating the summary. @@ -192,10 +183,10 @@ Removing images changes the messages that held them, so the next request reproce ### Upgrading Claude Code -A new Claude Code version typically updates the system prompt or tool definitions, so the first request after an upgrade rebuilds the cache from the top. [Auto-update](/docs/en/setup#auto-updates) downloads new versions in the background but applies them on the next launch, never mid-session, so you see this as an uncached first turn after restarting rather than a surprise during a session. Set `DISABLE_AUTOUPDATER=1` to control when upgrades apply. +A new Claude Code version typically updates the system prompt or tool definitions, so the first conversation you start after an upgrade builds its cache from the top. [Auto-update](/docs/en/setup#auto-updates) downloads new versions in the background but applies them on the next launch, never mid-session, so you see this as an uncached first turn after restarting rather than a surprise during a session. Set `DISABLE_AUTOUPDATER=1` to control when upgrades apply. <Note> - [Resuming a session](/docs/en/sessions#resume-a-session) after an upgrade reprocesses the entire conversation history with no cache hits, since the history now sits behind a different system prompt. The cost scales with how long the resumed conversation is, so the first turn back into a long session can be the most expensive request you send. + For what it costs to resume a conversation you started before the upgrade, see [Resuming a session](#resuming-a-session). </Note> ## Actions that keep the cache @@ -205,6 +196,7 @@ These actions either append to the end of the conversation or don't touch the re * [Editing files in your repository](#editing-files-in-your-repository) * [Editing CLAUDE.md mid-session](#editing-claude-md-mid-session) * [Changing permission mode](#changing-permission-mode) +* [Changing output style](#changing-output-style) * [Invoking skills and commands](#invoking-skills-and-commands) * [Running `/recap`](#running-%2Frecap) * [Rewinding the conversation](#rewinding-the-conversation) @@ -224,6 +216,12 @@ Your project-root and user-level CLAUDE.md files are read once at session start Switching between [permission modes](/docs/en/permission-modes), such as from Manual to accept edits, does not change the system prompt or tool definitions, so mode changes are cache-safe. The exception is plan mode with the [`opusplan`](/docs/en/model-config#opusplan-model-setting) model setting, which switches the model between Opus and Sonnet as you enter or leave plan mode. That makes the mode toggle a [model switch](#switching-models). +### Changing output style + +When you switch [output styles](/docs/en/output-styles) mid-session with `/config` or the `outputStyle` setting, Claude uses the new style starting with your next message. Claude Code delivers the new style's instructions as a message in the conversation, so that request still reads the system prompt and the earlier conversation from the cache. + +Before v2.1.251, a mid-session style switch kept the cache but didn't apply until you ran `/clear` or started a new session. + ### Invoking skills and commands [Skills](/docs/en/skills) and [commands](/docs/en/commands) inject their instructions as user messages at the point of invocation. Nothing earlier in the conversation changes. A skill or command whose frontmatter names a `model` can be a [model switch](#switching-models) for that turn. @@ -238,6 +236,12 @@ Switching between [permission modes](/docs/en/permission-modes), such as from Ma Restoring file checkpoints alongside the conversation has no separate effect on the cache. File contents enter context only when Claude reads them, the same as [editing files in your repository](#editing-files-in-your-repository). +## Resuming a session + +When you [resume a session](/docs/en/sessions#resume-a-session), Claude Code sends the whole conversation again, and the request reads from the cache whatever part of its prefix is unchanged and still within the [cache lifetime](#cache-lifetime). The layer table at the top of this page says what changes each layer. + +The system prompt would change after a [Claude Code upgrade](#upgrading-claude-code) or with different [`--append-system-prompt`](/docs/en/cli-reference#system-prompt-flags) text on the resume. By default, the resumed conversation keeps the system prompt it started with, so its history still sits behind the same prompt, and the change takes effect once the conversation is compacted or in a new conversation. [System prompt flags in resumed conversations](/docs/en/cli-reference#system-prompt-flags-in-resumed-conversations) covers `--system-prompt-snapshot off` and bare mode, where this doesn't apply. + ## Cache lifetime Cached prefixes expire after a period of inactivity. Each request that hits the cache resets the timer, so the cache stays warm as long as you keep working. After a long enough gap, the next request recomputes the full input and re-establishes the cache, which is why the first turn back after stepping away can be noticeably slower. @@ -288,9 +292,9 @@ Through an LLM gateway you set with `ANTHROPIC_BASE_URL`, part of the one-hour r ## Cache scope -In Claude Code, the cache is effectively scoped to one machine and directory. The system prompt embeds the working directory, platform, shell, OS version, and auto memory paths, so two sessions in different directories build different prefixes and miss each other's cache. That includes worktrees of the same repository, since each worktree has its own working directory. +In Claude Code, the cache is effectively scoped to one machine and directory. Each conversation carries the working directory, platform, shell, and OS version, and the system prompt names your auto memory paths, so two sessions in different directories build different prefixes and miss each other's cache. That includes worktrees of the same repository, since each worktree has its own working directory. -Sessions you run in parallel in the same directory build matching prefixes and read each other's cache. Sequential sessions share the prefix only when the git status snapshot at startup matches, since the system prompt also captures branch and recent commits. +Sessions you run in parallel in the same directory build matching prefixes and read each other's cache. Sequential sessions share the prefix only when the git status snapshot taken at startup matches, since each conversation also carries the branch and recent commits from that snapshot. The underlying API cache is broader. Caches are isolated between organizations, and on some providers, [between workspaces within an organization](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#cache-storage-and-sharing). Within those boundaries, any two requests with the same model and prefix read the same cache. For Agent SDK callers running fleets of automated processes, see [improve prompt caching across users and machines](/docs/en/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines) to suppress the per-machine sections of the system prompt and share the cache across machines. diff --git a/content/en/docs/claude-code/remote-control.md b/content/en/docs/claude-code/remote-control.md index eab9ecba5..7718bcf17 100644 --- a/content/en/docs/claude-code/remote-control.md +++ b/content/en/docs/claude-code/remote-control.md @@ -126,9 +126,11 @@ You can start a Remote Control session from the CLI or the VS Code extension. Th ### Check connection status -In an interactive terminal session, a `/rc active` indicator sits in the footer below the input box while the connection is up, and is hidden if the terminal is too narrow to fit it. The indicator text is a link to the session on claude.ai. Select it with the down arrow key and press Enter, or run `/remote-control` again, to open a status panel with the session URL and a QR code you can use to [connect from another device](#connect-from-another-device). The status panel also offers a disconnect option. Select it to turn Remote Control off; your local session keeps running in the terminal. +In an interactive terminal session, a `/rc active` indicator shows while the connection is up, and is hidden if the terminal is too narrow to fit it. With [fullscreen rendering](/docs/en/fullscreen) it sits at the end of the working-directory line in the startup header, and without it, in the footer below the input box. -If the connection fails, Claude Code shows a notification with the failure reason and switches the indicator to a failure state that stays in the footer. To read the reason again, select the indicator with the down arrow key and press Enter. To reconnect, run `/remote-control`, unless the [reason says the session was taken over or ended elsewhere, or that the server can't find it](#session-ended-elsewhere). +The indicator text is a link to the session on claude.ai. Run `/remote-control` again to open a status panel with the session URL and a QR code for [connecting from another device](#connect-from-another-device). When the indicator is in the footer, you can also open the panel by selecting the indicator with the down arrow key and pressing Enter. The panel also offers a disconnect option, which turns Remote Control off while your local session keeps running in the terminal. + +If the connection fails, Claude Code shows a notification with the failure reason, adds a warning line with the reason to the conversation, and switches the indicator to a failure state that stays in place. To reconnect, run `/remote-control`, unless the [reason says the session was taken over or ended elsewhere, or that the server can't find it](#session-ended-elsewhere). <span id="session-ended-elsewhere" />Read the reason before you reconnect. When the session was taken over or ended from another device, app, or Claude Code session, or the server can't find it, the reason says which, and Claude Code leaves out its usual advice to run `/remote-control`: diff --git a/content/en/docs/claude-code/security-guidance.md b/content/en/docs/claude-code/security-guidance.md index c94b5c7a7..66d87c5fa 100644 --- a/content/en/docs/claude-code/security-guidance.md +++ b/content/en/docs/claude-code/security-guidance.md @@ -39,11 +39,7 @@ If the install fails, match the message Claude Code reports: * `Marketplace "claude-plugins-official" not found`: add the marketplace with `/plugin marketplace add anthropics/claude-plugins-official`, then retry the install. * The plugin is [not found in the marketplace](/docs/en/discover-plugins#install-plugins): check the plugin name. -Check the install summary. If it reports `Run /reload-plugins to activate.`, apply the pending change without a restart: - -```text theme={null} -/reload-plugins -``` +Check the install summary. If it reports `Run /reload-plugins to activate.`, see [Apply plugin changes without restarting](/docs/en/discover-plugins#apply-plugin-changes-without-restarting) to activate the plugin in your current session. ### Enable in cloud sessions and shared repositories diff --git a/content/en/docs/claude-code/server-managed-settings.md b/content/en/docs/claude-code/server-managed-settings.md index 7ce0ebc5a..68da24bc1 100644 --- a/content/en/docs/claude-code/server-managed-settings.md +++ b/content/en/docs/claude-code/server-managed-settings.md @@ -256,6 +256,8 @@ Claude Code records your approval in your configuration directory, `~/.claude` u Claude Code saves no approval for a loopback development gateway reached over plain HTTP, so the dialog appears again after each sign-in. * **Any other credential**, such as an API key or `CLAUDE_CODE_OAUTH_TOKEN`: one approval for the delivered settings, kept with the cached copy of the settings in that configuration directory. Claude Code shows the dialog again when the settings that require approval change, and after you run `/logout` or `claude auth logout`, either of which deletes the cached copy. +An approval for `sandbox.credentials` or `sandbox.network.tlsTerminate` also covers the [`sandbox.network.allowedDomains`](/docs/en/settings-reference#sandbox-network-alloweddomains) entries in those same delivered settings, because both settings act on that allowlist. The dialog appears again when your administrator adds or removes one of those entries, even though `sandbox.network.allowedDomains` doesn't require approval on its own. + With a saved claude.ai login: * If you sign out and back in, or switch to another organization and later return, Claude Code doesn't show the dialog again while those settings are unchanged, unless another account approved them for that organization in the same configuration directory in between. diff --git a/content/en/docs/claude-code/skills.md b/content/en/docs/claude-code/skills.md index 86bd32b4e..e496ad2fe 100644 --- a/content/en/docs/claude-code/skills.md +++ b/content/en/docs/claude-code/skills.md @@ -128,7 +128,7 @@ Skill folders also follow these rules: * **Symlinked folders**: a `<skill-name>` entry in the enterprise, personal, or project location can be a symlink to a directory elsewhere on disk. Claude Code reads `SKILL.md` from the target and loads the skill once even if several locations point at the same target. Plugin skills [handle symlinks differently](/docs/en/plugins-reference#share-files-within-a-marketplace-with-symlinks). * **Reserved name**: don't name a skill folder `synced`, in any capitalization. Claude Code uses `~/.claude/skills/synced/` for [skills downloaded from claude.ai](#where-synced-skills-load) and skips a skill you author at that name in the enterprise, personal, and project locations. -* **Command files**: a Markdown file in `.claude/commands/` is the older format and still works. It supports the same [frontmatter](#frontmatter-reference) except `name` and `paths`, and you invoke it by its file name. Prefer a skill for new work, since skills also support [supporting files](#add-supporting-files). +* **Command files**: a Markdown file in `.claude/commands/` is the older format and still works. It supports the same [frontmatter](#frontmatter-reference) except `name` and `paths`. To find the name you type to invoke it, see [How a skill gets its command name](#how-a-skill-gets-its-command-name). Prefer a skill for new work, since skills also support [supporting files](#add-supporting-files). * **Skill folder as a plugin**: add a `.claude-plugin/plugin.json` to a skill folder and it loads as a [plugin](/docs/en/plugins-reference#skills-directory-plugins) named `<name>@skills-dir`, so it can bundle agents, hooks, and MCP servers. In a project's `.claude/skills/`, this requires accepting the workspace trust dialog first. <h3 id="discovery-from-parent-and-nested-directories"> @@ -251,7 +251,7 @@ How you remove a skill depends on where it came from: * **Personal or project skill**: delete the skill's directory, `~/.claude/skills/<skill-name>/` or `.claude/skills/<skill-name>/`. Claude Code [drops it from `/skills` in the current session](#live-change-detection); content Claude Code already loaded from it follows the [skill content lifecycle](#skill-content-lifecycle). * **Enterprise skill**: an administrator deletes the skill's directory from `.claude/skills/` inside the [managed settings directory](/docs/en/managed-settings#delivery-mechanisms), for example `/etc/claude-code/.claude/skills/<skill-name>/` on Linux. -* **Plugin skill**: disable or uninstall the plugin that provides it, from the `/plugin` menu or with `/plugin uninstall <plugin-name>@<marketplace-name>`. Claude Code unloads the plugin's skills after you run `/reload-plugins` or restart; see [Apply plugin changes without restarting](/docs/en/discover-plugins#apply-plugin-changes-without-restarting). +* **Plugin skill**: disable or uninstall the plugin that provides it, from the `/plugin` menu or with `/plugin uninstall <plugin-name>@<marketplace-name>`. Claude Code unloads the plugin's skills when [the change applies](/docs/en/discover-plugins#apply-plugin-changes-without-restarting) or when you restart. * **Skill synced from claude.ai**: turn the skill off for your claude.ai account, in the same place you [enabled it](#skills-in-cowork-and-cloud-sessions). Claude Code removes it from `~/.claude/skills/synced/` the next time it [syncs your skills](#where-synced-skills-load). If you delete the directory by hand instead, the next sync downloads it again while the skill stays enabled on claude.ai. * **Bundled skill**: set [`disableBundledSkills`](#bundled-skills) to `true` to turn off bundled skills, or set one skill to `"off"` in [`skillOverrides`](#override-skill-visibility-from-settings) to hide it. @@ -366,13 +366,14 @@ The command you type to invoke a skill comes from where the skill file lives and The table below shows where the command name comes from for each layout: -| Skill location | Command name source | Example | -| :------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------- | -| Skill directory under `~/.claude/skills/` or `.claude/skills/` | Directory name | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` | -| [Nested](#where-skills-live) `.claude/skills/` directory, when the name clashes with another skill | Subdirectory path relative to the working directory, then the skill directory name | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` | -| File under `.claude/commands/` | File name without extension | `.claude/commands/deploy.md` → `/deploy` | -| Plugin `skills/` subdirectory | Frontmatter `name` or the directory name, namespaced by plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`, or `/my-plugin:fancy` with `name: fancy` | -| Plugin root `SKILL.md` | Frontmatter `name`, with the plugin directory name as a fallback | `my-plugin/SKILL.md` with `name: review` → `/my-plugin:review`. See [Path behavior rules](/docs/en/plugins-reference#path-behavior-rules) | +| Skill location | Command name source | Example | +| :------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------- | +| Skill directory under `~/.claude/skills/` or `.claude/skills/` | Directory name | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` | +| [Nested](#where-skills-live) `.claude/skills/` directory, when the name clashes with another skill | Subdirectory path relative to the working directory, then the skill directory name | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` | +| File under `.claude/commands/` | File name without extension | `.claude/commands/deploy.md` → `/deploy` | +| File in a subdirectory of `.claude/commands/` | Subdirectory path relative to `commands/` with each `/` replaced by `:`, then the file name without extension | `.claude/commands/frontend/component.md` → `/frontend:component` | +| Plugin `skills/` subdirectory | Frontmatter `name` or the directory name, namespaced by plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`, or `/my-plugin:fancy` with `name: fancy` | +| Plugin root `SKILL.md` | Frontmatter `name`, with the plugin directory name as a fallback | `my-plugin/SKILL.md` with `name: review` → `/my-plugin:review`. See [Path behavior rules](/docs/en/plugins-reference#path-behavior-rules) | In a plugin skill, the frontmatter `name` replaces the directory name in the last segment of the command, so `my-plugin/skills/review/SKILL.md` with `name: fancy` becomes `/my-plugin:fancy`. The bare `/fancy` also invokes the skill unless another command already uses that name. If the `name` you write already starts with the plugin's own prefix, Claude Code doesn't add the prefix again on v2.1.246 or later. For example, `name: my-plugin:fancy` still becomes `/my-plugin:fancy`. From v2.1.216 through v2.1.245, Claude Code doubled the prefix when the `name` already carried it. @@ -817,7 +818,7 @@ If the install fails, match the message Claude Code reports: * `Marketplace "claude-plugins-official" not found`: add the marketplace with `/plugin marketplace add anthropics/claude-plugins-official`, then retry the install. * The plugin is [not found in the marketplace](/docs/en/discover-plugins#install-plugins): check the plugin name. -If the install summary reports `Run /reload-plugins to activate.`, run that command to make the plugin's skills available in the current session. Then ask Claude to evaluate an existing skill, for example `evaluate my summarize-changes skill with skill-creator`. The plugin walks you through writing test cases and runs the loop: +If the install summary reports `Run /reload-plugins to activate.`, Claude Code then runs that reload for you. If the reload warns that your next message would re-read the conversation, run `/reload-plugins --force` to make the plugin's skills available in the current session. Then ask Claude to evaluate an existing skill, for example `evaluate my summarize-changes skill with skill-creator`. The plugin walks you through writing test cases and runs the loop: * **Test cases**: stores prompts, input files, and expected behavior in `evals/evals.json` inside the skill directory * **Isolated runs**: spawns a [subagent](/docs/en/sub-agents) per test case so each run starts with a clean context, and records token count and duration diff --git a/content/en/docs/claude-code/slash-commands.md b/content/en/docs/claude-code/slash-commands.md index 86bd32b4e..e496ad2fe 100644 --- a/content/en/docs/claude-code/slash-commands.md +++ b/content/en/docs/claude-code/slash-commands.md @@ -128,7 +128,7 @@ Skill folders also follow these rules: * **Symlinked folders**: a `<skill-name>` entry in the enterprise, personal, or project location can be a symlink to a directory elsewhere on disk. Claude Code reads `SKILL.md` from the target and loads the skill once even if several locations point at the same target. Plugin skills [handle symlinks differently](/docs/en/plugins-reference#share-files-within-a-marketplace-with-symlinks). * **Reserved name**: don't name a skill folder `synced`, in any capitalization. Claude Code uses `~/.claude/skills/synced/` for [skills downloaded from claude.ai](#where-synced-skills-load) and skips a skill you author at that name in the enterprise, personal, and project locations. -* **Command files**: a Markdown file in `.claude/commands/` is the older format and still works. It supports the same [frontmatter](#frontmatter-reference) except `name` and `paths`, and you invoke it by its file name. Prefer a skill for new work, since skills also support [supporting files](#add-supporting-files). +* **Command files**: a Markdown file in `.claude/commands/` is the older format and still works. It supports the same [frontmatter](#frontmatter-reference) except `name` and `paths`. To find the name you type to invoke it, see [How a skill gets its command name](#how-a-skill-gets-its-command-name). Prefer a skill for new work, since skills also support [supporting files](#add-supporting-files). * **Skill folder as a plugin**: add a `.claude-plugin/plugin.json` to a skill folder and it loads as a [plugin](/docs/en/plugins-reference#skills-directory-plugins) named `<name>@skills-dir`, so it can bundle agents, hooks, and MCP servers. In a project's `.claude/skills/`, this requires accepting the workspace trust dialog first. <h3 id="discovery-from-parent-and-nested-directories"> @@ -251,7 +251,7 @@ How you remove a skill depends on where it came from: * **Personal or project skill**: delete the skill's directory, `~/.claude/skills/<skill-name>/` or `.claude/skills/<skill-name>/`. Claude Code [drops it from `/skills` in the current session](#live-change-detection); content Claude Code already loaded from it follows the [skill content lifecycle](#skill-content-lifecycle). * **Enterprise skill**: an administrator deletes the skill's directory from `.claude/skills/` inside the [managed settings directory](/docs/en/managed-settings#delivery-mechanisms), for example `/etc/claude-code/.claude/skills/<skill-name>/` on Linux. -* **Plugin skill**: disable or uninstall the plugin that provides it, from the `/plugin` menu or with `/plugin uninstall <plugin-name>@<marketplace-name>`. Claude Code unloads the plugin's skills after you run `/reload-plugins` or restart; see [Apply plugin changes without restarting](/docs/en/discover-plugins#apply-plugin-changes-without-restarting). +* **Plugin skill**: disable or uninstall the plugin that provides it, from the `/plugin` menu or with `/plugin uninstall <plugin-name>@<marketplace-name>`. Claude Code unloads the plugin's skills when [the change applies](/docs/en/discover-plugins#apply-plugin-changes-without-restarting) or when you restart. * **Skill synced from claude.ai**: turn the skill off for your claude.ai account, in the same place you [enabled it](#skills-in-cowork-and-cloud-sessions). Claude Code removes it from `~/.claude/skills/synced/` the next time it [syncs your skills](#where-synced-skills-load). If you delete the directory by hand instead, the next sync downloads it again while the skill stays enabled on claude.ai. * **Bundled skill**: set [`disableBundledSkills`](#bundled-skills) to `true` to turn off bundled skills, or set one skill to `"off"` in [`skillOverrides`](#override-skill-visibility-from-settings) to hide it. @@ -366,13 +366,14 @@ The command you type to invoke a skill comes from where the skill file lives and The table below shows where the command name comes from for each layout: -| Skill location | Command name source | Example | -| :------------------------------------------------------------------------------------------------- | :--------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------- | -| Skill directory under `~/.claude/skills/` or `.claude/skills/` | Directory name | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` | -| [Nested](#where-skills-live) `.claude/skills/` directory, when the name clashes with another skill | Subdirectory path relative to the working directory, then the skill directory name | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` | -| File under `.claude/commands/` | File name without extension | `.claude/commands/deploy.md` → `/deploy` | -| Plugin `skills/` subdirectory | Frontmatter `name` or the directory name, namespaced by plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`, or `/my-plugin:fancy` with `name: fancy` | -| Plugin root `SKILL.md` | Frontmatter `name`, with the plugin directory name as a fallback | `my-plugin/SKILL.md` with `name: review` → `/my-plugin:review`. See [Path behavior rules](/docs/en/plugins-reference#path-behavior-rules) | +| Skill location | Command name source | Example | +| :------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------- | +| Skill directory under `~/.claude/skills/` or `.claude/skills/` | Directory name | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` | +| [Nested](#where-skills-live) `.claude/skills/` directory, when the name clashes with another skill | Subdirectory path relative to the working directory, then the skill directory name | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` | +| File under `.claude/commands/` | File name without extension | `.claude/commands/deploy.md` → `/deploy` | +| File in a subdirectory of `.claude/commands/` | Subdirectory path relative to `commands/` with each `/` replaced by `:`, then the file name without extension | `.claude/commands/frontend/component.md` → `/frontend:component` | +| Plugin `skills/` subdirectory | Frontmatter `name` or the directory name, namespaced by plugin | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`, or `/my-plugin:fancy` with `name: fancy` | +| Plugin root `SKILL.md` | Frontmatter `name`, with the plugin directory name as a fallback | `my-plugin/SKILL.md` with `name: review` → `/my-plugin:review`. See [Path behavior rules](/docs/en/plugins-reference#path-behavior-rules) | In a plugin skill, the frontmatter `name` replaces the directory name in the last segment of the command, so `my-plugin/skills/review/SKILL.md` with `name: fancy` becomes `/my-plugin:fancy`. The bare `/fancy` also invokes the skill unless another command already uses that name. If the `name` you write already starts with the plugin's own prefix, Claude Code doesn't add the prefix again on v2.1.246 or later. For example, `name: my-plugin:fancy` still becomes `/my-plugin:fancy`. From v2.1.216 through v2.1.245, Claude Code doubled the prefix when the `name` already carried it. @@ -817,7 +818,7 @@ If the install fails, match the message Claude Code reports: * `Marketplace "claude-plugins-official" not found`: add the marketplace with `/plugin marketplace add anthropics/claude-plugins-official`, then retry the install. * The plugin is [not found in the marketplace](/docs/en/discover-plugins#install-plugins): check the plugin name. -If the install summary reports `Run /reload-plugins to activate.`, run that command to make the plugin's skills available in the current session. Then ask Claude to evaluate an existing skill, for example `evaluate my summarize-changes skill with skill-creator`. The plugin walks you through writing test cases and runs the loop: +If the install summary reports `Run /reload-plugins to activate.`, Claude Code then runs that reload for you. If the reload warns that your next message would re-read the conversation, run `/reload-plugins --force` to make the plugin's skills available in the current session. Then ask Claude to evaluate an existing skill, for example `evaluate my summarize-changes skill with skill-creator`. The plugin walks you through writing test cases and runs the loop: * **Test cases**: stores prompts, input files, and expected behavior in `evals/evals.json` inside the skill directory * **Isolated runs**: spawns a [subagent](/docs/en/sub-agents) per test case so each run starts with a clean context, and records token count and duration diff --git a/content/en/docs/claude-code/third-party-integrations.md b/content/en/docs/claude-code/third-party-integrations.md index 7d0dea912..ebfa4a198 100644 --- a/content/en/docs/claude-code/third-party-integrations.md +++ b/content/en/docs/claude-code/third-party-integrations.md @@ -219,12 +219,7 @@ If your organization uses [customer-managed encryption keys](https://platform.cl ### Invest in documentation and memory -We strongly recommend investing in documentation so that Claude Code understands your codebase. Organizations can deploy CLAUDE.md files at multiple levels: - -* **Organization-wide**: Deploy to system directories such as `/Library/Application Support/ClaudeCode/CLAUDE.md` (macOS), `/etc/claude-code/CLAUDE.md` (Linux and WSL), or `C:\Program Files\ClaudeCode\CLAUDE.md` (Windows) for company-wide standards -* **Repository-level**: Create `CLAUDE.md` files in repository roots containing project architecture, build commands, and contribution guidelines. Check these into source control so all users benefit - -Learn more in [Memory and CLAUDE.md files](/docs/en/memory). +We strongly recommend investing in documentation so that Claude Code understands your codebase. Organizations can deploy CLAUDE.md files at multiple levels. See [where CLAUDE.md files can live](/docs/en/memory#choose-where-to-put-claude-md-files) and [how to deploy an organization-wide CLAUDE.md](/docs/en/memory#deploy-organization-wide-claude-md). ### Simplify deployment diff --git a/content/en/docs/claude-code/tools-reference.md b/content/en/docs/claude-code/tools-reference.md index 5c759b533..2509d3be9 100644 --- a/content/en/docs/claude-code/tools-reference.md +++ b/content/en/docs/claude-code/tools-reference.md @@ -50,12 +50,12 @@ To add custom tools, connect an [MCP server](/docs/en/mcp). To extend Claude wit | `SendUserFile` | Sends files from the session to you with an optional caption, so a generated report, diagram, screenshot, or built artifact reaches your device instead of only being mentioned in the transcript. As of v2.1.196, the optional `display` input controls presentation: `render` opens the file inline in the client, `attach` shows a download card only, and when unset the client decides by file type. Available when a [Remote Control](/docs/en/remote-control) client is connected or the session runs in a managed cloud environment such as [Claude Code on the web](/docs/en/claude-code-on-the-web). Delivery runs through Anthropic-hosted infrastructure, so the tool is not available on Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry | No | | `ShareOnboardingGuide` | Uploads `ONBOARDING.md` and returns a share link teammates can open in Claude Code. Called from `/team-onboarding` after the guide is written. Available to claude.ai subscribers on Pro, Max, Team, and Enterprise plans | Yes | | `Skill` | Executes a [skill](/docs/en/skills#control-who-invokes-a-skill) within the main conversation | Yes | -| `TaskCreate` | Creates a new task in the task list. Claude Code leaves it out on the models listed under [Task tool availability](#task-tool-availability) unless you opt in | No | -| `TaskGet` | Retrieves full details for a specific task. Claude Code leaves it out on the models listed under [Task tool availability](#task-tool-availability) unless you opt in | No | -| `TaskList` | Lists all tasks with their current status. Claude Code leaves it out on the models listed under [Task tool availability](#task-tool-availability) unless you opt in | No | +| `TaskCreate` | Creates a new task in the task list. Provided by default only on the models listed under [Task tool availability](#task-tool-availability), and on other models when you opt in | No | +| `TaskGet` | Retrieves full details for a specific task. Provided by default only on the models listed under [Task tool availability](#task-tool-availability), and on other models when you opt in | No | +| `TaskList` | Lists all tasks with their current status. Provided by default only on the models listed under [Task tool availability](#task-tool-availability), and on other models when you opt in | No | | `TaskOutput` | Retrieves output from a background task. Deprecated in favor of `Read` on the task's output file path. When no task matches the ID, the error lists the running background agents by ID and description. Before v2.1.203, the error named only the missing ID | No | | `TaskStop` | Stops a running background task by ID. It also accepts an [agent-team teammate](/docs/en/agent-teams) or a named background agent by agent ID or name. Before v2.1.198, it accepted only a background task ID. When no task matches the ID, the error lists the running background agents by ID and description, including agents that another agent spawned. Before v2.1.203, the error listed running teammates and named agents but not background agents another agent spawned, so those couldn't be identified or stopped from the main conversation | No | -| `TaskUpdate` | Updates task status, dependencies, details, or deletes tasks. Claude Code leaves it out on the models listed under [Task tool availability](#task-tool-availability) unless you opt in | No | +| `TaskUpdate` | Updates task status, dependencies, details, or deletes tasks. Provided by default only on the models listed under [Task tool availability](#task-tool-availability), and on other models when you opt in | No | | `TodoWrite` | Manages the session task checklist. Disabled by default in favor of `TaskCreate`, `TaskGet`, `TaskList`, and `TaskUpdate`. Set `CLAUDE_CODE_ENABLE_TASKS=0` to re-enable it in [sessions that have the task-tracking tools](#task-tool-availability) | No | | `ToolSearch` | Searches for and loads deferred tools when [tool search](/docs/en/mcp#scale-with-mcp-tool-search) is enabled | No | | `WaitForMcpServers` | Waits for one or more [MCP servers](/docs/en/mcp) that are still connecting in the background, so a request can use their tools without restarting the session. Claude calls it when a needed server isn't connected yet. Only appears when [tool search](/docs/en/mcp#scale-with-mcp-tool-search) is disabled, since `ToolSearch` handles the wait when it's enabled | No | @@ -179,13 +179,7 @@ For long-running processes such as dev servers or watch builds, Claude can set ` A command that a [foreground subagent](/docs/en/sub-agents#run-subagents-in-foreground-or-background) started stops when that subagent gives its final response. A command that the main conversation or a background subagent started keeps running after a final response. In non-interactive mode with the `-p` flag, [background commands end shortly after the run's final result](/docs/en/headless#background-tasks-at-exit). -When a command reaches its timeout without finishing, Claude Code moves it to the background instead of stopping it. Claude keeps working while the command continues. Claude Code applies the same lifetime rules to a moved command as to any other background command, so it still ends a foreground subagent's command at that subagent's final response. Setting [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1`](/docs/en/env-vars#variables) disables auto-backgrounding along with the rest of the background task functionality. - -Claude Code never auto-backgrounds three kinds of command. It stops them at the timeout instead: - -* A command that starts with `sleep`. -* A command that runs `git` anywhere in it. -* A compound command Claude Code can't fully parse into simple commands. Claude Code treats a parameter expansion such as `${VAR}` as unparseable, so it stops a command that ends in `; exit "${PIPESTATUS[0]}"` at the timeout even when the rest of that command parses. +When a command reaches its timeout without finishing, Claude Code moves it to the background instead of stopping it, unless the command starts with `sleep`. Claude keeps working while the command continues. Claude Code applies the same lifetime rules to a moved command as to any other background command, so it still ends a foreground subagent's command at that subagent's final response. Setting [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1`](/docs/en/env-vars#variables) disables auto-backgrounding along with the rest of the background task functionality. The result of a command moved to the background states what happened: @@ -517,9 +511,11 @@ Claude Code includes the tool in interactive terminal sessions on your own machi ## Task tool availability -In Claude Code v2.1.233 and later, the following tools aren't available on Opus 4.8, Sonnet 5, Fable 5, Mythos 5, or later versions of those families unless you opt in: `TodoWrite`, `TaskCreate`, `TaskGet`, `TaskUpdate`, and `TaskList`. Those models keep track of multi-step work without a written checklist, and the tools' definitions and reminders take up context, so Claude Code leaves them out. Without them, Claude adds nothing to the [task list](/docs/en/interactive-mode#task-list) while it works. On any other model, such as Opus 4.7, Claude Code provides the four Task tools by default and `TodoWrite` only when you set [`CLAUDE_CODE_ENABLE_TASKS=0`](/docs/en/env-vars). +The task-tracking tools, `TaskCreate`, `TaskGet`, `TaskUpdate`, `TaskList`, and `TodoWrite`, are available by default only on Claude 3.x models, Opus 4 through 4.7, Sonnet 4 through 4.6, and Haiku 4.5. Wherever the tools are available, you get the four Task tools, or `TodoWrite` instead when you set [`CLAUDE_CODE_ENABLE_TASKS=0`](/docs/en/env-vars). -If you'd like to use these tools on one of the listed models anyway, do one of the following: +On every other model, Claude Code leaves the tools out unless you opt in. The same applies to a model ID Claude Code doesn't recognize, such as a custom model name served through an [LLM gateway](/docs/en/llm-gateway). On newer models, Claude keeps track of multi-step work without a written checklist, and the tools' definitions and reminders take up context. Without the tools, Claude adds nothing to the [task list](/docs/en/interactive-mode#task-list) while it works. + +If you'd like to use these tools on a model that doesn't have them by default, do one of the following: * Export [`CLAUDE_CODE_ENABLE_TODO_TOOLS=1`](/docs/en/env-vars) before you start Claude Code, for example `CLAUDE_CODE_ENABLE_TODO_TOOLS=1 claude`. Claude Code then provides the same tools on every model and every provider * Name one of the tools in [`--allowedTools`](/docs/en/cli-reference#cli-flags), for example `claude --allowedTools TaskCreate` @@ -530,6 +526,8 @@ In [background sessions](/docs/en/agent-view) and in [Claude Code on the web](/d Claude Code gives a subagent the tools only when your session has them, even when the subagent runs a different model. An in-process [agent team](/docs/en/agent-teams) teammate follows your session the same way, while a teammate in its own [split pane](/docs/en/agent-teams#choose-a-display-mode) runs as a separate Claude Code process, so its own model decides. Without the Task tools, an agent coordinates with its team through messages instead of the [shared task list](/docs/en/agent-teams#assign-and-claim-tasks). +The default set described here applies in Claude Code v2.1.268 and later. + ## WebFetch tool behavior WebFetch takes a URL and a prompt describing what to extract. It fetches the page, converts the response to Markdown when the server returns HTML, and runs the prompt against the content using a small, fast model. For most fetches, Claude receives that model's answer, not the raw page. The conversion step is not configurable. @@ -541,6 +539,7 @@ A few behaviors shape the response Claude receives: * HTTP URLs are automatically upgraded to HTTPS. * Large pages are truncated to a fixed character limit before processing. * WebFetch caches each response for 15 minutes by default, so repeated fetches of the same URL return quickly. On Claude Code v2.1.233 or later, set [`CLAUDE_CODE_WEBFETCH_CACHE_TTL_MS`](/docs/en/env-vars#variables) to change how long WebFetch keeps each response. +* A page that hasn't finished downloading within five minutes, including any redirects WebFetch follows, fails with a deadline error. On Claude Code v2.1.268 or later, set [`CLAUDE_CODE_WEBFETCH_DEADLINE_MS`](/docs/en/env-vars#variables) to change the limit, or to `0` to remove it. * When a URL redirects to a different host, WebFetch returns a text result that names the original URL and the redirect target instead of following it. Claude then fetches the new URL with a second WebFetch call. * When the extraction step hits an overloaded API, Claude Code retries it with backoff; a fetch that still fails returns an error result. Before v2.1.212, the API error text could reach Claude as if it were the extracted page content. diff --git a/content/en/docs/claude-code/vs-code.md b/content/en/docs/claude-code/vs-code.md index ba669264a..316759258 100644 --- a/content/en/docs/claude-code/vs-code.md +++ b/content/en/docs/claude-code/vs-code.md @@ -50,7 +50,7 @@ Once installed, you can start using Claude Code through the VS Code interface: Other ways to open Claude Code: - * **Activity Bar**: click the Spark icon in the left sidebar to open the sessions list. Click any session to open it as a full editor tab, or start a new one. This icon is always visible in the Activity Bar. + * **Activity Bar**: click the Spark icon in the left sidebar to open the sessions list. Click any session to open it in your [preferred location](#extension-settings), or start a new one. This icon is always visible in the Activity Bar. * **Command Palette**: `Cmd+Shift+P` (Mac) or `Ctrl+Shift+P` (Windows/Linux), type "Claude Code", and select an option like "Open in New Tab" * **Status Bar**: if you've set [`preferredLocation`](#extension-settings) to `sidebar`, or opened Claude with **Claude Code: Open in Side Bar**, click **✱ Claude Code** in the bottom-right corner of the window. This works even when no file is open. @@ -254,7 +254,7 @@ Switch to the **Marketplaces** tab to add or remove plugin sources: * Click the refresh icon to update a marketplace's plugin list * Click the trash icon to remove a marketplace -After you make changes, a banner prompts you to restart Claude Code to apply them. +Plugin changes you make in the dialog apply right away to the Claude Code sessions open in that VS Code window. If the session you opened the dialog from can't reload its plugins, the dialog offers to try again or to restart Claude in that session. <Note> Plugin management in VS Code uses the same CLI commands under the hood. Plugins and marketplaces you configure in the extension are also available in the CLI, and vice versa. diff --git a/content/en/manage-claude/inference-hooks-configuration.md b/content/en/manage-claude/inference-hooks-configuration.md index 0e1213c17..b4c9e4c8f 100644 --- a/content/en/manage-claude/inference-hooks-configuration.md +++ b/content/en/manage-claude/inference-hooks-configuration.md @@ -33,33 +33,36 @@ There are three enforcement states: **off** (**Enforce verdicts** is off: your A </Step> <Step title="Configure your endpoint"> - Click **Configure** to open the **Configure endpoint** dialog and fill in: + Click **Configure** to open the **Set up endpoint** dialog and enter the **Endpoint URL**: the `https://` URL that receives verdict requests. Only `https://` URLs are accepted. - * **Endpoint URL:** the `https://` URL that receives verdict requests. Only `https://` URLs are accepted. - * **Custom request headers:** up to 16 static headers sent with every verdict request so your AI security server can authenticate the caller. Header values are stored encrypted and never shown again; after saving, only the header names are displayed. Because values are write-only, saving any change to the headers requires re-entering every value. Changing the endpoint URL clears all stored header values so your credentials are never sent to a new destination; re-enter them after a URL change. Header names must use standard HTTP token characters with `-` rather than `_`, and must not collide with reserved names (request-framing headers such as `Content-*` and `Host`, proxy and cookie headers, client-address headers such as `X-Forwarded-*`, the `webhook-*` signature headers, and the `X-Anthropic-*` prefix). Values must be printable ASCII. + The dialog asks for nothing else at this point: custom request headers come in step 5, and failure handling in step 6. Click **Next** to save. Once an endpoint is saved, the button reads **Edit**. + </Step> - The dialog covers only those two fields plus **Test connection**; it doesn't ask about failure handling, which you choose in step 6. Once an endpoint is saved, the button reads **Edit**. + <Step title="Store your signing secret"> + The first save generates your webhook signing secret and reveals it once. Copy it and store it securely before clicking **Next**: the secret cannot be retrieved later, only [rotated](https://platform.claude.com/docs/en/manage-claude/inference-hooks-configuration#rotate-your-signing-secret). + + Your AI security server uses this secret to verify the signature on every request it receives, including the connection test in the next step. For the verification procedure, see [Verify the signature](https://platform.claude.com/docs/en/manage-claude/inference-hooks-endpoint#verify-the-signature). </Step> - <Step title="Test the connection"> - Click **Test connection**. Claude sends a synthetic test prompt to the URL and headers currently in the form, not the saved values, so re-enter any stored header values before testing. On success, the result reports whether your AI security server returned an allow or a deny verdict for the test prompt, which surfaces a deny-everything default before you start enforcing. + <Step title="Add request headers and test the connection"> + Clicking **Next** on the signing secret dialog reopens the endpoint dialog, now with two more controls: - Common failure results: + * **Custom request headers:** up to 16 static headers sent with every verdict request so your AI security server can authenticate the caller. Header values are stored encrypted and never shown again; after saving, only the header names are displayed. Because values are write-only, saving any change to the headers requires re-entering every value. Changing the endpoint URL clears all stored header values so your credentials are never sent to a new destination; re-enter them after a URL change. Header names must use standard HTTP token characters with `-` rather than `_`, and must not collide with reserved names (request-framing headers such as `Content-*` and `Host`, proxy and cookie headers, client-address headers such as `X-Forwarded-*`, the `webhook-*` signature headers, and the `X-Anthropic-*` prefix). Values must be printable ASCII. + * **Test connection:** Claude sends a synthetic test prompt to the URL and headers currently in the form, not the saved values, so re-enter any stored header values before testing. On success, the result reports whether your AI security server returned an allow or a deny verdict for the test prompt, which surfaces a deny-everything default before you start enforcing. - | Result | What to check | - | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | - | URL rejected | The URL failed a structural check. Use an `https://` URL on port 443. | - | Private or internal IP | The host resolves to a private or internal address. Use a publicly routable host. | - | Timeout | The AI security server did not return a verdict within the timeout. | - | Transport error | DNS resolution, the TLS handshake, or the connection failed. | - | Non-200 status | The AI security server responded with a status other than 200. Verdicts must come back as HTTP 200; redirects are not followed and count as failures. | - | Unparseable response | The AI security server responded, but the body is not a valid verdict. | - </Step> + Click **Save** to store any headers you entered. - <Step title="Save and store your signing secret"> - Save the endpoint configuration. The first save generates your webhook signing secret and reveals it once. Copy it and store it securely before closing the dialog: the secret cannot be retrieved later, only [rotated](https://platform.claude.com/docs/en/manage-claude/inference-hooks-configuration#rotate-your-signing-secret). + Common failure results: - Your AI security server uses this secret to verify the signature on every request it receives. For the verification procedure, see [Verify the signature](https://platform.claude.com/docs/en/manage-claude/inference-hooks-endpoint#verify-the-signature). + | Result | What to check | + | ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | + | URL rejected | The URL failed a structural check. Use an `https://` URL on port 443. | + | Private or internal IP | The host resolves to a private or internal address. Use a publicly routable host. | + | Timeout | The AI security server did not return a verdict within the timeout. | + | Transport error | DNS resolution, the TLS handshake, or the connection failed. | + | Non-200 status | The AI security server responded with a status other than 200. Verdicts must come back as HTTP 200; redirects are not followed and count as failures. | + | Unparseable response | The AI security server responded, but the body is not a valid verdict. | + | Signing secret required | Your organization has no signing secret, so the test would be sent unsigned. Click **Generate secret** under **Request signing**, then test again. | </Step> <Step title="Choose failure handling and timeout"> @@ -130,7 +133,7 @@ Automatic recovery runs only while your Inference hooks settings are unchanged s ## Rotate your signing secret -Click **Rotate secret** under **Request signing** to replace your signing secret. Rotation is an immediate cutover: the new secret is generated and revealed once, the old secret can no longer be retrieved, and no request is ever signed with both secrets, so there is no overlap period to rely on. +Click **Rotate secret** under **Request signing** to replace your signing secret. If your organization has no secret yet, the same button reads **Generate secret** and creates the first one. Rotation is an immediate cutover: the new secret is generated and revealed once, the old secret can no longer be retrieved, and no request is ever signed with both secrets, so there is no overlap period to rely on. Requests signed with the previous secret can still arrive briefly after rotation; [Verify the signature](https://platform.claude.com/docs/en/manage-claude/inference-hooks-endpoint#verify-the-signature) covers how your AI security server should handle the switchover. diff --git a/content/en/manage-claude/inference-hooks-endpoint.md b/content/en/manage-claude/inference-hooks-endpoint.md index d7873d65b..6070319fe 100644 --- a/content/en/manage-claude/inference-hooks-endpoint.md +++ b/content/en/manage-claude/inference-hooks-endpoint.md @@ -296,7 +296,7 @@ Two details cause most verification bugs: * **Verify raw bytes.** Compute the HMAC over the body exactly as received, before any JSON parsing or re-encoding. * **Decode the secret with a standard base64 decoder.** The signing secret is the value after the `whsec_` prefix, encoded with the standard base64 alphabet (`+` and `/`), as is the signature in the header. A URL-safe decoder derives the wrong key bytes whenever the secret contains `+` or `/`, which is most of the time. -Once your organization has a signing secret, every request Anthropic sends is signed, and [enabling Inference hooks requires one](https://platform.claude.com/docs/en/manage-claude/inference-hooks-configuration), so reject any request that arrives unsigned. One exception: a connection test sent before your organization's first save arrives unsigned, because the signing secret doesn't exist yet. Accept unsigned requests until your administrator confirms the secret exists, then reject them. +Once your organization has a signing secret, every request Anthropic sends is signed, including the connection test, because the setup flow generates the secret before the first test. [Enabling Inference hooks requires a secret](https://platform.claude.com/docs/en/manage-claude/inference-hooks-configuration), so reject any request that arrives unsigned. One exception: an organization that enabled Inference hooks before the secret was required keeps sending unsigned requests until its administrator generates one. Accept unsigned requests only until your administrator confirms the secret exists, then reject them. [Rotating the secret](https://platform.claude.com/docs/en/manage-claude/inference-hooks-configuration#rotate-your-signing-secret) is an immediate cutover, but requests signed with the previous secret can still arrive for about a minute afterward, plus anything already in flight. Have your AI security server accept signatures from both secrets during the switchover so those stragglers aren't rejected. diff --git a/content/github/skills/skills/claude-api/SKILL.md b/content/github/skills/skills/claude-api/SKILL.md index 1346a5c08..6ffb7621e 100644 --- a/content/github/skills/skills/claude-api/SKILL.md +++ b/content/github/skills/skills/claude-api/SKILL.md @@ -412,6 +412,8 @@ Availability: `shared/platform-availability.md`. For agents on Bedrock / Vertex **When the user asks "how do I write the client code for X":** reach for `shared/managed-agents-client-patterns.md` - covers lossless stream reconnect, `processed_at` queued/processed gate, interrupt, `tool_confirmation` round-trip, the correct idle/terminated break gate, post-idle status race, stream-first ordering, file-mount gotchas, etc. For credentials, lead with vault `environment_variable` credentials - the first-class mechanism; secrets are substituted at egress and never enter the sandbox (`shared/managed-agents-tools.md` -> Vaults). Keeping credentials host-side via custom tools is the fallback where vault credentials don't fit (e.g. self-hosted sandboxes). +**When the user asks about tool approvals, permission policies, or "auto mode"** (which tool calls need a human, letting the server evaluate calls, `evaluated_permission` / `evaluation` on tool-use events): read `shared/managed-agents-tools.md` § Permission Policies - `always_allow` / `always_ask` / `auto` and the three `auto` outcomes (runs, denied as high-risk, pauses when indeterminate). For attaching a terminal to a live session (`ant beta:sessions connect`): `shared/anthropic-cli.md`. + **When the user wants the agent to run on a schedule** (cron, "every night", "weekly report"): read `shared/managed-agents-scheduled-deployments.md` - deployments fire sessions autonomously on a cron cadence, with per-firing run records and lifecycle controls (pause/unpause/archive). **When the agent's work fans out** (research across several sources, per-file or per-record work, "look into N things, then summarize") **or one loop would fill its context with reading:** read `shared/managed-agents-multiagent.md` and recommend a multiagent session - start with just `{"type": "self"}` in the roster so the agent can delegate to copies of itself, then move reading-heavy sub-tasks to a cheaper worker agent (e.g. Claude Haiku 4.5) referenced by ID. diff --git a/content/github/skills/skills/claude-api/shared/anthropic-cli.md b/content/github/skills/skills/claude-api/shared/anthropic-cli.md index 1f2fa3638..8eea1e5ec 100644 --- a/content/github/skills/skills/claude-api/shared/anthropic-cli.md +++ b/content/github/skills/skills/claude-api/shared/anthropic-cli.md @@ -188,6 +188,29 @@ ant beta:sessions:events list --session-id "$SID" --transform 'content.0.text' - ant beta:sessions:events stream --session-id "$SID" # live event stream ``` +### Attach a terminal to a session (`ant beta:sessions connect`) + +`ant beta:sessions connect <session-id>` attaches your terminal to an existing session: it loads the transcript, follows it live, and lets you step in - send a message, interrupt, or allow/deny a tool call that is waiting for approval. Ctrl+C detaches; the session keeps running, and reconnecting reloads the full history. Read-only if the session is `terminated` or archived. + +```sh +ant beta:sessions connect sesn_011CZkZAtmR3yMPDzynEDxu7 # terminal view +ant beta:sessions connect sesn_011CZkZAtmR3yMPDzynEDxu7 --web # Console session viewer, served locally +``` + +| Key | Action | +|---|---| +| Enter | Send input as a `user.message` (Alt+Enter / Ctrl+J for a newline) | +| Esc | Interrupt the running agent (`user.interrupt`) | +| Ctrl+O | Toggle detail: tool inputs/results, token usage, status events (`--verbose` / `-v` starts expanded) | +| PgUp / PgDn | Scroll; scrolling up pauses following, End resumes | +| Ctrl+C (or Ctrl+D on empty input) | Detach | + +When a call is waiting for approval (`always_ask`, or `auto` with no determination), the input line becomes **Allow tool call?** with **Yes** / **No** / **No, and tell the agent why** - the CLI sends `user.tool_confirmation`, with your typed reason as `deny_message`. In multiagent sessions the terminal view follows the primary thread only (which includes coordinator<->subagent messages). + +`--web` serves the Console's session viewer from a local server on `127.0.0.1`, prints the URL, and opens the browser (`--no-browser` to skip). The URL works once, within two minutes (reloading that tab is fine; to open it elsewhere, run the command again). The page talks only to the local `ant` process, which makes the API calls, so credentials never leave the CLI; the server runs until Ctrl+C. Unlike the terminal view, the browser viewer follows every thread of a multiagent session. + +Needs an interactive terminal (except `--web`) - for scripts use `ant beta:sessions:events stream` / `send`, below. + ### Interactive session loop (stream-before-send) `ant beta:sessions:events stream` only delivers events emitted *after* the stream opens - so open it **before** sending the kickoff to avoid missing early events. Use process substitution to hold the stream on a file descriptor, send, then read: diff --git a/content/github/skills/skills/claude-api/shared/live-sources.md b/content/github/skills/skills/claude-api/shared/live-sources.md index 918dec589..92434f657 100644 --- a/content/github/skills/skills/claude-api/shared/live-sources.md +++ b/content/github/skills/skills/claude-api/shared/live-sources.md @@ -105,7 +105,7 @@ Use these when a managed-agents binding, behavior, or wire-level detail isn't co | Events and Streaming | `https://platform.claude.com/docs/en/managed-agents/events-and-streaming.md` | "Extract event stream types, stream-first ordering, reconnect/dedupe, and steering patterns" | | Tools | `https://platform.claude.com/docs/en/managed-agents/tools.md` | "Extract built-in toolset, custom tool definitions, and tool result wire format" | | Files | `https://platform.claude.com/docs/en/managed-agents/files.md` | "Extract file upload, mount paths, session resources, and listing/downloading session outputs" | -| Permission Policies | `https://platform.claude.com/docs/en/managed-agents/permission-policies.md` | "Extract permission policy types (allow/deny/confirm) and per-tool config" | +| Permission Policies | `https://platform.claude.com/docs/en/managed-agents/permission-policies.md` | "Extract permission policy types (`always_allow` / `always_ask` / `auto`), the three `auto` outcomes, the `evaluated_permission` + `evaluation` event fields, and per-tool config" | | Multi-Agent | `https://platform.claude.com/docs/en/managed-agents/multiagent-orchestration.md` | "Extract multi-agent composition patterns, sub-agent invocation, and result handoff" | | Observability | `https://platform.claude.com/docs/en/managed-agents/observability.md` | "Extract logging, tracing, and usage telemetry exposed by managed agents" | | Webhooks | `https://platform.claude.com/docs/en/managed-agents/webhooks.md` | "Extract webhook endpoint registration, HMAC signature verification, supported event types, and delivery semantics" | @@ -125,6 +125,7 @@ The `ant` CLI provides terminal access to the Claude API. Every API resource is | Topic | URL | Extraction Prompt | | ------------- | ------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | | Anthropic CLI | `https://platform.claude.com/docs/en/api/sdks/cli.md` | "Extract CLI install, authentication, command structure, and the beta:agents/environments/sessions commands" | +| `ant beta:sessions connect` | `https://platform.claude.com/docs/en/cli-sdks-libraries/cli/sessions-connect.md` | "Extract the interactive session viewer: keybindings, tool-call allow/deny prompt, `--web` local viewer and its URL/lifetime rules" | | Authentication overview | `https://platform.claude.com/docs/en/manage-claude/authentication.md` | "Extract the credential options (API keys, interactive OAuth login, Workload Identity Federation) and when to use each" | | WIF reference | `https://platform.claude.com/docs/en/manage-claude/wif-reference.md` | "Extract credential precedence order, the profile configuration file schema, and the configuration directory layout" | diff --git a/content/github/skills/skills/claude-api/shared/managed-agents-client-patterns.md b/content/github/skills/skills/claude-api/shared/managed-agents-client-patterns.md index 96fd91624..b50b68278 100644 --- a/content/github/skills/skills/claude-api/shared/managed-agents-client-patterns.md +++ b/content/github/skills/skills/claude-api/shared/managed-agents-client-patterns.md @@ -81,11 +81,11 @@ Reference: `interrupt.ts` - sends the interrupt the moment it sees `span.model_r ## 4. `tool_confirmation` round-trip -When the agent has `permission_policy: { type: 'always_ask' }`, any call to that tool fires an `agent.tool_use` event with `evaluated_permission === 'ask'` and the session goes idle waiting for a decision. Respond with `user.tool_confirmation`. +When a call evaluates to `ask` - the tool has `permission_policy: { type: 'always_ask' }`, or it has `{ type: 'auto' }` and the server reached no determination - the `agent.tool_use` / `agent.mcp_tool_use` event carries `evaluated_permission === 'ask'` and the session goes idle waiting for a decision. Respond with `user.tool_confirmation`. ```ts for await (const event of stream) { - if (event.type === 'agent.tool_use' && event.evaluated_permission === 'ask') { + if ((event.type === 'agent.tool_use' || event.type === 'agent.mcp_tool_use') && event.evaluated_permission === 'ask') { await client.beta.sessions.events.send(session.id, { events: [{ type: 'user.tool_confirmation', @@ -101,7 +101,9 @@ for await (const event of stream) { Key points: - `tool_use_id` is `event.id` (typically `sevt_...`), **not** a `toolu_...` ID. - `result` is `'allow' | 'deny'`. Use `deny_message` to tell the model *why* you denied - it gets surfaced back to the agent. -- Multiple pending tools: respond once per `agent.tool_use` event with `evaluated_permission === 'ask'`. +- Multiple pending tools: respond once per `agent.tool_use` / `agent.mcp_tool_use` event with `evaluated_permission === 'ask'`. +- Gate on `evaluated_permission === 'ask'`, not on the policy you configured - it covers `always_ask` and `auto`-indeterminate alike. Calls the server **denies** under `auto` (`evaluated_permission === 'deny'`, `evaluation.evaluated_permission.reason_code === 'high_risk'`) never enter this flow: the agent gets an error tool result and the session keeps running; sending a confirmation for one is a 400. +- Log `event.evaluation` for audit (`type` + `reason_code`), and tolerate a `type` or `reason_code` you don't recognize - branch on known values, pass unknown ones through. Reference: `tool-permissions.ts`. @@ -123,7 +125,7 @@ for await (const event of stream) { ``` `stop_reason.type` values on `session.status_idle`: -- `requires_action` - agent is waiting on a client-side event (tool confirmation, custom tool result). Handle it, don't break. **Self-hosted exception:** if the session went `requires_action`-idle with no pending `agent.tool_use` (always_ask) or `agent.custom_tool_use` to answer, the worker failed the claimed work item (typically a memory-store mount error, logged only on the worker host). Don't `continue` forever on that - surface it, fix the host, and send `user.interrupt` to re-queue the work (`shared/managed-agents-self-hosted-sandboxes.md` § Memory stores -> Troubleshooting). +- `requires_action` - agent is waiting on a client-side event (tool confirmation, custom tool result). Handle it, don't break. **Self-hosted exception:** if the session went `requires_action`-idle with no pending `agent.tool_use` / `agent.mcp_tool_use` (`ask`) or `agent.custom_tool_use` to answer, the worker failed the claimed work item (typically a memory-store mount error, logged only on the worker host). Don't `continue` forever on that - surface it, fix the host, and send `user.interrupt` to re-queue the work (`shared/managed-agents-self-hosted-sandboxes.md` § Memory stores -> Troubleshooting). - `retries_exhausted` - terminal failure. Break, then check `sessions.retrieve()` for the error state. - `end_turn` - normal completion. - `budget_reached` - the session hit its spend cap and paused. Not terminal and not resumable by any event: change (typically raise) or remove the session's `budget` to resume, or treat it as done. A `session.usage` event with the final cost immediately precedes this idle. See `shared/managed-agents-core.md` § Session budgets. diff --git a/content/github/skills/skills/claude-api/shared/managed-agents-events.md b/content/github/skills/skills/claude-api/shared/managed-agents-events.md index 7465288a6..657a69fd0 100644 --- a/content/github/skills/skills/claude-api/shared/managed-agents-events.md +++ b/content/github/skills/skills/claude-api/shared/managed-agents-events.md @@ -10,7 +10,7 @@ Send events to a session via `POST /v1/sessions/{id}/events`. | ------------------------- | --------------------------------------------------- | | `user.message` | Send a user message | | `user.interrupt` | Interrupt the agent while it's running | -| `user.tool_confirmation` | Approve/deny a tool call (when `always_ask` policy) | +| `user.tool_confirmation` | Approve/deny a tool call that paused for approval (`always_ask`, or `auto` when the server reached no determination) | | `user.custom_tool_result` | Provide result for a custom tool call | | `user.define_outcome` | Start a rubric-graded iterate loop - see `shared/managed-agents-outcomes.md` | | `system.message` | Append privileged system-level context for this turn and every turn after it; see § Adding system context mid-session | @@ -63,9 +63,9 @@ Event types use dot notation, grouped by namespace: | --- | --- | | `agent.message` | Agent text output | | `agent.thinking` | Progress signal that the agent is thinking - it does **not** carry the thinking content | -| `agent.tool_use` | Agent used a built-in tool (`agent_toolset_20260401`) | +| `agent.tool_use` | Agent used a built-in tool (`agent_toolset_20260401`). Carries `evaluated_permission` (`allow`/`ask`/`deny`) and usually `evaluation` - see `shared/managed-agents-tools.md` § `evaluated_permission` and `evaluation` | | `agent.tool_result` | Result from a built-in tool | -| `agent.mcp_tool_use` | Agent used an MCP tool | +| `agent.mcp_tool_use` | Agent used an MCP tool. Carries `evaluated_permission` and usually `evaluation`, same as `agent.tool_use` | | `agent.mcp_tool_result` | Result from an MCP tool | | `agent.custom_tool_use` | Agent invoked a custom tool - session goes idle, you respond with `user.custom_tool_result` | | `agent.thread_context_compacted` | Conversation context was compacted | diff --git a/content/github/skills/skills/claude-api/shared/managed-agents-multiagent.md b/content/github/skills/skills/claude-api/shared/managed-agents-multiagent.md index 2c0d8fbc0..d33052e10 100644 --- a/content/github/skills/skills/claude-api/shared/managed-agents-multiagent.md +++ b/content/github/skills/skills/claude-api/shared/managed-agents-multiagent.md @@ -25,7 +25,7 @@ agent = client.beta.agents.create( session = client.beta.sessions.create(agent=agent.id, environment_id=env.id) # unchanged ``` -**Step 2 - move the reading-heavy work to a cheaper model.** Delegated research work is mostly searching, reading, and extracting: many input tokens, little hard reasoning. Create a second agent on a smaller model with a narrow `system` prompt and only the tools it needs, and list it next to `self`. A roster entry is only a reference: the worker runs on its own `model`, `system`, and `tools`, and its tokens are billed at its own model's rates. The large model spends its tokens on planning, checking, and synthesis; the small model does the bulk reading. +**Step 2 - move the reading-heavy work to a cheaper model.** Delegated research work is mostly searching, reading, and extracting: many input tokens, little hard reasoning. Create a second agent on a smaller current-generation model (Claude Haiku 4.5, or Claude Sonnet 5 when the worker needs more judgment) with a narrow `system` prompt and only the tools it needs, and list it next to `self`. A roster entry is only a reference: the worker runs on its own `model`, `system`, and `tools`, and its tokens are billed at its own model's rates. The large model spends its tokens on planning, checking, and synthesis; the small model does the bulk reading. ```python worker = client.beta.agents.create( @@ -222,7 +222,7 @@ No `agent.tool_use` and no `agent.thread_message_sent` are emitted for a consult ## Tool permissions and custom tools from subagent threads -When a subagent needs your client (an `always_ask` confirmation, or a custom tool result), the request is **cross-posted to the primary thread** with `session_thread_id` identifying the originating thread - so you only need to watch the session stream. Reply with `user.tool_confirmation` (carrying `tool_use_id`) or `user.custom_tool_result` (carrying `custom_tool_use_id`), and **echo the `session_thread_id` from the originating event** (the SDK param type and docstring expect it). The server also routes by the tool-use ID, so the echo is belt-and-suspenders rather than load-bearing - but include it. +When a subagent needs your client (a tool call that paused for approval - `always_ask`, or `auto` with no determination - or a custom tool result), the request is **cross-posted to the primary thread** with `session_thread_id` identifying the originating thread - so you only need to watch the session stream. Reply with `user.tool_confirmation` (carrying `tool_use_id`) or `user.custom_tool_result` (carrying `custom_tool_use_id`), and **echo the `session_thread_id` from the originating event** (the SDK param type and docstring expect it). The server also routes by the tool-use ID, so the echo is belt-and-suspenders rather than load-bearing - but include it. ```python for event_id in stop.event_ids: @@ -239,6 +239,8 @@ for event_id in stop.event_ids: The same pattern applies to `user.custom_tool_result`. +**`auto` in multiagent sessions.** Only your `user.message` events on the primary thread can lead the server to allow a call it would otherwise deny under `auto`; nothing in a subagent's thread carries that weight (your client posts no messages there, and the coordinator's messages to the subagent carry none). A call the server denies under `auto` is **not** cross-posted - its event and the error tool result appear only on the subagent's own thread stream, and the subagent keeps running. + --- ## Interrupting and archiving threads diff --git a/content/github/skills/skills/claude-api/shared/managed-agents-tools.md b/content/github/skills/skills/claude-api/shared/managed-agents-tools.md index fdb52de9d..d418e04d3 100644 --- a/content/github/skills/skills/claude-api/shared/managed-agents-tools.md +++ b/content/github/skills/skills/claude-api/shared/managed-agents-tools.md @@ -67,12 +67,13 @@ Override defaults for individual tools. This example enables everything except b ### Permission Policies -Control when server-executed tools (agent toolset + MCP) run automatically vs wait for approval. Does not apply to custom tools. +Control whether server-executed tools (agent toolset + MCP) run automatically, wait for your approval, or have each call evaluated by the server. Does not apply to custom tools (your application executes those). | Policy | Behavior | |---|---| -| `always_allow` | Tool executes automatically (default) | -| `always_ask` | Session emits `session.status_idle` and pauses until you send a `user.tool_confirmation` event | +| `always_allow` | Tool executes automatically. Default for the agent toolset. | +| `always_ask` | Session emits `session.status_idle` (`stop_reason.type: requires_action`) and pauses until you send a `user.tool_confirmation` event. Default for MCP toolsets. | +| `auto` | The server evaluates each call (tool + input + session content so far) and **runs it, denies it, or pauses for your approval**. Neither toolset kind defaults to `auto`. See § `auto` below. | ```json { @@ -87,14 +88,83 @@ Control when server-executed tools (agent toolset + MCP) run automatically vs wa } ``` -**Responding to `always_ask`:** Send a `user.tool_confirmation` event with `tool_use_id` from the triggering `agent_tool_use`/`mcp_tool_use` event: +**Responding to `always_ask`** (and to `auto` calls that pause): send a `user.tool_confirmation` event with `tool_use_id` set to the **event ID** (`sevt_...`, not a `toolu_` ID) of the triggering `agent.tool_use` / `agent.mcp_tool_use` event. Several confirmations can go in one `events` request: ```json { "type": "user.tool_confirmation", "tool_use_id": "sevt_abc123", "result": "allow" } -{ "type": "user.tool_confirmation", "tool_use_id": "sevt_def456", "result": "deny", "message": "Read .env.example instead" } +{ "type": "user.tool_confirmation", "tool_use_id": "sevt_def456", "result": "deny", "deny_message": "Read .env.example instead" } ``` -The optional `message` on a deny is delivered to the agent so it can adjust its approach. +The optional `deny_message` on a deny is delivered to the agent as the rejected tool result so it can adjust its approach. A `user.tool_confirmation` for an event whose `evaluated_permission` is not `"ask"` is rejected with a 400 - that includes calls the server denied under `auto`; your client cannot override them. + +#### `auto` - let the server evaluate each call + +Set `{"type": "auto"}` anywhere a `permission_policy` is accepted: a toolset's `default_config` or an individual `configs` entry, on the agent toolset or an `mcp_toolset`. Because the evaluation considers the call's input and the session's content up to that point, two calls to the same tool can be treated differently. Each call has exactly one of three outcomes: + +| Outcome | What happens | +|---|---| +| **Runs** | Server determined the call is safe - executes as under `always_allow`, without reaching your client. | +| **Denied** | Server evaluated the call as high-risk - the tool does not run. The agent receives an error tool result (`Permission to use {tool_name} has been denied.`, `is_error: true`), the session **keeps running**, and your client cannot override the denial. | +| **Pauses** | Server reached no determination - the session pauses exactly as under `always_ask`; respond with `user.tool_confirmation`. | + +```json +{ + "name": "Ops Agent", + "model": "claude-opus-5", + "mcp_servers": [{ "type": "url", "name": "github", "url": "https://mcp.example.com/github" }], + "tools": [ + { + "type": "agent_toolset_20260401", + "default_config": { "permission_policy": { "type": "auto" } }, + "configs": [{ "name": "bash", "permission_policy": { "type": "always_ask" } }] + }, + { + "type": "mcp_toolset", + "mcp_server_name": "github", + "default_config": { "permission_policy": { "type": "auto" } } + } + ] +} +``` + +Pass the same shape as an untyped dict / object literal / hash in Python, TypeScript, and Ruby. The typed SDKs (Go, Java, C#, PHP) need a generated type for the `auto` policy that ships with each SDK's release of the feature - until then, build the request in an untyped language or via cURL / `ant`. Python and TypeScript also only type-check `{"type": "auto"}` from the release that adds it (the wire API accepts it regardless). + +**What the evaluation trusts.** The server treats session content as material to assess, not instructions to follow. Text you post in `user.message` events (including end-user text you relay there) counts as *your intent* and can lead the server to allow a call it would otherwise deny - though some calls are evaluated as high-risk regardless. The same words in a tool result, a fetched webpage, an MCP server response, or a message between session threads carry no such weight. If you relay untrusted end-user input in `user.message`, the server reads it as your intent too and it can get a call allowed - put `always_ask` on the tools you would not let that end user run without review. + +> **`auto` is not a human checkpoint.** A call the server determines to be safe runs before any person sees it, and its effects may not be reversible. If a person must review a tool's calls before they run, use `always_ask` on that tool. + +#### `evaluated_permission` and `evaluation` - see how each call was evaluated + +Under **any** policy, each `agent.tool_use` and `agent.mcp_tool_use` event carries `evaluated_permission` (`"allow" | "ask" | "deny"`) - the outcome of the permission check. Most events also carry an `evaluation` object whose `type` names the policy that produced the outcome; under `auto` it adds the server's determination and, for `ask` / `deny`, a `reason_code`: + +```json +{ + "type": "agent.tool_use", + "id": "sevt_01pqr...", + "name": "bash", + "input": { "command": "rm -rf /workspace/reports" }, + "evaluated_permission": "deny", + "evaluation": { + "type": "auto", + "evaluated_permission": { "type": "deny", "reason_code": "high_risk" } + }, + "processed_at": "2026-03-25T14:05:12Z" +} +``` + +| `evaluation` | Top-level `evaluated_permission` | Meaning | +|---|---|---| +| `{"type": "always_allow"}` | `"allow"` | Resolved policy is `always_allow`; the call ran. | +| `{"type": "always_ask"}` | `"ask"` | Resolved policy is `always_ask`; paused for your approval. | +| `{"type": "auto", "evaluated_permission": {"type": "allow"}}` | `"allow"` | Server determined the call safe; it ran. | +| `{"type": "auto", "evaluated_permission": {"type": "ask", "reason_code": "indeterminate"}}` | `"ask"` | Server reached no determination; paused for your approval. | +| `{"type": "auto", "evaluated_permission": {"type": "deny", "reason_code": "high_risk"}}` | `"deny"` | Server evaluated the call as high-risk and denied it. | + +- On the `auto` form the nested `evaluated_permission.type` always equals the event's top-level `evaluated_permission`. +- `reason_code` is for your client to branch on and keep in audit records - not text to show end users. +- `evaluation` is **absent** when the agent names a tool that isn't enabled in the session (server denies without evaluating any policy: `evaluated_permission: "deny"`, no `evaluation`) and on events recorded before the field existed (read those as `always_allow` for `"allow"`, `always_ask` for `"ask"`). +- Write your client to tolerate an `evaluation.type` or `reason_code` it doesn't recognize. +- `agent.custom_tool_use` events carry neither field (custom tools aren't governed by permission policies). To enable only specific tools, flip the default off and opt-in per tool: diff --git a/content/support/10310342-how-do-i-log-out-of-all-active-sessions.md b/content/support/10310342-how-do-i-log-out-of-all-active-sessions.md index 64d0fbde4..aa9a4b1b0 100644 --- a/content/support/10310342-how-do-i-log-out-of-all-active-sessions.md +++ b/content/support/10310342-how-do-i-log-out-of-all-active-sessions.md @@ -38,7 +38,7 @@ To regain access to your account on any device, you'll need to authenticate agai If you used your Claude account to authenticate into Claude Code, you can manage your authorization tokens by navigating to **[Settings > Claude Code](https://claude.ai/settings/claude-code)**. To remove a token and log out of Claude Code, click the trash can icon. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1608263923/b4fa7d6f6f08f2adffb4ea63bc58/image+%287%29.png?expires=1789067700&signature=0d187b0cba86763c8166d125aff78544220517b14b0d726efb36e2735814db90&req=dSYnHst4nohdWvMW1HO4zVuHihX90GC8AQofdwM8qVdV6HMcDRlQJ89KlXRl%0AwOqs1zSfDDFAHnhGEe8%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1608263923/b4fa7d6f6f08f2adffb4ea63bc58/image+%287%29.png?expires=1789105500&signature=153a95658cd347ab281f19a2a68f5d119769791e022235b51e8ecae3bfd0b897&req=dSYnHst4nohdWvMW1HO4zVuHihX81mK%2BAQofdwM8qVfpxyKobeW86jPlQGcS%0AcQEkpzabAoN8gg3B%2F%2Fo%3D%0A) ## Unable to access your account? diff --git a/content/support/10366376-how-can-i-delete-my-claude-console-account.md b/content/support/10366376-how-can-i-delete-my-claude-console-account.md index d6dd72641..99a12e738 100644 --- a/content/support/10366376-how-can-i-delete-my-claude-console-account.md +++ b/content/support/10366376-how-can-i-delete-my-claude-console-account.md @@ -36,7 +36,7 @@ If you followed the steps above to delete your Console organization but want to If you have an outstanding balance, you will see a message during the deletion flow that prompts you to pay the balance first by routing you to [Settings > Billing](https://platform.claude.com/settings/billing). -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1973957766/5c2dd87c0818a0400099a833c9b3/4cc3130a-f696-4967-9fe3-e5623c6f02bd?expires=1789067700&signature=19f1ca4b5c7fc0dfbf7e605435d07e9dea19655e70ff3a5076f33749e1521397&req=dSkgFcB7moZZX%2FMW1HO4zbYXUB5iWuMcFZRyvJPpBZ%2FZ%2B8YPrPDBAxNKURAm%0AllDI7t4BAlXuwh96lS0%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1973957766/5c2dd87c0818a0400099a833c9b3/4cc3130a-f696-4967-9fe3-e5623c6f02bd?expires=1789105500&signature=b645b26cfeed804b3d63d58a549c8603369ce819f6bb3541b7394f9463627090&req=dSkgFcB7moZZX%2FMW1HO4zbYXUB5jXOEeFZRyvJPpBZ8M9kjiV7HkOAo4WXo%2B%0AySJJltRsYBckivbtgo4%3D%0A) You must pay this outstanding balance before you’re able to move forward with the deletion process. @@ -44,6 +44,6 @@ You must pay this outstanding balance before you’re able to move forward with There are some scenarios where you will need to contact our team to delete your account. If this is the case, it will be noted when you try to delete your organization: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1973957765/19dda72a40db95d78c00c27a1a1c/6ce89be6-93ce-409c-bbea-d34be09db348?expires=1789067700&signature=3350079acf0ca8fec8a1df209ea52095e2a6f045429e13f90b586e723d4620f3&req=dSkgFcB7moZZXPMW1HO4zRW12%2BzNfqP%2BZxDZGlqR6GhtfOVdk4BkzTJQyozs%0ANUFqWzbxxQlkAIx1RFw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1973957765/19dda72a40db95d78c00c27a1a1c/6ce89be6-93ce-409c-bbea-d34be09db348?expires=1789105500&signature=60ade52acb32410d0b946c38a24ebea5d878c9010206f7a466724695e961c689&req=dSkgFcB7moZZXPMW1HO4zRW12%2BzMeKH8ZxDZGlqR6GiRqCYWc7FSNdxY%2Bcba%0A62bXALTFppwghX%2FUmIk%3D%0A) If you are seeing this message, this indicates that your Console organization cannot be deleted via the self-service pathway. \ No newline at end of file diff --git a/content/support/10504844-manage-user-feedback-settings-on-team-and-enterprise-plans.md b/content/support/10504844-manage-user-feedback-settings-on-team-and-enterprise-plans.md index 4f92aecea..510f49899 100644 --- a/content/support/10504844-manage-user-feedback-settings-on-team-and-enterprise-plans.md +++ b/content/support/10504844-manage-user-feedback-settings-on-team-and-enterprise-plans.md @@ -6,6 +6,6 @@ As a Primary Owner or Owner of a Team or Enterprise plan, you can manage the abi 2. Use the toggle to change the **Rate chats** setting for your organization: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2058292603/75752add0bed6a9f3ab217f01708/CleanShot%2B2026-02-12%2Bat%2B08_55_14-402x.png?expires=1789067700&signature=36babdb26a1e2c4aa0004c8f1ffd001e1f1c148f370297d60bb94903b24c3ac8&req=diAiHst3n4dfWvMW1HO4zYGm8i4cFq%2FL085gFtEpvcTTmpBKH887F0iE4zx0%0AjkaoCIyjvdRb9tO6mX4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2058292603/75752add0bed6a9f3ab217f01708/CleanShot%2B2026-02-12%2Bat%2B08_55_14-402x.png?expires=1789105500&signature=52015bbc7363634f60c782758f8a2057a5b7ba163eccf56f780078e23e068464&req=diAiHst3n4dfWvMW1HO4zYGm8i4dEK3J085gFtEpvcSrKKy2kKbPmRKxncMm%0Ag3nsi5JmMsFnYQW7Ip8%3D%0A) More information on how Anthropic collects, uses, and stores feedback data can be found in our Privacy Center: **[How long do you store my organization’s data?](https://privacy.claude.com/en/articles/7996866-how-long-do-you-store-my-organization-s-data)** \ No newline at end of file diff --git a/content/support/10504853-manage-user-feedback-settings-on-claude-console.md b/content/support/10504853-manage-user-feedback-settings-on-claude-console.md index 9280498aa..b0232d2e6 100644 --- a/content/support/10504853-manage-user-feedback-settings-on-claude-console.md +++ b/content/support/10504853-manage-user-feedback-settings-on-claude-console.md @@ -8,6 +8,6 @@ To manage feedback for your Console organization: 2. Toggle the feedback switch on or off. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1729186182/ebf4032a12a8c56959ca927726ce/Screenshot+2025-09-16+at+12_32_31%E2%80%AFPM.png?expires=1789067700&signature=73ce93bf2b1a86e2725aedf435b47309e77f1266883029847bfa12c468df3d31&req=dSclH8h2m4BXW%2FMW1HO4zVpN5H4dX29CJ%2FadMup7FQdF9WyHRkF0G5o4jtcP%0Ac8J%2FsuNsqK%2FihALgtX4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1729186182/ebf4032a12a8c56959ca927726ce/Screenshot+2025-09-16+at+12_32_31%E2%80%AFPM.png?expires=1789105500&signature=380bec63558a7e9f3a032211272fba2b5d4c0498690af41940b27c45f8860844&req=dSclH8h2m4BXW%2FMW1HO4zVpN5H4cWW1AJ%2FadMup7FQfZFO%2Bhab2%2BIhUvHrFg%0AppxbbhcFYtklfi3Wzsc%3D%0A) More information on how Anthropic collects, uses, and stores feedback data can be found in our Privacy Center: [How long do you store my organization’s data?](https://privacy.claude.com/en/articles/7996866-how-long-do-you-store-my-organization-s-data) \ No newline at end of file diff --git a/content/support/10593882-share-and-unshare-chats.md b/content/support/10593882-share-and-unshare-chats.md index 94914b39d..dc0ae5f96 100644 --- a/content/support/10593882-share-and-unshare-chats.md +++ b/content/support/10593882-share-and-unshare-chats.md @@ -38,12 +38,12 @@ To unshare a chat: Users on free, Pro, or Max plans can review a log of shared chats by navigating to **[Settings > Privacy](https://claude.ai/settings/data-privacy-controls)**. Find the **Privacy settings** section and click “Manage” next to **Shared chats:** -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1921669913/7cc7be48cfc7a18f9f469d6cd83c/CleanShot+2026-01-08+at+10_20_43%402x.png?expires=1789067700&signature=6f22f0af4d20c5bd29ce97fd9d0c1b4285efb56edbddacf5e8ced84a1c9626e9&req=dSklF894lIheWvMW1HO4zWn5HzodZEJsc9cNIYuX0GFiU4ekk4hdiy7Z2ScO%0ATrRL4ojgi%2BAvyX%2Fg3ME%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1921669913/7cc7be48cfc7a18f9f469d6cd83c/CleanShot+2026-01-08+at+10_20_43%402x.png?expires=1789105500&signature=907bdd6ee3ac1398539911f9025019d5500e502fe9c2eab1b2b4cdc045bf02ad&req=dSklF894lIheWvMW1HO4zWn5HzocYkBuc9cNIYuX0GFHPHOAOX2kKhipjGg0%0AOQRGUZSoVhtkBqmjxSk%3D%0A) This will open a **Shared chats** modal listing the title, date shared, and link to each chat, allowing you to easily review and access all your previously-shared content. From here, you also have the option to click “Unshare” next to each listed chat to revoke access to the last snapshot you shared: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1624243810/e6fe1d262597446c7fe21dff9f10/AD_4nXdW-GhByF8uKV7fCq9lTbkVB91FglSL6TSyXAOUk_MLcTV9YsEMBMkm9rgm1oXqv0k3sJh1JhlzZP6tHVkKbDJJ71pDRRtM3aVNG64MDuKDIzgmknh-XDZdNa7biTsTdwGoPr5GRg?expires=1789067700&signature=42137ee1bea09108419c3b5e08f9d1fccebdff15e1422a1dae8bfce09cfddf6b&req=dSYlEst6noleWfMW1HO4ze44eC5hkhU5guvTv9woD7ai9nwP2zNzdzvnkTjC%0AmKAIRdPxYZUefz5YcZk%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1624243810/e6fe1d262597446c7fe21dff9f10/AD_4nXdW-GhByF8uKV7fCq9lTbkVB91FglSL6TSyXAOUk_MLcTV9YsEMBMkm9rgm1oXqv0k3sJh1JhlzZP6tHVkKbDJJ71pDRRtM3aVNG64MDuKDIzgmknh-XDZdNa7biTsTdwGoPr5GRg?expires=1789105500&signature=08c9fa90220cfd30a88cff3037ad1f86fac2d402a74dd7f85dfbcecd9f10cc29&req=dSYlEst6noleWfMW1HO4ze44eC5glBc7guvTv9woD7aZdBBgEOsP9eOSfE3R%0AsvUTanZaBDHnj9u%2Fk8M%3D%0A) If you don’t have any shared chat snapshots, the **Shared chats** modal will show “No shared content found”: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1624243808/b025db8e598f0c88fb16d83d48d5/AD_4nXeUwCKnmFzzrjMHhfr5By4zk5pJlkEn3wbJ8-aNfu13Yl99IjBywpqPx9G07QRzpH1EwRY7uG7Q9m9fib98Gql1cIV7XwUCTzEgBNu79Ey8tCOS5CEVmwveIcEOxJ4fonBhe3g9MA?expires=1789067700&signature=cb1da06efc064676d7bc7af93049bcc3e544c9595a6c089b3fe9d0eda0e79244&req=dSYlEst6nolfUfMW1HO4zdaFncx0h462DeZsm0Gz1Hvp0A7Zuc7OOhZZDP2D%0Azz8XwVoCMe%2BUM7XIEZQ%3D%0A) \ No newline at end of file +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1624243808/b025db8e598f0c88fb16d83d48d5/AD_4nXeUwCKnmFzzrjMHhfr5By4zk5pJlkEn3wbJ8-aNfu13Yl99IjBywpqPx9G07QRzpH1EwRY7uG7Q9m9fib98Gql1cIV7XwUCTzEgBNu79Ey8tCOS5CEVmwveIcEOxJ4fonBhe3g9MA?expires=1789105500&signature=bee4bfb356b1aa4824098cb4756a49318d130faabc756a2834ac989527f3d6f5&req=dSYlEst6nolfUfMW1HO4zdaFncx1gYy0DeZsm0Gz1Hu%2F%2B2sAoCTgeQ0uFCFE%0Adi4wvxDg3dBM7FNqQX8%3D%0A) \ No newline at end of file diff --git a/content/support/10684626-enable-and-use-web-search.md b/content/support/10684626-enable-and-use-web-search.md index 75a3dfd58..3e8b8ad9c 100644 --- a/content/support/10684626-enable-and-use-web-search.md +++ b/content/support/10684626-enable-and-use-web-search.md @@ -86,7 +86,7 @@ Claude can also display interactive content in search results. For more detailed ## Manage usage on free Claude accounts -As a free user, you have daily usage limits for Claude. Since web search and fetch both contribute to these limits, here are some tips to make the most of your capacity: +As a free user, you have usage limits that reset every five hours. Since web search and fetch both contribute to these limits, here are some tips to make the most of your capacity: - **Be mindful of direct links:** Before asking Claude to analyze a long article via its URL, consider whether you need the full analysis or just key points. @@ -132,7 +132,7 @@ You can re-enable it anytime you need current information. - Search times may vary based on query complexity. -- Usage of web search and web fetch counts toward your daily limits. +- Usage of web search and web fetch counts toward your usage limits. ## Support diff --git a/content/support/10949351-getting-started-with-local-mcp-servers-on-claude-desktop.md b/content/support/10949351-getting-started-with-local-mcp-servers-on-claude-desktop.md index 54405b979..75544f690 100644 --- a/content/support/10949351-getting-started-with-local-mcp-servers-on-claude-desktop.md +++ b/content/support/10949351-getting-started-with-local-mcp-servers-on-claude-desktop.md @@ -48,7 +48,7 @@ for specific instructions. Custom desktop extensions uploads allow Team and Enterprise plans to leverage organization-specific workflows that aren’t available in the public directory. After creating a custom desktop extension, Owners and Primary Owners can navigate to Settings > Extensions within Claude Desktop and click “Advanced settings” to access the **Extension Developer** section: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1681607607/ba6e379d2769d190f0970a0adaed/AD_4nXd4aZkqjJFpiXMPF28Pih7HmSJ9pPsnoWAfVgiLdFRFiTkO92YtXteIjvDHaPl7T0tjfpRTBOlyrMbQ_aciCNDgfIuEvV3szmKvt72x5O51DMSClXOYWk1JIRIzylwkj3joXqZcLw?expires=1789067700&signature=7ef6592c097567ea9044cdf326254fc3e8c990b6731a737ed48c5a37a86b0e18&req=dSYvF89%2BmodfXvMW1HO4zWbPxEl%2FMTo1Hn9K2IaIG2LFUvLHoH6NE4qGOHJ7%0AJRJI0G8NzVD6DOX0XT4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1681607607/ba6e379d2769d190f0970a0adaed/AD_4nXd4aZkqjJFpiXMPF28Pih7HmSJ9pPsnoWAfVgiLdFRFiTkO92YtXteIjvDHaPl7T0tjfpRTBOlyrMbQ_aciCNDgfIuEvV3szmKvt72x5O51DMSClXOYWk1JIRIzylwkj3joXqZcLw?expires=1789105500&signature=9bcef4c7d79dd9e30e2b94a1dd5674b8a1d1d6439762e81ae2466cd648826dc3&req=dSYvF89%2BmodfXvMW1HO4zWbPxEl%2BNzg3Hn9K2IaIG2JIjytoGHxfMlbjXanl%0Au9kJlPIYOFt3F6PhPc8%3D%0A) Click “Install Extension…” and select the .mcpb file. Follow the prompts to install and configure your custom desktop extension. For more in-depth information, please refer to our [desktop extension developer documentation](https://github.com/anthropics/mcpb). diff --git a/content/support/11101966-use-voice-mode.md b/content/support/11101966-use-voice-mode.md index ad764a7af..ef24b8596 100644 --- a/content/support/11101966-use-voice-mode.md +++ b/content/support/11101966-use-voice-mode.md @@ -24,7 +24,7 @@ Voice mode transforms how you interact with Claude by: 2. Tap the sound wave symbol in the lower right corner of the chat window to activate voice mode: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2042358620/1bf2311353615c1c494da1312a17/124b93a8-0a9b-4c84-9d1f-ede6ca3498dd?expires=1789067700&signature=18a8388d31307aed9c21d19826bfa0b84e839fc309927755dbbd2481c3d5fc81&req=diAjFMp7lYddWfMW1HO4zZyGrsdyvVAXF6uXnTLMvvBEN1zEzl4kxgtuNgai%0AYDtF%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2042358620/1bf2311353615c1c494da1312a17/124b93a8-0a9b-4c84-9d1f-ede6ca3498dd?expires=1789105500&signature=21508c86912dff425b6668441b85e18044b1a1b9cb699f1e05e0b8522cca32bf&req=diAjFMp7lYddWfMW1HO4zZyGrsdzu1IVF6uXnTLMvvBcrDxSBA6ykXkMpuf5%0AUqoQ%0A) 3. Start talking and see your prompt automatically populate in the chat input. @@ -32,7 +32,7 @@ Voice mode transforms how you interact with Claude by: 5. Claude will remain in voice mode until you click the “Stop” button in the lower right corner of the chat window: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2042352060/162f9e61f7fbeb689201dfc1cac1/6a7fafb2-31df-43be-a43f-0059d735e3c4?expires=1789067700&signature=e5b8049b2e91589cd139eb85aaa563fa7e7e2bd8b60cecbec190d3c964a0bf6d&req=diAjFMp7n4FZWfMW1HO4zU6VRfTKTrtuxNdRzYWrfF4z5wqgzwyQANbPq5Cu%0A892xLGu00r1Uq34ptWY%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2042352060/162f9e61f7fbeb689201dfc1cac1/6a7fafb2-31df-43be-a43f-0059d735e3c4?expires=1789105500&signature=9d49c35dc69c9b103678a3db7fc751943dbc4a62e0b12df52d23de97d25b30af&req=diAjFMp7n4FZWfMW1HO4zU6VRfTLSLlsxNdRzYWrfF6V53xVPHM1zS1FT61Z%0AgURcQNjnfp2CBxspmH4%3D%0A) ### On mobile (iOS and Android) @@ -40,7 +40,7 @@ Voice mode transforms how you interact with Claude by: 2. Tap the voice mode icon (sound wave symbol next to the microphone icon) in the text input field: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2042359690/68879db64559ecf87991f73ce058/671ff972-9e08-4686-bc04-955dab4b2de3?expires=1789067700&signature=7c2b3340542ccef52253394585e23f4545d561c2e824d3add5d044d181abccb5&req=diAjFMp7lIdWWfMW1HO4zQTUIf16lt9JD%2FRXAPlQ7LZm013pMjsHHwyRZYMl%0AqS9q%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2042359690/68879db64559ecf87991f73ce058/671ff972-9e08-4686-bc04-955dab4b2de3?expires=1789105500&signature=969635cf5e4f6ef3f7a116e4e061bfe6910f40db16eed606adaed588c8b84357&req=diAjFMp7lIdWWfMW1HO4zQTUIf17kN1LD%2FRXAPlQ7LbU8jUdKEXFuTNq8bmo%0AiUP1%0A) 3. Choose a voice to personalize your experience. @@ -78,7 +78,7 @@ To change the voice later: - **On mobile:** Click the settings button in the bottom left corner while chatting with Claude in voice mode, then tap your preferred voice and pace: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2042352063/25eca25bcfd573ecab30dd53158c/074454a6-fa5a-4c49-8b19-02d434b4ca50?expires=1789067700&signature=ce3fc06c3e2365c33d1890206df928db5a835082c96a210776ba05a464e9ecf9&req=diAjFMp7n4FZWvMW1HO4zZ3%2FGGOVZlcNy8OQfYsvK3wC2ncBoFnr%2FTtVd9qQ%0A64d%2FOZCbKk6A1JG9Tsg%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2042352063/25eca25bcfd573ecab30dd53158c/074454a6-fa5a-4c49-8b19-02d434b4ca50?expires=1789105500&signature=4d665d7ac49d67603ea0d18c6a7e98317e54c694b6487c244ae079c88daf10d7&req=diAjFMp7n4FZWvMW1HO4zZ3%2FGGOUYFUPy8OQfYsvK3y8qs092iCTrTHvdw3r%0Asu0o9eRIMTJr%2FxF9W7U%3D%0A) ## Choose a model diff --git a/content/support/11473015-retrieval-augmented-generation-rag-for-projects.md b/content/support/11473015-retrieval-augmented-generation-rag-for-projects.md index 46fb08a13..25656a380 100644 --- a/content/support/11473015-retrieval-augmented-generation-rag-for-projects.md +++ b/content/support/11473015-retrieval-augmented-generation-rag-for-projects.md @@ -1,6 +1,6 @@ # Retrieval augmented generation \(RAG\) for projects -RAG for projects is available for all Claude plans (free, Pro, Max, Team, and Enterprise). +RAG for projects is available on paid plans (Pro, Max, Team, and Enterprise). Projects can now handle much more content without running into limits, giving Claude better context to help you. As you add more files and information to your projects, Claude automatically switches to a faster mode (powered by RAG) that keeps response times quick while maintaining quality responses. diff --git a/content/support/11725453-set-up-the-claude-lti-in-canvas-by-instructure.md b/content/support/11725453-set-up-the-claude-lti-in-canvas-by-instructure.md index 9c57f941a..1e41b737c 100644 --- a/content/support/11725453-set-up-the-claude-lti-in-canvas-by-instructure.md +++ b/content/support/11725453-set-up-the-claude-lti-in-canvas-by-instructure.md @@ -44,7 +44,7 @@ This article provides information on how to enable the Claude LTI integration in 5. Click "Install" and refresh the course page. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1611422430/c8e0875feac1f2c7cb033be74fc9/AD_4nXfLU_bui3EXcCjQ0qm70HD97neqjGayKeDer_t76utlci8gZSUjYRhw6ZSOlDdqSEcwXBzd_shAh7pQEJ-8OoE0O21DM5coOgxmO_WD5hlwiuwtS2iYXcTavhIRyQT5zKFWvfn3NA?expires=1789067700&signature=0eb2baaff4e4683484e236f128a61784ac5c4fdbbe97adbb6935ce9c5ece9914&req=dSYmF818n4VcWfMW1HO4zTEDauIenfSGEv2ojHLMylajy7LqBGagNJDz6qSB%0At1pajw%2BAaXvDBaqCvWQ%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1611422430/c8e0875feac1f2c7cb033be74fc9/AD_4nXfLU_bui3EXcCjQ0qm70HD97neqjGayKeDer_t76utlci8gZSUjYRhw6ZSOlDdqSEcwXBzd_shAh7pQEJ-8OoE0O21DM5coOgxmO_WD5hlwiuwtS2iYXcTavhIRyQT5zKFWvfn3NA?expires=1789105500&signature=3f7d9169e8dcca7b83f86e7307c80b41075af92e03590ffd6ae88a231f956a8f&req=dSYmF818n4VcWfMW1HO4zTEDauIfm%2FaEEv2ojHLMylYxxrg18WPNMzfOzB1C%0ABCw%2BDaVo05Pe1G42HZg%3D%0A) ## Turn on the Claude LTI Integration in Claude for Education organization settings diff --git a/content/support/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context.md b/content/support/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context.md index 13c35c36e..f85c131c0 100644 --- a/content/support/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context.md +++ b/content/support/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context.md @@ -40,7 +40,7 @@ When Claude searches your previous chats, you will see this reflected in your cu Yes, navigate to **[Settings > Memory](https://claude.ai/new#settings/customize-memory)** and switch the toggle next to "Search and reference chats" off: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2533482439/4dee2d7b267f865205feefc8f4f3/cb60c334-d1e2-4828-a01d-dfb36bbaa7eb?expires=1789067700&signature=67c726339e337998bba7a372e4152908e0a6d16a2f254781bac7260b342fd093&req=diUkFc12n4VcUPMW1HO4zY9IRANsU9ZwYNcz5nFaZkG%2FAjM7RXEQzz%2BLMFSv%0AIwM2XfXd28CvGFREGyQ%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2533482439/4dee2d7b267f865205feefc8f4f3/cb60c334-d1e2-4828-a01d-dfb36bbaa7eb?expires=1789105500&signature=e356d469f61fca63c8002f5c60d7eae9691fad385f869a966df56e4f235fea7f&req=diUkFc12n4VcUPMW1HO4zY9IRANtVdRyYNcz5nFaZkHiYSzepxivUFHnYTrs%0ALqeoDh%2Bjfpf1gO2dzPU%3D%0A) ## Can I exclude a specific past chat from searches? @@ -84,7 +84,7 @@ What Claude remembers from your chats is available when you hand it a task in Co You can toggle Claude’s memory on by navigating to **[Settings > Memory](https://claude.ai/new#settings/customize-memory)** and turning on **Generate memory from chats**: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2533482441/b5c806a8e3f68bf34c4a70724d38/d30be013-d099-4c93-99d1-23d404792f08?expires=1789067700&signature=b3ad4956d36b4ef900490dfa0460deb978c830a2d667c2d51cbe39c7b0b3f12b&req=diUkFc12n4VbWPMW1HO4zRlYrpJt5FcrNshWSMEMw9dBrY6OJm6Qc%2FP3jChh%0AtzLAt5L4TDzn%2B0EqlvE%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2533482441/b5c806a8e3f68bf34c4a70724d38/d30be013-d099-4c93-99d1-23d404792f08?expires=1789105500&signature=f40893393b68a66eec5298961637698331cee5c1dbb54c0f040ae1b174c40539&req=diUkFc12n4VbWPMW1HO4zRlYrpJs4lUpNshWSMEMw9eZP3dmXE09wITWPNBr%0A3xj9Z7qQ0J72SQ9%2B9zI%3D%0A) If you want to disable Claude’s memory, click the toggle and you'll see two options: @@ -239,7 +239,7 @@ When Claude searches your previous chats, you will see this reflected in your cu Yes, navigate to **[Settings > Capabilities](https://claude.ai/settings/capabilities)** and find the **Preferences** section. Switch the toggle next to “Search and reference chats” off: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1719730889/3fafbf5ecaa0ae31d7d84a66229b/c25536c1-7433-4b94-a5e9-cd5acf97a4fd?expires=1789067700&signature=67b306bc900459df06b78f6d3ba3b85fc22850b556ef4901669a0381bc8275f5&req=dScmH859nYlXUPMW1HO4zRzXH1YwJTbFJG68qZhl781pyRYh0vNc8%2FZCan1H%0ADNBYz6xxF2s57pWjNCM%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1719730889/3fafbf5ecaa0ae31d7d84a66229b/c25536c1-7433-4b94-a5e9-cd5acf97a4fd?expires=1789105500&signature=5c3ba77f47cebf8d42c29bb703920290fa8dc30c33172e83828effe740ae589b&req=dScmH859nYlXUPMW1HO4zRzXH1YxIzTHJG68qZhl780opaniMyY7fK%2FjQ6f5%0AqPvTK2v%2BVqCs84f3TTw%3D%0A) ### Can I exclude a specific past chat from searches? @@ -247,7 +247,7 @@ Incognito chats are available to all Claude users (free, Pro, Max, Team, and Ent When starting a new chat with Claude outside of a project, you'll see a ghost icon in the upper right corner of your screen: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1719730893/9549b21954e0070ceb6b85231fd5/88e59234-6fc2-4229-84fe-733b33efff26?expires=1789067700&signature=d38240e489d3814d42d4503df394ab26fe1ec8af067aa0a169ffad9c1dd82fc8&req=dScmH859nYlWWvMW1HO4za54sKpsOoG8XDpzhlKsgjM6Y5anBD9jwaCY%2FQqx%0A9GBL562T7pabbE0j07M%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1719730893/9549b21954e0070ceb6b85231fd5/88e59234-6fc2-4229-84fe-733b33efff26?expires=1789105500&signature=e65cbc41d19dea520f26481db9f5adf20c64113f2a341bb6db2230044aff820a&req=dScmH859nYlWWvMW1HO4za54sKptPIO%2BXDpzhlKsgjPOYiCe%2B9T9wQn%2BzhBk%0A%2B8eQOYVqqh%2BFix67q1s%3D%0A) Clicking the ghost icon will open an incognito chat, creating a temporary conversation that isn’t saved to your chat history. Claude won’t pull information from incognito chats when searching previous conversations. @@ -279,7 +279,7 @@ Each project has its own separate memory space and dedicated project summary, so You can toggle Claude’s memory on by navigating to **[Settings > Capabilities](https://claude.ai/settings/capabilities)**: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1719730892/62f9f2b68d675a8e33393f06024f/89198978-192f-4c52-915d-5294b16f3fe1?expires=1789067700&signature=f584d52189fb4d86d2ae27dfb0edc2ceee1c01ba3ba522d054c70d706b0da232&req=dScmH859nYlWW%2FMW1HO4zTD5MMjmceNCBq9N9dRTKYf2ISOj%2BsYFQ29DqK8E%0ApTR0TwYgXWXyGOvrlK4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1719730892/62f9f2b68d675a8e33393f06024f/89198978-192f-4c52-915d-5294b16f3fe1?expires=1789105500&signature=39ac4329bd81d0a470920d10c2fedbbe33e9942b26825ac0d92bde7ce76c92a2&req=dScmH859nYlWW%2FMW1HO4zTD5MMjnd%2BFABq9N9dRTKYeufURBs5im94a8g9fL%0AWmyhDJD6V%2FBwrcnrvrI%3D%0A) If you want to disable Claude’s memory, click the toggle to see two options: diff --git a/content/support/11818288-why-am-i-being-asked-to-verify-my-payment-method.md b/content/support/11818288-why-am-i-being-asked-to-verify-my-payment-method.md index 52ac6f6f7..074607fef 100644 --- a/content/support/11818288-why-am-i-being-asked-to-verify-my-payment-method.md +++ b/content/support/11818288-why-am-i-being-asked-to-verify-my-payment-method.md @@ -2,7 +2,7 @@ If you see the following pop-up when you log in to your Claude account, you’ll need to click the “Verify now” button to verify your payment method: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1631413861/42c3b13d7fc44a11a88ec2b9cd03/AD_4nXeMx8QXpeZZCkfAnVSwx8KZ9n4Vr2rvPdQddyE6ZNxch__F6ZqFs1G4ZmU52Wvb7gRlwRqquTLdw8IQv-gICDyP-MXqiQK_Oe7gX3SKsCKKt2IEpMx4qDeMeeZufMaJfv16XgOH5g?expires=1789067700&signature=de835956c2ecaa437bff6b893b96e730c0c695e91c4b2314a18fafcd7004070a&req=dSYkF81%2FnolZWPMW1HO4zf7%2BjE3u7of1n6MrEicvimA51JDlb80%2Bc5PRmem6%0AT%2Bz1DNBEAvl4cCMqmEo%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1631413861/42c3b13d7fc44a11a88ec2b9cd03/AD_4nXeMx8QXpeZZCkfAnVSwx8KZ9n4Vr2rvPdQddyE6ZNxch__F6ZqFs1G4ZmU52Wvb7gRlwRqquTLdw8IQv-gICDyP-MXqiQK_Oe7gX3SKsCKKt2IEpMx4qDeMeeZufMaJfv16XgOH5g?expires=1789105500&signature=84c7c8961cb185813afcea04511785397c68034f6f08036ae64532d671334e4a&req=dSYkF81%2FnolZWPMW1HO4zf7%2BjE3v6IX3n6MrEicvimCqpcmH16FQl2JnKB7j%0AjU7Y%2BKKGG4FriL2YtPw%3D%0A) ## What happens if I click “Remind me later?” diff --git a/content/support/11869629-use-claude-with-android-apps.md b/content/support/11869629-use-claude-with-android-apps.md index e3c3b1f9a..e9cba7bd5 100644 --- a/content/support/11869629-use-claude-with-android-apps.md +++ b/content/support/11869629-use-claude-with-android-apps.md @@ -222,7 +222,7 @@ Permission requirements vary by feature: For features requiring permissions (like location or calendar access), Claude will request permission contextually with clear explanations of why the access is needed. You’ll be prompted to approve the action with three options: Allow once, Always allow, or Don't allow. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1707351614/ccb910e4b87b1e96ad9a11bbd835/b57b2130-d8d6-4499-89f6-6c12de236fd4?expires=1789067700&signature=5a5cc6a0f8b3eabd59b754763043344f8d48b31ecea0bc77c0b907db48f27306&req=dScnEcp7nIdeXfMW1HO4zQe5GlaP3SLzS5x65TIld%2FCrRFPVFJmbdyqOksjy%0A2Ak6f9eme9foeU8dlYs%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1707351614/ccb910e4b87b1e96ad9a11bbd835/b57b2130-d8d6-4499-89f6-6c12de236fd4?expires=1789105500&signature=bd745d130ca9ac18a03ae613c63755e430b6111eb716d99992eb94b605ce453c&req=dScnEcp7nIdeXfMW1HO4zQe5GlaO2yDxS5x65TIld%2FDzIwXMwfTFvc1pBYCE%0APLTOm6DUTYzjUVaQVvM%3D%0A) These permissions can be managed at any time in your device settings by going to Settings > Apps > Claude > Permissions. Click into each permission listed under **Allowed** and **Not allowed** to make changes. You can toggle between “Allow only while using the app” or “Ask every time” to change Claude’s access, or remove permissions by choosing “Don’t allow.” Claude will only request permissions if needed for specific features, and you can always choose to decline while still using other capabilities. diff --git a/content/support/12005970-manage-usage-credits-for-team-and-seat-based-enterprise-plans.md b/content/support/12005970-manage-usage-credits-for-team-and-seat-based-enterprise-plans.md index eb9534c7a..ae87fe3e5 100644 --- a/content/support/12005970-manage-usage-credits-for-team-and-seat-based-enterprise-plans.md +++ b/content/support/12005970-manage-usage-credits-for-team-and-seat-based-enterprise-plans.md @@ -70,7 +70,7 @@ After navigating to **[Organization settings > Usage](https://claude.ai/admin-se The **Usage and spend limits** section will show the current limit (if any) or **Unlimited**. Clicking on "Adjust limit" opens a modal where you can either input an amount and click "Set spend limit," or click "Set to unlimited" to remove the organization-wide monthly spend limit. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149347604/936ac4eb025d3ef1f00c3b8a26b0/image.png?expires=1789067700&signature=19012612a78d97423a193a3d5afe6383b58226390062d8c4d777766b1a2f4454&req=diEjH8p6modfXfMW1HO4zQHwg6jXkCmh6DwhVVpk1mAZztbayAUhz0HiXeXq%0A7MKNeo6rwU10YN%2FybmM%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149347604/936ac4eb025d3ef1f00c3b8a26b0/image.png?expires=1789105500&signature=e14f5142865397e19411050445fbbced003db157c75e5919b28527fddbb4505c&req=diEjH8p6modfXfMW1HO4zQHwg6jWliuj6DwhVVpk1mBcSFT5fsDfCb034D8L%0AMG49%2B3v45VNFthYuzN4%3D%0A) Changes to your organization’s overall spend limit go into effect immediately. @@ -78,11 +78,11 @@ Changes to your organization’s overall spend limit go into effect immediately. Owners and Primary Owners on **seat-based Enterprise plans only** can set spend limits that apply to all users within a specific seat tier. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149351600/c5b979c366ac2738f60ea84e85b3/CleanShot+2026-03-10+at+15_37_41%402x.png?expires=1789067700&signature=621361bfe7de62c964c38cbaa594aa7a38deeebb30e396f96c18b6c39247a139&req=diEjH8p7nIdfWfMW1HO4zYnqMIyUJXeO0wfO62ivdG8vJvq6JMnCS6AD22Pv%0A4KdtgoLiGIEnPv695I8%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149351600/c5b979c366ac2738f60ea84e85b3/CleanShot+2026-03-10+at+15_37_41%402x.png?expires=1789105500&signature=9e134db6c658a6e4a77b236210cbaef1fc281510b12f845edba8a6b7f9168216&req=diEjH8p7nIdfWfMW1HO4zYnqMIyVI3WM0wfO62ivdG9nyqmThdDgIuceHHdO%0A6lrLUbW251GfrshzUSg%3D%0A) Select the "By group" tab to see **Standard seats** and **Premium seats** groups. Click the "..." icon next to the current limit, then "Edit limit." This opens a modal where you can either select "Set dollar amount" and input an amount, or click "Unlimited" to remove the limit for that seat type. Click "Set limit" to save your changes. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149362056/44993661ca2db771fe924d0346f6/image.png?expires=1789067700&signature=43565c1ae5989ca202813e341c2ec9182493ac5682810a9a4cf0b78517cd859b&req=diEjH8p4n4FaX%2FMW1HO4zRzvvIwLdkpBq7nEDCGq9G7uAJN1l5MJsJPU%2BiH7%0A%2BANMAEEVvzkiJ0DxNao%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149362056/44993661ca2db771fe924d0346f6/image.png?expires=1789105500&signature=3ab5ee3784608c1634510168b4f51964f2d46c890bbcf6711ebc98d96e444fd8&req=diEjH8p4n4FaX%2FMW1HO4zRzvvIwKcEhDq7nEDCGq9G5qrcXOPijCHhUGYZND%0A5JSIyZDNvqBGmS1yv1M%3D%0A) --- @@ -90,11 +90,11 @@ Select the "By group" tab to see **Standard seats** and **Premium seats** groups Owners and Primary Owners can also set individual monthly spend limits for each member by finding **Spend limits by user** and clicking the "..." button next to the user, then "Edit limit." -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149370853/db66f5cd03683b9cc119d0dcd6b8/image.png?expires=1789067700&signature=21f92a015c17a345e2afd59453160eefac56c905c85b9ace78a4cd50ac8ee2ac&req=diEjH8p5nYlaWvMW1HO4zaPdGQ5XUyhBe9HwvwG7ubhErPEsm1Xf%2FeohatzY%0A32LkcoVsqPlYR6g66Ic%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149370853/db66f5cd03683b9cc119d0dcd6b8/image.png?expires=1789105500&signature=f69742d2bc63905530d416ba5296e206f94d2eda3be0b11cf720a8cc19a1570e&req=diEjH8p5nYlaWvMW1HO4zaPdGQ5WVSpDe9HwvwG7ubjRtc0fLTI4D4UQaGXX%0ANn4yk7UspiQ8pmb%2Bbsg%3D%0A) Enter the amount and click "Set limit." Alternatively, selecting "Set to unlimited" will remove that member's monthly spend limit (they will still be subject to any organization or seat-level spend limits). -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149374028/97813fe3b515c2e839d8d92abd79/image.png?expires=1789067700&signature=ac5ebd4da4eb13b50f2ee280a70a0cac30003144f4e33fe8a632347a63a0e694&req=diEjH8p5mYFdUfMW1HO4zevsAv6KNeyNw6z2wGSwkbvoxjrvqpCJ%2B9vxocWA%0A7sFNXpbNjIT5Pzi2uAE%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149374028/97813fe3b515c2e839d8d92abd79/image.png?expires=1789105500&signature=c7b82eab737eb2ee7ec1e402e5138df3349149ae2ff69bb526fc47627a9bba5e&req=diEjH8p5mYFdUfMW1HO4zevsAv6LM%2B6Pw6z2wGSwkbt63t8tE8oSC%2BSKcxKK%0A94nayY9u%2B78I23Mr81M%3D%0A) This allows owners fine control over usage credits, so you can set limits for different members based on their roles or individual needs. Once a user reaches their defined spend limit, this will automatically pause their usage credits until the end of the month. They will need to wait for their usage limits to reset before using Claude again. diff --git a/content/support/12012173-get-started-with-claude-in-chrome.md b/content/support/12012173-get-started-with-claude-in-chrome.md index de1b2f16b..ab07b25d1 100644 --- a/content/support/12012173-get-started-with-claude-in-chrome.md +++ b/content/support/12012173-get-started-with-claude-in-chrome.md @@ -38,7 +38,7 @@ Follow these steps to connect Claude in Chrome in your desktop app: 4. Toggle the connector on, then download and install the extension if you haven’t already. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2604933811/ae37c41fc808dbdf48d135338334/6cc9ba4b-9d31-43a2-ab80-8048b5f9d791?expires=1789067700&signature=ada9c4f5b292990734250c5cda425fbd580f933a8bfbdb16a519566f05ea62aa&req=diYnEsB9noleWPMW1HO4zUOPbPXGkOWKnt%2F2nPMwUPjZzkfq2amunpJzUrm0%0A%2BO%2FMO3xv7mMTKOZF4cQ%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2604933811/ae37c41fc808dbdf48d135338334/6cc9ba4b-9d31-43a2-ab80-8048b5f9d791?expires=1789105500&signature=9068dce31a99f2bc2dd530354e3845c7ba0b603419d028322c2a0107fe6e7adf&req=diYnEsB9noleWPMW1HO4zUOPbPXHlueInt%2F2nPMwUPhLxUAcUWqnQ8tRnO3s%0A%2BeeZr%2BfSIh8wLpulk0U%3D%0A) Completing these steps will add Claude in Chrome to the “Connectors” drop-down on your chats with Claude. This is disabled by default, so you’ll need to enable it manually for each conversation. diff --git a/content/support/12083917-change-your-team-plan-from-monthly-to-annual-billing.md b/content/support/12083917-change-your-team-plan-from-monthly-to-annual-billing.md index ec696970e..32ce62ac1 100644 --- a/content/support/12083917-change-your-team-plan-from-monthly-to-annual-billing.md +++ b/content/support/12083917-change-your-team-plan-from-monthly-to-annual-billing.md @@ -8,11 +8,11 @@ Owners and Primary Owners of Team plans with monthly subscriptions can switch fr 3. Or from /upgrade, click the “Switch to Annual plan” button: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1690325734/d47f714680d78408d6022d06b8d1/image.png?expires=1789182000&signature=754b23fa237d07bd1eabbf0185fa938a6d593e1abe093149a5221942c3086817&req=dSYuFsp8mIZcXfMW3Hu4gZzas%2FXtsD5an2rRiVwqPzb7c265J60%2FIwV%2FV8xw%0AOA%3D%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1690325734/d47f714680d78408d6022d06b8d1/image.png?expires=1789236000&signature=3bf06ce28018f3aa11a09087d5fe633c9383ad698efbd12d8f96b4b0684a2d98&req=dSYuFsp8mIZcXfMW3Hu4gZzas%2FXtsD1Rm2rRiVwqPzY2Cf4EToQvqM0vv%2BUy%0AWg%3D%3D%0A) 4. The confirmation screen will display the total cost for your upgrade from monthly to annual billing: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1690326039/3a91cdc5fff57d188a18ecc6273f/image.png?expires=1789182000&signature=7303b655e8af9eafd70ca00e3889ec94032d4789e27f88051c997a55aa8e2aad&req=dSYuFsp8m4FcUPMW3Hu4gbNj%2Bk78VQzpie5vzcg6znV%2FfX1ggkc%2BelS8omXH%0AOg%3D%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1690326039/3a91cdc5fff57d188a18ecc6273f/image.png?expires=1789236000&signature=c7445e69cbebb85f9556b9226b2a870456069f419873da37c7dcc43785fe0ad3&req=dSYuFsp8m4FcUPMW3Hu4gbNj%2Bk78VQ%2Fije5vzcg6znWZNm0F%2F2prk0KoJ4Xm%0AQA%3D%3D%0A) 5. Click “Confirm subscription.” diff --git a/content/support/12111783-create-and-edit-files-with-claude.md b/content/support/12111783-create-and-edit-files-with-claude.md index 2102942cc..43da1095e 100644 --- a/content/support/12111783-create-and-edit-files-with-claude.md +++ b/content/support/12111783-create-and-edit-files-with-claude.md @@ -48,7 +48,7 @@ These capabilities make it easy to produce professional documents by simply chat To give Claude access to external data sources, toggle **Allow network egress** on: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2054774005/25bcfffba6c249cd128d6c3f6d52/CleanShot+2026-02-11+at+16_34_47%402x.png?expires=1789067700&signature=7ea856d95a34426236e3007b4bf140bc02f01b01d5317b1c6c31802af16874ae&req=diAiEs55mYFfXPMW1HO4zYFJywRFCp7JPQVowIiib2nY0LhqNt%2FY%2F%2F7DjZan%0Amhz65RpnBDMd%2FQHDG5A%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2054774005/25bcfffba6c249cd128d6c3f6d52/CleanShot+2026-02-11+at+16_34_47%402x.png?expires=1789105500&signature=5517ea7ec5310a91a01e5e608dfa01d0ca4a4d6c62628366a70053a5f72bc88f&req=diAiEs55mYFfXPMW1HO4zYFJywREDJzLPQVowIiib2nEIra33MTHDy8JB9Op%0AYy7odsAGWJNrpV4qe8w%3D%0A) ### Enabling on Claude Mobile @@ -66,11 +66,11 @@ Team and Enterprise organization owners can control network access settings in * - **Allow network egress to package managers and specific domains:** Claude can access package managers plus additional domains you specify. Add domains individually to whitelist specific resources your organization needs: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1789945362/ad72504d5429960f369b8b91b43c/86f06c0e-6eaa-4574-a4cb-2c38b273613a?expires=1789067700&signature=3a8908a0e302e835496b4309801f5747d615b0577f268b028de4aae581d3654b&req=dScvH8B6mIJZW%2FMW1HO4zXJcBmRDky5MpMW6Iph6YZfP29NRdRNZD4aGtnH3%0AcaWoWlTnosNNR1yBqX0%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1789945362/ad72504d5429960f369b8b91b43c/86f06c0e-6eaa-4574-a4cb-2c38b273613a?expires=1789105500&signature=b3bc341f8038f1667f29aecd1e8b5b465ca1b44f119ac8f07963738acbb0698b&req=dScvH8B6mIJZW%2FMW1HO4zXJcBmRClSxOpMW6Iph6YZeWplUxc4fz%2BPtlwOML%0AjycQiZ4U0kRzFvHiFLs%3D%0A) **All domains:** Claude has full internet access except for domains on Anthropic's legal blocklist. While this provides maximum flexibility for file creation and analysis tasks, it’s also the riskiest option. Please review the **[security considerations below](#h_0ee9d698a1)** before enabling “All domains”: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1789945361/e3188cb8edb9ca7c303615da6378/f1c99a7d-5956-48d5-9ec7-b7ae6c8c3d28?expires=1789067700&signature=d121949c510765ccb1b78d28c6beda6817ce8c448117025628b0ccc2deb65dbd&req=dScvH8B6mIJZWPMW1HO4zdnseB2S6DilqgKIA6CM1trW%2BxlrTyDSaDpnReW%2B%0A3sGBJQ0uJl1MyXvmQLY%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1789945361/e3188cb8edb9ca7c303615da6378/f1c99a7d-5956-48d5-9ec7-b7ae6c8c3d28?expires=1789105500&signature=9c2bd659fbc2f8290e1df31548e8183e5f0be572fb07435c4fde3ea0b1446c5a&req=dScvH8B6mIJZWPMW1HO4zdnseB2T7jqnqgKIA6CM1triLNbGtzfTZav9as7J%0Asb%2Fj26k5gpJjEdJWTDw%3D%0A) --- diff --git a/content/support/12138966-release-notes.md b/content/support/12138966-release-notes.md index 10d505fb5..390c9955c 100644 --- a/content/support/12138966-release-notes.md +++ b/content/support/12138966-release-notes.md @@ -2,6 +2,12 @@ ## September 2026 +### September 10, 2026 + +**Smart reports (beta)** + +We’ve launched smart reports, which analyze how a team uses Claude and report on the work getting done, what it costs, where sessions run into friction, and which repeated patterns are worth packaging as shared skills. Smart reports are available in beta on Claude Enterprise plans. Learn more in **[Get started with smart reports](https://support.claude.com/en/articles/16893491-get-started-with-smart-reports)**. + ### September 1, 2026 **Claude Fable 5.1 and Claude Mythos 5.1 launch** diff --git a/content/support/12157520-claude-code-usage-analytics.md b/content/support/12157520-claude-code-usage-analytics.md index f4e29aff6..ef89d6002 100644 --- a/content/support/12157520-claude-code-usage-analytics.md +++ b/content/support/12157520-claude-code-usage-analytics.md @@ -50,7 +50,7 @@ The **Usage** tab displays the following metrics for your organization. Data on - **Top commands**: The Claude Code commands used most often across your organization. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1717579277/46c512f4b3ed05c359cecd78ed5c/e0ce2c19-39e2-411f-9a1f-cb1d46439a42?expires=1789067700&signature=2529e64a8ae698edc11784a0d356ef672fa497256c44c4656316c8a451596936&req=dScmEcx5lINYXvMW1HO4zfiEP69QiX7JCX9h5MbdDjNhHr6fhzlaZTljGf%2FW%0AnsyWPEejuFnqTc7dxiw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1717579277/46c512f4b3ed05c359cecd78ed5c/e0ce2c19-39e2-411f-9a1f-cb1d46439a42?expires=1789105500&signature=1cda1abcd76a165070f7807b8d0d33aa7f7c5215e15a2a3573c54e59f1b98c74&req=dScmEcx5lINYXvMW1HO4zfiEP69Rj3zLCX9h5MbdDjO2ErHZwhasCI%2BEz08v%0ADP09J3VcQKt9RjaDEBg%3D%0A) ### User-level metrics diff --git a/content/support/12260368-use-incognito-chats.md b/content/support/12260368-use-incognito-chats.md index 70d71dbe9..755b479c6 100644 --- a/content/support/12260368-use-incognito-chats.md +++ b/content/support/12260368-use-incognito-chats.md @@ -30,7 +30,7 @@ Incognito chats are temporary conversations that aren't saved to your chat histo When starting a new chat with Claude outside of a project, you'll see a ghost icon in the upper right corner of your screen: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1719768744/c7a2fa56cf284e48472f3b9c4dbf/030563f8-9f97-4891-a749-9ae95968a063?expires=1789067700&signature=fcd990c0cd740af442c5cc22c2c413ef83bb7d467cd6e615286384acece8abb6&req=dScmH854lYZbXfMW1HO4zeUcuwu9aOKMDCAt3Cx%2FSO2QhbYXM3TEMOdwzoRr%0AruN5AGeU1BXlxAwT19U%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1719768744/c7a2fa56cf284e48472f3b9c4dbf/030563f8-9f97-4891-a749-9ae95968a063?expires=1789105500&signature=644504a7cf9f97b14ad195f498bba27daed06a3435a41ea51300103da04a35e2&req=dScmH854lYZbXfMW1HO4zeUcuwu8buCODCAt3Cx%2FSO07mPcI2iTUusTS6jGR%0Ah5UNNlJ%2FZWFNW1heKFk%3D%0A) 1. Click the ghost icon to enable incognito mode. diff --git a/content/support/12293051-use-claude-in-xcode.md b/content/support/12293051-use-claude-in-xcode.md index 4fa9a2f8d..ff66e828b 100644 --- a/content/support/12293051-use-claude-in-xcode.md +++ b/content/support/12293051-use-claude-in-xcode.md @@ -34,7 +34,7 @@ To start using Claude in Xcode: 3. Log in with your Claude account. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1727371585/b18ca03a6357c52d12d10386f28e/dab2dcb2-f670-4173-b77d-38767a34cec1?expires=1789067700&signature=4d0d2e2833c2d5d19cb0724fbaf829d6faa40b75810d7beb27ce060e5ae79c58&req=dSclEcp5nIRXXPMW1HO4zUAXI8UCVK%2FTFalhp3bugHLooRLVaRcwXC4UmMtR%0AWgdbk3HlGnq5CW79odU%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1727371585/b18ca03a6357c52d12d10386f28e/dab2dcb2-f670-4173-b77d-38767a34cec1?expires=1789105500&signature=ef58a924a1c722d7869e3a417f250becf2be2333a84ecec51e0e2b6efdc6d880&req=dSclEcp5nIRXXPMW1HO4zUAXI8UDUq3RFalhp3bugHKDqm9OFmvymFCTphHW%0A6rfC2P6fSlG43FL%2FRGE%3D%0A) ## Usage limits diff --git a/content/support/12429409-manage-usage-credits-for-paid-claude-plans.md b/content/support/12429409-manage-usage-credits-for-paid-claude-plans.md index 5970836e5..c156b6a72 100644 --- a/content/support/12429409-manage-usage-credits-for-paid-claude-plans.md +++ b/content/support/12429409-manage-usage-credits-for-paid-claude-plans.md @@ -46,7 +46,7 @@ To enable usage credits on your paid Claude plan: 8. You can also enable auto-reload to automatically make a purchase when your balance falls below a threshold you set: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1805819785/5e203c38e6ba3f76bfd1dab0d5ce/fe062e7c-18cb-48cc-a7e2-754ac6e6c4be?expires=1789067700&signature=4e019c52247f35e2de7eb1bfabf0ec7050b721d4b1cda6790765c9acd3bc537f&req=dSgnE8F%2FlIZXXPMW1HO4zYj2ARuZo%2Fc%2FopE7m38Ydfft0VP289LFZ64JKNmQ%0AyJO%2BgEihF4gANd8t500%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1805819785/5e203c38e6ba3f76bfd1dab0d5ce/fe062e7c-18cb-48cc-a7e2-754ac6e6c4be?expires=1789105500&signature=ed1e9735593235729bb394d0b5fc1f850f74ec921040e8883f270d3abd370691&req=dSgnE8F%2FlIZXXPMW1HO4zYj2ARuYpfU9opE7m38YdfegJDmV%2BMIdb4LBBf%2FR%0AEYOXNfjw3BsARgZLH%2F8%3D%0A) **Note:** There is a daily redemption limit of $2000. diff --git a/content/support/12466728-troubleshoot-claude-error-messages.md b/content/support/12466728-troubleshoot-claude-error-messages.md index c51167e06..32278c360 100644 --- a/content/support/12466728-troubleshoot-claude-error-messages.md +++ b/content/support/12466728-troubleshoot-claude-error-messages.md @@ -58,4 +58,4 @@ Capacity issues will not appear on our status page because they represent normal Service incidents are disruptions where Claude is unavailable or significantly degraded for all or most users. These represent actual technical problems with our systems. To check for confirmed incidents, visit status.claude.com, where you'll find real-time updates on scope, impact, and resolution progress for any active incidents. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1753796247/e6a8c6ef8653b229c5758e881242/c2fc6fc0-d163-4119-93e0-394104d86bc9?expires=1789067700&signature=9513cda451f2858df161533e3c4cae74f2759a708bf8145ef9acba6b8ec7ac19&req=dSciFc53m4NbXvMW1HO4za4BXqYj1LXD7y68oYp%2BYg%2BCmCTZWycgXv%2B9itIY%0AzSowbF1mrFsxUe3z30o%3D%0A) \ No newline at end of file +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1753796247/e6a8c6ef8653b229c5758e881242/c2fc6fc0-d163-4119-93e0-394104d86bc9?expires=1789105500&signature=d47f6f7fddfeeb24fab4ef5a7f55a85c490d2eed5939e5e28e49cc2ee295edf1&req=dSciFc53m4NbXvMW1HO4za4BXqYi0rfB7y68oYp%2BYg%2FG%2BOLragxViTFJFxDu%0Aq7F1x0ryjzqtRsql6UI%3D%0A) \ No newline at end of file diff --git a/content/support/12512180-use-skills-in-claude.md b/content/support/12512180-use-skills-in-claude.md index e336aa924..a640dde21 100644 --- a/content/support/12512180-use-skills-in-claude.md +++ b/content/support/12512180-use-skills-in-claude.md @@ -166,7 +166,7 @@ To remove a custom skill you've uploaded: 4. To delete the custom skill entirely, click the "..." button next to the toggle, then select "Delete": - ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2105391273/8359cbf8be20dce0f1cd3fd40e6f/CleanShot-2B2026-02-25-2Bat-2B15_50_16.png?expires=1789067700&signature=7c87a53be66fea428b9f7c70ec63519acf86780dd88e208e96ce1f12109e9801&req=diEnE8p3nINYWvMW1HO4zSOgDyIoxOGqH%2BdCnFXB0uhr%2B3q85e4nNTHwkFlH%0AjcGb%0A) + ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2105391273/8359cbf8be20dce0f1cd3fd40e6f/CleanShot-2B2026-02-25-2Bat-2B15_50_16.png?expires=1789105500&signature=2d60268442ffd1ccd481c3adcf5e4007cf46cfb1f156ef3438bcc4ad2d6d8622&req=diEnE8p3nINYWvMW1HO4zSOgDyIpwuOoH%2BdCnFXB0ugxIIjUCwPB%2FxUb2cNH%0Axv2f%0A) 5. Click "Delete" in the confirmation prompt. diff --git a/content/support/12592343-enabling-and-using-the-desktop-extension-allowlist.md b/content/support/12592343-enabling-and-using-the-desktop-extension-allowlist.md index 324bfac6a..aeb15fc7c 100644 --- a/content/support/12592343-enabling-and-using-the-desktop-extension-allowlist.md +++ b/content/support/12592343-enabling-and-using-the-desktop-extension-allowlist.md @@ -20,11 +20,11 @@ The desktop extension allowlist is disabled by default, so an organization Owner 4. Switch to the "Desktop" tab: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1781755172/63c92550571842577ad435860ec5/6f5cc4e1-ff7d-48de-863a-c4e6184d4605?expires=1789067700&signature=f58824cb41422d580c8eac6e5b35685e7db7bc95f496a616a1cfc602674f5fb6&req=dScvF857mIBYW%2FMW1HO4zQ9pXUMK%2BXfc0ugSQm1MFW%2BFwJXXFiYLHMdK0voH%0AirLb%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1781755172/63c92550571842577ad435860ec5/6f5cc4e1-ff7d-48de-863a-c4e6184d4605?expires=1789105500&signature=2d149dc668180a1904421875c6bc53bd07f93c203fb695ef624ff91111c5cf46&req=dScvF857mIBYW%2FMW1HO4zQ9pXUML%2F3Xe0ugSQm1MFW%2B6RFHz6vHmUYetBjP6%0AYTeB%0A) 5. Toggle **Allowlist** on: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1781755578/a6bafff5f084dc86ae463703fd3d/6cf0ee18-4e71-4129-98e8-cc08174e3c3a?expires=1789067700&signature=a35c79597dbaf30ebab750616f21bc50d554ce7bcdbce1c8b7f90c0945551aba&req=dScvF857mIRYUfMW1HO4zaj0BHgrT6ADTAorLxpdoc9tUoHoD%2FtkAVqYN7sJ%0ALGco%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1781755578/a6bafff5f084dc86ae463703fd3d/6cf0ee18-4e71-4129-98e8-cc08174e3c3a?expires=1789105500&signature=27faa4770309b712c82d24156899ebc41b33eb63b08837f73d4c3eef35bfa46b&req=dScvF857mIRYUfMW1HO4zaj0BHgqSaIBTAorLxpdoc8%2BZaOvIQV9MeBOGXuR%0ASUse%0A) ## What happens after enabling the allowlist? @@ -42,7 +42,7 @@ Consider completing the allowlist setup during off-hours to minimize disruption **Important:** The allowlist requires Claude Desktop version 0.13.91 or higher, so users should update the desktop app by clicking “Claude”, then either “Check for updates” or “Restart to update to Claude 0.13.91”: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1781756960/ad18af50c83d35f2673656c23e00/a7ee450f-0c7d-42d6-a75f-fb1bc088cb52?expires=1789067700&signature=4ce46216b69852e1fc3deed00ed1b86db2a35772b2ee1e042d16fe47d5e080b1&req=dScvF857m4hZWfMW1HO4zYUJqYqqDDXsCEDZ5AdBjIa1w0WsAUsSUVwcp%2B30%0AyS%2FacGWw18r7JSHEEhQ%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1781756960/ad18af50c83d35f2673656c23e00/a7ee450f-0c7d-42d6-a75f-fb1bc088cb52?expires=1789105500&signature=eeedca3ae755f7e0125713023b5586e99082c2e40c973e88e601baa7caab9d14&req=dScvF857m4hZWfMW1HO4zYUJqYqrCjfuCEDZ5AdBjIacApZw%2F%2FAatZeR2QEg%0AOvrDRbBuwv%2BZGRjCLdE%3D%0A) ## Managing allowed extensions @@ -60,7 +60,7 @@ After enabling the allowlist, you can choose which extensions to allow: If you want to remove an extension from the allowlist, click the “...” button and “Remove from allowlist.” -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1781751250/6558c0f59aea7976bd44b0213d76/e750f02b-cd0d-437e-a83f-9ac362cdf456?expires=1789067700&signature=70bed11df583df796e12b7dda7954d5457e7bbbf410c487645a16518a9554587&req=dScvF857nINaWfMW1HO4zTrxBaEp%2BVCSqXridZhfx1JnWCpc218ZwCb0afDY%0Ax4yuv%2FJr6ovvu3cd0F0%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1781751250/6558c0f59aea7976bd44b0213d76/e750f02b-cd0d-437e-a83f-9ac362cdf456?expires=1789105500&signature=64355c7e9b5292f874d3c8868719e66c70f36738c3e34209d5919ef7bc2cab0d&req=dScvF857nINaWfMW1HO4zTrxBaEo%2F1KQqXridZhfx1KJAiy5CGBIiIUFUkUA%0AOaEt0trdROqJS6q4yS0%3D%0A) ## Uploading custom extensions diff --git a/content/support/12618689-claude-code-on-the-web.md b/content/support/12618689-claude-code-on-the-web.md index fdea29686..890ab2fcc 100644 --- a/content/support/12618689-claude-code-on-the-web.md +++ b/content/support/12618689-claude-code-on-the-web.md @@ -10,7 +10,7 @@ This feature works with repositories you may not have on your local machine. You Claude Code for web enables asynchronous development workflows. With Claude Code in your terminal or editor, you typically work synchronously: you make a request, wait for Claude to respond, review the changes, then make another request. Synchronous work like this gives you fine-grained control but requires your attention throughout the process. Claude Code on the web handles this differently: you can assign a larger task, let Claude work independently, and return later to review the completed work. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1786446157/07ec74cd46317f8278083a317841/6448f3ee-c6df-4417-8a13-90d8c2ca3d55?expires=1789067700&signature=376dfaf7d104840f22dd976efe7fa9270f0b83e0ed876f38ee11c0dbc78d046b&req=dScvEM16m4BaXvMW1HO4zR8%2BAFqARJpx7XrRA1YwWGvvoNdEJVGdqo9lnbXy%0Are96rBssiSMk9xkvZB0%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1786446157/07ec74cd46317f8278083a317841/6448f3ee-c6df-4417-8a13-90d8c2ca3d55?expires=1789105500&signature=d291e550c39a5cf73b7174e6e61720a4bc96996448ccbd5d009befda98070548&req=dScvEM16m4BaXvMW1HO4zR8%2BAFqBQphz7XrRA1YwWGthoN7AY16XS%2FZvSoVF%0ALhgyumqNe2oasiIqToo%3D%0A) You can also run multiple tasks in parallel. Since each task runs in its own isolated environment, you can have Claude working on several different issues or repositories simultaneously. Each task proceeds independently and creates its own pull request when complete. More than one task can work on the same repository at the same time. @@ -18,13 +18,13 @@ You can also run multiple tasks in parallel. Since each task runs in its own iso When you start a task, Claude Code on the web creates an isolated virtual machine for your work. Your GitHub repository is cloned into this environment, which comes pre-configured with common development tools and language ecosystems. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1786446158/c092f1383826cb871493f74169d4/97b7cb98-5da2-438e-a920-e170b8b9790e?expires=1789067700&signature=b4427f1dee71fe90912dc73ad602988f63e7e0fd6b8f3b851609714ae1327652&req=dScvEM16m4BaUfMW1HO4zcR0rZ80ie7H7DtpMiX%2FBYnwTYQpXsR4htMu6Ds5%0AzoFj3ynI50epsejxCJw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1786446158/c092f1383826cb871493f74169d4/97b7cb98-5da2-438e-a920-e170b8b9790e?expires=1789105500&signature=6f133c0ffb85e4b953edd8c4849f18b60e81fafe1b77e52e4690c11e1e412f6d&req=dScvEM16m4BaUfMW1HO4zcR0rZ81j%2BzF7DtpMiX%2FBYm%2FI0vEtqiJ4ZRcYZlR%0AXp13ISiU2gq1dQ0VWc4%3D%0A) Claude prepares the environment by running any setup commands you've defined in your repository's configuration. This includes installing dependencies, setting up databases, or running other initialization steps your project needs. If your task requires network access, maybe to install packages or fetch data, you can configure the level of internet access the environment has. Once the environment is ready, Claude begins working on your task. Claude reads your code, makes changes, writes tests, and runs commands to verify the work. You can monitor progress and provide guidance through the web interface if needed. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1786446156/83ecf0a5b98eddc9ffc9694c50f7/353589ce-b678-441d-8909-71b45fa2d065?expires=1789067700&signature=7759eef1c7ae8fb176bab0d25ed49c35ddb69ce8196faf0a3aebdd2f3557822a&req=dScvEM16m4BaX%2FMW1HO4zVbcTGqD5cPJUQl3YqgIJdbMGkKXtOPYP2zFXw7%2B%0AUvA50%2FFzsZeakvuMhVU%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1786446156/83ecf0a5b98eddc9ffc9694c50f7/353589ce-b678-441d-8909-71b45fa2d065?expires=1789105500&signature=4fffc9f93b6a470e8b71f1e797b1630076def9c0c80c19fd90dd679c2a44e90f&req=dScvEM16m4BaX%2FMW1HO4zVbcTGqC48HLUQl3YqgIJdYga6p3G7b13w42c1nF%0Ah1E%2BHlzLOEPiRTEk4eg%3D%0A) When Claude completes the task, it pushes the changes to a new branch in your GitHub repository. You receive a notification and can review the changes, then create a pull request directly from the interface. The pull request includes all of Claude's work, ready for your review and any additional changes you want to make. diff --git a/content/support/12626668-use-quick-entry-with-claude-desktop-on-mac.md b/content/support/12626668-use-quick-entry-with-claude-desktop-on-mac.md index 9bcd558e3..858886cb2 100644 --- a/content/support/12626668-use-quick-entry-with-claude-desktop-on-mac.md +++ b/content/support/12626668-use-quick-entry-with-claude-desktop-on-mac.md @@ -40,7 +40,7 @@ When you first open the updated version of Claude Desktop, you'll see a prompt t Once enabled, double-tapping Option will open a text box where you can type your message and start a new chat. You can also click "New chat" to see your five most recent conversations. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1893088365/2ca4b782dda90abea1fe5f4150af/CleanShot+2025-12-18+at+13_14_30%402x.png?expires=1789067700&signature=f004fabaa977ccdda78d2a4d722e74304846d9677e7b283fe724c120f02d358e&req=dSguFcl2lYJZXPMW1HO4zWggD9dRoJudRC8c%2FcM5c2Ko4MvAJlV3HdM1CRpC%0A48jcduCtQyRErl9cdws%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1893088365/2ca4b782dda90abea1fe5f4150af/CleanShot+2025-12-18+at+13_14_30%402x.png?expires=1789105500&signature=b94aa1623d7163c1e1a68b1fdcb0128e941a135efbddf9612bda2766a1051a97&req=dSguFcl2lYJZXPMW1HO4zWggD9dQppmfRC8c%2FcM5c2IVrQMxUiTQ%2FouMNOXY%0ARI%2F0xQR2p2JRtQLgCbc%3D%0A) ### Enable the voice shortcut (optional) diff --git a/content/support/12902446-claude-in-chrome-permissions-guide.md b/content/support/12902446-claude-in-chrome-permissions-guide.md index bad215e01..a68bdc8a9 100644 --- a/content/support/12902446-claude-in-chrome-permissions-guide.md +++ b/content/support/12902446-claude-in-chrome-permissions-guide.md @@ -28,7 +28,7 @@ In "Manually approve," Claude checks with you before it acts. What that looks li Claude creates a plan from your prompt, which you can approve before Claude starts. The plan specifies which websites you're allowing Claude to access, as well as the approach it will follow: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1843320727/8d1c859ae9b8e0cdb536d024bf40/9bc3d239-8eb6-4bae-a032-a236f88ee606?expires=1789067700&signature=31b7d4fb169ba214ab4de6770264a9e90fd3907c7e4c40bc824582350bab01f8&req=dSgjFcp8nYZdXvMW1HO4zYqyZctN%2BoWwgN0ADj5oqFDl4%2B6kfvKLhXOLdAQd%0Amb8bzuboPxgBy1gyyXk%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1843320727/8d1c859ae9b8e0cdb536d024bf40/9bc3d239-8eb6-4bae-a032-a236f88ee606?expires=1789105500&signature=3df39399dc861a3deffa294eb3b56c620aa71769a4492f6fd217358bb3b7b9c2&req=dSgjFcp8nYZdXvMW1HO4zYqyZctM%2FIeygN0ADj5oqFAXkiBgNeWrENI4k6Su%0Augp9MkaU7cVZwLQGTEg%3D%0A) Note that Claude will only use the websites listed in the plan, so you’ll need to manually approve any additional access requests. @@ -62,7 +62,7 @@ When you choose "Skip all approvals," Claude doesn't pause to ask, and nothing c There are some websites on which Claude requires approval for every action. If you navigate to one of these sites, a **New permissions required** prompt will appear in the extension side panel, Claude Cowork, or Claude Code where Claude will ask for permission before accessing the page or taking any action. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2604970825/d7b961271be69e7541b406df1efd/d845324e-6b4a-4f54-83b9-0bea86ec09c6?expires=1789067700&signature=317c30b1bc5a189379058ffacdd08425617abe4913b90c1838a9a112235fa6bf&req=diYnEsB5nYldXPMW1HO4zZ3Nqm9wjivr7A4lHPBihAVeSRmoZp16sNQUDk2H%0A2jsteGyRqK0eeVgEug0%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2604970825/d7b961271be69e7541b406df1efd/d845324e-6b4a-4f54-83b9-0bea86ec09c6?expires=1789105500&signature=bd8969d3fc863d5e47a635342910dfc395d9b133dc007880c75e2027a3d08f47&req=diYnEsB5nYldXPMW1HO4zZ3Nqm9xiCnp7A4lHPBihAWcDEvuv4LCsOUhr%2Bg9%0A%2B%2FnW1iLNuYyj3WV544U%3D%0A) ### Permission options diff --git a/content/support/12997503-team-plan-billing-faqs.md b/content/support/12997503-team-plan-billing-faqs.md index 20e40d653..373c8692a 100644 --- a/content/support/12997503-team-plan-billing-faqs.md +++ b/content/support/12997503-team-plan-billing-faqs.md @@ -18,7 +18,7 @@ Your organization's billing address determines where your invoices are sent. You If you want to use a name other than the one tied to your payment method, an organization Owner should check the "Use a different name on invoices" box when adding or updating your payment method in **[Organization settings > Billing](https://claude.ai/admin-settings/billing)**: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1922145253/f2e3d4e0fe43a2ea07e89244764c/image.png?expires=1789067700&signature=dd7718c0d854a61873a2b2c445538b9e7e3d9791cf0f17dfe15e185c800c0a34&req=dSklFMh6mINaWvMW1HO4zRZTxFPBvczUKAqLF4ERnlVLvFJOqFGITvLj7DKT%0AQbKsgW5j6YXwdXw0%2BdI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1922145253/f2e3d4e0fe43a2ea07e89244764c/image.png?expires=1789105500&signature=bc1e3d7d3669b6068f50b9afe466c0f0d34e8ae1e361e9f078674c26aeebdf45&req=dSklFMh6mINaWvMW1HO4zRZTxFPAu87WKAqLF4ERnlWQIdEYbO0VEppZgENA%0AWUoG7TjGDO9Qb8tShyc%3D%0A) ## When will I be billed? diff --git a/content/support/13132885-set-up-single-sign-on-sso.md b/content/support/13132885-set-up-single-sign-on-sso.md index 436a19f07..ddc98e795 100644 --- a/content/support/13132885-set-up-single-sign-on-sso.md +++ b/content/support/13132885-set-up-single-sign-on-sso.md @@ -42,7 +42,7 @@ You can verify multiple domains for a single organization, but all domains must 3. Enter the domain(s) you want to verify in the **Update organization email domains** modal and click the “+” button: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2498843282/561d5ceb1c3a5df75bdfee8bfc3f/d2491145-362d-490b-bdcf-66a0a7656ddc?expires=1789067700&signature=f475e3390d517b297ebc51ddd2864b63d854146cfae32bfaf725d1da72c427b5&req=diQuHsF6noNXW%2FMW1HO4zSdmHnU5%2FMOLe3H0OpmIzWFNuFmDAF%2BTpjuXLPbG%0AXEyi%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2498843282/561d5ceb1c3a5df75bdfee8bfc3f/d2491145-362d-490b-bdcf-66a0a7656ddc?expires=1789105500&signature=7079cb4e6a37d5fa8655189493807ad8084ee04a77d9b189a5a460013c502c4a&req=diQuHsF6noNXW%2FMW1HO4zSdmHnU4%2BsGJe3H0OpmIzWH8i4hi2wkPNBFXYeub%0AsltV%0A) 4. Click “Save” when you’re finished adding domains. @@ -50,7 +50,7 @@ You can verify multiple domains for a single organization, but all domains must 6. Enter your domain in the text box and click “Continue”: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2047042630/0617a562cd28a7ff0e607d66a30b/6bd08e1d-2b65-40ab-bc79-a257153854c1?expires=1789067700&signature=9ab928ef9127fab83e9f32547d8ae1ba2881527e20f38e8e21140b4b3ec365b5&req=diAjEcl6n4dcWfMW1HO4zWHctRSXkdatyoyXAW0OlXoZU0YgYlRttzF%2FIK9o%0AIEJ%2B%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2047042630/0617a562cd28a7ff0e607d66a30b/6bd08e1d-2b65-40ab-bc79-a257153854c1?expires=1789105500&signature=917289cde6f52a0be38552b607f595d8d5c8115c5e10255fc6a34ede499ba400&req=diAjEcl6n4dcWfMW1HO4zWHctRSWl9SvyoyXAW0OlXqQLV33IP0QQbuuUE8H%0A3cr%2F%0A) 7. The setup screen displays a TXT record. **Copy the full Value using the copy button**—it begins with `anthropic-domain-verification-` and is longer than what's visible in the box. In your DNS provider, add a TXT record to your domain and **Value** set to the copied string. The domain must match exactly what you entered in the previous step, including any subdomains. Add it alongside any existing TXT records; don't replace them. The value is case-sensitive, so paste it exactly. Please refer to your DNS provider's documentation on this topic. @@ -76,7 +76,7 @@ Clicking "Refresh" re-checks your DNS; it won't show Verified until the publishe If the record is correct and propagated but the status still shows Pending, contact Support. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2047044496/b8df54a0331784cc9ae8f00112aa/bf9609c1-dc93-4665-a066-4cae2fe4b002?expires=1789067700&signature=16a3ab6e90a99ad9d1c0084ca5b968c25f90596d8764ff64d40fe1fcdc0619c1&req=diAjEcl6mYVWX%2FMW1HO4zVjmWSAAaXO%2BPM2D8ZcdgrjNEEuCHfMF4yyjlxlb%0AiK7zGvo9mmTBVIzTAzc%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2047044496/b8df54a0331784cc9ae8f00112aa/bf9609c1-dc93-4665-a066-4cae2fe4b002?expires=1789105500&signature=242b8f43300e855ab75de697fd781c9ca3d3c2722f0d42cc9ccd98f065be7827&req=diAjEcl6mYVWX%2FMW1HO4zVjmWSABb3G8PM2D8ZcdgrhvP7hfQK0b5C31%2B%2Bs0%0A1YuNQdQ2AbyFqZ5W7qc%3D%0A) **Note:** Once your domain is verified, you'll see a **Restrict organization creation** toggle under **Security** on the Organization and access organization settings page. Enable this if you want to prevent users from creating new Claude or Console organizations—including personal accounts—using your verified domains. @@ -116,7 +116,7 @@ For IdP-specific setup instructions, see: You can now choose to toggle on **Require SSO for Console** and/or **Require SSO for Claude,** on the **Organization and access** page, under the **Authentication** section: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312690200/bd2403586d4f6651ccd79e2a45af/b9f8d7ce-0def-49d9-bfb2-3a14352d7214?expires=1789067700&signature=2cf81df41d86989b7c751f056eeeedd71767d8300e2cadac955f1af118c8e59c&req=diMmFM93nYNfWfMW1HO4zdAICwahBHsNItXtKivx6ZHsfFxraSes1mX6%2Fb%2FA%0A7YS33sOV2Y3CHkTtflQ%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312690200/bd2403586d4f6651ccd79e2a45af/b9f8d7ce-0def-49d9-bfb2-3a14352d7214?expires=1789105500&signature=c04d669b6b1f341d5c3ae9208fd952a4ad1007ab3c7b6ae3785551cf02f93201&req=diMmFM93nYNfWfMW1HO4zdAICwagAnkPItXtKivx6ZHaKmkHTUBKDD5nNs7L%0A%2BDOQHF3Trmhouo4OfSI%3D%0A) When SSO is required, users must use the “Continue with SSO” option to log in to their Claude/Console accounts. When SSO is not required, they will have the option to choose “Continue with SSO” or “Continue with email.” diff --git a/content/support/13133195-set-up-jit-or-scim-provisioning.md b/content/support/13133195-set-up-jit-or-scim-provisioning.md index d3a876a87..f547c6490 100644 --- a/content/support/13133195-set-up-jit-or-scim-provisioning.md +++ b/content/support/13133195-set-up-jit-or-scim-provisioning.md @@ -36,7 +36,7 @@ Use this table to help decide which provisioning mode is right for your organiza Both JIT and SCIM can be combined with **Enable group mappings** to control role or seat tier assignment based on IdP group membership. If you select either of these options for your provisioning mode, **Enable group mappings** will appear within the **User provisioning** section: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312706099/35d5d3ec149880a96bb7acec59f6/a4cfce55-86bf-40b0-b455-c8f412d48e9e?expires=1789067700&signature=51c5596b83b9f853105f8fd05260192959f14967ea40a88bc62407f1141e0bdb&req=diMmFM5%2Bm4FWUPMW1HO4zXBDQ6JUC11xxFMG%2BIEvQScKf1oWPWB1DUl42JHv%0AiXUAUexDsn9zCyKO5io%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312706099/35d5d3ec149880a96bb7acec59f6/a4cfce55-86bf-40b0-b455-c8f412d48e9e?expires=1789105500&signature=9415ce97ca8eb215e094e2f0a641747912403b5b319129472000065da7f4d304&req=diMmFM5%2Bm4FWUPMW1HO4zXBDQ6JVDV9zxFMG%2BIEvQSdjJuAIQtJYG1J4znJ4%0AYa68uqweHqopYjdCyw4%3D%0A) **Important:** Group mappings set a user’s role type and seat tier only. Users with the Custom role get their permissions from groups in Claude, and those groups sync from your IdP only when your provisioning mode is SCIM directory sync. With JIT, you need to create groups and add users to them manually in **[Organization settings > Groups](https://claude.ai/admin-settings/groups)**. If you map an IdP group to the Custom role under JIT without doing this, those users have no permissions when they log in. Learn more about **[managing groups on Enterprise plans](https://support.claude.com/en/articles/13799932)**. @@ -122,7 +122,7 @@ Once your IdP is connected, continue to Step 3. 4. Toggle **Enable group mappings** on (if it’s not already): - ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312714635/b57870b51e6511c8293637bceee2/da1ceabc-b6bc-451b-9cda-24ff6aa90d02?expires=1789067700&signature=14219452f6f25e78de385ef560dece60884d6c8422565b6f24aebd4352bbf9c5&req=diMmFM5%2FmYdcXPMW1HO4zeBEbszYkf1Pyb72rapuHpOO6V8%2FwYa3f03ZeFrR%0A6zxY%0A) + ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312714635/b57870b51e6511c8293637bceee2/da1ceabc-b6bc-451b-9cda-24ff6aa90d02?expires=1789105500&signature=087ae45c473574237961365e8ed5e37bb535b57301776286983dae331a55ce74&req=diMmFM5%2FmYdcXPMW1HO4zeBEbszZl%2F9Nyb72rapuHpMro1JpEcY9BzAhGhfN%0Am0My%0A) 5. In the **Enable group mappings** section, click “Add” next to each role and select the corresponding group from your IdP in the dropdown. @@ -174,7 +174,7 @@ Verify you have enough seats purchased and available to add members to your org. 4. **For SCIM:** Click "Sync" to prompt an immediate sync, or wait for the automatic sync cycle: - ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312717421/c97fce49ad17d4660880a05fbaaf/59fbfa2a-1072-4662-8ca5-102970d5a795?expires=1789067700&signature=404a663ca37749bbbd33c324f2eb1a1265e1380314f6d9497a36fbc461dbeafa&req=diMmFM5%2FmoVdWPMW1HO4zZ9La1StH83F5hujYvMis4eLLmktdKsDfrZtU7Zw%0A74QF%0A) + ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312717421/c97fce49ad17d4660880a05fbaaf/59fbfa2a-1072-4662-8ca5-102970d5a795?expires=1789105500&signature=bf410f8137f5afc748bd280c2dc148f4c64f5f172929f142c5ad71f129ccf885&req=diMmFM5%2FmoVdWPMW1HO4zZ9La1SsGc%2FH5hujYvMis4c7d4OzyIskcDUm%2FSNk%0ASRqT%0A) ### Users mapped to the Custom role can't access anything after logging in diff --git a/content/support/13163631-configuring-session-security-settings.md b/content/support/13163631-configuring-session-security-settings.md index 1d2a23364..f3dcc6c0b 100644 --- a/content/support/13163631-configuring-session-security-settings.md +++ b/content/support/13163631-configuring-session-security-settings.md @@ -18,7 +18,7 @@ Session duration controls allow Enterprise and Console Admins to set a maximum s 5. Confirm your selection by clicking “Enable.” -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1888469436/1725e63ea1a2615948faecf4ec73/9bd276a1-7329-414d-87a1-d04dac93fff7?expires=1789067700&signature=068e30b81df7e837492a418da0149fd0c82dc1c44a915e23d2b3123417c65108&req=dSgvHs14lIVcX%2FMW1HO4zQNx6%2BsnRV1Xg%2F6XaftFnjzb6pMyIUh3%2BGpuzD2c%0Aantu%2BN0RfhEZZp%2B%2BjmA%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1888469436/1725e63ea1a2615948faecf4ec73/9bd276a1-7329-414d-87a1-d04dac93fff7?expires=1789105500&signature=8f0355880d2fbc07d73daca0dd5e5db13163ec63e80d3d01c3eec009073c1d02&req=dSgvHs14lIVcX%2FMW1HO4zQNx6%2BsmQ19Vg%2F6XaftFnjzOBVybs19vYgflO%2BTp%0APfHKnyBbSXxeMFerGkM%3D%0A) ### For Console Admins @@ -32,7 +32,7 @@ Session duration controls allow Enterprise and Console Admins to set a maximum s 5. Confirm your selection by clicking “Enable.” -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1888469435/7a766bbe02e61c7d8f05deb5b8f0/b0bda400-47c6-43dd-9907-131ebe180b36?expires=1789067700&signature=aac4e9bc49fffb3cebc79faf93321351728f21bbf18a2071cfaf4c6d74f865b7&req=dSgvHs14lIVcXPMW1HO4zWzx2LA2IXgmXZ5D7eVpMteDbgTmZNv9RSqBaxNg%0A4jCySGTXACzXA2%2FhxPI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1888469435/7a766bbe02e61c7d8f05deb5b8f0/b0bda400-47c6-43dd-9907-131ebe180b36?expires=1789105500&signature=dc67f9618a873585f4e1ab1f7cfad2dad00e076350696d7576c53d4b648fa724&req=dSgvHs14lIVcXPMW1HO4zWzx2LA3J3okXZ5D7eVpMtcT%2BIioWxkNTPsG3UXh%0AGEEdhUIoVukm86Au9wc%3D%0A) ### What happens after enabling shortened session length? @@ -50,7 +50,7 @@ You can change the session duration at any time by selecting a new value from th - Sessions scheduled to expire beyond the new duration will have their expiration shortened accordingly. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1888469437/46ac5bc55484ca01556d87a5ade7/b01a7651-ad65-4b32-93ff-16dbc9ca97c0?expires=1789067700&signature=c2172ef1954f280bddb25c1454f734b4ad0eae95fe8a13384daefac828c01902&req=dSgvHs14lIVcXvMW1HO4zZ7mWsGb4T6kA00cbyPOLDXH1fyT2HJ9HdpMM2sy%0AHYU8GSbPD%2Fo0NIoulzI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1888469437/46ac5bc55484ca01556d87a5ade7/b01a7651-ad65-4b32-93ff-16dbc9ca97c0?expires=1789105500&signature=1f323d90a56195e4788d376687d0e68e1a326d1a100a14a400fad9adcef82cd4&req=dSgvHs14lIVcXvMW1HO4zZ7mWsGa5zymA00cbyPOLDUa%2FJzYL7CNGt0qYEV8%0Ap23%2FjFLgJT8ii5Vd0Po%3D%0A) ## Disabling session length settings diff --git a/content/support/13189465-log-in-to-your-claude-account.md b/content/support/13189465-log-in-to-your-claude-account.md index 9e087d0f3..f4100fe2a 100644 --- a/content/support/13189465-log-in-to-your-claude-account.md +++ b/content/support/13189465-log-in-to-your-claude-account.md @@ -2,7 +2,7 @@ When you open Claude on a web browser ([claude.ai](http://claude.ai)), the desktop app, or a mobile app, you will see two different options for logging in to your Claude account. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1893216804/f2209c3ec6cf4fc2e803d13bbc9d/40520c9e-ff82-4a7c-adca-5a064fe18d8c?expires=1789067700&signature=070e374be62e7b1ea2f7b0502f17406537a96c7e9b06b28cc30769c7fe037e9b&req=dSguFct%2Fm4lfXfMW1HO4zXg5BouM5RWzzWhrqpWiTMkYOHnI46NAG1cFl8BA%0A4XIoCCnZNbNP3eAaz44%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1893216804/f2209c3ec6cf4fc2e803d13bbc9d/40520c9e-ff82-4a7c-adca-5a064fe18d8c?expires=1789105500&signature=fcdb8beb0d5a7cdb19fcef120f3960fda292c88182050269fe9687833f7dede9&req=dSguFct%2Fm4lfXfMW1HO4zXg5BouN4xexzWhrqpWiTMntBaJGmjqYsYUjL8jY%0Alj8zYNwlpJHpaTEy9VQ%3D%0A) ## Continue with Google diff --git a/content/support/13325567-account-management-faqs.md b/content/support/13325567-account-management-faqs.md index 15453d989..96065154c 100644 --- a/content/support/13325567-account-management-faqs.md +++ b/content/support/13325567-account-management-faqs.md @@ -44,6 +44,6 @@ The email domain that was used to create your Team or Enterprise plan organizati Owners can remove domains by opening up the same modal and clicking the trash can icon to the right of the domain: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2053873852/1cbccea3b7067e03205f2ff8546b/CleanShot+2026-02-11+at+11_16_07%402x.png?expires=1789067700&signature=d196d95eb2ffa383c240e1c070b6b5fcb92c6f6aa5dd18381fec6379bf233b14&req=diAiFcF5nolaW%2FMW1HO4zUrhFuKYbw8dkeFUnrkrQZj%2BRp1VB5cFZvW2v9xM%0AlhMJ8mnTVzou2W%2FjiEU%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2053873852/1cbccea3b7067e03205f2ff8546b/CleanShot+2026-02-11+at+11_16_07%402x.png?expires=1789105500&signature=adb41d2711b02a0439e752451998e814c94edbc8a8e5af8137916de7fd963e44&req=diAiFcF5nolaW%2FMW1HO4zUrhFuKZaQ0fkeFUnrkrQZir9mEIxDcH638tlC%2F8%0AoTH6yxsvKwRjsqVfoM8%3D%0A) While the account creator must use a business email address, you can add public domains like @gmail.com, @yahoo.com, and @hotmail.com as allowed domains for other members of your organization. \ No newline at end of file diff --git a/content/support/13345190-get-started-with-claude-cowork.md b/content/support/13345190-get-started-with-claude-cowork.md index 97729316e..785239bb5 100644 --- a/content/support/13345190-get-started-with-claude-cowork.md +++ b/content/support/13345190-get-started-with-claude-cowork.md @@ -178,7 +178,7 @@ To set global instructions: 3. Type your instructions in the text box and click "Save": -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2525926874/15324ac4155d7802272e8bdef04b/ec66cd09-a4db-4f1d-8f30-226c9d126333?expires=1789067700&signature=03097ac61cd4f8222d07ec0fd9e6e5a55cb97c385f02bb65f5c15cc944349696&req=diUlE8B8m4lYXfMW1HO4zcDl6tHsMFa38iWjaktE940bfCgkIs8pntziWtKm%0AfHnA4E%2BFvN4SMOMJqjU%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2525926874/15324ac4155d7802272e8bdef04b/ec66cd09-a4db-4f1d-8f30-226c9d126333?expires=1789105500&signature=220b2d913d8d22b23b69346fa5ec0038f26f5eec4006d0f8b407ab679ad5397e&req=diUlE8B8m4lYXfMW1HO4zcDl6tHtNlS18iWjaktE941WaP1A005xAnryePQy%0AU%2FNYaqiXDR0X9h2sZv0%3D%0A) ### Folder instructions diff --git a/content/support/13346458-customizing-your-console-appearance-settings.md b/content/support/13346458-customizing-your-console-appearance-settings.md index d4e22e28c..e13d3e581 100644 --- a/content/support/13346458-customizing-your-console-appearance-settings.md +++ b/content/support/13346458-customizing-your-console-appearance-settings.md @@ -8,4 +8,4 @@ 3. Select from Light, System, or Dark under **Color mode**. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1922579101/ede30d38dca693c59f9c15d79e69/CleanShot+2026-01-08+at+15_45_20%402x.png?expires=1789067700&signature=eccba65f26480a314d33e67e261b0700da98c0bfb07f33edaa035c64bb177994&req=dSklFMx5lIBfWPMW1HO4zRpFC8EESxVxO9Kw38RlAYLdMPUSYCnt%2Fb874Jkn%0A0rfmRw9KeopB2q6jMEc%3D%0A) \ No newline at end of file +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1922579101/ede30d38dca693c59f9c15d79e69/CleanShot+2026-01-08+at+15_45_20%402x.png?expires=1789105500&signature=51f03022746226e982ff2e6c2f8021749298bf4dcb3829d7b65b8ad860d101bd&req=dSklFMx5lIBfWPMW1HO4zRpFC8EFTRdzO9Kw38RlAYLsSxqXverM8oiik8Rp%0AOnb1MPkfNUeuLLl%2Fq7U%3D%0A) \ No newline at end of file diff --git a/content/support/13371040-log-in-to-your-console-account.md b/content/support/13371040-log-in-to-your-console-account.md index 400c4cf2d..2e264cb07 100644 --- a/content/support/13371040-log-in-to-your-console-account.md +++ b/content/support/13371040-log-in-to-your-console-account.md @@ -2,7 +2,7 @@ When you navigate to the **[Claude Console](https://platform.claude.com)**, you will see two different options for logging in to your Console account. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1935026646/d90d1613a3dbe763fef5abb96e3c/image.png?expires=1789067700&signature=6fcbfa0c8fd5f65abef5f33d6a2728435ee6beed20b1a197865b7d3d24fcd746&req=dSkkE8l8m4dbX%2FMW1HO4zcrI54DspocK8vUNcPt4%2B73ocrcNo1iYN7zYP9us%0AeeDq2jCavhupZ3KE1TI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1935026646/d90d1613a3dbe763fef5abb96e3c/image.png?expires=1789105500&signature=d808d0420e081187895ef06d93fd5e2275ce651b4c77d597973989022dcd4539&req=dSkkE8l8m4dbX%2FMW1HO4zcrI54DtoIUI8vUNcPt4%2B70kANWzWFfekyd%2BxAV5%0A38VSMcYDyC6sEcfqnPg%3D%0A) ## Continue with Google diff --git a/content/support/13641943-visual-and-interactive-content.md b/content/support/13641943-visual-and-interactive-content.md index 9fc01a490..625e89b5f 100644 --- a/content/support/13641943-visual-and-interactive-content.md +++ b/content/support/13641943-visual-and-interactive-content.md @@ -18,7 +18,7 @@ Claude can show current weather conditions and forecasts when you ask about the Claude automatically displays temperatures in Fahrenheit for US locations and Celsius for everywhere else. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2040544927/3a9c695b24df387ecdd766ad308c/8be9f393-dcb0-4ff8-89e8-5fa47bedaa38?expires=1789067700&signature=b527ce3e046b75ed98c305ffbc8545eaf8b12544967b3c40dcb98b064cb80b57&req=diAjFsx6mYhdXvMW1HO4zXlB7Te60x%2BPdgndksVD5R1wWEQ3H0yEkNj7KRQR%0AsFAh7FtY4JFoISJ9sBo%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2040544927/3a9c695b24df387ecdd766ad308c/8be9f393-dcb0-4ff8-89e8-5fa47bedaa38?expires=1789105500&signature=142050ef0fa5063f6952dfeee96068e0631c5dd81aa7135b8993babe2bff27c1&req=diAjFsx6mYhdXvMW1HO4zXlB7Te71R2NdgndksVD5R2S9NpN%2BI%2F4b3OhsHu%2F%0AiuqRiSD0Ir2O2cYJotQ%3D%0A) Weather is powered by Google Maps (<https://policies.google.com/privacy>). @@ -28,7 +28,7 @@ When you ask about recipes, Claude can display formatted recipe cards that are e **Note:** Visual recipe cards are available on web and desktop only. On mobile, Claude provides recipe information as text in the conversation. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2040544929/12f4c51eda7779d65d3ea2c7ab16/d0f4a314-cff8-421a-b401-10c2bf50374e?expires=1789067700&signature=27ff3ebacd157df6395f4f209e7a8dfd6d841af514b5094ffacdab1f0caa297a&req=diAjFsx6mYhdUPMW1HO4zUQpe7kV1FOQrIPm%2FImZVg2Fw0hgWclb0oAYWmZU%0Aa5u52t0jOjw%2FE4s5GAc%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2040544929/12f4c51eda7779d65d3ea2c7ab16/d0f4a314-cff8-421a-b401-10c2bf50374e?expires=1789105500&signature=d45b89fd8579cfd0b1c17ad61373bc2089948297f95c429bb594a25d6473d13b&req=diAjFsx6mYhdUPMW1HO4zUQpe7kU0lGSrIPm%2FImZVg3sTmq79AaoXHfYfaZU%0ASU7f3WNHP0b9KSq66FY%3D%0A) ### Custom visuals @@ -76,7 +76,7 @@ For example, if you ask Claude to help you plan a trip, it might ask you to: This content appears at the bottom of the chat. You can still type a response if you prefer. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2040544930/9ad066e137d11e4b559b0217e12d/9bf30d2d-1715-42b3-9da5-2a9298f41f08?expires=1789067700&signature=be5803cb8d0c1e2b0f870d6569327f26d9425957b877f9e03adfe5feed22bd6a&req=diAjFsx6mYhcWfMW1HO4zWmF5%2Fy%2Bbxmlx4wz0C7CTAI6svp%2BhoVKh407KTge%0A3sSfRUJLkmq5ytAlNQk%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2040544930/9ad066e137d11e4b559b0217e12d/9bf30d2d-1715-42b3-9da5-2a9298f41f08?expires=1789105500&signature=be42fd938fdf49871263572a132576cb26cb52d8f4216cecfcd7e79590816e38&req=diAjFsx6mYhcWfMW1HO4zWmF5%2Fy%2FaRunx4wz0C7CTAJgpkZ6AS59HJS6nowZ%0AvmoHzYCMRDSAINIlYlg%3D%0A) --- diff --git a/content/support/13756069-public-sector-faqs.md b/content/support/13756069-public-sector-faqs.md index 1cc87118d..9f81f4fa2 100644 --- a/content/support/13756069-public-sector-faqs.md +++ b/content/support/13756069-public-sector-faqs.md @@ -6,7 +6,7 @@ Select your product based on both your technical/functional requirements, and also your compliance/security/deployment environment requirements. Here is a list of options: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2197717161/79965a24090029e9e58c727c3c24/pubsec-product-matrix_png+%281%29.jpg?expires=1789067700&signature=52b16b92679dcce6df23680879dd377f5cbc3afbe69245fe34c9469edfdf1ab6&req=diEuEc5%2FmoBZWPMW1HO4zU94LlAlG9o32WxtU42UVC39yG3ymESfrzbgTS%2FS%0Ae0tpeROh3MKC9t3CNYI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2197717161/79965a24090029e9e58c727c3c24/pubsec-product-matrix_png+%281%29.jpg?expires=1789105500&signature=e3c4d2e9a46edf8460cfb3d482c46db03240d615d0e2b44316015f03b19aa62d&req=diEuEc5%2FmoBZWPMW1HO4zU94LlAkHdg12WxtU42UVC0q0UCODq9Bcv%2FDt84v%0AbRjSAjFpIKpOlI6RCRw%3D%0A) ### What is Claude for Government (C4G)? diff --git a/content/support/13837433-manage-plugins-for-your-organization.md b/content/support/13837433-manage-plugins-for-your-organization.md index 0a4fedc75..b8f3eff8a 100644 --- a/content/support/13837433-manage-plugins-for-your-organization.md +++ b/content/support/13837433-manage-plugins-for-your-organization.md @@ -112,7 +112,7 @@ Your personal GitHub token is verified to confirm you have access, then Cowork u An initial sync runs automatically when you connect a repository. After that, organization owners can opt-in to continued automatic updates per marketplace by going to **[Organization settings > Plugins](https://claude.ai/admin-settings/plugins)**, clicking the menu button in the upper right corner of the marketplace, then toggling "Sync automatically" on: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2193200015/a239033a9ab19fbd39f1a0d9edce/CleanShot+2026-03-23+at+11_41_31%402x.png?expires=1789067700&signature=fb3c9cddc310448505a369557961708a65cd968a83fe36cf88bda7366c22194d&req=diEuFct%2BnYFeXPMW1HO4zUYv5tT5x3gTRDH%2FtUo5ov51b%2F772xKqXPy4XcEV%0AelCW%2FKf6D4I7Y9%2F2N98%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2193200015/a239033a9ab19fbd39f1a0d9edce/CleanShot+2026-03-23+at+11_41_31%402x.png?expires=1789105500&signature=7fe102c15d0e18afd8223eea94265af0e941b4120b50adb09374bada42d3f321&req=diEuFct%2BnYFeXPMW1HO4zUYv5tT4wXoRRDH%2FtUo5ov7BeLQU%2Ftz%2B%2Fo6T81kg%0A5AJmyjgSSeNsykWZAS0%3D%0A) Enabling automatic sync creates a webhook on the connected repository. The person turning the toggle on must have admin-level access to that repository on GitHub. This is checked through their personal GitHub connection, which is separate from the Claude GitHub App installation. Without admin access, the page shows "Cannot access repository. Ensure the repository exists and the Claude GitHub App is installed," even when the App is installed correctly and manual updates work. diff --git a/content/support/13837440-use-plugins-in-claude.md b/content/support/13837440-use-plugins-in-claude.md index 74945188e..598e89375 100644 --- a/content/support/13837440-use-plugins-in-claude.md +++ b/content/support/13837440-use-plugins-in-claude.md @@ -40,7 +40,7 @@ In Cowork, open the "Cowork" tab first, then open **Customize**. You can also upload a custom plugin file if you built one yourself. On Team and Enterprise plans, a colleague can share a plugin with you directly instead of sending you the file. See **[Use a plugin shared with you](#h_ef985546b4)** below. On Claude Desktop and in Cowork, plugins you add yourself are saved locally to your computer. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2100409211/fc01614dde1a616fa31ffaa9cb04/47bacf5b-a810-45b5-a468-9769f1a58ef8?expires=1789067700&signature=89a731cb3cca29b1dda58bdc243b2c2965faed54e892be6bece5859c59c42815&req=diEnFs1%2BlINeWPMW1HO4zZF3IhzdNfJSxakFVfq5Wwy92vKjtqr63Z8uwusS%0A6saNNoNWlP0d0x3lA%2Fw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2100409211/fc01614dde1a616fa31ffaa9cb04/47bacf5b-a810-45b5-a468-9769f1a58ef8?expires=1789105500&signature=acc5585f3d9ea68beabc00815288785cf52a9da58ce0f093a93c823c0b652bd6&req=diEnFs1%2BlINeWPMW1HO4zZF3IhzcM%2FBQxakFVfq5Www6tD5OE7AIAcCdLOoW%0ADcfRgXS88jai4uhYFjE%3D%0A) If you're on the Enterprise plan and your organization has skill scanning turned on, plugins are checked for malicious content when they're installed or updated. A plugin with malicious content is blocked, and one that may carry risk shows a caution banner. Learn more about **[skill and plugin scanning](https://support.claude.com/en/articles/15927065)**. @@ -50,7 +50,7 @@ If you're on the Enterprise plan and your organization has skill scanning turned Each plugin you install adds skills you can use while working with Claude. Type "/" or click the "+" button to see the available skills from your installed plugins, in chat and in Cowork. Click any skill to see its details. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2157396844/4a790e10f5b88df770783df1d7e9/image.png?expires=1789067700&signature=bfb407d27cc8a5e1c7aa9df35d2a965880a338ff783b038fdacb3b1e80224fcc&req=diEiEcp3m4lbXfMW1HO4zf4NBP%2F8hUeTmKUxugP2BQssz0Kdbjw11Bm1Sr3C%0AyNGzVCx1BDW2ZC5oZ98%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2157396844/4a790e10f5b88df770783df1d7e9/image.png?expires=1789105500&signature=e444147787ae2d361b61afb1ebe1d3e8b77d1357881791a26ae2a28329e7c92e&req=diEiEcp3m4lbXfMW1HO4zf4NBP%2F9g0WRmKUxugP2BQtTiNUMaQGW9TCK07Ug%0AnK8ALflgRirmsM%2FRW5o%3D%0A) --- diff --git a/content/support/13854387-schedule-recurring-tasks-in-claude-cowork.md b/content/support/13854387-schedule-recurring-tasks-in-claude-cowork.md index 50386affd..53cf54bab 100644 --- a/content/support/13854387-schedule-recurring-tasks-in-claude-cowork.md +++ b/content/support/13854387-schedule-recurring-tasks-in-claude-cowork.md @@ -52,7 +52,7 @@ There are two ways to create a scheduled task: 6. You can explicitly confirm you want to schedule the task when prompted by Claude by clicking “Schedule": -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2104085399/4dda7e6f76026fd827db0b9323a9/f20635bf-15e7-4978-a213-5b9f67e9fb9a?expires=1789067700&signature=56c54bbd9f727dd74168cbb1164f85789e47fcb3e5800b08ea82b2cb1a057a59&req=diEnEsl2mIJWUPMW1HO4zeLJBkzk%2Be2APx%2FSrZI7l8wqk%2Fs8rzGmZTNy10sP%0AhAyS%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2104085399/4dda7e6f76026fd827db0b9323a9/f20635bf-15e7-4978-a213-5b9f67e9fb9a?expires=1789105500&signature=d08d3b000e9912960a4986fb22aa39c46739109461f8658dd4643f894552ea14&req=diEnEsl2mIJWUPMW1HO4zeLJBkzl%2F%2B%2BCPx%2FSrZI7l8wb0pF6O3C05SzfEJmP%0AIBig%0A) 7. Claude will create and schedule your task, and it will be added to the **Scheduled tasks** page. diff --git a/content/support/13947068-assign-tasks-from-anywhere-in-claude-cowork.md b/content/support/13947068-assign-tasks-from-anywhere-in-claude-cowork.md index 98497c261..909696792 100644 --- a/content/support/13947068-assign-tasks-from-anywhere-in-claude-cowork.md +++ b/content/support/13947068-assign-tasks-from-anywhere-in-claude-cowork.md @@ -48,11 +48,11 @@ Follow these steps to get started: 5. You’ll land on a page describing the functionality. Click “Get started”: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2169954086/419674f781edb2977b93cce062b4/93b1893c-d79a-4eb6-b2f1-2fe3e043bd90?expires=1789067700&signature=8abc73196c8704ac9b0be2e068aed596ca2743dd343d0e9ebd48a7d01de0a274&req=diEhH8B7mYFXX%2FMW1HO4zSZP0puLEwn4B32drIe5EDkdVQeP7rz%2FsxB5C7hy%0A1CbU%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2169954086/419674f781edb2977b93cce062b4/93b1893c-d79a-4eb6-b2f1-2fe3e043bd90?expires=1789105500&signature=8653024f5f7792414f2bda21846ae8277c2787d6754c6e28b3b755a6a8ac8734&req=diEhH8B7mYFXX%2FMW1HO4zSZP0puKFQv6B32drIe5EDleg1pFgXS%2BXK8r90D6%0Ash%2BI%0A) 6. On the next screen, you can give Claude access to your files and keep your computer awake by toggling those on: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2169955082/de4053ee0eab8fcb9263584bb171/d39b77da-1a69-4682-9fdb-7ed488f236b0?expires=1789067700&signature=8c46b6fbdc5497cc09fb14ee8c5c7a97b86b484513fcabdcbbdfc0d68bca7eee&req=diEhH8B7mIFXW%2FMW1HO4zaZWs9OYWwYZepuGRb1rD3KLLscTDQd6EVoEELy8%0AE%2BYo%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2169955082/de4053ee0eab8fcb9263584bb171/d39b77da-1a69-4682-9fdb-7ed488f236b0?expires=1789105500&signature=69b11e0c0b61139aa1cdf54687230c1df834f667d5166d3fed71cc2756c1637c&req=diEhH8B7mIFXW%2FMW1HO4zaZWs9OZXQQbepuGRb1rD3LrTPHDxk8%2B4CCEMyYZ%0Aqtxx%0A) 7. Click “Finish setup.” diff --git a/content/support/14116274-organize-your-tasks-with-projects-in-claude-cowork.md b/content/support/14116274-organize-your-tasks-with-projects-in-claude-cowork.md index 854415ff0..117c3ee51 100644 --- a/content/support/14116274-organize-your-tasks-with-projects-in-claude-cowork.md +++ b/content/support/14116274-organize-your-tasks-with-projects-in-claude-cowork.md @@ -22,23 +22,23 @@ Cowork is available for paid plans (Pro, Max, Team, Enterprise) on: Find **Projects** in the left navigation panel and click the “+” button to see the three different ways to create a project: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2183720240/6f6ef438913391703598d86d606c/CleanShot+2026-03-20+at+09_11_43.png?expires=1789067700&signature=08e96214e1b00978afe676bde198afe015d0ab938b39af28317f2c35357e21bc&req=diEvFc58nYNbWfMW1HO4zcOgiwy61y9yZwSvwegvtgy3PdSqBJKD8vo2kwq5%0A%2B86Fw9kfH1MRhy4xcPA%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2183720240/6f6ef438913391703598d86d606c/CleanShot+2026-03-20+at+09_11_43.png?expires=1789105500&signature=dc6fbb8db44f805198116d27f3f839aeb05b262e36a3f63a5b60914ea87d7e28&req=diEvFc58nYNbWfMW1HO4zcOgiwy70S1wZwSvwegvtgxoiKzg5Q1XAhWHXMDN%0A9BWoG0kF9iNJhXPhMvI%3D%0A) ### Start from scratch Selecting “Start from scratch” allows you to set up a new folder with instructions and files: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2177090014/07832b50003cf7fd3b4e9c7c448b/3385d9b8-c3e7-42b9-ae3f-4d213baa53a7?expires=1789067700&signature=6f76519b622f8acbcd61baa6b66ec330f967b3155f50043db177eb75e0ab995f&req=diEgEcl3nYFeXfMW1HO4zZCoQ4RFSHKRvb0suCMAnj3rI0P2RI7z5ZUrOPTO%0Akrwq2I9uY10MvUkTxQc%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2177090014/07832b50003cf7fd3b4e9c7c448b/3385d9b8-c3e7-42b9-ae3f-4d213baa53a7?expires=1789105500&signature=ea8d3dd4872b493671842934a2ac9428ab6c2fcfe5f39f81f55ef42f879e72bc&req=diEgEcl3nYFeXfMW1HO4zZCoQ4RETnCTvb0suCMAnj2UCaEBUWARLTyXHYPe%0A5nvutsSfIACbA8ydytU%3D%0A) ### Import from a Claude project After selecting “Import from project,” you’ll see a “Search projects in Chat…” field: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2183717962/acdc11bcc825ae76a13f508365bc/CleanShot+2026-03-20+at+09_12_08.png?expires=1789067700&signature=dbba4632d6d146e7d5b58fc65d1e87fef8952e1b0e6caee10a4ee7cb3dc6cc8f&req=diEvFc5%2FmohZW%2FMW1HO4zQQ7UGpdzJ8YjggUT7FIJz9LnZe5srrgvUsXzWrM%0AHM4%2B6SPphMjnzXDYowQ%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2183717962/acdc11bcc825ae76a13f508365bc/CleanShot+2026-03-20+at+09_12_08.png?expires=1789105500&signature=90f6c0c413248113cdccec205e68ad5223191100b8a42c662b3b6e42a00d6e30&req=diEvFc5%2FmohZW%2FMW1HO4zQQ7UGpcyp0ajggUT7FIJz%2F4QuBSaX9l7yh46xu5%0A3KdJQPh34%2BxliRdrbHU%3D%0A) Clicking into the field will display a drop-down showing your recent projects, but you can also use it to search all your projects. After you select a chat project (bulk upload is not supported), you can name the new Cowork project and choose where to save it on your computer: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2183727973/7a25430123d9e13e7c3cdd411f70/CleanShot+2026-03-20+at+09_13_41.png?expires=1789067700&signature=04087f1024678d0275f4d2aeb6c5b876420798930f91f0cd90ff33d6485aeba4&req=diEvFc58mohYWvMW1HO4zU%2FKAipG%2BiTLI7f%2FdY0VL6iKouC%2Boum2n9rMt5B9%0APcDl6hgXder49Iw0fE4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2183727973/7a25430123d9e13e7c3cdd411f70/CleanShot+2026-03-20+at+09_13_41.png?expires=1789105500&signature=72347f808b0a337f58974cb82a8ae1386876b75ed87d6bf34943873f8c0b810a&req=diEvFc58mohYWvMW1HO4zU%2FKAipH%2FCbJI7f%2FdY0VL6gc%2F4sLANHrEFDz2lwM%0ASkmtw3%2Fcmi6DAXfnWGI%3D%0A) Clicking “Create” will transfer the files and instructions from your existing Claude project and create a new Cowork project. @@ -46,11 +46,11 @@ Clicking “Create” will transfer the files and instructions from your existin If you select “Use an existing folder,” you’ll be prompted to pick a file to use as context for the new Cowork project: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2177087935/2f0052dae601d0b7fecdc029e1c3/2e3ca9e7-23b1-436e-bbdb-edcd31c41f15?expires=1789067700&signature=6c4e33e61dca7415630c7530078ac1dded27edf8ce3a8ad6b96fddbb04cde33d&req=diEgEcl2mohcXPMW1HO4zejrnz%2FWEyRYuv8e2Xj2xOUQAinxBDZtQAngUDCK%0AifrETjE7z038vYweDK0%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2177087935/2f0052dae601d0b7fecdc029e1c3/2e3ca9e7-23b1-436e-bbdb-edcd31c41f15?expires=1789105500&signature=eebcc634bcd4fbc4c128cbb2e5135a2185aa181ecdae4d9c4d40637296d60915&req=diEgEcl2mohcXPMW1HO4zejrnz%2FXFSZauv8e2Xj2xOVaHfpRMffrCoLchpLJ%0AUmFk%2F%2FbTshhTQHioMgU%3D%0A) After selecting a folder, you can name the new Cowork project, choose where to save it on your computer, add instructions, and attach any additional files. Click “Create” to start using your new project: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2177087937/f59dbe3fc28448a9597ea097cb4d/96a59acb-4054-4b4b-a208-751f9711f535?expires=1789067700&signature=9aac824d70d838dcf8055be647530185090e43d58acfcbf023af3bc3d204dcf9&req=diEgEcl2mohcXvMW1HO4zUq4V%2Bq0haU9MfnqHouW6MKPIY3EVWiEJ76brX4W%0Au95Z7m53tRokUybPy%2FI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2177087937/f59dbe3fc28448a9597ea097cb4d/96a59acb-4054-4b4b-a208-751f9711f535?expires=1789105500&signature=a3166c3c79985e7f1cf3830546674b499aa836fb096e21938349825baeb878c9&req=diEgEcl2mohcXvMW1HO4zUq4V%2Bq1g6c%2FMfnqHouW6MIIjyBkoY1f%2BfjMX7s6%0AsGL5OOaIUgCeZJjZZa0%3D%0A) --- diff --git a/content/support/14499648-how-scim-sync-works-for-enterprise-organizations.md b/content/support/14499648-how-scim-sync-works-for-enterprise-organizations.md index 10a1cdf20..4ed7ad098 100644 --- a/content/support/14499648-how-scim-sync-works-for-enterprise-organizations.md +++ b/content/support/14499648-how-scim-sync-works-for-enterprise-organizations.md @@ -50,7 +50,7 @@ You can trigger a manual sync from two places in your admin settings. 2. Click "Check for updates" under **SCIM sync**: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312613548/44cd5970ee3c3b2c7f8dcd592d71/image+%2824%29.png?expires=1789067700&signature=7e9fcc40fd7312b7ff634a6bcfb9dcc30ebd5178045909d48b933b152ba7a7a9&req=diMmFM9%2FnoRbUfMW1HO4zW4gbDytM8qzrgfl7PnOiumltuBfQqRBnxZGfhvL%0AOJ8%2B%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312613548/44cd5970ee3c3b2c7f8dcd592d71/image+%2824%29.png?expires=1789105500&signature=7d516fef4d4465073eef8075ea90d21fc0172635fb4d7a52dd3cf755b4d7bd34&req=diMmFM9%2FnoRbUfMW1HO4zW4gbDysNcixrgfl7PnOiultDGBrr2FZPw8qy4cs%0AxZGL%0A) 3. Select whether to sync members, groups, or both. @@ -62,7 +62,7 @@ You can trigger a manual sync from two places in your admin settings. 3. Select whether to sync members, groups, or both: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312608119/e4b0ef4f309f3c4eac8311a6ef47/image.png?expires=1789067700&signature=8e3207207c46de8a4481705fc8bc1e0426a26ad4be7a13a47a54f52b0d8033f0&req=diMmFM9%2BlYBeUPMW1HO4zX%2F4frPwzTwY43OpyTHzM9TJrjj%2Bb8Hu7LOBIg9i%0AC0lU%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312608119/e4b0ef4f309f3c4eac8311a6ef47/image.png?expires=1789105500&signature=39bb863c6cdce4bb3d96a859eb2d3454bd0adf3a56aa646f72aa23cccff2c97b&req=diMmFM9%2BlYBeUPMW1HO4zX%2F4frPxyz4a43OpyTHzM9R7HmM3dZ0ffafloZFl%0AhQFF%0A) **Note:** If you trigger a manual sync while background changes are processing, your organization takes the most recent change for each member or group. If multiple changes are queued for the same member or group, you may need to resync again to make sure everything applies correctly. diff --git a/content/support/14503613-sso-login.md b/content/support/14503613-sso-login.md index 2c0b92b3e..db4c7927f 100644 --- a/content/support/14503613-sso-login.md +++ b/content/support/14503613-sso-login.md @@ -47,9 +47,9 @@ Before configuring your Identity Provider (IdP), you must verify ownership of yo 3. Wait for the DNS propagation. Once the platform detects the record, the domain status will update to “**Verified**.” -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256015862/476131c3139aec4db01b96127544/10c7a165-8b26-4443-b064-9d659659c65e?expires=1789067700&signature=d836a49e5a749373ce638b93e63ef141006d5f802fba5c66c8f82c63705fd47f&req=diIiEMl%2FmIlZW%2FMW1HO4zdpfuCOIHFSI006zz1SmF9WMMXmrcju9dvR25GlX%0Amzii5%2BOMz1hppBc0zyY%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256015862/476131c3139aec4db01b96127544/10c7a165-8b26-4443-b064-9d659659c65e?expires=1789105500&signature=c3b65bdaf3d0ac8e5aa2b1fee93a45e295ba8a5d7e81d0df691097499477a5eb&req=diIiEMl%2FmIlZW%2FMW1HO4zdpfuCOJGlaK006zz1SmF9XQTOEWPWmlkGBhD%2BBj%0ABUgqhMlJByY%2F%2F409Qx0%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256025910/a82e2de9382824fa9db7666f67c4/CleanShot%2B2026-04-09%2Bat%2B16_25_20-402x.png?expires=1789067700&signature=e6aedc9d6b1ce76d7eebde84add2175940c42e475ea0e1fe13ca0219ea84d325&req=diIiEMl8mIheWfMW1HO4zV%2BGnRA%2FRbhAx57dwYq5DdI6G256JJHm0j6X0%2B5X%0ApKtFxRPDW3JxhMpeeb8%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256025910/a82e2de9382824fa9db7666f67c4/CleanShot%2B2026-04-09%2Bat%2B16_25_20-402x.png?expires=1789105500&signature=84be8f74f245ae837019242d55918cb01985bd54a43f63837e2cb1eb32cea817&req=diIiEMl8mIheWfMW1HO4zV%2BGnRA%2BQ7pCx57dwYq5DdKUgEyIR4SbG26jGgwc%0AUaSGUhgScE%2BAr8Ujys8%3D%0A) **Important:** Each domain can only have one identity provider. If multiple organizations share a single login domain, IT administrators from both organizations will be able to modify login settings. Contact **[Anthropic Support](https://claude.fedstart.com/support)** for assistance with multi-organization setups. For more details about multi-organization setups, see our **[SCIM provisioning guide](https://support.claude.com/en/articles/14503643-set-up-scim-in-claude-for-government)**. @@ -77,7 +77,7 @@ Once your SAML application is set up in your IdP, provide Anthropic with the det - Claims Information — Attribute mappings for user name and email. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256004522/a97b91092b393e93b2d7779f63e6/2db86a6d-1582-419e-925e-cbc914468fa1?expires=1789067700&signature=0101bf55d65ea845bb6ddb235b1bf434d9aa49dc6223bb5397a8d253722be96c&req=diIiEMl%2BmYRdW%2FMW1HO4zQE9Jr62%2FBP8bfNHh%2Fvd8OHHrNaLN0Nc1kUUQ2Fq%0AohDH0pXkNH3x1V611%2B4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256004522/a97b91092b393e93b2d7779f63e6/2db86a6d-1582-419e-925e-cbc914468fa1?expires=1789105500&signature=f57afdb587286c1c7e6aa24287b654343dd6bd6c0a8e3a31082fd60f32d695cc&req=diIiEMl%2BmYRdW%2FMW1HO4zQE9Jr63%2BhH%2BbfNHh%2Fvd8OEfUGa2CsfSpykNMiwV%0AYdl3xfSJGd2wI54rOwA%3D%0A) **Tip:** Using a metadata XML file: Most IdPs let you download a metadata.xml file. Upload it on the identity settings page to auto-fill the Signing Certificate, IdP Entity ID, and SSO URL. Some IdPs (like Entra ID) also include claims information in the metadata file; if present, the system will suggest field mappings automatically. diff --git a/content/support/14503643-set-up-scim-in-claude-for-government.md b/content/support/14503643-set-up-scim-in-claude-for-government.md index 1eba20741..a6089303b 100644 --- a/content/support/14503643-set-up-scim-in-claude-for-government.md +++ b/content/support/14503643-set-up-scim-in-claude-for-government.md @@ -41,7 +41,7 @@ With SCIM, login and provisioning are separate. Your IdP tells Anthropic who sho **Important**: Store this key securely. It cannot be retrieved after you leave the page. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256040196/c3b045028c4c2edef9172b6fb424/9a71258e-ae73-41e3-83a2-d24a240ac0ae?expires=1789067700&signature=1a23501755c6ab97c0c36ab8d2307b3e755c82ee17ae5922d92076ab228377bd&req=diIiEMl6nYBWX%2FMW1HO4zSrRlaUfbzETyIvvU1hav7OteUuzWUHC%2BKuZorxl%0AST4P7AXuja3rrjEVmvc%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256040196/c3b045028c4c2edef9172b6fb424/9a71258e-ae73-41e3-83a2-d24a240ac0ae?expires=1789105500&signature=6e728c1813e95160ff2774edd526258f141682bdd4ae767f0b2264715c94ae70&req=diIiEMl6nYBWX%2FMW1HO4zSrRlaUeaTMRyIvvU1hav7PBWU4KFGzdUTBdmb8Q%0AjLAaU1r4GLQs%2BSZWO4A%3D%0A) ### Step 2: Configure SCIM in your Identity Provider @@ -67,7 +67,7 @@ After enabling the integration in your IdP: **Warning**: When you fully enable SCIM provisioning, any users who were **not** synced via SCIM will be removed from the organization. Confirm that all expected users appear in the sync before proceeding. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256040198/da9188b8b968d5f900cc08e9ceb2/3814ab37-c3fa-4256-8d16-49c1e1b4c654?expires=1789067700&signature=cd02671c72100aa58ecba025ccc92d72c279881bbaeefe88c3c4edea4fefea0a&req=diIiEMl6nYBWUfMW1HO4zeLvMlFvTEv9oWupW8zJgMp5HHsUxFG7dZbkcyX8%0AdXN7dqlzv9vPplL4taY%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256040198/da9188b8b968d5f900cc08e9ceb2/3814ab37-c3fa-4256-8d16-49c1e1b4c654?expires=1789105500&signature=922aad92691ad1e7a3464abd4d03725200fd6f386dc3444e2af6d2aa5f848b37&req=diIiEMl6nYBWUfMW1HO4zeLvMlFuSkn%2FoWupW8zJgMrLiE7ULqqqpWhWwGT1%0AIBE5ZHcwxg1rRiE0lfk%3D%0A) ### Step 4: Map groups to roles and seat tiers @@ -83,7 +83,7 @@ SCIM provisioning uses IdP groups to assign roles and seat tiers within Claude f 3. Save your mappings. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256056441/f7eb09bba549e9861fc81b961cc7/2760fa5b-87bb-491f-9354-ca3cd2bc4475?expires=1789067700&signature=481a6501c582779f860d87f9b9092433bb70b77cf098bf8e78320ea80132aefa&req=diIiEMl7m4VbWPMW1HO4zaWhsXoitEAch340B79BYGYNXLRZwo6PIDJwdsO6%0ADDbB8ZdFdGk%2FMHQOn0g%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256056441/f7eb09bba549e9861fc81b961cc7/2760fa5b-87bb-491f-9354-ca3cd2bc4475?expires=1789105500&signature=478e748206abd46ab9bc98309061505a637b12cc57af76986be176bd4d48512e&req=diIiEMl7m4VbWPMW1HO4zaWhsXojskIeh340B79BYGZdH7mtzSMnQiGDMzR2%0AXKxMTRjuNLnh8vzelNU%3D%0A) If you manage multiple organizations under a single parent (see below), each organization maintains its own role and seat tier mappings. Switch between organizations using the organization selector in the bottom-left corner of the page. diff --git a/content/support/14503775-mcp-web-search.md b/content/support/14503775-mcp-web-search.md index b3341d20d..94a96836a 100644 --- a/content/support/14503775-mcp-web-search.md +++ b/content/support/14503775-mcp-web-search.md @@ -4,7 +4,7 @@ The Web Search connector gives Claude the ability to search the public internet For questions about web search in commercial Claude, see **[Enabling and using web search](https://support.claude.com/en/articles/10684626-enabling-and-using-web-search)**. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256120763/7652c6c669446113eae75f3c5977/9c74d57e-aaa2-4f1c-bfe4-2b9b87fd41ab?expires=1789067700&signature=616128e33c54023e5586103b328dfddcc09470c477c76119ff0821cff512ed7a&req=diIiEMh8nYZZWvMW1HO4zQvFLLtTi8P%2FM%2Fw5SJgC29HIde4ImtIaFLXDNHOe%0A9qeGDQMeYANMwAH%2B10I%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256120763/7652c6c669446113eae75f3c5977/9c74d57e-aaa2-4f1c-bfe4-2b9b87fd41ab?expires=1789105500&signature=9bce17511a9399bbadcddeac7b35b4e580d98e6b0698bb4c84222e9a99a7d9be&req=diIiEMh8nYZZWvMW1HO4zQvFLLtSjcH9M%2Fw5SJgC29HKht85cIx9i2JNXFZA%0AFGmIL2BJrEae2I62Dpg%3D%0A) ## How Web Search differs for Claude for Government diff --git a/content/support/14604397-set-up-your-design-system-in-claude-design.md b/content/support/14604397-set-up-your-design-system-in-claude-design.md index 440ee5711..49b7958f0 100644 --- a/content/support/14604397-set-up-your-design-system-in-claude-design.md +++ b/content/support/14604397-set-up-your-design-system-in-claude-design.md @@ -72,7 +72,7 @@ To validate your design system, create a test project and see if the output matc Once you’re satisfied with the design system quality, make sure the “Published” toggle is switched on. After publishing, any projects created from the Claude Design homescreen while in your organization will use your design system instead of the default. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2287527007/b1c46cb8dba4cd7e8bbea85fb0c3/2819c6cf-9ce1-4df5-84c8-feae0164bf2e?expires=1789067700&signature=c948b482dbdd65f67fab1c488644ad4bd7391fcca3d75eb2fa481b3ee0f929fe&req=diIvEcx8moFfXvMW1HO4zWNHF%2FuLCDwQIQKNMXlu0T9wJZ7k%2FnqB%2FwhFWXfe%0AiA9x%2FZkfi9%2Fh2fghGBY%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2287527007/b1c46cb8dba4cd7e8bbea85fb0c3/2819c6cf-9ce1-4df5-84c8-feae0164bf2e?expires=1789105500&signature=c311d235e0d08a3fb478ca3a61107f35c7aec93c12d8310e6f5b72cdb87a308b&req=diIvEcx8moFfXvMW1HO4zWNHF%2FuKDj4SIQKNMXlu0T%2BfDU1QGwaJWv1G%2B0kT%0AFdkODBP5JNxpfm9aTbk%3D%0A) --- diff --git a/content/support/14604406-claude-design-admin-guide-for-team-and-enterprise-plans.md b/content/support/14604406-claude-design-admin-guide-for-team-and-enterprise-plans.md index 3ffb7041a..233b9b021 100644 --- a/content/support/14604406-claude-design-admin-guide-for-team-and-enterprise-plans.md +++ b/content/support/14604406-claude-design-admin-guide-for-team-and-enterprise-plans.md @@ -18,7 +18,7 @@ Team and Enterprise plan admins can enable this organization-wide by following t 2. Find the **Claude Design** toggle under **Anthropic Labs** and switch it on. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2289240025/8a528b6cccc3ea1001c25953cb14/image.png?expires=1789067700&signature=49c3f0d271ddfba3fa4b768123b2010ba992b56517f07d1ecc44d8cdd7ea8e5a&req=diIvH8t6nYFdXPMW1HO4zahp3esIH%2BEiDIPtKBLQ9H%2FJstmItezIUL4i1ANd%0AkAYWHxTaeWT%2Bko0nQBc%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2289240025/8a528b6cccc3ea1001c25953cb14/image.png?expires=1789105500&signature=37dd8df8528797ca0be8cd44ef31f16f18efc430f256a234a9219bef5fe71879&req=diIvH8t6nYFdXPMW1HO4zahp3esJGeMgDIPtKBLQ9H%2F%2FGCLW3T8fXF05CSMq%0AW1%2BSjgg7Atawe%2BVF8mU%3D%0A) --- diff --git a/content/support/14604416-get-started-with-claude-design.md b/content/support/14604416-get-started-with-claude-design.md index d39ab68ad..a4931e441 100644 --- a/content/support/14604416-get-started-with-claude-design.md +++ b/content/support/14604416-get-started-with-claude-design.md @@ -153,7 +153,7 @@ Use the “Export” button in the upper right corner when viewing your project - Send to Claude Code Web -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2287510952/553a03eec5cea7b9eff53b473552/6dc33363-38b1-444e-96bb-f8218b588173?expires=1789067700&signature=9af3f8b99560b54a45b5585697b7f0f98182883ac108315c349ec8bba5bdde82&req=diIvEcx%2FnYhaW%2FMW1HO4zQFD4SVanWpznfz9ljnuyXRo0BRaSS94zusA8S6%2B%0AMrwP%2Bnafx97sKy6iJ0k%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2287510952/553a03eec5cea7b9eff53b473552/6dc33363-38b1-444e-96bb-f8218b588173?expires=1789105500&signature=673120a857066d61b1fec4afef7587b5c4d92248c0d5f9dff812c23ab3ad9c23&req=diIvEcx%2FnYhaW%2FMW1HO4zQFD4SVbm2hxnfz9ljnuyXTf66e0bQ25h8tE3YjS%0AVXVYvP96FItTbcZp71I%3D%0A) You can also share projects within your organization using a shareable link. Sharing options include view-only, comment, and edit access. diff --git a/content/support/15330088-set-a-default-model-for-your-organization.md b/content/support/15330088-set-a-default-model-for-your-organization.md index a9ae5f38f..051863ac8 100644 --- a/content/support/15330088-set-a-default-model-for-your-organization.md +++ b/content/support/15330088-set-a-default-model-for-your-organization.md @@ -50,7 +50,7 @@ The organization default applies to every member. To set it: 4. Click “Save changes.” -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514722139/d05c94072a41ea9090ecf386c53e/c32ee31d-954a-4551-a2da-91677fbd0b6f?expires=1789067700&signature=857c4d011eb8dcc53ba68ed3484744897e84b651f87c69b8e8705e3148c71be9&req=diUmEs58n4BcUPMW1HO4zelOdztAK09AfdGVZ664dGE0GzKA2qnS6Qsn9Ulr%0ABaXfamT669ruaA%2B5ZAg%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514722139/d05c94072a41ea9090ecf386c53e/c32ee31d-954a-4551-a2da-91677fbd0b6f?expires=1789105500&signature=19100b29b3fc56370ec6e24ab69293c371671d53f5a1387f85e9367b05b61497&req=diUmEs58n4BcUPMW1HO4zelOdztBLU1CfdGVZ664dGGlMQGO6klvtJK7DICh%0ACJMb4nFVndDzvXiH4po%3D%0A) --- diff --git a/content/support/15694740-manage-model-access-for-your-organization.md b/content/support/15694740-manage-model-access-for-your-organization.md index 0996c2559..cfbfe0dc7 100644 --- a/content/support/15694740-manage-model-access-for-your-organization.md +++ b/content/support/15694740-manage-model-access-for-your-organization.md @@ -42,9 +42,9 @@ The organization setting is the ceiling. A role can't grant access to a model th If any custom role uses the model you’re disabling as its default, you’ll be prompted to change that role’s default before the change can be saved. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514693921/02ea72756f5163f14e5d158516dc/69102088-cd86-498e-97aa-c8a6e0004419?expires=1789067700&signature=1a3bba327e219894a66e221e6705c78b7cda278c6de4fc385bf808081f163af0&req=diUmEs93nohdWPMW1HO4zXlxEu65UdZQQf5Pb7M2Q0vwYlyqbfyGT92qB%2Byg%0Am2Yu%2FEdYTj9fhZ5XHPE%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514693921/02ea72756f5163f14e5d158516dc/69102088-cd86-498e-97aa-c8a6e0004419?expires=1789105500&signature=91e2d1aa6136335fa59046aac6693cd78db8c820b27b05dc81c4047118315086&req=diUmEs93nohdWPMW1HO4zXlxEu64V9RSQf5Pb7M2Q0tk1LypoJf0kn%2FyYJmf%0A7U4mhJM5CyBCKGdpjtc%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514693922/bfc5de6626eb19dca1d7caf818ca/c3cd8bb6-f86c-4d01-92da-6ae4ca966662?expires=1789067700&signature=35f77b1a95829adcb2b293517738fbfabbf5217542b731d9314c07daeeb75d32&req=diUmEs93nohdW%2FMW1HO4zTqNsYDFQF9QAod9uc510lwDvEcqx59YU%2B5gCUy%2B%0AHI8UtELUthBLvdmqOgg%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514693922/bfc5de6626eb19dca1d7caf818ca/c3cd8bb6-f86c-4d01-92da-6ae4ca966662?expires=1789105500&signature=2e9b58a3e4328860922cda63b21981e2640604897c51947a8f0c0cc18d7ffc98&req=diUmEs93nohdW%2FMW1HO4zTqNsYDERl1SAod9uc510lx6cMAjh2l6csAjEzs7%0AFTb9ErFKDtSzKvU9Pa8%3D%0A) --- @@ -78,7 +78,7 @@ If any custom role has an effort cap higher than the new organization cap for th Only models the role grants access to can be selected as that role’s default model. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514693923/880665a87dbd4776cf19d6063a37/29d30c6d-f9fc-408c-8c72-4320c6d88d14?expires=1789067700&signature=88380f068d5992a767f0ace980d6ccddf6275a66b92f64551c7e19207f50f599&req=diUmEs93nohdWvMW1HO4zYj9SfwD64a6XsqpNqvyFRKW9yIfu42L2pd3feQI%0A21y7CPZSswCfnUBEqxI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514693923/880665a87dbd4776cf19d6063a37/29d30c6d-f9fc-408c-8c72-4320c6d88d14?expires=1789105500&signature=4581046d2a18e325b84eaeb7eadd5c998b83f6b6cb21950e4bfc3f3bb5524c0a&req=diUmEs93nohdWvMW1HO4zYj9SfwC7YS4XsqpNqvyFRIYGUOmWjfcym2AswOZ%0A%2Bkjzg4fsq4g3%2FOVQl2I%3D%0A) --- @@ -96,7 +96,7 @@ Effort limits determine how much computation members on a role can apply per res 5. Click "Save" to save your changes. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514693927/7a25673b3b075d72adb3cdc371e3/d2d7cd8d-a713-4e91-a706-f589ac46a9fe?expires=1789067700&signature=03cbe36384e1fea7a50e67b34f0782f3846192025973cd223aa2986e106e87bc&req=diUmEs93nohdXvMW1HO4ze1xBjq8db4eDeA1RkowXUGjoSGWQTBJmSOayNsO%0AduEXu%2Fc7N%2FZMRIbZoU0%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514693927/7a25673b3b075d72adb3cdc371e3/d2d7cd8d-a713-4e91-a706-f589ac46a9fe?expires=1789105500&signature=339b6ce43562af0c5017019473cd363110584e5c895b6926666ed3b45d3debb5&req=diUmEs93nohdXvMW1HO4ze1xBjq9c7wcDeA1RkowXUExC1OfDlj1XeWCnL8O%0AGGV%2FJmxegym0kghz7dc%3D%0A) Members on the role see only effort levels at or below the cap in their model menu. Note that available effort levels differ depending on the model, and some models don’t support effort level settings at all. For an explanation of each level, see **[Change the model, effort, and thinking settings](https://support.claude.com/en/articles/8664678)**. diff --git a/content/support/15936181-get-started-with-1password-for-claude.md b/content/support/15936181-get-started-with-1password-for-claude.md index 715b18eb7..74e73a21b 100644 --- a/content/support/15936181-get-started-with-1password-for-claude.md +++ b/content/support/15936181-get-started-with-1password-for-claude.md @@ -52,7 +52,7 @@ Once the requirements are in place, you can set up 1Password from a few places i 4. Toggle on **Password managers**: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2546126596/ba71ca47e2df21cec62c243831f8/5b1c67e1-607d-4c73-8f61-d1ceb081082a?expires=1789067700&signature=1e0a94f17aeaf153be1109e0bd163cb33169f3cd09eb9d643a05e0642f45f2d9&req=diUjEMh8m4RWX%2FMW1HO4zU5lnmJuq8JkGkiu4hEpcPWsE%2BZm6tuJosVmqwrb%0A34Hsm8%2FP8cOWLwsSB0A%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2546126596/ba71ca47e2df21cec62c243831f8/5b1c67e1-607d-4c73-8f61-d1ceb081082a?expires=1789105500&signature=4ae1250706dba05615c57e2923dbefa494c7b6b31a69eecdb475fa65ebcaf194&req=diUjEMh8m4RWX%2FMW1HO4zU5lnmJvrcBmGkiu4hEpcPW2NSzufOvGGOMyY0Xp%0ApAK%2B3jjY%2FjdNhGPzi4c%3D%0A) Once enabled, eligible users will see the discovery options above. Users still need to install and set up the required apps and extensions themselves. diff --git a/content/support/16607638-understanding-your-pro-or-max-plan-invoices.md b/content/support/16607638-understanding-your-pro-or-max-plan-invoices.md index 791b02176..81b3446a2 100644 --- a/content/support/16607638-understanding-your-pro-or-max-plan-invoices.md +++ b/content/support/16607638-understanding-your-pro-or-max-plan-invoices.md @@ -40,7 +40,7 @@ You can also open any invoice from your account: **Amount due.** The invoice total minus any applied balance. This is what your payment method was charged. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2629072970/c514f489b65072ccad08e803864f/e8c7a7de-905f-4a40-815f-c9c66edcdbf6?expires=1789067700&signature=b3315f2292c23c783c626ecee04383754caf6e69183c2da1385b091394f6bbf3&req=diYlH8l5n4hYWfMW1HO4zdWraBg%2F6FMZPZYKVlMiWEUprrJsNhnmZR0VF0e8%0A7S8oRf%2FG6IsAUB%2BYZKE%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2629072970/c514f489b65072ccad08e803864f/e8c7a7de-905f-4a40-815f-c9c66edcdbf6?expires=1789105500&signature=ae3cf9cef57e803c12ad3833eabb95abda9c38a76529ab05e40b255064e0f156&req=diYlH8l5n4hYWfMW1HO4zdWraBg%2B7lEbPZYKVlMiWEU1eEbZH7gz6G2eZGCZ%0A%2FXA7osxxvQFJyHmHq5c%3D%0A) ## Billing details on your invoice diff --git a/content/support/16764810-assign-a-program-to-workspaces-in-claude-console.md b/content/support/16764810-assign-a-program-to-workspaces-in-claude-console.md index 475fae7ea..f855ec885 100644 --- a/content/support/16764810-assign-a-program-to-workspaces-in-claude-console.md +++ b/content/support/16764810-assign-a-program-to-workspaces-in-claude-console.md @@ -20,27 +20,27 @@ In the Console, programs are issued to your organization and apply to workspaces 1. **[Sign in to the Console](https://platform.claude.com/)** as an organization Admin. Go to **[Organization settings > Programs](https://platform.claude.com/settings/organization/programs)**. The program card shows whether it applies automatically or needs workspaces assigned. - ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2642744587/d4584e035604f3b7c08afa53a1c6/ee1183ff-e591-4484-a989-1f754245d39c?expires=1789067700&signature=9fdb5bd7399b50aa511088f56df35e0dd5ffddaeabb328fa571eabedbe06b586&req=diYjFM56mYRXXvMW1HO4zT%2FymECHEg6gktHcEoeKC4dCfuvM5%2FpqKyOwI21B%0AhiHh%0A) + ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2642744587/d4584e035604f3b7c08afa53a1c6/ee1183ff-e591-4484-a989-1f754245d39c?expires=1789105500&signature=313b0e8fd8a4441f099963aad1f090fbc029037e256254af914d7e98ead34086&req=diYjFM56mYRXXvMW1HO4zT%2FymECGFAyiktHcEoeKC4cFpnC7cwTTAYlNs5Oh%0AR20w%0A) 2. Select the program to open its page. The **Workspaces** table shows each workspace's status. A workspace marked with an issue does not meet a requirement yet. - ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2642745562/253e55a3292b35f728fb5dc89fb2/0878a8a9-dce5-4df2-9826-3796605b52a0?expires=1789067700&signature=f57ed4fcbb72fac076d5ae9b34bf6ac7df853f640f1ea58ab872960f8ed95471&req=diYjFM56mIRZW%2FMW1HO4zc116gdoRle2MCr%2B42fbmkaPWDi1OiFuFQSQ4Pgz%0ANCls%0A) + ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2642745562/253e55a3292b35f728fb5dc89fb2/0878a8a9-dce5-4df2-9826-3796605b52a0?expires=1789105500&signature=52b486402f150ddc2f354ef94adc597c638e6ecd61bc7902a411da75fbd3cbe7&req=diYjFM56mIRZW%2FMW1HO4zc116gdpQFW0MCr%2B42fbmkZy1vh%2BgKRJk56E57WP%0AK5d7%0A) Hover over the issue to see which requirement is not met. - ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2642746466/c49291119729e99f4dba8ec924e4/3f802c0e-7fbc-4e80-935a-05da58f65bde?expires=1789067700&signature=154cb01b79e0f13cfdb5a5f8f3bba93a4020db9f222c3c861dfa2eea63240038&req=diYjFM56m4VZX%2FMW1HO4zaveae9ikHrHVPpeIJbmktTkh8%2FRHvU6qrysqKDJ%0AW2p4%0A) + ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2642746466/c49291119729e99f4dba8ec924e4/3f802c0e-7fbc-4e80-935a-05da58f65bde?expires=1789105500&signature=c731c22e9a33fe4ab241fe4a1c9e83b8950762ccf6945bb7660a0a051c95692e&req=diYjFM56m4VZX%2FMW1HO4zaveae9jlnjFVPpeIJbmktQnU3sh5MkA%2FRaLxgjk%0AwWei%0A) 3. To give a workspace access, make it meet the requirements. Open the workspace, select "Manage," then "Programs," and check the **Qualifications** panel. - ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2642768117/1304e6b1350fc9bd88c4238a00e3/db606eb5-39d5-4309-a5a9-ee33847fc233?expires=1789067700&signature=10a0bbe209aa52f91e010183159c9a2050320c2233113ea0e0cdd0b1a8402496&req=diYjFM54lYBeXvMW1HO4zTU0lNKQLUFA9BWcjfiNKI3DBaSAhfzM20nEqgwJ%0AxeT%2F%0A) + ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2642768117/1304e6b1350fc9bd88c4238a00e3/db606eb5-39d5-4309-a5a9-ee33847fc233?expires=1789105500&signature=5490fb4cd8be72b5a51aa80bdcb165d83f68c78542529e3be711b16dd5d3a7fb&req=diYjFM54lYBeXvMW1HO4zTU0lNKRK0NC9BWcjfiNKI2865DudfV2OfCXCLTM%0AJnNF%0A) 4. Fix the requirement. For the Cyber Verification Program, turn on data retention under Manage, then Privacy controls. Then select "Rerun." - ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2642746995/87151a11687a9c631b7a9d681390/d40a6c12-283d-4b3b-b6d6-9f631a73e7c0?expires=1789067700&signature=e64f1d9f331b405340e44efaa8d5c2fce365de09abc3fe9bf5e61d5eba70cf6f&req=diYjFM56m4hWXPMW1HO4zQfcHTKu6Xks9apHi%2BiM8oifH%2BwKAEax%2Ffz1yAFG%0AK4DW%0A) + ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2642746995/87151a11687a9c631b7a9d681390/d40a6c12-283d-4b3b-b6d6-9f631a73e7c0?expires=1789105500&signature=eb60d6fff7ccb74e91fd4d20193bdeebe788189e967a35e7543cdba5699207e2&req=diYjFM56m4hWXPMW1HO4zQfcHTKv73su9apHi%2BiM8oghQND9E0j4Z62N%2FtP7%0AybO1%0A) 5. The program shows **Active** for the workspace. - ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2642747200/a18bdccde474c9f4eba371cf6050/b0e9d5e3-1e5f-4f27-b682-5684084f92e8?expires=1789067700&signature=7ec67e68f753b688f808aba6e6aca749306d99678d2e218cc946ffb0d37a0d11&req=diYjFM56moNfWfMW1HO4zaUR8q9n8Pk%2FfTukdAE3MWu3xd%2BWlXxTpYYo1ns%2F%0A1sxY%0A) + ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2642747200/a18bdccde474c9f4eba371cf6050/b0e9d5e3-1e5f-4f27-b682-5684084f92e8?expires=1789105500&signature=4ed698314bc1d18d269a773244eb6e3a66d96bfa2fe6c00b4b9ac627412a0d6b&req=diYjFM56moNfWfMW1HO4zaUR8q9m9vs9fTukdAE3MWs0cCqTbYOKTOsJ7UAy%0A0Nzu%0A) ## Troubleshooting diff --git a/content/support/8114491-get-started-with-claude.md b/content/support/8114491-get-started-with-claude.md index 94e324228..ae2268e4d 100644 --- a/content/support/8114491-get-started-with-claude.md +++ b/content/support/8114491-get-started-with-claude.md @@ -36,7 +36,7 @@ You use **prompts** to communicate with Claude. The best approach is to speak to Type your prompt into the chat interface and click the submit button to start a conversation with Claude. You can click the "+" button in the lower left or type "/" to view additional options and commands: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1916208578/2cf2ea52f1f884084b57983a8805/image.png?expires=1789067700&signature=ff641bc433bb238154c525695fbb9871a88c9d20af77fcfc417233b31a874065&req=dSkmEMt%2BlYRYUfMW1HO4zV2J7SbKsoCG9crMELaMZPzODkvBphW5vUaR3DFy%0AR0hQ8t7RN0sQsN3RvMI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1916208578/2cf2ea52f1f884084b57983a8805/image.png?expires=1789105500&signature=c1030470ddd6efdab2c3cfd71b8b764a395005cf3f26203207c6da6cedc43510&req=dSkmEMt%2BlYRYUfMW1HO4zV2J7SbLtIKE9crMELaMZPwUmFIXUfIw4hX2%2FZbD%0A6nQFthafbG%2FqKnyIcJc%3D%0A) --- diff --git a/content/support/8230524-delete-or-rename-a-conversation.md b/content/support/8230524-delete-or-rename-a-conversation.md index 9aa986ccc..d372b3715 100644 --- a/content/support/8230524-delete-or-rename-a-conversation.md +++ b/content/support/8230524-delete-or-rename-a-conversation.md @@ -44,15 +44,15 @@ These steps apply to Claude for iOS, listed on the App Store as Claude by Anthro 4. If deleting, tap "Delete" again in the confirmation prompt. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599501318/75c28edc693efbe8befd21e4da64/d18a921a-df4b-4788-833c-12c966a32527?expires=1789067700&signature=e842aec9b2bf2d452cf4f92b89e5b8194a2ffc9108fa1ce29f13c37a13e481cd&req=diUuH8x%2BnIJeUfMW1HO4zSc12adajmes1DBI29QsIlGS%2FZPF5vMmXGJvtMqQ%0AgRxYBhiKZ4ypskSe4KQ%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599501318/75c28edc693efbe8befd21e4da64/d18a921a-df4b-4788-833c-12c966a32527?expires=1789105500&signature=00496ab267b194d0bac8a3749684000cc242cef8d9ff119164d3ff57a45b19ff&req=diUuH8x%2BnIJeUfMW1HO4zSc12adbiGWu1DBI29QsIlGo81%2Bkpc%2B5ZHj4p2L7%0Ali%2FVBo%2BcOHRHlZpFcVM%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493852/2e58b92d18f307bb79ae30650f26/1bbe52f3-202b-4d5d-9f9a-eeda4d6952c3?expires=1789067700&signature=4eeea347762a49c0152eb5676cfb5967ff97e01786fcb4559ff112111ae3872d&req=diUuH813nolaW%2FMW1HO4zTjXMu6MKMfij7blKEDtUI2QqQ7xTp0wbqQopSX8%0Amz%2F8hghn9m17ozLUF8o%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493852/2e58b92d18f307bb79ae30650f26/1bbe52f3-202b-4d5d-9f9a-eeda4d6952c3?expires=1789105500&signature=94e3492f55225f813a14b80685d67a2ca002cd3eb99195ecc21017ac62c75d6c&req=diUuH813nolaW%2FMW1HO4zTjXMu6NLsXgj7blKEDtUI3KwUF2KauBwNrMXNzN%0A7EePXIdiTBt58gIkOA4%3D%0A) You can also delete the conversation you have open: tap the "⋯" button in the top right corner, tap "Delete," then confirm. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493848/997184c386d0e6fb0bd2d7c1f2b6/5d2bc394-25fc-4814-8c2a-2f54d004f83f?expires=1789067700&signature=fd69325ebdcc832ddc5c5cbac459cdf56a823f9089fc4cd38ff951e03edf814d&req=diUuH813nolbUfMW1HO4zVCIqpPPzdtBzQl%2BKgU984zHictnzCdQvPVAPEpm%0AktSE5u5rzTafufz44oY%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493848/997184c386d0e6fb0bd2d7c1f2b6/5d2bc394-25fc-4814-8c2a-2f54d004f83f?expires=1789105500&signature=1e00b43dc68f40d2704204027a5b4fac8e5472604cfb0127ca19d1d175bf9699&req=diUuH813nolbUfMW1HO4zVCIqpPOy9lDzQl%2BKgU984xqq4MW8SPCWgA7EWMs%0AQVfXQRZnps747o3usT0%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493856/799041da9fa918e90068c5ebf5bd/2e8d5cee-c45a-41d7-a14b-486e50a37f88?expires=1789067700&signature=0f78565fe10248eac90404e9e0a684ba265736838105f5189f081dc256b8dc85&req=diUuH813nolaX%2FMW1HO4zVCl4AHy12JKEDIU8RT6jk15eZVQh19SZXA0EQSw%0AE7Hjmy93lxGiGGypnRU%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493856/799041da9fa918e90068c5ebf5bd/2e8d5cee-c45a-41d7-a14b-486e50a37f88?expires=1789105500&signature=1b5ac12421da727d0e8c6bae55713e10ed3bdb291b945f0b25e591a8a512ca27&req=diUuH813nolaX%2FMW1HO4zVCl4AHz0WBIEDIU8RT6jk3odhXy4yGAT4MK2868%0AY8jMr7J1saXXCPwK%2B9Q%3D%0A) ## Delete or rename a conversation on Claude for Android @@ -66,9 +66,9 @@ These steps apply to the Claude for Android, listed on Google Play as Claude by 3. If deleting, tap "Delete" again in the confirmation prompt. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493850/a64e6561222d535f2f5bd03e71f0/5de429c2-d8ed-4e8a-89e8-a13ccaa49767?expires=1789067700&signature=29e953e3f543253c94bc859805c40426a84caf2dc54ac938bca760e92d273e59&req=diUuH813nolaWfMW1HO4zVTdd9ssxFdyrqtc0YNNUtKWQNevOKuet7D%2Bl1aa%0AWdpfnRKVDOZw4HfMsis%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493850/a64e6561222d535f2f5bd03e71f0/5de429c2-d8ed-4e8a-89e8-a13ccaa49767?expires=1789105500&signature=0df29315ebefffe9dfc5677e944aaa9bcef3da2ddd01253eaa5a105c9caf6231&req=diUuH813nolaWfMW1HO4zVTdd9stwlVwrqtc0YNNUtJb4yb%2FvEbhzMeh6Y8R%0AxkMYnmx2AoBUjWPTF4Y%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493851/f21b39c60e88050d4b0745325f0d/0a8c0d08-dc53-4ef1-8d9f-2b995242c1f9?expires=1789067700&signature=1b1e400f584d89fc4c03d45856d01216027de1206d6f9218b34d3778afc1e492&req=diUuH813nolaWPMW1HO4zUYvw1wLpDlb%2FjekULCQNzXLOAsbgDYcaWtUvoFE%0ALVJLtx6OLljiFM8PyHA%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493851/f21b39c60e88050d4b0745325f0d/0a8c0d08-dc53-4ef1-8d9f-2b995242c1f9?expires=1789105500&signature=51af637136b70e1bdd02d30d65c285dc1fc9a79dd88ce1304d0b77978eb2baec&req=diUuH813nolaWPMW1HO4zUYvw1wKojtZ%2FjekULCQNzWktrQZZWeZ9FeyvZbm%0ASshniYlyimI5lEyF0wk%3D%0A) **To delete multiple conversations at once:** @@ -78,9 +78,9 @@ These steps apply to the Claude for Android, listed on Google Play as Claude by 3. Tap the trash icon, then tap "Delete" in the confirmation prompt. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493849/3013a0ab921337b4544f7ffeffa6/e828ec14-fb52-4205-a840-707b6f2a848d?expires=1789067700&signature=660bad304956fa54879f213de50ab4d7cd5436e13654a128d54e6f42d7201292&req=diUuH813nolbUPMW1HO4zWGamM50fIrY4AqhTnZa84XYLpK6gpP5lUFcF9VN%0ATYxdwt%2F5PpOl7f%2FUDcY%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493849/3013a0ab921337b4544f7ffeffa6/e828ec14-fb52-4205-a840-707b6f2a848d?expires=1789105500&signature=31c791b6f7a3a972b92dafd29e0f27df9a53c12fd19464f45b7435b74c3e3c63&req=diUuH813nolbUPMW1HO4zWGamM51eoja4AqhTnZa84XT9FuN3LcyEgGTQZh6%0A%2F0KPB5GYq6BgFWGXTc4%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493853/e2507f53cce8a26776a22a457b1a/bd79bb8a-b078-420f-a4e1-75590367aa80?expires=1789067700&signature=eb7b3626ca5c9d38a438ad66b73008d849fa8b9b1ab13949f29061e6588a5ea9&req=diUuH813nolaWvMW1HO4zQTtExzxwkc%2FSBGfF3I2bRjIH%2BfU3iJDZtScr2Fk%0AGT8gGM3UBcA7hfePwr4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493853/e2507f53cce8a26776a22a457b1a/bd79bb8a-b078-420f-a4e1-75590367aa80?expires=1789105500&signature=9b93c15c6ad7f13d5a2b57ab80add4e48dc86de328e8f68395f53395165fe807&req=diUuH813nolaWvMW1HO4zQTtExzwxEU9SBGfF3I2bRivNc2jUbleHmm%2BDkXc%0AZGXZ7CUYmTv8KTPAMRc%3D%0A) ## What happens when you delete a conversation diff --git a/content/support/8325618-paid-plan-billing-faqs.md b/content/support/8325618-paid-plan-billing-faqs.md index 4e1dbf8ec..f6dc64203 100644 --- a/content/support/8325618-paid-plan-billing-faqs.md +++ b/content/support/8325618-paid-plan-billing-faqs.md @@ -50,7 +50,7 @@ There's no separate option to remove a card, and updating to a new card replaces If you want to use a name other than the one tied to your payment method, check the "Use a different name on invoices" box when adding or updating your payment method in **[Settings > Billing](https://claude.ai/settings/billing)**. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1922141785/666191101c11030b05f03a668a74/image.png?expires=1789067700&signature=e747b7985ce88196cbdb71bfabd2e3bfcc084280db7bc8cd8710f2ad29ff0333&req=dSklFMh6nIZXXPMW1HO4zVXW8GSrbTTLQoNvNFTb5ccb6tCoqFl6gRYHLpd7%0AFmbWJNI%2Fn1htBDggGek%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1922141785/666191101c11030b05f03a668a74/image.png?expires=1789105500&signature=65e98af9d6bac2827f78e9d05eba2c6d7fee24c85c18131045a78eedccdfc856&req=dSklFMh6nIZXXPMW1HO4zVXW8GSqazbJQoNvNFTb5cc%2FVZgcrI2Jgbqvk1f5%0Ae9kAq4mdxSk8wPYPWrE%3D%0A) ## How can I edit a paid invoice? diff --git a/content/support/8887527-customizing-your-appearance-settings.md b/content/support/8887527-customizing-your-appearance-settings.md index 689f961e8..f3ceafba3 100644 --- a/content/support/8887527-customizing-your-appearance-settings.md +++ b/content/support/8887527-customizing-your-appearance-settings.md @@ -8,7 +8,7 @@ 3. Select from Light, Match System, and Dark under **Color mode**. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1648260417/d478c757c7115ad58a12026d4caf/AD_4nXc__Qop4X9hknWGfGj_y_DCpLutLruhxIclJIfir0ilsgNMg7X8ksIVnqk1Oce5FKlGIOYu9CKbVsu8DqD7iIY2aC0ZfXMyFTeAdNq-Cao2mXcj_WUpNF0kM2HoYR_dEx6N_cuJow?expires=1789067700&signature=a9d153d50d5961540d9d30a86c11ecd3953883b6ab95f1def348529b6f93ca39&req=dSYjHst4nYVeXvMW1HO4zc2jJ6s9hozjSBkgeTglJrrlfZjRkpWsO4h%2Bc%2Fi3%0Am8XvxrSGrdo7TrWN%2BSM%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1648260417/d478c757c7115ad58a12026d4caf/AD_4nXc__Qop4X9hknWGfGj_y_DCpLutLruhxIclJIfir0ilsgNMg7X8ksIVnqk1Oce5FKlGIOYu9CKbVsu8DqD7iIY2aC0ZfXMyFTeAdNq-Cao2mXcj_WUpNF0kM2HoYR_dEx6N_cuJow?expires=1789105500&signature=b628bbaaa987e210e05a26819541f5fad8c219feef42a88d80a90a5c7a6a7463&req=dSYjHst4nYVeXvMW1HO4zc2jJ6s8gI7hSBkgeTglJrrjyoRGnQhz2PQnwAS%2F%0Ac5TrsJeO9tHF7%2BbZg%2Fc%3D%0A) ## How to change your font @@ -16,10 +16,10 @@ 2. Select from Default, Match System, and Dyslexic Friendly. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1648260416/7fc0803d44d8de40f8e6636b2eb6/AD_4nXf0UEDa1i2QmqlQtoB5BgpQ-FfZVzss_7wMVQdvkmEDSfoTxixnG0GSxC6qrOs21HdkXH-I2Yn_GHDAf8yjd6FJtoh9FadALozvIErFp9r8LychDGLPb7OpN1CN4PRcgVAYNCre?expires=1789067700&signature=9ee4f339131db001d368fe26b8278964430629efebbc9bfcfc7485138561c351&req=dSYjHst4nYVeX%2FMW1HO4zc8962nlW3Y7QtNFlF5%2FHEfkuPrG7285JmTzw%2FAu%0AAu7HNcq5JhdU6XIk%2FEM%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1648260416/7fc0803d44d8de40f8e6636b2eb6/AD_4nXf0UEDa1i2QmqlQtoB5BgpQ-FfZVzss_7wMVQdvkmEDSfoTxixnG0GSxC6qrOs21HdkXH-I2Yn_GHDAf8yjd6FJtoh9FadALozvIErFp9r8LychDGLPb7OpN1CN4PRcgVAYNCre?expires=1789105500&signature=66decbeb42c5727c787589d8d5710e4da4748949a3cc45e3908e81959d78fd63&req=dSYjHst4nYVeX%2FMW1HO4zc8962nkXXQ5QtNFlF5%2FHEdJ0YewlcvdOTeL5KO7%0A4gfQnJbYpzfMA6Xfsyk%3D%0A) ## Can I disable the sidebar? It's not currently possible to completely disable the sidebar. You can click the button on the top right of the sidebar to open or close it. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1941108004/5217903737ddd9bb62fe5d7a904c/CleanShot+2026-01-14+at+09_12_58.png?expires=1789067700&signature=b6d726dac04ab3f847174f197c5434ff525f289db4513d4cf1329607c877f216&req=dSkjF8h%2BlYFfXfMW1HO4zUS%2BB1b2X3zoylfYa7uDb9lGPmDiKbCa%2FJkIg36U%0AyJeSVwrAWiMEvvwLbBQ%3D%0A) \ No newline at end of file +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1941108004/5217903737ddd9bb62fe5d7a904c/CleanShot+2026-01-14+at+09_12_58.png?expires=1789105500&signature=aa789ff75044a74fc35922a4d4011190be316ad8bdaddb834e0061e210e9f6c9&req=dSkjF8h%2BlYFfXfMW1HO4zUS%2BB1b3WX7qylfYa7uDb9kY73R%2BCurxWiNe8F3A%0Ato0VB%2BKvXSZml6J5nTg%3D%0A) \ No newline at end of file diff --git a/content/support/9267400-move-your-personal-claude-account-to-a-team-or-enterprise-organization.md b/content/support/9267400-move-your-personal-claude-account-to-a-team-or-enterprise-organization.md index 717728343..ac5250956 100644 --- a/content/support/9267400-move-your-personal-claude-account-to-a-team-or-enterprise-organization.md +++ b/content/support/9267400-move-your-personal-claude-account-to-a-team-or-enterprise-organization.md @@ -126,7 +126,7 @@ For the full walkthrough of your options, deadlines, and what happens to your su You may have both a personal account and an organization account tied to the same email address. You can switch between them by clicking your initials or name in the lower left corner of the screen. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312193347/712f763fc290b2488c103849f20c/0c135a6f-3442-4ee1-9ab7-98673f03ef6e?expires=1789067700&signature=3d7618789dacaaabeb15356ebf211a6e14e74a65135765366fdfb6356ea51d76&req=diMmFMh3noJbXvMW1HO4zXhPndk2zhhmufhmlOXMdYZcZz60WduiqIlmOZBC%0ASxzvcvLMhpsXx22xUhQ%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312193347/712f763fc290b2488c103849f20c/0c135a6f-3442-4ee1-9ab7-98673f03ef6e?expires=1789105500&signature=e5376890ccb24afaf46c5c7a9e1097eca7074b4ed27e29ceed5ef9c352f4cf06&req=diMmFMh3noJbXvMW1HO4zXhPndk3yBpkufhmlOXMdYb82eugnn0NNSGs15kq%0Al85iqtp8SQDKWqYQAQo%3D%0A) A blue checkmark shows which account you're currently using. Click the other account to switch to it and access its separate conversations and projects. diff --git a/content/support/9519177-how-can-i-create-and-manage-projects.md b/content/support/9519177-how-can-i-create-and-manage-projects.md index 20289725f..5433bde72 100644 --- a/content/support/9519177-how-can-i-create-and-manage-projects.md +++ b/content/support/9519177-how-can-i-create-and-manage-projects.md @@ -104,19 +104,19 @@ Starring a project allows for quick access from your projects and chats list, vi You can move a standalone chat into a project by clicking on the dropdown arrow next to the chat name, then “Add to project”: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1784190248/0f19c8de18b494a27be252fdfaff/d4e7a5c5-25f5-4623-862b-c593d2dc0b39?expires=1789067700&signature=901ea4baf59029fdf3d69a7d566e2a7e8e1b10eb148a47d0aeeb27566883660b&req=dScvEsh3nYNbUfMW1HO4zQABaWhsTKcSBSXNVFXQ%2FVET9PvmYOPios9Rg5IV%0A%2BoqUDmGRk6t6O2kMeJU%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1784190248/0f19c8de18b494a27be252fdfaff/d4e7a5c5-25f5-4623-862b-c593d2dc0b39?expires=1789105500&signature=dfaa71cfbca296d4913a8792cfbfe9baf08bc61dbd4217e6d9308e48acb8f5db&req=dScvEsh3nYNbUfMW1HO4zQABaWhtSqUQBSXNVFXQ%2FVGf05O3dTVWN1Svkhyn%0ATHs%2BCa7x2gFIheqdf%2F4%3D%0A) Browse or search for the correct project in the **Move chat** modal that appears, then click on it to move the chat. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1784190951/34dc256ccd4c0cf74976f31062e6/55365cf2-059d-41b2-ac95-4b00c4389a76?expires=1789067700&signature=181dcbf54103c667788e4894f01587503fe61cff6e5b8e0148ba4302b7419371&req=dScvEsh3nYhaWPMW1HO4zSMECimwzQ4GgYbpTjViBxA17f0zpBxhly1eChQr%0AZfB5zm6N9n5WvOKdSEc%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1784190951/34dc256ccd4c0cf74976f31062e6/55365cf2-059d-41b2-ac95-4b00c4389a76?expires=1789105500&signature=3a837ba6b833c92a5109a83032e6c21bd8709d5d2a7f4ff51bf3ec4e0b068c78&req=dScvEsh3nYhaWPMW1HO4zSMECimxywwEgYbpTjViBxDtk1HGPqJcXilbc7Ay%0A%2FrISZmd6%2BeOh5tIRYhY%3D%0A) You can also remove chats from projects, or move them between projects, using the same dropdown menu within the chat: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1784185682/8625eac15b9fa452f148a6c47250/c53a1bc4-a991-4684-a789-5447ed789d35?expires=1789067700&signature=59494b5892df3b822a7ff8f38d129a0dd828292a0c6d92b67a7d7f7ed5ddd73a&req=dScvEsh2mIdXW%2FMW1HO4zb6DuP4sCEINS2r1%2FGRlqOS4Ionlv%2F840CJklFC1%0A5bvQSLkSmfnjUilQ7FU%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1784185682/8625eac15b9fa452f148a6c47250/c53a1bc4-a991-4684-a789-5447ed789d35?expires=1789105500&signature=ace3b9a5a1f2fe93e4af1f6d995677cb2047be4c81f3dbd006e7e0c3035c9a2f&req=dScvEsh2mIdXW%2FMW1HO4zb6DuP4tDkAPS2r1%2FGRlqOTG48ruzIC6h2xO2Zap%0AcXCX%2B6%2FrxtODA1kHgYc%3D%0A) You can move chats into projects in bulk from **[Your chat history page](https://claude.ai/recents)**: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1784185685/bb960063204592db277a4ba62d8d/ebbf5c69-da79-4e56-9d87-f2a97a22fe67?expires=1789067700&signature=278379220145ad840def772b3761873e81cfec14a9146e88e29e1dcde3002a4c&req=dScvEsh2mIdXXPMW1HO4zbParUVJ7%2F2kuQSB0Ebsw9db2Njev%2BWBlGs%2Bou05%0A02MYDOQMbYzlYevpkpc%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1784185685/bb960063204592db277a4ba62d8d/ebbf5c69-da79-4e56-9d87-f2a97a22fe67?expires=1789105500&signature=a9b4f429c4e2ce24149a70ecfef5a4138d34e49f0fdf130c0e1dfd4dd88963cb&req=dScvEsh2mIdXXPMW1HO4zbParUVI6f%2BmuQSB0Ebsw9eiM5A4uPNK3v7jMMsW%0ACDhzy1Dwyj2G9s6CVSo%3D%0A) Select the chats you want to move, then click the icon next to the number of selected chats to move them into your project. diff --git a/content/support/9519189-manage-project-visibility-and-sharing.md b/content/support/9519189-manage-project-visibility-and-sharing.md index 112acf77b..9245669a6 100644 --- a/content/support/9519189-manage-project-visibility-and-sharing.md +++ b/content/support/9519189-manage-project-visibility-and-sharing.md @@ -12,7 +12,7 @@ When creating a project on a Team or Enterprise plan, you can choose between two - **Private:** Only invited members can view and use the project. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370991/2b6b16e5deff094e073a5b4bb0ea/63197103-24c0-41e5-aebd-9b8f431837bb?expires=1789067700&signature=024458570f4f8b3b568617171527aeda2db69340abdf98661e055af5f9e57bd4&req=dScjFsp5nYhWWPMW1HO4zd3a2VUkIomgHK95%2FTFaPynC1LqPe3qd9nFa6qfU%0AIzfJdWr1nf%2BetGvwldc%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370991/2b6b16e5deff094e073a5b4bb0ea/63197103-24c0-41e5-aebd-9b8f431837bb?expires=1789105500&signature=0b0eb65ed755eca7176912307c7981d4415892d865571f360e0589d0559bd5a0&req=dScjFsp5nYhWWPMW1HO4zd3a2VUlJIuiHK95%2FTFaPynNqyHitLPTqAq%2F0Jq2%0AFw32kcLF6X5MgVAHwIU%3D%0A) ## What are public projects? @@ -22,11 +22,11 @@ If you choose to share a project with the rest of your organization upon creatio Yes, you can switch the visibility of a project you created as public to private at any time by opening the project and clicking the “Share” button to the right of the project name: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370987/5d5db997e6b42e627ffa62fddf75/4823906b-9535-4a19-b89e-a1003f1e6e68?expires=1789067700&signature=d51e03b87dcd80aeb2d3f0c90a8e78b981a1c6c61ebc9d2c5ec57ea5242baea0&req=dScjFsp5nYhXXvMW1HO4zUiDoiD3hwEuE8Kp5wh0MSCIxMxD%2BxS%2BD11pNcxa%0AJowBovXD5uEFxZFmmRI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370987/5d5db997e6b42e627ffa62fddf75/4823906b-9535-4a19-b89e-a1003f1e6e68?expires=1789105500&signature=a55127368c46dff431c0c290cd01b1cd08e99fc8966246bef897a3a966a33b1e&req=dScjFsp5nYhXXvMW1HO4zUiDoiD2gQMsE8Kp5wh0MSBa4ORZNMD059PjIcms%0AI4Jj64%2FYOkE8Ek%2Bdi14%3D%0A) Click “Everyone at [your organization]” under **General access** and select “Only people invited” to change the project from public to private: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370988/386407facbf3e73d2f5538623a18/69d8ffcd-e1ca-470f-a219-5b88704e41f2?expires=1789067700&signature=a0912c1359e26797433ac71c8b489595501d6298f7391b8ebb5138a32cdae3a1&req=dScjFsp5nYhXUfMW1HO4zckCIftiZCWjl3XeGelDRW1tqt8B5a1a3un09w8q%0Aks04FlnSE%2FlJdLYZToM%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370988/386407facbf3e73d2f5538623a18/69d8ffcd-e1ca-470f-a219-5b88704e41f2?expires=1789105500&signature=024049a1802cd4b12ef147f30d4db7b26af3e0cc9b261178c53a76e79100d25f&req=dScjFsp5nYhXUfMW1HO4zckCIftjYiehl3XeGelDRW0TOsN4%2FOclbodVQtcX%0ALqItTdUU30L0KgDySl4%3D%0A) ## What are private projects? @@ -36,11 +36,11 @@ Choosing “Only people invited” keeps your project private so that you are th Yes, you can switch the visibility of a project you created as private to public at any time by opening the project and clicking the “Share” button to the right of the project name: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370989/f829dcd8bdd88e944322f678323f/9d25eff1-6df3-40be-82eb-ba7fe09187e8?expires=1789067700&signature=a4559f9d3009685560dbd405e9815ead7b3cc687cca8c3238a0a501bcb97da2d&req=dScjFsp5nYhXUPMW1HO4zaSEGlqcTL8K2JrJefVtywlxoLIv21%2BqZv352UR0%0A7wwfjFEiF5EGYhne0Kk%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370989/f829dcd8bdd88e944322f678323f/9d25eff1-6df3-40be-82eb-ba7fe09187e8?expires=1789105500&signature=c6e8f6b762460ca312dff777f97c39c424341b621f4969509fb78ea0626d5edd&req=dScjFsp5nYhXUPMW1HO4zaSEGlqdSr0I2JrJefVtywnxReMJbz%2F8lUH13QC7%0AqS1AXD3xIarSCL9O0iI%3D%0A) Click “Only people invited” under General access and select “Everyone at [your organization]” to change the project from private to public: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370990/d173fbc6f030780d30c6d7b8e204/7e47b9d1-89fe-4607-8b5b-f7b06e7ad0d6?expires=1789067700&signature=73b77238ba0676ea00f8b63002a0ece4c60eeafa706ec718992710d557467345&req=dScjFsp5nYhWWfMW1HO4zT7Q08G7uwsRAmYRPrgMBZnxJkdZ%2F1rUEGBM8DCs%0A0Of%2B64A1pxlRyuJHsx4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370990/d173fbc6f030780d30c6d7b8e204/7e47b9d1-89fe-4607-8b5b-f7b06e7ad0d6?expires=1789105500&signature=2b9aa204c21d33a79cab54dedae34b2ea18ed9da9757e6a319f023fd01ab7ebf&req=dScjFsp5nYhWWfMW1HO4zT7Q08G6vQkTAmYRPrgMBZl1%2F4FN8h%2BqAA4E7DZ3%0AiOs3tgGKnFaAVMBVD4o%3D%0A) ## Add and remove access to private projects diff --git a/content/support/9534590-cost-and-usage-reporting-in-the-claude-console.md b/content/support/9534590-cost-and-usage-reporting-in-the-claude-console.md index 6f717f75b..12413dbda 100644 --- a/content/support/9534590-cost-and-usage-reporting-in-the-claude-console.md +++ b/content/support/9534590-cost-and-usage-reporting-in-the-claude-console.md @@ -8,7 +8,7 @@ The Claude Console provides detailed cost and usage reporting to help you effect Users with access to these reports can click into them on the left navigation menu on the Console: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584654217/db0a977417e38e43639f060d96e0/image.png?expires=1789067700&signature=ce06de7d421c778c5ee4dcf00bf2a3918e870b555d0b7d672718b7db2cd3f66e&req=dSUvEs97mYNeXvMW1HO4zYCWiS0Yh8GduqqBX2puyxTW%2F7SS5oFp5n83ainH%0ASbb711Mei%2FXxNz7qo6k%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584654217/db0a977417e38e43639f060d96e0/image.png?expires=1789105500&signature=c7a70fdeb4bd4fd563cc1e9e4f1c72d3f927a385600d8b1aa6c265001420ce9a&req=dSUvEs97mYNeXvMW1HO4zYCWiS0ZgcOfuqqBX2puyxSeIUqFPqUUV%2FCEf%2FSJ%0AnMuglwVgTp%2BuyLhlrn4%3D%0A) --- @@ -46,9 +46,9 @@ The [Usage page](https://platform.claude.com/usage) offers a detailed breakdown 6. Use the export button to download a CSV of the displayed data. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584664321/59b50eba0b61e0789f7055fcf9f4/image+%285%29.png?expires=1789067700&signature=bbceb0fedfd1622fd4d3594a5d3d774860d254ec9574a366bba5aa068a148f50&req=dSUvEs94mYJdWPMW1HO4zQwER3oqJ4hhqMITUZbanFApLDMn5eu%2Bh8iOb0TK%0A7O%2BBnJ7UbdpljTGSnBQ%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584664321/59b50eba0b61e0789f7055fcf9f4/image+%285%29.png?expires=1789105500&signature=f41882d008b6c80a17da90159b74925f4b72494e758a6cf8baab353d325d77fb&req=dSUvEs94mYJdWPMW1HO4zQwER3orIYpjqMITUZbanFDJtBgKmbe7aOaY7aQB%0AFHAqGDu1t9B0dcQRj8g%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584693386/aed472efe163abcbc14fa32f3699/rate+limited+requests.png?expires=1789067700&signature=128597f3e2091ca47cf196b6b8f65e762688e72c03a3c3c9dfde723aec8dc8f2&req=dSUvEs93noJXX%2FMW1HO4zRxEwWJN4FZr21D6pckxWMbRCSggMAdq5MMUyctR%0AEagFJoxIv8TzmEBceZg%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584693386/aed472efe163abcbc14fa32f3699/rate+limited+requests.png?expires=1789105500&signature=6dfebf6b723dc0444bcc6bb434bf2bef3a465d7a5783ab71ff4fbb0156facb6c&req=dSUvEs93noJXX%2FMW1HO4zRxEwWJM5lRp21D6pckxWMY4%2BcVehN3JlTkoOO2T%0AMoI2C%2F9sGYGbMGSgueE%3D%0A) ### Rate Limit Use @@ -88,6 +88,6 @@ The [Cost page](https://platform.claude.com/cost) helps you understand your spen 5. Use the export button to download a CSV of the cost data. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584679401/4d0bc8ed08625e1adee414e77030/CleanShot+2025-06-23+at+08_54_40%402x.png?expires=1789067700&signature=e53c7a314a947d666f9514711ea48c1b959aeac713a0edc5dbf1f7207e5f6149&req=dSUvEs95lIVfWPMW1HO4zUR%2Bh5XDVddmCyIF5nuUsbxxHYPZT%2F7431ZvcB8M%0AXDDRXGAtlosdSA1zejw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584679401/4d0bc8ed08625e1adee414e77030/CleanShot+2025-06-23+at+08_54_40%402x.png?expires=1789105500&signature=cacf2699a0ede1276f6969c791983bba343484bdd78488ea37e3e625b8e2ba7d&req=dSUvEs95lIVfWPMW1HO4zUR%2Bh5XCU9VkCyIF5nuUsbw6ybcfi9kN7StxI0O0%0Ae95pndP9mPj%2BHalHbwg%3D%0A) **Note**: Currently, it's not possible to break down usage or cost by individual users. \ No newline at end of file diff --git a/content/support/9547008-publish-and-share-artifacts.md b/content/support/9547008-publish-and-share-artifacts.md index 7dc084c0a..c32ca21bc 100644 --- a/content/support/9547008-publish-and-share-artifacts.md +++ b/content/support/9547008-publish-and-share-artifacts.md @@ -56,11 +56,11 @@ Publishing also adds the artifact to the **[Artifacts](https://claude.ai/artifac After publishing, you'll see a “Get embed code” button. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1951684960/0cd917c4455b31e86b70a97f8234/image.png?expires=1789067700&signature=20121f8a401b0e81eb9ee635d4d92fb63ffbcd064ede4dbab38a5d94bc914f92&req=dSkiF892mYhZWfMW1HO4zdcpD19S4wSGR8xgMH3ra8gxMNSuwMKI5iXf1hkE%0A5A7KvlqSzq56cobHc2Q%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1951684960/0cd917c4455b31e86b70a97f8234/image.png?expires=1789105500&signature=0b58c2de5defaf80b382c52a6ad71050e102cc8d22af43a2982e6b9e544d45d0&req=dSkiF892mYhZWfMW1HO4zdcpD19T5QaER8xgMH3ra8gocjjkVbK1FCh%2F04ho%0ASQgMAsRO08UXt01ZAOU%3D%0A) Click it to open a modal with automatically generated code you can copy and paste to embed your artifact on another website. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1951685860/6bf1aa2c57d6ff95804797779e9c/image.png?expires=1789067700&signature=651104dc523bccd1c9a168ec2259aac804387b8d18041522d2d7b6bf65c4ac8c&req=dSkiF892mIlZWfMW1HO4zcqH79CDz4Nqf3CUbx4Ru6Uue0vBbjnwnTivNmHS%0A%2B6EehXH%2BJNImrqTrqwU%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1951685860/6bf1aa2c57d6ff95804797779e9c/image.png?expires=1789105500&signature=3c2e2f3cff7fa8a04ed789bddc33c6617d47ad861daea2246a8d693c1de60109&req=dSkiF892mIlZWfMW1HO4zcqH79CCyYFof3CUbx4Ru6Uz%2BJhZSG0q30uyNWFO%0A1NaXbTWLSL33gu22bQE%3D%0A) You must specify which websites can embed your artifact by entering URLs in the **Allowed domains** field, separated by commas. @@ -116,7 +116,7 @@ Artifacts created on Team or Enterprise accounts can only be shared within your 4. Click “Share & copy link” to make this version shareable. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1951680160/d5a38784df4c6d0cc55eda339279/Screenshot%2B2025-10-28%2Bat%2B2_00_15-E2-80-AFPM.png?expires=1789067700&signature=08b2eed5a1080e067199c61e00c2c73c9ed73eebb454b287227ec6b4e352a20c&req=dSkiF892nYBZWfMW1HO4zbvYOljlK36UK6hAzMpXfmNBiB4BQWIur9qFadck%0Au3UPLiu3WC76YOKoJSE%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1951680160/d5a38784df4c6d0cc55eda339279/Screenshot%2B2025-10-28%2Bat%2B2_00_15-E2-80-AFPM.png?expires=1789105500&signature=a141cf9a68eeeb0d8728ea8e2510b0f9bbf7af4fd7c04befb15b563f2fc7d398&req=dSkiF892nYBZWfMW1HO4zbvYOljkLXyWK6hAzMpXfmMX56roJ3RP8NC1s9%2BB%0AfvtaqDPy0qgGkdUuw%2F4%3D%0A) ### Who can access shared artifacts @@ -138,7 +138,7 @@ When you share an artifact, viewers also gain access to any attachments and file 2. In the **Artifact shared** modal, click “Unshare.” -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1951676927/c66153a2c075c6a64404306aefd0/Screenshot%2B2025-10-28%2Bat%2B1_58_24-E2-80-AFPM.png?expires=1789067700&signature=35c0b932edae3ee045918a3561486b0169a7825c9149f7750ebdcd8b962743f7&req=dSkiF895m4hdXvMW1HO4zW9EwgC9%2F3O0gj8mTHivCKZO%2FglOs0YSORG4D2CX%0ACA%2BBiwi%2FVegdTcZR0Fo%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1951676927/c66153a2c075c6a64404306aefd0/Screenshot%2B2025-10-28%2Bat%2B1_58_24-E2-80-AFPM.png?expires=1789105500&signature=c700247ff334098630c3da9310d3f49cc140f02e3fd98c07d29fdc19a233354f&req=dSkiF895m4hdXvMW1HO4zW9EwgC8%2BXG2gj8mTHivCKaPuG0ZFKVU07R5QFG3%0A%2FLdBhaTDJX%2FCsqpl16M%3D%0A) --- diff --git a/content/support/9927533-disable-public-projects-for-your-organization.md b/content/support/9927533-disable-public-projects-for-your-organization.md index 6b6511a05..a94b67922 100644 --- a/content/support/9927533-disable-public-projects-for-your-organization.md +++ b/content/support/9927533-disable-public-projects-for-your-organization.md @@ -10,7 +10,7 @@ Follow these steps: 2. Find **Public projects** and toggle it off -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2053902291/8c39d1a79dedc97411eed54dec5c/CleanShot+2026-02-11+at+11_25_34%402x.png?expires=1789067700&signature=4220fa64f99fcddc974e1b4836e1bec73a92b230bb00538f2ca42413f8d1b3e3&req=diAiFcB%2Bn4NWWPMW1HO4zfGib26kbQdYYabJlVJ9VPyqYHDvrL0zsRctowaB%0AwCymqO15tZREALp4r7k%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2053902291/8c39d1a79dedc97411eed54dec5c/CleanShot+2026-02-11+at+11_25_34%402x.png?expires=1789105500&signature=314e3ddaeb74116e3388e565dc997068a610d218a58d7f4265854fd5033e2764&req=diAiFcB%2Bn4NWWPMW1HO4zfGib26lawVaYabJlVJ9VPy37w%2BSo3LE2BBTSQvd%0AQwh%2FQJbWhSaeXAAm0p8%3D%0A) ## How does disabling public projects work? diff --git a/discovery.json b/discovery.json index be7c94b7f..168de3459 100644 --- a/discovery.json +++ b/discovery.json @@ -1,7 +1,7 @@ { "version": 1, "note": "What the last full run could see outside sources.json. Written by the fetcher so a new source arrives as a diff a human reviews, not as a line in an Actions log nobody reads. Stable facts only: a change here is always news. `review` is the actionable list \u2014 domains we could archive today and do not.", - "updated": "2026-09-10", + "updated": "2026-09-11", "domains": { "anthropic.com": { "status": "frozen", diff --git a/tombstones.json b/tombstones.json index c8a0d1c3a..602594fbe 100644 --- a/tombstones.json +++ b/tombstones.json @@ -1,7 +1,7 @@ { "version": 1, "note": "URLs confirmed gone upstream. Kept so a page that died once does not report as a fresh failure on every later run, which would bury the failure that is actually new. An entry clears itself if the URL answers again -- but only while something still probes it. Entries whose local file was removed are no longer fetched, so they stay as a record of the restructure rather than a live check.", - "updated": "2026-09-10", + "updated": "2026-09-11", "urls": { "https://claude.com/docs/claude-science/annotations": { "since": "2026-09-01",