diff --git a/content/.metadata.json b/content/.metadata.json index c024d4bdf..dc74c7ee7 100644 --- a/content/.metadata.json +++ b/content/.metadata.json @@ -1,7 +1,7 @@ { "metadata": { "version": "2.0", - "fetch_date": "2026-09-11T18:49:53.819137Z", + "fetch_date": "2026-09-12T05:13:34.488887Z", "section": "all" }, "items": [ @@ -4419,8 +4419,8 @@ "url": "https://code.claude.com/docs/en/changelog", "status": "success", "path": "en/docs/claude-code/changelog.md", - "sha256": "5a0bc468c379b40d251d44116fc1a7af2c3ca7b16591708856908445a2215c60", - "size": 694733 + "sha256": "af9a73e6cbc157da074a3e52036b669c1816d06451166c445ed9474d1e050012", + "size": 709863 }, { "url": "https://code.claude.com/docs/en/how-claude-code-works", @@ -4489,8 +4489,8 @@ "url": "https://code.claude.com/docs/en/best-practices", "status": "success", "path": "en/docs/claude-code/best-practices.md", - "sha256": "5d5e2a49130b07334f26493483998657bdf8310c18a49c52cde3d7e35996d7a4", - "size": 40087 + "sha256": "f0a3c427a04516cd711cf8660a110dd4f7048707ba9d6badb1b49d289e83ebf7", + "size": 40098 }, { "url": "https://code.claude.com/docs/en/platforms", @@ -4587,15 +4587,15 @@ "url": "https://code.claude.com/docs/en/desktop-quickstart", "status": "success", "path": "en/docs/claude-code/desktop-quickstart.md", - "sha256": "6dcb9d6b3588f16a44d0e79daa4be816081a4fdd11ae2216e18bd6a584e7d17a", - "size": 11429 + "sha256": "8be647c11320c4ffb6a1eb61f5fb7a61cf8c71d442e0d61f2b23aa26fdb9448f", + "size": 11231 }, { "url": "https://code.claude.com/docs/en/desktop", "status": "success", "path": "en/docs/claude-code/desktop.md", - "sha256": "3c585962a30144144f6f07cddbab26d1e8ab8f6272e881441abe0a1401514a09", - "size": 102084 + "sha256": "4700336eefa763c97828a0e3103b5b1ed49244c19dea1a43436e83cfc1d2fbd5", + "size": 102023 }, { "url": "https://code.claude.com/docs/en/desktop-linux", @@ -4685,15 +4685,15 @@ "url": "https://code.claude.com/docs/en/sub-agents", "status": "success", "path": "en/docs/claude-code/sub-agents.md", - "sha256": "9007bdb4e98b4ef38dcce760427978791284f596622e828019c08e3ed74d4843", - "size": 113482 + "sha256": "18a9a8dd876129b1ea17dad226fa9fb039a31ecb7899a6bb72704ed8980b95f3", + "size": 113692 }, { "url": "https://code.claude.com/docs/en/agent-view", "status": "success", "path": "en/docs/claude-code/agent-view.md", - "sha256": "b77a9b549bf450a86bfbd7947ccc8bdd95b574bc0e043fa6fd281fc792690b1f", - "size": 254193 + "sha256": "7f7b200fd4050a24120dd4dce71acf79280fcfd24f2bccaa37b269aa341ca418", + "size": 254191 }, { "url": "https://code.claude.com/docs/en/agent-teams", @@ -4720,8 +4720,8 @@ "url": "https://code.claude.com/docs/en/worktrees", "status": "success", "path": "en/docs/claude-code/worktrees.md", - "sha256": "b99e19d466ffbd9677ea3003ba478c133eec4e265679a407166aec3da13db080", - "size": 36635 + "sha256": "709fa008b76c334107db4abe02772ce824ebebbc18919f0921046ef5642c7494", + "size": 36665 }, { "url": "https://code.claude.com/docs/en/mcp-quickstart", @@ -4741,8 +4741,8 @@ "url": "https://code.claude.com/docs/en/skills", "status": "success", "path": "en/docs/claude-code/skills.md", - "sha256": "acb9b3ce43b2e0c373109bb368683552c284dbaf28f36a3ca3969f6a4438d196", - "size": 111012 + "sha256": "8552fefb7d225fcdc1c4098f6a33616d6a55e63206b9d84f0522c7411d0c4c41", + "size": 111848 }, { "url": "https://code.claude.com/docs/en/discover-plugins", @@ -4755,22 +4755,29 @@ "url": "https://code.claude.com/docs/en/plugins", "status": "success", "path": "en/docs/claude-code/plugins.md", - "sha256": "8070daef044b8dcd7f744f4ccbba8189e106ee72e31d34d1ce5dcca5aac3e742", - "size": 30282 + "sha256": "6f9f15a184ff8008208afd690e12488c45941d16844c2fc7b3f455ce0825daca", + "size": 30789 + }, + { + "url": "https://code.claude.com/docs/en/plugin-evals", + "status": "success", + "path": "en/docs/claude-code/plugin-evals.md", + "sha256": "c61f4f5c286e54a7bcc7482536b6375a4734358c1082fd5e36203a74f7ac732a", + "size": 73357 }, { "url": "https://code.claude.com/docs/en/artifacts", "status": "success", "path": "en/docs/claude-code/artifacts.md", - "sha256": "9f47271d31b0c13b4e6f517b95751495dc2cd06bb2e4d954465962f6846066b6", - "size": 40479 + "sha256": "c206ba05ea294694c8b5a00f0cd4ddd760c552a58ebf91e83ee1d24b047e40f2", + "size": 40735 }, { "url": "https://code.claude.com/docs/en/hooks-guide", "status": "success", "path": "en/docs/claude-code/hooks-guide.md", - "sha256": "b5632cf6b8c78f04797a91ed590ed7718f6af17cc923a856cbad3b3a2f7138a8", - "size": 81859 + "sha256": "e388b1bb4c83d9773396a13ad0c70978b562ea40aefd297045475bbe5e7af41c", + "size": 82749 }, { "url": "https://code.claude.com/docs/en/channels", @@ -4818,8 +4825,8 @@ "url": "https://code.claude.com/docs/en/troubleshoot-install", "status": "success", "path": "en/docs/claude-code/troubleshoot-install.md", - "sha256": "c83d61a9b307685768a93997521188fc5ff121e43600061575eada47bfd2e639", - "size": 63280 + "sha256": "9bc9b34c67d8a1b12328b454ade028fb9a1190f365cf13560e4393fe8979f72d", + "size": 62395 }, { "url": "https://code.claude.com/docs/en/troubleshooting", @@ -4839,43 +4846,43 @@ "url": "https://code.claude.com/docs/en/errors", "status": "success", "path": "en/docs/claude-code/errors.md", - "sha256": "345acc862ea5648a8f74becf40ec968b4f732703feec7375861c4831b0e0adc2", - "size": 407643 + "sha256": "1597b5292ad34b38817aa644ccb8dc4686e4d42a3345eca9ceee4cd33089f52e", + "size": 427918 }, { "url": "https://code.claude.com/docs/en/admin-setup", "status": "success", "path": "en/docs/claude-code/admin-setup.md", - "sha256": "be808602dcfae635423ddeb59347c1d58ce53ca6e9debb1c89f3eb8754299f5a", - "size": 41437 + "sha256": "eafb24fdcaafedae84768fce405647032c576021160484b67b30f4511fe00243", + "size": 40799 }, { "url": "https://code.claude.com/docs/en/setup", "status": "success", "path": "en/docs/claude-code/setup.md", - "sha256": "519f37d769814f3bb872b982a7718d2d9fc47eea934be4aa8b384c31cfb38083", - "size": 31070 + "sha256": "c6db06fd0151af5c848bd6fb5a39fd4c6b81b5c53db5cf37e0b670be192d94f1", + "size": 31277 }, { "url": "https://code.claude.com/docs/en/authentication", "status": "success", "path": "en/docs/claude-code/authentication.md", - "sha256": "bf535f977b9e5d794b07a3375039a42b3a97e8ba4f896e83d493456c392bf96f", - "size": 29535 + "sha256": "bc13c9047347984331089d48131aad67521a14f418acb4aab9ce31afe585fdd4", + "size": 29347 }, { "url": "https://code.claude.com/docs/en/managed-settings", "status": "success", "path": "en/docs/claude-code/managed-settings.md", - "sha256": "d004e5b69cafe5d2bb7b626e4b76989e9712594969ab0ca8ce430cadf56dcb6b", - "size": 64545 + "sha256": "4e77a6cd7f33b9fa3b20c5e296fca202b4bd286a2ea9242b54fa6612d973c081", + "size": 65092 }, { "url": "https://code.claude.com/docs/en/server-managed-settings", "status": "success", "path": "en/docs/claude-code/server-managed-settings.md", - "sha256": "dfc601f02b4701d84fe1d17660926c092724589b9e62c715d57534998e714618", - "size": 46550 + "sha256": "3734eecb8ed9368a3172684506192ac11a41121ea54c70b12a81a623df720407", + "size": 47095 }, { "url": "https://code.claude.com/docs/en/managed-mcp", @@ -4923,8 +4930,8 @@ "url": "https://code.claude.com/docs/en/google-vertex-ai", "status": "success", "path": "en/docs/claude-code/google-vertex-ai.md", - "sha256": "367dd9b8f61ef9d1cb6e26f674a45b76b17e0b8b0f541f641d9151d49351be5e", - "size": 21480 + "sha256": "4a2f59127c634287d2e30cd024c58e4aa7d8226b75111595c109b24f6fb76e07", + "size": 21481 }, { "url": "https://code.claude.com/docs/en/microsoft-foundry", @@ -4944,8 +4951,8 @@ "url": "https://code.claude.com/docs/en/corporate-launcher", "status": "success", "path": "en/docs/claude-code/corporate-launcher.md", - "sha256": "aa63abe5707ddc28d7cdcf5331d40face45a17457a7daaec6f294e07cc04b320", - "size": 13330 + "sha256": "74ea19aa77f523c0db149d4b73314c430c858426f3e59ba8edc62df0f664393e", + "size": 13308 }, { "url": "https://code.claude.com/docs/en/devcontainer", @@ -4972,8 +4979,8 @@ "url": "https://code.claude.com/docs/en/claude-apps-gateway-config", "status": "success", "path": "en/docs/claude-code/claude-apps-gateway-config.md", - "sha256": "3257bfe37d57f4673a2bd0a0cd20daf9780ff3a718ac81280970d97368c04245", - "size": 126033 + "sha256": "ffd44d9bdd08f31607d4fadb6744c61016d94247838506735d0c69c996ca2f19", + "size": 126037 }, { "url": "https://code.claude.com/docs/en/claude-apps-gateway-spend-limits", @@ -5035,15 +5042,15 @@ "url": "https://code.claude.com/docs/en/monitoring-usage", "status": "success", "path": "en/docs/claude-code/monitoring-usage.md", - "sha256": "aa18479bc44e56d87c86f87833e1d941342213decbb346b7e4d16fd25aa5e4dd", - "size": 148613 + "sha256": "5395c41a9653c1dc1cde4bf7f42f7ba7694bb43368f468592f173037d5c7234a", + "size": 153479 }, { "url": "https://code.claude.com/docs/en/costs", "status": "success", "path": "en/docs/claude-code/costs.md", - "sha256": "d09be801c891e4f8c7770f615269ecc1443daae3c7ae64d1e8e55e9a8bba2285", - "size": 41617 + "sha256": "d5c3cb138d462a6176d067cb303e8e5439e23cd0d062f00e73bcce26148280ad", + "size": 42164 }, { "url": "https://code.claude.com/docs/en/analytics", @@ -5056,8 +5063,8 @@ "url": "https://code.claude.com/docs/en/plugin-marketplaces", "status": "success", "path": "en/docs/claude-code/plugin-marketplaces.md", - "sha256": "7912af9270337aa00dd39e74120a5aad65065f90b4a15c54eed99cec6ff6d960", - "size": 118032 + "sha256": "a3e583bb947febc3c586b49138af534d3915ba29e1bbbb5d66b95b1d1a4fa39c", + "size": 118242 }, { "url": "https://code.claude.com/docs/en/plugin-dependencies", @@ -5126,8 +5133,8 @@ "url": "https://code.claude.com/docs/en/settings-reference", "status": "success", "path": "en/docs/claude-code/settings-reference.md", - "sha256": "f3e730159aea139b7414928e73a6647f5b876960ff11254c0dde615bd55c8a85", - "size": 436421 + "sha256": "c5e7d34906a10a220e49db99b8dfc00da0cd72ac5bcc122bff56b99e72872cf2", + "size": 436537 }, { "url": "https://code.claude.com/docs/en/settings-example", @@ -5140,8 +5147,8 @@ "url": "https://code.claude.com/docs/en/permissions", "status": "success", "path": "en/docs/claude-code/permissions.md", - "sha256": "005bdc276802ec3560300e25262f941d2242ae665cc0fdc28e2eff4c96f9684b", - "size": 80916 + "sha256": "b02644297c473c1fd3ff5325b5a40d62279e8c8a3ec0f8402889eb0af8a94ca8", + "size": 81937 }, { "url": "https://code.claude.com/docs/en/permission-modes", @@ -5161,8 +5168,8 @@ "url": "https://code.claude.com/docs/en/sandbox-environments", "status": "success", "path": "en/docs/claude-code/sandbox-environments.md", - "sha256": "9922b8427c20e589dc3f0d482d3c227f32306c09f034e5f214a88474243e2d84", - "size": 19868 + "sha256": "0ba7f3a6d26f50f582b99c08b8e67c993a9792fdb4d28f7a35b46b23d6d471a8", + "size": 19909 }, { "url": "https://code.claude.com/docs/en/cloud-environments", @@ -5189,8 +5196,8 @@ "url": "https://code.claude.com/docs/en/self-hosted-environments-deploy", "status": "success", "path": "en/docs/claude-code/self-hosted-environments-deploy.md", - "sha256": "ca956e16e1ac95806858a845c8e1ff60a4b2c8a11397404d430c16db3753ac5c", - "size": 60811 + "sha256": "65f5025d31d817110dfdbb044e48a9016f492141dcef3c961135b6d32080191f", + "size": 60882 }, { "url": "https://code.claude.com/docs/en/self-hosted-environments-configuration", @@ -5224,22 +5231,22 @@ "url": "https://code.claude.com/docs/en/model-config", "status": "success", "path": "en/docs/claude-code/model-config.md", - "sha256": "a8b6116a31f02c7ae380d0a2e8d33a5293115aefe25fb82599fd77af15b7432f", - "size": 110936 + "sha256": "d761544fcbdd94b961ad546358257632e25e6ccbcf4cafb17cc27202c1c38250", + "size": 111174 }, { "url": "https://code.claude.com/docs/en/fast-mode", "status": "success", "path": "en/docs/claude-code/fast-mode.md", - "sha256": "9c7b13a89a9bda9f1697f84bf21acd27c60cfcebff78640a57c2e09eb626a397", - "size": 18884 + "sha256": "4adf1245700811adb28704a438344e829417f48eb5a56161a4d730cbc84a0ed3", + "size": 18852 }, { "url": "https://code.claude.com/docs/en/advisor", "status": "success", "path": "en/docs/claude-code/advisor.md", - "sha256": "9bb286e382e8547120075b4cb3e29d7f8cf830de87d761fe311b4c195e26af95", - "size": 18335 + "sha256": "82631b93582a23a9d16de87b4a059919fa14378e3a6fa33576565292b92619a6", + "size": 18271 }, { "url": "https://code.claude.com/docs/en/output-styles", @@ -5252,8 +5259,8 @@ "url": "https://code.claude.com/docs/en/terminal-config", "status": "success", "path": "en/docs/claude-code/terminal-config.md", - "sha256": "855b92da7b17adc7a042435755ba1f76d327b389c4386f529423af2fa5dfa82d", - "size": 26474 + "sha256": "68c087fa0c2962e7bcde44a1078c8abb3182a130e0561919b3fb5ae6266a7f65", + "size": 26866 }, { "url": "https://code.claude.com/docs/en/fullscreen", @@ -5294,8 +5301,8 @@ "url": "https://code.claude.com/docs/en/cli-reference", "status": "success", "path": "en/docs/claude-code/cli-reference.md", - "sha256": "3c9ac88287cc1bb101c5231c34dbd449389e2c44f2515a317a149005080d83c7", - "size": 118486 + "sha256": "b518ad70f2ae0bdfe1bfc0aa0c9a85ea71612258548c0d9366a0b6192e17dc27", + "size": 118491 }, { "url": "https://code.claude.com/docs/en/commands", @@ -5308,15 +5315,15 @@ "url": "https://code.claude.com/docs/en/env-vars", "status": "success", "path": "en/docs/claude-code/env-vars.md", - "sha256": "70390b50d604a09e65b467e996dd280a0b0ef34efcee2d2132c76a206e814c65", - "size": 485427 + "sha256": "7610edd47dc3cdb6737b29ba93faf85bc9b7bfbb47454d8d4ca9b316157c8a2f", + "size": 486753 }, { "url": "https://code.claude.com/docs/en/tools-reference", "status": "success", "path": "en/docs/claude-code/tools-reference.md", - "sha256": "83ca1ce0e3e012699a52f69884bc9da3edf3ccb8bb7e71daccac19a2c8c93af4", - "size": 106759 + "sha256": "5a796b902f9d94cb4d8d61926cabee757d24deb2c09eaf8bfcae80ba85d3ec57", + "size": 108271 }, { "url": "https://code.claude.com/docs/en/interactive-mode", @@ -5343,8 +5350,8 @@ "url": "https://code.claude.com/docs/en/plugins-reference", "status": "success", "path": "en/docs/claude-code/plugins-reference.md", - "sha256": "c75119ccd8973aad659373d726d412bbe3f5184e6d0ca0d2064512cad255f0a3", - "size": 123218 + "sha256": "f2bcba18c364204670b56c44f72fad0e416bb5648bf564b1824cc63dd9800fb3", + "size": 132321 }, { "url": "https://code.claude.com/docs/en/channels-reference", @@ -5560,8 +5567,8 @@ "url": "https://code.claude.com/docs/en/agent-sdk/typescript", "status": "success", "path": "en/docs/claude-code/agent-sdk/typescript.md", - "sha256": "9d6f63b2ce62122a152efac9479f7109d6c24f7cf3608e85e6c4640397ea96d9", - "size": 358567 + "sha256": "f9800fcad978115589b40b6cb73a63ab9eae3289628094a9b515793204a78cbb", + "size": 358652 }, { "url": "https://code.claude.com/docs/en/agent-sdk/typescript-v2-preview", @@ -8234,8 +8241,8 @@ "url": "https://support.claude.com/en/articles/8114491-get-started-with-claude", "status": "success", "path": "support/8114491-get-started-with-claude.md", - "sha256": "5183ef337a9cb474b56a98aeaabe0945fe0aa97f6cd448d3bce2941975681566", - "size": 5300 + "sha256": "43892466164bc402eae39e3d56f0f40a9138caf38e6b052a421bece5a3992ad3", + "size": 5298 }, { "url": "https://support.claude.com/en/articles/8114494-how-up-to-date-is-claude-s-training-data", @@ -8311,8 +8318,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": "68591924d1e0eaa26ec951ffcd0a28d50e4d785e4cc6936ff6d69df16756538b", - "size": 5879 + "sha256": "92a81d9fc43ae6256e74f6596bcdfe666a7895e1072b10ec3bd5b2bd3891b3e8", + "size": 5881 }, { "url": "https://support.claude.com/en/articles/8241126-upload-files-to-claude", @@ -8381,8 +8388,8 @@ "url": "https://support.claude.com/en/articles/8325618-paid-plan-billing-faqs", "status": "success", "path": "support/8325618-paid-plan-billing-faqs.md", - "sha256": "df8bd00a3a25c54eb0afe720e1af99501402dc6bfaac29d6c676ba4fd779819e", - "size": 4553 + "sha256": "21da4af1c156bb27f3f5b8cf447421fc48dbcf07c3d4919163789a3d704bbbfa", + "size": 4551 }, { "url": "https://support.claude.com/en/articles/8325621-i-would-like-to-input-sensitive-data-into-my-chats-with-claude-who-can-view-my-conversations", @@ -8444,8 +8451,8 @@ "url": "https://support.claude.com/en/articles/8887527-customizing-your-appearance-settings", "status": "success", "path": "support/8887527-customizing-your-appearance-settings.md", - "sha256": "e56e3d2cede10fe41bb912b9c1930307bb0368badc8762fbafbe35e92b220e25", - "size": 1870 + "sha256": "8db83f43e9b9a6f14ffae032ddb83f163b42b6b6eb50b155f47ce831fcc2b284", + "size": 1866 }, { "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 +8626,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": "44921fc76f843c7d261c051a4c2fb3443eb4124267f26219ede977afe851a9b9", + "sha256": "dc1972bc3644099433f6c96db223e3b8151cf3063f594413133ccf00f15fa84d", "size": 9727 }, { @@ -8668,15 +8675,15 @@ "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": "8639dc7a867f575ef4410cdb13f8e74a1694ef0cde2dd22ddad9dad00fbfad23", - "size": 9409 + "sha256": "6823d8a364542497444a4000dcc4383dcc6c885897070a6432ba19fe9f0e5db0", + "size": 8887 }, { "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": "e20fb352b48100c45a30ecfea2139622d360fbb086d25509cfde7897d9a9ce29", - "size": 8571 + "sha256": "b8903b1cdaae7ef730ead455ed88d171dd87700b318b547ac86a159dfc4b5248", + "size": 8559 }, { "url": "https://support.claude.com/en/articles/9519291-what-is-anthropic-s-policy-for-handling-governmental-requests-for-user-information", @@ -8696,14 +8703,14 @@ "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": "a4c8979b624140a1ed1be7a9bc7af61a2403ed8fee2894602bce918f696361e0", - "size": 5104 + "sha256": "18e7f3c09c9a16331b6d78e708855e4a7afc883085febc250fe952055cfcf01d", + "size": 5094 }, { "url": "https://support.claude.com/en/articles/9547008-publish-and-share-artifacts", "status": "success", "path": "support/9547008-publish-and-share-artifacts.md", - "sha256": "5f01e31c60c2dbda0310e53d320f9b88e3bf7e650aa7fdd1dbeee75e2bedbcf4", + "sha256": "2f6ae45c90b89ab60a298144daf073f11741c3adebd199a8a21b8774022e5206", "size": 7191 }, { @@ -8780,7 +8787,7 @@ "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": "3935fe9354981fe6f0eee775bb322cd7e27695b0ebd278e480782094a71199eb", + "sha256": "6d987480be93bc5f58dcf30bc0a1ac0e4949d04066cd48da1fe2186fc991e0d6", "size": 2578 }, { @@ -8920,15 +8927,15 @@ "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": "ef402b83e62f0fde38b8a0306ea689dddade621f5eab60e5f2f362c2ce85dba6", - "size": 2494 + "sha256": "a246868954d1c648754d3dc7495bbd513be183409ad63ed14fd3e900843e6047", + "size": 2496 }, { "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": "852b1cf031dfa75e18e56c84055cb14515349aa11215c8b510cf22caaa66b14b", - "size": 3163 + "sha256": "2770890342032146a11e532abca106a1b914b709b6eefc919410fd9f56c92a64", + "size": 3159 }, { "url": "https://support.claude.com/en/articles/10366389-how-can-i-get-higher-rate-limits-on-the-claude-api", @@ -8969,14 +8976,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": "43346eac3840080e8c48cc536045b86a3e186c3af67a2824d6b48947d77fc9b4", - "size": 1038 + "sha256": "26e3c647edfb29a67c46c0bd6f55b39dc5ae45603f5a20d6fd4c9344cf9a999d", + "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": "3acdcdf7bbcbdbcc468601230bdde85be2f1777e43801bdf6ad0f1570acc0ee7", + "sha256": "9ccd9db5b204e8f0eddbb2f924cda27e3ad6dad96a56d8c7410917df4a84d050", "size": 999 }, { @@ -8990,7 +8997,7 @@ "url": "https://support.claude.com/en/articles/10593882-share-and-unshare-chats", "status": "success", "path": "support/10593882-share-and-unshare-chats.md", - "sha256": "a8def9d7a0b2741db754b5311a646381ca4e6fb2285dc6618519c8829f21b6d7", + "sha256": "3376c82f21006a587da269e467c10f3153d2c0fc65b9d51c8c6e22fae5c3ec1f", "size": 4016 }, { @@ -9018,7 +9025,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": "406b6478b39c2b1cc62b3c608d20c511ad0e792cfbb752e687e47ae81d9e0221", + "sha256": "7a33d149683577421e2cb8df8e63c6f25663f31544c43ae0f83a74e76293cc92", "size": 8267 }, { @@ -9060,7 +9067,7 @@ "url": "https://support.claude.com/en/articles/11101966-use-voice-mode", "status": "success", "path": "support/11101966-use-voice-mode.md", - "sha256": "37bd9f25b56892d40c38fcb9e92bd289b81918c94f54ecc0cebe90034642229b", + "sha256": "d9191097e6a3b8af71fb50c3023f2b8b706c1d1a258f558c3602439fdb7fb643", "size": 10556 }, { @@ -9193,8 +9200,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": "89c44cfebc8ed3955f816c45de427b0387cf6bcb6d07a5344fb09d849d512766", - "size": 2750 + "sha256": "8485c38e183a7d11b380c424374ed5b9b6e8977eb6145d282d2b69a3738fe047", + "size": 2746 }, { "url": "https://support.claude.com/en/articles/11732894-who-owns-and-manages-the-data-of-my-claude-for-education-account", @@ -9214,7 +9221,7 @@ "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": "53293371d9c25c0686a1c67269f10a81849050a1362f47b31a323986439d92b5", + "sha256": "80836db95874a609db130c30d00c60250067e5b1dd34dafde6a6898d551df844", "size": 816 }, { @@ -9249,8 +9256,8 @@ "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": "0c0138631d108560fed175a916f1d64df8b00c1c92c568f0bffec884d6af7b83", - "size": 13993 + "sha256": "95ecb7f0aec22ccea4d12a179035882656672b1e59827ec7f46b769c76538788", + "size": 13991 }, { "url": "https://support.claude.com/en/articles/11932705-automated-security-reviews-in-claude-code", @@ -9284,14 +9291,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": "57cc0b0920aa9464856de7c8579bd452967dbcc83944adbeac2077a102bf980f", - "size": 9707 + "sha256": "465f7f3471eefc447fdfa5566143a5c245d820f2c1c43e425734b11902cb95db", + "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": "e84c3531a68e933b83ae5aecef4a892ff48190aba70475172f962ee8184417f1", + "sha256": "782449ba87e644610dd5fca466ee9b4469cd7a6df758787b1d9c8fd0d858235e", "size": 14857 }, { @@ -9305,7 +9312,7 @@ "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": "0ca426fb360ac83783d797d311b4db11dd2e1703235162c1b0f48f225c944e9f", + "sha256": "a3db77a470d885263942aa1df17ec8434081a5ec77b624e61633f53752bc5df9", "size": 1398 }, { @@ -9319,8 +9326,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": "1d9bbf4eda47f7ddf950fd069708dd704d71f3b7ad404763acf0ccccad70f4f5", - "size": 17962 + "sha256": "b5a94d62eb8b094174af1fa87cf5d10ad7ca2906a436505eb41aa3ed082be94e", + "size": 17960 }, { "url": "https://support.claude.com/en/articles/12119250-model-safety-bug-bounty-program", @@ -9347,22 +9354,22 @@ "url": "https://support.claude.com/en/articles/12157520-claude-code-usage-analytics", "status": "success", "path": "support/12157520-claude-code-usage-analytics.md", - "sha256": "1b883e0a94733e6afb98e491ce2f4509d03305b23699f03a3c6538693d01fc6c", - "size": 6431 + "sha256": "92c1bc8f2074b6b311f2377fb5c08c3e10d59e98668436bbcb87cd565cd6c7fe", + "size": 6429 }, { "url": "https://support.claude.com/en/articles/12260368-use-incognito-chats", "status": "success", "path": "support/12260368-use-incognito-chats.md", - "sha256": "57014c00aec438dc450345e6afdaa2a25d398495d13f6f0627db7f2800aaa5ba", + "sha256": "b37d97353e82a3396f08771088627e616c5ccc90a1312f009b03738f37e1a431", "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": "7b2806c58b98381394c15fa0a32cba3995334c230deb4581ea4e896f38f73ea8", - "size": 1911 + "sha256": "bc990a9dd0574605db814ee7f60809f8efd20d7b34e5804e28d5f71f37b52d50", + "size": 1905 }, { "url": "https://support.claude.com/en/articles/12304248-manage-api-key-environment-variables-in-claude-code", @@ -9403,15 +9410,15 @@ "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": "f9b580c03884b542f44769948d31ad4b261ccd72b6fbf778a96c4c65faa519a3", - "size": 6416 + "sha256": "9a8a0070257fb72604f8285f1a31430203c9ed363bf5d738a588969d8294abc4", + "size": 6412 }, { "url": "https://support.claude.com/en/articles/12466728-troubleshoot-claude-error-messages", "status": "success", "path": "support/12466728-troubleshoot-claude-error-messages.md", - "sha256": "191484ea372d0ae89e08b19d64241d059776651927466d0fc7169560fa363e50", - "size": 4232 + "sha256": "d534b6147e5ab5b628ebdcc8ff399cc31f1e4381cbe95cb2a68723b42d529db3", + "size": 4238 }, { "url": "https://support.claude.com/en/articles/12489464-use-enterprise-search", @@ -9431,7 +9438,7 @@ "url": "https://support.claude.com/en/articles/12512180-use-skills-in-claude", "status": "success", "path": "support/12512180-use-skills-in-claude.md", - "sha256": "3e05151b42baf5c3cb6ae06e7ba9aa8ad94b7429c5ab0aaee0dbfb6eec7106ce", + "sha256": "905d4fa028182fb9a6eea95dad878a2736cea444ca563a5273a441f12316fd43", "size": 15918 }, { @@ -9452,8 +9459,8 @@ "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": "7ee2cf6adeb99e00daec3297c505fedae9ec203e7ae42805760cd6bdd661a80d", - "size": 5714 + "sha256": "8461b6f369e87298ca51d09ee67a452c5799014253db5f14253aad88940649ba", + "size": 5716 }, { "url": "https://support.claude.com/en/articles/12611117-deploy-claude-desktop-for-macos", @@ -9466,8 +9473,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": "914c9af3d8288937be79cb60c89a5f2a8f291b2f49f0abdff9a8f8b7cfd92abc", - "size": 10962 + "sha256": "4b5cfa958a58d1b3fb2c2e018178d86553c5eb38e4f1ad486e675e514f398f78", + "size": 10968 }, { "url": "https://support.claude.com/en/articles/12622667-enterprise-configuration-for-claude-desktop", @@ -9487,8 +9494,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": "801baa220174d72f33ef21365b7696461b0f5727cef1d5b6c98f2d27e596b060", - "size": 5974 + "sha256": "8d41d43fa6dfc8265c841d59cab5a2d7fae9d97a49a852105d539e289a157150", + "size": 5976 }, { "url": "https://support.claude.com/en/articles/12684923-microsoft-365-connector-security-guide", @@ -9543,8 +9550,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": "0c81f53702df98d72bf8a1246fcb8f7eece5662a144a6c6862d9ec0740943c8c", - "size": 9565 + "sha256": "2504f04d7539ad578cfe5e15973a5a148c301857b8a5f0c8d8153e9437b01ad4", + "size": 9561 }, { "url": "https://support.claude.com/en/articles/12938627-how-to-gift-a-claude-subscription", @@ -9571,7 +9578,7 @@ "url": "https://support.claude.com/en/articles/12997503-team-plan-billing-faqs", "status": "success", "path": "support/12997503-team-plan-billing-faqs.md", - "sha256": "b710880a1fa701f09caf26edaa1c316ddfc5d8f8d8e69fba74ed772e750909a4", + "sha256": "4a3af96921358c18e3eb2ad73a3eebb94b02e9926f9195b4528e8dce42d8b729", "size": 4855 }, { @@ -9620,15 +9627,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": "d3b3d942aafce18056699902c2b89b0b8ec0eba82739d50605f38fbd9740cf8c", - "size": 13327 + "sha256": "b39ee89101eb461917ba5b9908fa1bfdf808a1ca6745d81a928d81a8e0d11350", + "size": 13323 }, { "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": "07dc55db93d2103db9382797606631ed7addebb64e1fa429c367896757c60df2", - "size": 19693 + "sha256": "aa859cc0d86a9c50369e71b23aab6893e6f8b7fecb2fe074de50d5c6d9836c3f", + "size": 19695 }, { "url": "https://support.claude.com/en/articles/13133750-manage-members-on-team-and-enterprise-plans", @@ -9655,8 +9662,8 @@ "url": "https://support.claude.com/en/articles/13163631-configuring-session-security-settings", "status": "success", "path": "support/13163631-configuring-session-security-settings.md", - "sha256": "2d3e46d05a99411741916756c14da16fd5e9d93a8d5786d32caa77fac5dddaa3", - "size": 3698 + "sha256": "9ec665ea9f9559851269818c1eb6a0374ad61a9d9ccad3533f00661d265f4795", + "size": 3700 }, { "url": "https://support.claude.com/en/articles/13171706-crisis-helpline-support-in-claude", @@ -9669,7 +9676,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": "87f3d25cb3baf41d085490af77583e7a3684f462639281c4be9fc87da3a9208c", + "sha256": "28d178ded6b3140cabf3da47a6708c82e20c6432f0172d2bbe40b03316fca74d", "size": 7036 }, { @@ -9697,21 +9704,21 @@ "url": "https://support.claude.com/en/articles/13325567-account-management-faqs", "status": "success", "path": "support/13325567-account-management-faqs.md", - "sha256": "92f695b757ffc66916614b98b5dbb279f2b8f8baa16d77b3bac4c584d5f79907", - "size": 2632 + "sha256": "01bffff147ca2a2dbe5c46c88de1e6c7c84fd88b4282dd2c742d35eaf9a4bba4", + "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": "12991193d872896096c9437abb4f3b6d69a852f4a3d27a8909cac33cf979005e", - "size": 21514 + "sha256": "00e73431dd4ea032d2fe88c665561efcc2402fc4fee9117b6597302d360ef646", + "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": "39a9635cd7214d4d42f11e447258de857c2cf904e03588c82b05319d7f38aca0", + "sha256": "91f43e54f694f8e7ffe86ea8ff09ab0cc5295cba60750afade54b9a0565cfe79", "size": 607 }, { @@ -9732,7 +9739,7 @@ "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": "9df6311bb9bef67143cda7caccad850b8967836d38fc1d53fcce687a94f40c6e", + "sha256": "c01e6221141d872920fcb1a22eb1632d0a9b9eefa05cb5efc760bb6b46786f15", "size": 4613 }, { @@ -9788,7 +9795,7 @@ "url": "https://support.claude.com/en/articles/13641943-visual-and-interactive-content", "status": "success", "path": "support/13641943-visual-and-interactive-content.md", - "sha256": "9671fea4ecf5452baac0b411838ce60e8d796c3270f0697993e665288a99a18d", + "sha256": "b7c5cd221e927167e6a88bab2b52eba2288d4d77a23983e26fae65b864a8c369", "size": 6511 }, { @@ -9816,8 +9823,8 @@ "url": "https://support.claude.com/en/articles/13756069-public-sector-faqs", "status": "success", "path": "support/13756069-public-sector-faqs.md", - "sha256": "7645b2b5e5d176b49bad3e1bf6795f97f9c0f1b1e385cbc858d13730a49e2bea", - "size": 8386 + "sha256": "3ad7596e6e8cf0002f84eba08f150df2109686e923a8066896df0c72821a5395", + "size": 8378 }, { "url": "https://support.claude.com/en/articles/13776697-join-an-organization-via-invite-link", @@ -9844,22 +9851,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": "799593d8cf4bed69db868c31f06dccddf9b83e061c7027c5205850a971f765c7", - "size": 21285 + "sha256": "3d47e44b72e3641200d458122c9b6aa8c03c954d5aa6d7e3edcb247b7a9b00e3", + "size": 21287 }, { "url": "https://support.claude.com/en/articles/13837440-use-plugins-in-claude", "status": "success", "path": "support/13837440-use-plugins-in-claude.md", - "sha256": "8d090df09f6c56b1b51f71ded1f59ca74bf914f89bcc60d205d8ba6cc2bd1cda", - "size": 10760 + "sha256": "3001f50638cf24440de71775db7d7834706b9a229ac52b72594d592e32470f75", + "size": 10758 }, { "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": "344917458248f5eea859a1f200ebae8a43fa88c183e56ce96ad56cace967c3f9", - "size": 4745 + "sha256": "d73d7b202d944cf3f1dc1bb25dadb75c2654d3f9ffa420a6507ee3d1fd99bab2", + "size": 4743 }, { "url": "https://support.claude.com/en/articles/13917817-google-workspace-sso-scim-email-mismatch", @@ -9949,7 +9956,7 @@ "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": "75de837fa9a3dcb6d55d00ca5f3ecf586ef65cf57896b7b18f8dc5660e51de62", + "sha256": "73b250f75c3f64bc31f21b8e7ff98dd7a9d610f23591e1ffc2e070db181bc6c1", "size": 8522 }, { @@ -9970,7 +9977,7 @@ "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": "3608f01ce75f1c4ea8f3381764cc476baa6e3d2240b29e34170b55a2b05c8cdd", + "sha256": "dfb49a5c9212f8495160e961f73f0e0a971329128624f8a463de5674356d7455", "size": 6259 }, { @@ -10040,8 +10047,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": "9b8777ed62c077f7efb1298e10ab5e65ac68b2a25e599cf2c338d4cf7cdb0de8", - "size": 7670 + "sha256": "be9f2b3c960b9381140f9e78be497b821d4cd5819734263ef9954c1d36f3e647", + "size": 7676 }, { "url": "https://support.claude.com/en/articles/14503520-available-beta-and-research-preview-features", @@ -10061,15 +10068,15 @@ "url": "https://support.claude.com/en/articles/14503613-sso-login", "status": "success", "path": "support/14503613-sso-login.md", - "sha256": "d257cb9be56e0449fd47d40d3734cd057804ba0adedbb18d02386d380dd47056", - "size": 6690 + "sha256": "6fc893c80676eb295701186de6c9a2050b326133222d039bdec1a07e5440e9f2", + "size": 6686 }, { "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": "e1a582cb23720fb452d47f76bb18267dfb2a361bf125c52cf7344344c5f71c7b", - "size": 6421 + "sha256": "22bc08d7222c4e3df8866adbaa4027b6eabbee1bdcf09dd34edbcab4540c4739", + "size": 6417 }, { "url": "https://support.claude.com/en/articles/14503675-organization-instructions-in-claude-for-government", @@ -10096,8 +10103,8 @@ "url": "https://support.claude.com/en/articles/14503775-mcp-web-search", "status": "success", "path": "support/14503775-mcp-web-search.md", - "sha256": "49abd524e8f23b0213d21855c42fb30a57fbbeb5378b6711974b611de786f246", - "size": 4675 + "sha256": "e8f87ecf2d4d9b4930aaaaf5fb7568a4eb3136147668d11e2b0ddf3e18b39491", + "size": 4679 }, { "url": "https://support.claude.com/en/articles/14503794-model-availability-in-claude-for-government", @@ -10194,22 +10201,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": "641421581b6cc2ed8f0379a92d5cbdfffb2dc405221000eac172cce3e17eb5fd", - "size": 4398 + "sha256": "aee5552d10c98733034352e53343057b460e2bc23b65e77beb1abd0b34fdc40a", + "size": 4400 }, { "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": "06d9969f8f5563570f1f501f7ec4972db02305b82684ba3cdea6d39dfb22c092", + "sha256": "75f429e44b850fa2192bcf9baf6e809a89c919431149747c55e19b72d90de3b7", "size": 12735 }, { "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": "7ed46cccf0d965b137e7d1fd7682bb84315e31e22667b9e27c368d1c7620a0ba", - "size": 11134 + "sha256": "feec0ba1d2ba5e8a02ca10526548dde6b6d83981e9f94cb1f7f4a194acf62581", + "size": 11132 }, { "url": "https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude-opus-and-sonnet", @@ -10334,8 +10341,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": "6b33edc7be4a5bea70de251c35782e1b61d0478feb5e7fb036e606a7e4118236", - "size": 7772 + "sha256": "e2727d8c04acee2bfa6c34a532f9b04ec9921f4fd46a29cc4acad885d7710cbe", + "size": 7770 }, { "url": "https://support.claude.com/en/articles/15330651-claude-enterprise-admin-api-reference-guide", @@ -10446,8 +10453,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": "be24f506455cbc79f24f6c00a9a6a83ff08119de5018068ab1ac48e149b8fd29", - "size": 10143 + "sha256": "dfcd015e141394733f1029d57e789dc932c3a0a8c3f6e4591abc4d00827e7356", + "size": 10149 }, { "url": "https://support.claude.com/en/articles/15707726-using-claude-for-legal-work-privilege-confidentiality-and-how-to-think-about-configuration", @@ -10481,8 +10488,8 @@ "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": "4cf3445b77b2e431cf36cbce4a962ac18b73a32e00d4f73a6b24ded285a35076", - "size": 5060 + "sha256": "72d779f2cd0efa70d94545db5f60220711d57ac083b928e5f01cfc2a1de2f2d0", + "size": 5056 }, { "url": "https://support.claude.com/en/articles/16049681-why-claude-switched-models-in-your-conversation-with-opus-5", @@ -10530,7 +10537,7 @@ "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": "30590a69bc39a10a5d4188b28ccc8634e493ed3c7d791eac3072da59c4ba4216", + "sha256": "5c2ceabdb37a5292aaa5062bfa0f36b17f9cf69796ea45161cb722d7c9de3bf3", "size": 5443 }, { @@ -10558,8 +10565,8 @@ "url": "https://support.claude.com/en/articles/16635803-set-up-browser-use-in-claude-cowork-for-team-and-enterprise-plans", "status": "success", "path": "support/16635803-set-up-browser-use-in-claude-cowork-for-team-and-enterprise-plans.md", - "sha256": "197d7b42bfc93149940106db0ce18cc947c1559be33ff572f65bb992f554d839", - "size": 4479 + "sha256": "9721d130f0e819ec1208b358ddd10fd798cfc1139e655e503f20f1470a671328", + "size": 4560 }, { "url": "https://support.claude.com/en/articles/16761192-preserved-thinking-changing-how-the-messages-api-handles-thinking-blocks-to-protect-against-distillation", @@ -10593,8 +10600,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": "0bdc4b535efd29d47d744182bbdb1fa8ae31ddb28cef172e41085d4197285315", - "size": 5099 + "sha256": "ebdbfa03a2c5f53806e0c0afced6641d86ebdb8a17c6e9b14210fc1e1102bc01", + "size": 5107 }, { "url": "https://support.claude.com/en/articles/16824617-turn-on-data-retention-for-a-workspace-in-a-zero-data-retention-organization", @@ -10607,8 +10614,8 @@ "url": "https://support.claude.com/en/articles/16893491-get-started-with-smart-reports", "status": "success", "path": "support/16893491-get-started-with-smart-reports.md", - "sha256": "25a29184bc208942873749682426a5ed5db1a733538be176098583fe19ff4e16", - "size": 11051 + "sha256": "12b7d602f965518e4c60602c10426f3f4164374a6d7d5d7a01b788903a68aab8", + "size": 10911 }, { "url": "https://claude.com/docs/claude-science/admin-controls", @@ -10866,8 +10873,8 @@ "url": "https://claude.com/docs/claude-tag/admins/connections/custom", "status": "success", "path": "claude/claude-tag/admins/connections/custom.md", - "sha256": "1c12dc80f4c9a8bc41c61d577d864ef86bf61038e01acf0c7a18585307d8bb1d", - "size": 14139 + "sha256": "aa131e53732cb66dca17b2583a8f8c6f98d03983a8b11b8dff28856ebfbcc192", + "size": 14426 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/datadog", @@ -10985,8 +10992,8 @@ "url": "https://claude.com/docs/claude-tag/admins/federated-access/aws", "status": "success", "path": "claude/claude-tag/admins/federated-access/aws.md", - "sha256": "aa9e40a79d780778812269f3ba90abcd1fb819097443a0150e15323f310f0ca2", - "size": 14159 + "sha256": "9721d6ed13e960cb20d1ae8b9f352a8d1939c1b230728ba31254d3416739b010", + "size": 14977 }, { "url": "https://claude.com/docs/claude-tag/admins/federated-access/connect-a-gateway", @@ -10999,8 +11006,8 @@ "url": "https://claude.com/docs/claude-tag/admins/federated-access/gcp", "status": "success", "path": "claude/claude-tag/admins/federated-access/gcp.md", - "sha256": "f0a078234834d9d36d6679f618b6d3687afebb63f2a2cec985ee55d58b5e36bd", - "size": 18559 + "sha256": "518c9b84f3106bc032f4279c5a92658a2a898f9001f08032f406b3dde4e24e92", + "size": 19035 }, { "url": "https://claude.com/docs/claude-tag/admins/federated-access/limits", @@ -11020,15 +11027,15 @@ "url": "https://claude.com/docs/claude-tag/admins/federated-access/token-reference", "status": "success", "path": "claude/claude-tag/admins/federated-access/token-reference.md", - "sha256": "7946cc79df098ef0b5f053f691ece7f4c2b6a65ab61d7295a62ec8340e76a486", - "size": 16910 + "sha256": "82fc63056dd84768cf29aa31cc95a9360f7103080f19866acddaaa2d24a5e058", + "size": 17128 }, { "url": "https://claude.com/docs/claude-tag/admins/federated-access/troubleshooting", "status": "success", "path": "claude/claude-tag/admins/federated-access/troubleshooting.md", - "sha256": "d2eadc5a19f09cd8b59493424ebbf2046d4fa72a17532bc23ed3e23ef581abe5", - "size": 60007 + "sha256": "3b5a2c5ba0451a983d4ff4fc8b6fa436137fe58103fba56b59c087b21739a2c6", + "size": 66720 }, { "url": "https://claude.com/docs/claude-tag/admins/for-slack-admins", @@ -11314,8 +11321,8 @@ "url": "https://claude.com/docs/claude-tag/users/when-claude-responds", "status": "success", "path": "claude/claude-tag/users/when-claude-responds.md", - "sha256": "557f0475bd23e7b586872ec3af101e295b5d315b47691718070a9d0705630262", - "size": 15733 + "sha256": "dd2299050c1556bc709078dc48c9f3140c49fc6e36984d5ff640da2d1e650423", + "size": 15787 }, { "url": "https://claude.com/docs/connectors/building/after-publishing", @@ -11328,15 +11335,15 @@ "url": "https://claude.com/docs/connectors/building/authentication", "status": "success", "path": "claude/connectors/building/authentication.md", - "sha256": "d222ff93b4ddb29688233d164f88a9c7ef3c7edceff81a58a7fe31cf6964c9c8", - "size": 17633 + "sha256": "6d101057d83ce6d527fc17295bab313ac1b096e4bd651a2923e9abedd679c0f4", + "size": 22609 }, { "url": "https://claude.com/docs/connectors/building/directory-vs-custom", "status": "success", "path": "claude/connectors/building/directory-vs-custom.md", - "sha256": "5274368f2a7f1be2ddf76e106b676d2ab8082afb90f5012afb85af5db4deacc4", - "size": 6561 + "sha256": "48a0f01f4159b207a99479afd36c5b9387b886b023dc3152133312df5aa3e5bb", + "size": 6384 }, { "url": "https://claude.com/docs/connectors/building/enterprise-managed-auth", @@ -11440,8 +11447,8 @@ "url": "https://claude.com/docs/connectors/building/submission", "status": "success", "path": "claude/connectors/building/submission.md", - "sha256": "f0f3d073a56bb13f6395d6533f33bb70efeed6ce4c9e7b415067d2f8967edb33", - "size": 11013 + "sha256": "a74059905941f191e1b5980dc5c2754706a6b5f622e6209dc703f8be3ebdbb44", + "size": 11418 }, { "url": "https://claude.com/docs/connectors/building/testing", @@ -11580,8 +11587,8 @@ "url": "https://claude.com/docs/cowork/changelog", "status": "success", "path": "claude/cowork/changelog.md", - "sha256": "6d64e7c71e2d275a24158faaf47374916014f9175950a453e239b7cbdae38a1d", - "size": 138389 + "sha256": "acb8249173362ae17bc06355a2381af67fd6b94eac98ee60d2a844f3927007f5", + "size": 139213 }, { "url": "https://claude.com/docs/cowork/guide/dispatch", @@ -11671,8 +11678,8 @@ "url": "https://claude.com/docs/government/config/settings", "status": "success", "path": "claude/government/config/settings.md", - "sha256": "76a7ec3530925b7fd109e0834eb5924f3507dcff1ab3bf99e113af3e9d752cc0", - "size": 28582 + "sha256": "4bdbc4f5ac9b43d2f413462d3e4754f737193a30a8c16b7c413a01a63e5b283a", + "size": 28588 }, { "url": "https://claude.com/docs/government/connectors/microsoft-365", @@ -11748,8 +11755,8 @@ "url": "https://claude.com/docs/government/org-admin/compliance-api", "status": "success", "path": "claude/government/org-admin/compliance-api.md", - "sha256": "0f6b6eb25f052d18b9fce930b145a862932a4209e6c02e5d3da6d305753120df", - "size": 10954 + "sha256": "93f9d9e626e37d63b61c655a01265da815acf5821117e48ad130b1bb5d0948af", + "size": 11861 }, { "url": "https://claude.com/docs/government/org-admin/configuration", @@ -11860,8 +11867,8 @@ "url": "https://claude.com/docs/government/tenant-admin/overview", "status": "success", "path": "claude/government/tenant-admin/overview.md", - "sha256": "f634a3283eb61c41746de5505f3688e2402aec682d46e2c8df141d58c12de134", - "size": 6449 + "sha256": "6ad5eb831e05d39c13016bd7881c9d23de097576d1be52d065ad72d499aa71f2", + "size": 6702 }, { "url": "https://claude.com/docs/government/tenant-admin/readiness", @@ -12070,8 +12077,8 @@ "url": "https://claude.com/docs/third-party/claude-desktop/configuration-changelog", "status": "success", "path": "claude/third-party/claude-desktop/configuration-changelog.md", - "sha256": "00270e98fd173ee5eccca71383dfb1da8dad67442cea4b0f6c8ae7c9e90e8e1a", - "size": 60788 + "sha256": "c62d6d4a50ea8fd15ef5b1fcbf44f543342bf65997ffc3c5e22c32a1292d3b17", + "size": 60896 }, { "url": "https://claude.com/docs/third-party/claude-desktop/connectors-github", @@ -12231,15 +12238,15 @@ "url": "https://code.claude.com/docs/en/desktop-changelog", "status": "success", "path": "en/docs/claude-code/desktop-changelog.md", - "sha256": "3c585962a30144144f6f07cddbab26d1e8ab8f6272e881441abe0a1401514a09", - "size": 102084 + "sha256": "4700336eefa763c97828a0e3103b5b1ed49244c19dea1a43436e83cfc1d2fbd5", + "size": 102023 }, { "url": "https://code.claude.com/docs/en/slash-commands", "status": "success", "path": "en/docs/claude-code/slash-commands.md", - "sha256": "acb9b3ce43b2e0c373109bb368683552c284dbaf28f36a3ca3969f6a4438d196", - "size": 111012 + "sha256": "8552fefb7d225fcdc1c4098f6a33616d6a55e63206b9d84f0522c7411d0c4c41", + "size": 111848 }, { "url": "https://code.claude.com/docs/en/web-scheduled-tasks", @@ -12259,8 +12266,8 @@ "url": "https://code.claude.com/docs/en/iam", "status": "success", "path": "en/docs/claude-code/iam.md", - "sha256": "bf535f977b9e5d794b07a3375039a42b3a97e8ba4f896e83d493456c392bf96f", - "size": 29535 + "sha256": "bc13c9047347984331089d48131aad67521a14f418acb4aab9ce31afe585fdd4", + "size": 29347 }, { "url": "https://code.claude.com/docs/en/agent-sdk/slash-commands", @@ -27005,40 +27012,7 @@ "size": 170 } ], - "failures": [ - { - "url": "https://platform.claude.com/docs/en/api/python/beta/webhooks/unwrap", - "error": "HTTP 404" - }, - { - "url": "https://platform.claude.com/docs/en/api/cli/beta/webhooks/unwrap", - "error": "HTTP 404" - }, - { - "url": "https://platform.claude.com/docs/en/api/ruby/beta/webhooks/unwrap", - "error": "HTTP 404" - }, - { - "url": "https://platform.claude.com/docs/en/api/beta/webhooks/unwrap", - "error": "HTTP 404" - }, - { - "url": "https://platform.claude.com/docs/en/api/typescript/beta/webhooks/unwrap", - "error": "HTTP 404" - }, - { - "url": "https://platform.claude.com/docs/en/api/csharp/beta/webhooks/unwrap", - "error": "HTTP 404" - }, - { - "url": "https://platform.claude.com/docs/en/api/go/beta/webhooks/unwrap", - "error": "HTTP 404" - }, - { - "url": "https://platform.claude.com/docs/en/api/java/beta/webhooks/unwrap", - "error": "HTTP 404" - } - ], + "failures": [], "dead": [ { "url": "https://support.claude.com/en/articles/12650343-use-claude-for-excel", @@ -27408,6 +27382,18 @@ "url": "https://platform.claude.com/docs/en/api/sdks/cli", "reason": "HTTP 404" }, + { + "url": "https://platform.claude.com/docs/en/api/python/beta/webhooks/unwrap", + "reason": "HTTP 404" + }, + { + "url": "https://platform.claude.com/docs/en/api/cli/beta/webhooks/unwrap", + "reason": "HTTP 404" + }, + { + "url": "https://platform.claude.com/docs/en/api/ruby/beta/webhooks/unwrap", + "reason": "HTTP 404" + }, { "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" @@ -27868,6 +27854,26 @@ "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/api/beta/webhooks/unwrap", + "reason": "HTTP 404" + }, + { + "url": "https://platform.claude.com/docs/en/api/typescript/beta/webhooks/unwrap", + "reason": "HTTP 404" + }, + { + "url": "https://platform.claude.com/docs/en/api/csharp/beta/webhooks/unwrap", + "reason": "HTTP 404" + }, + { + "url": "https://platform.claude.com/docs/en/api/go/beta/webhooks/unwrap", + "reason": "HTTP 404" + }, + { + "url": "https://platform.claude.com/docs/en/api/java/beta/webhooks/unwrap", + "reason": "HTTP 404" + }, { "url": "https://platform.claude.com/docs/en/about-claude/use-case-guides/classification", "reason": "HTTP 404" @@ -27966,8 +27972,8 @@ } ], "summary": { - "total": 4096, - "downloaded": 3857, + "total": 4097, + "downloaded": 3858, "skipped": 0, "failed": 0, "dead": 239, diff --git a/content/CHANGELOG.md b/content/CHANGELOG.md index 44dc4fdb8..8421a9a82 100644 --- a/content/CHANGELOG.md +++ b/content/CHANGELOG.md @@ -1,5 +1,106 @@ # Changelog +## 2.1.269 + +- Added `claude plugin eval`: run a plugin's eval suite against Claude Code and get scored, reproducible results (JSON + HTML report); see `claude plugin eval --help` +- Added `/output-style [name]` to list and switch output styles, including over Remote Control and in cloud and other headless sessions +- Added a diff of the files a Bash command changed to the Bash tool result when the Bash tool handles file edits (setting `bashEditDiffEnabled`) +- Added `OTEL_METRICS_INCLUDE_REPOSITORY` to tag OpenTelemetry metrics and events with `vcs.*` repository attributes; commit events get `vcs.ref.head.*` with `OTEL_LOG_TOOL_DETAILS` +- Added `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` to extend the LLM gateway `/v1/models` discovery timeout (default 3s) +- Added a spinner tip suggesting `/focus` for a view with just your prompt, a one-line work summary, and the response +- Added `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` (1–256) to raise the Workflow tool's per-run concurrent agent limit for inference-bound fan-outs +- Fixed the prompt cache being partially invalidated on the turn after a response was cut off at the output-token limit and automatically resumed +- Fixed a case where resuming a session after interrupting Claude mid-thought could change how earlier context was re-sent, hurting prompt-cache reuse +- Fixed F1/F2/F4 not working in kitty-protocol terminals and Delete in st, Alt+arrows acting as Escape in rxvt-unicode, and Shift+punctuation typing the unshifted key in WezTerm (regression in 2.1.247) +- Fixed remote and headless sessions reporting "waiting for your input" while background agents were still running (set `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING=0` to restore the old behavior) +- Fixed the terminal's replies to capability queries (`^[[?1;2c`) appearing as stray text at startup in some terminals +- Fixed rows at the top or bottom of the transcript going blank in fullscreen after resizing the terminal +- Fixed a deny or ask permission rule starting with `!` applying beyond the settings source that wrote it; such a rule now applies only within its own source, and a bare `!` negation is ignored +- Fixed the git status Claude is told after a compaction: it is now the current status, not the one from the start of the session +- Fixed synced plugin MCP servers not connecting when a remote session resumes +- Fixed resumed headless sessions losing a turn's replies when the model was switched or a request was retried mid-turn +- Fixed terminal escape codes, line breaks and oversized text from a background task's on-disk record reaching the task list and task notifications when work is resumed +- Fixed CMYK JPEG images failing to attach with "cannot decode"; they are now converted and resized like other JPEGs +- Fixed the managed settings approval dialog not naming the collector for a gRPC telemetry endpoint set without a scheme +- Fixed plugin `headersHelper` consent prompts showing a URL path that could be misread as a different host +- Fixed plugin errors showing `[redacted URL]` in place of a relative Windows path with a folder name that starts with `@` +- Fixed missing cursor in the permission-rule, auto-mode-rule, add-directory, session-rename and feedback-review text fields when the terminal's native cursor is enabled +- Fixed repeated clicks on a `/fork` receipt, each under a second apart, never backgrounding the session right away while it waited for the current tool to finish +- Fixed plugin LSP servers that reject `shutdown` params (e.g. rust-analyzer) being left running at session end; `exit` is now sent even if `shutdown` fails +- Fixed the attribution reminder overriding a CLAUDE.md or memory rule against commit and pull request attribution; lines set by managed settings still apply +- Fixed prompt suggestions being dropped for text in Japanese, Chinese, Thai and other languages written without spaces between words +- Fixed synchronized output being assumed from the terminal's name in GNOME Terminal and Konsole versions that do not support it +- Fixed `permission_denials` in `--output-format stream-json` results omitting Read, Edit and Write calls blocked by a path-scoped deny rule +- Fixed sessions run through the SDK or the desktop app showing an unknown status in other sessions' agent list +- Fixed `/insights` failing on Bedrock, Vertex, Foundry, and gateway deployments whose account can't reach the default Opus model by using the session model there instead +- Fixed organization policy limits not loading for the session when another Claude Code process refreshed the login at the same moment +- Fixed Claude Desktop sessions using Bedrock, Vertex, or a gateway not getting the contextual "what Claude needs" turn-end notification text +- Fixed MCP servers reconnecting when an updated config only changed the order of the server URL's query parameters +- Fixed the prompt box's top border splitting into extra lines when viewing a background agent whose name or description has line breaks or is wider than the terminal +- Fixed sessions getting permanently stuck on "Prompt is too long" when auto-compaction had no complete earlier exchange to summarize (mostly Agent SDK sessions with very large prompts) +- Fixed `/goal` runs silently stalling after API errors, network drops, or token limits: the goal now retries with backoff, or pauses and says why, including until a usage limit resets +- Fixed prompt cache misses in cloud sessions by waiting briefly for server configuration before the first request +- Fixed `/btw` answers that contained made-up tool calls and output: the side question is now told not to write them, and any that appear are flagged as not executed +- Fixed `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` re-running a turn that had failed with an API error over 6 hours earlier, or longer ago than `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` when set +- Fixed organization plugins enabled through managed settings not loading in headless sessions and on Claude Desktop (once Desktop bundles this CLI version); they load from the next session +- Fixed plugin archives extracted for a session being readable by other local users, extracted files keeping world-writable bits from the archive, and stale files surviving re-extraction +- Fixed `Edit()` deny rules and the write-path check not applying to the file a Bash `tee` command writes; a `Bash(tee:*)` allow rule no longer covers destinations outside the working directories +- Fixed stray characters like `22c`, or a terminal's color or version reply, being typed into the prompt at startup over slow connections (ssh, browser terminals) +- Fixed the terminal's block cursor showing under the interface in rxvt-unicode after leaving or re-entering fullscreen +- Fixed the cursor block staying visible after returning from an external editor in fullscreen mode on rxvt-unicode +- Fixed the interface being drawn twice after returning from an external editor (Ctrl+G) outside fullscreen mode +- Fixed the interface being drawn twice in Konsole after returning from an external editor +- Windows: Fixed PowerShell tool commands sent to the background stopping when Claude Code exits +- Improved the `/diff` panel to open fully rendered in one step instead of showing a loading state first +- Improved prompt suggestion filtering for Japanese, Chinese and Korean text: mixed-script and single-word suggestions are kept, and meta or evaluative text is dropped as it is for English +- Improved the Skill tool's "Unknown skill" error to name the plugin skill's full name when a bare name matches exactly one plugin skill +- Improved keyboard support over SSH and in unrecognized terminals: terminals that answer the kitty keyboard query (such as foot and Alacritty 0.16+) now get Shift+Enter and Ctrl+Shift shortcuts +- Improved responsiveness in long sessions: transcript updates no longer re-process the whole conversation to build the collapsed tool-use summaries +- Improved first-party sessions with telemetry disabled: an `alwaysLoad` MCP server that finishes connecting mid-conversation is usable on the next turn without a tool-search round trip +- Changed `/ultrareview --post` to post the PR comment directly when the findings arrive and print the comment link, instead of starting a second cloud session to post it +- Changed artifact database reads that save into the session scratchpad so they no longer stop for working-folder approval +- Changed skills synced from claude.ai in cloud sessions to be named `anthropic-skills:`, matching Claude Desktop; the bare name still works when nothing else uses it +- [VSCode] Added an agent map: an "N agents" footer pill opens a map of the session's sub-agents with per-agent cards, Stop agent, and read-only transcripts +- [VSCode] Added a Hooks dialog to the command menu for viewing hooks and adding, editing, or removing them in user, project, and local settings; managed, plugin, and session hooks stay read-only +- [VSCode] Added live progress rows for running subagents under the tool-call groups in Focus view +- [VSCode] Added a Permission rules dialog that lists permission rules and adds or removes them in user, project, and local settings; startup-option, session-only, and managed rules stay read-only +- [VSCode] Added a Cancel button to the Switch account screen that returns to your session as the current account +- [VSCode] Fixed Focus view showing a turn started by a delivered plain-text prompt, such as a scheduled task's, as part of the previous turn +- [VSCode] Fixed the footer's prompt cache clock hiding its minutes when the panel is narrow +- [VSCode] Fixed the session list keeping sessions from the default folder when `CLAUDE_CONFIG_DIR` is set in a settings file or the `environmentVariables` setting +- [VSCode] Fixed a plan preview that finished loading late sometimes hiding its comment box or showing an older plan +- [VSCode] Fixed a plan preview accepting comments that went nowhere after its Claude tab closed +- [VSCode] Fixed the prompt cache clock and reopen notice for a session compacted after its last reply and then closed, which now reads as cold when reopened +- [VSCode] Fixed a session renamed in the extension while Remote Control is on keeping its old name on claude.ai/code +- [VSCode] Fixed the "Enable Remote Control for all sessions" toggle keeping its last position after the setting was reset to default from a terminal +- [VSCode] Fixed restored Claude tabs not counting as open in the session list after a window reload until clicked, and their row opening a second tab +- [VSCode] Fixed Switch account making a tab forget its dismissed usage-limit warnings when you sign back in as the same account +- [VSCode] Fixed a session rename being replaced by the generated name after a window reload when the session was renamed during a long turn +- [VSCode] Fixed the sidebar usage meter keeping a stale per-model weekly limit row after the account loses that limit +- [VSCode] Fixed a rare case where an @-mention sent with the keyboard shortcut while a new chat view was still starting could be inserted into the input long after the keystroke +- [VSCode] Fixed the session list jumping down when the Account & usage header appeared a moment after opening the Claude side bar +- [VSCode] Improved documents and messages written for someone other than the user: Claude now writes them for that audience and names it at the top of its reply +- [VSCode] Improved screen reader and keyboard accessibility in the slash-command menu, @-mention menu, output-style picker, Send/Stop button, permission and question cards, and onboarding checklist +- [VSCode] Changed the current-file chip in the message box: an X now removes it, replacing the Hide toggle +- [VSCode] Removed the Claude Code items from a session tab's right-click menu and the editor title bar's "..." menu; they could not act on the tab the menu was opened on +- [Claude Code on the web] Added taking back a queued message in a cloud session before Claude reads it: remove it from the queue, or press Esc or Up, and the text returns to the message box +- [Claude Code on the web] Fixed `/model default` in a cloud session leaving every later message failing in organizations that restrict which models Claude Code can use +- [Claude Code on the web] Fixed one-off scheduled routines occasionally running a second time after a transient server error +- [Claude Code on the web] Fixed routine runs that use subagents sometimes being treated as finished too early, which could skip the retry after a real failure or start a duplicate run +- [Claude Code on the web] Fixed file links in cloud session transcripts opening a GitHub 404 when Claude was working from a subfolder of the repository +- [Claude Code on the web] Changed the Cloud environments admin page to list every environment instead of capping each table at five rows behind a Show more control that could be unreachable +- [Claude Code on the web] Changed claude.ai/code for Free-plan users to open the plans page with a path to upgrade, instead of a "Disabled by org admin" page with no way forward +- [Claude Tag] Added a confirmation dialog before Connect all or Disconnect on a GitHub installation in admin settings, to guard against accidental organization-wide changes +- [Claude Tag] Fixed threads occasionally going silent after a failed turn because the failure notice was dropped when Slack briefly rate-limited it; the notice is now retried +- [Claude Tag] Fixed Claude accepting a switch to a model your organization hasn't enabled and then quietly answering with a fallback model; it now declines and says an admin can enable it +- [Claude Tag] Fixed a table posting as raw pipe text when Claude attached files to the same message; the table now posts as a normal reply and the files follow with a plain caption +- [Claude Tag] Fixed `@Claude !restart` at the top level of a channel where Claude isn't active starting an unrelated conversation; it now privately says there is nothing to restart +- [Claude Tag] Fixed plugin rows in Slack access settings showing an unlabeled raw ID with no way to turn the plugin off; they now show its name and link to the bundle that manages it +- [Claude Tag] Fixed the shared-session banner and Share dialog on sessions started from Slack claiming the whole organization could open the link; they now name the Slack channel's audience +- [Claude Tag] Improved load time of the admin settings page and its Slack channel picker, most noticeably for organizations with many channels or several connected workspaces +- [Claude Tag] Improved scheduled routines in Slack channels: a routine run can now reply in an existing thread instead of always posting a new top-level channel message +- [Claude Tag] Improved the timestamp on Claude's live progress checklists to show each reader's local time and how long ago it was updated, instead of a fixed UTC time + ## 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 diff --git a/content/claude-code-manifest.json b/content/claude-code-manifest.json index 8cd9f4d2d..3e39fd6ed 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": "4fca301638492c98f248316b438c58c4286624ae", - "tarball": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-2.1.268.tgz", + "shasum": "862f6deaffbfda326ca2306b21f4db80265c2d52", + "tarball": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-2.1.269.tgz", "fileCount": 7, - "integrity": "sha512-DSRUVAbRRH7WaHm99OErT4FJQDkbhIUb8mIaevcFrXtKCZwA9UmKY5+SOFWmgyeEUj2Uh1pFw0Rk/gYffmUEUw==", + "integrity": "sha512-osSbRU1KjlAfhVSgso7g+KxCr5DLNlfm7xeRPpm/c9s+7HGqQLHbkUYvjepbe6TiHJa9iSeirW/t7vW4sZhTIQ==", "signatures": [ { - "sig": "MEUCIQDAYRCjoi6mwaNTxEsZyp1bRS5d/NlD6/DHUm5D1bqy+wIgIRft1vWuFJ9xK4gB9/Anixzhno3YiBzKDwF8sJ1sNj8=", + "sig": "MEYCIQD8a+7pCPhZuGpwVZtnfCoYhyI9AwuPLtrfVS2ugjHRzgIhAIf5ceettWxav7NVWri4ZDOm5SnZ7eAovfRuT6dCIwCD", "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U" }, { - "sig": "MEUCIQDVihj3hZnCIORrikeHG2sG8lb3f0YBGJwVs4etWPbJswIgXvjAbVxNB+l2jB4p3Rf/d9x9QFiGVTmT5wVYEoqrQiM=", + "sig": "MEQCIGQ0/tVVg2tIZYh7urmYUBOcJ6KEf3RYzSXSu+CPhDm4AiA4F/ZVs8A5YMUBOFK1gJCfJfj9BmGktWtTKBzSArXtcQ==", "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U" } ], - "unpackedSize": 184019 + "unpackedSize": 184449 }, "name": "@anthropic-ai/claude-code", "type": "module", - "_from": "file:staged-npm/anthropic-ai-claude-code-2.1.268.tgz", + "_from": "file:staged-npm/anthropic-ai-claude-code-2.1.269.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.268.tgz", - "_integrity": "sha512-DSRUVAbRRH7WaHm99OErT4FJQDkbhIUb8mIaevcFrXtKCZwA9UmKY5+SOFWmgyeEUj2Uh1pFw0Rk/gYffmUEUw==", + "_resolved": "/home/runner/work/claude-cli-internal/claude-cli-internal/staged-npm/anthropic-ai-claude-code-2.1.269.tgz", + "_integrity": "sha512-osSbRU1KjlAfhVSgso7g+KxCr5DLNlfm7xeRPpm/c9s+7HGqQLHbkUYvjepbe6TiHJa9iSeirW/t7vW4sZhTIQ==", "_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.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" + "@anthropic-ai/claude-code-linux-x64": "2.1.269", + "@anthropic-ai/claude-code-win32-x64": "2.1.269", + "@anthropic-ai/claude-code-darwin-x64": "2.1.269", + "@anthropic-ai/claude-code-linux-arm64": "2.1.269", + "@anthropic-ai/claude-code-win32-arm64": "2.1.269", + "@anthropic-ai/claude-code-darwin-arm64": "2.1.269", + "@anthropic-ai/claude-code-linux-x64-musl": "2.1.269", + "@anthropic-ai/claude-code-linux-arm64-musl": "2.1.269" }, "_npmOperationalInternal": { - "tmp": "tmp/claude-code_2.1.268_1789065671686_0.460315409648951", + "tmp": "tmp/claude-code_2.1.269_1789150369156_0.19767114897648885", "host": "s3://npm-registry-packages-npm-production" }, - "_id": "@anthropic-ai/claude-code@2.1.268", - "version": "2.1.268" + "_id": "@anthropic-ai/claude-code@2.1.269", + "version": "2.1.269" } \ No newline at end of file diff --git a/content/claude/claude-tag/admins/connections/custom.md b/content/claude/claude-tag/admins/connections/custom.md index 9493f7009..d320d739d 100644 --- a/content/claude/claude-tag/admins/connections/custom.md +++ b/content/claude/claude-tag/admins/connections/custom.md @@ -62,9 +62,10 @@ 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 +* Service hostnames with extra parts before the service name, as long as the region is the last part before `amazonaws.com`, for example the Amazon ECR API host `api.ecr.us-east-1.amazonaws.com` or the host of an API Gateway invoke URL, `abc123.execute-api.us-east-1.amazonaws.com` +* The regionless hosts of IAM, STS, S3, Route 53, CloudFront, Organizations, and Global Accelerator, for example `iam.amazonaws.com`, which Agent Proxy signs for `us-east-1` -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. +Requests to other hostnames fail before reaching AWS. Agent Proxy can't sign a request to a hostname with no region for any other service, such as `ec2.amazonaws.com`, or to a hostname with the region before the service name, such as an OpenSearch domain endpoint (`my-domain.us-east-1.es.amazonaws.com`). It also can't sign requests to an API Gateway custom domain or to a non-AWS API that uses Signature Version 4. | Field | Value | | :---------------- | :---------------------------------------------------------------------------------------------------------- | diff --git a/content/claude/claude-tag/admins/federated-access/aws.md b/content/claude/claude-tag/admins/federated-access/aws.md index c6aa819c1..3ee1b18ae 100644 --- a/content/claude/claude-tag/admins/federated-access/aws.md +++ b/content/claude/claude-tag/admins/federated-access/aws.md @@ -71,7 +71,7 @@ In **Cloud roles**, click **Connect an AWS role** and copy the **Issuer**, **Aud - Attach a least-privilege permissions policy to the role. For the check under [Verify the connection](#verify-the-connection), the role needs `s3:ListBucket` on the example bucket. Each sign-in gives Claude temporary credentials that last 1 hour, the AWS default. Claude doesn't ask for a different length, and the role's maximum session duration setting doesn't change this. To cut off access before they expire, use the role's **Revoke active sessions** option in IAM or change its permissions. + Attach a least-privilege permissions policy to the role for the work Claude will do. The check under [Verify the connection](#verify-the-connection) needs no permissions. Each sign-in gives Claude temporary credentials that last 1 hour, the AWS default. Claude doesn't ask for a different length, and the role's maximum session duration setting doesn't change this. To cut off access before they expire, use the role's **Revoke active sessions** option in IAM or change its permissions. @@ -117,13 +117,17 @@ New threads pick up the connection on their own. In a thread already running, as ## Verify the connection -In a channel whose workspace or channel has the bundle attached, start a new thread and ask Claude to make a small read (replace `example-reports` with a bucket the role can read): +In a channel whose workspace or channel has the bundle attached, start a new thread and ask Claude to run a connectivity check. The check is Claude's own request to `sts.amazonaws.com`, so keep `*.amazonaws.com` under the connection's **Allowed hosts** for this check, or add `sts.amazonaws.com` if you already narrowed the list. The sign-in itself needs no entry there. After the check passes, remove `sts.amazonaws.com` again if you added it, or narrow the wildcard. While it is listed, Claude can send any STS request signed with the role's credentials. If the role is allowed to assume another role, the credentials AWS returns are readable in Claude's sandbox. The call needs no permissions policy on the role. Send Claude this prompt: ```text wrap theme={null} -@Claude list the objects in the S3 bucket example-reports and tell me how many there are. +@Claude Connectivity check for this channel's AWS connection. Please run exactly: + +curl -sS -o /tmp/resp.txt -w '%{http_code}' 'https://sts.amazonaws.com/?Action=GetCallerIdentity&Version=2011-06-15' + +and tell me the HTTP status code it prints and, only if it is not 200, the first 200 characters of /tmp/resp.txt. ``` -Then check CloudTrail in the AWS account for an `AssumeRoleWithWebIdentity` event on your role whose identity provider names `identity.anthropic.com/agents`. Claude signs in at the global STS endpoint, `sts.amazonaws.com`, so the event is recorded in the US East (N. Virginia) region; look there or in a multi-region trail, and allow a few minutes for it to appear. The role session name is an opaque ID for the Claude session that signed in. Claude may reuse one sign-in's credentials for most of the hour across threads in the same channel, so not every request produces a sign-in event. After AWS denies a request, Claude signs in again on the next one. +A status of 200 means the sign-in worked. Then check CloudTrail in the AWS account for an `AssumeRoleWithWebIdentity` event on your role whose identity provider names `identity.anthropic.com/agents`. Claude signs in at the global STS endpoint, `sts.amazonaws.com`, so the event is recorded in the US East (N. Virginia) region; look there or in a multi-region trail, and allow a few minutes for it to appear. The role session name is an opaque ID for the Claude session that signed in. Claude may reuse one sign-in's credentials for most of the hour across threads in the same channel, so not every request produces a sign-in event. After AWS denies a request, Claude signs in again on the next one. If Claude reports that the request was refused, CloudTrail usually shows why. diff --git a/content/claude/claude-tag/admins/federated-access/gcp.md b/content/claude/claude-tag/admins/federated-access/gcp.md index 896748566..7d487d6a5 100644 --- a/content/claude/claude-tag/admins/federated-access/gcp.md +++ b/content/claude/claude-tag/admins/federated-access/gcp.md @@ -127,13 +127,17 @@ New threads pick up the connection on their own. In a thread already running, as ## Verify the connection -In a channel whose workspace or channel has the bundle attached, start a new thread and ask Claude to make a small read (replace `example-reports` with a bucket the identity can read): +In a channel whose workspace or channel has the bundle attached, start a new thread and ask Claude to run a connectivity check. The check reads a bucket's metadata, so the identity needs the `storage.buckets.get` permission on the bucket, and `storage.googleapis.com` must be under the connection's **Allowed hosts**. Send Claude this prompt, replacing `example-reports` with a bucket the identity can read: ```text wrap theme={null} -@Claude list the objects in the Cloud Storage bucket example-reports and tell me how many there are. +@Claude Connectivity check for this channel's Google Cloud connection. Please run exactly: + +curl -sS -o /tmp/resp.txt -w '%{http_code}' https://storage.googleapis.com/storage/v1/b/example-reports + +and tell me the HTTP status code it prints, then paste the contents of /tmp/resp.txt. ``` -Claude's reply tells you whether the read worked. For log evidence, enable Data Access audit logs beforehand for the Security Token Service API, for Cloud Storage, and, with a service account, for the IAM Service Account Credentials API, because Google keeps them off by default. The Security Token Service entry records each token exchange, with Google's reason when it refuses one, which Claude's own error doesn't show. The Cloud Storage entry shows the caller as the service account, or as the federated identity with the agent's full subject. +A status of 200 with a JSON body whose `kind` is `storage#bucket` means the token exchange and the API call both worked. For log evidence, enable Data Access audit logs beforehand for the Security Token Service API, for Cloud Storage, and, with a service account, for the IAM Service Account Credentials API, because Google keeps them off by default. The Security Token Service entry records each token exchange, with Google's reason when it refuses one, which Claude's own error doesn't show. The Cloud Storage entry shows the caller as the service account, or as the federated identity with the agent's full subject. If Claude reports that the request was refused, the two most common causes are these: diff --git a/content/claude/claude-tag/admins/federated-access/token-reference.md b/content/claude/claude-tag/admins/federated-access/token-reference.md index db0a36fdb..997402c6f 100644 --- a/content/claude/claude-tag/admins/federated-access/token-reference.md +++ b/content/claude/claude-tag/admins/federated-access/token-reference.md @@ -99,9 +99,11 @@ These are the claims a token carries. Tokens may carry additional claims Anthropic uses internally for audit; ignore any claim not listed here and never base an authorization decision on it. +Three claim names are reserved and absent from every token: `platform_user_id`, `actor_sub`, and `account_id`. Don't write a rule that depends on them. An absent claim is omitted from the token, never sent empty. + Anthropic sends the token only to the destinations you connect in **Federated cloud access**. When the request comes from Slack, the `slack_workspace_id` and `slack_channel_id` claims carry your Slack workspace and channel IDs to that destination along with your organization and agent IDs. -Authorize on `sub`, as described under [Authorize on the subject](#authorize-on-the-subject). A gateway or authorization server, which can read every claim, can use `tenant` and `agent_id` instead, because they repeat the subject's two parts. An AWS trust policy matches on `sub` and `aud` only; a Google Cloud attribute condition can read `sub` or `tenant`. The token carries no claims about the person behind the request, and no `groups`, `roles`, or `scope` claims. A rule that needs `slack_workspace_id` or `slack_channel_id` should refuse a token that lacks them. +Authorize on `sub`, as described under [Authorize on the subject](#authorize-on-the-subject). A gateway or authorization server, which can read every claim, can use `tenant` and `agent_id` instead, because they repeat the subject's two parts. An AWS trust policy matches on `sub` and `aud` only; a Google Cloud attribute condition can read `sub` or `tenant`. The token carries no claim that names the person behind the request, and no `groups`, `roles`, or `scope` claims. A rule that needs `slack_workspace_id` or `slack_channel_id` should refuse a token that lacks them. Anthropic may add claims to the token. A verifier must ignore claims it doesn't recognize and must never depend on a claim not listed here being present. diff --git a/content/claude/claude-tag/admins/federated-access/troubleshooting.md b/content/claude/claude-tag/admins/federated-access/troubleshooting.md index c5557817f..6239f517e 100644 --- a/content/claude/claude-tag/admins/federated-access/troubleshooting.md +++ b/content/claude/claude-tag/admins/federated-access/troubleshooting.md @@ -111,11 +111,11 @@ The gateway was removed from the **Gateways** table, but its connection is still To keep the gateway, register the same address again; see [Removing and reconnecting a gateway](#removing-and-reconnecting-a-gateway). To drop it, in **Access bundles**, open the bundle's **Credentials** tab, open the **⋮** menu on the connection's row, and choose **Delete**. -### request blocked: Google (gcp) credentials aren't enabled for this organization +### Claude says Google credentials are not enabled for this organization **What you see** -Claude's request got HTTP 403 with this reason. +Claude's request got HTTP 403 with the reason "request blocked: Google (gcp) credentials aren't enabled for this organization". **What it means** @@ -125,11 +125,11 @@ A Google Cloud identity is connected in a bundle, but Google Cloud federation is Contact your Anthropic account team with the details under [Contact Anthropic](#contact-anthropic). -### request blocked: this credential has restrict\_credential\_minting set, so Google's credential-minting endpoints are refused +### Claude says a Google credential-minting endpoint was refused **What you see** -Claude's request got HTTP 403 with this reason. +Claude's request got HTTP 403 with the reason "request blocked: this credential has restrict\_credential\_minting set, so Google's credential-minting endpoints are refused". **What it means** @@ -189,19 +189,41 @@ Claude's request got HTTP 502 with the reason `injection failed ("")`. CloudTrail shows that the role's `AssumeRoleWithWebIdentity` event succeeded, or shows no new event because Claude was reusing credentials from an earlier sign-in. Other kinds of request with the same connection may still work. The failure repeats for one kind of request, for example every call to one host or every upload to S3. + +**What it means** + +The sign-in worked, but [Agent Proxy](/docs/claude-tag/concepts/agent-identity#agent-proxy) couldn't sign the request with the role's credentials, so it never left for AWS. Claude's reply doesn't say which of these applies: + +* **A hostname with no usable region.** Agent Proxy reads the AWS service and signing region from the hostname, so the region must be the last label before `amazonaws.com`, as in `service.region.amazonaws.com`, `my-bucket.s3.us-east-1.amazonaws.com`, or `api.ecr.us-east-1.amazonaws.com`. Agent Proxy refuses a hostname with no region, such as `ec2.amazonaws.com`, unless the service is IAM, STS, S3, Route 53, CloudFront, Organizations, or Global Accelerator, which it signs for `us-east-1`. It also refuses a hostname that puts the region before the service name, such as an OpenSearch domain endpoint (`my-domain.us-east-1.es.amazonaws.com`). +* **A large request to a service other than S3 with no content hash.** When a request has no `x-amz-content-sha256` header, Agent Proxy hashes the body before signing and refuses a body over 1 MB (1,048,576 bytes). The AWS CLI and SDKs add that header for S3 but usually not for other services. +* **An S3 upload sent in chunks.** The AWS CLI (2.23.0 and later) and the AWS SDKs that compute upload checksums by default can send S3 uploads in chunks with a checksum trailer. Agent Proxy can't sign a request in that format. The fix is to have the AWS CLI or SDK send the body in one piece. + +**How to resolve** -Allow for log delivery delay before concluding there was no attempt. If your logs show none at the time of the request, the token wasn't issued, and you should [contact Anthropic](#contact-anthropic) with the details listed there. A gateway connection doesn't produce this error. Your gateway's own response reaches Claude, so Claude reports the status your gateway returned, usually 401 or 403; see [Your gateway rejects every token](#your-gateway-rejects-every-token). +| Cause | Do this | +| :--------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| Hostname with no usable region | Use the service's regional endpoint, `service.region.amazonaws.com` (for S3, also `bucket.s3.region.amazonaws.com`), and make sure that host is in the connection's **Allowed hosts**. A host that exists only with the region before the service name, such as an OpenSearch domain endpoint, can't be reached through a federated connection. [Contact Anthropic](#contact-anthropic) with the hostname. | +| Large request to a service other than S3 | Keep the body under 1 MB, or have Claude send the request with an `x-amz-content-sha256` header set to the hex SHA-256 of the body, for example with `curl`. For large data, upload to S3 and pass a reference instead. | +| S3 upload sent in chunks | Have Claude set the environment variable `AWS_REQUEST_CHECKSUM_CALCULATION=WHEN_REQUIRED` before running the AWS CLI or a script that uses an AWS SDK, or add `request_checksum_calculation = WHEN_REQUIRED` to the profile in `~/.aws/config`, then retry. To apply it in every thread, add a line to the scope's [custom instructions](/docs/claude-tag/admins/attach-to-scope#add-custom-instructions), for example "Before using the AWS CLI or an AWS SDK, add `request_checksum_calculation = WHEN_REQUIRED` to the default profile in `~/.aws/config`." S3 still computes and stores a checksum for the object. If the upload still fails, [contact Anthropic](#contact-anthropic). | ### The cloud API answers 403 after a successful exchange diff --git a/content/claude/claude-tag/users/when-claude-responds.md b/content/claude/claude-tag/users/when-claude-responds.md index a3aa5a179..971c6aae9 100644 --- a/content/claude/claude-tag/users/when-claude-responds.md +++ b/content/claude/claude-tag/users/when-claude-responds.md @@ -109,7 +109,9 @@ Claude can no longer read or post in that channel. Any member can run this unles ## When Claude stops reading a channel -Claude counts the messages posted in a channel since it last posted there itself. When the count gets high enough, Claude stops reading that channel's messages, and unprompted replies stop with it. Claude doesn't announce this. To start it reading again, mention `@Claude` in the channel; the mention reaches it regardless, and once Claude posts its reply, it reads the channel's messages again. +Claude counts the messages posted in a channel since it last posted there itself. When the count gets high enough, Claude stops reading that channel's messages, and unprompted replies stop with it. Claude doesn't announce this. + +To start Claude reading again, mention `@Claude` in the channel. A mention from a person reaches Claude even while Claude isn't reading the channel, and once Claude posts its reply, it reads the channel's messages again. If unprompted replies don't come back after Claude answers a mention, the channel's [**Respond automatically**](#turn-automatic-replies-on-or-off) setting is off. Answering a mention doesn't turn the setting on, and Claude changes the setting only when a channel member asks it to, so turn it back on in any of the three places listed in that section. diff --git a/content/claude/connectors/building/authentication.md b/content/claude/connectors/building/authentication.md index 6ba142a75..eed9e5fa7 100644 --- a/content/claude/connectors/building/authentication.md +++ b/content/claude/connectors/building/authentication.md @@ -16,15 +16,47 @@ Claude supports the following authentication types for remote MCP servers. The s | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | | `oauth_dcr` | OAuth 2.0 with Dynamic Client Registration ([RFC 7591](https://www.rfc-editor.org/rfc/rfc7591)) | Supported out of the box | | `oauth_cimd` | OAuth 2.0 with [Client ID Metadata Document](https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization#client-id-metadata-documents) | Supported out of the box | -| `oauth_anthropic_creds` | OAuth 2.0 with Anthropic-held client credentials | Contact `mcp-review@anthropic.com` | -| `custom_connection` | Custom URL or credentials supplied at connection time (for example, Snowflake-style) | Contact `mcp-review@anthropic.com` | +| `oauth_anthropic_creds` | OAuth 2.0 with [Anthropic-held client credentials](#anthropic-held-client-credentials) | Contact `mcp-review@anthropic.com` | +| `custom_connection` | Custom URL or OAuth client credentials [entered at connection time](#credentials-entered-at-connection-time) | Contact `mcp-review@anthropic.com` | | `static_headers` | Fixed credential (API key or bearer token) entered by an organization administrator as a request header when adding the connector | Beta | | `none` | No authentication (authless server) | Supported. An optional partial-auth mode is experimental. | +If your server URL varies per customer, read [Servers with per-customer URLs](#servers-with-per-customer-urls) before you pick a type. + Static bearer tokens and API keys are supported in beta through request headers (`static_headers`). An organization administrator enters the credential once when adding the connector, and Claude sends it on every request. The credential is shared by the organization rather than pasted per user. Standard header names such as `authorization` and `x-api-key` work for every connector; Anthropic reviews and approves any other header name before administrators can save the connector. See [Authenticating with request headers](/docs/connectors/custom/remote-mcp#authenticating-with-request-headers) for what administrators see and how to document the expected header for them. Tokens or API keys passed in the connector URL (for example, `?token=`, `?apiKey=`, or `?userToken=` query parameters) are **not recommended**. A credential in a URL is a security vulnerability: URLs are routinely recorded in server logs, proxies, and browsing history, so a query-string credential is easy to leak. The MCP authorization specification explicitly [prohibits access tokens in the URI query string](https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization#token-requirements). Use OAuth or [request headers](/docs/connectors/custom/remote-mcp#authenticating-with-request-headers) instead. +## Servers with per-customer URLs + +The submission portal's **Connection** step asks how users reach your server. There are three choices: + +* **Universal URL**: every user connects to the same URL. +* **Multiple URLs**: you list a fixed set of labeled URLs, such as one per region. Users pick one when they connect. +* **URL pattern**: you give an anchored regular expression that every customer's URL must match, such as `^https://[a-z0-9-]+\.mcp\.example\.com/mcp$`. Each user enters their own URL when they connect, and Claude accepts it only if it matches. + +Keep the host part of a URL pattern lowercase, because Claude lowercases the host of the URL the user enters before checking it. + +Listings with **Multiple URLs** or a **URL pattern** take longer to review. + +You choose the URL option and the authentication type separately, but the URL option limits which authentication types work. Request headers (`static_headers`) are set up by the organization administrator who adds the connector and aren't covered by this table. + +| Type | Universal URL | Multiple URLs | URL pattern | +| ----------------------- | ------------- | ------------- | ----------- | +| `oauth_dcr` | Yes | Yes | Yes | +| `oauth_cimd` | Yes | Yes | Yes | +| `oauth_anthropic_creds` | Yes | Yes | No | +| `custom_connection` | Yes | No | Yes | +| `none` | Yes | Yes | Yes | + +Anthropic-held client credentials are tied to exact server URLs, and a URL pattern matches URLs Anthropic doesn't know in advance. Credentials entered at connection time can't be combined with **Multiple URLs**. + +For a URL pattern, use these in order of preference: + +1. Client ID Metadata Document (CIMD). Every customer's authorization server must advertise both CIMD values listed in [DCR and CIMD details](#dcr-and-cimd-details). +2. [Dynamic Client Registration](#dcr-and-cimd-details) (DCR). Every customer's authorization server must expose a `registration_endpoint`. +3. [Credentials entered at connection time](#credentials-entered-at-connection-time), if your customers' authorization servers support neither. Each customer then has to create an OAuth client for Claude themselves. + ## Anthropic-held client credentials A pure machine-to-machine `client_credentials` grant—where a server-to-server token is issued with no user in the loop—is **not supported**. Every connection requires user consent. @@ -40,15 +72,40 @@ This gives you a stable, registered OAuth client without requiring DCR or CIMD o Anthropic-held credentials are bound to the authorization server that issued them. If you migrate to a new authorization server, email `mcp-review@anthropic.com` with the new `client_id` and `client_secret` before cutting over. CIMD-based connectors don't have this constraint — a CIMD `client_id` is a self-hosted URL, so it works against any authorization server that fetches it. + + Anthropic-held credentials are also tied to exact server URLs. They can't be used with a URL pattern, where each customer enters their own server URL. See [Servers with per-customer URLs](#servers-with-per-customer-urls) for the alternatives. + + To use this flow, email `mcp-review@anthropic.com` with your `client_id` and secret. +## Credentials entered at connection time + +`custom_connection` (**Custom URL or credentials at connection time** in the submission portal) asks each customer for the OAuth client that Claude should use, instead of Claude registering one or Anthropic holding one. + +Each customer must be able to create an OAuth client in your product, which usually means an administrator sets up the connector for their organization. If your customers can't create OAuth clients, use CIMD or DCR instead. + +When a user adds your connector, Claude shows a form with these fields: + +* **Server URL**, if your listing uses a URL pattern. Claude accepts the URL only if it matches the pattern. +* **OAuth client ID** and **OAuth client secret**. You choose which of the two to ask for, and whether each is required or optional. + +The form links to pages you supply: one for where the customer finds their server URL, and one for how they get the credentials. The credentials page must explain how a customer creates an OAuth client for Claude in your product and registers the redirect URI `https://claude.ai/api/mcp/auth_callback`. + +If a user leaves an optional client secret blank, Claude uses the client ID as a public client. If a user leaves an optional client ID blank, Claude falls back to the same order as any other listing: Anthropic-held credentials for that URL if Anthropic holds any, then CIMD, then DCR. See [DCR and CIMD details](#dcr-and-cimd-details). + +If you later stop asking for credentials, connections already made with user-entered credentials keep using them. An organization gets the new behavior only once no one in it still has the connector. The next person to add it starts fresh. + +To use this flow, email `mcp-review@anthropic.com` with which fields you need, whether each is required, and the page each one should link to. + ## DCR and CIMD details If your authorization server does **not** expose a `registration_endpoint` (i.e., does not support DCR), you have several options: * Expose a `registration_endpoint` * Support CIMD instead. Claude selects CIMD only when your authorization server metadata advertises **both** `"client_id_metadata_document_supported": true` **and** `"none"` in `token_endpoint_auth_methods_supported` — the second is required because Claude's CIMD client authenticates as a public client at your token endpoint. If either is missing, Claude falls back to DCR. See [lazy authentication](/docs/connectors/building/lazy-authentication#identify-the-client-with-cimd) for a worked CIMD example. -* Switch to `oauth_anthropic_creds` +* Switch to `oauth_anthropic_creds`, if your listing doesn't use a URL pattern + +If your server URL varies per customer and DCR isn't available, CIMD is the recommended path. Every customer's authorization server must advertise both values above. Otherwise Claude falls back to DCR for that customer, which needs a `registration_endpoint`. For servers expecting high traffic from the directory, prefer **CIMD or `oauth_anthropic_creds` over DCR**. DCR causes Claude to register a new client on every fresh connection, which can result in very large numbers of registered clients on your authorization server. CIMD and Anthropic-held credentials avoid the registration call entirely. @@ -120,7 +177,7 @@ Your `/token` endpoint must accept `Content-Type: application/x-www-form-urlenco Organizations using SSO can also connect their users to your server without an interactive OAuth consent step, using an identity assertion signed by their identity provider. See [Enterprise Managed Auth](./enterprise-managed-auth) for what your authorization server needs to support. -Directory connectors use a **single shared OAuth application per connector**. There is no per-org OAuth client for directory connectors — enterprise customers connect to the same OAuth app as everyone else, and access is scoped by the user's own permissions on your service. Custom connectors are different: an admin can supply their own OAuth client credentials when adding the connector, which scopes the OAuth client to that organization. See [custom connectors](#custom-connectors). +Most directory connectors use a **single shared OAuth application per connector**. Enterprise customers connect to the same OAuth app as everyone else, and access is scoped by the user's own permissions on your service. For a listing that asks for [credentials entered at connection time](#credentials-entered-at-connection-time), each customer supplies its own OAuth client instead. Custom connectors are different: an admin can supply their own OAuth client credentials when adding the connector, which scopes the OAuth client to that organization. See [custom connectors](#custom-connectors). ## Custom connectors diff --git a/content/claude/connectors/building/directory-vs-custom.md b/content/claude/connectors/building/directory-vs-custom.md index 46fdcc7de..ba415d47e 100644 --- a/content/claude/connectors/building/directory-vs-custom.md +++ b/content/claude/connectors/building/directory-vs-custom.md @@ -76,7 +76,7 @@ A supported pattern is to list a connector in the directory with safe, broadly-a ## Per-tenant URLs -If your server URL varies per tenant (for example, `{tenant}.mcp.example.com`), this is typically handled either as separate per-tenant directory entries or via the [`custom_connection`](/docs/connectors/building/authentication#supported-authentication-types) authentication type, where users supply their tenant-specific URL at connection time. `custom_connection` is enabled per partner—email `mcp-review@anthropic.com` to request it. The directory does not currently template a single entry across tenant subdomains. +If your server URL varies per tenant (for example, `{tenant}.mcp.example.com`), submit one directory listing with a URL pattern. Each user enters their own URL when they connect. See [Servers with per-customer URLs](/docs/connectors/building/authentication#servers-with-per-customer-urls) for how this choice limits your authentication options. ## What the directory is not diff --git a/content/claude/connectors/building/submission.md b/content/claude/connectors/building/submission.md index 43bfb03f0..25e7b6773 100644 --- a/content/claude/connectors/building/submission.md +++ b/content/claude/connectors/building/submission.md @@ -133,7 +133,7 @@ The portal walks you through the following steps. Your progress saves automatica - Connect the server you're submitting. You confirm the server URL (must be `https://`), the transport (streamable HTTP or SSE), and whether every user connects to the same URL or different users connect to different URLs. + Connect the server you're submitting. You confirm the server URL (must be `https://`), the transport (streamable HTTP or SSE), and how users reach your server: one **Universal URL** for everyone, a fixed list of **Multiple URLs**, or a **URL pattern** that each user's own URL must match. See [Servers with per-customer URLs](/docs/connectors/building/authentication#servers-with-per-customer-urls) for how this choice limits your authentication options. @@ -153,7 +153,9 @@ The portal walks you through the following steps. Your progress saves automatica - How users authenticate: OAuth (with dynamic client registration, client ID metadata documents, or a static client ID held by Anthropic), a custom connection where users supply their own URL or credentials at connection time, or no authentication. See [authentication](/docs/connectors/building/authentication) for which modes are supported out of the box and which need coordination with the review team. If your server starts without authentication and individual tools prompt for it on demand, you can flag that here. + How users authenticate: OAuth (with dynamic client registration, client ID metadata documents, or Anthropic-held client credentials), a custom connection where users supply their own URL or credentials at connection time, or no authentication. See [authentication](/docs/connectors/building/authentication) for which modes are supported out of the box and which need coordination with the review team. If your server starts without authentication and individual tools prompt for it on demand, you can flag that here. + + If you chose **URL pattern** in the Connection step, Anthropic-held client credentials can't be used. If you chose **Multiple URLs**, a custom connection can't be used. diff --git a/content/claude/cowork/changelog.md b/content/claude/cowork/changelog.md index 4fed09cef..b2f93bf39 100644 --- a/content/claude/cowork/changelog.md +++ b/content/claude/cowork/changelog.md @@ -6,6 +6,25 @@ > Release notes for Claude Desktop + + **General** + + * No user-facing changes. + + **Code** + + * No user-facing changes. + + **Cowork** + + * Changed the automatic move of scheduled tasks to the cloud, for accounts where it has started: the app now waits about a minute after the computer wakes, and while offline checks again each minute, instead of trying at once and then waiting hours after a failed try. + * Fixed two problems with local projects that are moving to claude.ai, for accounts where that move has started: a project could refuse new tasks for hours while part of its memory copy waited on the server (it now accepts new tasks and the copy finishes in the background), and memory files shown in a moved project's earlier tasks would not open. + + **3P** + + * No user-facing changes. + + **General** diff --git a/content/claude/government/config/settings.md b/content/claude/government/config/settings.md index 8216fcbac..3e4a7b6bb 100644 --- a/content/claude/government/config/settings.md +++ b/content/claude/government/config/settings.md @@ -34,7 +34,7 @@ Controls whether organization owners may create and edit self-managed seat tiers ### Compliance API -Controls whether the [Compliance API](/docs/government/org-admin/compliance-api) is available. When it is off, organization owners cannot create new keys and every request to the API returns an error, including requests made with keys that were valid before. Listing and revoking existing keys remains available even when this is off, so that a disabled organization can still revoke an exposed key. +Controls whether the [Compliance API](/docs/government/org-admin/compliance-api) is available. When it is off, organization owners and tenant administrators cannot create new keys and every request to the API returns an error, including requests made with keys that were valid before. Listing and revoking existing keys remains available even when this is off, so that an exposed key can still be revoked. **Set at the tenant level only.** This setting is read-only for organization owners. diff --git a/content/claude/government/org-admin/compliance-api.md b/content/claude/government/org-admin/compliance-api.md index d38a6e576..61a705516 100644 --- a/content/claude/government/org-admin/compliance-api.md +++ b/content/claude/government/org-admin/compliance-api.md @@ -6,7 +6,7 @@ > Stream your organization's audit events into a SIEM or log management system. -> **Who this is for:** Organization owners and the security or compliance teams who connect Claude for Government to their agency's log management or SIEM platform. +> **Who this is for:** Organization owners, tenant administrators, and the security or compliance teams who connect Claude for Government to their agency's log management or SIEM platform. The Compliance API is a read-only HTTP endpoint that lets your security tools pull a continuous feed of audit events covering administrative activity across your organization, such as sign-ins, role changes, key creations, and seat assignments. A scheduled job can poll the endpoint and forward each event to a SIEM such as Splunk or Microsoft Sentinel. @@ -14,7 +14,9 @@ The API is available to every Claude for Government organization by default, and ## Managing API keys -Open **Compliance API** in the organization admin portal to create and manage keys. The page lists every key that has been issued for your organization, showing its name, a hint with the last few characters of the key so you can tell them apart, when it was created, and whether it is active or revoked. +To create and manage keys for your organization, open **Compliance API** under **Settings** in the organization admin portal. To create and manage keys that return events for every organization in your tenant, open **Compliance API keys** under **Settings** in the [tenant admin portal](/docs/government/tenant-admin/overview). Only tenant administrators can open the tenant admin portal. + +Both pages list only their own keys, showing each key's name, a hint with the last few characters of the key so you can tell keys apart, when the key was created, and whether it is active or revoked. To create a key, enter a name and click **Create key**. The full value is shown once, immediately after creation. Copy it somewhere safe before clicking **Done**. @@ -24,7 +26,7 @@ To create a key, enter a name and click **Create key**. The full value is shown Keys never expire on their own, so rotate them on whatever schedule your agency's policy requires. You can keep more than one key active at a time, which lets you rotate without interrupting your SIEM feed: create a new key, update your collector to use it, confirm events are still arriving, and then revoke the old key. Revoking a key takes effect immediately, and the next request made with it returns a 401. -Each key is scoped to the organization it was created in. A request can only ever return events for that one organization, regardless of who holds the key. +Each key is scoped to the organization or tenant it was created in. A key created in the organization admin portal returns events for that one organization only, regardless of who holds the key. A key that a tenant administrator creates in the tenant admin portal returns the events of every organization in the tenant, together with tenant-level activity such as changes to single sign-on, to the list of tenant administrators, and to tenant-wide settings. ## Calling the API @@ -128,6 +130,7 @@ Event types use a dotted `resource.action` naming convention. The categories emi * **Credentials** such as `api_key.created` and `api_key.revoked`. * **Seats and tiers** such as `seat_allocation.set`, `seat_allocation.tier_assigned`, `seat_tier.created`, and `seat_tier.updated`. * **Configuration** such as `org_config.capabilities_set`. +* **Tenant** such as `tenant.sso_configured`, `tenant.admin_added`, and `tenant.config_set`. Only keys created in the tenant admin portal return these types. New types may be added over time, so a collector should forward unfamiliar types rather than reject them. @@ -139,9 +142,9 @@ A typical run requests `since=`, forwards every event returned, and i ## When the API is disabled -Your tenant administrator can turn off the **Compliance API** setting on the [tenant Config page](/docs/government/tenant-admin/configuration). When that setting is off, the Create key button is hidden in the portal, and every call to `/v1/compliance/activities` returns a 400 error, including calls made with keys that were valid before the setting changed. +Your tenant administrator can turn off the **Compliance API** setting on the [tenant Config page](/docs/government/tenant-admin/configuration). When that setting is off, the **Create key** button is hidden in the organization and tenant admin portals, and every call to `/gateway-api/v1/compliance/activities` returns a 400 error, including calls made with keys that were valid before the setting changed. -Listing and revoking existing keys in the portal remains available even when the setting is off, so an exposed key can still be revoked. +Listing and revoking existing keys in either portal remains available even when the setting is off, so an exposed key can still be revoked. ## Things to know @@ -149,7 +152,7 @@ Listing and revoking existing keys in the portal remains available even when the * There is no separate Splunk add-on. The polling pattern described under [Connecting to your SIEM](#connecting-to-your-siem) is the reference implementation for a Splunk HTTP Event Collector job. * The desktop application's OpenTelemetry export is a separate log stream configured with **Telemetry endpoint** on the [Config](/docs/government/config/settings#telemetry-endpoint) page. It carries per-session tool and telemetry events to a collector you specify, while this API carries administrative audit events. See [Telemetry and egress](/docs/third-party/claude-desktop/telemetry) for what the OpenTelemetry export includes. * The Compliance API returns governance and audit events only. It does not return conversation content, files, or anything your users type into Claude. -* Each organization can hold up to 50 active keys at once. Revoked keys do not count toward this limit. +* Each organization can hold up to 50 active keys at once, and keys created in the tenant admin portal have a separate limit of 50 active keys. Revoked keys do not count toward either limit. * Events are returned newest first within each page. * `first_id` and `last_id` are opaque cursors. Pass them back exactly as received rather than constructing them yourself. * If your network enforces a [tenant restriction](/docs/government/tenant-admin/tenant-restrictions), the same restriction applies to Compliance API requests. diff --git a/content/claude/government/tenant-admin/overview.md b/content/claude/government/tenant-admin/overview.md index 5ba2c03b4..de62801e0 100644 --- a/content/claude/government/tenant-admin/overview.md +++ b/content/claude/government/tenant-admin/overview.md @@ -62,5 +62,6 @@ The navigation groups the pages into three sections. * The **[Config](/docs/government/tenant-admin/configuration)** page lets you set product settings that apply to every organization, and optionally lock them so organizations can't override them. * The **[Admins](/docs/government/tenant-admin/admins)** page lets you manage who has access to this tenant admin portal. * The **[Readiness](/docs/government/tenant-admin/readiness)** page shows what is blocking your organizations from using Claude and where each item is resolved. +* The **[Compliance API keys](/docs/government/org-admin/compliance-api)** page lets you create and revoke API keys that stream audit events for every organization in your tenant, together with tenant-level activity, to a SIEM or log management system. The [setup wizard](/docs/government/tenant-admin/setup-wizard) is not a page in this list; you reach it through the **Resume setup** banner that appears above the navigation until your tenant is fully set up. diff --git a/content/claude/third-party/claude-desktop/configuration-changelog.md b/content/claude/third-party/claude-desktop/configuration-changelog.md index a5eecbdba..4817243ed 100644 --- a/content/claude/third-party/claude-desktop/configuration-changelog.md +++ b/content/claude/third-party/claude-desktop/configuration-changelog.md @@ -8,6 +8,10 @@ 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). + + No configuration changes in this release. + +
| MDM key | Type | Description | diff --git a/content/en/docs/claude-code/admin-setup.md b/content/en/docs/claude-code/admin-setup.md index cd2b2388f..287b38b11 100644 --- a/content/en/docs/claude-code/admin-setup.md +++ b/content/en/docs/claude-code/admin-setup.md @@ -77,9 +77,7 @@ If a device still refuses WSL sessions, open **Help > Troubleshooting > Show Log After WSL sessions are enabled, extend your managed settings to them: * Deploy `wslInheritsWindowsSettings: true` through the HKLM registry or the `C:\Program Files\ClaudeCode` file so WSL sessions inherit the same policy as host sessions. -* Verify by running `/status` inside a WSL session and reading the `Setting sources` line. Claude Code names only the [managed source it selected](/docs/en/server-managed-settings#settings-precedence), so what the line tells you depends on the session: - * **In a session that [fetches server-managed settings](/docs/en/server-managed-settings#platform-availability) and receives any keys**: `Enterprise managed settings (remote)`, because Claude Code selects them ahead of the Windows sources, so the line doesn't show whether the flag arrived. - * **In any other session**: `Enterprise managed settings (HKLM)` confirms a registry deployment. `(file)` names the Windows file or the distribution's own `/etc/claude-code/managed-settings.json`, so it confirms a Windows file deployment only when the distribution has no managed file of its own. +* Verify by running `/status` inside a WSL session and reading the `Setting sources` line. To interpret what it lists, see [Read the source in /status](/docs/en/managed-settings#read-the-source-in-/status). Processes inside the WSL 2 utility VM aren't visible to Windows-side endpoint detection sensors. To observe in-distro process and file activity, check your endpoint detection vendor's WSL guidance for a Linux sensor you can run inside the distribution and the exclusions it needs. Claude Code's [OpenTelemetry tool-execution telemetry](/docs/en/monitoring-usage) is emitted identically for WSL and native sessions. diff --git a/content/en/docs/claude-code/advisor.md b/content/en/docs/claude-code/advisor.md index d284901a9..9101cf4b6 100644 --- a/content/en/docs/claude-code/advisor.md +++ b/content/en/docs/claude-code/advisor.md @@ -85,14 +85,14 @@ If you start a [background session](/docs/en/agent-view) with `--advisor` and on The advisor must be at least as capable as the main model. The accepted advisors for each main model are: -| Main model | Accepted advisors | Notes | -| -------------------- | ------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Haiku 4.5 | Fable, Opus, Sonnet | Haiku can call the advisor but cannot act as one | -| Sonnet 4.6 | Fable, Opus, Sonnet | | -| Sonnet 5 | Fable, Opus, Sonnet 5 | A Sonnet 4.6 advisor is rejected | -| Opus 4.6 | Fable, Opus, Sonnet 5 | Sonnet 5 and Opus 4.6 are ranked as equally capable, so an Opus 4.6 main accepts a Sonnet 5 advisor | -| Opus 4.7 or later | Fable, and Opus 4.7 or later | Opus 4.7 and later Opus models are ranked as equally capable, so any of them accepts another as an advisor. An Opus 4.7 main with an Opus 4.6 or Sonnet 5 advisor is rejected | -| Fable 5.1 or Fable 5 | Fable 5.1, or the same Fable version | An Opus or Sonnet advisor is rejected, and so is a Fable 5 advisor for a Fable 5.1 main model | +| Main model | Accepted advisors | Notes | +| -------------------- | ---------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Haiku 4.5 | Fable, Opus, Sonnet | Haiku can call the advisor but cannot act as one | +| Sonnet 4.6 | Fable, Opus, Sonnet | | +| Sonnet 5 | Fable, Opus, Sonnet 5 | A Sonnet 4.6 advisor is rejected | +| Opus 4.6 | Fable, Opus, Sonnet 5 | Sonnet 5 and Opus 4.6 are ranked as equally capable, so an Opus 4.6 main accepts a Sonnet 5 advisor | +| Opus 4.7 or later | Fable, and Opus 4.7 or later | Opus 4.7 and later Opus models are ranked as equally capable, so any of them accepts another as an advisor. An Opus 4.7 main with an Opus 4.6 or Sonnet 5 advisor is rejected | +| Fable 5.1 or Fable 5 | Fable 5.1 or Fable 5 | An Opus or Sonnet advisor is rejected | Fable 5.1 requires Claude Code v2.1.257 or later. Both Fable models require [Fable access](/docs/en/model-config#work-with-fable). diff --git a/content/en/docs/claude-code/agent-sdk/typescript.md b/content/en/docs/claude-code/agent-sdk/typescript.md index 75238ed2b..9c5fb1900 100644 --- a/content/en/docs/claude-code/agent-sdk/typescript.md +++ b/content/en/docs/claude-code/agent-sdk/typescript.md @@ -659,7 +659,7 @@ type SDKControlInitializeResponse = { Claude Code omits the field when the request carried no hooks. When the request carried hooks, the value depends on whether the request is the session's first initialize and, for a repeated one, on how it reached the session: -* `true`: Claude Code registered the hooks. A session's first initialize returns this value. So does a repeated initialize sent over the CLI's stdin. In that case the hooks in the new request replace the hooks registered earlier. +* `true`: Claude Code registered the hooks. A session's first initialize returns this value. A repeated initialize sent over the CLI's stdin also returns `true`. In that case the hooks in the new request replace the hooks registered earlier. * `false`: Claude Code ignored the hooks. A repeated initialize sent to a remote session returns this value, so a second client that joins a session can't replace the hooks the first client registered. Before Agent SDK v0.3.238, the response never carried the field, and Claude Code ignored `hooks` on every repeated initialize. @@ -5034,7 +5034,7 @@ When `errorCode` is `"credits_required"`, the rejection is from a claude.ai subs ### `SDKLocalCommandOutputMessage` -Output from a local command such as `/voice` or `/usage`. Displayed as assistant-style text in the transcript. +Claude Code doesn't emit this message type. When you send a command such as `/context` or `/usage` as a prompt, its output arrives as an [`SDKAssistantMessage`](#sdkassistantmessage). ```typescript theme={null} type SDKLocalCommandOutputMessage = { diff --git a/content/en/docs/claude-code/agent-view.md b/content/en/docs/claude-code/agent-view.md index 0b82f8ad2..f2dc1e5f0 100644 --- a/content/en/docs/claude-code/agent-view.md +++ b/content/en/docs/claude-code/agent-view.md @@ -650,7 +650,7 @@ Claude Code refuses `claude --bg --permission-mode bypassPermissions` until you' The permission mode, model, and effort you chose for a background session, along with the [configuration flags it carries](#what-carries-over-when-you-background), all persist when the supervisor later [stops and restarts](#the-supervisor-process) its process. A session you launched with `claude --bg --dangerously-skip-permissions` or `claude --bg --permission-mode bypassPermissions` stays in `bypassPermissions` after that restart. A model or effort you changed mid-session with `/model` or `/effort` is kept too. -If the session took its effort from your settings rather than from `--effort` or `/effort`, Claude Code reads your settings again each time it starts a process for the session. So when you edit the saved effort in `settings.json`, the change reaches sessions you background with `←` or `/bg`, and their later restarts. The saved effort is the [`effortLevel`](/docs/en/settings-reference#effortlevel) key or a [`modelSettings`](/docs/en/settings-reference#modelsettings) entry. +If the session took its effort from your settings rather than from `--effort` or `/effort`, Claude Code reads your settings again each time it starts a process for the session. After you edit the saved effort in `settings.json`, the change reaches sessions you background with `←` or `/bg`, and their later restarts. The saved effort is the [`effortLevel`](/docs/en/settings-reference#effortlevel) key or a [`modelSettings`](/docs/en/settings-reference#modelsettings) entry. Claude Code also keeps a name you set with [`/rename`](/docs/en/commands) or `Ctrl+R` across that restart, so you can still run [`claude --resume `](/docs/en/sessions#name-your-sessions) to reach the session. diff --git a/content/en/docs/claude-code/artifacts.md b/content/en/docs/claude-code/artifacts.md index eaa255846..60fa03aeb 100644 --- a/content/en/docs/claude-code/artifacts.md +++ b/content/en/docs/claude-code/artifacts.md @@ -321,6 +321,8 @@ Once you turn artifacts off in a [`--settings`](/docs/en/cli-reference#cli-flags You can also set `"enableArtifact": false` in a project's `.claude/settings.json` or `.claude/settings.local.json` to turn artifacts off for sessions in that project. An `"enableArtifact": true` in either file doesn't turn them back on. Honoring the key in project and local settings requires Claude Code v2.1.242 or later. +If you add a `WebFetch` deny or ask rule with no `domain:` part, it doesn't turn artifacts off or block artifact reads. A [`WebFetch(domain:claude.ai)` rule in `deny` or `ask` does apply to artifact reads](/docs/en/permissions#allow-or-deny-every-fetch). + ## Manage artifacts for your organization Owners on Team and Enterprise plans control artifacts from [claude.ai admin settings](https://claude.ai/admin-settings/claude-code). Artifact content is stored on Anthropic-operated infrastructure and is visible only to authenticated members of the publishing organization, unless the artifact is [shared publicly](#control-public-sharing). diff --git a/content/en/docs/claude-code/authentication.md b/content/en/docs/claude-code/authentication.md index 4dc62b648..03ceaf87c 100644 --- a/content/en/docs/claude-code/authentication.md +++ b/content/en/docs/claude-code/authentication.md @@ -156,12 +156,7 @@ Developers can log in from several paths: the terminal `/login` flow, the [VS Co * **`claude setup-token` and `/install-github-app`**: enforce only `forceLoginMethod`, so they can mint a token in a different organization * **[Gateway](/docs/en/claude-apps-gateway) sign-in**: selected by `forceLoginMethod: "gateway"` rather than restricted by it, and doesn't authenticate against an Anthropic organization, so `forceLoginOrgUUID` doesn't apply; use your gateway identity provider to restrict access -Deploy the keys through your device management tooling. [Server-managed settings](/docs/en/server-managed-settings) reach only accounts that are already authenticated into your organization, so they can't redirect a developer's first login. If your organization distributes server-managed settings as well, set the keys in both places: managed-settings sources [don't merge](/docs/en/server-managed-settings#settings-precedence), and cached server-managed settings replace the device-managed file, apart from two kinds of keys that still fill in from a losing source: - -* **The `env` block**: [merges per key](/docs/en/server-managed-settings#per-key-exceptions-across-managed-sources) in Claude Code v2.1.223 or later -* **The [cross-source lock keys](/docs/en/server-managed-settings#per-key-exceptions-across-managed-sources)**: honored from any admin source - -`forceLoginMethod` and `forceLoginOrgUUID` are neither, so keep them in both places. +Deploy the keys through your device management tooling. [Server-managed settings](/docs/en/server-managed-settings) reach only accounts that are already authenticated into your organization, so they can't redirect a developer's first login. If your organization distributes server-managed settings as well, set the keys in both places: managed-settings sources [don't merge](/docs/en/server-managed-settings#settings-precedence), and cached server-managed settings replace the device-managed file apart from a few [per-key exceptions](/docs/en/server-managed-settings#per-key-exceptions-across-managed-sources). `forceLoginOrgUUID` and the `"claudeai"` and `"console"` values of `forceLoginMethod` aren't among those exceptions, so keep them in both places. The keys also decide whether a session that doesn't use a login credential can start. See [`forceLoginOrgUUID`](/docs/en/settings-reference#forceloginorguuid) in the settings reference for the full behavior. diff --git a/content/en/docs/claude-code/best-practices.md b/content/en/docs/claude-code/best-practices.md index 6dffdefb7..dbd11d587 100644 --- a/content/en/docs/claude-code/best-practices.md +++ b/content/en/docs/claude-code/best-practices.md @@ -466,7 +466,7 @@ Pick the parallel approach that fits how much coordination you want to do yourse * [Worktrees](/docs/en/worktrees): run separate CLI sessions in isolated git checkouts so edits don't collide * [Cross-session messaging](/docs/en/cross-session-messaging): let the sessions you run yourself pass findings to each other -* [Desktop app](/docs/en/desktop#work-in-parallel-with-sessions): manage multiple local sessions visually, each in its own worktree +* [Desktop app](/docs/en/desktop#work-in-parallel-with-sessions): manage multiple local sessions visually, optionally each in its own worktree * [Claude Code on the web](/docs/en/claude-code-on-the-web): run sessions in the cloud, on Anthropic-managed infrastructure by default * [Agent view](/docs/en/agent-view): research preview. Run `claude agents` to dispatch sessions that keep running in the background and watch them from one screen * [Agent teams](/docs/en/agent-teams): experimental and disabled by default. Automated coordination of multiple sessions with shared tasks, messaging, and a team lead diff --git a/content/en/docs/claude-code/changelog.md b/content/en/docs/claude-code/changelog.md index 056075ce0..f6b637684 100644 --- a/content/en/docs/claude-code/changelog.md +++ b/content/en/docs/claude-code/changelog.md @@ -10,6 +10,107 @@ This page is generated from the [CHANGELOG.md on GitHub](https://github.com/anth Run `claude --version` to check your installed version. + + * Added `claude plugin eval`: run a plugin's eval suite against Claude Code and get scored, reproducible results (JSON + HTML report); see `claude plugin eval --help` + * Added `/output-style [name]` to list and switch output styles, including over Remote Control and in cloud and other headless sessions + * Added a diff of the files a Bash command changed to the Bash tool result when the Bash tool handles file edits (setting `bashEditDiffEnabled`) + * Added `OTEL_METRICS_INCLUDE_REPOSITORY` to tag OpenTelemetry metrics and events with `vcs.*` repository attributes; commit events get `vcs.ref.head.*` with `OTEL_LOG_TOOL_DETAILS` + * Added `CLAUDE_CODE_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` to extend the LLM gateway `/v1/models` discovery timeout (default 3s) + * Added a spinner tip suggesting `/focus` for a view with just your prompt, a one-line work summary, and the response + * Added `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` (1–256) to raise the Workflow tool's per-run concurrent agent limit for inference-bound fan-outs + * Fixed the prompt cache being partially invalidated on the turn after a response was cut off at the output-token limit and automatically resumed + * Fixed a case where resuming a session after interrupting Claude mid-thought could change how earlier context was re-sent, hurting prompt-cache reuse + * Fixed F1/F2/F4 not working in kitty-protocol terminals and Delete in st, Alt+arrows acting as Escape in rxvt-unicode, and Shift+punctuation typing the unshifted key in WezTerm (regression in 2.1.247) + * Fixed remote and headless sessions reporting "waiting for your input" while background agents were still running (set `CLAUDE_CODE_BG_TASKS_REPORT_RUNNING=0` to restore the old behavior) + * Fixed the terminal's replies to capability queries (`^[[?1;2c`) appearing as stray text at startup in some terminals + * Fixed rows at the top or bottom of the transcript going blank in fullscreen after resizing the terminal + * Fixed a deny or ask permission rule starting with `!` applying beyond the settings source that wrote it; such a rule now applies only within its own source, and a bare `!` negation is ignored + * Fixed the git status Claude is told after a compaction: it is now the current status, not the one from the start of the session + * Fixed synced plugin MCP servers not connecting when a remote session resumes + * Fixed resumed headless sessions losing a turn's replies when the model was switched or a request was retried mid-turn + * Fixed terminal escape codes, line breaks and oversized text from a background task's on-disk record reaching the task list and task notifications when work is resumed + * Fixed CMYK JPEG images failing to attach with "cannot decode"; they are now converted and resized like other JPEGs + * Fixed the managed settings approval dialog not naming the collector for a gRPC telemetry endpoint set without a scheme + * Fixed plugin `headersHelper` consent prompts showing a URL path that could be misread as a different host + * Fixed plugin errors showing `[redacted URL]` in place of a relative Windows path with a folder name that starts with `@` + * Fixed missing cursor in the permission-rule, auto-mode-rule, add-directory, session-rename and feedback-review text fields when the terminal's native cursor is enabled + * Fixed repeated clicks on a `/fork` receipt, each under a second apart, never backgrounding the session right away while it waited for the current tool to finish + * Fixed plugin LSP servers that reject `shutdown` params (e.g. rust-analyzer) being left running at session end; `exit` is now sent even if `shutdown` fails + * Fixed the attribution reminder overriding a CLAUDE.md or memory rule against commit and pull request attribution; lines set by managed settings still apply + * Fixed prompt suggestions being dropped for text in Japanese, Chinese, Thai and other languages written without spaces between words + * Fixed synchronized output being assumed from the terminal's name in GNOME Terminal and Konsole versions that do not support it + * Fixed `permission_denials` in `--output-format stream-json` results omitting Read, Edit and Write calls blocked by a path-scoped deny rule + * Fixed sessions run through the SDK or the desktop app showing an unknown status in other sessions' agent list + * Fixed `/insights` failing on Bedrock, Vertex, Foundry, and gateway deployments whose account can't reach the default Opus model by using the session model there instead + * Fixed organization policy limits not loading for the session when another Claude Code process refreshed the login at the same moment + * Fixed Claude Desktop sessions using Bedrock, Vertex, or a gateway not getting the contextual "what Claude needs" turn-end notification text + * Fixed MCP servers reconnecting when an updated config only changed the order of the server URL's query parameters + * Fixed the prompt box's top border splitting into extra lines when viewing a background agent whose name or description has line breaks or is wider than the terminal + * Fixed sessions getting permanently stuck on "Prompt is too long" when auto-compaction had no complete earlier exchange to summarize (mostly Agent SDK sessions with very large prompts) + * Fixed `/goal` runs silently stalling after API errors, network drops, or token limits: the goal now retries with backoff, or pauses and says why, including until a usage limit resets + * Fixed prompt cache misses in cloud sessions by waiting briefly for server configuration before the first request + * Fixed `/btw` answers that contained made-up tool calls and output: the side question is now told not to write them, and any that appear are flagged as not executed + * Fixed `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` re-running a turn that had failed with an API error over 6 hours earlier, or longer ago than `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` when set + * Fixed organization plugins enabled through managed settings not loading in headless sessions and on Claude Desktop (once Desktop bundles this CLI version); they load from the next session + * Fixed plugin archives extracted for a session being readable by other local users, extracted files keeping world-writable bits from the archive, and stale files surviving re-extraction + * Fixed `Edit()` deny rules and the write-path check not applying to the file a Bash `tee` command writes; a `Bash(tee:*)` allow rule no longer covers destinations outside the working directories + * Fixed stray characters like `22c`, or a terminal's color or version reply, being typed into the prompt at startup over slow connections (ssh, browser terminals) + * Fixed the terminal's block cursor showing under the interface in rxvt-unicode after leaving or re-entering fullscreen + * Fixed the cursor block staying visible after returning from an external editor in fullscreen mode on rxvt-unicode + * Fixed the interface being drawn twice after returning from an external editor (Ctrl+G) outside fullscreen mode + * Fixed the interface being drawn twice in Konsole after returning from an external editor + * Windows: Fixed PowerShell tool commands sent to the background stopping when Claude Code exits + * Improved the `/diff` panel to open fully rendered in one step instead of showing a loading state first + * Improved prompt suggestion filtering for Japanese, Chinese and Korean text: mixed-script and single-word suggestions are kept, and meta or evaluative text is dropped as it is for English + * Improved the Skill tool's "Unknown skill" error to name the plugin skill's full name when a bare name matches exactly one plugin skill + * Improved keyboard support over SSH and in unrecognized terminals: terminals that answer the kitty keyboard query (such as foot and Alacritty 0.16+) now get Shift+Enter and Ctrl+Shift shortcuts + * Improved responsiveness in long sessions: transcript updates no longer re-process the whole conversation to build the collapsed tool-use summaries + * Improved first-party sessions with telemetry disabled: an `alwaysLoad` MCP server that finishes connecting mid-conversation is usable on the next turn without a tool-search round trip + * Changed `/ultrareview --post` to post the PR comment directly when the findings arrive and print the comment link, instead of starting a second cloud session to post it + * Changed artifact database reads that save into the session scratchpad so they no longer stop for working-folder approval + * Changed skills synced from claude.ai in cloud sessions to be named `anthropic-skills:`, matching Claude Desktop; the bare name still works when nothing else uses it + * \[VSCode] Added an agent map: an "N agents" footer pill opens a map of the session's sub-agents with per-agent cards, Stop agent, and read-only transcripts + * \[VSCode] Added a Hooks dialog to the command menu for viewing hooks and adding, editing, or removing them in user, project, and local settings; managed, plugin, and session hooks stay read-only + * \[VSCode] Added live progress rows for running subagents under the tool-call groups in Focus view + * \[VSCode] Added a Permission rules dialog that lists permission rules and adds or removes them in user, project, and local settings; startup-option, session-only, and managed rules stay read-only + * \[VSCode] Added a Cancel button to the Switch account screen that returns to your session as the current account + * \[VSCode] Fixed Focus view showing a turn started by a delivered plain-text prompt, such as a scheduled task's, as part of the previous turn + * \[VSCode] Fixed the footer's prompt cache clock hiding its minutes when the panel is narrow + * \[VSCode] Fixed the session list keeping sessions from the default folder when `CLAUDE_CONFIG_DIR` is set in a settings file or the `environmentVariables` setting + * \[VSCode] Fixed a plan preview that finished loading late sometimes hiding its comment box or showing an older plan + * \[VSCode] Fixed a plan preview accepting comments that went nowhere after its Claude tab closed + * \[VSCode] Fixed the prompt cache clock and reopen notice for a session compacted after its last reply and then closed, which now reads as cold when reopened + * \[VSCode] Fixed a session renamed in the extension while Remote Control is on keeping its old name on claude.ai/code + * \[VSCode] Fixed the "Enable Remote Control for all sessions" toggle keeping its last position after the setting was reset to default from a terminal + * \[VSCode] Fixed restored Claude tabs not counting as open in the session list after a window reload until clicked, and their row opening a second tab + * \[VSCode] Fixed Switch account making a tab forget its dismissed usage-limit warnings when you sign back in as the same account + * \[VSCode] Fixed a session rename being replaced by the generated name after a window reload when the session was renamed during a long turn + * \[VSCode] Fixed the sidebar usage meter keeping a stale per-model weekly limit row after the account loses that limit + * \[VSCode] Fixed a rare case where an @-mention sent with the keyboard shortcut while a new chat view was still starting could be inserted into the input long after the keystroke + * \[VSCode] Fixed the session list jumping down when the Account & usage header appeared a moment after opening the Claude side bar + * \[VSCode] Improved documents and messages written for someone other than the user: Claude now writes them for that audience and names it at the top of its reply + * \[VSCode] Improved screen reader and keyboard accessibility in the slash-command menu, @-mention menu, output-style picker, Send/Stop button, permission and question cards, and onboarding checklist + * \[VSCode] Changed the current-file chip in the message box: an X now removes it, replacing the Hide toggle + * \[VSCode] Removed the Claude Code items from a session tab's right-click menu and the editor title bar's "..." menu; they could not act on the tab the menu was opened on + * \[Claude Code on the web] Added taking back a queued message in a cloud session before Claude reads it: remove it from the queue, or press Esc or Up, and the text returns to the message box + * \[Claude Code on the web] Fixed `/model default` in a cloud session leaving every later message failing in organizations that restrict which models Claude Code can use + * \[Claude Code on the web] Fixed one-off scheduled routines occasionally running a second time after a transient server error + * \[Claude Code on the web] Fixed routine runs that use subagents sometimes being treated as finished too early, which could skip the retry after a real failure or start a duplicate run + * \[Claude Code on the web] Fixed file links in cloud session transcripts opening a GitHub 404 when Claude was working from a subfolder of the repository + * \[Claude Code on the web] Changed the Cloud environments admin page to list every environment instead of capping each table at five rows behind a Show more control that could be unreachable + * \[Claude Code on the web] Changed claude.ai/code for Free-plan users to open the plans page with a path to upgrade, instead of a "Disabled by org admin" page with no way forward + * \[Claude Tag] Added a confirmation dialog before Connect all or Disconnect on a GitHub installation in admin settings, to guard against accidental organization-wide changes + * \[Claude Tag] Fixed threads occasionally going silent after a failed turn because the failure notice was dropped when Slack briefly rate-limited it; the notice is now retried + * \[Claude Tag] Fixed Claude accepting a switch to a model your organization hasn't enabled and then quietly answering with a fallback model; it now declines and says an admin can enable it + * \[Claude Tag] Fixed a table posting as raw pipe text when Claude attached files to the same message; the table now posts as a normal reply and the files follow with a plain caption + * \[Claude Tag] Fixed `@Claude !restart` at the top level of a channel where Claude isn't active starting an unrelated conversation; it now privately says there is nothing to restart + * \[Claude Tag] Fixed plugin rows in Slack access settings showing an unlabeled raw ID with no way to turn the plugin off; they now show its name and link to the bundle that manages it + * \[Claude Tag] Fixed the shared-session banner and Share dialog on sessions started from Slack claiming the whole organization could open the link; they now name the Slack channel's audience + * \[Claude Tag] Improved load time of the admin settings page and its Slack channel picker, most noticeably for organizations with many channels or several connected workspaces + * \[Claude Tag] Improved scheduled routines in Slack channels: a routine run can now reply in an existing thread instead of always posting a new top-level channel message + * \[Claude Tag] Improved the timestamp on Claude's live progress checklists to show each reader's local time and how long ago it was updated, instead of a fixed UTC time + + * 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 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 ffae15b81..5f2523c74 100644 --- a/content/en/docs/claude-code/claude-apps-gateway-config.md +++ b/content/en/docs/claude-code/claude-apps-gateway-config.md @@ -565,7 +565,7 @@ Before v2.1.232, the gateway started with these values. Each value had this effe Each `cli` value is a complete Claude Code `managed-settings.json` document, the same schema you would deploy via MDM or `/etc/claude-code/managed-settings.json`, expressed here as YAML. The CLI applies the delivered document at the managed tier, above user and project settings, in place of server-managed settings. It therefore ignores the settings [restricted to OS-level policy sources](/docs/en/server-managed-settings#current-limitations), such as `policyHelper` and `wslInheritsWindowsSettings`. -The gateway validates each document against the CLI's settings schema at boot, so an unrecognized top-level key fails boot with an error naming every offending key. Deliberately open parts of the schema still accept arbitrary values, because newer clients may recognize entries the gateway's schema doesn't. These open keys are `env`, `pluginConfigs`, and keys nested under `permissions`. +The gateway validates each document against the CLI's settings schema at boot, so an unrecognized top-level key fails boot with an error naming every offending key. Deliberately open parts of the schema still accept arbitrary values, because newer clients may recognize entries the gateway's schema doesn't. These open keys include `env`, `pluginConfigs`, and keys nested under `permissions`. Because validation uses the schema bundled with the gateway's installed version, putting a top-level settings key introduced by a newer Claude Code release into managed config requires upgrading the gateway first. Smoke-test a new policy on one client before rolling it out. diff --git a/content/en/docs/claude-code/cli-reference.md b/content/en/docs/claude-code/cli-reference.md index 702f5115c..3e3c1536f 100644 --- a/content/en/docs/claude-code/cli-reference.md +++ b/content/en/docs/claude-code/cli-reference.md @@ -132,7 +132,7 @@ Customize Claude Code's behavior with these command-line flags. `claude --help` | `--teleport` | Resume a [web session](/docs/en/claude-code-on-the-web) in your local terminal | `claude --teleport` | | `--teammate-mode` | Set how [agent team](/docs/en/agent-teams) teammates display: `in-process` (default), `auto`, `tmux`, or `iterm2` (added in v2.1.186). Overrides the [`teammateMode`](/docs/en/settings-reference#teammatemode) setting for this session. See [Choose a display mode](/docs/en/agent-teams#choose-a-display-mode) | `claude --teammate-mode auto` | | `--tmux` | Create a tmux session for the worktree. Requires `--worktree`. Uses iTerm2 native panes when available; pass `--tmux=classic` for traditional tmux | `claude -w feature-auth --tmux` | -| `--tools` | Restrict which built-in tools Claude can use. Use `""` to disable all, `"default"` for all, or tool names like `"Bash,Edit,Read"`. If you name one of the [task-tracking tools](/docs/en/tools-reference#task-tool-availability) here, Claude Code also opts the session in. The flag doesn't affect MCP tools; to deny those too, use `--disallowedTools "mcp__*"`. A list that omits [`EndConversation`](/docs/en/tools-reference#endconversation-tool-behavior) doesn't remove it; `""` removes it only when no MCP tools remain | `claude --tools "Bash,Edit,Read"` | +| `--tools` | Restrict which built-in tools Claude can use. Use `""` to disable all, `"default"` for the default set, or tool names like `"Bash,Edit,Read"`. On macOS, Linux, and WSL, the default set leaves out `Glob` and `Grep`, as described under [Glob tool behavior](/docs/en/tools-reference#glob-tool-behavior). If you name one of the [task-tracking tools](/docs/en/tools-reference#task-tool-availability) here, Claude Code also opts the session in. The flag doesn't affect MCP tools; to deny those too, use `--disallowedTools "mcp__*"`. A list that omits [`EndConversation`](/docs/en/tools-reference#endconversation-tool-behavior) doesn't remove it; `""` removes it only when no MCP tools remain | `claude --tools "Bash,Edit,Read"` | | `--verbose` | Enable verbose logging, shows full turn-by-turn output. Overrides the [`viewMode`](/docs/en/settings-reference#viewmode) setting for this session | `claude --verbose` | | `--version`, `-v` | Output the version number | `claude -v` | | `--worktree`, `-w` | Start Claude in an isolated [git worktree](/docs/en/worktrees) at `/.claude/worktrees/`. If you don't give a name, Claude Code generates one. Pass `#`, a GitHub pull request URL, or a GitLab merge request URL to [fetch that PR or MR from `origin` and branch the worktree from it](/docs/en/worktrees#branch-from-a-pull-request). Branching from a GitLab merge request requires Claude Code v2.1.233 or later | `claude -w feature-auth` | diff --git a/content/en/docs/claude-code/corporate-launcher.md b/content/en/docs/claude-code/corporate-launcher.md index 9caf3824e..90ba5d9a1 100644 --- a/content/en/docs/claude-code/corporate-launcher.md +++ b/content/en/docs/claude-code/corporate-launcher.md @@ -43,7 +43,7 @@ The following processes don't start through the launcher: ### Helper process names in process monitors -With a launcher configured, `ps` and Activity Monitor show the versioned binary name for the background helper processes instead of Claude Code's `claude bg-pty-host` and `claude bg-spare` labels, because the launcher's `exec` rebuilds the argument list. The renaming is a side effect, not concealment: the processes are otherwise unchanged, and Claude Code identifies its own processes by binary path, never by display name. +With a launcher configured, `ps` and Activity Monitor no longer show Claude Code's `claude bg-pty-host` and `claude bg-spare` labels for the background helper processes, because the launcher's `exec` rebuilds the argument list. Losing the labels is a side effect, not concealment: the processes are otherwise unchanged, and Claude Code identifies its own processes by binary path, never by display name. ## Set up the launcher diff --git a/content/en/docs/claude-code/costs.md b/content/en/docs/claude-code/costs.md index ad2634d12..15244de70 100644 --- a/content/en/docs/claude-code/costs.md +++ b/content/en/docs/claude-code/costs.md @@ -192,11 +192,12 @@ For per-user cost attribution, you have three options: ### When a developer asks about a limit -Developers usually bring limit questions to their admin, so it helps to know which ceiling they hit. The four situations mean different things: +Developers usually bring limit questions to their admin, so it helps to know which ceiling they hit. These situations mean different things: * **"You've hit your session limit" or "You've hit your weekly limit"**: a seat-based usage window on a subscription plan, shared across all models, so the developer can't restore access by switching models with `/model`. The message shows when the window resets. After the model-specific "You've hit your Opus limit" or "You've hit your Sonnet limit" message, switching to a model outside that family with `/model` does keep the developer working. See [usage limit errors](/docs/en/errors#youve-hit-your-session-limit). What the developer can do in the meantime: * Run `/usage-credits` to request usage beyond the allowance, if you have [usage credits](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) turned on. * On Claude Code v2.1.234 or later, [wait and continue the interrupted task automatically after the reset](/docs/en/interactive-mode#wait-for-a-usage-limit-to-reset); that section lists when Claude Code starts the wait on its own and when the developer picks it from `/rate-limit-options`. To control for your fleet whether Claude Code starts that wait on its own, set [`autoContinueAtUsageLimit`](/docs/en/settings-reference#autocontinueatusagelimit) in [managed settings](/docs/en/settings#settings-precedence). +* **"You've hit your individual spend limit", "org's monthly spend limit", or "team's shared budget"**: the developer's request would be billed to usage credits, and those credits have reached a spend limit you set. To let the developer continue, go to [**Admin settings > Usage**](https://claude.ai/admin-settings/usage) and increase the limit the message names. When the message also names a plan reset time, the developer can instead wait until then. See [the error reference](/docs/en/errors#youve-hit-your-monthly-spend-limit) for each variant. * **A spend limit message from a [Claude apps gateway](/docs/en/claude-apps-gateway)**: the developer passed a spend cap you set on your self-hosted gateway, and the gateway blocks their requests until the period resets or you raise the cap. See [gateway spend limits](/docs/en/claude-apps-gateway-spend-limits) for caps, reset schedules, and the message the developer sees. * **A context or auto-compact warning**: not a usage limit. The conversation has grown close to the session's [auto-compact window](/docs/en/model-config#set-the-auto-compact-window), the threshold where Claude Code summarizes older history to free space. Point the developer at [reduce token usage](#reduce-token-usage). * **Unexpectedly high spend on an API or cloud-provider plan**: usually traces back to long sessions that were never cleared or to Opus left as the default model. The highest-impact habits to share are clearing between unrelated tasks and matching the model to the job, both covered in [reduce token usage](#reduce-token-usage). diff --git a/content/en/docs/claude-code/desktop-changelog.md b/content/en/docs/claude-code/desktop-changelog.md index 5d0ccb2a3..837df8b7b 100644 --- a/content/en/docs/claude-code/desktop-changelog.md +++ b/content/en/docs/claude-code/desktop-changelog.md @@ -24,9 +24,9 @@ The Claude Desktop app has three tabs: **Chat** for conversations, **Cowork** fo For Windows ARM64, download the [ARM64 installer](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). On Linux, install with apt; see [Claude Desktop on Linux](/docs/en/desktop-linux). -After installing, launch Claude, sign in, and click the **Code** tab. The first time you open it on Windows, you need [Git for Windows](https://git-scm.com/downloads/win) installed; restart the app after installing it. For a walkthrough of your first session, see the [Get started guide](/docs/en/desktop-quickstart). +After installing, launch Claude, sign in, and click the **Code** tab. For a walkthrough of your first session, see the [Get started guide](/docs/en/desktop-quickstart). -In the Code tab, each conversation is a **session**: it has its own chat history, project folder, and code changes, independent of any other session. The sidebar lists your sessions and lets you run several in parallel. Within a session you can: +In the Code tab, each conversation is a **session**: it has its own chat history and project folder, independent of any other session. The sidebar lists your sessions and lets you run several in parallel. Within a session you can: * [Review and comment on diffs](#review-changes-with-diff-view), then [watch the resulting PR through CI](#monitor-pull-request-status) * [Preview your running app](#preview-your-app) in the Browser pane while Claude verifies its own changes, and [open external sites](#browse-external-sites) alongside it @@ -320,7 +320,7 @@ Each session is an independent conversation with its own context and changes. Yo ### Work in parallel with sessions -Click **+ New session** in the sidebar, or press **Cmd+N** on macOS or **Ctrl+N** on Windows, to work on multiple tasks in parallel. Press **Ctrl+Tab** and **Ctrl+Shift+Tab** to cycle through sessions in the sidebar. For Git repositories, each session gets its own isolated copy of your project using [Git worktrees](/docs/en/worktrees), so changes in one session don't affect other sessions until you commit them. +Click **+ New session** in the sidebar, or press **Cmd+N** on macOS or **Ctrl+N** on Windows, to work on multiple tasks in parallel. Press **Ctrl+Tab** and **Ctrl+Shift+Tab** to cycle through sessions in the sidebar. For Git repositories, select the **worktree** option next to the branch name to give the session its own isolated copy of your project using [Git worktrees](/docs/en/worktrees), so changes in one session don't affect other sessions until you commit them. To view two sessions at once, hold **Cmd** on macOS or **Ctrl** on Windows and click a session in the sidebar. The session opens in a second pane alongside the one you already have open. While the split is active, clicking another sidebar session replaces whichever pane has focus. Press **Cmd+\\** on macOS or **Ctrl+\\** on Windows to close the focused pane and return to a single session. @@ -329,7 +329,7 @@ Worktrees are stored in `/.claude/worktrees/` by default. You can To include gitignored files like `.env` in new worktrees, create a [`.worktreeinclude` file](/docs/en/worktrees#copy-gitignored-files-into-worktrees) in your project root. - Session isolation requires [Git](https://git-scm.com/downloads). Most Macs include Git by default. Run `git --version` in Terminal to check; if it prints a version number, Git is installed. On Windows, Git is required for the Code tab to work: [download Git for Windows](https://git-scm.com/downloads/win), install it, and restart the app. If you run into Git errors, ask Claude in the [Cowork tab](https://claude.com/product/cowork) to help troubleshoot your setup. + Session isolation requires [Git](https://git-scm.com/downloads). Most Macs include Git by default. Run `git --version` in Terminal to check; if it prints a version number, Git is installed. If you run into Git errors, ask Claude in the [Cowork tab](https://claude.com/product/cowork) to help troubleshoot your setup. Use the controls at the top of the sidebar to filter sessions by status, project, or environment, and to group sessions by project. To rename a session, click the session title in the toolbar at the top of the active session. @@ -890,7 +890,7 @@ This table compares core capabilities between the CLI and Desktop. For a full li | [Plugins](/docs/en/plugins) | `/plugin` command | Plugin manager UI | | @mention files | Text-based | With autocomplete; local and SSH sessions only | | File attachments | Not available | Images, PDFs | -| Session isolation | [`--worktree`](/docs/en/cli-reference) flag | Automatic worktrees | +| Session isolation | [`--worktree`](/docs/en/cli-reference) flag | **worktree** option when starting a session | | Multiple sessions | Separate terminals | Sidebar tabs | | Recurring tasks | Cron jobs, CI pipelines | [Scheduled tasks](/docs/en/desktop-scheduled-tasks) | | Computer use | [Enable via `/mcp`](/docs/en/computer-use) on macOS | [App and screen control](#let-claude-use-your-computer) on macOS and Windows | @@ -951,7 +951,7 @@ If Claude can't find tools like `npm`, `node`, or other CLI commands, verify the ### Git and Git LFS errors -On Windows, Git is required for the Code tab to start local sessions. If you see "Git is required," install [Git for Windows](https://git-scm.com/downloads/win) and restart the app. +Sessions that run in their own worktree need Git. If you see "Git is required," install [Git](https://git-scm.com/downloads), or [Git for Windows](https://git-scm.com/downloads/win) on Windows, and try again. On Windows, Claude Desktop versions before 1.49585.0 asked for Git before starting any local session; if you see that prompt and aren't using worktrees, update the app. If you see "Git LFS is required by this repository but is not installed," install Git LFS from [git-lfs.com](https://git-lfs.com/), run `git lfs install`, and restart the app. diff --git a/content/en/docs/claude-code/desktop-quickstart.md b/content/en/docs/claude-code/desktop-quickstart.md index e6874a7c2..7bbdb0792 100644 --- a/content/en/docs/claude-code/desktop-quickstart.md +++ b/content/en/docs/claude-code/desktop-quickstart.md @@ -61,7 +61,7 @@ With the Code tab open, choose a project and give Claude something to do. Select **Local** to run Claude on your machine using your files directly. Click **Select folder** and choose your project directory. - Start with a small project you know well. It's the fastest way to see what Claude Code can do. On Windows, [Git](https://git-scm.com/downloads/win) must be installed for local sessions to work. Most Macs include Git by default. + Start with a small project you know well. It's the fastest way to see what Claude Code can do. You can also select: @@ -82,7 +82,7 @@ With the Code tab open, choose a project and give Claude something to do. * `Add tests for the main function` * `Create a CLAUDE.md with instructions for this codebase` - A [session](/docs/en/desktop#work-in-parallel-with-sessions) is a conversation with Claude about your code. Each session tracks its own context and changes, so you can work on multiple tasks without them interfering with each other. + A [session](/docs/en/desktop#work-in-parallel-with-sessions) is a conversation with Claude about your code. Each session tracks its own context and changes. @@ -128,7 +128,7 @@ You've made your first edit. For the full reference on everything Desktop can do **Put Claude on a schedule.** Set up [scheduled tasks](/docs/en/desktop-scheduled-tasks) to run Claude automatically on a recurring basis: a daily code review every morning, a weekly dependency audit, or a briefing that pulls from your connected tools. -**Scale up when you're ready.** Open [parallel sessions](/docs/en/desktop#work-in-parallel-with-sessions) from the sidebar to work on multiple tasks at once, each in its own Git worktree, and open the [tasks pane](/docs/en/desktop#watch-background-tasks) to watch the subagents and background commands a session has running. Open a [side chat](/docs/en/desktop#ask-a-side-question-without-derailing-the-session) to ask a question without derailing the main thread. Send [long-running work to the cloud](/docs/en/desktop#run-long-running-tasks-remotely) so it continues even if you close the app, or [continue a session on the web or in your IDE](/docs/en/desktop#continue-in-another-surface) if a task takes longer than expected. [Connect external tools](/docs/en/desktop#extend-claude-code) like GitHub, Slack, and Linear to bring your workflow together. +**Scale up when you're ready.** Open [parallel sessions](/docs/en/desktop#work-in-parallel-with-sessions) from the sidebar to work on multiple tasks at once, optionally each in its own Git worktree, and open the [tasks pane](/docs/en/desktop#watch-background-tasks) to watch the subagents and background commands a session has running. Open a [side chat](/docs/en/desktop#ask-a-side-question-without-derailing-the-session) to ask a question without derailing the main thread. Send [long-running work to the cloud](/docs/en/desktop#run-long-running-tasks-remotely) so it continues even if you close the app, or [continue a session on the web or in your IDE](/docs/en/desktop#continue-in-another-surface) if a task takes longer than expected. [Connect external tools](/docs/en/desktop#extend-claude-code) like GitHub, Slack, and Linear to bring your workflow together. ## What's next diff --git a/content/en/docs/claude-code/desktop.md b/content/en/docs/claude-code/desktop.md index 5d0ccb2a3..837df8b7b 100644 --- a/content/en/docs/claude-code/desktop.md +++ b/content/en/docs/claude-code/desktop.md @@ -24,9 +24,9 @@ The Claude Desktop app has three tabs: **Chat** for conversations, **Cowork** fo For Windows ARM64, download the [ARM64 installer](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs). On Linux, install with apt; see [Claude Desktop on Linux](/docs/en/desktop-linux). -After installing, launch Claude, sign in, and click the **Code** tab. The first time you open it on Windows, you need [Git for Windows](https://git-scm.com/downloads/win) installed; restart the app after installing it. For a walkthrough of your first session, see the [Get started guide](/docs/en/desktop-quickstart). +After installing, launch Claude, sign in, and click the **Code** tab. For a walkthrough of your first session, see the [Get started guide](/docs/en/desktop-quickstart). -In the Code tab, each conversation is a **session**: it has its own chat history, project folder, and code changes, independent of any other session. The sidebar lists your sessions and lets you run several in parallel. Within a session you can: +In the Code tab, each conversation is a **session**: it has its own chat history and project folder, independent of any other session. The sidebar lists your sessions and lets you run several in parallel. Within a session you can: * [Review and comment on diffs](#review-changes-with-diff-view), then [watch the resulting PR through CI](#monitor-pull-request-status) * [Preview your running app](#preview-your-app) in the Browser pane while Claude verifies its own changes, and [open external sites](#browse-external-sites) alongside it @@ -320,7 +320,7 @@ Each session is an independent conversation with its own context and changes. Yo ### Work in parallel with sessions -Click **+ New session** in the sidebar, or press **Cmd+N** on macOS or **Ctrl+N** on Windows, to work on multiple tasks in parallel. Press **Ctrl+Tab** and **Ctrl+Shift+Tab** to cycle through sessions in the sidebar. For Git repositories, each session gets its own isolated copy of your project using [Git worktrees](/docs/en/worktrees), so changes in one session don't affect other sessions until you commit them. +Click **+ New session** in the sidebar, or press **Cmd+N** on macOS or **Ctrl+N** on Windows, to work on multiple tasks in parallel. Press **Ctrl+Tab** and **Ctrl+Shift+Tab** to cycle through sessions in the sidebar. For Git repositories, select the **worktree** option next to the branch name to give the session its own isolated copy of your project using [Git worktrees](/docs/en/worktrees), so changes in one session don't affect other sessions until you commit them. To view two sessions at once, hold **Cmd** on macOS or **Ctrl** on Windows and click a session in the sidebar. The session opens in a second pane alongside the one you already have open. While the split is active, clicking another sidebar session replaces whichever pane has focus. Press **Cmd+\\** on macOS or **Ctrl+\\** on Windows to close the focused pane and return to a single session. @@ -329,7 +329,7 @@ Worktrees are stored in `/.claude/worktrees/` by default. You can To include gitignored files like `.env` in new worktrees, create a [`.worktreeinclude` file](/docs/en/worktrees#copy-gitignored-files-into-worktrees) in your project root. - Session isolation requires [Git](https://git-scm.com/downloads). Most Macs include Git by default. Run `git --version` in Terminal to check; if it prints a version number, Git is installed. On Windows, Git is required for the Code tab to work: [download Git for Windows](https://git-scm.com/downloads/win), install it, and restart the app. If you run into Git errors, ask Claude in the [Cowork tab](https://claude.com/product/cowork) to help troubleshoot your setup. + Session isolation requires [Git](https://git-scm.com/downloads). Most Macs include Git by default. Run `git --version` in Terminal to check; if it prints a version number, Git is installed. If you run into Git errors, ask Claude in the [Cowork tab](https://claude.com/product/cowork) to help troubleshoot your setup. Use the controls at the top of the sidebar to filter sessions by status, project, or environment, and to group sessions by project. To rename a session, click the session title in the toolbar at the top of the active session. @@ -890,7 +890,7 @@ This table compares core capabilities between the CLI and Desktop. For a full li | [Plugins](/docs/en/plugins) | `/plugin` command | Plugin manager UI | | @mention files | Text-based | With autocomplete; local and SSH sessions only | | File attachments | Not available | Images, PDFs | -| Session isolation | [`--worktree`](/docs/en/cli-reference) flag | Automatic worktrees | +| Session isolation | [`--worktree`](/docs/en/cli-reference) flag | **worktree** option when starting a session | | Multiple sessions | Separate terminals | Sidebar tabs | | Recurring tasks | Cron jobs, CI pipelines | [Scheduled tasks](/docs/en/desktop-scheduled-tasks) | | Computer use | [Enable via `/mcp`](/docs/en/computer-use) on macOS | [App and screen control](#let-claude-use-your-computer) on macOS and Windows | @@ -951,7 +951,7 @@ If Claude can't find tools like `npm`, `node`, or other CLI commands, verify the ### Git and Git LFS errors -On Windows, Git is required for the Code tab to start local sessions. If you see "Git is required," install [Git for Windows](https://git-scm.com/downloads/win) and restart the app. +Sessions that run in their own worktree need Git. If you see "Git is required," install [Git](https://git-scm.com/downloads), or [Git for Windows](https://git-scm.com/downloads/win) on Windows, and try again. On Windows, Claude Desktop versions before 1.49585.0 asked for Git before starting any local session; if you see that prompt and aren't using worktrees, update the app. If you see "Git LFS is required by this repository but is not installed," install Git LFS from [git-lfs.com](https://git-lfs.com/), run `git lfs install`, and restart the app. diff --git a/content/en/docs/claude-code/env-vars.md b/content/en/docs/claude-code/env-vars.md index f2084c0aa..1b90b882f 100644 --- a/content/en/docs/claude-code/env-vars.md +++ b/content/en/docs/claude-code/env-vars.md @@ -465,6 +465,7 @@ Numeric variables such as timeouts, token budgets, and retry counts accept scien | `OTEL_LOG_USER_PROMPTS` | Set to `1` to include user prompt text in OpenTelemetry traces and logs. Disabled by default (prompts are redacted). See [Monitoring](/docs/en/monitoring-usage) | | `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Set to `false` to exclude account UUID from metrics attributes (default: included). See [Monitoring](/docs/en/monitoring-usage) | | `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Set to `true` to include the session entrypoint in metrics attributes (default: excluded). Added in v2.1.152. See [Monitoring](/docs/en/monitoring-usage) | +| `OTEL_METRICS_INCLUDE_REPOSITORY` | Set to `true` to tag OpenTelemetry metrics and events with `vcs.*` attributes identifying the session's repository (default: excluded). Requires Claude Code v2.1.269 or later. See [Repository attributes](/docs/en/monitoring-usage#repository-attributes) | | `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | As of v2.1.161, Claude Code attaches `OTEL_RESOURCE_ATTRIBUTES` keys to metric datapoint labels. Set to `false` to exclude them (default: included). See [Monitoring](/docs/en/monitoring-usage#multi-team-organization-support) | | `OTEL_METRICS_INCLUDE_SESSION_ID` | Set to `false` to exclude session ID from metrics attributes (default: included). See [Monitoring](/docs/en/monitoring-usage) | | `OTEL_METRICS_INCLUDE_VERSION` | Set to `true` to include Claude Code version in metrics attributes (default: excluded). See [Monitoring](/docs/en/monitoring-usage) | diff --git a/content/en/docs/claude-code/errors.md b/content/en/docs/claude-code/errors.md index 10d011553..ac61ee43f 100644 --- a/content/en/docs/claude-code/errors.md +++ b/content/en/docs/claude-code/errors.md @@ -18,251 +18,253 @@ Except for [Wrapper and IDE errors](#wrapper-and-ide-errors), which the launchin Match the message you see to a section below. -| Message | Section | -| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------- | -| `API Error: 500 Internal server error` | [Server errors](#api-error-500-internal-server-error) | -| `API Error: Repeated 529 Overloaded errors` | [Server errors](#api-error-repeated-529-overloaded-errors) | -| `Request timed out` | [Server errors](#request-timed-out), or [Network](#unable-to-connect-to-api) if the message mentions your internet connection | -| `API Error: No response from API` | [Server errors](#no-response-from-api) | -| `Server error mid-response. The response above may be incomplete.` | [Server errors](#the-response-above-may-be-incomplete) | -| `Connection lost mid-response` / `Your computer went to sleep mid-response` / `The response stopped arriving` | [Server errors](#the-response-above-may-be-incomplete) | -| `Connection closed mid-response` / `Response stalled mid-stream` | [Server errors](#the-response-above-may-be-incomplete) | -| `Connection lost before a response was produced` / `Your computer went to sleep before a response was produced` / `The response stalled before a response was produced` | [Automatic retries](#automatic-retries) | -| `Connection closed while thinking` / `Response stalled while thinking` | [Automatic retries](#automatic-retries) | -| `Connection lost while your computer was asleep` | [Automatic retries](#automatic-retries) | -| ` is temporarily unavailable, so auto mode cannot determine the safety of...` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) | -| `Auto mode could not evaluate this action and is blocking it for safety` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) | -| `Auto mode classifier transcript exceeded context window` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) | -| `Agent aborted: auto mode classifier request refused by the safety safeguard` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) | -| `Agent terminated early due to an API error` | [Server errors](#agent-terminated-early-due-to-an-api-error) | -| `You've hit your session limit` / `You've hit your weekly limit` / `You've hit your Opus limit` / `You've hit your Sonnet limit` | [Usage limits](#youve-hit-your-session-limit) | -| `Usage credits required for 1M context` | [Usage limits](#usage-credits-required-for-1m-context) | -| `the prompt to confirm went unanswered — nothing was sent` | [Usage limits](#the-prompt-to-confirm-went-unanswered) | -| `Server is temporarily limiting requests` | [Usage limits](#server-is-temporarily-limiting-requests) | -| `Request rejected (429)` | [Usage limits](#request-rejected-429) | -| `Credit balance is too low` | [Usage limits](#credit-balance-is-too-low) | -| `Could not update your spend limit` | [Usage limits](#could-not-update-your-spend-limit) | -| `spend limit reached` / `spend limit unavailable` | [Usage limits](#spend-limit-reached) | -| `Not logged in · Please run /login` | [Authentication](#not-logged-in) | -| `Could not resolve authentication method` | [Authentication](#could-not-resolve-authentication-method) | -| `Invalid API key` | [Authentication](#invalid-api-key) | -| `Your apiKeyHelper script is failing` | [Authentication](#your-apikeyhelper-script-is-failing) | -| `Invalid auth token · Fix external auth token` | [Authentication](#invalid-request-header-value) | -| `Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable` | [Authentication](#invalid-request-header-value) | -| `Invalid request header from the environment · Fix the environment variable` | [Authentication](#invalid-request-header-value) | -| `This organization has been disabled` | [Authentication](#this-organization-has-been-disabled) | -| `Your organization has disabled API key authentication` | [Authentication](#your-organization-has-disabled-api-key-authentication) | -| `Your organization has disabled Claude subscription access` | [Authentication](#your-organization-has-disabled-claude-subscription-access) | -| `Routines are disabled by your organization's policy` | [Authentication](#routines-are-disabled-by-your-organizations-policy) | -| `Remote Control is only available when using Claude via api.anthropic.com` | [Authentication](#remote-control-requires-the-anthropic-api) | -| `OAuth token refresh failed — run /login to re-authenticate` | [Authentication](#remote-control-couldnt-refresh-your-login) | -| `JWT refresh failed: no OAuth token — run /login` | [Authentication](#remote-control-couldnt-refresh-your-login) | -| `Claude.ai login expired` | [Authentication](#remote-control-couldnt-refresh-your-login) | -| `Claude.ai login was rejected — run /login, then /remote-control` | [Authentication](#remote-control-couldnt-refresh-your-login) | -| `OAuth token unavailable — run /login to restore Remote Control` | [Authentication](#remote-control-couldnt-refresh-your-login) | -| `Signed out of Claude — run /login, then /remote-control` | [Authentication](#remote-control-couldnt-refresh-your-login) | -| `signed-in claude.ai account or organization changed on this machine` | [Authentication](#remote-control-stopped-because-the-signed-in-account-changed) | -| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) | -| `Remote Control stopped — the app running this session is signed out of Claude` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) | -| `OAuth token revoked` / `OAuth token has expired` | [Authentication](#oauth-token-revoked-or-expired) | -| `API Error: 401 Invalid authentication credentials` | [Authentication](#api-error-401-invalid-authentication-credentials) | -| `Login expired · Please run /login` | [Authentication](#login-expired) | -| `Not signed in to the Cloud gateway — run /login.` | [Authentication](#administrator-policy-requires-a-cloud-gateway-sign-in) | -| `Administrator policy requires a Cloud gateway sign-in on this machine` | [Authentication](#administrator-policy-requires-a-cloud-gateway-sign-in) | -| `Failed to authenticate: OAuth session expired and could not be refreshed` | [Authentication](#login-expired) | -| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) | -| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) | -| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [Authentication](#anthropic-profile-login-expired) | -| `Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile` | [Authentication](#anthropic-profile-login-expired) | -| `does not meet scope requirement user:profile` | [Authentication](#oauth-scope-requirement) | -| `claude.ai rejected the session token` / `session token rejected` | [Authentication](#claude-ai-rejected-the-session-token) | -| `Issuer mismatch in authorization response (RFC 9207)` | [Authentication](#issuer-mismatch-in-authorization-response) | -| `Cloud gateway session expired — run /login to reconnect.` | [Authentication](#cloud-gateway-session-expired) | -| `Cloud gateway no longer accepts this session` | [Authentication](#cloud-gateway-session-expired) | -| `AWS credentials expired or invalid` | [Authentication](#aws-credentials-expired-or-invalid) | -| `AWS authentication failed` | [Authentication](#aws-authentication-failed) | -| `Could not load AWS credentials` / `Could not load Google Cloud credentials` | [Authentication](#could-not-load-aws-or-google-cloud-credentials) | -| `AWS default-chain credential resolve timed out` | [Authentication](#aws-default-chain-credential-resolve-timed-out) | -| `Timed out after 60s waiting for AWS` | [Authentication](#bedrock-setup-verification-timed-out-waiting-for-aws) | -| `A request to AWS timed out. Check your network and proxy settings, then try again.` | [Authentication](#bedrock-setup-verification-timed-out-waiting-for-aws) | -| `Could not load the default credentials` on Google Cloud's Agent Platform | [Authentication](#could-not-load-aws-or-google-cloud-credentials) | -| `Unable to connect to API` | [Network](#unable-to-connect-to-api) | -| `Connection refused —` / `Can't reach the API server —` / `No internet route —` / `Couldn't connect through your proxy` / `Connection dropped`, each ending with an error code in parentheses | [Network](#unable-to-connect-to-api) | -| `Unable to connect to Anthropic services` during setup | [Network](#unable-to-connect-to-anthropic-services) | -| `Socket is closed` | [Network](#socket-is-closed) | -| `Waiting for API response · will retry in` | [Automatic retries](#automatic-retries), or [Network](#unable-to-connect-to-api) if it persists | -| `API returned an empty or malformed response` | [Network](#api-returned-an-empty-or-malformed-response) | -| `Streaming response ended before any complete data was received` | [Network](#streaming-response-ended-before-any-complete-data-was-received) | -| `Bedrock streaming response has content-type "..."; expected "application/vnd.amazon.eventstream"` | [Network](#bedrock-streaming-response-has-an-unexpected-content-type) | -| `SSL certificate verification failed` | [Network](#ssl-certificate-errors) | -| `SSL certificate error (...)` during login or startup | [Network](#ssl-certificate-errors) | -| `unable to get local issuer certificate` | [Network](#ssl-certificate-errors) | -| `403` with `x-deny-reason: host_not_allowed` in a cloud or routine session | [Network](#host-not-allowed-in-a-cloud-session) | -| `proxy refused the connection` | [Network](#the-proxy-refused-the-connection) | -| `403` with `This GraphQL query is not enabled for this session` in a cloud session | [GitHub proxy](/docs/en/cloud-environments#github-proxy) | -| `The cloud environments service returned an empty response` / `The cloud environments service returned a response in an unexpected format` | [Network](#the-cloud-environments-service-returned-an-empty-or-unexpected-response) | -| `Couldn't reconnect to your Remote Control session` | [Network](#couldnt-reconnect-to-your-remote-control-session) | -| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Network](#sessions-ended-while-this-machine-was-offline) | -| `Couldn't share the transcript.` | [Network](#couldnt-share-the-transcript) | -| `Prompt is too long` / `Input is too long for requested model` | [Request errors](#prompt-is-too-long) | -| `Prompt is too long · automatic compaction failed:` | [Request errors](#prompt-is-too-long) | -| `Prompt is too long · this conversation is a single exchange` / `A single-exchange conversation cannot be compacted` | [Request errors](#prompt-is-too-long) | -| `Context limit reached · /compact or /clear to continue` | [Request errors](#prompt-is-too-long) | -| `Context limit reached · /clear to continue` | [Request errors](#prompt-is-too-long) | -| `capability_rejected: prompt_too_long` on a Claude apps gateway session | [Request errors](#prompt-is-too-long) | -| `upstream rejected the request` / `request too large for this upstream` on a Claude apps gateway session | [Upstream error messages](/docs/en/claude-apps-gateway-config#upstream-error-messages) | -| `upstream rate limit exceeded` on a Claude apps gateway session | [Upstream error messages](/docs/en/claude-apps-gateway-config#upstream-error-messages) | -| `all upstreams failed (N attempted)` on a Claude apps gateway session | [Upstream error messages](/docs/en/claude-apps-gateway-config#upstream-error-messages) | -| `Claude Code may not be enabled for your organization` after a Claude apps gateway sign-in | [Claude apps gateway troubleshooting](/docs/en/claude-apps-gateway-deploy#troubleshooting) | -| `Context exceeds the ...-token limit by ... tokens` in `/context` output | [Request errors](#context-exceeds-the-token-limit) | -| `Error during compaction: Conversation too long` | [Request errors](#error-during-compaction-conversation-too-long) | -| `Request too large` | [Request errors](#request-too-large) | -| `Request too large for the API's 32MB request limit` | [Request errors](#request-too-large) | -| `Image was too large` | [Request errors](#image-was-too-large) | -| `Unable to resize image` | [Request errors](#unable-to-resize-image) | -| `PDF too large` / `PDF is password protected` | [Request errors](#pdf-errors) | -| `Extra inputs are not permitted` | [Request errors](#extra-inputs-are-not-permitted) | -| `API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid` / `Property keys should match pattern` | [Request errors](#tool-input-schema-is-invalid) | -| `There's an issue with the selected model` | [Request errors](#theres-an-issue-with-the-selected-model) | -| `Model ... is not a recognized model id` | [Request errors](#model-is-not-a-recognized-model-id) | -| `Model ... not found` | [Request errors](#model-not-found) | -| `Claude Opus is not available with the Claude Pro plan` | [Request errors](#claude-opus-is-not-available-with-the-claude-pro-plan) | -| `Claude Code ... does not support this model; version ... or newer is required` | [Request errors](#claude-code-does-not-support-this-model) | -| `Claude Code ... is older than the minimum version required by your organization's policy` | [Request errors](#claude-code-does-not-support-this-model) | -| `Model ... is restricted by your organization's settings` | [Request errors](#model-is-restricted-by-your-organizations-settings) | -| `Model switch ... blocked by a PreModelSwitch hook` | [Request errors](#model-switch-was-blocked-by-a-premodelswitch-hook) | -| `couldn't save it as your default` / `couldn't confirm it was saved as your default` | [Request errors](#couldnt-save-it-as-your-default) | -| `thinking.type.enabled is not supported for this model` | [Request errors](#thinking-type-enabled-is-not-supported-for-this-model) | -| `Effort '' isn't available with thinking turned off on this model` | [Request errors](#effort-isnt-available-with-thinking-turned-off) | -| `effort '' is not supported when thinking is disabled` | [Request errors](#effort-isnt-available-with-thinking-turned-off) | -| `max_tokens must be greater than thinking.budget_tokens` | [Request errors](#thinking-budget-exceeds-output-limit) | -| `API Error: 400 due to tool use concurrency issues` | [Request errors](#tool-use-or-thinking-block-mismatch) | -| `[Unsupported tool content removed]` | [Request errors](#unsupported-tool-content-removed) | -| `server_tool_use.name: Input should be` on every turn of a resumed session | [Request errors](#unsupported-tool-content-removed) | -| ` can't help with this. Start a new session to continue` | [Request errors](#usage-policy-refusal) | -| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [Request errors](#usage-policy-refusal) | -| `'s safeguards flagged this message` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) | -| ` has safety measures that flagged this message for a cybersecurity topic` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) | -| `Installation was killed before it could finish (exit code 137)` | [Installation errors](#installation-was-killed-before-it-could-finish) | -| `The connection dropped while downloading the update` | [Installation errors](#the-connection-dropped-while-downloading-the-update) | -| `Download timed out: exceeded the total deadline` | [Installation errors](#the-connection-dropped-while-downloading-the-update) | -| `--bg and --print conflict` | [Command-line errors](#command-line-errors) | -| `Cloud sessions cannot be created from a --restricted session` | [Command-line errors](#cloud-sessions-cannot-be-created-from-a-restricted-session) | -| `Error: --json-schema is not a valid JSON Schema` | [Command-line errors](#command-line-errors) | -| `Error: Invalid --agents configuration:` | [Command-line errors](#invalid-agents-configuration) | -| `Error: Settings file exceeds the 2MiB limit` | [Command-line errors](#settings-file-exceeds-the-2mib-limit) | -| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Command-line errors](#the-current-directory-no-longer-exists) | -| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [Command-line errors](#directory-couldnt-be-resolved-to-a-real-location) | -| `Error: Workspace not trusted` when starting Remote Control | [Command-line errors](#workspace-not-trusted-when-starting-remote-control) | -| `` `` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Command-line errors](#not-carried-over-to-the-sessions-remote-control-starts) | -| `` `claude import` is not yet available in this build `` | [Command-line errors](#claude-import-is-not-yet-available-in-this-build) | -| `Could not read Claude Code config` | [Command-line errors](#could-not-read-claude-code-config) | -| `Could not import : ` | [Command-line errors](#could-not-import-a-server-from-claude-desktop) | -| `Cannot add MCP server to scope: managed` | [Command-line errors](#cannot-add-mcp-server-to-the-managed-scope) | -| `is Anthropic-hosted and doesn't support local OAuth` | [Command-line errors](#anthropic-hosted-and-doesnt-support-local-oauth) | -| `Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes` | [Command-line errors](#cant-read-mcp-json) | -| `Server rejected the Authorization header minted by the configured headersHelper` | [Command-line errors](#server-rejected-the-authorization-header-minted-by-the-configured-headershelper) | -| `Error: MCP tool (passed via --permission-prompt-tool) not found` | [Command-line errors](#mcp-permission-prompt-tool-not-found) | -| `OAuth callback port is already in use — another process may be holding it` | [Command-line errors](#oauth-callback-port-is-already-in-use) | -| `Shell command failed for pattern "..."`, from `/security-review` or any skill that injects dynamic context | [Command-line errors](#security-review-fails-without-origin-head) | -| `Shell command permission check failed for pattern "..."`, from a skill that injects dynamic context | [Command-line errors](#security-review-fails-without-origin-head) | -| ``Skill requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` | [Command-line errors](#security-review-fails-without-origin-head) | -| `Input must be provided either through stdin or as a prompt argument when using --print` | [Command-line errors](#input-must-be-provided-when-using-print) | -| `Error: Input contained only whitespace` | [Command-line errors](#input-contained-only-whitespace) | -| `Blank prompt — the message was only whitespace, so nothing was sent to the model.` | [Command-line errors](#input-contained-only-whitespace) | -| `Error: stream-json input carried over 256M characters with no newline` | [Command-line errors](#stream-json-input-carried-over-256m-characters-with-no-newline) | -| `Unknown command: /`, with or without a `Did you mean` suggestion | [Command-line errors](#unknown-command) | -| `Diff is too large for ultrareview` / `PR # is too large for ultrareview` | [Command-line errors](#diff-is-too-large-for-ultrareview) | -| `Could not find merge-base with ` | [Command-line errors](#could-not-find-merge-base-with-the-base-branch) | -| `Your checkout has no branches (detached HEAD only)` | [Command-line errors](#your-checkout-has-no-branches) | -| `Ultrareview clones / in the cloud with the GitHub account connected to your Claude account, and none is connected` | [Command-line errors](#no-github-account-is-connected-to-your-claude-account) | -| `Your connected GitHub account can't see /` | [Command-line errors](#your-connected-github-account-cant-see-the-repository) | -| `The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead` | [Command-line errors](#the-github-app-preflight-failed-transiently) | -| `Failed to resume the conversation` | [Command-line errors](#failed-to-resume-the-conversation) | -| `No conversation found with session ID: ` | [Command-line errors](#no-conversation-found-with-the-session-id) | -| `Cannot switch renderers in this session` | [Command-line errors](#cannot-switch-renderers-in-this-session) | -| `Cannot switch renderers while work is running in the background` | [Command-line errors](#cannot-switch-renderers-in-this-session) | -| `Couldn't read your Zed keymap` / `Couldn't back up your Zed keymap` / `Couldn't update your Zed keymap` | [Command-line errors](#terminal-setup-left-your-zed-keymap-unchanged) | -| `Your Zed keymap isn't a readable list of keybindings` | [Command-line errors](#terminal-setup-left-your-zed-keymap-unchanged) | -| `Skill usage reports are not available on this connection.` | [Command-line errors](#skill-usage-reports-are-not-available-on-this-connection) | -| `Marketplace "" is registered from an untrusted source` | [Plugin errors](#marketplace-is-registered-from-an-untrusted-source) | -| `references ${user_config.*} in a shell-form command` | [Plugin errors](#plugin-command-references-user-config) | -| `Monitor "" from plugin references ${user_config.*} in its command` | [Plugin errors](#plugin-command-references-user-config) | -| `headersHelper for MCP server '' references ${user_config.*}` | [Plugin errors](#plugin-command-references-user-config) | -| `Plugin archive integrity check failed` | [Plugin errors](#plugin-archive-integrity-check-failed) | -| `path escapes plugin directory` | [Plugin errors](#path-escapes-plugin-directory) | -| `path could not be checked` | [Plugin errors](#path-could-not-be-checked) | -| `its marketplace entry path does not stay inside the marketplace directory` | [Plugin errors](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) | -| `Plugin source path refused` | [Plugin errors](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) | -| `Failed to load marketplace configuration` | [Plugin errors](#failed-to-load-marketplace-configuration) | -| `Marketplace configuration file is corrupted` | [Plugin errors](#failed-to-load-marketplace-configuration) | -| `would be spawned with zero tools — refusing` | [Tool errors](#agent-would-be-spawned-with-zero-tools) | -| `File is covered by a Read deny rule in your permission settings` | [Tool errors](#file-is-covered-by-a-read-deny-rule) | -| `subagent_type is required: the general-purpose agent is not available in this session` | [Tool errors](#subagent-type-is-required) | -| `Error: this write left the memory index at MEMORY.md at ..., over its ... read limit` | [Tool errors](#memory-index-is-over-its-read-limit) | -| `pkill: refusing to run` | [Tool errors](#pkill-pattern-matches-the-claude-code-process) | -| `Failed to write to 's inbox — nothing was sent` | [Tool errors](#failed-to-write-to-a-teammate-inbox) | -| `Failed to write the plan approval request to the lead's inbox — plan not submitted` | [Tool errors](#failed-to-write-to-a-teammate-inbox) | -| `Message too large for cross-session delivery` | [Tool errors](#message-too-large-for-cross-session-delivery) | -| `Too many messages to this session just now` | [Tool errors](#too-many-messages-to-this-session-just-now) | -| `Refusing to send: reply target is a symlink` / `Refusing to send: cannot vet reply target` | [Tool errors](#refusing-to-send-a-cross-session-message) | -| `Refusing to send: connected endpoint is not the expected process` / `Refusing to send: connected endpoint identity could not be read` | [Tool errors](#refusing-to-send-a-cross-session-message) | -| `Refusing to send: connected endpoint is not owned by this user` / `Refusing to send: connected endpoint owner could not be read` | [Tool errors](#refusing-to-send-a-cross-session-message) | -| `Refusing to send: connected endpoint is a different process with the expected pid` | [Tool errors](#refusing-to-send-a-cross-session-message) | -| `Refusing to read : its symlink resolution changed after permission was checked` / `Refusing to search : its symlink resolution changed after permission was checked` | [Tool errors](#refusing-after-a-symlink-changed) | -| `Refusing to write : its parent-directory symlink resolution changed after permission was checked` / `Refusing to write : it is a symbolic link. Write to the link's target path instead` | [Tool errors](#refusing-after-a-symlink-changed) | -| `Refusing to search : a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search : it could not be opened` | [Tool errors](#refusing-after-a-symlink-changed) | -| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [Tool errors](#refusing-after-a-symlink-changed) | -| `task output swap refused (tasks dir moved or linked)` | [Tool errors](#task-output-swap-refused) | -| `Command killed: its output file was replaced or could no longer be verified` | [Tool errors](#task-output-swap-refused) | -| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Tool errors](#the-source-file-is-not-valid-utf-8-text) | -| `the source file has the replacement character U+FFFD` | [Tool errors](#the-source-file-is-not-valid-utf-8-text) | -| `Can't open MCP settings while no terminal is attached to this background session` | [Background session errors](#commands-refused-in-a-background-session) | -| `Can't open MCP settings in a background session` | [Background session errors](#commands-refused-in-a-background-session) | -| `blocked because the path is spelled in a form that cannot be safely resolved` | [Background session errors](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) | -| `blocked because the path is network-shaped` | [Background session errors](#write-or-command-blocked-because-the-path-names-a-network-location) | -| `This session has no saved transcript` | [Background session errors](#this-session-has-no-saved-transcript) | -| `Can't open — this session is running in another terminal` | [Background session errors](#this-session-is-running-in-another-terminal) | -| `This conversation is already open in another running Claude session` | [Background session errors](#this-session-is-running-in-another-terminal) | -| `This session's saved conversation is no longer on disk` | [Background session errors](#this-sessions-saved-conversation-is-no-longer-on-disk) | -| `kept unpushed commits on ` | [Background session errors](#worktree-has-commits-that-are-not-pushed-anywhere) | -| `kept — worktree has commits that are not pushed anywhere` | [Background session errors](#worktree-has-commits-that-are-not-pushed-anywhere) | -| `terminal host process died — press Enter to restart` / `This session's terminal host process died` | [Background session errors](#terminal-host-process-died) | -| `Session isn't responding` / `Press enter again to restart this session — it isn't responding` | [Background session errors](#session-isnt-responding) | -| `Session was stopped while the respawn was in flight` | [Background session errors](#session-was-stopped-while-the-respawn-was-in-flight) | -| `This session was running agent '', which is no longer available` | [Background session errors](#session-agent-no-longer-available) | -| `CLAUDE_CODE_PROCESS_WRAPPER: launcher ...` | [Background session errors](#claude_code_process_wrapper-launcher-errors) | -| `EUNKNOWN: unknown error, uv_spawn` | [Background session errors](#eunknown-when-starting-a-background-session) | -| `EACCES: permission denied, posix_spawn` | [Background session errors](#eacces-when-starting-a-background-session) | -| `exited before it became reachable` | [Background session errors](#background-service-exited-before-it-became-reachable) | -| `Couldn't start a background session (working directory no longer exists or is not accessible: ...)` | [Background session errors](#working-directory-no-longer-exists-when-starting-a-background-session) | -| `Claude Code is being updated by npm on this machine (still not runnable after 2 min, ...)` | [Background session errors](#eacces-when-starting-a-background-session) | -| `Claude Code process exited with code N` | [Wrapper and IDE errors](#claude-code-process-exited-with-code-n) | -| `Could not locate the Claude CLI on PATH` | [Wrapper and IDE errors](#could-not-locate-the-claude-cli-on-path) | -| `Restored the code, but skipped N files` | [Rewind warnings and errors](#restored-the-code-but-skipped-files) | -| `No files were restored: N files failed (backup missing, or the file could not be updated)` | [Rewind warnings and errors](#no-files-were-restored) | -| `Transcript writes are failing (...)` | [Session saving warnings](#transcript-writes-are-failing) | -| `Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set` | [Session saving warnings](#transcript-saving-is-off-skip-prompt-history) | -| `Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker` | [Session saving warnings](#transcript-saving-is-off-child-session-marker) | -| `Claude Code's fullscreen renderer didn't finish starting last time on this machine` / `Claude Code's fullscreen renderer has repeatedly failed to start on this machine` | [Configuration warnings](#fullscreen-failed-start-notice) | -| `Claude Code exited after an unrecoverable interface error (...)` | [Configuration warnings](#exited-after-an-unrecoverable-interface-error) | -| `Agent descriptions are over the 15.0k-token limit` | [Configuration warnings](#agent-descriptions-are-over-the-15000-token-limit) | -| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Configuration warnings](#workspace-has-not-been-trusted) | -| `is a network path, which cannot be added as a working directory` | [Configuration warnings](#working-directory-is-a-network-path) | -| `Remote managed settings failed to load ()` | [Configuration warnings](#remote-managed-settings-failed-to-load) | -| `Managed settings were not approved; exiting without applying them.` | [Configuration warnings](#managed-settings-were-not-approved) | -| `MCP server is blocked by enterprise managed policy` | [Configuration warnings](#mcp-server-is-blocked-by-enterprise-managed-policy) | -| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [Configuration warnings](#managed-settings-document-could-not-be-parsed) | -| `Managed settings drop-in directory could not be read` | [Configuration warnings](#managed-settings-document-could-not-be-parsed) | -| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [Configuration warnings](#crosssessioninbound-must-be-one-of-accept-hold-refuse) | -| `headersHelper not run — this workspace has no persisted trust` | [Configuration warnings](#headershelper-not-run) | -| `Invalid permission rule "..." was skipped: Malformed Tool(content) rule` | [Configuration warnings](#malformed-tool-content-rule) | -| `... is not matched by file permission checks` | [Configuration warnings](#is-not-matched-by-file-permission-checks) | -| `... has a wildcard before the rest of the command` | [Configuration warnings](#has-a-wildcard-before-the-rest-of-the-command) | -| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [Configuration warnings](#the-200k-limit-isnt-enforced) | -| `[claude-code:unrecognized_model]` | [Configuration warnings](#unrecognized-model-id-on-a-request) | -| `Stale sandbox mask files left by a killed session` | [Configuration warnings](#stale-sandbox-mask-files-left-by-a-killed-session) | -| Responses seem lower quality than usual | [Response quality](#responses-seem-lower-quality-than-usual) | +| Message | Section | +| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------------------------------------- | +| `API Error: 500 Internal server error` | [Server errors](#api-error-500-internal-server-error) | +| `API Error: Repeated 529 Overloaded errors` | [Server errors](#api-error-repeated-529-overloaded-errors) | +| `Request timed out` | [Server errors](#request-timed-out), or [Network](#unable-to-connect-to-api) if the message mentions your internet connection | +| `API Error: No response from API` | [Server errors](#no-response-from-api) | +| `Server error mid-response. The response above may be incomplete.` | [Server errors](#the-response-above-may-be-incomplete) | +| `Connection lost mid-response` / `Your computer went to sleep mid-response` / `The response stopped arriving` | [Server errors](#the-response-above-may-be-incomplete) | +| `Connection closed mid-response` / `Response stalled mid-stream` | [Server errors](#the-response-above-may-be-incomplete) | +| `Connection lost before a response was produced` / `Your computer went to sleep before a response was produced` / `The response stalled before a response was produced` | [Automatic retries](#automatic-retries) | +| `Connection closed while thinking` / `Response stalled while thinking` | [Automatic retries](#automatic-retries) | +| `Connection lost while your computer was asleep` | [Automatic retries](#automatic-retries) | +| ` is temporarily unavailable, so auto mode cannot determine the safety of...` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) | +| `Auto mode could not evaluate this action and is blocking it for safety` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) | +| `Auto mode classifier transcript exceeded context window` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) | +| `Agent aborted: auto mode classifier request refused by the safety safeguard` | [Server errors](#auto-mode-cannot-determine-the-safety-of-an-action) | +| `Agent terminated early due to an API error` | [Server errors](#agent-terminated-early-due-to-an-api-error) | +| `You've hit your session limit` / `You've hit your weekly limit` / `You've hit your Opus limit` / `You've hit your Sonnet limit` | [Usage limits](#youve-hit-your-session-limit) | +| `Usage credits required for 1M context` | [Usage limits](#usage-credits-required-for-1m-context) | +| `the prompt to confirm went unanswered — nothing was sent` | [Usage limits](#the-prompt-to-confirm-went-unanswered) | +| `Server is temporarily limiting requests` | [Usage limits](#server-is-temporarily-limiting-requests) | +| `Request rejected (429)` | [Usage limits](#request-rejected-429) | +| `Credit balance is too low` | [Usage limits](#credit-balance-is-too-low) | +| `You've hit your monthly spend limit` / `You've hit your individual spend limit` / `You've hit your org's monthly spend limit` / `You've hit your channel's monthly spend limit` / `You've hit your team's shared budget` / `You've hit your individual usage limit` | [Usage limits](#youve-hit-your-monthly-spend-limit) | +| `Could not update your spend limit` | [Usage limits](#could-not-update-your-spend-limit) | +| `spend limit reached` / `spend limit unavailable` | [Usage limits](#spend-limit-reached) | +| `Not logged in · Please run /login` | [Authentication](#not-logged-in) | +| `Could not resolve authentication method` | [Authentication](#could-not-resolve-authentication-method) | +| `Invalid API key` | [Authentication](#invalid-api-key) | +| `Your apiKeyHelper script is failing` | [Authentication](#your-apikeyhelper-script-is-failing) | +| `Invalid auth token · Fix external auth token` | [Authentication](#invalid-request-header-value) | +| `Invalid ANTHROPIC_CUSTOM_HEADERS · Fix the environment variable` | [Authentication](#invalid-request-header-value) | +| `Invalid request header from the environment · Fix the environment variable` | [Authentication](#invalid-request-header-value) | +| `This organization has been disabled` | [Authentication](#this-organization-has-been-disabled) | +| `Your organization has disabled API key authentication` | [Authentication](#your-organization-has-disabled-api-key-authentication) | +| `Your organization has disabled Claude subscription access` | [Authentication](#your-organization-has-disabled-claude-subscription-access) | +| `Routines are disabled by your organization's policy` | [Authentication](#routines-are-disabled-by-your-organizations-policy) | +| `Remote Control is only available when using Claude via api.anthropic.com` | [Authentication](#remote-control-requires-the-anthropic-api) | +| `OAuth token refresh failed — run /login to re-authenticate` | [Authentication](#remote-control-couldnt-refresh-your-login) | +| `JWT refresh failed: no OAuth token — run /login` | [Authentication](#remote-control-couldnt-refresh-your-login) | +| `Claude.ai login expired` | [Authentication](#remote-control-couldnt-refresh-your-login) | +| `Claude.ai login was rejected — run /login, then /remote-control` | [Authentication](#remote-control-couldnt-refresh-your-login) | +| `OAuth token unavailable — run /login to restore Remote Control` | [Authentication](#remote-control-couldnt-refresh-your-login) | +| `Signed out of Claude — run /login, then /remote-control` | [Authentication](#remote-control-couldnt-refresh-your-login) | +| `signed-in claude.ai account or organization changed on this machine` | [Authentication](#remote-control-stopped-because-the-signed-in-account-changed) | +| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) | +| `Remote Control stopped — the app running this session is signed out of Claude` | [Authentication](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) | +| `OAuth token revoked` / `OAuth token has expired` | [Authentication](#oauth-token-revoked-or-expired) | +| `API Error: 401 Invalid authentication credentials` | [Authentication](#api-error-401-invalid-authentication-credentials) | +| `Login expired · Please run /login` | [Authentication](#login-expired) | +| `Not signed in to the Cloud gateway — run /login.` | [Authentication](#administrator-policy-requires-a-cloud-gateway-sign-in) | +| `Administrator policy requires a Cloud gateway sign-in on this machine` | [Authentication](#administrator-policy-requires-a-cloud-gateway-sign-in) | +| `Failed to authenticate: OAuth session expired and could not be refreshed` | [Authentication](#login-expired) | +| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) | +| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [Authentication](#your-account-is-on-hold) | +| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [Authentication](#anthropic-profile-login-expired) | +| `Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile` | [Authentication](#anthropic-profile-login-expired) | +| `does not meet scope requirement user:profile` | [Authentication](#oauth-scope-requirement) | +| `claude.ai rejected the session token` / `session token rejected` | [Authentication](#claude-ai-rejected-the-session-token) | +| `Issuer mismatch in authorization response (RFC 9207)` | [Authentication](#issuer-mismatch-in-authorization-response) | +| `Cloud gateway session expired — run /login to reconnect.` | [Authentication](#cloud-gateway-session-expired) | +| `Cloud gateway no longer accepts this session` | [Authentication](#cloud-gateway-session-expired) | +| `AWS credentials expired or invalid` | [Authentication](#aws-credentials-expired-or-invalid) | +| `AWS authentication failed` | [Authentication](#aws-authentication-failed) | +| `Could not load AWS credentials` / `Could not load Google Cloud credentials` | [Authentication](#could-not-load-aws-or-google-cloud-credentials) | +| `AWS default-chain credential resolve timed out` | [Authentication](#aws-default-chain-credential-resolve-timed-out) | +| `Timed out after 60s waiting for AWS` | [Authentication](#bedrock-setup-verification-timed-out-waiting-for-aws) | +| `A request to AWS timed out. Check your network and proxy settings, then try again.` | [Authentication](#bedrock-setup-verification-timed-out-waiting-for-aws) | +| `Could not load the default credentials` on Google Cloud's Agent Platform | [Authentication](#could-not-load-aws-or-google-cloud-credentials) | +| `Unable to connect to API` | [Network](#unable-to-connect-to-api) | +| `Connection refused —` / `Can't reach the API server —` / `No internet route —` / `Couldn't connect through your proxy` / `Connection dropped`, each ending with an error code in parentheses | [Network](#unable-to-connect-to-api) | +| `Unable to connect to Anthropic services` during setup | [Network](#unable-to-connect-to-anthropic-services) | +| `Socket is closed` | [Network](#socket-is-closed) | +| `Waiting for API response · will retry in` | [Automatic retries](#automatic-retries), or [Network](#unable-to-connect-to-api) if it persists | +| `API returned an empty or malformed response` | [Network](#api-returned-an-empty-or-malformed-response) | +| `Streaming response ended before any complete data was received` | [Network](#streaming-response-ended-before-any-complete-data-was-received) | +| `Bedrock streaming response has content-type "..."; expected "application/vnd.amazon.eventstream"` | [Network](#bedrock-streaming-response-has-an-unexpected-content-type) | +| `SSL certificate verification failed` | [Network](#ssl-certificate-errors) | +| `SSL certificate error (...)` during login or startup | [Network](#ssl-certificate-errors) | +| `unable to get local issuer certificate` | [Network](#ssl-certificate-errors) | +| `403` with `x-deny-reason: host_not_allowed` in a cloud or routine session | [Network](#host-not-allowed-in-a-cloud-session) | +| `proxy refused the connection` | [Network](#the-proxy-refused-the-connection) | +| `403` with `This GraphQL query is not enabled for this session` in a cloud session | [GitHub proxy](/docs/en/cloud-environments#github-proxy) | +| `The cloud environments service returned an empty response` / `The cloud environments service returned a response in an unexpected format` | [Network](#the-cloud-environments-service-returned-an-empty-or-unexpected-response) | +| `Couldn't reconnect to your Remote Control session` | [Network](#couldnt-reconnect-to-your-remote-control-session) | +| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [Network](#sessions-ended-while-this-machine-was-offline) | +| `Couldn't share the transcript.` | [Network](#couldnt-share-the-transcript) | +| `Prompt is too long` / `Input is too long for requested model` | [Request errors](#prompt-is-too-long) | +| `Prompt is too long · automatic compaction failed:` | [Request errors](#prompt-is-too-long) | +| `Prompt is too long · this conversation is a single exchange` / `A single-exchange conversation cannot be compacted` | [Request errors](#prompt-is-too-long) | +| `Context limit reached · /compact or /clear to continue` | [Request errors](#prompt-is-too-long) | +| `Context limit reached · /clear to continue` | [Request errors](#prompt-is-too-long) | +| `capability_rejected: prompt_too_long` on a Claude apps gateway session | [Request errors](#prompt-is-too-long) | +| `upstream rejected the request` / `request too large for this upstream` on a Claude apps gateway session | [Upstream error messages](/docs/en/claude-apps-gateway-config#upstream-error-messages) | +| `upstream rate limit exceeded` on a Claude apps gateway session | [Upstream error messages](/docs/en/claude-apps-gateway-config#upstream-error-messages) | +| `all upstreams failed (N attempted)` on a Claude apps gateway session | [Upstream error messages](/docs/en/claude-apps-gateway-config#upstream-error-messages) | +| `Claude Code may not be enabled for your organization` after a Claude apps gateway sign-in | [Claude apps gateway troubleshooting](/docs/en/claude-apps-gateway-deploy#troubleshooting) | +| `Context exceeds the ...-token limit by ... tokens` in `/context` output | [Request errors](#context-exceeds-the-token-limit) | +| `Error during compaction: Conversation too long` | [Request errors](#error-during-compaction-conversation-too-long) | +| `Request too large` | [Request errors](#request-too-large) | +| `Request too large for the API's 32MB request limit` | [Request errors](#request-too-large) | +| `Image was too large` | [Request errors](#image-was-too-large) | +| `Unable to resize image` | [Request errors](#unable-to-resize-image) | +| `PDF too large` / `PDF is password protected` | [Request errors](#pdf-errors) | +| `Extra inputs are not permitted` | [Request errors](#extra-inputs-are-not-permitted) | +| `API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid` / `Property keys should match pattern` | [Request errors](#tool-input-schema-is-invalid) | +| `There's an issue with the selected model` | [Request errors](#theres-an-issue-with-the-selected-model) | +| `Model ... is not a recognized model id` | [Request errors](#model-is-not-a-recognized-model-id) | +| `Model ... not found` | [Request errors](#model-not-found) | +| `Claude Opus is not available with the Claude Pro plan` | [Request errors](#claude-opus-is-not-available-with-the-claude-pro-plan) | +| `Claude Code ... does not support this model; version ... or newer is required` | [Request errors](#claude-code-does-not-support-this-model) | +| `Claude Code ... is older than the minimum version required by your organization's policy` | [Request errors](#claude-code-does-not-support-this-model) | +| `Model ... is restricted by your organization's settings` | [Request errors](#model-is-restricted-by-your-organizations-settings) | +| `Model switch ... blocked by a PreModelSwitch hook` | [Request errors](#model-switch-was-blocked-by-a-premodelswitch-hook) | +| `couldn't save it as your default` / `couldn't confirm it was saved as your default` | [Request errors](#couldnt-save-it-as-your-default) | +| `thinking.type.enabled is not supported for this model` | [Request errors](#thinking-type-enabled-is-not-supported-for-this-model) | +| `Effort '' isn't available with thinking turned off on this model` | [Request errors](#effort-isnt-available-with-thinking-turned-off) | +| `effort '' is not supported when thinking is disabled` | [Request errors](#effort-isnt-available-with-thinking-turned-off) | +| `max_tokens must be greater than thinking.budget_tokens` | [Request errors](#thinking-budget-exceeds-output-limit) | +| `API Error: 400 due to tool use concurrency issues` | [Request errors](#tool-use-or-thinking-block-mismatch) | +| `[Unsupported tool content removed]` | [Request errors](#unsupported-tool-content-removed) | +| `server_tool_use.name: Input should be` on every turn of a resumed session | [Request errors](#unsupported-tool-content-removed) | +| ` can't help with this. Start a new session to continue` | [Request errors](#usage-policy-refusal) | +| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [Request errors](#usage-policy-refusal) | +| `'s safeguards flagged this message` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) | +| ` has safety measures that flagged this message for a cybersecurity topic` | [Request errors](#safety-measures-flagged-a-cybersecurity-topic) | +| `Installation was killed before it could finish (exit code 137)` | [Installation errors](#installation-was-killed-before-it-could-finish) | +| `The connection dropped while downloading the update` | [Installation errors](#the-connection-dropped-while-downloading-the-update) | +| `Download timed out: exceeded the total deadline` | [Installation errors](#the-connection-dropped-while-downloading-the-update) | +| `--bg and --print conflict` | [Command-line errors](#command-line-errors) | +| `Cloud sessions cannot be created from a --restricted session` | [Command-line errors](#cloud-sessions-cannot-be-created-from-a-restricted-session) | +| `Error: --json-schema is not a valid JSON Schema` | [Command-line errors](#command-line-errors) | +| `Error: Invalid --agents configuration:` | [Command-line errors](#invalid-agents-configuration) | +| `Error: Settings file exceeds the 2MiB limit` | [Command-line errors](#settings-file-exceeds-the-2mib-limit) | +| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [Command-line errors](#the-current-directory-no-longer-exists) | +| `couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded` | [Command-line errors](#directory-couldnt-be-resolved-to-a-real-location) | +| `Error: Workspace not trusted` when starting Remote Control | [Command-line errors](#workspace-not-trusted-when-starting-remote-control) | +| `` `` before `remote-control` is not carried over to the sessions Remote Control starts `` | [Command-line errors](#not-carried-over-to-the-sessions-remote-control-starts) | +| `` `claude import` is not yet available in this build `` | [Command-line errors](#claude-import-is-not-yet-available-in-this-build) | +| `Could not read Claude Code config` | [Command-line errors](#could-not-read-claude-code-config) | +| `Could not import : ` | [Command-line errors](#could-not-import-a-server-from-claude-desktop) | +| `Cannot add MCP server to scope: managed` | [Command-line errors](#cannot-add-mcp-server-to-the-managed-scope) | +| `is Anthropic-hosted and doesn't support local OAuth` | [Command-line errors](#anthropic-hosted-and-doesnt-support-local-oauth) | +| `Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes` | [Command-line errors](#cant-read-mcp-json) | +| `Server rejected the Authorization header minted by the configured headersHelper` | [Command-line errors](#server-rejected-the-authorization-header-minted-by-the-configured-headershelper) | +| `Error: MCP tool (passed via --permission-prompt-tool) not found` | [Command-line errors](#mcp-permission-prompt-tool-not-found) | +| `OAuth callback port is already in use — another process may be holding it` | [Command-line errors](#oauth-callback-port-is-already-in-use) | +| `Shell command failed for pattern "..."`, from `/security-review` or any skill that injects dynamic context | [Command-line errors](#security-review-fails-without-origin-head) | +| `Shell command permission check failed for pattern "..."`, from a skill that injects dynamic context | [Command-line errors](#security-review-fails-without-origin-head) | +| ``Skill requires bash (`shell: bash` in frontmatter) but Git Bash was not found`` | [Command-line errors](#security-review-fails-without-origin-head) | +| `Input must be provided either through stdin or as a prompt argument when using --print` | [Command-line errors](#input-must-be-provided-when-using-print) | +| `Error: Input contained only whitespace` | [Command-line errors](#input-contained-only-whitespace) | +| `Blank prompt — the message was only whitespace, so nothing was sent to the model.` | [Command-line errors](#input-contained-only-whitespace) | +| `Error: stream-json input carried over 256M characters with no newline` | [Command-line errors](#stream-json-input-carried-over-256m-characters-with-no-newline) | +| `Unknown command: /`, with or without a `Did you mean` suggestion | [Command-line errors](#unknown-command) | +| `Diff is too large for ultrareview` / `PR # is too large for ultrareview` | [Command-line errors](#diff-is-too-large-for-ultrareview) | +| `Could not find merge-base with ` | [Command-line errors](#could-not-find-merge-base-with-the-base-branch) | +| `Your checkout has no branches (detached HEAD only)` | [Command-line errors](#your-checkout-has-no-branches) | +| `Ultrareview clones / in the cloud with the GitHub account connected to your Claude account, and none is connected` | [Command-line errors](#no-github-account-is-connected-to-your-claude-account) | +| `Your connected GitHub account can't see /` | [Command-line errors](#your-connected-github-account-cant-see-the-repository) | +| `The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead` | [Command-line errors](#the-github-app-preflight-failed-transiently) | +| `Failed to resume the conversation` | [Command-line errors](#failed-to-resume-the-conversation) | +| `No conversation found with session ID: ` | [Command-line errors](#no-conversation-found-with-the-session-id) | +| `Cannot switch renderers in this session` | [Command-line errors](#cannot-switch-renderers-in-this-session) | +| `Cannot switch renderers while work is running in the background` | [Command-line errors](#cannot-switch-renderers-in-this-session) | +| `Couldn't read your Zed keymap` / `Couldn't back up your Zed keymap` / `Couldn't update your Zed keymap` | [Command-line errors](#terminal-setup-left-your-zed-keymap-unchanged) | +| `Your Zed keymap isn't a readable list of keybindings` | [Command-line errors](#terminal-setup-left-your-zed-keymap-unchanged) | +| `Skill usage reports are not available on this connection.` | [Command-line errors](#skill-usage-reports-are-not-available-on-this-connection) | +| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Plugin errors](#plugin-eval-is-currently-in-early-access) | +| `Marketplace "" is registered from an untrusted source` | [Plugin errors](#marketplace-is-registered-from-an-untrusted-source) | +| `references ${user_config.*} in a shell-form command` | [Plugin errors](#plugin-command-references-user-config) | +| `Monitor "" from plugin references ${user_config.*} in its command` | [Plugin errors](#plugin-command-references-user-config) | +| `headersHelper for MCP server '' references ${user_config.*}` | [Plugin errors](#plugin-command-references-user-config) | +| `Plugin archive integrity check failed` | [Plugin errors](#plugin-archive-integrity-check-failed) | +| `path escapes plugin directory` | [Plugin errors](#path-escapes-plugin-directory) | +| `path could not be checked` | [Plugin errors](#path-could-not-be-checked) | +| `its marketplace entry path does not stay inside the marketplace directory` | [Plugin errors](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) | +| `Plugin source path refused` | [Plugin errors](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) | +| `Failed to load marketplace configuration` | [Plugin errors](#failed-to-load-marketplace-configuration) | +| `Marketplace configuration file is corrupted` | [Plugin errors](#failed-to-load-marketplace-configuration) | +| `would be spawned with zero tools — refusing` | [Tool errors](#agent-would-be-spawned-with-zero-tools) | +| `File is covered by a Read deny rule in your permission settings` | [Tool errors](#file-is-covered-by-a-read-deny-rule) | +| `subagent_type is required: the general-purpose agent is not available in this session` | [Tool errors](#subagent-type-is-required) | +| `Error: this write left the memory index at MEMORY.md at ..., over its ... read limit` | [Tool errors](#memory-index-is-over-its-read-limit) | +| `pkill: refusing to run` | [Tool errors](#pkill-pattern-matches-the-claude-code-process) | +| `Failed to write to 's inbox — nothing was sent` | [Tool errors](#failed-to-write-to-a-teammate-inbox) | +| `Failed to write the plan approval request to the lead's inbox — plan not submitted` | [Tool errors](#failed-to-write-to-a-teammate-inbox) | +| `Message too large for cross-session delivery` | [Tool errors](#message-too-large-for-cross-session-delivery) | +| `Too many messages to this session just now` | [Tool errors](#too-many-messages-to-this-session-just-now) | +| `Refusing to send: reply target is a symlink` / `Refusing to send: cannot vet reply target` | [Tool errors](#refusing-to-send-a-cross-session-message) | +| `Refusing to send: connected endpoint is not the expected process` / `Refusing to send: connected endpoint identity could not be read` | [Tool errors](#refusing-to-send-a-cross-session-message) | +| `Refusing to send: connected endpoint is not owned by this user` / `Refusing to send: connected endpoint owner could not be read` | [Tool errors](#refusing-to-send-a-cross-session-message) | +| `Refusing to send: connected endpoint is a different process with the expected pid` | [Tool errors](#refusing-to-send-a-cross-session-message) | +| `Refusing to read : its symlink resolution changed after permission was checked` / `Refusing to search : its symlink resolution changed after permission was checked` | [Tool errors](#refusing-after-a-symlink-changed) | +| `Refusing to write : its parent-directory symlink resolution changed after permission was checked` / `Refusing to write : it is a symbolic link. Write to the link's target path instead` | [Tool errors](#refusing-after-a-symlink-changed) | +| `Refusing to search : a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search : it could not be opened` | [Tool errors](#refusing-after-a-symlink-changed) | +| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [Tool errors](#refusing-after-a-symlink-changed) | +| `task output swap refused (tasks dir moved or linked)` | [Tool errors](#task-output-swap-refused) | +| `Command killed: its output file was replaced or could no longer be verified` | [Tool errors](#task-output-swap-refused) | +| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [Tool errors](#the-source-file-is-not-valid-utf-8-text) | +| `the source file has the replacement character U+FFFD` | [Tool errors](#the-source-file-is-not-valid-utf-8-text) | +| `Can't open MCP settings while no terminal is attached to this background session` | [Background session errors](#commands-refused-in-a-background-session) | +| `Can't open MCP settings in a background session` | [Background session errors](#commands-refused-in-a-background-session) | +| `blocked because the path is spelled in a form that cannot be safely resolved` | [Background session errors](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) | +| `blocked because the path is network-shaped` | [Background session errors](#write-or-command-blocked-because-the-path-names-a-network-location) | +| `This session has no saved transcript` | [Background session errors](#this-session-has-no-saved-transcript) | +| `Can't open — this session is running in another terminal` | [Background session errors](#this-session-is-running-in-another-terminal) | +| `This conversation is already open in another running Claude session` | [Background session errors](#this-session-is-running-in-another-terminal) | +| `This session's saved conversation is no longer on disk` | [Background session errors](#this-sessions-saved-conversation-is-no-longer-on-disk) | +| `kept unpushed commits on ` | [Background session errors](#worktree-has-commits-that-are-not-pushed-anywhere) | +| `kept — worktree has commits that are not pushed anywhere` | [Background session errors](#worktree-has-commits-that-are-not-pushed-anywhere) | +| `terminal host process died — press Enter to restart` / `This session's terminal host process died` | [Background session errors](#terminal-host-process-died) | +| `Session isn't responding` / `Press enter again to restart this session — it isn't responding` | [Background session errors](#session-isnt-responding) | +| `Session was stopped while the respawn was in flight` | [Background session errors](#session-was-stopped-while-the-respawn-was-in-flight) | +| `This session was running agent '', which is no longer available` | [Background session errors](#session-agent-no-longer-available) | +| `CLAUDE_CODE_PROCESS_WRAPPER: launcher ...` | [Background session errors](#claude_code_process_wrapper-launcher-errors) | +| `EUNKNOWN: unknown error, uv_spawn` | [Background session errors](#eunknown-when-starting-a-background-session) | +| `EACCES: permission denied, posix_spawn` | [Background session errors](#eacces-when-starting-a-background-session) | +| `exited before it became reachable` | [Background session errors](#background-service-exited-before-it-became-reachable) | +| `Couldn't start a background session (working directory no longer exists or is not accessible: ...)` | [Background session errors](#working-directory-no-longer-exists-when-starting-a-background-session) | +| `Claude Code is being updated by npm on this machine (still not runnable after 2 min, ...)` | [Background session errors](#eacces-when-starting-a-background-session) | +| `Claude Code process exited with code N` | [Wrapper and IDE errors](#claude-code-process-exited-with-code-n) | +| `Could not locate the Claude CLI on PATH` | [Wrapper and IDE errors](#could-not-locate-the-claude-cli-on-path) | +| `Restored the code, but skipped N files` | [Rewind warnings and errors](#restored-the-code-but-skipped-files) | +| `No files were restored: N files failed (backup missing, or the file could not be updated)` | [Rewind warnings and errors](#no-files-were-restored) | +| `Transcript writes are failing (...)` | [Session saving warnings](#transcript-writes-are-failing) | +| `Transcript saving is off — CLAUDE_CODE_SKIP_PROMPT_HISTORY is set` | [Session saving warnings](#transcript-saving-is-off-skip-prompt-history) | +| `Transcript saving is off — inherited CLAUDE_CODE_CHILD_SESSION marker` | [Session saving warnings](#transcript-saving-is-off-child-session-marker) | +| `Claude Code's fullscreen renderer didn't finish starting last time on this machine` / `Claude Code's fullscreen renderer has repeatedly failed to start on this machine` | [Configuration warnings](#fullscreen-failed-start-notice) | +| `Claude Code exited after an unrecoverable interface error (...)` | [Configuration warnings](#exited-after-an-unrecoverable-interface-error) | +| `Agent descriptions are over the 15.0k-token limit` | [Configuration warnings](#agent-descriptions-are-over-the-15000-token-limit) | +| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Configuration warnings](#workspace-has-not-been-trusted) | +| `is a network path, which cannot be added as a working directory` | [Configuration warnings](#working-directory-is-a-network-path) | +| `Remote managed settings failed to load ()` | [Configuration warnings](#remote-managed-settings-failed-to-load) | +| `Managed settings were not approved; exiting without applying them.` | [Configuration warnings](#managed-settings-were-not-approved) | +| `MCP server is blocked by enterprise managed policy` | [Configuration warnings](#mcp-server-is-blocked-by-enterprise-managed-policy) | +| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [Configuration warnings](#managed-settings-document-could-not-be-parsed) | +| `Managed settings drop-in directory could not be read` | [Configuration warnings](#managed-settings-document-could-not-be-parsed) | +| `"crossSessionInbound" must be one of "accept", "hold", "refuse"` | [Configuration warnings](#crosssessioninbound-must-be-one-of-accept-hold-refuse) | +| `headersHelper not run — this workspace has no persisted trust` | [Configuration warnings](#headershelper-not-run) | +| `Invalid permission rule "..." was skipped: Malformed Tool(content) rule` | [Configuration warnings](#malformed-tool-content-rule) | +| `... is not matched by file permission checks` | [Configuration warnings](#is-not-matched-by-file-permission-checks) | +| `... has a wildcard before the rest of the command` | [Configuration warnings](#has-a-wildcard-before-the-rest-of-the-command) | +| `CLAUDE_CODE_DISABLE_1M_CONTEXT is set, but the 200K limit isn't enforced` | [Configuration warnings](#the-200k-limit-isnt-enforced) | +| `[claude-code:unrecognized_model]` | [Configuration warnings](#unrecognized-model-id-on-a-request) | +| `Stale sandbox mask files left by a killed session` | [Configuration warnings](#stale-sandbox-mask-files-left-by-a-killed-session) | +| Responses seem lower quality than usual | [Response quality](#responses-seem-lower-quality-than-usual) | ## Automatic retries @@ -554,7 +556,7 @@ Usage counts against the session and weekly allowances at the same time. A singl * Run `/usage-credits` to buy additional usage on Pro and Max, or to request it from your admin on Team and Enterprise. See [usage credits for paid plans](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) for how this is billed. * To upgrade your plan for higher base limits, see [claude.com/pricing](https://claude.com/pricing) -To watch your remaining allowance before you hit the limit, add the `rate_limits` fields to a [custom status line](/docs/en/statusline#rate-limit-usage), or in the Desktop app click the [usage ring](/docs/en/desktop#check-usage) next to the model picker. +Before a window runs out, Claude Code can warn you that you've used most of it, with a message such as `You've used 85% of your session limit · resets 3:45pm`. To watch your remaining allowance continuously, add the `rate_limits` fields to a [custom status line](/docs/en/statusline#rate-limit-usage), or in the Desktop app click the [usage ring](/docs/en/desktop#check-usage) next to the model picker. ### Usage credits required for 1M context @@ -628,6 +630,36 @@ The trailing sentence names where to check service health and varies by provider * For Anthropic API keys, see the [rate limits reference](https://platform.claude.com/docs/en/api/rate-limits) for how tiers work and how to set per-workspace caps * Reduce concurrency: lower [`CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY`](/docs/en/env-vars), avoid running many parallel subagents, or switch to a smaller model with `/model` for high-volume scripted runs +

+ You've hit your monthly spend limit +

+ +Your plan's included usage can't cover this request, and the [usage credits](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) that would otherwise pay for it have reached a spend limit. That happens when one of your plan's usage windows has run out, or when the request is one that only usage credits pay for, such as a request to a model that [bills to usage credits](/docs/en/model-config#fable-and-usage-credits). The message names whose limit blocked you. The text after the `·` says how to get that limit increased, and varies with your plan and whether you manage billing: + +```text theme={null} +You've hit your monthly spend limit · raise it at claude.ai/settings/usage +You've hit your individual spend limit · ask your admin for a higher limit +You've hit your org's monthly spend limit · visit claude.ai/admin-settings/usage to raise it +You've hit your team's shared budget · ask your admin to raise it at claude.ai/admin-settings/usage +You've hit your channel's monthly spend limit · an org owner or channel manager can raise it in the channel's Claude settings +``` + +`team's shared budget` is a pooled budget an admin assigned to a group you belong to; the message doesn't name the group. `channel's monthly spend limit` is the budget of the one Slack channel the session runs in, so your organization may still have budget outside it. + +When one of your plan's windows is what ran out, the message also says when that window resets, for example `· your session limit resets 3:45pm`, and access returns then without anyone raising the limit. On organizations with usage-based billing, the message says `usage limit` in place of `spend limit`, as in `You've hit your individual usage limit`. + +Before v2.1.239, the message didn't name the plan window's reset time. Before v2.1.268, a group's pooled budget produced the `individual spend limit` message instead of `team's shared budget`. + +If you connect through a Claude apps gateway and see lowercase `spend limit reached`, that is your gateway operator's cap instead; see [Spend limit reached](#spend-limit-reached). + +**What to do:** + +* On Pro and Max, increase your monthly spend limit in [**Settings > Usage**](https://claude.ai/settings/usage) on claude.ai, or run `/usage-credits` +* On Team and Enterprise, increase the limit in [**Admin settings > Usage**](https://claude.ai/admin-settings/usage) if you manage billing, or ask an admin to. `/usage-credits` sends that request to your admin for you +* For a channel's limit, ask an org owner or the channel's manager to raise it on claude.ai. See [Per-channel limits](https://claude.com/docs/claude-tag/admins/set-spend-limit#per-channel-limits) in the Claude Tag documentation +* If the message names a reset time for your plan's window, you can wait for it instead +* Run `/usage` to see your plan's windows and when each resets +

Spend limit reached

@@ -2074,7 +2106,7 @@ The usual cause is a proxy or gateway that closes a long transfer before it fini ## Command-line errors -These errors come from the `claude` command line and its subcommands, from a command name you submit at the prompt, and from commands such as `/security-review` that gather context by running shell commands before their prompt runs. So do errors from `/tui`, which relaunches the CLI. +These errors come from the `claude` command line and its subcommands, from a command name you submit at the prompt, and from commands such as `/security-review` that gather context by running shell commands before their prompt runs. They also come from `/tui`, which relaunches the CLI. ### Conflict between --bg and --print @@ -2688,6 +2720,27 @@ Skill usage reports are not available on this connection. These errors come from [plugin](/docs/en/plugins) and [marketplace](/docs/en/plugin-marketplaces) configuration. For plugin problems that don't produce one of the messages on this page, such as a marketplace URL that doesn't load or a plugin that installs but doesn't appear, see [Plugin troubleshooting](/docs/en/discover-plugins#troubleshooting). +

+ plugin eval is currently in early access +

+ +You ran [`claude plugin eval`](/docs/en/plugin-evals) or `claude plugin eval init` and it exited 1 with one of these messages before doing anything: + +```text theme={null} +`plugin eval` is currently in early access +``` + +```text theme={null} +`plugin eval` is currently unavailable +``` + +The first message means your build is older than v2.1.269, the first version where the command is generally available. The second means Anthropic has switched the command off server-side; nothing on your machine turns it back on. + +**What to do:** + +* Run `claude --version`, then `claude update`, and run the command again in a fresh session. See the [requirements for plugin evals](/docs/en/plugin-evals#requirements) +* If you see the second message on a current build, try again later after another `claude update` + ### Marketplace is registered from an untrusted source The marketplace is registered under a name that is [reserved for official Anthropic marketplaces](/docs/en/plugin-marketplaces#marketplace-schema), but its registered source isn't an `anthropics` GitHub repository. Claude Code re-checks reserved names every time it loads or refreshes a marketplace, so the marketplace and the plugins installed from it stop loading. Before v2.1.205, the name was checked only when the marketplace was added, so an entry registered before its name became reserved kept loading. @@ -2826,7 +2879,7 @@ The plugin's [marketplace entry](/docs/en/plugin-marketplaces#plugin-entries) de `claude plugin install` reports the refusal like this: ```text theme={null} -Cannot install my-plugin@my-marketplace: its marketplace entry path does not stay inside the marketplace directory (an absolute, climbing, network-shaped or link-traversing entry, an entry of a fetched marketplace that resolves outside its tree — or a relative entry in a url-catalog marketplace, which has no local directory) +Cannot install my-plugin@my-marketplace: its marketplace entry path does not stay inside the marketplace directory (an absolute, climbing, network-shaped, backslash-containing or link-traversing entry, an entry of a fetched marketplace that resolves or opens outside its tree — or a relative entry in a url-catalog marketplace, which has no local directory) ``` When an already-installed plugin's entry fails the same check, `claude plugin list` shows the plugin as `failed to load` with: diff --git a/content/en/docs/claude-code/fast-mode.md b/content/en/docs/claude-code/fast-mode.md index 36be7511f..efd079098 100644 --- a/content/en/docs/claude-code/fast-mode.md +++ b/content/en/docs/claude-code/fast-mode.md @@ -109,7 +109,7 @@ You can combine both: use fast mode with a lower [effort level](/docs/en/model-c Fast mode requires all of the following: * **Anthropic API or subscription only**: fast mode is available through the Anthropic Console API and for Claude subscription plans using usage credits. It is not available on Amazon Bedrock, Google Cloud's Agent Platform, Microsoft Foundry, or Claude Platform on AWS. Console organizations must also have [fast mode access provisioned](#enable-fast-mode-for-your-organization). -* **Usage credits turned on for subscription plans**: on a Pro, Max, Team, or Enterprise plan, your account must have [usage credits](/docs/en/costs#add-usage-credits-to-your-subscription) turned on, which allows billing beyond your plan's included usage. Until they're on, `/fast` shows "Fast mode requires usage credits · /usage-credits to turn them on". How you turn them on depends on your plan: +* **Usage credits turned on for subscription plans**: on a Pro, Max, Team, or Enterprise plan, your account must have [usage credits](/docs/en/costs#add-usage-credits-to-your-subscription) turned on, which allows billing beyond your plan's included usage. Until they're on, `/fast` reports "Fast mode requires usage credits". How you turn them on depends on your plan: * On Pro and Max, turn them on in the **Usage credits** section of [**Settings > Usage**](https://claude.ai/settings/usage) on claude.ai, or run `/usage-credits` to open that page. * On Team and Enterprise, a member with billing access turns them on for the organization at [**Admin settings > Usage**](https://claude.ai/admin-settings/usage), and a member without it runs `/usage-credits` to send the organization's admins a request. diff --git a/content/en/docs/claude-code/google-vertex-ai.md b/content/en/docs/claude-code/google-vertex-ai.md index bcb5f84e0..9cc417b85 100644 --- a/content/en/docs/claude-code/google-vertex-ai.md +++ b/content/en/docs/claude-code/google-vertex-ai.md @@ -104,7 +104,7 @@ If you have Google Cloud credentials and want to start using Claude Code through
- Choose how you authenticate to Google Cloud: Application Default Credentials from `gcloud`, a service account key file, or credentials already in your environment. The wizard detects your project and region, verifies which Claude models your project can invoke, and lets you pin them. It saves the result to the `env` block of your [user settings file](/docs/en/settings), so you don't need to export environment variables yourself. + Choose how you authenticate to Google Cloud: Application Default Credentials from `gcloud`, a service account key file, or credentials already in your environment. The wizard asks for your project and region, verifies which Claude models your project can invoke, and lets you pin them. It saves the result to the `env` block of your [user settings file](/docs/en/settings), so you don't need to export environment variables yourself. diff --git a/content/en/docs/claude-code/hooks-guide.md b/content/en/docs/claude-code/hooks-guide.md index 6b9af4c6f..c4055221e 100644 --- a/content/en/docs/claude-code/hooks-guide.md +++ b/content/en/docs/claude-code/hooks-guide.md @@ -1019,7 +1019,10 @@ If your hook legitimately needs more than eight iterations to converge, raise th ### Hook JSON has no effect -Your hook prints valid JSON, but the decision doesn't take effect and no error appears in the transcript. +Your hook prints valid JSON, but the decision doesn't take effect and no error appears in the transcript. Check which cause applies: + +* **Extra output before the JSON**: something else writes to stdout first, usually an unconditional `echo` in your shell profile, so the output no longer starts with `{` and Claude Code doesn't parse it as JSON. The cause and fix follow this list. +* **A field at the wrong level**: compare each field's placement against the [JSON output](/docs/en/hooks#json-output) format. For example, `permissionDecision` belongs inside `hookSpecificOutput`, not at the top level. When Claude Code runs a shell-form command hook, one without `args`, it spawns `sh -c` on macOS and Linux, Git Bash on Windows, or PowerShell when Git Bash isn't installed by default. This shell is non-interactive, but Git Bash and some configurations, such as `BASH_ENV` pointing at `~/.bashrc`, still source your profile. If that profile contains unconditional `echo` statements, the output gets prepended to your hook's JSON: @@ -1039,6 +1042,8 @@ fi The `$-` variable contains shell flags, and `i` means interactive. Hooks run in non-interactive shells, so the echo is skipped. +When your hook returns `permissionDecision` or `additionalContext` at the top level instead of inside `hookSpecificOutput`, the JSON still parses, and Claude Code ignores the misplaced fields without reporting an error. To see which fields it ignored, start Claude Code with `claude --debug` and search the [debug log](/docs/en/hooks#debug-hooks) for `Hook JSON output had unrecognized keys`. + ### Debug techniques Press `Ctrl+O` to open the transcript view to check the outcome of a hook run: diff --git a/content/en/docs/claude-code/iam.md b/content/en/docs/claude-code/iam.md index 4dc62b648..03ceaf87c 100644 --- a/content/en/docs/claude-code/iam.md +++ b/content/en/docs/claude-code/iam.md @@ -156,12 +156,7 @@ Developers can log in from several paths: the terminal `/login` flow, the [VS Co * **`claude setup-token` and `/install-github-app`**: enforce only `forceLoginMethod`, so they can mint a token in a different organization * **[Gateway](/docs/en/claude-apps-gateway) sign-in**: selected by `forceLoginMethod: "gateway"` rather than restricted by it, and doesn't authenticate against an Anthropic organization, so `forceLoginOrgUUID` doesn't apply; use your gateway identity provider to restrict access -Deploy the keys through your device management tooling. [Server-managed settings](/docs/en/server-managed-settings) reach only accounts that are already authenticated into your organization, so they can't redirect a developer's first login. If your organization distributes server-managed settings as well, set the keys in both places: managed-settings sources [don't merge](/docs/en/server-managed-settings#settings-precedence), and cached server-managed settings replace the device-managed file, apart from two kinds of keys that still fill in from a losing source: - -* **The `env` block**: [merges per key](/docs/en/server-managed-settings#per-key-exceptions-across-managed-sources) in Claude Code v2.1.223 or later -* **The [cross-source lock keys](/docs/en/server-managed-settings#per-key-exceptions-across-managed-sources)**: honored from any admin source - -`forceLoginMethod` and `forceLoginOrgUUID` are neither, so keep them in both places. +Deploy the keys through your device management tooling. [Server-managed settings](/docs/en/server-managed-settings) reach only accounts that are already authenticated into your organization, so they can't redirect a developer's first login. If your organization distributes server-managed settings as well, set the keys in both places: managed-settings sources [don't merge](/docs/en/server-managed-settings#settings-precedence), and cached server-managed settings replace the device-managed file apart from a few [per-key exceptions](/docs/en/server-managed-settings#per-key-exceptions-across-managed-sources). `forceLoginOrgUUID` and the `"claudeai"` and `"console"` values of `forceLoginMethod` aren't among those exceptions, so keep them in both places. The keys also decide whether a session that doesn't use a login credential can start. See [`forceLoginOrgUUID`](/docs/en/settings-reference#forceloginorguuid) in the settings reference for the full behavior. diff --git a/content/en/docs/claude-code/managed-settings.md b/content/en/docs/claude-code/managed-settings.md index 358c1251e..085e8fd9d 100644 --- a/content/en/docs/claude-code/managed-settings.md +++ b/content/en/docs/claude-code/managed-settings.md @@ -131,7 +131,7 @@ When two files set the same key, Claude Code combines them by these rules: When your organization delivers more than one managed source to the same machine, the [`managedSourcesBehavior`](/docs/en/settings-reference#managedsourcesbehavior) key decides what Claude Code does with the others: -* **`"first-wins"`, the default**: Claude Code uses the highest-ranked source that delivers at least one policy key and ignores the rest rather than merging them, apart from the few keys in [Keys read from every admin source](#keys-read-from-every-admin-source). Claude Code shows no warning for the sources it skips; `/status` [names the source it used and the ones it skipped](#read-the-source-in-/status). +* **`"first-wins"`, the default**: Claude Code uses the highest-ranked source that delivers at least one policy key and ignores the rest rather than merging them, apart from the keys in [Keys read from every admin source](#keys-read-from-every-admin-source). Claude Code shows no warning for the sources it skips; `/status` [names the source it used and the ones it skipped](#read-the-source-in-/status). * **`"merge"`**: Claude Code applies every admin source that delivers a policy key and combines them by kind of key: on most keys the higher-ranked source's value applies, lists union, and locks take the strictest value. [Compose every managed source](#compose-every-managed-source) says where to set the key and how each kind of key combines. Requires Claude Code v2.1.242 or later. Both settings rank the sources the same way. Two terms recur in this section: @@ -172,6 +172,8 @@ The cross-source keys include: * [`forceRemoteSettingsRefresh`](/docs/en/server-managed-settings) * `env`, merged per variable across the admin sources: each variable comes from the highest-priority source that defines it, so lower sources fill in variables the higher ones leave unset. A few variables follow their own rules; [Per-key exceptions across managed sources](/docs/en/server-managed-settings#per-key-exceptions-across-managed-sources) names each one. Requires Claude Code v2.1.223 or later. Before v2.1.223, Claude Code applied the selected source's whole `env` block only +The [gateway login keys](#choose-a-delivery-mechanism), [`forceLoginGatewayUrl`](/docs/en/settings-reference#forcelogingatewayurl) and the `"gateway"` value of [`forceLoginMethod`](/docs/en/settings-reference#forceloginmethod), follow a separate rule. Claude Code never reads them from server-managed settings, so while server-managed settings are the selected source, the highest-ranked admin source on the machine that carries a policy key still supplies them. A value in an admin source ranked below that one, or in the HKCU registry, is ignored. + ### Compose every managed source To have Claude Code apply every admin source your organization delivers, set [`managedSourcesBehavior`](/docs/en/settings-reference#managedsourcesbehavior) to `"merge"` in the highest-ranked source you deploy. Claude Code reads the key only from the highest-ranked source that carries either the key or a policy key, so a lower source can't opt itself into merging with the source above it, and a machine that never receives server-managed settings needs the key in its MDM profile too. The user-writable HKCU registry never merges with another source. Requires Claude Code v2.1.242 or later. diff --git a/content/en/docs/claude-code/model-config.md b/content/en/docs/claude-code/model-config.md index cbf41a3ca..16b76f3ee 100644 --- a/content/en/docs/claude-code/model-config.md +++ b/content/en/docs/claude-code/model-config.md @@ -124,9 +124,11 @@ You can configure your model in several ways, listed in order of priority: `/model` saves your choice as the default for new sessions by writing the `model` field in your user settings. In the picker: * `Enter`: switch model and save as your default -* `s`: switch model for this session only +* `s`: switch model for this session only and leave your default unchanged. To use a different key, rebind [`modelPicker:thisSessionOnly`](/docs/en/keybindings#model-picker-actions) -Typing `/model ` directly behaves like `Enter`. If you set a model with `/model` in [non-interactive mode](/docs/en/headless), with the `-p` flag, your choice applies to the current session only and isn't saved as your default; `/model` in that mode requires Claude Code v2.1.205 or later. Project and managed settings still take precedence and reapply on the next launch. An [organization default model](#organization-default-model) that your admin has configured to override user selection also reapplies on the next launch. +Typing `/model ` directly behaves like `Enter`. To switch for this session only, open the picker with `/model` and press `s` on the model's row. + +If you set a model with `/model` in [non-interactive mode](/docs/en/headless), with the `-p` flag, your choice applies to the current session only and isn't saved as your default; `/model` in that mode requires Claude Code v2.1.205 or later. Project and managed settings still take precedence and reapply on the next launch. An [organization default model](#organization-default-model) that your admin has configured to override user selection also reapplies on the next launch. In v2.1.144 through v2.1.152, `/model` applied to the current session only and `d` in the picker saved a default. diff --git a/content/en/docs/claude-code/monitoring-usage.md b/content/en/docs/claude-code/monitoring-usage.md index 368054de0..aaaa23ca8 100644 --- a/content/en/docs/claude-code/monitoring-usage.md +++ b/content/en/docs/claude-code/monitoring-usage.md @@ -135,13 +135,14 @@ For `grpc`, the OpenTelemetry SDK reads the standard OTLP variables directly, so The following environment variables control which attributes are included in metrics to manage cardinality: -| Environment Variable | Description | Default Value | Example to Disable | -| ------------------------------------------ | ------------------------------------------------------------------------------- | ------------- | ------------------ | -| `OTEL_METRICS_INCLUDE_SESSION_ID` | Include session.id attribute in metrics | `true` | `false` | -| `OTEL_METRICS_INCLUDE_VERSION` | Include app.version attribute in metrics | `false` | `true` | -| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Include user.account\_uuid and user.account\_id attributes in metrics | `true` | `false` | -| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Include app.entrypoint attribute in metrics | `false` | `true` | -| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Include keys from `OTEL_RESOURCE_ATTRIBUTES` as attributes on metric datapoints | `true` | `false` | +| Environment Variable | Description | Default Value | Example to Disable | +| ------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------- | ------------- | ------------------ | +| `OTEL_METRICS_INCLUDE_SESSION_ID` | Include session.id attribute in metrics | `true` | `false` | +| `OTEL_METRICS_INCLUDE_VERSION` | Include app.version attribute in metrics | `false` | `true` | +| `OTEL_METRICS_INCLUDE_ACCOUNT_UUID` | Include user.account\_uuid and user.account\_id attributes in metrics | `true` | `false` | +| `OTEL_METRICS_INCLUDE_ENTRYPOINT` | Include app.entrypoint attribute in metrics | `false` | `true` | +| `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES` | Include keys from `OTEL_RESOURCE_ATTRIBUTES` as attributes on metric datapoints | `true` | `false` | +| `OTEL_METRICS_INCLUDE_REPOSITORY` | Include `vcs.*` [repository identity attributes](#repository-attributes) on metrics and events. Requires Claude Code v2.1.269 or later | `false` | `true` | Lower cardinality generally means better performance and lower storage costs but less granular data for analysis. @@ -360,7 +361,7 @@ These custom attributes are included in all metrics and events, allowing you to: * Create team-specific dashboards * Set up alerts for specific teams -Claude Code attaches these values as attributes on every metric datapoint and event record, in addition to sending them in the OTLP resource block. Because most metrics backends expose datapoint attributes as queryable labels, you can group and filter metrics by your custom keys directly. Custom keys never override the [standard attributes](#standard-attributes) such as `user.id` or `session.id`: when a key collides, Claude Code keeps the built-in value. +Claude Code attaches these values as attributes on every metric datapoint and event record, in addition to sending them in the OTLP resource block. Because most metrics backends expose datapoint attributes as queryable labels, you can group and filter metrics by your custom keys directly. Except for the `vcs.*` [repository attributes](#repository-attributes), custom keys never override the [standard attributes](#standard-attributes) such as `user.id` or `session.id`: when a key collides, Claude Code keeps the built-in value. Each custom key becomes a label on every metric series, so high-cardinality values increase storage cost in your metrics backend. To send custom attributes in the resource block only and omit them from datapoint labels, set `OTEL_METRICS_INCLUDE_RESOURCE_ATTRIBUTES=false`. See [Metrics cardinality control](#metrics-cardinality-control). @@ -462,18 +463,19 @@ export OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4317 All metrics and events share these standard attributes: -| Attribute | Description | Controlled By | -| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------- | -| `session.id` | Unique session identifier | `OTEL_METRICS_INCLUDE_SESSION_ID` (default: true) | -| `app.version` | Current Claude Code version | `OTEL_METRICS_INCLUDE_VERSION` (default: false) | -| `app.entrypoint` | How the session was launched, such as `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, or `claude-vscode` | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (default: false) | -| `organization.id` | Organization UUID (when authenticated) | Always included when available | -| `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, 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) | +| Attribute | Description | Controlled By | +| --------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | +| `session.id` | Unique session identifier | `OTEL_METRICS_INCLUDE_SESSION_ID` (default: true) | +| `app.version` | Current Claude Code version | `OTEL_METRICS_INCLUDE_VERSION` (default: false) | +| `app.entrypoint` | How the session was launched, such as `cli`, `sdk-cli`, `sdk-ts`, `sdk-py`, or `claude-vscode` | `OTEL_METRICS_INCLUDE_ENTRYPOINT` (default: false) | +| `organization.id` | Organization UUID (when authenticated) | Always included when available | +| `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, 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) | +| `vcs.repository.url.full`, `vcs.owner.name`, `vcs.repository.name`, `vcs.provider.name` | The session repository's identity, derived from its `origin` remote. See [Repository attributes](#repository-attributes) | `OTEL_METRICS_INCLUDE_REPOSITORY` (default: false). Requires Claude Code v2.1.269 or later | When Claude Code is signed in to a [Claude apps gateway](/docs/en/claude-apps-gateway), the CLI stamps exports with the authenticated identity from the gateway session: `user.id` is the IdP subject rather than an anonymous installation identifier, `user.email` is the signed-in email, and `user.groups` carries IdP group membership as a comma-separated string. Each export also carries `identity.source: gateway-oidc`. The gateway identity is applied last, so `user.*` and `identity.*` keys set through `OTEL_RESOURCE_ATTRIBUTES` are ignored on gateway sessions. @@ -484,6 +486,25 @@ Events additionally include the following attributes. These are never attached t * `workflow.run_id`: run identifier, prefixed `wf_`, on the API and tool events emitted by agents that belong to a [Workflow](/docs/en/workflows) tool run. Filtering events by one `workflow.run_id` reconstructs that run's API requests and tool results. The identifier covers the agents the workflow script spawns and any agents those spawn in turn, such as skill invocations. It matches the run identifier reported in the Workflow tool result. Absent on all other events. Requires Claude Code v2.1.202 or later * `workflow.name`: name of the workflow, its script's `meta.name`, emitted alongside `workflow.run_id`. Built-in workflow names appear verbatim when the run executes the unmodified built-in script. User-authored names, including edited copies of built-in scripts, are replaced with `custom` unless `OTEL_LOG_TOOL_DETAILS=1` is set. Requires Claude Code v2.1.202 or later +#### Repository attributes + +Set `OTEL_METRICS_INCLUDE_REPOSITORY=true` to tag metrics and events with the identity of the session's repository, so a shared collector can attribute usage per repository. Requires Claude Code v2.1.269 or later. + +Claude Code derives these attributes once per session from the repository's `origin` remote. The HTTPS and SSH remotes of one repository produce identical values: + +| Attribute | Value | +| ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | +| `vcs.repository.url.full` | The repository's browser URL without `.git`, such as `https://github.com/example-org/example-repo` | +| `vcs.owner.name` | The owner or group path, such as `example-org`; omitted when the remote path has a single segment | +| `vcs.repository.name` | The bare repository name, such as `example-repo` | +| `vcs.provider.name` | `github`, `gitlab`, `bitbucket`, or `gitea` when Claude Code recognizes the remote's host or URL shape as one of those providers; omitted otherwise | + +Values are lowercased, and credentials, query strings, and fragments from the remote URL never appear in them. The attributes are omitted when the session has no `origin` remote, when the remote isn't URL-shaped, or when the only enclosing repository is your home directory. + +A `vcs.*` key you declare in [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) replaces the derived value for that key. If you declare `vcs.repository.url.full`, Claude Code never reads the remote and reports only the keys you declare. + +The attributes flow only to your own exporters; Anthropic's telemetry drops every `vcs.*` key. + ### Metrics Claude Code exports the following metrics. The Unit column shows the OpenTelemetry unit string attached to each metric; count metrics carry none. @@ -675,8 +696,10 @@ Logged when a tool completes execution. Not emitted if the tool call was rejecte * `tool_input_size_bytes`: Size of the JSON-serialized tool input in bytes * `tool_result_size_bytes`: Size of the tool result in bytes * `mcp_server_scope`: MCP server scope identifier (for MCP tools) +* `vcs.ref.head.revision`, `vcs.ref.head.name`, `vcs.ref.head.type` (when `OTEL_LOG_TOOL_DETAILS=1`): the commit identity of a successful `git commit` run by the Bash or PowerShell tool. `vcs.ref.head.revision` is the commit SHA, `vcs.ref.head.name` is the branch it was committed on, and `vcs.ref.head.type` is `branch`. The name and type are omitted when the commit was made on a detached HEAD. Requires Claude Code v2.1.269 or later * `tool_parameters` (when `OTEL_LOG_TOOL_DETAILS=1`): JSON string containing tool-specific parameters. For Claude Desktop's built-in servers, in sessions Claude Desktop owns, the `mcp_server_name`/`mcp_tool_name` pair is included even with the flag off, the same host-authored exception as the [Tool decision event](#tool-decision-event), requiring Claude Code v2.1.214 or later. The parameters vary by tool: - * For Bash tool: includes `bash_command`, `full_command`, `timeout`, `description`, `dangerouslyDisableSandbox`, and `git_commit_id` (the commit SHA, when a `git commit` command succeeds). The desktop app's workspace bash tool also reports `tool_name` as `Bash`, but includes only `bash_command`, `full_command`, and `timeout` + * For Bash tool: includes `bash_command`, `full_command`, `timeout`, `description`, and `dangerouslyDisableSandbox`, plus `git_commit_id` and `git_branch` when a `git commit` command succeeds. `git_commit_id` is the full commit SHA when the commit is the HEAD of the session's working directory, and git's abbreviated SHA otherwise. `git_branch` is the branch it was committed on, omitted on a detached HEAD + * For the desktop app's workspace Bash tool, which also reports `tool_name` as `Bash`: includes only `bash_command`, `full_command`, and `timeout` * For MCP tools: includes `mcp_server_name`, `mcp_tool_name` * For Skill tool: includes `skill_name` * For Agent tool or legacy Task tool: includes `subagent_type` diff --git a/content/en/docs/claude-code/permissions.md b/content/en/docs/claude-code/permissions.md index c507c7102..9145069fb 100644 --- a/content/en/docs/claude-code/permissions.md +++ b/content/en/docs/claude-code/permissions.md @@ -421,9 +421,9 @@ A deny or ask rule whose path isn't usable as a gitignore pattern still guards t When Claude accesses a symlink, permission rules check two paths: the symlink itself and the file it resolves to. Allow and deny rules treat that pair differently: allow rules fall back to prompting you, while deny rules block outright. * **Allow rules**: apply only when both the symlink path and its target match. A symlink inside an allowed directory that points outside it still prompts you. -* **Deny rules**: apply when either the symlink path or its target matches. A symlink that points to a denied file is itself denied. +* **Deny rules**: apply when either the symlink path or its target matches. A symlink that points to a denied file is itself denied. For example, with `Read(./project/**)` allowed and `Read(~/.ssh/**)` denied, a symlink at `./project/key` pointing to `~/.ssh/id_rsa` is blocked: the target fails the allow rule and matches the deny rule. -For example, with `Read(./project/**)` allowed and `Read(~/.ssh/**)` denied, a symlink at `./project/key` pointing to `~/.ssh/id_rsa` is blocked: the target fails the allow rule and matches the deny rule. +On macOS and Linux, a deny or ask rule written through a symlinked directory with a `//`, `~/`, or `/` pattern also applies at the directory's real location. For example, on macOS, where `/etc` resolves to `/private/etc`, `Read(//etc/**)` blocks `/private/etc/hosts` too. Before v2.1.268, a deny or ask rule written through a symlinked directory didn't apply to a path given by its real location. When a tool opens an approved file, Claude Code [confirms the path still resolves to the location the permission check approved](/docs/en/errors#refusing-after-a-symlink-changed). @@ -452,6 +452,10 @@ Each row shows what a rule does in the `allow` list and in the `deny` list: | `WebFetch` | Claude fetches without prompting you. Doesn't change which hosts sandboxed commands can reach. | Claude Code removes the `WebFetch` tool, so Claude can't fetch at all. Doesn't change which hosts sandboxed commands can reach. | | `WebFetch(domain:*)` | Claude fetches without prompting you, and sandboxed commands can reach any host. | Claude Code keeps the tool and refuses each fetch, and sandboxed commands can't reach any host. | +The two forms also differ on reads of [artifacts](/docs/en/artifacts), the pages the Artifact tool publishes on claude.ai. A bare `WebFetch` deny or ask rule doesn't apply to those reads. A `domain:` rule covering `claude.ai` or the `*.claudeusercontent.com` content host, such as `WebFetch(domain:claude.ai)` or `WebFetch(domain:*)`, denies each read or prompts before it. An [`Artifact` rule](/docs/en/artifacts#disable-artifacts) does the same. + +When a rule blocks a read, the denial names the rule. Before v2.1.268, a bare `WebFetch` deny rule blocked every artifact read, and a bare ask rule prompted before each one. + To let Claude fetch freely while keeping the sandbox allowlist as it is, use the bare form. This `settings.json` does that: ```json theme={null} diff --git a/content/en/docs/claude-code/plugin-evals.md b/content/en/docs/claude-code/plugin-evals.md new file mode 100644 index 000000000..b10f3b1b0 --- /dev/null +++ b/content/en/docs/claude-code/plugin-evals.md @@ -0,0 +1,629 @@ +> ## Documentation Index +> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt +> Use this file to discover all available pages before exploring further. + +# Test plugins with evals + +> Write eval cases for your Claude Code plugin, run them with claude plugin eval, grade the results, compare against a no-plugin baseline, and gate CI on the score. + +`claude plugin eval` runs your [plugin](/docs/en/plugins) against a suite of test cases and scores the results. Each case is a realistic prompt plus one or more graders. A grader is a pass/fail check on what Claude produced, such as a regex over the reply, whether a particular tool was called, or a rubric that a second model judges the reply against. + +You don't have to write the suite manually. `claude plugin eval init` asks you about your plugin, proposes the cases and graders, tries them, and writes the files. You can also ask Claude to do the same from a session you already have open. + +Use evals to measure how reliably your plugin steers Claude to the right outcome, to catch regressions when you change the plugin or a new model ships, and to see what the plugin contributes compared with no plugin at all. + +This page is for plugin and skill authors who have a working plugin and want to test its behavior, and for teams that gate plugin changes in CI. Its case format is separate from the `evals/evals.json` file the [skill-creator plugin](/docs/en/skills#run-evals-with-skill-creator) uses. To create a plugin, see [Create plugins](/docs/en/plugins); to check a plugin's files for syntax and schema errors rather than its behavior, use [`claude plugin validate`](/docs/en/plugins-reference#plugin-validate). + + + Every eval run and every judge grader is a real model call on your account, counted against your plan's usage or your API bill, so check the [requirements](#requirements) first. Then [create your first eval suite](#create-your-first-eval-suite), or go to [Run evals in CI](#run-evals-in-ci) if you already have one. + + +## Requirements + +To run plugin evals you need: + +* Claude Code v2.1.269 or later. Run `claude --version` to check and `claude update` to upgrade. +* A plugin directory with a `plugin.json` or `.claude-plugin/plugin.json` manifest, or a [skills-directory plugin](/docs/en/plugins-reference#skills-directory-plugins). +* The same authentication and model provider your normal Claude Code sessions use. Eval runs, judge-scored graders, and `claude plugin eval init` call the model with your credentials, so they count against your plan's usage limits or your API bill. When the command reports a cost, the figure is a [list-price estimate](/docs/en/costs) of those calls. + +## How an eval run works + +An eval suite lives in a directory called `evals/` inside your plugin, laid out as [Write and refine cases](#write-and-refine-cases) shows. Each case is its own subdirectory with a [prompt](#set-run-limits-and-tools-in-prompt-md) and one or more [graders](#grade-the-result). The prompt is something a person using your plugin might type, such as a request one of its skills should handle. + +### What happens in a run + +For each run of a case, Claude Code starts a fresh, [isolated](#how-runs-are-isolated) [non-interactive session](/docs/en/headless) with only your plugin loaded, sends the prompt, and lets Claude work until it finishes or hits the case's turn or time limit. Each grader then checks the final reply, the transcript, or a file Claude created, and passes or fails. + +### How a case is scored + +One run of a non-deterministic agent tells you little, so each case runs three times by default. A run's score is the fraction of its graders that passed, weighted if you set weights, and the case's score is the mean across its runs. A case passes when its score meets the [`--threshold`](#command-options), `1.0` by default. In model calls, a suite makes roughly cases × runs agent runs with the plugin and as many again for the [no-plugin baseline](#the-no-plugin-baseline), plus three short judge calls per `llm` or `baseline` grader per run. + +### The no-plugin baseline + +A high score on its own doesn't tell you the plugin helped, because Claude might do as well without it. To separate the two, each case's runs are repeated with no plugin loaded by default, and you get two scores, `WITH` and `W/OUT`. Their difference, `Δ`, is what the plugin contributed. If a case scores 1.0 both with and without the plugin, the plugin isn't what made it pass. The two sets of runs are called the with-arm and the without-arm; [Compare against a no-plugin baseline](#compare-against-a-no-plugin-baseline) covers how graders are scored across them and how to turn the baseline off. + +## Create your first eval suite + +This walkthrough writes one case for your own plugin, runs it, and reads the result. Before you start, make sure you have: + +* Claude Code v2.1.269 or later and the other [requirements](#requirements) +* A terminal open at your plugin's root directory, the one containing `plugin.json` or `.claude-plugin/plugin.json` +* One skill in the plugin you want to test, and a request a user would type that should trigger it + + + + From the plugin root, run: + + ```bash theme={null} + claude plugin eval init + ``` + + If Claude Code doesn't already trust this directory it first asks `Trust this plugin directory?`; answer `y`. An interactive Claude Code session then opens. Claude reads your plugin and asks you what a good result looks like, proposes prompts that should and shouldn't trigger the plugin, designs graders for each, pilots them once to check they behave, and writes one case directory per prompt under `evals/`, each named after its prompt. When Claude tells you the suite is ready, exit that session with `/exit` or Ctrl+D to return to your shell. + + If you already have a Claude Code session open at the plugin root, you can instead ask Claude there to run `claude plugin eval init`. Claude runs the command and then asks you the same questions in that conversation. + + If you'd rather write a case yourself to see exactly what the files contain, follow [Write a case manually](#write-a-case-manually) and come back here to run it. + + + + Back at your shell in the plugin root, run every case under `evals/`: + + ```bash theme={null} + claude plugin eval . + ``` + + You already trusted this directory during step 1, so the run starts immediately. If you wrote the case manually instead, the run first asks `Trust this plugin directory? [y/N]`; answer `y`. [What a run can access](#security) explains what you're agreeing to. + + Each case runs three times with your plugin and three times without it, so one case is six runs. A progress line prints as each run finishes, with that run's score and each grader's verdict. + + + + When the suite finishes you see a summary table, followed by where the report went: + + ```text theme={null} + CASE WITH W/OUT Δ RUNS COST NOTES + first-case 1.00 0.33 +0.67 6 $0.41 + + 1 case(s) · mean Δ +0.67 · 74s · $0.41 + Report: /Users/you/my-plugin/evals/results/2026-09-10T17-02-11-482Z/report.html + Published: https://claude.ai/... · keep local next time with --no-publish + ``` + + `WITH` is the case's score with your plugin loaded, `W/OUT` is the score without it, and a positive `Δ` means the plugin raised the score. `COST` is a list-price estimate of the model calls, and `NOTES` shows the highest-weight failing grader's explanation, or the run's error, from the with-arm. + + + + Open the `Published:` URL, or the `Report:` path when no `Published:` line appears, to see each grader's verdict and explanation for every run, and for `llm` graders the judge's votes and the excerpt it judged. The `Published:` line appears only when your account can [publish reports](#html-report). + + The most common first finding is a `Δ` near zero with the case's `tool_used: Skill` grader failing, which means Claude isn't choosing your skill on natural phrasing. Adjust the skill's [`description`](/docs/en/skills#frontmatter-reference), run `claude plugin eval .` again, and compare. + + To iterate on one case cheaply, run a single arm once. A single run is noisy, so confirm any change at the default three runs before you trust it. With one arm the table shows `SCORE` and `PASS%` columns instead of `WITH`, `W/OUT`, and `Δ`: + + ```bash theme={null} + claude plugin eval . --case --runs 1 --ablation none + ``` + + Replace `` with one of the directory names under `evals/`. + + + +

+ Write and refine cases +

+ +The cases `claude plugin eval init` writes are plain files you can open, change, and add to. A case is a directory under the plugin's eval directory that contains a `prompt.md`, a `case.yaml`, or both. To group cases, nest them under a directory that isn't itself a case; anything inside a case directory, such as `graders/` and fixture files, belongs to that case. + +This is the layout `claude plugin eval init` writes and the one to use for new suites. The [eval suite reference](#eval-suite-reference) has the complete tree, including mocks and results: + +```text theme={null} +my-plugin/ +├── .claude-plugin/plugin.json +├── skills/... +└── evals/ + ├── first-case/ + │ ├── prompt.md # frontmatter: case fields; body: the prompt + │ ├── graders/ + │ │ ├── criteria.md # frontmatter: type + options; body: rubric or pattern + │ │ └── skill-fired.md + │ └── case.yaml # optional: only for context.* fields + ├── ignores-unrelated-request/ + │ └── ... + └── results/ # written by each run; add to .gitignore +``` + +### Write a case manually + +Having Claude write the cases with `claude plugin eval init` is the recommended path. To write one yourself instead, start from a blank template. The following command writes a case named `first-case` with a placeholder `prompt.md` and one placeholder grader, and runs nothing: + +```bash theme={null} +claude plugin eval init --bare first-case +``` + +```text theme={null} +evals/first-case/ +├── prompt.md # the prompt sent to Claude, plus run limits +└── graders/ + └── criteria.md # one grader: how to score the result +``` + +In `prompt.md` you write the message Claude receives in each run, and set the run's limits and the tools the case may use in its frontmatter. Open `evals/first-case/prompt.md` and replace the placeholder body with a request one of your skills should handle, phrased the way a user would type it rather than naming the skill. This example is for a skill that drafts commit messages; use your own request: + +```markdown theme={null} +--- +max_turns: 10 +allowed_tools: [Read, Glob, Grep, Skill] +--- + +Write me a commit message for this change: I renamed getUser to fetchUser and updated the three call sites. +``` + +Each run starts in an empty working directory, so put whatever the task needs in the prompt itself, or [set up the workspace](#add-setup-or-history-with-case-yaml) first. The [full list of frontmatter fields](#prompt-md-fields) covers the model, timeout, tags, and environment variables. + +Each file under `graders/` is one check applied after the run. Open `evals/first-case/graders/criteria.md` and replace the placeholder with a rubric for the judge model, written as concrete PASS and FAIL conditions: + +```markdown theme={null} +--- +type: llm +--- + +PASS if . +FAIL if . +``` + +Then add a second grader that checks whether your skill is what produced the answer. Create `evals/first-case/graders/skill-fired.md`, replacing `your-skill-name` with the `name` from your skill's `SKILL.md`: + +```markdown theme={null} +--- +type: tool_used +tool: Skill +input_match: '"skill"\s*:\s*"(?:[\w-]+:)?your-skill-name"' +--- +``` + +This passes when Claude invoked that skill at least once during the run, including by its namespaced `plugin-name:skill-name` form. [Grader types](#grader-types) lists the other checks available, such as matching a regex or confirming a file was created. + +With both files saved, run the case the way the [quickstart](#create-your-first-eval-suite) does, with `claude plugin eval .` from the plugin root. + +

+ Set run limits and tools in prompt.md +

+ +Set a case's `max_turns`, `timeout_seconds`, `model`, `tags`, and the `allowed_tools` it may use in `prompt.md` frontmatter; the [prompt.md frontmatter](#prompt-md-fields) reference lists every field and its default. Claude receives the body exactly as you wrote it. `@path` mentions in it aren't expanded into file attachments, so if Claude needs to read a file, grant a tool for it in `allowed_tools`. + +

+ Choose and weight graders +

+ +A grader's frontmatter sets its `type`, and optionally a `weight` that makes it count for more of the run's score and an [`arm`](#compare-against-a-no-plugin-baseline) that controls how it's scored against the baseline. Of the six types, `regex`, `tool_used`, `tool_order`, and `file_exists` are computed from the transcript and files and cost nothing, while `llm` and `baseline` call a judge model and add to the run's cost. + +There are no custom-code graders. [Grader types](#grader-types) lists each type's options and pass condition, and [what a grader can look at](#what-a-grader-can-look-at) lists the values `target` and `focus` accept. + +The judge for `llm` and `baseline` graders is a small fast model by default. Pass `--judge-model sonnet` or a full model ID to use a stronger one for nuanced rubrics. + +#### Choose graders that give a stable signal + +An `llm` grader asks a model for a verdict, so its answer can differ between runs, and it differs more the longer the text it has to read. These habits keep a suite's scores steady enough to trust: + +* For long output such as a generated file, grade it with a `regex` grader over the file's contents, which checks the whole file the same way every time. Keep `llm` graders for short outputs, with rubrics written as concrete PASS and FAIL conditions. +* Give each case one grader on the result, such as the final message or a produced file, and one on how Claude got there, such as `tool_used` or `tool_order`. Together they tell you both whether the answer was right and whether your plugin produced it. +* If a case's `tool_used: Skill` grader passes but `Δ` is negative, suspect the judge before the plugin. A small judge model can mark a correct answer wrong because it's formatted differently from what the rubric describes. Re-run with `--judge-model sonnet`, and tighten the rubric so formatting doesn't decide the verdict. +* To check that a build or test passed inside the run, have the prompt ask Claude to run it and write the outcome to a file, grade that file, and assert the command ran with a `tool_used` grader whose `input_match` names the command. + +

+ Score against the no-plugin baseline +

+ +When a plugin is under test, each case runs in two arms by default. The with-arm is its runs with the plugin loaded, and the without-arm is the same number of runs with no plugin at all. The summary and report show both scores and `Δ`, the with-arm score minus the without-arm score. Pass `--ablation none` to run only the with-arm, which halves the cost when you don't need the comparison, such as while iterating on graders. + +In a two-arm run, some graders are reported with `scored: false`. A check like "the skill was invoked" can never pass without the plugin, so counting it would push the without-arm toward zero and inflate `Δ`. To keep the two arms comparable, Claude Code excludes such graders from the score in both arms and reports them in the with-arm as pass/fail indicators only. That includes: + +* Every `tool_used` grader whose `tool` is `Skill` +* Any grader you mark `arm: with-only` + +If every grader in a case is one of these, they're scored normally instead, since there would be nothing left to score. Set `arm: both` on a grader to score it in both arms regardless, which is what you want for a "must not invoke the skill" check with `min: 0` and `max: 0`. Under `--ablation none` nothing is excluded, so the same suite can produce a different absolute score in the two modes. + +### Use a different eval directory + +If `evals/` is already taken by another tool, keep the suite in a different directory. You can record that directory in the plugin's `plugin.json` so every run and every collaborator uses it, or pass it on the command line for a single run: + +* **In `plugin.json`**: add `"experimental": { "evals": "quality/evals" }`. +* **On the command line**: pass `--eval-dir quality/evals` to both `claude plugin eval` and `claude plugin eval init`. + +If you set both, the flag's directory is used. Give a relative path of plain directory names such as `qa` or `quality/evals`. An absolute path or one containing `..` isn't accepted: as a flag value it's an error, while an unusable manifest value prints a `Warning:` line and the run uses `evals/` instead. Cases, results, and `init` output all move to that directory. + +## Set up fixtures and mocks + +A case can need more than a prompt: files or a git repository in the workspace, an earlier conversation to continue, or answers from the MCP servers your plugin talks to. Each of those is set up beside the case so runs stay repeatable. + +

+ Seed the workspace or conversation +

+ +Each run starts in an empty workspace. When a case needs more than the prompt, add a `case.yaml` beside `prompt.md` with a `context` block. + +To create fixture files or a git repository first, write a Bash script in the case directory and name it in `context.scaffold_script`. The script runs as you, outside the agent's sandbox, and only when you pass `--scaffold`, so pass that flag only for suites you or your organization wrote. To continue an earlier conversation, save the transcript as a `.jsonl` file and name it in `context.history_file`, and the case's prompt becomes the next user turn. To let Claude read fixture directories in the case during the run, list them in `context.add_dirs`. + +A `case.yaml` also needs `schema_version: "1.1"` and `name`; the [case.yaml fields](#case-yaml-fields) reference has the full list. + +This `case.yaml` seeds a workspace from a script and lets Claude read fixtures from a `resources/` directory: + +```yaml theme={null} +schema_version: "1.1" +name: changelog-from-diff +tags: [smoke] +context: + scaffold_script: fixture.sh + add_dirs: [resources] +``` + +

+ Mock MCP servers +

+ +You can evaluate a plugin whose skills call MCP tools without the real service behind them. Put one Markdown file per tool under `evals/mocks//.md` for the whole suite, or under a case's own `mocks/` directory for one case, where `` is the server's name in your plugin's [MCP configuration](/docs/en/plugins-reference#mcp-servers). + +A run never starts your plugin's real MCP servers unless you ask. Claude Code registers a stand-in under each server's own name. Tools with a mock file answer from it and are allowed without an `--allow-tools` grant, and a tool with no mock file isn't available to Claude. A server with no mocks at all appears in the case's `mocked:` progress line as `plugin__[not started: no mock]`. + +The file's body is what the tool returns to Claude. This mock stands in for a `create_issue` tool on a server named `tracker`, checks the input Claude sends, and echoes the title back. Save it as `evals/mocks/tracker/create_issue.md`: + +```markdown theme={null} +--- +expect: + title: string + priority: [low, medium, high] +--- + +Created issue #4821: {{input.title}} +``` + +Insert fields from the call's input with `{{input.}}`, and the contents of a fixture file beside the mock with `{{file:fixtures/{input.}.json}}`. The `expect:` block guards the input. If a call violates it, the run aborts with score 0 and records why, so a case can assert what your plugin asked the server to do. Set `error: true` to return the body as a tool error instead, or `type: agent` to have a small model answer as the server from instructions in the body. The [mock file reference](#mock-files) lists every key and the `_server.md` and `_tools.json` files. + +To grade the calls themselves, point a grader at `target: mock_calls`. + +To run against the plugin's real MCP servers instead, pass one of these flags. Either way those processes run as you, outside the run's sandbox, and their tools need an [`--allow-tools` grant](#grant-tools): + +* **`--allow-real-servers`**: start the real process for each server you haven't mocked, and keep answering mocked tools from their files +* **`--mocks off`**: ignore `mocks/` entirely and start every server the plugin declares + +#### Replay agent mock answers + +A `type: agent` mock answers with a call to the [`--judge-model`](#command-options), so its output varies between runs and changes if you change the judge. When a run completes without an error or abort, Claude Code saves each answer an agent mock gave under the results directory in `mock-recordings/`. + +Open `ADOPT.txt` there to see each recording and the `.replay//` directory to copy it into, beside the mock that produced it. After you copy a recording there, later runs answer the identical call from it with no model call. Commit `mocks/.replay/` with the rest of `mocks/` so CI runs are repeatable. + +## Run evals + +Once a suite exists, `claude plugin eval` runs it. You choose which plugin and cases run with the target argument, grant any tools the cases need beyond the read-only set with `--allow-tools`, and control run count, models, cost, and output with the other options. + +### Choose what to evaluate + +Most of the time you run `claude plugin eval .` from the plugin root, which runs every case in the suite with the plugin you're standing in loaded. To run a single case file, or to evaluate a plugin you installed rather than one you're developing, pass a different target: + +| Target | What runs | +| :-------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| A plugin's root directory, such as `.` | Every case under its eval directory, with that plugin loaded | +| A single `prompt.md` or `case.yaml` file | That case, with its enclosing plugin loaded | +| An installed plugin by name, `name` or `name@marketplace` | The cases in the installed copy's eval directory, with the installed copy loaded. Results are written under `./evals/results/` in your current directory, or `.//results/` with `--eval-dir` | +| `name@skills-dir` | The same, for a [skills-directory plugin](/docs/en/plugins-reference#skills-directory-plugins) | +| Omitted | The current directory as a path | + +Add `--case ` to filter by case name and `--tag ` to keep cases with any of the given tags. Put the target before `--tag`, `--allow-tools`, and `--json`. The first two take a list and `--json` takes an optional path, so each of them reads a target that follows as its own value. + +### Grant tools + +Runs never stop to ask for permission. Built-in tools that need a grant you didn't give, such as `Bash`, `Write`, `Edit`, `WebFetch`, and `WebSearch`, are removed from the session, so Claude can't call them at all. The allowlist is the read-only tools the case lists in `allowed_tools`, from `Read`, `Glob`, `Grep`, `NotebookRead`, `Skill`, `Agent`, `TodoWrite`, and the task tools `TaskCreate`, `TaskGet`, `TaskList`, `TaskUpdate`, `TaskStop`, and `TaskOutput`, plus whatever you grant with `--allow-tools`, which applies to every case in the run. To let cases use `Bash`, `Write`, `Edit`, `WebFetch`, or `WebSearch`, grant them yourself: + +```bash theme={null} +claude plugin eval . --allow-tools Write Edit "Bash(npm test *)" +``` + +When a case asked for a tool you didn't grant, the run lists it on stderr as `not granted`. Tools on a [mocked](#mock-mcp-servers) MCP server need no grant. Tools on a real plugin MCP server need both the server started, with `--allow-real-servers` or `--mocks off`, and a grant by name, such as `--allow-tools "mcp__plugin_my-plugin_github__*"`; a plugin's MCP tools are named `mcp__plugin____`. + +When you grant `Bash` in any form, every command runs under Claude Code's [OS-level sandbox](/docs/en/sandboxing). Writes are confined to the run's workspace, your home directory and Claude Code configuration are unreadable, and network access is limited to domains you grant with `--allow-tools "WebFetch(domain:example.com)"`. If you grant Bash or PowerShell on a machine with no sandbox backend, Claude Code refuses each run rather than running it unconfined, and the case shows a run error and usually scores 0. Native Windows has no backend, so run shell-granting suites under WSL2; on Linux, install `bubblewrap` and `socat` first. See the [sandboxing prerequisites](/docs/en/sandboxing). + +### Command options + +This table covers the options for run count, models, scoring, cost, tool grants, mocks, and output. Run `claude plugin eval --help` for the complete list, which also includes `--case`, `--tag`, `--eval-dir`, `--no-scaffold`, `--report`, and `--verbose`. + +| Option | Default | Effect | +| :------------------------- | :----------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `--runs ` | Each case's `runs`, else 3 | Runs per case per arm | +| `-j`, `--concurrency ` | `1` | Run up to this many agent runs at once, from 1 to 8. They share your account's rate limit, so this shortens wall-clock time rather than raising throughput past that limit. Results keep case order | +| `--model ` | Each case's `model`, else `ANTHROPIC_MODEL` if set, else Claude Code's default | Model for the agent under test. Pin it in CI so a model rollout isn't mistaken for a plugin regression | +| `--judge-model ` | A small fast model | Model for `llm` and `baseline` graders | +| `--ablation ` | `with-without` when a plugin resolves, else `none` | Whether to also run each case without the plugin to measure what it adds. `none` runs one arm; `with-without` adds the no-plugin baseline | +| `--threshold <0..1>` | `1.0` | A case passes when its with-arm score is at least this. Any case below it makes the command exit 1 | +| `--max-cost-usd ` | No ceiling | A ceiling on the run's list-price cost estimate, not on plan usage. Checked before each run starts. Once spent, nothing further starts; runs already in flight finish, so spend can pass the ceiling by those runs. If any run is left unstarted, the command exits 2 with partial results | +| `--allow-tools ` | None | Grant tools beyond the read-only set. See [Grant tools](#grant-tools) | +| `--scaffold` | Off | Run each case's [`scaffold_script`](#add-setup-or-history-with-case-yaml) | +| `--trust-plugin` | Off | Skip the first-run trust prompt for a plugin whose code and suite you'd run yourself. Pass it in CI so the job is never refused by or left waiting at the prompt. See [What a run can access](#security) | +| `--mocks ` | `record` | `record` answers MCP tool calls from [mocks](#mock-mcp-servers), doesn't start the plugin's real servers, and saves agent-mock answers for replay. `off` ignores mocks and starts the plugin's real MCP servers | +| `--allow-real-servers` | Off | With `--mocks record`, also start the plugin's real MCP servers for servers that have no mock | +| `--json [path]` | Off | Print the [result document](#json-result) to stdout, or write it to a path ending in `.json`. The run is quiet: no progress lines or summary table | +| `--output-dir ` | `/results//` | Where `aggregate-result.json` and `report.html` go | +| `--no-publish` | | Keep the HTML report local. See [HTML report](#html-report) | +| `--publish-report` | | Publish the report even where it would stay local by default, such as a run a Claude Code session started | +| `--keep-temp` | Off | Keep every run's sandbox directory and print its path, for debugging what Claude produced | + +

+ Run evals in CI +

+ +In your CI job, run the suite with `--json` to write the result for archiving, and fail the build on the exit code. Pass `--trust-plugin` so the job never waits at the [first-run trust prompt](#security), pin both models so scores are comparable over time, keep the report local, and set a cost ceiling as an upper limit: + +```bash theme={null} +claude plugin eval . \ + --trust-plugin \ + --json results.json \ + --threshold 0.8 \ + --model claude-sonnet-5 \ + --judge-model claude-haiku-4-5 \ + --no-publish \ + --max-cost-usd 20 +``` + +The job's exit code tells you what happened: + +| Exit code | Meaning | +| :-------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| 0 | Every case scored at or above `--threshold` and every case file loaded | +| 1 | A case scored below the threshold, a case file failed to load, no cases were found, a run couldn't be started, the plugin directory isn't trusted and `--trust-plugin` wasn't passed, or an option was invalid | +| 2 | Partial run: the `--max-cost-usd` ceiling was hit, or your credential was rejected before or at the first run. `results.json` is still written with `partial: true` and the reason | +| 130 | Interrupted. Partial results are written | +| 143 | Terminated, such as by a CI timeout | + +Problems writing or publishing the HTML report never change the exit code. To see why a case scored low, run it locally without `--json` so the per-run progress and grader lines print. + +A CI runner needs a Claude Code install and [credentials in the environment](/docs/en/authentication) such as `ANTHROPIC_API_KEY`. Without `--trust-plugin`, a job whose checkout directory Claude Code doesn't already trust is refused with exit 1 when it has no terminal, or waits at the prompt when the runner allocates one. `claude plugin eval init` needs a terminal to ask you its questions; in CI, run `claude plugin eval init --bare ` to get the blank template. + +To keep costs predictable, give quick every-change suites only graders that don't call a judge, use `--ablation none` where you don't need `Δ`, and leave `partial: true` documents and runs with `skippedPaidGraders` out of any trend you chart. + +## Read the results + +Every run with at least one case writes a `results//` directory inside the eval directory, containing `aggregate-result.json` and `report.html`. For a path target that's under the plugin; for a plugin you named, it's under your current directory, as the [target table](#choose-what-to-evaluate) shows. The summary table, the JSON, and the report all render the same result data. + +### HTML report + +`report.html` is a single self-contained file that makes no external requests, so you can attach it to a CI job or open it from disk. This example is the top of a report for a three-case suite run with `--threshold 0.8`; the cost shown is a list-price estimate and varies with the model and the number of cases: + +Top of an eval report: a verdict line reading "Plugin effect: +33.3 pts vs baseline, improved 2, flat 1, regressed 0 of 3 cases", five summary tiles for suite score, ablation delta, baseline score, cases passing the threshold, and perfect runs, then the first case with its delta, score bar, and one run whose two graders both show pass + +Read it from the top down: + +* **The verdict line and tiles** answer whether the plugin helped across the whole suite. Suite score is the mean of the per-case with-plugin scores, Ablation Δ is how far that sits above or below the baseline score, and Cases counts how many met the threshold. Perfect runs is the share of with-plugin runs where every grader passed. +* **Each case card** shows the case's own `Δ` and with-plugin score, with a tick on the bar at the threshold. A case whose `Δ` is negative gets a red left edge, so regressions stand out when you scroll. +* **Inside a case**, the with-plugin runs come first and the baseline runs after. Each run lists its graders with a pass or fail chip. A failed grader is already expanded with its explanation, and an `llm` grader also shows the judge's votes and the evidence it was shown, which is where you find out why a run scored low. Graders that don't count toward the score, such as `tool_used: Skill`, carry a `plugin-fired indicator` badge. +* **Prompt and Graders**, below the runs, show the case's prompt and each grader's rubric or pattern, so someone reading the report without the suite can see what was asked and what counted as good. + +If you're signed in with a claude.ai subscription and [artifacts](/docs/en/artifacts) are available for your account, Claude Code also publishes the report as a private artifact and prints `Published: `. Pass `--no-publish` to keep it local. If no `Published:` line appears, such as with API-key authentication, the local file is the report. + +A run that a Claude Code session started, such as when you ask Claude to run the suite for you, also stays local, and its `Report:` line says `kept local`. Add `--publish-report` to that command to publish it. + +### JSON result + +`aggregate-result.json`, and `--json` output, is a versioned document with `schemaVersion: 1` for CI scripts to parse. Field names are camelCase and new fields are added without renaming existing ones, so write your script to ignore fields it doesn't recognize. + +These are the fields a gating script usually reads. The document also carries the suite configuration, every grader definition, and per-run grader results with explanations and evidence: + +| Field | Meaning | +| :------------------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `partial`, `partialReason` | `true` with `cost_ceiling`, `interrupted`, or `auth_failed` when the suite didn't finish. Leave partial results out of trend charts | +| `aggregates.overallScore` | Mean case score across the suite | +| `aggregates.casesPassed`, `aggregates.casesTotal` | Cases at or above `--threshold`, and the total | +| `aggregates.meanDelta` | Mean `Δ` across cases, under the two-arm mode | +| `cases[].name` | Case name | +| `cases[].aggregates.score` | Mean with-arm run score for the case | +| `cases[].aggregates.delta` | With-arm score minus without-arm score. Omitted when the arms aren't comparable | +| `cases[].arms.with[].error` | `null`, or why a run ended abnormally, such as `timed out after 300s`. A run that started but ended badly is still graded on what it produced, so a non-null error doesn't imply score 0 | +| `cases[].arms.with[].aborted` | Present when a [mock](#mock-mcp-servers)'s `expect:` or `abort_when` stopped the run, with `server`, `tool`, and `reason`. The run scores 0 and `error` stays `null` | +| `cases[].arms.with[].skippedPaidGraders` | `true` when the cost ceiling skipped this run's judge graders, so its score isn't comparable | +| `costUsd`, `durationSeconds`, `claudeVersion` | Estimated cost at list price including judge calls, wall-clock seconds, and the Claude Code version that ran the suite | + +

+ What a run can access +

+ +`claude plugin eval` loads the target plugin's skills and hooks and runs its eval suite on your machine, as you. Pointing it at a plugin is the same trust decision as `claude --plugin-dir`, so only evaluate plugins you trust. The isolation described in this section limits what the agent under test can reach; it isn't a boundary against the plugin's own code, and a suite that passes says nothing about whether the plugin is safe. + +### Trust the plugin directory + +The first time you run `claude plugin eval` against a directory, Claude Code asks `Trust this plugin directory?` before it loads anything from it, unless you already accepted the trust prompt there in an interactive `claude` session. Inside a git repository, answering yes trusts the whole repository, for interactive sessions too. When stdin or stdout isn't a terminal, or under `--json`, the run can't ask and is refused with exit 1; pass `--trust-plugin` to assert the trust yourself, only for a plugin you'd run on your own machine. A target you name rather than give as a path, meaning an installed plugin or a skills-directory plugin, skips the prompt. + +Some parts of the plugin and suite run only when you pass their flag for that run: a case's [`scaffold_script`](#add-setup-or-history-with-case-yaml) with `--scaffold`, [tools beyond the read-only set](#grant-tools) with `--allow-tools`, and the plugin's [real MCP servers](#mock-mcp-servers) with `--allow-real-servers` or `--mocks off`. A case's `allowed_tools` and a skill's own `allowed-tools` frontmatter can't widen any of them. When the plugin ships hooks you didn't write, or you start its real MCP servers, treat its scores as advisory unless you ran it in an isolated environment such as a container or CI runner, since hooks and servers run outside the agent's sandbox and could touch the files the graders read. + +

+ How runs are isolated +

+ +Each run gets a throwaway home directory, working directory, and Claude Code configuration, and the agent under test runs there as a `claude -p` child process with only your plugin loaded. Keep these consequences in mind when you write cases: + +* **Nothing personal or project-level loads.** Your user settings, hooks, `CLAUDE.md` files, MCP servers, other installed plugins, memory, and skills are absent, and no project-scoped `.claude/` or `.mcp.json` above the sandbox is read. Most of your shell environment is withheld too; only an [allowlist](#prompt-md-fields) and `EVAL_*` variables reach the run. If the plugin needs setup, ship it in the plugin, create it in a `scaffold_script`, or pass `EVAL_*` variables. +* **Managed policy can still restrict a run.** Restrictions in [managed settings](/docs/en/managed-settings) an administrator deployed to the machine apply inside a run, so results on a managed machine can differ from an unmanaged one by that policy. +* **The Artifact tool is off.** A skill that publishes an [artifact](/docs/en/artifacts) can be graded only on what it produces before that step. +* **The case definitions are hidden from the agent.** A run can't read the eval directory, so Claude can't see the case's prompt, its graders, or sibling cases. +* **No network sandbox outside shell commands.** Shell commands you grant run under the sandbox's network rules. A `WebFetch(domain:…)` grant reaches that domain directly, and the plugin's own hooks and any real MCP servers you start can reach any host. + +## Eval suite reference + +Everything an eval suite can contain lives under the plugin's eval directory, `evals/` unless you [configured another](#use-a-different-eval-directory). This tree shows every file `claude plugin eval` reads or writes there; only `prompt.md` or `case.yaml` is required for a case to exist: + +```text theme={null} +evals/ +├── / # one directory per case; nest under a non-case directory to group +│ ├── prompt.md # frontmatter: case and run fields; body: the prompt +│ ├── case.yaml # optional: context.* fields, or the whole case in one file +│ ├── graders/ +│ │ └── .md # one grader per file; frontmatter: type and options; body: rubric +│ ├── mocks/ # optional: mocks for this case only, same layout as below +│ └── +├── mocks/ # optional: suite-wide MCP mocks +│ ├── / +│ │ ├── .md # one mocked tool; body: the tool result +│ │ ├── _server.md # optional: one agent that answers several tools +│ │ ├── _tools.json # optional: saved tools/list response for real descriptions and schemas +│ │ └── fixtures/ # files inserted with {{file:fixtures/...}} +│ └── .replay// # adopted agent-mock recordings, answered without a model call +└── results// # written by each run; add results/ to .gitignore + ├── aggregate-result.json + ├── report.html + └── mock-recordings/ # agent-mock answers from clean runs, with ADOPT.txt +``` + +

+ prompt.md frontmatter +

+ +`prompt.md` frontmatter accepts these fields. An unknown key is an error: + +| Field | Default | Purpose | +| :--------------------- | :--------------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `schema_version` | `"1.1"`, set for you | Case format version. Cases written as `prompt.md` get it automatically, so you rarely set it | +| `name` | The directory name | Case name. `--case` globs match it and the report keys on it | +| `description` | | For humans. Not used at run time | +| `tags` | `[]` | Labels for `--tag` filtering. A case runs if any of its tags matches | +| `plugins` | The nearest enclosing plugin | Plugin directories under test, relative to the case directory. Set `plugins: ["../.."]` when auto-detection doesn't find your plugin; see [the plugin didn't load](#the-baseline-arm-shows-no-plugin-or-delta-is-zero) | +| `runs` | `3` | Runs per arm, 1 to 50. `--runs` overrides it | +| `expected_outcome` | | For humans. Not used at run time | +| `model` | The child session's default | Model for the agent under test. `--model` overrides it | +| `max_turns` | `10` | Turn cap, up to 200. Hitting it is recorded as a run error and usually lowers the score, so set it generously | +| `timeout_seconds` | `300` | Wall-clock cap per run, up to 3600 | +| `allowed_tools` | `[]` | Tools the case wants, such as `[Read, Glob, Grep, Skill]`. Read-only tools are granted when listed here; for anything else, see [Grant tools](#grant-tools) | +| `append_system_prompt` | | Text appended to the child session's system prompt | +| `env` | `{}` | Extra environment variables for the child session. Keys must match `EVAL_[A-Z0-9_]*`; any other key fails the run. The run inherits only an allowlist from your shell: basics such as `PATH` and locale, proxy and certificate settings, the variables that select and authenticate your model provider, most `ANTHROPIC_*` and `CLAUDE_CODE_*` configuration, and `EVAL_*`. To hand the plugin anything else, such as a toolchain setting, export it as an `EVAL_*` variable | + +

+ case.yaml fields +

+ +`case.yaml` describes the same case in YAML and adds the fields that point at other files. It requires `schema_version: "1.1"` and `name`. The `prompt.md` fields `description`, `tags`, `plugins`, `runs`, and `expected_outcome` go at the top level; `model`, `max_turns`, `timeout_seconds`, `allowed_tools`, `append_system_prompt`, and `env` go under `execution:`. When both files exist, `prompt.md` frontmatter overrides the matching `case.yaml` fields, the `prompt.md` body is the prompt, and `graders/*.md` are added after any graders listed in `case.yaml`. + +These fields exist only in `case.yaml`: + +| Field | Purpose | +| :------------------------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `context.scaffold_script` | A Bash script in the case directory that runs in the empty workspace before Claude starts, to create fixture files or a git repository. It runs only when you pass [`--scaffold`](#add-setup-or-history-with-case-yaml) | +| `context.history_file` | A `.jsonl` transcript in the case directory to resume. The case's prompt becomes the next user turn | +| `context.add_dirs` | Directories inside the case directory that Claude may read during the run, granted read-only | +| `execution.prompt` | The prompt, when you keep the whole case in `case.yaml` and omit `prompt.md` | +| `graders` | A list of graders, each with a `name` plus the same keys a `graders/*.md` file takes in frontmatter. For `llm` graders, put the rubric in `criteria` | + +### Grader frontmatter + +Every grader file under `graders/` takes these keys in frontmatter, plus the options for its type. The grader's name is the filename without `.md`: + +| Key | Default | Purpose | +| :------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | required | One of the [grader types](#grader-types) | +| `weight` | `1` | Relative weight in the run's score. Any positive number | +| `arm` | unset | `with-only` excludes the grader from scoring in a [two-arm run](#compare-against-a-no-plugin-baseline); `both` forces a `tool_used: Skill` grader to be scored in both arms | + +#### What a grader can look at + +`regex` graders take a `target` and `llm` graders take a `focus`. Both accept the same values: + +| Value | What the grader sees | +| :------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `last_message` | Claude's final response text. This is the default | +| `trace` | The session as JSON, one message per line. A `regex` grader sees every message; an `llm` judge sees the first 12 and the last 12. Quotes and newlines inside it are JSON-escaped, so a regex matches `\"` rather than `"` | +| `files` | The list of paths Claude created during the run, one per line. Not their contents, and not files that a scaffold created or that Claude only modified | +| `{ source: file, path: }` | The contents of one file in the workspace after the run. Use this to grade what the plugin produced. A PNG, JPEG, GIF, or WebP file is shown to an `llm` judge as an image. An `llm` judge refuses other binary files such as `.pptx` or PDF; render them to an image or write them out as text and grade that | +| `mock_calls` | Each call Claude made to a [mocked MCP tool](#mock-mcp-servers), with its input and the mock's answer | + +#### Grader types + +Each grader type below lists its options and when it passes: + +| Type | Options | Passes when | +| :------------ | :------------------------------------ | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `regex` | `pattern`, `flags`, `match`, `target` | The JavaScript regex `pattern` is found in the target. Set `match: not_contains` to require absence or `match: "count:N"` to require exactly N matches. Put case-insensitivity in `flags: i`; inline `(?i)` isn't supported | +| `tool_used` | `tool`, `input_match`, `min`, `max` | The number of calls to `tool` whose JSON-encoded input matches the optional `input_match` regex is between `min`, default 1, and `max`, default unlimited. To assert a tool was never called, set both `min: 0` and `max: 0` | +| `tool_order` | `before`, `after` | Both tools were called and the first matching `before` call precedes the first matching `after` call. Each is a tool name or `{ tool, input_match }` | +| `file_exists` | `path`, `exists` | A file Claude created matches the `path` glob, or none does with `exists: false`. Only files created during the run count | +| `llm` | `criteria`, `focus` | A judge model votes PASS on the rubric in at least two of three votes. In the `.md` layout the file body is the criteria | +| `baseline` | `baseline_file`, `criteria` | A judge finds the run satisfies the criteria at least as well as the reference transcript at `baseline_file`, a `.jsonl` in the case directory | + +

+ Mock files +

+ +A `.md` file under `mocks//` answers one tool. Its body is the tool result, with `{{input.}}` and `{{file:fixtures/}}` substitutions. Its frontmatter accepts these keys: + +| Key | Default | Purpose | +| :----------- | :------ | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | `fixed` | `fixed` returns the body as written. `agent` treats the body as instructions for a small model that plays the server for the run and sees earlier calls as history | +| `expect` | unset | A map from dotted input paths to a type name such as `string`, `number`, `boolean`, `array`, or `object`, a `/regex/`, a literal, or a list of allowed literals. A call that violates it aborts the run with score 0 and is reported as `aborted` with the server, tool, and reason | +| `error` | `false` | `fixed` only. Return the body as a tool error | +| `abort_when` | unset | `agent` only. Prose listing the only conditions under which the agent may abort the run | + +Two optional files sit beside the tool files in a server's directory: + +* **`_server.md`**: a single `type: agent` mock that answers several tools, listed in its `tools:` frontmatter key. A `.md` for the same tool takes precedence. Put an `expect:` guard on the individual `.md`, not here +* **`_tools.json`**: a saved `tools/list` response from the real server, so mocked tools carry their real descriptions and input schemas instead of a permissive placeholder + +A case's own `mocks/` directory uses the same layout and overrides the suite's mocks file by file. + +## Troubleshooting + +These are the problems authors hit most often, keyed on what you see. + +### "plugin eval is currently in early access" + +Your build predates general availability of the command. Run `claude update`, then run the command again in a fresh session. + +### "plugin eval is currently unavailable" + +Anthropic has switched the command off server-side. Nothing on your machine turns it back on; run `claude update` and try again in a fresh session later. + +### "is not a trusted plugin directory, and this run cannot stop to ask you about it" + +This is the first run against a directory Claude Code doesn't trust yet, and it can't ask you because stdin or stdout isn't a terminal or you passed `--json`. Run `claude plugin eval ` once in a terminal and answer the prompt, or pass `--trust-plugin` if you trust the plugin's code and suite. See [What a run can access](#security). + +### "No eval cases found" + +No `/prompt.md` or `/case.yaml` exists beneath the eval directory in effect, or your `--case` and `--tag` filters matched no case. Run from the plugin root, or run `claude plugin eval init` to create a suite. + +### The baseline arm shows no plugin, or delta is zero + +If the summary has no `W/OUT` column, or the case fails with "ablation requested but no plugin resolved", no plugin was found for the case. Add `plugins: ["../.."]` to the case, giving the path from the case directory to the plugin directory. + +If the plugin did load and `Δ` is still near zero with your `tool_used: Skill` grader failing, that's usually a real finding, meaning the skill's `description` doesn't trigger on the prompt's phrasing. Adjust the description and re-run the same suite. + +### Everything scores zero although the right files were produced + +Your graders target `files`, the list of created paths, when you meant the file's contents. Use `{ source: file, path: }` as the `target` or `focus`. Separately, `file_exists` counts only files created during the run, so a file the scaffold created or that Claude only edited is invisible to it; grade its contents, or use `tool_used` on `Edit`. + +### A regex over the trace doesn't match text I can see + +The default `target` is `last_message`, not the trace. When you do target `trace`, it's JSON per line, so quotes appear as `\"`. Regexes use JavaScript syntax, so put `i` in `flags` rather than writing `(?i)`. + +### Tools are denied, MCP tools are missing, or Bash won't run + +Anything beyond the read-only set needs your grant, such as `--allow-tools Bash Write`. Your personal MCP servers never load in a run. The plugin's own servers don't start unless you [opt in](#mock-mcp-servers), and their tools then also need an `--allow-tools "mcp__plugin____*"` grant; a mocked tool needs neither. + +### The run exits 1 but the results look fine + +The default `--threshold` is 1.0, so the command exits 1 when any case scores below perfect. Set a threshold that matches your bar. Exit 1 also covers a case file that failed to load, which is reported on stderr above the table. + +### "--json output path must end in .json" + +You put the target after `--json`, so it was read as the output path. Put the target first, as in `claude plugin eval . --json`, or give `--json` an explicit `.json` path. + +### A grader shows passed: false under a run that scored 1.0 + +That grader is excluded from the score by design in a two-arm run, and its `scored` field is `false`. See [Compare against a no-plugin baseline](#compare-against-a-no-plugin-baseline). + +### Runs fail with a usage-limit or rate-limit error partway through + +If your account reaches its plan's usage limit or an API rate limit while a suite is running, each later run ends with that error, is graded on what it produced, and usually scores 0. The suite still finishes and isn't marked `partial`, so the result can look like a regression. Check the `NOTES` column or `cases[].arms.with[].error` in the JSON for the limit message before trusting the scores, then re-run after the limit resets, with `--runs 1` or a `--case` filter if you need to stay under it. + +### Runs time out or hit the turn cap + +The defaults are 10 turns and 300 seconds. Raise `max_turns` and `timeout_seconds` in the case for tasks that need more, and use `--max-cost-usd` as the cost ceiling rather than tight per-run limits. + +## See also + +* [Create plugins](/docs/en/plugins): build the plugin you're testing, and load it with `--plugin-dir` during development +* [Plugins reference](/docs/en/plugins-reference#plugin-eval): the `plugin eval` and `plugin eval init` command entries and the manifest's `experimental.evals` key +* [Skills](/docs/en/skills): how a skill's description decides when Claude invokes it, which is what a case that checks whether the skill triggers is measuring +* [Sandboxing](/docs/en/sandboxing): the OS-level sandbox that applies when you grant Bash to a run +* [Create and distribute a plugin marketplace](/docs/en/plugin-marketplaces): publish the plugin once its suite passes diff --git a/content/en/docs/claude-code/plugin-marketplaces.md b/content/en/docs/claude-code/plugin-marketplaces.md index e43b5d5d6..e7241de7a 100644 --- a/content/en/docs/claude-code/plugin-marketplaces.md +++ b/content/en/docs/claude-code/plugin-marketplaces.md @@ -1177,7 +1177,7 @@ Earlier versions of Claude Code ignore the `renames` field and report `plugin-no ## Validation and testing -Test your marketplace before sharing. +Test your marketplace before sharing. Validation checks file structure; to test whether a plugin changes what Claude does on realistic prompts, run its eval suite with [`claude plugin eval`](/docs/en/plugin-evals) before you publish a new version. From your marketplace directory, validate the JSON syntax: diff --git a/content/en/docs/claude-code/plugins-reference.md b/content/en/docs/claude-code/plugins-reference.md index 61933d282..9ff2868a1 100644 --- a/content/en/docs/claude-code/plugins-reference.md +++ b/content/en/docs/claude-code/plugins-reference.md @@ -460,7 +460,8 @@ The manifest is optional. If omitted, Claude Code auto-discovers components in [ "lspServers": "./.lsp.json", "experimental": { "themes": "./themes/", - "monitors": "./monitors.json" + "monitors": "./monitors.json", + "evals": "quality/evals" }, "dependencies": [ "helper-lib", @@ -536,21 +537,22 @@ The same field can appear in a plugin's marketplace entry, where it takes preced ### Component path fields -| Field | Type | Description | Example | -| :---------------------- | :-------------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------------------------------------- | -| `skills` | string\|array | Custom skill directories containing `/SKILL.md`. Adds to the default `skills/` scan. See [Path behavior rules](#path-behavior-rules) for the marketplace-root exception | `"./custom/skills/"` | -| `commands` | string\|array | Custom flat `.md` skill files or directories (replaces default `commands/`) | `"./custom/cmd.md"` or `["./cmd1.md"]` | -| `agents` | string\|array | Custom agent files (replaces default `agents/`) | `"./custom/agents/reviewer.md"` | -| `workflows` | string\|array | Custom [workflow](/docs/en/workflows) script files or directories (replaces default `workflows/`) | `"./custom/workflows/"` | -| `hooks` | string\|array\|object | Hook config paths or inline config | `"./my-extra-hooks.json"` | -| `mcpServers` | string\|array\|object | MCP config paths or inline config | `"./my-extra-mcp-config.json"` | -| `outputStyles` | string\|array | Custom output style files/directories (replaces default `output-styles/`) | `"./styles/"` | -| `lspServers` | string\|array\|object | [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) configs for code intelligence (go to definition, find references, etc.) | `"./.lsp.json"` | -| `experimental.themes` | string\|array | Color theme files/directories (replaces default `themes/`). See [Themes](#themes) | `"./themes/"` | -| `experimental.monitors` | string\|array | Background [Monitor](/docs/en/tools-reference#monitor-tool) configurations that start automatically when the plugin is active. See [Monitors](#monitors) | `"./monitors.json"` | -| `userConfig` | object | User-configurable values prompted at enable time. See [User configuration](#user-configuration) | See below | -| `channels` | array | Channel declarations for message injection (Telegram, Slack, Discord style). See [Channels](#channels) | See below | -| `dependencies` | array | Other plugins this plugin requires, optionally with semver version constraints. See [Constrain plugin dependency versions](/docs/en/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` | +| Field | Type | Description | Example | +| :---------------------- | :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :--------------------------------------------------- | +| `skills` | string\|array | Custom skill directories containing `/SKILL.md`. Adds to the default `skills/` scan. See [Path behavior rules](#path-behavior-rules) for the marketplace-root exception | `"./custom/skills/"` | +| `commands` | string\|array | Custom flat `.md` skill files or directories (replaces default `commands/`) | `"./custom/cmd.md"` or `["./cmd1.md"]` | +| `agents` | string\|array | Custom agent files (replaces default `agents/`) | `"./custom/agents/reviewer.md"` | +| `workflows` | string\|array | Custom [workflow](/docs/en/workflows) script files or directories (replaces default `workflows/`) | `"./custom/workflows/"` | +| `hooks` | string\|array\|object | Hook config paths or inline config | `"./my-extra-hooks.json"` | +| `mcpServers` | string\|array\|object | MCP config paths or inline config | `"./my-extra-mcp-config.json"` | +| `outputStyles` | string\|array | Custom output style files/directories (replaces default `output-styles/`) | `"./styles/"` | +| `lspServers` | string\|array\|object | [Language Server Protocol](https://microsoft.github.io/language-server-protocol/) configs for code intelligence (go to definition, find references, etc.) | `"./.lsp.json"` | +| `experimental.themes` | string\|array | Color theme files/directories (replaces default `themes/`). See [Themes](#themes) | `"./themes/"` | +| `experimental.monitors` | string\|array | Background [Monitor](/docs/en/tools-reference#monitor-tool) configurations that start automatically when the plugin is active. See [Monitors](#monitors) | `"./monitors.json"` | +| `experimental.evals` | string\|array | Directory below the plugin root that holds the plugin's [eval cases](/docs/en/plugin-evals#use-a-different-eval-directory), when it isn't the default `evals/`. `claude plugin eval --eval-dir` overrides it | `"quality/evals"` | +| `userConfig` | object | User-configurable values prompted at enable time. See [User configuration](#user-configuration) | See below | +| `channels` | array | Channel declarations for message injection (Telegram, Slack, Discord style). See [Channels](#channels) | See below | +| `dependencies` | array | Other plugins this plugin requires, optionally with semver version constraints. See [Constrain plugin dependency versions](/docs/en/plugin-dependencies) | `[{ "name": "secrets-vault", "version": "~2.1.0" }]` | ### Experimental components @@ -941,11 +943,11 @@ See [Skills-directory plugins](#skills-directory-plugins) for scope and trust re claude plugin init [options] ``` -**Arguments:** +The command takes these arguments: * ``: Plugin name. Becomes the skill namespace and the directory name under `~/.claude/skills/`, so it cannot contain spaces or path separators. -**Options:** +The command accepts these options: | Option | Description | Default | | :----------------------- | :------------------------------------------------------------------------------------------------------------------ | :---------------------- | @@ -956,7 +958,7 @@ claude plugin init [options] | `-f, --force` | Overwrite an existing `.claude-plugin/` at the target | | | `-h, --help` | Display help for command | | -**Aliases:** `new` +`claude plugin new` is an alias for this command. Each `--with` value adds a starter file for that component, ready to edit: @@ -972,7 +974,7 @@ Each `--with` value adds a starter file for that component, ready to edit: The scaffolded plugin uses the `@skills-dir` source rather than a marketplace. Admins can block this source with `strictKnownMarketplaces` or by adding `{"source": "skills-dir"}` to `blockedMarketplaces` in [managed settings](/docs/en/plugin-marketplaces#managed-marketplace-restrictions). When blocked, `plugin init` fails before writing. -**Examples:** +These examples show common invocations: ```bash theme={null} # Scaffold a minimal plugin @@ -993,11 +995,11 @@ Install a plugin from available marketplaces. claude plugin install [options] ``` -**Arguments:** +The command takes these arguments: * ``: Plugin name or `plugin-name@marketplace-name` for a specific marketplace -**Options:** +The command accepts these options: | Option | Description | Default | | :--------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ | @@ -1017,7 +1019,7 @@ Scope determines which settings file the installed plugin is added to. For examp 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:** +These examples show common invocations: ```bash theme={null} # Install to user scope (default) @@ -1038,11 +1040,11 @@ Remove an installed plugin. claude plugin uninstall [options] ``` -**Arguments:** +The command takes these arguments: * ``: Plugin name or `plugin-name@marketplace-name` -**Options:** +The command accepts these options: | Option | Description | Default | | :-------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ | @@ -1053,7 +1055,7 @@ claude plugin uninstall [options] | `--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` +`claude plugin remove` and `claude plugin rm` are aliases for this command. By default, uninstalling from the last remaining scope also deletes the plugin's `${CLAUDE_PLUGIN_DATA}` directory. Use `--keep-data` to preserve it, for example when reinstalling after testing a new version. @@ -1069,7 +1071,7 @@ Remove auto-installed plugin dependencies that are no longer required by any ins claude plugin prune [options] ``` -**Options:** +The command accepts these options: | Option | Description | Default | | :-------------------- | :----------------------------------------------------------------------- | :------ | @@ -1078,7 +1080,7 @@ claude plugin prune [options] | `-y, --yes` | Skip the confirmation prompt. Required when stdin or stdout is not a TTY | | | `-h, --help` | Display help for command | | -**Aliases:** `autoremove` +`claude plugin autoremove` is an alias for this command. The command lists orphaned dependencies and asks for confirmation before removing them. To remove a plugin and clean up its dependencies in one step, run `claude plugin uninstall --prune`. @@ -1090,11 +1092,11 @@ Enable a disabled plugin. When the target is installed from a marketplace and de claude plugin enable [options] ``` -**Arguments:** +The command takes these arguments: * ``: Plugin name or `plugin-name@marketplace-name` -**Options:** +The command accepts these options: | Option | Description | Default | | :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------- | @@ -1110,11 +1112,11 @@ Disable a plugin without uninstalling it. When the target is installed from a ma claude plugin disable [plugin] [options] ``` -**Arguments:** +The command takes these arguments: * `[plugin]`: Plugin name or `plugin-name@marketplace-name`. Optional when using `--all` -**Options:** +The command accepts these options: | Option | Description | Default | | :-------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------- | @@ -1131,11 +1133,11 @@ Update a plugin to the latest version. claude plugin update [options] ``` -**Arguments:** +The command takes these arguments: * ``: Plugin name or `plugin-name@marketplace-name` -**Options:** +The command accepts these options: | Option | Description | Default | | :-------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ | @@ -1158,7 +1160,7 @@ List installed plugins with their version, source marketplace, and enable status claude plugin list [options] ``` -**Options:** +The command accepts these options: | Option | Description | Default | | :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------ | @@ -1182,11 +1184,11 @@ Show a plugin's component inventory and projected token cost. The output lists a claude plugin details ``` -**Arguments:** +The command takes these arguments: * ``: Plugin name or `plugin-name@marketplace-name` -**Options:** +The command accepts these options: | Option | Description | Default | | :----------- | :----------------------- | :------ | @@ -1235,11 +1237,11 @@ The command exits 0 when validation passes, 1 when it fails, and 2 when the vali claude plugin validate [options] ``` -**Arguments:** +The command takes these arguments: * ``: Path to a plugin directory or a marketplace directory. See [Validate a plugin or a directory without a manifest](/docs/en/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest) for which files a plugin run covers. -**Options:** +The command accepts these options: | Option | Description | Default | | :----------- | :------------------------------------------------------------------------------------------------------------------------------------------------ | :------ | @@ -1259,6 +1261,55 @@ On exit 2, the command writes nothing to stdout; the error message goes to stder Within an interactive session, `/plugin validate ` runs the same checks inline. +### plugin eval + +Run a plugin's [eval cases](/docs/en/plugin-evals) and report scored results. Requires Claude Code v2.1.269 or later. Each case is a prompt plus graders; Claude Code runs it several times in an isolated session with only the target plugin loaded, and by default also without the plugin so the report shows the difference. See [Test plugins with evals](/docs/en/plugin-evals) for the case format, graders, results, and CI usage. + +```bash theme={null} +claude plugin eval [target] [options] +``` + +The optional `target` is a plugin directory, a single `prompt.md` or `case.yaml` file, an installed plugin as `name` or `name@marketplace`, or `name@skills-dir`, and defaults to the current directory. Put it before `--tag`, `--allow-tools`, and `--json`. + +This table lists the options most runs use. Run `claude plugin eval --help` for the complete set, including `--case`, `--tag`, `--output-dir`, `--report`, `--allow-real-servers`, `--keep-temp`, and `--verbose`. + +| Option | Description | Default | +| :------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------- | +| `--runs ` | Runs per case per arm | Each case's `runs`, else 3 | +| `-j, --concurrency ` | Agent sessions to run at once, 1 to 8. They share your rate limit | `1` | +| `--model ` | Model for the agent under test | Each case's `model`, else `ANTHROPIC_MODEL` if set, else Claude Code's default | +| `--judge-model ` | Model for `llm` and `baseline` graders | A small fast model | +| `--ablation ` | `none` or `with-without`. See [Compare against a no-plugin baseline](/docs/en/plugin-evals#compare-against-a-no-plugin-baseline) | `with-without` when a plugin resolves, else `none` | +| `--threshold <0..1>` | Exit 1 if any case scores below this | `1.0` | +| `--max-cost-usd ` | Stop before the next run once spend reaches this, exit 2, and report partial results | No ceiling | +| `--allow-tools ` | Grant tools beyond the read-only set, such as `Bash`, `Write`, `Edit`, or `"mcp__plugin____*"`. See [Grant tools](/docs/en/plugin-evals#grant-tools) | | +| `--scaffold` | Run each case's [`scaffold_script`](/docs/en/plugin-evals#add-setup-or-history-with-case-yaml) | Off | +| `--trust-plugin` | Skip the first-run trust prompt, for CI. See [What a run can access](/docs/en/plugin-evals#security) | Off | +| `--mocks ` | `record` or `off`. See [Mock MCP servers](/docs/en/plugin-evals#mock-mcp-servers) | `record` | +| `--eval-dir ` | Directory below the plugin that holds the cases | The manifest's `experimental.evals`, else `evals` | +| `--json [path]` | Print the [result document](/docs/en/plugin-evals#json-result) to stdout, or write it to a `.json` path | | +| `--no-publish` | Keep the HTML report local | | +| `-h, --help` | Display help for command | | + +The command exits 0 when every case meets the threshold, 1 on a failing case, a load error, or an untrusted plugin directory, 2 on a partial run, 130 when interrupted, and 143 when terminated. See [Run evals in CI](/docs/en/plugin-evals#run-evals-in-ci). + +### plugin eval init + +Create an eval suite for the plugin in the current directory. Requires Claude Code v2.1.269 or later. In a terminal this starts an authoring interview that reads the plugin, proposes cases and graders, pilots them, and writes the files. With `--bare`, or without a terminal, it writes a blank single-case template instead. Run from inside an interactive Claude Code session, it prints the interview instructions for that session to follow rather than writing a template. See [Create your first eval suite](/docs/en/plugin-evals#create-your-first-eval-suite). + +```bash theme={null} +claude plugin eval init [name] [options] +``` + +The optional `name` is a case name: the interview doesn't need one, while `--bare` and the no-terminal template path require it. It accepts these options: + +| Option | Description | Default | +| :------------------ | :------------------------------------------------------------------------------------------------ | :------------------------------------------------ | +| `--bare` | Write a blank `prompt.md` and `graders/criteria.md` for `` instead of running the interview | | +| `-i, --interactive` | Require the interview. Fails without a terminal instead of writing a template | | +| `--eval-dir ` | Directory below the current directory to write cases into | The manifest's `experimental.evals`, else `evals` | +| `-h, --help` | Display help for command | | + ### plugin tag Create a release git tag for a plugin. By default the command tags the plugin in the current directory; pass a path to tag a plugin elsewhere. See [Tag plugin releases](/docs/en/plugin-dependencies#tag-plugin-releases-for-version-resolution). @@ -1267,11 +1318,11 @@ Create a release git tag for a plugin. By default the command tags the plugin in claude plugin tag [path] [options] ``` -**Arguments:** +The command takes these arguments: * `[path]`: Path to the plugin directory. Defaults to the current directory. -**Options:** +The command accepts these options: | Option | Description | Default | | :-------------------- | :------------------------------------------------------------------------- | :------- | diff --git a/content/en/docs/claude-code/plugins.md b/content/en/docs/claude-code/plugins.md index 2ba160b92..f154c45c6 100644 --- a/content/en/docs/claude-code/plugins.md +++ b/content/en/docs/claude-code/plugins.md @@ -314,6 +314,8 @@ As you make changes to your plugin, run `/reload-plugins` to pick up the updates To test a plugin together with a plugin it depends on, see [Test a plugin and its dependency locally](/docs/en/plugin-dependencies#test-a-plugin-and-its-dependency-locally). +Trying the plugin with `--plugin-dir` tells you it can work. To find out how often Claude actually reaches for it and gets the right result, run it against a set of test prompts with [`claude plugin eval`](/docs/en/plugin-evals). Each prompt runs several times with and without the plugin loaded, so you can see what the plugin contributes and catch regressions when you change it or a new model ships. + To load several plugins from one place, pass a folder that holds them, such as `--plugin-dir ./plugins`. Loading a folder of plugins requires Claude Code v2.1.265 or later. Claude Code reads the folder's top level to decide which plugins load, and in an interactive session it also watches the folder for later changes: * **What loads**: if the folder has no manifest or plugin components at its top level, Claude Code treats it as a folder of plugins. Each immediate subfolder that has a `.claude-plugin/plugin.json` manifest loads as a separate plugin. Claude Code skips everything else in the folder without reporting an error, including plugins that have no manifest. @@ -471,6 +473,7 @@ Now that you understand Claude Code's plugin system, here are suggested paths fo ### For plugin developers +* [Test plugins with evals](/docs/en/plugin-evals): measure what your plugin changes and gate CI on it * [Create and distribute a marketplace](/docs/en/plugin-marketplaces): package and share your plugins * [Plugins reference](/docs/en/plugins-reference): complete technical specifications * Dive deeper into specific plugin components: diff --git a/content/en/docs/claude-code/sandbox-environments.md b/content/en/docs/claude-code/sandbox-environments.md index 6b78b30c5..c074e0380 100644 --- a/content/en/docs/claude-code/sandbox-environments.md +++ b/content/en/docs/claude-code/sandbox-environments.md @@ -27,7 +27,7 @@ The first two approaches in the table below run on the host operating system wit | [Virtual machine](#virtual-machine) | Full operating system | No | High | | [Claude Code on the web](#claude-code-on-the-web) | Full operating system, hosted by Anthropic | No | None; requires a Claude subscription, and GitHub when you launch from the web interface | -The [sandboxed Bash tool](/docs/en/sandboxing) is built into Claude Code and restricts only Bash commands. Built-in file tools, MCP servers, and hooks still run directly on your host. Every other approach in the table puts the whole Claude Code process inside the isolation boundary, so file tools, MCP servers, and hooks are restricted too. +The [sandboxed Bash tool](/docs/en/sandboxing) is built into Claude Code and restricts Bash commands. Built-in file tools, MCP servers, and hooks still run directly on your host. Every other approach in the table puts the whole Claude Code process inside the isolation boundary, so file tools, MCP servers, and hooks are restricted too. Sandbox isolation reduces the impact of a breach, but it does not eliminate risk. Any approach that allows network egress can still leak data the agent can read, and any approach that mounts your project directory writable can still modify that code. Review the [security limitations](/docs/en/sandboxing#security-limitations) before relying on a sandbox as a hard control. @@ -75,7 +75,7 @@ Run the `/sandbox` command to open the sandbox panel and choose a mode. The [San The per-command sandbox does not cover everything that runs in a session: * Other [built-in tools](/docs/en/tools-reference) such as Read, Edit, and WebFetch run inside the Claude Code process and do not spawn arbitrary code. [Permission rules](/docs/en/permissions) for path or domain gate them instead. -* [MCP](/docs/en/mcp) servers and hooks are separate processes that run unconstrained on the host. +* [MCP](/docs/en/mcp) servers and [command hooks](/docs/en/hooks#command-hook-fields) are separate processes that run unconstrained on the host. To put built-in tools, MCP servers, and hooks all behind one OS boundary, run the whole Claude Code process inside the [sandbox runtime](#sandbox-runtime), the [dev container](#dev-containers), or a [custom container](#custom-container). diff --git a/content/en/docs/claude-code/self-hosted-environments-deploy.md b/content/en/docs/claude-code/self-hosted-environments-deploy.md index 0538959d0..5864ea1c3 100644 --- a/content/en/docs/claude-code/self-hosted-environments-deploy.md +++ b/content/en/docs/claude-code/self-hosted-environments-deploy.md @@ -430,7 +430,7 @@ A session holding a background task that never finishes doesn't count as idle, s `--kill-session-after-min` is a backstop for runaway sessions. On a runner on v2.1.260 or later, a session that reaches the limit isn't terminated outright. The runner gives it a grace window, 15 minutes by default, which you can change with [`SELF_HOSTED_RUNNER_MAX_LIFETIME_GRACE_MS`](/docs/en/self-hosted-environments-reference#environment-variable-only-settings): -* If the session is waiting on its user, or its turn has ended and it holds only background tasks, the runner releases it right away. The session resumes when its user sends their next message. +* If the session is waiting on its user, the runner releases it. If its turn has ended and it holds only background tasks, the runner waits up to 60 seconds for those tasks to finish and then releases it. The session resumes when its user sends their next message. * If a turn is still running, the runner waits for the turn to finish, or for the session to next wait on its user, and then releases it. * If the session is still on the runner when the grace window ends, the runner terminates it, and any running turn's work is lost. A turn waiting on an approval requested from inside a running tool call is one way a session outlasts the window. diff --git a/content/en/docs/claude-code/server-managed-settings.md b/content/en/docs/claude-code/server-managed-settings.md index 68da24bc1..bf1acd795 100644 --- a/content/en/docs/claude-code/server-managed-settings.md +++ b/content/en/docs/claude-code/server-managed-settings.md @@ -143,12 +143,13 @@ If you clear your server-managed configuration in the admin console with the int ### Per-key exceptions across managed sources -Two kinds of keys are exceptions to the no-merge rule: +Three kinds of keys are exceptions to the no-merge rule: * **Cross-source lock keys**: a small set of keys, such as the sandbox allowlist locks, [listed on the managed settings page](/docs/en/managed-settings#precedence-within-the-managed-tier). Claude Code honors them when any admin-controlled managed source sets them; the user-writable HKCU registry tier is excluded. When a [`policyHelper`](/docs/en/settings-reference#policyhelper) supplies managed settings, its output is the only source these checks read, apart from [`forceRemoteSettingsRefresh`](/docs/en/settings-reference#forceremotesettingsrefresh), which Claude Code reads from the admin sources directly at startup. * **The `env` block**: apart from the telemetry unit and routing variables paired with a credential key, both covered below, it merges per key across the admin-controlled sources. For each environment variable, the highest-priority source defining it wins, and lower admin sources fill in variables the higher sources leave unset. An endpoint-managed `env` entry therefore applies whenever the server-managed configuration leaves that variable unset, or while a cached server value for it is [withheld pending server confirmation](#fetch-and-caching-behavior). Requires Claude Code v2.1.223 or later. Before v2.1.223, Claude Code applies the selected source's whole `env` block only. * **Telemetry unit**: the `OTEL_EXPORTER_OTLP_*` exporter keys, the `OTEL_LOG_*` content-capture toggles, `OTEL_LOGS_EXPORTER`, and the beta tracing variables `ENABLE_BETA_TRACING_DETAILED` and `BETA_TRACING_ENDPOINT` follow the highest source that sets any of them as a unit. A source that delivers the `otelHeadersHelper` credential key claims the unit too, but lands these variables only when it is the selected source: a source that isn't selected but delivers the key contributes none of them and still blocks lower sources from filling them in. Either way, an exporter endpoint from one source can never pair with credentials from another. * **Credential-paired routing**: a source that pairs routing variables with a selected-source-only credential key, such as `apiKeyHelper` or `otelHeadersHelper`, contributes those routing variables only when it wins the slot. +* **Gateway sign-in keys**: Claude Code never reads [`forceLoginGatewayUrl`](/docs/en/settings-reference#forcelogingatewayurl) or the `"gateway"` value of [`forceLoginMethod`](/docs/en/settings-reference#forceloginmethod) from server-managed settings, so selecting server-managed settings neither supplies a gateway sign-in nor hides one set in an MDM policy or managed settings file. The [`managedSourcesBehavior` entry](/docs/en/settings-reference#managedsourcesbehavior) says which admin source on the machine supplies them. ### Fetch and caching behavior @@ -286,7 +287,7 @@ Claude Code decides whether four privacy toggles need approval by the delivered Claude Code also decides whether [`API_FORCE_IDLE_TIMEOUT`](/docs/en/env-vars) needs approval by the delivered value: a truthy value only turns the [body idle timeout](/docs/en/network-config#streaming-idle-watchdogs) on, so Claude Code applies it without asking the user. For any other non-empty value, Claude Code shows the dialog. Before v2.1.248, any non-empty value triggered the dialog. -Whether [`ANTHROPIC_CUSTOM_HEADERS`](/docs/en/env-vars#variables) needs approval also depends on the delivered value. Headers that only tag requests, such as `Accept-Language`, apply without the dialog. A line that names a credential, an org or tenant selector, a routing or host override, or an API-behavior header, such as `Authorization`, `X-Api-Key`, `Host`, `anthropic-beta`, or the `X-Amzn-Bedrock-*` headers, requires approval. So does a line whose name isn't a valid HTTP header token, or whose value contains a character an HTTP header can't carry. The check matches words inside the header name, so `X-Client-Version`, which contains `client` and `version`, requires approval too. Before v2.1.251, any `ANTHROPIC_CUSTOM_HEADERS` value applied without it. +Whether [`ANTHROPIC_CUSTOM_HEADERS`](/docs/en/env-vars#variables) needs approval also depends on the delivered value. Headers that only tag requests, such as `Accept-Language`, apply without the dialog. A line that names a credential, an org or tenant selector, a routing or host override, or an API-behavior header, such as `Authorization`, `X-Api-Key`, `Host`, `anthropic-beta`, or the `X-Amzn-Bedrock-*` headers, requires approval. A line also requires approval when its name isn't a valid HTTP header token or its value contains a character an HTTP header can't carry. The check matches words inside the header name, so `X-Client-Version`, which contains `client` and `version`, requires approval too. Before v2.1.251, any `ANTHROPIC_CUSTOM_HEADERS` value applied without it. A falsy value such as `0` or `false` for [`ENABLE_BETA_TRACING_DETAILED`](/docs/en/env-vars#variables) or [`OTEL_LOG_RAW_API_BODIES`](/docs/en/env-vars#variables) applies without the dialog, because it only turns detailed tracing or raw API body capture off. Any other non-empty value for either variable requires approval. diff --git a/content/en/docs/claude-code/settings-reference.md b/content/en/docs/claude-code/settings-reference.md index 5b27a3a2b..b4ba10db2 100644 --- a/content/en/docs/claude-code/settings-reference.md +++ b/content/en/docs/claude-code/settings-reference.md @@ -1295,7 +1295,7 @@ Start sessions with [ultracode](/docs/en/workflows#let-claude-decide-with-ultrac * `true`: sessions start at `xhigh` effort, with ultracode on when dynamic workflows are enabled for you, your model supports `xhigh`, and no effort cap is below `xhigh` * `false`: sessions start with ultracode off * **Default**: unset, so ultracode is off -* **Per-session overrides**: `/effort ultracode` turns ultracode on for one session without this key. So does `--effort ultracode`, which requires Claude Code v2.1.203 or later +* **Per-session overrides**: `/effort ultracode` turns ultracode on for one session without this key. The `--effort ultracode` flag also turns it on for one session and requires Claude Code v2.1.203 or later ```json settings.json theme={null} { @@ -5627,7 +5627,7 @@ Set it in an MDM profile or the managed settings file to enforce fail-closed sta ### `managedSourcesBehavior` -Choose whether Claude Code applies only the highest-priority [managed source](/docs/en/managed-settings#how-claude-code-combines-managed-sources) your organization delivers, or combines every admin source it delivers. By default Claude Code takes the highest-priority source that carries a [policy key](/docs/en/managed-settings#how-claude-code-combines-managed-sources) and ignores the rest. A policy key is any settings key other than this one and `wslInheritsWindowsSettings`. So once server-managed settings or an MDM policy deliver a policy key, a `managed-settings.json` file contributes only the [keys Claude Code reads from every admin source](/docs/en/managed-settings#keys-read-from-every-admin-source). With `"merge"`, every admin source you deliver contributes its keys to one combined policy. Requires Claude Code v2.1.242 or later. +Choose whether Claude Code applies only the highest-priority [managed source](/docs/en/managed-settings#how-claude-code-combines-managed-sources) your organization delivers, or combines every admin source it delivers. By default Claude Code takes the highest-priority source that carries a [policy key](/docs/en/managed-settings#how-claude-code-combines-managed-sources) and ignores the rest. A policy key is any settings key other than this one and `wslInheritsWindowsSettings`. Under that default, once server-managed settings or an MDM policy deliver a policy key, a `managed-settings.json` file contributes only the [keys Claude Code reads from every admin source](/docs/en/managed-settings#keys-read-from-every-admin-source). With `"merge"`, every admin source you deliver contributes its keys to one combined policy. Requires Claude Code v2.1.242 or later. Set `"merge"` only where every source [ranked](/docs/en/managed-settings#how-claude-code-combines-managed-sources) below your highest one is under an administrator's control, because Claude Code then adds entries from a lower source, such as `permissions.allow` rules, to the policy. @@ -5647,24 +5647,24 @@ Deliver the key in the highest-priority source you deploy. A machine that never Under `"merge"`, Claude Code combines each key by its kind. This table gives the rule for each kind. The restriction allowlist, values-taken-whole, and highest-source-only rows name every key they cover, and the other rows give examples: -| Kind of key | How Claude Code combines it | Keys | -| :----------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Lists | Combines entries from every source | [`permissions.allow`](#permissions-allow), [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains), and other list keys | -| Locks | Applies the strictest value any source sets. When no source sets a strict value, applies a looser value only from the highest source | [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly), [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode), and other boolean or enum locks | -| Restriction allowlists | Takes the list whole from the highest source that sets it, without adding entries from lower sources. When the highest source doesn't set one, takes it whole from the next source down | [`availableModels`](#availablemodels), [`allowedMcpServers`](#allowedmcpservers), [`strictKnownMarketplaces`](#strictknownmarketplaces), [`allowedChannelPlugins`](#allowedchannelplugins), and the [`fallbackModel`](#fallbackmodel) chain | -| Values taken whole | Takes the value whole from the highest source that sets it, without combining entries or fields from lower sources. When the highest source doesn't set it, takes it whole from the next source down | [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs), [`sandbox.ripgrep`](#sandbox-ripgrep) | -| Provided MCP servers | Combines the server names from every source. When two sources set the same name, applies the higher source's whole entry | [`managedMcpServers`](#managedmcpservers) | -| Read from the highest-priority source only | Reads the key only from the highest-priority source that carries a policy key, so a lower source's value is ignored even when the highest source sets none | [`apiKeyHelper`](#apikeyhelper), [`awsAuthRefresh`](#awsauthrefresh), [`awsCredentialExport`](#awscredentialexport), [`gcpAuthRefresh`](#gcpauthrefresh), [`otelHeadersHelper`](#otelheadershelper), `proxyAuthHelper`, [`forceLoginOrgUUID`](#forceloginorguuid), [`forceLoginMethod`](#forceloginmethod), [`forceLoginGatewayUrl`](#forcelogingatewayurl), [`parentSettingsBehavior`](#parentsettingsbehavior), [`modelPicker`](#modelpicker), [`policyHelper`](#policyhelper), [`permissions.defaultMode`](#permissions-defaultmode) | -| `env` | [Merges per variable across admin sources](/docs/en/managed-settings#keys-read-from-every-admin-source), under both `"first-wins"` and `"merge"` | [`env`](#env) | -| Every other key | Takes the value from the highest source that sets it | [`cleanupPeriodDays`](#cleanupperioddays), [`model`](#model) | +| Kind of key | How Claude Code combines it | Keys | +| :----------------------------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Lists | Combines entries from every source | [`permissions.allow`](#permissions-allow), [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains), and other list keys | +| Locks | Applies the strictest value any source sets. When no source sets a strict value, applies a looser value only from the highest source | [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly), [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode), and other boolean or enum locks | +| Restriction allowlists | Takes the list whole from the highest source that sets it, without adding entries from lower sources. When the highest source doesn't set one, takes it whole from the next source down | [`availableModels`](#availablemodels), [`allowedMcpServers`](#allowedmcpservers), [`strictKnownMarketplaces`](#strictknownmarketplaces), [`allowedChannelPlugins`](#allowedchannelplugins), and the [`fallbackModel`](#fallbackmodel) chain | +| Values taken whole | Takes the value whole from the highest source that sets it, without combining entries or fields from lower sources. When the highest source doesn't set it, takes it whole from the next source down | [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs), [`sandbox.ripgrep`](#sandbox-ripgrep) | +| Provided MCP servers | Combines the server names from every source. When two sources set the same name, applies the higher source's whole entry | [`managedMcpServers`](#managedmcpservers) | +| Read from the highest-priority source only | Reads the key only from the highest-priority source that carries a policy key, so a lower source's value is ignored even when the highest source sets none | [`apiKeyHelper`](#apikeyhelper), [`awsAuthRefresh`](#awsauthrefresh), [`awsCredentialExport`](#awscredentialexport), [`gcpAuthRefresh`](#gcpauthrefresh), [`otelHeadersHelper`](#otelheadershelper), `proxyAuthHelper`, [`forceLoginOrgUUID`](#forceloginorguuid), the `"claudeai"` and `"console"` values of [`forceLoginMethod`](#forceloginmethod), [`parentSettingsBehavior`](#parentsettingsbehavior), [`modelPicker`](#modelpicker), [`policyHelper`](#policyhelper), [`permissions.defaultMode`](#permissions-defaultmode) | +| `env` | [Merges per variable across admin sources](/docs/en/managed-settings#keys-read-from-every-admin-source), under both `"first-wins"` and `"merge"` | [`env`](#env) | +| Every other key | Takes the value from the highest source that sets it | [`cleanupPeriodDays`](#cleanupperioddays), [`model`](#model) | Taking `sandbox.credentials.awsPairs` and `sandbox.ripgrep` whole requires Claude Code v2.1.257 or later. -Three of those keys add a condition of their own: +A few keys add a condition that the table doesn't show: * **[`policyHelper`](#policyhelper)**: Claude Code honors it only when the highest source that carries a policy key is an MDM policy or a managed settings file, so under server-managed settings it doesn't apply. * **[`modelOverrides`](#modeloverrides)**: pairs with `availableModels`. Claude Code takes `modelOverrides` from the highest source that sets it, unless a higher source sets `availableModels` without `modelOverrides`. In that case it ignores `modelOverrides` from every source. -* **[`forceLoginGatewayUrl`](#forcelogingatewayurl) and the `"gateway"` value of [`forceLoginMethod`](#forceloginmethod)**: Claude Code reads them only from the managed sources on the machine itself and ignores them in server-managed settings. The machine's values apply even when server-managed settings are also present. +* **[`forceLoginGatewayUrl`](#forcelogingatewayurl) and the `"gateway"` value of [`forceLoginMethod`](#forceloginmethod)**: Claude Code never reads either from server-managed settings, so a value there neither applies nor hides one set in an MDM policy or managed settings file. Among the admin sources on the machine, only the highest-ranked one that carries a policy key supplies them, whether or not server-managed settings are also present. To confirm which sources combined on a machine, run `/status` and [read the `Setting sources` line](/docs/en/managed-settings#read-the-source-in-/status). diff --git a/content/en/docs/claude-code/setup.md b/content/en/docs/claude-code/setup.md index a07b9cab2..1b3d87b38 100644 --- a/content/en/docs/claude-code/setup.md +++ b/content/en/docs/claude-code/setup.md @@ -272,6 +272,8 @@ Set `DISABLE_AUTOUPDATER` to `"1"` in the `env` key of your [`settings.json`](/d } ``` +On a native or npm installation, confirm the change took effect by running `claude doctor` and checking that the `Auto-updates` line shows `disabled (set by env: DISABLE_AUTOUPDATER)` instead of `enabled`. + `DISABLE_AUTOUPDATER` only stops the background check; `claude update` and `claude install` still work. To block all update paths, including manual updates, set [`DISABLE_UPDATES`](/docs/en/env-vars) instead. Use this when you distribute Claude Code through your own channels and need users to stay on the version you provide. ### Update manually diff --git a/content/en/docs/claude-code/skills.md b/content/en/docs/claude-code/skills.md index 3fcac430c..7fdab6658 100644 --- a/content/en/docs/claude-code/skills.md +++ b/content/en/docs/claude-code/skills.md @@ -809,6 +809,8 @@ Seeing a skill trigger tells you Claude found it, not that it did what you inten The check for both is a baseline comparison. Collect a few realistic prompts, run each one in a fresh session with the skill available and again with it [disabled](#override-skill-visibility-from-settings), and compare the results. A fresh session matters because leftover context from authoring the skill will mask gaps in the written instructions. +Two tools automate that comparison. For a skill that ships in a [plugin](/docs/en/plugins), [`claude plugin eval`](/docs/en/plugin-evals) runs each prompt in an isolated session with and without the plugin, scores it with graders you define or that it writes for you, and exits non-zero below a threshold so you can gate CI on it. For iterating on a single skill inside a Claude Code conversation, the skill-creator plugin below runs a similar loop with its own `evals/evals.json` format. The two formats aren't interchangeable. + ### Run evals with skill-creator The [`skill-creator` plugin](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/skill-creator) automates the comparison loop inside Claude Code. Install it from the official marketplace: @@ -1046,6 +1048,8 @@ If Claude doesn't use your skill when expected: If the frontmatter YAML is malformed, Claude Code loads the skill body with empty metadata, so `/skill-name` still works but Claude can't match against your `description`. Run with `--debug` to see the parse error. +If the skill ships in a plugin, you can measure how often it triggers across realistic prompts rather than checking one at a time: write an eval case with a [`tool_used: Skill` grader](/docs/en/plugin-evals#create-your-first-eval-suite) and run it with `claude plugin eval` after each description change. + To find `SKILL.md` files whose frontmatter doesn't parse, run [`claude plugin validate`](/docs/en/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest) on the skills directory, for example `claude plugin validate .claude/skills` for project skills or `claude plugin validate ~/.claude/skills` for personal skills. Requires Claude Code v2.1.233 or later. ### Skill triggers too often diff --git a/content/en/docs/claude-code/slash-commands.md b/content/en/docs/claude-code/slash-commands.md index 3fcac430c..7fdab6658 100644 --- a/content/en/docs/claude-code/slash-commands.md +++ b/content/en/docs/claude-code/slash-commands.md @@ -809,6 +809,8 @@ Seeing a skill trigger tells you Claude found it, not that it did what you inten The check for both is a baseline comparison. Collect a few realistic prompts, run each one in a fresh session with the skill available and again with it [disabled](#override-skill-visibility-from-settings), and compare the results. A fresh session matters because leftover context from authoring the skill will mask gaps in the written instructions. +Two tools automate that comparison. For a skill that ships in a [plugin](/docs/en/plugins), [`claude plugin eval`](/docs/en/plugin-evals) runs each prompt in an isolated session with and without the plugin, scores it with graders you define or that it writes for you, and exits non-zero below a threshold so you can gate CI on it. For iterating on a single skill inside a Claude Code conversation, the skill-creator plugin below runs a similar loop with its own `evals/evals.json` format. The two formats aren't interchangeable. + ### Run evals with skill-creator The [`skill-creator` plugin](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/skill-creator) automates the comparison loop inside Claude Code. Install it from the official marketplace: @@ -1046,6 +1048,8 @@ If Claude doesn't use your skill when expected: If the frontmatter YAML is malformed, Claude Code loads the skill body with empty metadata, so `/skill-name` still works but Claude can't match against your `description`. Run with `--debug` to see the parse error. +If the skill ships in a plugin, you can measure how often it triggers across realistic prompts rather than checking one at a time: write an eval case with a [`tool_used: Skill` grader](/docs/en/plugin-evals#create-your-first-eval-suite) and run it with `claude plugin eval` after each description change. + To find `SKILL.md` files whose frontmatter doesn't parse, run [`claude plugin validate`](/docs/en/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest) on the skills directory, for example `claude plugin validate .claude/skills` for project skills or `claude plugin validate ~/.claude/skills` for personal skills. Requires Claude Code v2.1.233 or later. ### Skill triggers too often diff --git a/content/en/docs/claude-code/sub-agents.md b/content/en/docs/claude-code/sub-agents.md index 019d148e7..92fdd49f5 100644 --- a/content/en/docs/claude-code/sub-agents.md +++ b/content/en/docs/claude-code/sub-agents.md @@ -403,7 +403,7 @@ You can control what subagents can do through tool access, permission modes, and #### Available tools -Subagents inherit the [built-in tools](/docs/en/tools-reference) and MCP tools available in the main conversation, narrowed by two filters: the first removes a short list of tools from every subagent, and the second reduces the built-in tool set for subagents that run in the [background](#run-subagents-in-foreground-or-background), which is the default. [Forks](#fork-the-current-conversation) skip both filters and receive the main conversation's exact tool pool. The first filter removes these tools, even when listed in the `tools` field: +Subagents inherit the [built-in tools](/docs/en/tools-reference) and MCP tools available in the main conversation, narrowed by two filters: the first removes a short list of tools from every subagent, and the second reduces the built-in tool set for subagents that run in the [background](#run-subagents-in-foreground-or-background), which is the default. On macOS, Linux, and WSL, a subagent can also receive the Glob and Grep tools when the main conversation doesn't have them, as described under [Glob tool behavior](/docs/en/tools-reference#glob-tool-behavior). [Forks](#fork-the-current-conversation) skip both filters and receive the main conversation's exact tool pool. The first filter removes these tools, even when listed in the `tools` field: * `Agent`, when the subagent is at the [depth limit](#let-subagents-spawn-their-own-subagents); in a [fork](#fork-the-current-conversation) the tool stays listed but returns an error instead of spawning * `AskUserQuestion` diff --git a/content/en/docs/claude-code/terminal-config.md b/content/en/docs/claude-code/terminal-config.md index a3d4ff46f..df949558c 100644 --- a/content/en/docs/claude-code/terminal-config.md +++ b/content/en/docs/claude-code/terminal-config.md @@ -24,13 +24,14 @@ Pressing Enter submits your message. To add a line break without submitting, pre In most terminals you can also press Shift+Enter, but support varies by terminal emulator: -| Terminal | Shift+Enter for newline | -| :---------------------------------------------------------------------- | :------------------------------------------ | -| Ghostty, Kitty, iTerm2, WezTerm, Warp, Apple Terminal, Windows Terminal | Works without setup | -| VS Code, Cursor, Devin Desktop, Alacritty, Zed | Run `/terminal-setup` once | -| gnome-terminal, JetBrains IDEs such as PyCharm and Android Studio | Not available; use Ctrl+J or `\` then Enter | - -For VS Code, Cursor, Devin Desktop, Alacritty, and Zed, `/terminal-setup` writes a Shift+Enter keybinding into the terminal's configuration file. On the first run you see a confirmation such as `Installed VSCode terminal Shift+Enter key binding`. Existing bindings are left in place; if you see a message such as `VSCode terminal Shift+Enter key binding already configured`, no change was made. Run `/terminal-setup` directly in the host terminal rather than inside tmux or screen, since it needs to write to the host terminal's configuration. +| Terminal | Shift+Enter for newline | +| :------------------------------------------------------------------------------------------------- | :---------------------------------------------------------- | +| Ghostty, Kitty, iTerm2, WezTerm, Warp, Apple Terminal, Windows Terminal | Works without setup | +| Other terminals that support the kitty keyboard protocol, such as foot and Alacritty 0.16 or later | Works without setup. Requires Claude Code v2.1.269 or later | +| VS Code, Cursor, Devin Desktop, Alacritty before 0.16, Zed | Run `/terminal-setup` once | +| gnome-terminal, JetBrains IDEs such as PyCharm and Android Studio | Not available; use Ctrl+J or `\` then Enter | + +For VS Code, Cursor, Devin Desktop, Alacritty before 0.16, and Zed, `/terminal-setup` writes a Shift+Enter keybinding into the terminal's configuration file. On the first run you see a confirmation such as `Installed VSCode terminal Shift+Enter key binding`. Existing bindings are left in place; if you see a message such as `VSCode terminal Shift+Enter key binding already configured`, no change was made. Run `/terminal-setup` directly in the host terminal rather than inside tmux or screen, since it needs to write to the host terminal's configuration. In VS Code, Cursor, and Devin Desktop, `/terminal-setup` also updates two editor settings: it sets `terminal.integrated.gpuAcceleration` to `"off"` to prevent garbled text in the integrated terminal, and it sets `terminal.integrated.mouseWheelScrollSensitivity` for smoother scrolling in [fullscreen mode](/docs/en/fullscreen). To undo the GPU acceleration change, set it back to `"auto"` and reload the editor window. diff --git a/content/en/docs/claude-code/tools-reference.md b/content/en/docs/claude-code/tools-reference.md index 3e360393e..0112ab129 100644 --- a/content/en/docs/claude-code/tools-reference.md +++ b/content/en/docs/claude-code/tools-reference.md @@ -31,8 +31,8 @@ To add custom tools, connect an [MCP server](/docs/en/mcp). To extend Claude wit | `EnterWorktree` | Creates an isolated [git worktree](/docs/en/worktrees) and switches into it. Pass a `path` to switch into an existing worktree instead of creating a new one. On first entry the target may be a worktree of the current repository or, in a multi-repo workspace, of a repository nested inside it. Before v2.1.203, a nested repository's worktree was rejected. A `path` outside `.claude/worktrees/` prompts for your approval before entering, since it moves the session's working directory and write access to that location. New-worktree creation and paths under `.claude/worktrees/` don't prompt. Before v2.1.206, Claude entered paths outside `.claude/worktrees/` without a prompt. From within a worktree session, or from a subagent with a pinned working directory such as [`isolation: worktree`](/docs/en/sub-agents#supported-frontmatter-fields), only the `path` form is available and the target must be under `.claude/worktrees/` of the session's repository | Yes | | `ExitPlanMode` | Presents a plan for approval and exits plan mode | Yes | | `ExitWorktree` | Exits a worktree session and returns to the original directory. Not available to subagents that already run in their own working directory, such as with [`isolation: worktree`](/docs/en/sub-agents#supported-frontmatter-fields) | No | -| `Glob` | Finds files based on pattern matching. See [Glob tool behavior](#glob-tool-behavior) | No | -| `Grep` | Searches for patterns in file contents. See [Grep tool behavior](#grep-tool-behavior) | No | +| `Glob` | Finds files based on pattern matching. Absent by default on macOS, Linux, and WSL. See [Glob tool behavior](#glob-tool-behavior) | No | +| `Grep` | Searches for patterns in file contents. Absent by default on macOS, Linux, and WSL. See [Grep tool behavior](#grep-tool-behavior) | No | | `ListAgents` | Lists the agents Claude can message with `SendMessage`: subagents in the session, [agent team](/docs/en/agent-teams) teammates, your other local Claude Code sessions, and, while this session is connected to [Remote Control](/docs/en/remote-control), your [Claude Code on the web](/docs/en/claude-code-on-the-web) sessions and your Remote Control sessions on other machines. Backs the `/list-agents` command. See [cross-session messaging](/docs/en/cross-session-messaging). Requires Claude Code v2.1.224 or later, and appears only in sessions where [cross-session messaging is enabled](/docs/en/cross-session-messaging#availability). Teammate rows and the first line showing this session's own name require v2.1.239 or later | No | | `ListMcpResourcesTool` | Lists resources exposed by connected [MCP servers](/docs/en/mcp) | No | | `LSP` | Code intelligence via language servers: jump to definitions, find references, report type errors and warnings. See [LSP tool behavior](#lsp-tool-behavior) | No | @@ -259,7 +259,15 @@ The tool appears only when all of the following hold: ## Glob tool behavior -The Glob tool finds files by name pattern. It supports standard glob syntax including `**` for recursive directory matching: +The Glob tool finds files by name pattern. On Windows, it's part of the default tool set. On macOS, Linux, and WSL, Claude Code leaves Glob and [Grep](#grep-tool-behavior) out of the default tool set, and Claude searches with `find` and `grep` through the Bash tool instead. In Claude's shell those two commands run embedded versions of `bfs` and `ugrep`, and the searches reach your hooks and permission rules as `Bash` calls. + +On macOS, Linux, and WSL, you get the Glob and Grep tools back in these cases: + +* You name `Glob` or `Grep` in [`--tools` or `--allowedTools`](/docs/en/cli-reference#cli-flags) when you start the session, or in the equivalent [Agent SDK](/docs/en/agent-sdk/overview) options. With `--tools` you get the ones you list, and naming either tool in `--allowedTools` restores both. An allow rule in a settings file doesn't have this effect. +* A permissions [deny rule](/docs/en/permissions#match-all-uses-of-a-tool), the `--disallowedTools` flag, or [`--restricted`](/docs/en/cli-reference#cli-flags) removes `Bash` from the session. +* A [subagent](/docs/en/sub-agents#available-tools) lists `Glob` or `Grep` in its `tools` field and leaves out `Bash`. The listed tools come back for that subagent only, or for the whole session when it runs as the main session agent through [`--agent`](/docs/en/sub-agents#invoke-subagents-explicitly) or the `agent` setting. + +Glob supports standard glob syntax including `**` for recursive directory matching: * `**/*.js` matches all `.js` files at any depth * `src/**/*.ts` matches all `.ts` files under `src/` @@ -275,7 +283,7 @@ A `pattern` or `path` value that contains a null byte returns an error asking Cl ## Grep tool behavior -The Grep tool searches file contents for patterns. Where [Glob](#glob-tool-behavior) finds files by name, Grep finds lines inside them. +The Grep tool searches file contents for patterns. Where [Glob](#glob-tool-behavior) finds files by name, Grep finds lines inside them. On macOS, Linux, and WSL, Grep is absent by default under the same conditions as Glob. See [Glob tool behavior](#glob-tool-behavior) for when both tools are available. Grep is built on [ripgrep](https://github.com/BurntSushi/ripgrep) and uses ripgrep's regex syntax, not POSIX grep. Patterns that include regex metacharacters need escaping. For example, finding `interface{}` in Go code takes the pattern `interface\{\}`. diff --git a/content/en/docs/claude-code/troubleshoot-install.md b/content/en/docs/claude-code/troubleshoot-install.md index 45e190dec..72baae09b 100644 --- a/content/en/docs/claude-code/troubleshoot-install.md +++ b/content/en/docs/claude-code/troubleshoot-install.md @@ -395,35 +395,7 @@ This means the install directory isn't in your shell's search path. See [Verify The `curl ... | bash` command downloads the script and pipes it to Bash for execution. This error, and the related `curl: (23) Failure writing output to destination`, means Bash did not receive the complete script. Exit code 56 indicates the download itself was interrupted, and exit code 23 indicates curl could not write what it received to the pipe, usually because Bash exited early. -**Solutions:** - -1. **Check network stability**: Claude Code binaries are hosted at `downloads.claude.ai`. Test that you can reach it: - - ```bash theme={null} - curl -sI https://downloads.claude.ai/claude-code-releases/latest - ``` - - An `HTTP/2 200` line means you reached the server and the original failure was likely intermittent; retry the install command. Other results point to the cause: - - * `403`: usually a proxy or network filter blocking the host, or Claude Code is [not available in your region](https://www.anthropic.com/supported-countries) - * `5xx`: usually a temporary service issue; wait a few minutes and retry - * `Could not resolve host` or a connection timeout: your network is blocking the download - -2. **Try an alternative install method**: - - On macOS: - - ```bash theme={null} - brew install --cask claude-code - ``` - - On Windows: - - ```powershell theme={null} - winget install Anthropic.ClaudeCode - ``` - - Then run `claude --version` to confirm: the command prints a version number such as `2.1.211 (Claude Code)`. If the shell reports `claude` isn't found, open a new terminal window and retry: the session you installed from keeps its old `PATH`. +Test that you can reach `downloads.claude.ai` with the check in [Check network connectivity](#check-network-connectivity). If you reached the server, the original failure was likely intermittent; retry the install command. You can also [try an alternative install method](/docs/en/setup#install-claude-code). ### Homebrew cask unavailable or outdated diff --git a/content/en/docs/claude-code/worktrees.md b/content/en/docs/claude-code/worktrees.md index 24326e536..ac506910e 100644 --- a/content/en/docs/claude-code/worktrees.md +++ b/content/en/docs/claude-code/worktrees.md @@ -9,7 +9,7 @@ A [git worktree](https://git-scm.com/docs/git-worktree) is a separate working directory with its own files and branch, sharing the same repository history and remote as your main checkout. Running each Claude Code session in its own worktree means edits in one session never touch files in another, so one session can build a feature while a second fixes a bug. - Worktrees require a git repository; for other version control systems, [configure hooks to replace the git logic](#non-git-version-control). In the [desktop app](/docs/en/desktop#work-in-parallel-with-sessions), every new session gets its own worktree automatically. + Worktrees require a git repository; for other version control systems, [configure hooks to replace the git logic](#non-git-version-control). In the [desktop app](/docs/en/desktop#work-in-parallel-with-sessions), select the **worktree** option when you start a session to give it its own worktree. Worktrees are one of several ways to run Claude in parallel. They isolate file edits. [Subagents](/docs/en/sub-agents) split work up inside one session, and [cross-session messaging](/docs/en/cross-session-messaging) lets Claude pass findings between the sessions in your worktrees. See [Run agents in parallel](/docs/en/agents) to compare the approaches, or skip ahead to [Isolate subagents with worktrees](#isolate-subagents-with-worktrees) to use worktrees and subagents together. 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 9203a058a..0337b0df1 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=1789154100&signature=bc3d1c75c5db3f46d1f8344622996e76f3c09a4d0be70d936566902cc6035aa8&req=dSYnHst4nohdWvMW1HO4zVuHihX802O6AQofdwM8qVf2MB9Jts4Ky%2Bko49Tf%0AGCMS7pHZw93lymAPR9s%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1608263923/b4fa7d6f6f08f2adffb4ea63bc58/image+%287%29.png?expires=1789191900&signature=036077eea347e3cffc3f418a3a315079651411e87d1037aa8d0f796773546383&req=dSYnHst4nohdWvMW1HO4zVuHihX832ayAQofdwM8qVeaUbRwPLCJk%2BdnVxAZ%0Ao%2B2RAPNlQae84OgGsoo%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 dedbe010d..78e6417b0 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=1789154100&signature=588f0bc02bee77314eeca946fd4a2b0d7762b990e7d44648bd147583aabc09c2&req=dSkgFcB7moZZX%2FMW1HO4zbYXUB5jWeAaFZRyvJPpBZ%2BZpFR6G5HpY23fr37Y%0AGQpAz7hZx1DzyM0UPwA%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1973957766/5c2dd87c0818a0400099a833c9b3/4cc3130a-f696-4967-9fe3-e5623c6f02bd?expires=1789191900&signature=bace5040355c7606c3213d007e7cf669e3aa230295b35b78e27354c56af92411&req=dSkgFcB7moZZX%2FMW1HO4zbYXUB5jVeUSFZRyvJPpBZ9eXeItJjgMqbPwC7lT%0A6kl5PZ7PSShyQZfHrjI%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=1789154100&signature=1142b3cdd2553390d0dea21b4a2d8b1ed1c6f9fdf975d0104eb2f692bbb21dfb&req=dSkgFcB7moZZXPMW1HO4zRW12%2BzMfaD4ZxDZGlqR6GiJeadoTFkO0MfH1ram%0AGi%2BwzTrtbw1AZ8PuQzw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1973957765/19dda72a40db95d78c00c27a1a1c/6ce89be6-93ce-409c-bbea-d34be09db348?expires=1789191900&signature=58c8d838ef931f2668a0fb39bd1e75cc49de0737bd7d27c6085cf76991f3e59a&req=dSkgFcB7moZZXPMW1HO4zRW12%2BzMcaXwZxDZGlqR6Gi1kSAyLXpRyFOghhzH%0AaEX9svgEn9CW8vGB2oU%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 31e6d01de..adfb1c343 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=1789154100&signature=11ce536931c1a0edd85cd83b2bc97d4c955e481e502a8a12e70975e22c138ff1&req=diAiHst3n4dfWvMW1HO4zYGm8i4dFazN085gFtEpvcQGpjpfyv2c6CZwH8Gj%0Aqc%2FHEZ4980YTH%2F7JANM%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2058292603/75752add0bed6a9f3ab217f01708/CleanShot%2B2026-02-12%2Bat%2B08_55_14-402x.png?expires=1789191900&signature=59d306662993bb5eb87a751af9f7d3565e6701f7fad18908748344458fcc7648&req=diAiHst3n4dfWvMW1HO4zYGm8i4dGanF085gFtEpvcRhVQ2VvqBma0tex5X9%0AfztXli0c3ltyYkx2iQ4%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 991835064..f421e37ac 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=1789154100&signature=28a74b70c959a53d735e04b14c322833ca06abf0cefe20cf0db5410160eb9e8d&req=dSclH8h2m4BXW%2FMW1HO4zVpN5H4cXGxEJ%2FadMup7FQdzTN%2F8sbN5wxoX3G6b%0AXHHkb2z5e7AvDcqku4M%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1729186182/ebf4032a12a8c56959ca927726ce/Screenshot+2025-09-16+at+12_32_31%E2%80%AFPM.png?expires=1789191900&signature=01c0c8ddc560cbbf1b604fce164daded3b70c82220754a611b202ea18e328864&req=dSclH8h2m4BXW%2FMW1HO4zVpN5H4cUGlMJ%2FadMup7FQcB4IRjOB9phik7Z0U%2B%0AOByRzWjzPbx5MNOILMU%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 1f0a5be46..e8f794dcf 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=1789154100&signature=5c717b42a05f49248125814c68df83af9bd6c6cae8657811dee655005160e6d5&req=dSklF894lIheWvMW1HO4zWn5HzocZ0Fqc9cNIYuX0GFH6cap%2FDWIR8nUJ01O%0AP7Cu1IFnTbU8XhFQaYQ%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1921669913/7cc7be48cfc7a18f9f469d6cd83c/CleanShot+2026-01-08+at+10_20_43%402x.png?expires=1789191900&signature=21769f4b6b6f5119b1c05f8d1b89b6cb1ddc052f302707dccf445e8556348272&req=dSklF894lIheWvMW1HO4zWn5Hzoca0Ric9cNIYuX0GEJRNfDQZpW%2FSQ5SIHu%0AWRB35uq%2BM9BDw1711dY%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=1789154100&signature=4df82f798bf8a286b330c8560885a54c674aa554cfe8549810b7cc9bc4b5167b&req=dSYlEst6noleWfMW1HO4ze44eC5gkRY%2FguvTv9woD7YA%2FH4KCtNdFLIucODI%0AXRwTc%2FFN46z6jsnlr0A%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1624243810/e6fe1d262597446c7fe21dff9f10/AD_4nXdW-GhByF8uKV7fCq9lTbkVB91FglSL6TSyXAOUk_MLcTV9YsEMBMkm9rgm1oXqv0k3sJh1JhlzZP6tHVkKbDJJ71pDRRtM3aVNG64MDuKDIzgmknh-XDZdNa7biTsTdwGoPr5GRg?expires=1789191900&signature=9fceebb7fb28e7cdf7a45f42d0caf0ea20ccf1cd3322f183f817a57962d3e06c&req=dSYlEst6noleWfMW1HO4ze44eC5gnRM3guvTv9woD7Y%2FmskfdakmAjznfaqY%0AFaD15hd53O29ZNYf%2FoE%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=1789154100&signature=395cd64668d7c293de93089cfb96dded8258bc94c5a1d742fea209a039d09e8c&req=dSYlEst6nolfUfMW1HO4zdaFncx1hI2wDeZsm0Gz1Htl5jMfEVsMgso1JVQG%0AVSuhmaWxyuty4T7TSx0%3D%0A) \ No newline at end of file +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1624243808/b025db8e598f0c88fb16d83d48d5/AD_4nXeUwCKnmFzzrjMHhfr5By4zk5pJlkEn3wbJ8-aNfu13Yl99IjBywpqPx9G07QRzpH1EwRY7uG7Q9m9fib98Gql1cIV7XwUCTzEgBNu79Ey8tCOS5CEVmwveIcEOxJ4fonBhe3g9MA?expires=1789191900&signature=667d05b0a1377576f5d3bc3d6623fa1a4fa6ab04d2cce44f19ebd8881644a863&req=dSYlEst6nolfUfMW1HO4zdaFncx1iIi4DeZsm0Gz1HtOUGXy1937WQl6QvRH%0A8g7rmAefUGlZmauFZeg%3D%0A) \ No newline at end of file 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 f65a063a9..a15c4c557 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=1789154100&signature=569590ebda82698f3a7b56fda70728f7527ba8c7f29bf2c42e798d1fa068533d&req=dSYvF89%2BmodfXvMW1HO4zWbPxEl%2BMjkzHn9K2IaIG2LjOa1ehv2VnMGVhJTI%0A0UFHIV018gpHdCRkOfI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1681607607/ba6e379d2769d190f0970a0adaed/AD_4nXd4aZkqjJFpiXMPF28Pih7HmSJ9pPsnoWAfVgiLdFRFiTkO92YtXteIjvDHaPl7T0tjfpRTBOlyrMbQ_aciCNDgfIuEvV3szmKvt72x5O51DMSClXOYWk1JIRIzylwkj3joXqZcLw?expires=1789191900&signature=70e53a68e0ddf2cef572253ed832d73a055193b7b48a5f60bc283f718491bfc0&req=dSYvF89%2BmodfXvMW1HO4zWbPxEl%2BPjw7Hn9K2IaIG2KC5Igxp2VXXXLdEDNY%0AMb5pKxJ9ODeV3rb0yZU%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 b03ea1659..6462d2692 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=1789154100&signature=3d7899e0c90431d88332d8f11c83fe78c90773b372d6fc19cd409cf24da77819&req=diAjFMp7lYddWfMW1HO4zZyGrsdzvlMRF6uXnTLMvvAe%2BsivzQZPtIb09LkI%0ANPmf%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2042358620/1bf2311353615c1c494da1312a17/124b93a8-0a9b-4c84-9d1f-ede6ca3498dd?expires=1789191900&signature=8717d32d3d03fd57bd2fc74225ff29d8b1bed97c8e622e99b8ff226591b73ff4&req=diAjFMp7lYddWfMW1HO4zZyGrsdzslYZF6uXnTLMvvCrmcqJ9h%2FEnBQIgkIr%0A%2Bdq%2F%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=1789154100&signature=bbe8f5350b0da37dafdba8b48ab66e63d8a4638ef9dc8196664fe44c50552068&req=diAjFMp7n4FZWfMW1HO4zU6VRfTLTbhoxNdRzYWrfF7E1fr4Bs9G9nJt%2BYaj%0AQIBr7nUPSHkLUyxJJdg%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2042352060/162f9e61f7fbeb689201dfc1cac1/6a7fafb2-31df-43be-a43f-0059d735e3c4?expires=1789191900&signature=d812e8a6c58dc7834cd391eb305161f43447f1b5281234c6cf6b79b0d961b6e3&req=diAjFMp7n4FZWfMW1HO4zU6VRfTLQb1gxNdRzYWrfF7E3pvt6wV%2FLtyell5G%0A4Es6fHaKVo0KkpCGUsY%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=1789154100&signature=55f5188900bb24741a0ed2e7a9a962108c9eaeb2ed0724e9fb26596e9ae23b11&req=diAjFMp7lIdWWfMW1HO4zQTUIf17ldxPD%2FRXAPlQ7La%2BAvIC%2FitBbbpGGEkM%0ABs6f%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2042359690/68879db64559ecf87991f73ce058/671ff972-9e08-4686-bc04-955dab4b2de3?expires=1789191900&signature=d7994d6356c6b9ba7f4112ed9f892becd05bb5b1d5d3ca9e5a96353f25759eb2&req=diAjFMp7lIdWWfMW1HO4zQTUIf17mdlHD%2FRXAPlQ7LYwSMqstmfO%2BNMAToeB%0AzSaL%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=1789154100&signature=4ff7399d4ca209da20d349ea2b3ba123b1e494d9b953046dd4e1305b438cfe7a&req=diAjFMp7n4FZWvMW1HO4zZ3%2FGGOUZVQLy8OQfYsvK3wamXeqzZ8%2Bg970Vu4s%0AOhWHIgs5Ys1qp8VLZ4c%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2042352063/25eca25bcfd573ecab30dd53158c/074454a6-fa5a-4c49-8b19-02d434b4ca50?expires=1789191900&signature=2795dfdccb2698eacb6b15ea25dcf5decfabf4d6222861f9fa8e1e7f098bfc0b&req=diAjFMp7n4FZWvMW1HO4zZ3%2FGGOUaVEDy8OQfYsvK3y2fyqU7XRIN9KcWHsy%0Azjk71LAe8i0Vye9GqOA%3D%0A) ## Choose a model 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 89644a45d..9a4b191ef 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=1789154100&signature=a14a9d36c0c6c2153cd6b6751b2e90fd2ffc9cc709d3e1051e72b96ed145322f&req=dSYmF818n4VcWfMW1HO4zTEDauIfnveAEv2ojHLMylZTutL%2F%2FqcChDMusxHA%0APFQeJQbQA0337AERHaI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1611422430/c8e0875feac1f2c7cb033be74fc9/AD_4nXfLU_bui3EXcCjQ0qm70HD97neqjGayKeDer_t76utlci8gZSUjYRhw6ZSOlDdqSEcwXBzd_shAh7pQEJ-8OoE0O21DM5coOgxmO_WD5hlwiuwtS2iYXcTavhIRyQT5zKFWvfn3NA?expires=1789191900&signature=e6ab25de23df82507c2ca0efc21fed92a35f479e21e1140ff096159f74561135&req=dSYmF818n4VcWfMW1HO4zTEDauIfkvKIEv2ojHLMylZIbtX2D8HMlFLhUnNq%0AUZYu97tnaqNBAcfWLeQ%3D%0A) ## Turn on the Claude LTI Integration in Claude for Education organization settings 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 ca12e7d02..d4bd81f09 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=1789154100&signature=4fa54ffd474e6375ff7617ae1443ab6f8108fe863dc6425a2cff42ea9bc33ed3&req=dSYkF81%2FnolZWPMW1HO4zf7%2BjE3v7YTzn6MrEicvimCaqTY9O9V%2FyGRhLaus%0A0f5TtKDjupYLNDyempo%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1631413861/42c3b13d7fc44a11a88ec2b9cd03/AD_4nXeMx8QXpeZZCkfAnVSwx8KZ9n4Vr2rvPdQddyE6ZNxch__F6ZqFs1G4ZmU52Wvb7gRlwRqquTLdw8IQv-gICDyP-MXqiQK_Oe7gX3SKsCKKt2IEpMx4qDeMeeZufMaJfv16XgOH5g?expires=1789191900&signature=0d7e5425d21ea25f68d6939374de03ca4cb641e2aa1a161f512310b69e4fc8d6&req=dSYkF81%2FnolZWPMW1HO4zf7%2BjE3v4YH7n6MrEicvimByHy8%2B86VQpMjJnGH1%0AwYce0RpXlIUKKjXYXA8%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 ef2d1b137..617dac19a 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=1789154100&signature=1363e94bbd91a2c21d253d07cf542b44a3842f0d23981e75437f13b65440b99d&req=dScnEcp7nIdeXfMW1HO4zQe5GlaO3iH1S5x65TIld%2FAorwnUD6aNJTkX1sWy%0Akisn%2BJ2mjZMtWH5EFAA%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1707351614/ccb910e4b87b1e96ad9a11bbd835/b57b2130-d8d6-4499-89f6-6c12de236fd4?expires=1789191900&signature=87a002049560f742fdd9a455ed51b83f4433ec719fb22d9101a312b715a36644&req=dScnEcp7nIdeXfMW1HO4zQe5GlaO0iT9S5x65TIld%2FD75isEnHGApgVWWYL3%0ARWueQlzNklT8S3AFZXQ%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 b209cd856..49665ac18 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=1789154100&signature=ba3a01ff94ecb7a2ff88adf315c9f89b34c4fbc97deb0d119ea4e63363953595&req=diEjH8p6modfXfMW1HO4zQHwg6jWkyqn6DwhVVpk1mChRNve3tdq%2BtRD3OCO%0AJYa80ocvUZxaNAg9JAs%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149347604/936ac4eb025d3ef1f00c3b8a26b0/image.png?expires=1789191900&signature=e3ef23fad478938433690425ae5bb1c4aae5c241aa416a0543b702f33898cea8&req=diEjH8p6modfXfMW1HO4zQHwg6jWny%2Bv6DwhVVpk1mDEqB2NUCmQXKvTpD2S%0A1Q706KUGZNtUNGuBpNo%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=1789154100&signature=a6d6a05db993cdb34d7b1854b3affc6583ed4968ceae8e95074c27813583ac89&req=diEjH8p7nIdfWfMW1HO4zYnqMIyVJnSI0wfO62ivdG%2FOSMj4ygGTuutCd3qZ%0AWglfSbvF4h4AVJCN72I%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149351600/c5b979c366ac2738f60ea84e85b3/CleanShot+2026-03-10+at+15_37_41%402x.png?expires=1789191900&signature=bfe99cb8a160860cd12b4bff3cf15b7cd27596c284ad2f79ab70078dd014c412&req=diEjH8p7nIdfWfMW1HO4zYnqMIyVKnGA0wfO62ivdG9Z4v5U5Z4ns91n%2BcSo%0AFukxfespfxJNwBECDBI%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=1789154100&signature=b0d92ead3d338148b4b699067ec2386d27e2ac3e5a590e813ba71a7314cf6ef5&req=diEjH8p4n4FaX%2FMW1HO4zRzvvIwKdUlHq7nEDCGq9G5m4Nex8wGDdi2IuAnN%0ATx%2BdwZm8Zq0cSeB%2F0XQ%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149362056/44993661ca2db771fe924d0346f6/image.png?expires=1789191900&signature=34a9bd144601d14b7f961d46ab5f65dfc34bf72f1538be93d77eda067f2b0cb4&req=diEjH8p4n4FaX%2FMW1HO4zRzvvIwKeUxPq7nEDCGq9G4YeaY8eHnS7ep4Qc3w%0AU4tVHidsx9gJJOCKcK8%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=1789154100&signature=7c7e70c3ef03cafc7b5b7223dccf726aaca2aa8b83821482615a60e4d16b36fb&req=diEjH8p5nYlaWvMW1HO4zaPdGQ5WUCtHe9HwvwG7ubhOpQobhdGsadSJVPJR%0A2ZATCMxuOmTti0Am26U%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149370853/db66f5cd03683b9cc119d0dcd6b8/image.png?expires=1789191900&signature=87a0362c5daba4c2284ce4199c37fbd8567a1f88d6fa420b3bf57f299fca7770&req=diEjH8p5nYlaWvMW1HO4zaPdGQ5WXC5Pe9HwvwG7ubh7U%2FHWU%2F7v9M1DyIXl%0AEFYnCZ9v2m3kdnd7wzI%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=1789154100&signature=90acea9e5e4658f0c32672455ede02da441a927bef9c4134c1058324d6d2287b&req=diEjH8p5mYFdUfMW1HO4zevsAv6LNu%2BLw6z2wGSwkbuILykh2ua6%2BJlA4jbP%0AHyOOnMOiIyeMUBIH8kE%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149374028/97813fe3b515c2e839d8d92abd79/image.png?expires=1789191900&signature=1c6b26874e79fa86367f921028bf3010a4344880310c52059c4773456a194c91&req=diEjH8p5mYFdUfMW1HO4zevsAv6LOuqDw6z2wGSwkbsRB4Amo%2BsPmzPeJMl7%0AXcd2SMPuQTXnENJ8BZI%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 cda376a21..16e4681f6 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=1789154100&signature=cf75ca43de4c7563c9fa71e0af8788d87cb1a7eaac53c41f93437cc0ee78b1f7&req=diYnEsB9noleWPMW1HO4zUOPbPXHk%2BaMnt%2F2nPMwUPjwrfQZQQzPyB%2Fo7CTX%0A7uiKcMljf4zdIzIQyc0%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2604933811/ae37c41fc808dbdf48d135338334/6cc9ba4b-9d31-43a2-ab80-8048b5f9d791?expires=1789191900&signature=f2fc390e17fc1bb3da75b0691891707ddf3d6c9514d2a406e63c0ee371c014c0&req=diYnEsB9noleWPMW1HO4zUOPbPXHn%2BOEnt%2F2nPMwUPi8ZihLCvEJ7vctMAQI%0AP%2BQL4bPvkTibrf732Vc%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 32ce62ac1..3ee025b8d 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=1789236000&signature=3bf06ce28018f3aa11a09087d5fe633c9383ad698efbd12d8f96b4b0684a2d98&req=dSYuFsp8mIZcXfMW3Hu4gZzas%2FXtsD1Rm2rRiVwqPzY2Cf4EToQvqM0vv%2BUy%0AWg%3D%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1690325734/d47f714680d78408d6022d06b8d1/image.png?expires=1789290000&signature=0a414ab2fbe4d4e0ea48758a27bca6b5ba82f53c905e707baa7b86feb3b0c299&req=dSYuFsp8mIZcXfMW3Hu4gZzas%2FXtsD1bnWrRiVwqPzb3ACc66YH9b2czsMpT%0AWA%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=1789236000&signature=c7445e69cbebb85f9556b9226b2a870456069f419873da37c7dcc43785fe0ad3&req=dSYuFsp8m4FcUPMW3Hu4gbNj%2Bk78VQ%2Fije5vzcg6znWZNm0F%2F2prk0KoJ4Xm%0AQA%3D%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1690326039/3a91cdc5fff57d188a18ecc6273f/image.png?expires=1789290000&signature=a2edb8323655ad65bac902adfbcdc07b596e7cadb54aadb64c1621da23dd38c6&req=dSYuFsp8m4FcUPMW3Hu4gbNj%2Bk78VQ%2Foi%2B5vzcg6znUsymbAylEvpF7m2%2FzS%0AYQ%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 9944d75b4..083caf860 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=1789154100&signature=033ef899d23f386aa95bee37abdc9530e145ee97405fab897c2aadcfe6ca1ad9&req=diAiEs55mYFfXPMW1HO4zYFJywRECZ3PPQVowIiib2kjDN4Bn19C8t0Y%2F0U7%0AtT27xZDLHF5udiGhpyU%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2054774005/25bcfffba6c249cd128d6c3f6d52/CleanShot+2026-02-11+at+16_34_47%402x.png?expires=1789191900&signature=90b4fecf21a9d5d800b37dfcf88211dff7c1214966dab7fcee9bc54d791a35bb&req=diAiEs55mYFfXPMW1HO4zYFJywREBZjHPQVowIiib2kIx6Nl17WHOzL%2Bzueg%0AUf9D6XzyR5dIYYXD54Q%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=1789154100&signature=0b70d17129fc140a987b25b39eaeffbdf80a6090b361a5f7bed7b349957bf20e&req=dScvH8B6mIJZW%2FMW1HO4zXJcBmRCkC1KpMW6Iph6YZfZICZneGco6rdPuZ91%0Ad4h837TAyiNpVAUMI%2FI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1789945362/ad72504d5429960f369b8b91b43c/86f06c0e-6eaa-4574-a4cb-2c38b273613a?expires=1789191900&signature=13fe1f215c739e6caa102609907d277fc7e65bde4e07503dd6df942d489bdae2&req=dScvH8B6mIJZW%2FMW1HO4zXJcBmRCnChCpMW6Iph6YZfLwS0Dba%2BGT2roEAuH%0AqdXAcDKynjgbRYjjQLM%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=1789154100&signature=305e67b63bbd056a83d92539a62f2765d5e8caaa48361dc604565758b2e290ed&req=dScvH8B6mIJZWPMW1HO4zdnseB2T6zujqgKIA6CM1tqRxtZjjcTwzBSi%2Bn7q%0A%2BV0T42qrZ7w0uvY5elw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1789945361/e3188cb8edb9ca7c303615da6378/f1c99a7d-5956-48d5-9ec7-b7ae6c8c3d28?expires=1789191900&signature=1181b9080cfd69f05ee0f3c783776416a7c768ac542a40adc45e236d65163547&req=dScvH8B6mIJZWPMW1HO4zdnseB2T5z6rqgKIA6CM1tptfGJfrPEZlFaCuBps%0ApiZI%2FvxsXok8KXie5VA%3D%0A) --- diff --git a/content/support/12157520-claude-code-usage-analytics.md b/content/support/12157520-claude-code-usage-analytics.md index 820436274..cf287013e 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=1789154100&signature=b3d2320aba77f54efbaae42f51b1dd4277a8b98d2b99026897292f2d1a312117&req=dScmEcx5lINYXvMW1HO4zfiEP69Rin3PCX9h5MbdDjOlOkBLVHes4462%2FwyJ%0AO%2FU4BN%2FSjl7s1hiuM6U%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1717579277/46c512f4b3ed05c359cecd78ed5c/e0ce2c19-39e2-411f-9a1f-cb1d46439a42?expires=1789191900&signature=cc286de54020dbb7b8be40bedcb1fb0bf059f8bc16d5fd7944612ec40b316802&req=dScmEcx5lINYXvMW1HO4zfiEP69RhnjHCX9h5MbdDjOgbni%2FLdUYkP5EszD%2B%0AtKU77TvwebAgRSqPxM8%3D%0A) ### User-level metrics diff --git a/content/support/12260368-use-incognito-chats.md b/content/support/12260368-use-incognito-chats.md index cfca19b36..733ed9e2a 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=1789154100&signature=4b5f3dce4988059a130abeda64b5495e42d0b52a9236bb436c540d45946cb1e6&req=dScmH854lYZbXfMW1HO4zeUcuwu8a%2BGKDCAt3Cx%2FSO3rHEC07Of4aozxKN7A%0AwniXsPG1vYSN1zenbEQ%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1719768744/c7a2fa56cf284e48472f3b9c4dbf/030563f8-9f97-4891-a749-9ae95968a063?expires=1789191900&signature=cc5258ad27223a4fe0d821c4ecc7f904d9ccaf9ed281c291539dbd6527b57d19&req=dScmH854lYZbXfMW1HO4zeUcuwu8Z%2BSCDCAt3Cx%2FSO24AWDDdZRv6jcltNdJ%0A70zCNgg8aVu2QHoGjIo%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 8ae12dadb..5200c6655 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=1789154100&signature=a2b145acd0c0a888801b48e71f4aca1e42a5c73cc73d228464d4a4ad60bd6cb6&req=dSclEcp5nIRXXPMW1HO4zUAXI8UDV6zVFalhp3bugHJxAQeyHoZCmW%2B1NWuv%0AraI%2FR52KuWb%2FESIOdec%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1727371585/b18ca03a6357c52d12d10386f28e/dab2dcb2-f670-4173-b77d-38767a34cec1?expires=1789191900&signature=66d51054017fbab5837a5a67f80c46acc042ad0766d6daa7a90b826812c8400a&req=dSclEcp5nIRXXPMW1HO4zUAXI8UDW6ndFalhp3bugHKdf10sP6eTGmu1ymRO%0AW8m4ECB7x2BqJ60WEb0%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 eb2770fac..bf7c4a0c9 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=1789154100&signature=139bb24094014e4f0da19801fd50e236bcf769e315c6fbb2475717232042aaee&req=dSgnE8F%2FlIZXXPMW1HO4zYj2ARuYoPQ5opE7m38YdffcAndS%2BicoK8Q9Lqn%2F%0AVekPQI%2Fxwzv2PxlcA2Q%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1805819785/5e203c38e6ba3f76bfd1dab0d5ce/fe062e7c-18cb-48cc-a7e2-754ac6e6c4be?expires=1789191900&signature=7b6dad0cc2d75e43a9cc99126c4b56c9ce2b2d348fd330defc4b9f75daf0aefa&req=dSgnE8F%2FlIZXXPMW1HO4zYj2ARuYrPExopE7m38Ydfew9KQWs3Akm0KLo4dk%0A3DtXtpts0c%2BiA4oMKdY%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 d1dfb7a24..f3badfd6d 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=1789154100&signature=b844db29bc9f128a18adde329d360b6bf9b462ab5bf86dfb38e72e79b1f0b797&req=dSciFc53m4NbXvMW1HO4za4BXqYi17bF7y68oYp%2BYg9UfTFiswwuzt1Llirk%0A8TOkA0uaPI%2BRxcpO1pM%3D%0A) \ No newline at end of file +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1753796247/e6a8c6ef8653b229c5758e881242/c2fc6fc0-d163-4119-93e0-394104d86bc9?expires=1789191900&signature=d72b6c0f45b6d62b6ff85f5735a2016b163f523d612f046ddd649d07b75992cc&req=dSciFc53m4NbXvMW1HO4za4BXqYi27PN7y68oYp%2BYg%2FFkIzvAsl6%2BM7jdx%2Bf%0AvbMBHfRddHzl5sh%2BXPE%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 076b68c68..67952f010 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=1789154100&signature=3f62aa3a17074395b47e586db22ca445ddff2296947047f19b10ae04860e8a51&req=diEnE8p3nINYWvMW1HO4zSOgDyIpx%2BKsH%2BdCnFXB0uhv6Mf6WqRghGpTLwja%0Aj8Gw%0A) + ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2105391273/8359cbf8be20dce0f1cd3fd40e6f/CleanShot-2B2026-02-25-2Bat-2B15_50_16.png?expires=1789191900&signature=4f63d6eaff106d57c085b98848d81bb0e51880a70f12b89c2950fbd736953e15&req=diEnE8p3nINYWvMW1HO4zSOgDyIpy%2BekH%2BdCnFXB0uhrjZwW2TlDkOgE50sv%0ARn2R%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 112081d45..7b5a922ac 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=1789154100&signature=47f522e85ed7307b4a7c4fa86c55de403c412bf761a76498cd956e90048fec9f&req=dScvF857mIBYW%2FMW1HO4zQ9pXUML%2BnTa0ugSQm1MFW%2FAub1jKnNb3ehF4DD5%0A9mip%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1781755172/63c92550571842577ad435860ec5/6f5cc4e1-ff7d-48de-863a-c4e6184d4605?expires=1789191900&signature=f12d282b2d090116efe546ea60d830dc1821f431ac3949c68c0e8a8c7cd3af65&req=dScvF857mIBYW%2FMW1HO4zQ9pXUML9nHS0ugSQm1MFW%2FzqP6Ynsl5bpFxmH5S%0Axtiy%0A) 5. Toggle **Allowlist** on: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1781755578/a6bafff5f084dc86ae463703fd3d/6cf0ee18-4e71-4129-98e8-cc08174e3c3a?expires=1789154100&signature=1e2a4f76dbddcd0997ac59291106aaf90f3ba8ac90760b1e805cf096de6ea16a&req=dScvF857mIRYUfMW1HO4zaj0BHgqTKMFTAorLxpdoc%2F9cqJDCypVBqDzQlUG%0AxvtE%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1781755578/a6bafff5f084dc86ae463703fd3d/6cf0ee18-4e71-4129-98e8-cc08174e3c3a?expires=1789191900&signature=c54f6271ddc8bce7cf9be0433b5316801346b1a27ee10fb8cef52afa0a1c2ddd&req=dScvF857mIRYUfMW1HO4zaj0BHgqQKYNTAorLxpdoc9eYNilFUWzAshAVRYR%0A09cO%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=1789154100&signature=1ea3838c76ea741d7afaef470ce94279b52e60b1bca3ce943de8540291521ecf&req=dScvF857m4hZWfMW1HO4zYUJqYqrDzbqCEDZ5AdBjIYSscwTdjFbU8t2346k%0AbeyNLVUUKbnLKyXDEeo%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1781756960/ad18af50c83d35f2673656c23e00/a7ee450f-0c7d-42d6-a75f-fb1bc088cb52?expires=1789191900&signature=fc479990ace4f6b0d9fbdefffed5dbd1a08995f540c46af8d2b1595638126a70&req=dScvF857m4hZWfMW1HO4zYUJqYqrAzPiCEDZ5AdBjIZewOtNCmO3KsP%2Bcd9Y%0ALgDaeiR%2FyTpqf8be%2Fi4%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=1789154100&signature=2e8c551fccd3c93e67f9f0d3fc00926c9b6a28122c650ddc7b80a947736a8efc&req=dScvF857nINaWfMW1HO4zTrxBaEo%2BlOUqXridZhfx1JR6Aamh1BCS%2BVYQV0e%0AgDn0MxEHdlDSOht%2BZls%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1781751250/6558c0f59aea7976bd44b0213d76/e750f02b-cd0d-437e-a83f-9ac362cdf456?expires=1789191900&signature=be0d9bf95c808fda096666a18974ff8e3bd3f9315c325141378675726214eba2&req=dScvF857nINaWfMW1HO4zTrxBaEo9lacqXridZhfx1IUlNNGBaKWLV%2F8aYc3%0AWjoFUkmw1Na%2BUx8F%2Bng%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 5af9147b1..6233785ac 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=1789154100&signature=f88b7fa9d99ea41325ef0e8e1a1cf4bcab7464a87659aaac7bed06169c9621c3&req=dScvEM16m4BaXvMW1HO4zR8%2BAFqBR5l37XrRA1YwWGs13K0koSCbNFIQATSp%0Aj9iFdpNU9mfF9jEuheE%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1786446157/07ec74cd46317f8278083a317841/6448f3ee-c6df-4417-8a13-90d8c2ca3d55?expires=1789191900&signature=cb0b0771dcee3123845e17f51b06cf24f80c9fb3f22a1c8ef137368893ec63c0&req=dScvEM16m4BaXvMW1HO4zR8%2BAFqBS5x%2F7XrRA1YwWGuwsdPeAkpWS2qw%2B9K%2B%0A%2FThmlase0vAlad387zU%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=1789154100&signature=6f6ef73c19acd8c2d031453803f48a5fe0fea4311b3bc00063bb0c8bef7e2991&req=dScvEM16m4BaUfMW1HO4zcR0rZ81iu3B7DtpMiX%2FBYkTBqJWm1WD9XZAKqHn%0AhgG1m%2BKPa%2BwsWQBEKew%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1786446158/c092f1383826cb871493f74169d4/97b7cb98-5da2-438e-a920-e170b8b9790e?expires=1789191900&signature=2920f9c9f93322acaa16774b2e9f6e859218338c2f6bab736cecb6fe7bf2dd6b&req=dScvEM16m4BaUfMW1HO4zcR0rZ81hujJ7DtpMiX%2FBYmZK0spTIkLC0yz2Gvf%0A5Ude%2BGCN9ZWlZLypJLk%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=1789154100&signature=442a845953ed63f3963fa1cb04c5650860c613377def855f041e9fbd2f56cfeb&req=dScvEM16m4BaX%2FMW1HO4zVbcTGqC5sDPUQl3YqgIJdYrzfobvU0aK87uWYhr%0Abs6NnZ9S3a9LrckayTQ%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1786446156/83ecf0a5b98eddc9ffc9694c50f7/353589ce-b678-441d-8909-71b45fa2d065?expires=1789191900&signature=fa3c67074516f8893b4f7a9a1259c4d7277a42b3148bdf0d4aa140120ca95d06&req=dScvEM16m4BaX%2FMW1HO4zVbcTGqC6sXHUQl3YqgIJdajqjQNUHZ7zj8zz0wU%0AvsVxa5fybHwvSWGCftw%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 141473e71..54d7cc8b6 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=1789154100&signature=ac65aadadb028704dbaeb751d693b033d45f5e13fe6a167f9c501f377400cf36&req=dSguFcl2lYJZXPMW1HO4zWggD9dQo5ibRC8c%2FcM5c2LQ%2FH3oYRVh%2B2HfyKln%0AJAPKQlM4KBIQCQUGlNU%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1893088365/2ca4b782dda90abea1fe5f4150af/CleanShot+2025-12-18+at+13_14_30%402x.png?expires=1789191900&signature=1b5ca941435651c2d1d3035269e5ce1332f479d210b2b40441fa7028c37c10ba&req=dSguFcl2lYJZXPMW1HO4zWggD9dQr52TRC8c%2FcM5c2J13IpQIEHIJAOD%2B12w%0A9Tu67y%2BSwbUhYFJAs%2FU%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 82344eb93..36b6c8e7a 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=1789154100&signature=8b4ee8f9e56d2a8060a83d4598e6a1d06af2d272968629e5ca309a1432a42887&req=dSgjFcp8nYZdXvMW1HO4zYqyZctM%2BYa2gN0ADj5oqFDydymid9DOxDKlShH7%0AvB2aB8uOyTuuP977qF4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1843320727/8d1c859ae9b8e0cdb536d024bf40/9bc3d239-8eb6-4bae-a032-a236f88ee606?expires=1789191900&signature=108504a694522344dda890aad0fef85f9bfecd5ff9af28f75d74816f495d6d8c&req=dSgjFcp8nYZdXvMW1HO4zYqyZctM9YO%2BgN0ADj5oqFDKwlkRrXqMNYMzu6Ai%0A6L78ZHv9gSTOryeaZAg%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=1789154100&signature=48ac017a5c2f2755465071609162ad3a84807a434e46afe8e4d6454e28923ab5&req=diYnEsB5nYldXPMW1HO4zZ3Nqm9xjSjt7A4lHPBihAU6nqWanYs8Y9pp3jDP%0AG6x1%2BZfx5IKWip0rU%2F0%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2604970825/d7b961271be69e7541b406df1efd/d845324e-6b4a-4f54-83b9-0bea86ec09c6?expires=1789191900&signature=c3d181185ddc98ad05f45f63e9f81976466679ad7e279ec21ee3bb4fd57796cb&req=diYnEsB5nYldXPMW1HO4zZ3Nqm9xgS3l7A4lHPBihAWRnYkxQknfZFmXbhJ7%0Aa4bGxsDDSUgjR3kE6Q0%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 ccc6b2f4c..73cbddecd 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=1789154100&signature=2893e18dd8fc29febe54a53fdfac9d67196fc2e4b4e379ba667c6878c7e6b832&req=dSklFMh6mINaWvMW1HO4zRZTxFPAvs%2FSKAqLF4ERnlXvVPbA156qj018fYB%2B%0ASLcippSKHHfj3I7C6t0%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1922145253/f2e3d4e0fe43a2ea07e89244764c/image.png?expires=1789191900&signature=0c956e23515d1a25c64d1352b6ba59b5964d34a0dad02b2f8e5ea450fdee8124&req=dSklFMh6mINaWvMW1HO4zRZTxFPAssraKAqLF4ERnlVwS2I1p3SdbU%2Fdv0t1%0AI2n0KwrwCrn51W8n9%2BA%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 aeeacd462..e25ae8266 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=1789154100&signature=e6489a90e73daf0cb397561642c35782ccab1a1f2273f7b683eb95951bf85e1c&req=diQuHsF6noNXW%2FMW1HO4zSdmHnU4%2F8CNe3H0OpmIzWEVCPKaXANr3gqlrSzO%0AmbL5%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2498843282/561d5ceb1c3a5df75bdfee8bfc3f/d2491145-362d-490b-bdcf-66a0a7656ddc?expires=1789191900&signature=43cbdafd4890fd63000a3f7830cfeb835ea48a34ae8f993f0f9eba73f8f572d6&req=diQuHsF6noNXW%2FMW1HO4zSdmHnU488WFe3H0OpmIzWHkYMIBg%2B%2Ftij8Q8e49%0AUEIH%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=1789154100&signature=1ad350ae2e0d062158f53acd0cc9432e60f78204d517417e6b6e26d883cd68f2&req=diAjEcl6n4dcWfMW1HO4zWHctRSWktWryoyXAW0OlXoofzVlAG1ost8TLov%2F%0Azixh%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2047042630/0617a562cd28a7ff0e607d66a30b/6bd08e1d-2b65-40ab-bc79-a257153854c1?expires=1789191900&signature=6588efa0eac21f6bb4855999fe19d2aa04328b8b1531ee1efbb5afa6cdd8583e&req=diAjEcl6n4dcWfMW1HO4zWHctRSWntCjyoyXAW0OlXr091oV%2FgwO1K8YVkBZ%0ATEFz%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=1789154100&signature=0a11127603b397c6da70e40f70f0b98466edb087fb10e90610fae373d11a134c&req=diAjEcl6mYVWX%2FMW1HO4zVjmWSABanC4PM2D8ZcdgrgX5VDzcoCB6dlqYrbU%0AvbIYdoG01mWSNk%2FlUk0%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2047044496/b8df54a0331784cc9ae8f00112aa/bf9609c1-dc93-4665-a066-4cae2fe4b002?expires=1789191900&signature=255b5cd26e8e529c47eacdfd2ca6f62bb4b4f23116cd9bb7d813c4f7189b1aa2&req=diAjEcl6mYVWX%2FMW1HO4zVjmWSABZnWwPM2D8ZcdgrirOfK8lm4arF8lSKLu%0AgkujbVfn4mWKfki3c68%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=1789154100&signature=ab2d2b748e3a38522d1f606694c30c67b93f18718449b63152a6a3ef4ead5a46&req=diMmFM93nYNfWfMW1HO4zdAICwagB3gLItXtKivx6ZGzWs5CIIY3kLA2Gflk%0Acn%2BvGcYJgOolTx%2FGGzI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312690200/bd2403586d4f6651ccd79e2a45af/b9f8d7ce-0def-49d9-bfb2-3a14352d7214?expires=1789191900&signature=74a074af465001cb2af719e4cbcff2184629a12920b217b89d53e244a242e6bc&req=diMmFM93nYNfWfMW1HO4zdAICwagC30DItXtKivx6ZGm8g6muQWqP9t5hrrg%0Aj0alYedVlNgItxBKj70%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 1e41b5e55..e967a4e02 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=1789154100&signature=0a2ee5405905e56e42ea810ff09b6d111c2ccac752c8d7d761d6df9317dcae99&req=diMmFM5%2Bm4FWUPMW1HO4zXBDQ6JVCF53xFMG%2BIEvQSckMsplpHRmyb0Io2iQ%0AdLQ6pJ4RYVElMDJgjSE%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312706099/35d5d3ec149880a96bb7acec59f6/a4cfce55-86bf-40b0-b455-c8f412d48e9e?expires=1789191900&signature=c6cb80414248099c1c9339cbefa8447f4f057ed6124cad9bf0c7492daadbe9bc&req=diMmFM5%2Bm4FWUPMW1HO4zXBDQ6JVBFt%2FxFMG%2BIEvQSf0TIFnfC4%2FMby37Dpg%0ANHbGwxzjRFdrCF2NPc0%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=1789154100&signature=09073f8b389c5511eb7afec890f7ef2c648ae9e221e36b2cb404350650e987bb&req=diMmFM5%2FmYdcXPMW1HO4zeBEbszZkv5Jyb72rapuHpNmMi5V6%2B49kDM5gv3u%0An0Wn%0A) + ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312714635/b57870b51e6511c8293637bceee2/da1ceabc-b6bc-451b-9cda-24ff6aa90d02?expires=1789191900&signature=2013db561ffe628d1bc07563139a9f2a36fd1c62db88b3f4f694354a451a28e2&req=diMmFM5%2FmYdcXPMW1HO4zeBEbszZnvtByb72rapuHpPbYeQiY2yQnuOvQfXj%0AIhqP%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=1789154100&signature=9098fbfee4659c6ecb76fb79dbbb34269e9ddfb3812b280e4ca43c3adde3f38b&req=diMmFM5%2FmoVdWPMW1HO4zZ9La1SsHM7D5hujYvMis4fEds22N0aqIsqRRpVv%0AbomU%0A) + ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312717421/c97fce49ad17d4660880a05fbaaf/59fbfa2a-1072-4662-8ca5-102970d5a795?expires=1789191900&signature=8a452d4b6a78ecd0ac96484dfca87807809e8804907e2da989066200513c2feb&req=diMmFM5%2FmoVdWPMW1HO4zZ9La1SsEMvL5hujYvMis4fCP6WV8EMJMFz9etsX%0AFYfj%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 ca1e4251b..474fc7570 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=1789154100&signature=2dbe6564382b2f8cea0270e2024b6b5e1a444ebd3646a6f696be97f1d55a2849&req=dSgvHs14lIVcX%2FMW1HO4zQNx6%2BsmRl5Rg%2F6XaftFnjw1w9ioVirfjjBrQnuK%0AdQjUEWGTxY9MTllKI%2Fs%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1888469436/1725e63ea1a2615948faecf4ec73/9bd276a1-7329-414d-87a1-d04dac93fff7?expires=1789191900&signature=4d9e30425127c2a230e9b5dfb31fd08f9a1b4697b11047dfe11e91593cb049f0&req=dSgvHs14lIVcX%2FMW1HO4zQNx6%2BsmSltZg%2F6XaftFnjz4VTXaaX9aIsiA0Fnd%0A4fKG779jHSOsruh%2BN3Y%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=1789154100&signature=a241f38109b2a8e6850ea55c87ca3c58b2877913a22a492c3ccdbd540b1e257b&req=dSgvHs14lIVcXPMW1HO4zWzx2LA3InsgXZ5D7eVpMtdbpbgjld9Sdl%2F8lIpb%0A0aqIfk07vaK8uHrqQao%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1888469435/7a766bbe02e61c7d8f05deb5b8f0/b0bda400-47c6-43dd-9907-131ebe180b36?expires=1789191900&signature=568171288ab31d0bb71a88955676e9b103ac121481f0345c68b470f5196d8a94&req=dSgvHs14lIVcXPMW1HO4zWzx2LA3Ln4oXZ5D7eVpMteIhqQ1shkz5YO2aN4E%0AaaX%2Bnnqlxu9tdD08eFI%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=1789154100&signature=04569326aa7f56d564984cbb4b73eba28d77b4db58f323fba8f4e9b921be369f&req=dSgvHs14lIVcXvMW1HO4zZ7mWsGa4j2iA00cbyPOLDVbaB7vG0Ol8bAaXHTM%0AU2Kog9yEhJ9k3FliqvY%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1888469437/46ac5bc55484ca01556d87a5ade7/b01a7651-ad65-4b32-93ff-16dbc9ca97c0?expires=1789191900&signature=90f11156d533ef2973e009d1ccedd797600b05842c09fe49f69365354642c147&req=dSgvHs14lIVcXvMW1HO4zZ7mWsGa7jiqA00cbyPOLDX%2FqEDFShxRQkB8Tp9h%0AtM2vsZBWV2tZbZngpgY%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 e6f09081f..a8dd0780d 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=1789154100&signature=d9f222615761151bb25e2ebe53a657a00f868b81855ce28f948d376c7d0ae50b&req=dSguFct%2Fm4lfXfMW1HO4zXg5BouN5ha1zWhrqpWiTMkFxSeMGzXwlaJwKRqn%0AbLZ2IOdbAO6MWuZjbII%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1893216804/f2209c3ec6cf4fc2e803d13bbc9d/40520c9e-ff82-4a7c-adca-5a064fe18d8c?expires=1789191900&signature=137c45e739f3f2122c6e7b40efd18f77ea3ff34e50afe9808d204bd7a3d8f841&req=dSguFct%2Fm4lfXfMW1HO4zXg5BouN6hO9zWhrqpWiTMl8CBmmKNJ0bdyqS2CS%0Aezk5ejhPpJyp5vTZnwM%3D%0A) ## Continue with Google diff --git a/content/support/13325567-account-management-faqs.md b/content/support/13325567-account-management-faqs.md index 88b9f473b..f9424ec6c 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=1789154100&signature=6b4cd7b789aea6cc403a3cdd42ee36b48ebea482110e7dc0b32d60d7a9af05f3&req=diAiFcF5nolaW%2FMW1HO4zUrhFuKZbAwbkeFUnrkrQZgBJUX8GqTTt6eD7NRR%0AnoM5A3yWJH4e9TkVA6A%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2053873852/1cbccea3b7067e03205f2ff8546b/CleanShot+2026-02-11+at+11_16_07%402x.png?expires=1789191900&signature=13540c802bd5decec482249eb4785661057c6f0d34a891274a51da37647b4dd8&req=diAiFcF5nolaW%2FMW1HO4zUrhFuKZYAkTkeFUnrkrQZh61ypkBUgJqFGMoxiK%0AOszlZbv%2B5vzksvwqGVw%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 e793a45e0..cd27c4c3a 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=1789154100&signature=df0474a00d23af4fa7216b4aac8cbf56adb6d727ced4674f335299731b12dfec&req=diUlE8B8m4lYXfMW1HO4zcDl6tHtM1Wx8iWjaktE9416ZUhltqM0HAkyLmxj%0Ap5hiiXLMmI8kGKb2JG0%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2525926874/15324ac4155d7802272e8bdef04b/ec66cd09-a4db-4f1d-8f30-226c9d126333?expires=1789191900&signature=c89ba0bb4e19306e9419165d6948b376a107681a7637c053e84fd523069f1213&req=diUlE8B8m4lYXfMW1HO4zcDl6tHtP1C58iWjaktE941Cj6SEKGE%2BncQqGvMO%0AsqhAeJuH9TmCAjKkz7I%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 650286df2..391e74a8b 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=1789154100&signature=d8a765aecb9986f441a81a6dabbada315aba23d876a698bcdab767e9d63eaf67&req=dSklFMx5lIBfWPMW1HO4zRpFC8EFSBZ3O9Kw38RlAYI68sBARetcEO%2FFvXQs%0AbuLfXiHiE2Zs6qvl1A8%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=1789191900&signature=9fff962f6ab089400b2fae6a93e0247d98ce969648aa18e45d478cfe92fb19aa&req=dSklFMx5lIBfWPMW1HO4zRpFC8EFRBN%2FO9Kw38RlAYIofzH5T3yshzZ0pqX9%0ASrhTHzR6ISZANm1ZOYs%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 f8a896089..19827abd3 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=1789154100&signature=8aaa7ec3a8a6230a3128044d83f93502e0049df7811bb7d75d40f92157115da2&req=dSkkE8l8m4dbX%2FMW1HO4zcrI54DtpYQM8vUNcPt4%2B73H%2BN0t%2FVIL1OTe1gmO%0Aq6Ahq7ucln8b9mRtHZk%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1935026646/d90d1613a3dbe763fef5abb96e3c/image.png?expires=1789191900&signature=0a9733c7a96d3d477b031e933a1f875b22eb2026175c564890b90701d6bf0dc6&req=dSkkE8l8m4dbX%2FMW1HO4zcrI54DtqYEE8vUNcPt4%2B70%2F0jZNz3suzjxv9tg9%0A42x%2BnI06DvBQg1kre60%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 136b2e4f5..1a52d8dea 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=1789154100&signature=1b747000f30d41a9c18c9c9f9e07b1fade89cff1bf4d1abed465e1a177da2e02&req=diAjFsx6mYhdXvMW1HO4zXlB7Te70ByJdgndksVD5R2rrhyfTMBT6VkE7w4r%0AT3fNlcZNWMoRAOWZ7Lw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2040544927/3a9c695b24df387ecdd766ad308c/8be9f393-dcb0-4ff8-89e8-5fa47bedaa38?expires=1789191900&signature=faf67f1f056c499b23db49777c2a2a0afcaf2f761bffe6fd45adb54fde3f6bc7&req=diAjFsx6mYhdXvMW1HO4zXlB7Te73BmBdgndksVD5R1FL%2FNQTUC19uYUksCA%0AJtkGmxmSXGSce8dka6Y%3D%0A) Weather is powered by Google Maps (). @@ -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=1789154100&signature=2d6069165c454d1e6afbb8f52fed74058833d3f3cb9f97a9fa6d908a65d52644&req=diAjFsx6mYhdUPMW1HO4zUQpe7kU11CWrIPm%2FImZVg2MIeNyDDup4YChn6X%2B%0AI9k9VvCoqRbdyKo5mwg%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2040544929/12f4c51eda7779d65d3ea2c7ab16/d0f4a314-cff8-421a-b401-10c2bf50374e?expires=1789191900&signature=c496d87efedb3c6b8646958e7d459a26e0f37c2ad608a3759b2232243893178a&req=diAjFsx6mYhdUPMW1HO4zUQpe7kU21WerIPm%2FImZVg3iNQmny8d5D5Xl6QZp%0AimAvlnnRV9YgKzKFFQs%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=1789154100&signature=37030a6b0abc824b0ac9d90314beeb7092d5c4c73d99d1429b3113eb832e53d1&req=diAjFsx6mYhcWfMW1HO4zWmF5%2Fy%2FbBqjx4wz0C7CTAJKktFaRLZgxNgJzpWC%0A%2BoKIgUm6jdElIcIgSqQ%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2040544930/9ad066e137d11e4b559b0217e12d/9bf30d2d-1715-42b3-9da5-2a9298f41f08?expires=1789191900&signature=b094414ae937d5ed51521b6947a1e995b2eba91de484629ea12df412914635f7&req=diAjFsx6mYhcWfMW1HO4zWmF5%2Fy%2FYB%2Brx4wz0C7CTAIGLJ6uSqhZYWXC0rC0%0A46JzGcZmU5roI9JSLLE%3D%0A) --- diff --git a/content/support/13756069-public-sector-faqs.md b/content/support/13756069-public-sector-faqs.md index b4c1194e1..2af023dde 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=1789154100&signature=03aacd60e12910b639020fde30a2376aa925f54bcda3ce47b7072763ac4fde3d&req=diEuEc5%2FmoBZWPMW1HO4zU94LlAkGNkx2WxtU42UVC24OXpR8M9a79%2BTxRpm%0AAMuxTtLt%2BEo%2B%2FIr2%2B9M%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2197717161/79965a24090029e9e58c727c3c24/pubsec-product-matrix_png+%281%29.jpg?expires=1789191900&signature=eb07d6f72971c8142386ffccd43c725ed1b332004bf97a9413811b4c4553b2ed&req=diEuEc5%2FmoBZWPMW1HO4zU94LlAkFNw52WxtU42UVC2lzLkAdeewX1v5naCZ%0AKhR2%2FrvLp7p62vqDqn0%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 561ea14ee..daef45d9b 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=1789154100&signature=9f0f632263319e51320da35d6c465ad67be801b8cf7c705b1b99a2a88bef62fd&req=diEuFct%2BnYFeXPMW1HO4zUYv5tT4xHsVRDH%2FtUo5ov6ZGNy2Y1SKInJFNIss%0AxMK1P%2BhSr9Z8JwaIvRo%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2193200015/a239033a9ab19fbd39f1a0d9edce/CleanShot+2026-03-23+at+11_41_31%402x.png?expires=1789191900&signature=56991ca166492e3777c5a96288d2c3584418d20cdb5dbe208512c7b2884d6940&req=diEuFct%2BnYFeXPMW1HO4zUYv5tT4yH4dRDH%2FtUo5ov6ub4ALADdNs%2FcDfxNf%0ArWJlg8019C2%2FksLOBe4%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 fed77d52b..dfa50e8c1 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=1789154100&signature=37d3a62362a9d573d33f9d8955fd20b98c473f848f6760419c2584e28e4c25ec&req=diEnFs1%2BlINeWPMW1HO4zZF3IhzcNvFUxakFVfq5WwwY4uDUqK6htzIezMmk%0AGITe9wk0jqrU4N8TQbk%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2100409211/fc01614dde1a616fa31ffaa9cb04/47bacf5b-a810-45b5-a468-9769f1a58ef8?expires=1789191900&signature=b065824615804331c5fc6a2407437201e6401f7c33e08e377885549e6144bb77&req=diEnFs1%2BlINeWPMW1HO4zZF3IhzcOvRcxakFVfq5WwxBob0hYcOvYZGsL58E%0ACoCSBMu6R8xOZTRz6nk%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=1789154100&signature=2bc8df5e6db0c5a2c97c71776521c14e17a8f7d631c0f19b7c2745457d62e298&req=diEiEcp3m4lbXfMW1HO4zf4NBP%2F9hkSVmKUxugP2BQuOvTOAV0M%2BVmmGrqAq%0A3iDBt4SdMK%2BRe6tDZR8%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2157396844/4a790e10f5b88df770783df1d7e9/image.png?expires=1789191900&signature=67d1f785c07fd6f6a937006e45d10b8ae8e79d80df7a3ff883c350eea6d2e31a&req=diEiEcp3m4lbXfMW1HO4zf4NBP%2F9ikGdmKUxugP2BQtPg6W3uGpPIXoMNEHr%0AQkN3TBiolq%2FN5yYzTZ4%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 1caf0d6fd..2461d2b3c 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=1789154100&signature=1f03163f14067b06a10c028d6e304460ea542fdc74259859ffdb344582b0dc8d&req=diEnEsl2mIJWUPMW1HO4zeLJBkzl%2Bu6GPx%2FSrZI7l8xAF4EbBHyhKM8C36xJ%0AQRS1%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2104085399/4dda7e6f76026fd827db0b9323a9/f20635bf-15e7-4978-a213-5b9f67e9fb9a?expires=1789191900&signature=4a99d7fae8f32d83dabbd2ebee3b78006b1ad87621622ebb76a47552dbbcc400&req=diEnEsl2mIJWUPMW1HO4zeLJBkzl9uuOPx%2FSrZI7l8xPjVHKxl2XyN63UB9V%0Ax8bs%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 4defb86ad..97ed46391 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=1789154100&signature=deed4676e0477a459088fb4d4d1278111c917b6897262cd39a32e77f4dfc9f76&req=diEhH8B7mYFXX%2FMW1HO4zSZP0puKEAr%2BB32drIe5EDmrrAyAevP39mIWwL2f%0AJNle%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2169954086/419674f781edb2977b93cce062b4/93b1893c-d79a-4eb6-b2f1-2fe3e043bd90?expires=1789191900&signature=5c81d901ed0f5be24a320ac7150e83ac6d096cc3df1da69d224991593dfbf240&req=diEhH8B7mYFXX%2FMW1HO4zSZP0puKHA%2F2B32drIe5EDmqcvjCNPJXf7HPhbed%0AoXLC%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=1789154100&signature=79805f5c4f60e231efed0d44875d5eaf0822641504a0f3428a3aa1f7ff3a42a2&req=diEhH8B7mIFXW%2FMW1HO4zaZWs9OZWAUfepuGRb1rD3KCMsItk0LQx8JH8zw4%0AMMSh%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2169955082/de4053ee0eab8fcb9263584bb171/d39b77da-1a69-4682-9fdb-7ed488f236b0?expires=1789191900&signature=3802cfb29fc4dd036c35176747e0c1b071e7296a46a0d34bd7e7ffae98626dc2&req=diEhH8B7mIFXW%2FMW1HO4zaZWs9OZVAAXepuGRb1rD3LtS2KVNVMVzvKAmSyS%0Ad3dt%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 4ab879d97..132f40f7a 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=1789154100&signature=01e4da64fca986e9074ae0595ed49291f105d5328e91b813f1817825b19c873a&req=diEvFc58nYNbWfMW1HO4zcOgiwy71Cx0ZwSvwegvtgxntqhrgS5Xksaf2e6Q%0A89R8YzYUW2F%2FdJD%2Fnsg%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2183720240/6f6ef438913391703598d86d606c/CleanShot+2026-03-20+at+09_11_43.png?expires=1789191900&signature=e5d483ac0d9c3ed3d0999b0ac029659a7fcbbbdb8413b583a9ba3a194f8edb1f&req=diEvFc58nYNbWfMW1HO4zcOgiwy72Cl8ZwSvwegvtgy%2FLIBsCSaDyIpl4M9c%0AHHPUQ4HDuno6G%2FAi3H4%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=1789154100&signature=178a505e23ce79c5f6680f25f9b2b95f9a0e4543f0c5d4c610a0db3a2b3e2ada&req=diEgEcl3nYFeXfMW1HO4zZCoQ4RES3GXvb0suCMAnj16wnmGu7X9pHkuMAgF%0AfNcRQ4bLlAH8KRDC6R4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2177090014/07832b50003cf7fd3b4e9c7c448b/3385d9b8-c3e7-42b9-ae3f-4d213baa53a7?expires=1789191900&signature=4d7f23de33ee95cd3a04b3687463eab695dbb8bd2b15c587f46c6bc1325524d1&req=diEgEcl3nYFeXfMW1HO4zZCoQ4RER3Sfvb0suCMAnj0uoOZ84jFZUemBTdzR%0ANZ7zJeihDMObYQjA3vA%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=1789154100&signature=af76568cc3fb12225918e10b6b8abf5a9455d604574c2e58d78b2c9f71929b40&req=diEvFc5%2FmohZW%2FMW1HO4zQQ7UGpcz5wejggUT7FIJz%2BqISvNeSiGCwLJFoXB%0A7OiV96iXhqdfD7TVrJI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2183717962/acdc11bcc825ae76a13f508365bc/CleanShot+2026-03-20+at+09_12_08.png?expires=1789191900&signature=2c6ca76526d69932af1c856953a1587f94babc34da495b47b916b35c7e7d864b&req=diEvFc5%2FmohZW%2FMW1HO4zQQ7UGpcw5kWjggUT7FIJz8RSrP0su04mqojn5RT%0Ac3M%2FDI8jp%2FtL4jRNjPA%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=1789154100&signature=3292f57b2cb544dddbc73b3521107f62db653a48dc37509c1d45859999017613&req=diEvFc58mohYWvMW1HO4zU%2FKAipH%2BSfNI7f%2FdY0VL6hSLMhpEfxmv3EFdoqP%0Aik8CYgLkpmGoQuoq%2BNk%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2183727973/7a25430123d9e13e7c3cdd411f70/CleanShot+2026-03-20+at+09_13_41.png?expires=1789191900&signature=5c87fd7fb377dca8a72b12d396b2970fe0add6fc971a19e0e00a8fc24cef92a2&req=diEvFc58mohYWvMW1HO4zU%2FKAipH9SLFI7f%2FdY0VL6irM6VdhtyRgAxwlxBi%0AITOnXBCtWRL15KsvVU0%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=1789154100&signature=7cebb5a56fd0f7bd2d2b9342d2e55486f9f411dd5993bb8de9cd960c035afd84&req=diEgEcl2mohcXPMW1HO4zejrnz%2FXECdeuv8e2Xj2xOXT2LhzuubvY%2FM61skj%0AT8AMLvjo7R6fBaFSmV4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2177087935/2f0052dae601d0b7fecdc029e1c3/2e3ca9e7-23b1-436e-bbdb-edcd31c41f15?expires=1789191900&signature=c44cafe2bfc6b8365cb1259eb8083779eca465c828a8ba015caf34dc07125211&req=diEgEcl2mohcXPMW1HO4zejrnz%2FXHCJWuv8e2Xj2xOXOoBF%2BJW2oe2z3uWVD%0AMNsqxeigJtUcAeu569g%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=1789154100&signature=84fdf2035e3dd9ca98283ac2337b0d3906ce0e6e79d30cd1f384ee464c8e8b55&req=diEgEcl2mohcXvMW1HO4zUq4V%2Bq1hqY7MfnqHouW6MIP4jb8wdEdxywQgQsZ%0AN6lkYB11yE%2BLfqH5sVA%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2177087937/f59dbe3fc28448a9597ea097cb4d/96a59acb-4054-4b4b-a208-751f9711f535?expires=1789191900&signature=23fb90a244e4b228b38576fbf3d062c32ce3ade87a20124f3585c4d579cdbe26&req=diEgEcl2mohcXvMW1HO4zUq4V%2Bq1iqMzMfnqHouW6MLH0cWfo5z%2FYPBvVLcf%0A%2BvC13s7PrQz29eVcbH4%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 5d66393a0..df7d2a46a 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=1789154100&signature=b9f641c06505994e6287de16f7429e8f2c6bffa5b66695360deb2939d8a7720f&req=diMmFM9%2FnoRbUfMW1HO4zW4gbDysMMm1rgfl7PnOiunzonn0mPlKyqJAnieX%0AoMZD%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312613548/44cd5970ee3c3b2c7f8dcd592d71/image+%2824%29.png?expires=1789191900&signature=10a0d87476f0c9f4b192b617ca1d6611e6d56c1212ec33c697bcc8c3d305d758&req=diMmFM9%2FnoRbUfMW1HO4zW4gbDysPMy9rgfl7PnOiumGt2olANZAegk5Uu6%2B%0AP%2FAO%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=1789154100&signature=83f4c1ec9b4ee6175ea272630c939783c12463f7a2fff3256e842610e3c5ef64&req=diMmFM9%2BlYBeUPMW1HO4zX%2F4frPxzj8e43OpyTHzM9TeO1kzldbPAggwenu8%0AyVKf%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312608119/e4b0ef4f309f3c4eac8311a6ef47/image.png?expires=1789191900&signature=62b0fad35006ed55ebd00c36ed79da6165b78766593593f3e72a9990ac7a3ed6&req=diMmFM9%2BlYBeUPMW1HO4zX%2F4frPxwjoW43OpyTHzM9TbQW1M%2BQXSZwwJGdbC%0AEMo2%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 ae4a11166..61d234893 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=1789154100&signature=b04baf8a1c0c085c1fa1d8a5fffafdd962e2463ca14a04e836e86b0fa517b375&req=diIiEMl%2FmIlZW%2FMW1HO4zdpfuCOJH1eO006zz1SmF9VjyS%2B4PZtzp2kU%2FwBL%0AQELrFCC1tFXkOPaR7XE%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256015862/476131c3139aec4db01b96127544/10c7a165-8b26-4443-b064-9d659659c65e?expires=1789191900&signature=2c3ca58f86e2e6baad363541c719d8d3554346e2796fcd504bf41d90438b576a&req=diIiEMl%2FmIlZW%2FMW1HO4zdpfuCOJE1KG006zz1SmF9UK8jybrK9%2BmYGGp%2BSe%0AbUnfLj6V8Ofkx1LXv6M%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256025910/a82e2de9382824fa9db7666f67c4/CleanShot%2B2026-04-09%2Bat%2B16_25_20-402x.png?expires=1789154100&signature=038ef2194b84d1aa1ed6b2bfcd49e8af55251690ed331f77b679bba15364d9a6&req=diIiEMl8mIheWfMW1HO4zV%2BGnRA%2BRrtGx57dwYq5DdJYjpvEH3B2UmPabXws%0AXOvqbI6J1k4SuDwZ6cU%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256025910/a82e2de9382824fa9db7666f67c4/CleanShot%2B2026-04-09%2Bat%2B16_25_20-402x.png?expires=1789191900&signature=df0848226b0c33591fd5381117522621e52dbc7f7d2a93e262baeb67c9a5c7e4&req=diIiEMl8mIheWfMW1HO4zV%2BGnRA%2BSr5Ox57dwYq5DdIuihJmJI3TwG4HFWuh%0AAVfv1n3U8V1tUJS2owQ%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=1789154100&signature=2899f3faa8df767518a10af0de66d172580ade72b4e52ed8687503b7a705c90b&req=diIiEMl%2BmYRdW%2FMW1HO4zQE9Jr63%2FxD6bfNHh%2Fvd8OGwGCSWdGEc4jS6P54g%0AUTCBO4906Kj%2BQAx3Z9U%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256004522/a97b91092b393e93b2d7779f63e6/2db86a6d-1582-419e-925e-cbc914468fa1?expires=1789191900&signature=221d3fbc90d434572b8be54c69a3729ab933425424de1e62219ca7cc7589fcfc&req=diIiEMl%2BmYRdW%2FMW1HO4zQE9Jr638xXybfNHh%2Fvd8OGxuvr6fRWSzFQPjt4u%0AL3bFd6XiW1ma90AbTtY%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 6f777d08d..34772a1ae 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=1789154100&signature=35c68b6a9636870adf6e87c08ad79cbc229a9ba3c032c4fd5e383972d5867f8f&req=diIiEMl6nYBWX%2FMW1HO4zSrRlaUebDIVyIvvU1hav7P44ocgKPWk60nuLrFl%0A1aFd3qvCiI2sjRb2VDk%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256040196/c3b045028c4c2edef9172b6fb424/9a71258e-ae73-41e3-83a2-d24a240ac0ae?expires=1789191900&signature=855c777f42e89db8eeef89c33a0abb15f5631b7e853123a7352e18ceeaa79a33&req=diIiEMl6nYBWX%2FMW1HO4zSrRlaUeYDcdyIvvU1hav7N0sHYXyBQjQLe2iRiI%0AGGO659LNKoLUg4IlTX8%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=1789154100&signature=a2fe9d49d9babe2eebe1bc86fcbd0b9fb91fde44135b3b3176080d472aa45c09&req=diIiEMl6nYBWUfMW1HO4zeLvMlFuT0j7oWupW8zJgMqixta9wgrjrGBn1DO4%0AqlLF3OhH9W50%2BNJp78w%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256040198/da9188b8b968d5f900cc08e9ceb2/3814ab37-c3fa-4256-8d16-49c1e1b4c654?expires=1789191900&signature=aa02607f3febaaac0d3167b13f7f179bc4f108b098bd7636f02fe949da2a4af0&req=diIiEMl6nYBWUfMW1HO4zeLvMlFuQ03zoWupW8zJgMqFjyTZlIRLVMXiA3H1%0AnomTbEPpNnxkBKBhp9c%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=1789154100&signature=e565c7e729ff4a75eb561d86bde8055b913b18d0576f3faee7f85316dbf5b725&req=diIiEMl7m4VbWPMW1HO4zaWhsXojt0Mah340B79BYGbrb%2Bczcx8gVAqYTZYX%0AY9ETsIJ6fWN5h6z%2F5lw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256056441/f7eb09bba549e9861fc81b961cc7/2760fa5b-87bb-491f-9354-ca3cd2bc4475?expires=1789191900&signature=7dada99ac94e0ab2e79659c5f4885f361c19d4c19db29143ac4e0692b949efdd&req=diIiEMl7m4VbWPMW1HO4zaWhsXoju0YSh340B79BYGa7fgnz6436iVTPtJ2v%0AWd%2F1USGW1QSESc3xlV8%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 d73096124..ba12457ca 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=1789154100&signature=ff320eb093e8ce77a75fe5389f65030d3d07295c2fa2a10f72b832487682bbd0&req=diIiEMh8nYZZWvMW1HO4zQvFLLtSiMD5M%2Fw5SJgC29FK1yNwhWhZUbkdFnId%0ADrWePUdxxGIVfAeaqBk%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256120763/7652c6c669446113eae75f3c5977/9c74d57e-aaa2-4f1c-bfe4-2b9b87fd41ab?expires=1789191900&signature=fb1e2aeccfbe0d17bace91dcce9b4c51fc28b99eb19cd486c05f2e4bacfca88b&req=diIiEMh8nYZZWvMW1HO4zQvFLLtShMXxM%2Fw5SJgC29Gu8WHhZhQlRt8m6F%2FR%0AAGUgfttLN%2BuwKjd4zWo%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 c551b74cb..60e6174d0 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=1789154100&signature=5fa5406aade7da47984c36965969cc8bf7cbf4bd85a3a15ee386c7ebef5d09fd&req=diIvEcx8moFfXvMW1HO4zWNHF%2FuKCz8WIQKNMXlu0T%2BE3d23VAQU61HLzQYN%0ApGJ8HJ8cnx%2BpN8xi2w8%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2287527007/b1c46cb8dba4cd7e8bbea85fb0c3/2819c6cf-9ce1-4df5-84c8-feae0164bf2e?expires=1789191900&signature=a8e0c41a409ba9694792bafa20cf2807aeca3ba225dc8dc0c0119c1ac3601bd4&req=diIvEcx8moFfXvMW1HO4zWNHF%2FuKBzoeIQKNMXlu0T%2Fl61JA%2BXfMbmVwWvMM%0AL7m0OqcbtlfKzq%2B3a2E%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 c56553722..43e6c865d 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=1789154100&signature=6cf920a9ce577c8533a6c99d7c33e1d9a51931d3254e0d2c15c096798d19cd8c&req=diIvH8t6nYFdXPMW1HO4zahp3esJHOIkDIPtKBLQ9H%2FvPcmt1y2YqGLB%2FbB4%0AdWmPKCjNVjQJDBHq6Kw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2289240025/8a528b6cccc3ea1001c25953cb14/image.png?expires=1789191900&signature=e9bcf2acbcc5c1ca398939a83154c6f291ddc9d5fca18b71a6697f07ffc9b3bc&req=diIvH8t6nYFdXPMW1HO4zahp3esJEOcsDIPtKBLQ9H%2BXwWydec9ujF0%2B5xYq%0AlABdB7C2wwXCC8T60Po%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 46ce670e9..70afa63c0 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=1789154100&signature=b0b54f5a8a8b08e9202fa6fd951427631eba321760eec3cae7b8634664f110cd&req=diIvEcx%2FnYhaW%2FMW1HO4zQFD4SVbnml1nfz9ljnuyXTGJzdRVKirOv0I%2Btqw%0ARWE65bNmqtCxQDrKEp8%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2287510952/553a03eec5cea7b9eff53b473552/6dc33363-38b1-444e-96bb-f8218b588173?expires=1789191900&signature=c2be64ab58bc65c645f63467157f2e1b8df04fc11452e365b0c5b192fdb54ada&req=diIvEcx%2FnYhaW%2FMW1HO4zQFD4SVbkmx9nfz9ljnuyXSVsFk2T8GXL11GVaSU%0A9n4xb6Zm7MCyfM0ijmU%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 fa48ec6bb..5cb1931f3 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=1789154100&signature=81ed8b3e146bddaa555deae618a81df98b7332ba46b88d8c083f94d511270c23&req=diUmEs58n4BcUPMW1HO4zelOdztBKExGfdGVZ664dGHF9ImWXsDwqdAIgHyA%0Ax3PCgvz6%2FJ7NtoZTzcw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514722139/d05c94072a41ea9090ecf386c53e/c32ee31d-954a-4551-a2da-91677fbd0b6f?expires=1789191900&signature=a65b0ad8bc033db429913216683f90b21b7a44a056c9cd494d2650ff9e20aade&req=diUmEs58n4BcUPMW1HO4zelOdztBJElOfdGVZ664dGGwtIA3zyHkB96QfmHM%0A5I2CydUnMnagd5h18VI%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 b86a8b206..4382d8280 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=1789154100&signature=289e2f040d3f4e0ea4ba754987b79b8ce7759358576e5fd175f5d45ad15af833&req=diUmEs93nohdWPMW1HO4zXlxEu64UtVWQf5Pb7M2Q0tSwm3HVweGllneZsbs%0AEfSH7%2BUQNRgAU43W57g%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514693921/02ea72756f5163f14e5d158516dc/69102088-cd86-498e-97aa-c8a6e0004419?expires=1789191900&signature=f6fff5dc38b8de1c4e0f8d637877cfd084d140f9261ab08f52659a6d1fc55990&req=diUmEs93nohdWPMW1HO4zXlxEu64XtBeQf5Pb7M2Q0ti4o24h%2FpVF5WpMi7F%0AixYHFVjP79LJxGqNYE8%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514693922/bfc5de6626eb19dca1d7caf818ca/c3cd8bb6-f86c-4d01-92da-6ae4ca966662?expires=1789154100&signature=4b6ae9a96ccad448a4f8f935d242b2d15161b1309b3ccd1a6fc8a0883890b26e&req=diUmEs93nohdW%2FMW1HO4zTqNsYDEQ1xWAod9uc510lxdVSbXHr84LYV9gkH4%0AquPBOYE1DJkSqbZneks%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514693922/bfc5de6626eb19dca1d7caf818ca/c3cd8bb6-f86c-4d01-92da-6ae4ca966662?expires=1789191900&signature=4f8781d04dc21d46fd6c11d772e6dec3d12ead0ff8d2f67a1401f6488f5345fc&req=diUmEs93nohdW%2FMW1HO4zTqNsYDET1leAod9uc510lyLofMjsufudXtb%2BWz8%0AjGOH72rlq%2FUCMSagTIA%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=1789154100&signature=004815f44a20e6b8eed591b52150b53ef4359da0bfbbce394f750c6b75305d9b&req=diUmEs93nohdWvMW1HO4zYj9SfwC6IW8XsqpNqvyFRJD%2FTMHG7e1NSA8A7f3%0Am3WYz%2B97ZdfNdC0TgqQ%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514693923/880665a87dbd4776cf19d6063a37/29d30c6d-f9fc-408c-8c72-4320c6d88d14?expires=1789191900&signature=1dd66d7ba989e3866741720ff25e590d12527faedcf879a99957a4821dfc6057&req=diUmEs93nohdWvMW1HO4zYj9SfwC5IC0XsqpNqvyFRIcPKUo1jwZ9EGGMLSY%0AdTQN%2FsT%2BbHrFNnbnlzo%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=1789154100&signature=aad669f88e5a01595db9c5ea6eac60d31ec5311a0eb9904d1080b85eaff6b379&req=diUmEs93nohdXvMW1HO4ze1xBjq9dr0YDeA1RkowXUF%2BTT1ru6Yx63HR78tn%0ARhe2W93C5Q7FmsGICqA%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514693927/7a25673b3b075d72adb3cdc371e3/d2d7cd8d-a713-4e91-a706-f589ac46a9fe?expires=1789191900&signature=0a73dcbfa5e9ab417f4bb0a7a4867490c752dcbe7dfc198535c55657543674bc&req=diUmEs93nohdXvMW1HO4ze1xBjq9ergQDeA1RkowXUHoGDExtiPVUtrV%2Flyk%0A%2Bu4g4M2JXhTaSzOHQzo%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 6b6e24eba..488cab21f 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=1789154100&signature=513fa0189821a0d4e6ae81b6f3ab2048596a8911b10cdb266c742a6e075e8cd8&req=diUjEMh8m4RWX%2FMW1HO4zU5lnmJvqMFiGkiu4hEpcPWzSl6xaHjCflHsG%2FYS%0AJ3GrmIC%2Bs5IFMflI1Gw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2546126596/ba71ca47e2df21cec62c243831f8/5b1c67e1-607d-4c73-8f61-d1ceb081082a?expires=1789191900&signature=dbbd7860a7b1575bc0861e1b2e0e201f809c69aafa55f50cb26d5e54942802af&req=diUjEMh8m4RWX%2FMW1HO4zU5lnmJvpMRqGkiu4hEpcPUuENbuPaPFKm82I4O8%0AoZAHb1vbLuLHgiiBiqo%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 9e555f442..21eda5a97 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=1789154100&signature=844dd942c1ad52d57e56c960e43dfa5720bd127b8dbb4963924a34d1795f35d4&req=diYlH8l5n4hYWfMW1HO4zdWraBg%2B61AfPZYKVlMiWEVbWVx1q2%2FgBVn7yEOd%0AWgJU%2BlriLC%2B0j5yFNRQ%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2629072970/c514f489b65072ccad08e803864f/e8c7a7de-905f-4a40-815f-c9c66edcdbf6?expires=1789191900&signature=b5c76d22b89a90db68923effc23ca114011d36e36a9453cbdb7333976f447aea&req=diYlH8l5n4hYWfMW1HO4zdWraBg%2B51UXPZYKVlMiWEWJPoo6NMiBXwoMO%2Bi%2F%0AqfwZH%2Fw3m2T3g1GisXg%3D%0A) ## Billing details on your invoice diff --git a/content/support/16635803-set-up-browser-use-in-claude-cowork-for-team-and-enterprise-plans.md b/content/support/16635803-set-up-browser-use-in-claude-cowork-for-team-and-enterprise-plans.md index c20395277..b381f0a54 100644 --- a/content/support/16635803-set-up-browser-use-in-claude-cowork-for-team-and-enterprise-plans.md +++ b/content/support/16635803-set-up-browser-use-in-claude-cowork-for-team-and-enterprise-plans.md @@ -34,7 +34,7 @@ When the built-in browser is off, users can't open it and Claude can't use it. T ## Enable or disable Claude in Chrome -Claude in Chrome is managed separately, in **[Organization settings > Claude in Chrome](https://claude.ai/admin-settings/browser-extension)**. It's on by default on Team plans. On Enterprise plans, it's off by default; starting September 10, 2026, it turns on by default unless you've already disabled it. Site allowlists and blocklists you configure there apply when Claude works in the extension. For setup, deployment, and pilot guidance, see **[Claude in Chrome admin controls](https://support.claude.com/en/articles/13065128)**. +Claude in Chrome is managed separately, in **[Organization settings > Claude in Chrome](https://claude.ai/admin-settings/browser-extension)**. It's on by default on Team plans. On Enterprise plans, it's off by default; starting September 10, 2026, it turns on by default unless you've already disabled it. Site allowlists and blocklists you configure there apply to both the extension and the built-in browser. The same list governs both, so there's no separate list to maintain. For setup, deployment, and pilot guidance, see **[Claude in Chrome admin controls](https://support.claude.com/en/articles/13065128)**. ## When both are enabled 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 b0d831dc9..a88f655d6 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=1789154100&signature=99bb3cd3a78599de7c8ebab35815eb5b36d8da73f72c0c2ecefce6188a30958e&req=diYjFM56mYRXXvMW1HO4zT%2FymECGEQ2mktHcEoeKC4eiO3NVEsg4D86zlwgC%0ALFic%0A) + ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2642744587/d4584e035604f3b7c08afa53a1c6/ee1183ff-e591-4484-a989-1f754245d39c?expires=1789191900&signature=100c6d89b3775937244c1be398bdc3538d94276fd9d8f57671381b8ef6876511&req=diYjFM56mYRXXvMW1HO4zT%2FymECGHQiuktHcEoeKC4eLGOPCQbEn%2FUk2b6GO%0AwwrW%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=1789154100&signature=d4520778d969cb4bd6f10317ad96c0eebdc66534f9b2da6539bd32968352dbb1&req=diYjFM56mIRZW%2FMW1HO4zc116gdpRVSwMCr%2B42fbmkbXINx2MDKiKYPkY1G%2B%0A0XM%2B%0A) + ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2642745562/253e55a3292b35f728fb5dc89fb2/0878a8a9-dce5-4df2-9826-3796605b52a0?expires=1789191900&signature=cb7f84a29a391c75e41ef6283dd73169cd8da2b0748b49bafe30f6c4a7665f0e&req=diYjFM56mIRZW%2FMW1HO4zc116gdpSVG4MCr%2B42fbmkYiz8VCUrE%2BOykIdoDM%0A2873%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=1789154100&signature=9e0320b360cade6832f620f7d72c6a797bf147bd988934601fdea2474db9f4f1&req=diYjFM56m4VZX%2FMW1HO4zaveae9jk3nBVPpeIJbmktQtyjW4epEDQeMhikn8%0AkG0D%0A) + ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2642746466/c49291119729e99f4dba8ec924e4/3f802c0e-7fbc-4e80-935a-05da58f65bde?expires=1789191900&signature=ee83a76b7d9c84d4b07ca9749810e3a326a707610c70631a79a2415019bacd15&req=diYjFM56m4VZX%2FMW1HO4zaveae9jn3zJVPpeIJbmktTl%2FzpYl2RUmgu6TYDa%0AvQlZ%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=1789154100&signature=796594e86c41eb9a4cebc5a48ca3479828f605398924bf2c4d654784e0a498a3&req=diYjFM54lYBeXvMW1HO4zTU0lNKRLkJG9BWcjfiNKI1oM99VbqFYUtNiexR9%0A9IlL%0A) + ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2642768117/1304e6b1350fc9bd88c4238a00e3/db606eb5-39d5-4309-a5a9-ee33847fc233?expires=1789191900&signature=c1a986d9e2648e04118716becbef0e82d6c55c87e5a7514851553c080d9652a5&req=diYjFM54lYBeXvMW1HO4zTU0lNKRIkdO9BWcjfiNKI3DpEcfdFXKcfgRYNnS%0AKmsX%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=1789154100&signature=62ae68eaca51396ac9b312ac46610c3d39f721c988bfa3ec615d7511b4086d20&req=diYjFM56m4hWXPMW1HO4zQfcHTKv6noq9apHi%2BiM8ojCTTm44ZbGOCH88qk4%0ARKpP%0A) + ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2642746995/87151a11687a9c631b7a9d681390/d40a6c12-283d-4b3b-b6d6-9f631a73e7c0?expires=1789191900&signature=28d147a25264ab2855cced6d67d0cbe064e6def310b98876155b9352d3e10b2d&req=diYjFM56m4hWXPMW1HO4zQfcHTKv5n8i9apHi%2BiM8oi%2FU%2F9tmTPaWrESfnNz%0A26lk%0A) 5. The program shows **Active** for the workspace. - ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2642747200/a18bdccde474c9f4eba371cf6050/b0e9d5e3-1e5f-4f27-b682-5684084f92e8?expires=1789154100&signature=7cb8151bf0449599994a023aa717e251ab07fd941f0eecc6dba0828336d3067e&req=diYjFM56moNfWfMW1HO4zaUR8q9m8%2Fo5fTukdAE3MWt1qUZb108G2xaOzbSd%0AusNo%0A) + ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2642747200/a18bdccde474c9f4eba371cf6050/b0e9d5e3-1e5f-4f27-b682-5684084f92e8?expires=1789191900&signature=8e431cf4a7ea66cbde1c8b2fc24de43e36c3251b15e795c1805305476bda1247&req=diYjFM56moNfWfMW1HO4zaUR8q9m%2F%2F8xfTukdAE3MWspA8Emu3mbYl3qvymG%0AOE7N%0A) ## Troubleshooting diff --git a/content/support/16893491-get-started-with-smart-reports.md b/content/support/16893491-get-started-with-smart-reports.md index a9b9761bd..ebac038b3 100644 --- a/content/support/16893491-get-started-with-smart-reports.md +++ b/content/support/16893491-get-started-with-smart-reports.md @@ -36,7 +36,7 @@ Each report includes the following sections: - **Answers to custom questions:** before running a smart report, you can select specific pre-built templates to steer the analysis towards those questions, and customize those questions to your specific requirements. If you added custom questions, the answers appear in their own section with the sessions that informed them. -Report analysis excludes personal conversations and conversations that touch restricted topics such as HR, health, and legal matters. Those sessions are set aside before analysis begins, and the report header shows how many were excluded. Admins can delete any report (see **[Delete smart reports](#h_765fe12f41)**). +Personal conversations appear only in aggregate, with no summaries, individual sessions, or names. Admins can delete any report (see **[Delete smart reports](#h_765fe12f41)**). ## Before you begin diff --git a/content/support/8114491-get-started-with-claude.md b/content/support/8114491-get-started-with-claude.md index 91989a92c..7f4fdcc4e 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=1789154100&signature=8bf511c7a22c101b0190005d0dc8288dfe227d110337935ad155c3e08de6c46c&req=dSkmEMt%2BlYRYUfMW1HO4zV2J7SbLsYOA9crMELaMZPxNQ%2FF0vcCQN8ljcJ21%0A7cO8CC3p7oTprDoVZ1k%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1916208578/2cf2ea52f1f884084b57983a8805/image.png?expires=1789191900&signature=9ea8a2d5920220a80717c0a92a81e3872fd694ba8f3aff45efa2921925e9df0a&req=dSkmEMt%2BlYRYUfMW1HO4zV2J7SbLvYaI9crMELaMZPyNSqjrT7LhTWq8ERYx%0Az2mrAqKNqdwGH2FixM0%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 471683c7d..80bf4b7b2 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=1789154100&signature=94fc8c9e509eb90d851089216b403d50ce944dc323b6db228045989919215541&req=diUuH8x%2BnIJeUfMW1HO4zSc12adbjWSq1DBI29QsIlGy0rWuaMik6DQiPY4M%0AxUfn8edSRzY%2BNt62eKk%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599501318/75c28edc693efbe8befd21e4da64/d18a921a-df4b-4788-833c-12c966a32527?expires=1789191900&signature=0b57cddeec2e3b282825e79ba5893140c3048efb23b0f63c81d76fce959a8056&req=diUuH8x%2BnIJeUfMW1HO4zSc12adbgWGi1DBI29QsIlFnTzsrmFYgyDItlwQu%0AfzjJmI%2BsGuuvlYYM2RU%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493852/2e58b92d18f307bb79ae30650f26/1bbe52f3-202b-4d5d-9f9a-eeda4d6952c3?expires=1789154100&signature=bc1b1316b713022ff7f19018a91b70acd259ce7ca94aad3b1ab73fe7db65f223&req=diUuH813nolaW%2FMW1HO4zTjXMu6NK8Tkj7blKEDtUI1xOHe7g9DdlLjCE0z5%0As9ziQHuTahrZM76s%2F38%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493852/2e58b92d18f307bb79ae30650f26/1bbe52f3-202b-4d5d-9f9a-eeda4d6952c3?expires=1789191900&signature=a01751971415428460fa6d70539a9f689ee0583a93ead47a511ba441c505bfb9&req=diUuH813nolaW%2FMW1HO4zTjXMu6NJ8Hsj7blKEDtUI1z4qMV8SoT7h6hvcV5%0AU%2FuYgnxs04E4b7vf65U%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=1789154100&signature=733c9fef66ee5dcce3ccd7126763b18be567aac23ae2d9f0b91538a0cdd8b676&req=diUuH813nolbUfMW1HO4zVCIqpPOzthHzQl%2BKgU984yQAnyRjyKUdhnlJszx%0ADDCMxEbXrrnCKwqgbaI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493848/997184c386d0e6fb0bd2d7c1f2b6/5d2bc394-25fc-4814-8c2a-2f54d004f83f?expires=1789191900&signature=d39afe7cff7e6a30e93c649674c3f45e5e721c6be9ee594fa94eafe27a96150f&req=diUuH813nolbUfMW1HO4zVCIqpPOwt1PzQl%2BKgU984xGceqUBR8htjkUUjtJ%0AVUdKGmaDQ296%2BRmqP30%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493856/799041da9fa918e90068c5ebf5bd/2e8d5cee-c45a-41d7-a14b-486e50a37f88?expires=1789154100&signature=e5b3ee58912b996587e6ea7a73634d568e84e4f2680b5e43e79802be7d6713ea&req=diUuH813nolaX%2FMW1HO4zVCl4AHz1GFMEDIU8RT6jk3ccUcjj88kI1yIoUgb%0ANUBe3PAeZjAZKP18nps%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493856/799041da9fa918e90068c5ebf5bd/2e8d5cee-c45a-41d7-a14b-486e50a37f88?expires=1789191900&signature=ae227c553d34c2804d2aa5e419607c63111976beb25a6224793a41abee6911a0&req=diUuH813nolaX%2FMW1HO4zVCl4AHz2GREEDIU8RT6jk1ICDgQjGDNBCzep9TA%0A4ixdI2AG8xKPd%2Fr%2BJdI%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=1789154100&signature=2a651d8df7e70a1d228b8c1b04130732416c1f1021cee6dd204424697498e45a&req=diUuH813nolaWfMW1HO4zVTdd9stx1R0rqtc0YNNUtIEwfBrxpL1PSpGU%2BtH%0ADPsZjkWE3Yvz8ZjIgyE%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493850/a64e6561222d535f2f5bd03e71f0/5de429c2-d8ed-4e8a-89e8-a13ccaa49767?expires=1789191900&signature=8bdf0a8e1855e8e4c6f2344647567cc62baaa2b601a43b147a49f4fc41f765e1&req=diUuH813nolaWfMW1HO4zVTdd9sty1F8rqtc0YNNUtLACRIcIpSFbTGHt5fc%0ALyuhrZbBlCW8tOVZ5jA%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493851/f21b39c60e88050d4b0745325f0d/0a8c0d08-dc53-4ef1-8d9f-2b995242c1f9?expires=1789154100&signature=afd91a250a525b547e4a21833a7a52c3024ac0ccada8930c71ef98ac6005edf4&req=diUuH813nolaWPMW1HO4zUYvw1wKpzpd%2FjekULCQNzUBrYFYZ5B%2FnYa0sZFA%0AwRw38uGCvWOZSSOZmMw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493851/f21b39c60e88050d4b0745325f0d/0a8c0d08-dc53-4ef1-8d9f-2b995242c1f9?expires=1789191900&signature=529d5091a342b37bf6025be426678890b9c34bc096efbb920360fbce7dbc1fe9&req=diUuH813nolaWPMW1HO4zUYvw1wKqz9V%2FjekULCQNzV8WL8L64dJadUaPLTM%0AG7IFgioPj%2FxGSARcZFA%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=1789154100&signature=a05139d010c41a697dc1c8b8bc24b07de4698a20fff7c36e2dfd4a8fcc738bae&req=diUuH813nolbUPMW1HO4zWGamM51f4ne4AqhTnZa84WKFKwFO7%2FqUmF%2BBVwE%0AvtH2BmeTM4fhY4dkEwM%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493849/3013a0ab921337b4544f7ffeffa6/e828ec14-fb52-4205-a840-707b6f2a848d?expires=1789191900&signature=b37e527dc9b6a7e78ae7a41378e88b6b96454f294efcacbf7ca530274853bce6&req=diUuH813nolbUPMW1HO4zWGamM51c4zW4AqhTnZa84X2TwWbkiwttT3NtGm5%0AEBZd6%2BXdCSRSSsANejo%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493853/e2507f53cce8a26776a22a457b1a/bd79bb8a-b078-420f-a4e1-75590367aa80?expires=1789154100&signature=e467b2b81a5be44eeae29faa5c467be9606fe5104fd5576c1a587cbf65422dd1&req=diUuH813nolaWvMW1HO4zQTtExzwwUQ5SBGfF3I2bRgDVTo4RMBopAKmWgvx%0AIyQ%2FfuTv5lu9bKS2zpY%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493853/e2507f53cce8a26776a22a457b1a/bd79bb8a-b078-420f-a4e1-75590367aa80?expires=1789191900&signature=69cc595e5bd7aa573c5ee8f2a543b1990f3267647fb80b950e2746bee4fac63e&req=diUuH813nolaWvMW1HO4zQTtExzwzUExSBGfF3I2bRg8gW9wVTMuTy%2B5M9cX%0AVlAzW9L6EM4R1QmqZ4U%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 ea6f0ee49..19df00ac5 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=1789154100&signature=e3cf9c01c9e2622c3b8c6794583cd4c3a5338764b81cae77d63653d2f0b68024&req=dSklFMh6nIZXXPMW1HO4zVXW8GSqbjfNQoNvNFTb5cfPvwJ4DvJKx8RsUUqS%0A2dcBPypCM40S0KyM%2FH4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1922141785/666191101c11030b05f03a668a74/image.png?expires=1789191900&signature=94e5ef2a2cd2cbd1a318e5e890a3f5027c705a37a146b9f21263b82c49fcec6a&req=dSklFMh6nIZXXPMW1HO4zVXW8GSqYjLFQoNvNFTb5ccSObe4Doy4VV4tBDxd%0ABI6jp82dCw1OYNeMrdM%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 fe04cfa16..a9f9a8a47 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=1789154100&signature=6b3e58cb60d9c0c1efd08d3e2ccef46c3b2dc39481cc7bc7dcf269bd3a970891&req=dSYjHst4nYVeXvMW1HO4zc2jJ6s8hY%2FlSBkgeTglJrpDzvQGqOnV8bkcmo8p%0AGuquTlcVf7JW9E065Lc%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1648260417/d478c757c7115ad58a12026d4caf/AD_4nXc__Qop4X9hknWGfGj_y_DCpLutLruhxIclJIfir0ilsgNMg7X8ksIVnqk1Oce5FKlGIOYu9CKbVsu8DqD7iIY2aC0ZfXMyFTeAdNq-Cao2mXcj_WUpNF0kM2HoYR_dEx6N_cuJow?expires=1789191900&signature=9b978c3739d516ef999fe72cf0b47a279d367f6173161683218c9a1d8b366913&req=dSYjHst4nYVeXvMW1HO4zc2jJ6s8iYrtSBkgeTglJrp3WBHoL%2FEk6u5bOrFD%0AfnthlUDGKX2vIkEDcE8%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=1789154100&signature=332efb1c8be9bd7bb4665b300e0472915b749b5b4823fcc06933eb53089424e4&req=dSYjHst4nYVeX%2FMW1HO4zc8962nkWHU9QtNFlF5%2FHEdIfUjDE3T1zRKZQs7v%0AI0fiDnbOohtLFcNb9lo%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1648260416/7fc0803d44d8de40f8e6636b2eb6/AD_4nXf0UEDa1i2QmqlQtoB5BgpQ-FfZVzss_7wMVQdvkmEDSfoTxixnG0GSxC6qrOs21HdkXH-I2Yn_GHDAf8yjd6FJtoh9FadALozvIErFp9r8LychDGLPb7OpN1CN4PRcgVAYNCre?expires=1789191900&signature=c79d87f4f17079c4f65d38dd1ac9fc75ade535b7c8977f6310e61eaee6f9593c&req=dSYjHst4nYVeX%2FMW1HO4zc8962nkVHA1QtNFlF5%2FHEc12YVYsGFIID7FXzgU%0Awq9Fj4r9VG18t8DiKO0%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=1789154100&signature=69913156ba553b1b5f387ed6562d9048b2d8f1e9641ddb71caaae06b44c58541&req=dSkjF8h%2BlYFfXfMW1HO4zUS%2BB1b3XH%2FuylfYa7uDb9mpaNqw4v92WmgvKyA3%0ALvzRbDZ1X%2BplzR1bWw0%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=1789191900&signature=cf443278f955e308dfa00372f412b29138e75816c8313ccf6ecb7a526e7d3abb&req=dSkjF8h%2BlYFfXfMW1HO4zUS%2BB1b3UHrmylfYa7uDb9lSZfjQwwSLrT68LaS6%0A53kcWIjIzD0hzkwc9oE%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 89d27f3ba..8d6f7ca14 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=1789154100&signature=e18d1b9e93545ce7c3b82176cba200114d76b7a734cab2b3fbb5ba6d464a6124&req=diMmFMh3noJbXvMW1HO4zXhPndk3zRtgufhmlOXMdYbc%2BbwgV4%2B5aRBEvcgn%0ASwmRHY9CEO15XJUxgu4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312193347/712f763fc290b2488c103849f20c/0c135a6f-3442-4ee1-9ab7-98673f03ef6e?expires=1789191900&signature=ac48b774f377bd90a9781cecc9dfeb56b06a2e469f08045153f339ca05d7db4d&req=diMmFMh3noJbXvMW1HO4zXhPndk3wR5oufhmlOXMdYb1R1IEMX2CGj6%2BEmXo%0ABezE%2FJJJ7TTsVB3mQf0%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 8c3dd9ea4..4efea523a 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,21 +104,15 @@ 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=1789154100&signature=048f5f4fa495eadcf4dc62ea8821dcba00e40c89508dae44b012027d02944192&req=dScvEsh3nYNbUfMW1HO4zQABaWhtT6QUBSXNVFXQ%2FVF4ajZPYEu5IKSseTVA%0AGidQI2VVZzIWDUMpbc4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1784190248/0f19c8de18b494a27be252fdfaff/d4e7a5c5-25f5-4623-862b-c593d2dc0b39?expires=1789322400&signature=e6fd936d37dd2539d19a6959609ab84b715c9b5414ff3934f4251e1b6012f021&req=dScvEsh3nYNbUfMW3nq%2BgXuLDiqq4jYzXvsvfZakkxFwejd4Mgy7%2Fe6HWCxm%0Aj%2BN3oKgwGLKjKsqiWYcXUOiSMsI%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=1789154100&signature=84098cbdc591531f786c9948d6c07980dffa1943d032c084651e2243cc93a0f5&req=dScvEsh3nYhaWPMW1HO4zSMECimxzg0AgYbpTjViBxAntkMYXptNzGwKjru0%0A2qmkrrV92BGanC%2BoigU%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1784190951/34dc256ccd4c0cf74976f31062e6/55365cf2-059d-41b2-ac95-4b00c4389a76?expires=1789322400&signature=caabb8e97aa5c14862ed2695aa1346bbb2de9f830baf6c4649cb476c2aa1cfa9&req=dScvEsh3nYhaWPMW3nq%2BgaHJV1YFmo4e9y%2BLKq4iewrgpIDfB1m1LkVa4q1g%0AC19LYr0YFaQDfSXjGeV5vsCsr6o%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=1789154100&signature=07665b4d9b4ba37166cca1c85f0594c18e10789421664586c817982c1beb2a5e&req=dScvEsh2mIdXW%2FMW1HO4zb6DuP4tC0ELS2r1%2FGRlqOSdKfayYkqLgAgd5YZM%0A8VsBmiQhyfrXp676mUE%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=1789154100&signature=0f13ab455538eebe7bdd6dec9b2036795d7816f227dcece52d153b95be4cfeb4&req=dScvEsh2mIdXXPMW1HO4zbParUVI7P6iuQSB0Ebsw9fUc6gVmDyluTc7W37u%0Ab%2B%2BLbpz53geY4jjI0dY%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. +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1784185682/8625eac15b9fa452f148a6c47250/c53a1bc4-a991-4684-a789-5447ed789d35?expires=1789322400&signature=9d4a7bc86038e30986e2879049eab0da529f0a13830f12b20ca54e52e562b89b&req=dScvEsh2mIdXW%2FMW3nq%2BgcRackgi5F%2BtCI5gXkUx%2BGFeoCi0jRvvy8fnQahk%0AYQAdWEyixzF%2BbEohRatOk8gFoXo%3D%0A) --- diff --git a/content/support/9519189-manage-project-visibility-and-sharing.md b/content/support/9519189-manage-project-visibility-and-sharing.md index fc52daf57..0e3576ae9 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=1789154100&signature=ed5bcb841d8978c1c5fe81dac1d5ff22b8d43e24ef2fccefc7d72f69e8224953&req=dScjFsp5nYhWWPMW1HO4zd3a2VUlIYqmHK95%2FTFaPykWf%2BCUEiJo5pvhv2uA%0AXL4Qmb%2BU%2Fub7B1J9hMA%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370991/2b6b16e5deff094e073a5b4bb0ea/63197103-24c0-41e5-aebd-9b8f431837bb?expires=1789191900&signature=c457feb694198e5430c2c0380b730aff80e47213aaf2513ec3932da0f7032de1&req=dScjFsp5nYhWWPMW1HO4zd3a2VUlLY%2BuHK95%2FTFaPymtf3JT34JzggM%2FHkBv%0AVDhfTv468lavMchNTHw%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=1789154100&signature=e8037cde3302e236c3e55913a6e7d064896ebb3e7fea0e86bfae4fa8cd45a4d8&req=dScjFsp5nYhXXvMW1HO4zUiDoiD2hAIoE8Kp5wh0MSAGjnglJQ1i%2FY3FrGTC%0AMkZla9y0crFLeG%2BPCyw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370987/5d5db997e6b42e627ffa62fddf75/4823906b-9535-4a19-b89e-a1003f1e6e68?expires=1789191900&signature=0b26cc16e27f7614c28019b15f81ae27c44e34d04491d043e51c03b59ba2812f&req=dScjFsp5nYhXXvMW1HO4zUiDoiD2iAcgE8Kp5wh0MSAhYAP3J%2BtQD1TLV32t%0AtpICYcT6by0HEt2hj0s%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=1789154100&signature=24834bd7e8e49393e01cd4bd6e485517f4358a93f744088ff9a654031bbd00e5&req=dScjFsp5nYhXUfMW1HO4zckCIftjZyall3XeGelDRW3BuhjMQ7nrMfDu%2FIZo%0ADz0aNCDybs4GLfrhfb4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370988/386407facbf3e73d2f5538623a18/69d8ffcd-e1ca-470f-a219-5b88704e41f2?expires=1789191900&signature=a42b05d632e1f8b09a481b53c8bd19ad33e6478eebf1fa5c209487a7f41f9080&req=dScjFsp5nYhXUfMW1HO4zckCIftjayOtl3XeGelDRW0oEZQnUMhl1Elwi1V2%0Aa3R2s8EoJKERnU1XXGk%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=1789154100&signature=9e2d6d70dfcff60fd47b7541e06c707a1c212ad4697f24ca432875598864fded&req=dScjFsp5nYhXUPMW1HO4zaSEGlqdT7wM2JrJefVtywngkQjmB8XPwmToZ02l%0A94bw%2FlY4cKGEnOYKo48%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370989/f829dcd8bdd88e944322f678323f/9d25eff1-6df3-40be-82eb-ba7fe09187e8?expires=1789191900&signature=6d9da0cb21ea702a07c23a81cf7ea86e824b77cb40b730004012fa196cafed3c&req=dScjFsp5nYhXUPMW1HO4zaSEGlqdQ7kE2JrJefVtywm1kP3sjsL5Wu8SX0YM%0A6yToEMKvVtQff%2Bp8d5s%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=1789154100&signature=11df71d7e2526568c4423b754efe18ef664dea64b439a46f1a0829f73f16833d&req=dScjFsp5nYhWWfMW1HO4zT7Q08G6uAgXAmYRPrgMBZki%2FDsL7ek%2FLOWp4%2BKG%0A5hxt1N9XnbshaShqzy8%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370990/d173fbc6f030780d30c6d7b8e204/7e47b9d1-89fe-4607-8b5b-f7b06e7ad0d6?expires=1789191900&signature=ad3ebef70bcc9570eae868373aa2d768ae3b3e9227d2e8d7dd65e88518da7c91&req=dScjFsp5nYhWWfMW1HO4zT7Q08G6tA0fAmYRPrgMBZk1VQlDPp3ASdM1HKD6%0AZpHblW75KH8eW5FaDtI%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 b1395a7ea..5a7b366aa 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=1789154100&signature=9dc116b8b7b44078659ce1d870da08e5c2b8f961f8bed9ed812e42a97a11fca2&req=dSUvEs97mYNeXvMW1HO4zYCWiS0ZhMKbuqqBX2puyxQ6CAeyywdE2wl3IVze%0AaPg23G6jqR5BnHA%2BNZk%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584654217/db0a977417e38e43639f060d96e0/image.png?expires=1789191900&signature=4db1baa4c56f071ae252c847dd5e36942c0ea9efa23ed2e28facedede43864e6&req=dSUvEs97mYNeXvMW1HO4zYCWiS0ZiMeTuqqBX2puyxRfSZVFVJDVh6D0QJ7W%0AnyWmwiOFJeYtgnrXHPw%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=1789154100&signature=c154c208da8fdce1b7ed6dc114b224ef303175034ac7572315f8e3c005630820&req=dSUvEs94mYJdWPMW1HO4zQwER3orJItnqMITUZbanFB3uX0csAARw3V23%2FVs%0A3uUnLncXa26FbuddzYA%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584664321/59b50eba0b61e0789f7055fcf9f4/image+%285%29.png?expires=1789191900&signature=2e71998cc190b2c7838a0a93eb4db846fcfa4d4a0d6d8c187a98026b26e2bae9&req=dSUvEs94mYJdWPMW1HO4zQwER3orKI5vqMITUZbanFC4glWlzUmt2IK5OMmJ%0A5PmH5oFy7vlshiN02k0%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584693386/aed472efe163abcbc14fa32f3699/rate+limited+requests.png?expires=1789154100&signature=31b24a2baeab8b2b27e66dc81529f0a1dc085963ab67759e9e9b9a677c0796a1&req=dSUvEs93noJXX%2FMW1HO4zRxEwWJM41Vt21D6pckxWMaJvFqUIZPvA0CN%2BTWW%0AsKajYSWpsPFUlXcA3Hk%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584693386/aed472efe163abcbc14fa32f3699/rate+limited+requests.png?expires=1789191900&signature=b3fbcd40c11f47e180583e3a5d60988930196c066352f94112c421f7fa11ea78&req=dSUvEs93noJXX%2FMW1HO4zRxEwWJM71Bl21D6pckxWMbE3yHQVX6GiYz4HOYr%0ANgMZNAMKzQIiAUT9TeA%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=1789154100&signature=f54dd6408b02e3496ea47b84d7444fcd7be924e19232179dae4128df01bb699a&req=dSUvEs95lIVfWPMW1HO4zUR%2Bh5XCVtRgCyIF5nuUsbxhVVMpoBqlx01QIg97%0Ao%2F9wRkJfj4Az4%2BrKgu4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584679401/4d0bc8ed08625e1adee414e77030/CleanShot+2025-06-23+at+08_54_40%402x.png?expires=1789191900&signature=ae4943d279323e9a9c857f431dfd1dd7a8d266aa4c664b828c0361333ae1a439&req=dSUvEs95lIVfWPMW1HO4zUR%2Bh5XCWtFoCyIF5nuUsbznAJXN84lUaq0BoqUt%0Ag1Khrywtzzz7rsvnGfo%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 4b4d4afb1..46ffd679c 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=1789154100&signature=f3ffb78055ff7754a32b2939d5c7beaaa8ab9764f2e59e295ec380a6329d25b0&req=dSkiF892mYhZWfMW1HO4zdcpD19T4AeAR8xgMH3ra8g2gl9eDbpivZUUINXL%0Au%2BHprHAnZCBTO0Xrymc%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1951684960/0cd917c4455b31e86b70a97f8234/image.png?expires=1789191900&signature=6b272403d3b3b071aac9164cbacb5fd93a6880fd9c23fd217c3124cc96c55be8&req=dSkiF892mYhZWfMW1HO4zdcpD19T7AKIR8xgMH3ra8gskvmsbnV5R0MgCUk0%0AYreznpti0YBMkDP%2BwUk%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=1789154100&signature=efb9a024c2fc7c8603d9612846c2b46eb94d31c307ce9bc2fba2b44353623c97&req=dSkiF892mIlZWfMW1HO4zcqH79CCzIBsf3CUbx4Ru6Wu7WVLxjV%2FcvTz%2FuPl%0ADSEQrgGWP419AYnLFIs%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1951685860/6bf1aa2c57d6ff95804797779e9c/image.png?expires=1789191900&signature=6a528705590d6e68d96b7b34134b22123ffa8cf279feceec493f319349dd5ce8&req=dSkiF892mIlZWfMW1HO4zcqH79CCwIVkf3CUbx4Ru6VLhQuuPzBolpU1SkPI%0AI%2BVtkE4%2FxZpp7R0o6E0%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=1789154100&signature=90a7c486c947027ccbfddafdb4d1614b5c36db822942c562db3ea7c8deec0807&req=dSkiF892nYBZWfMW1HO4zbvYOljkKH2SK6hAzMpXfmPLWh1tr98yjm211iVe%0AX6CNSDrHNCysxXOAggQ%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1951680160/d5a38784df4c6d0cc55eda339279/Screenshot%2B2025-10-28%2Bat%2B2_00_15-E2-80-AFPM.png?expires=1789191900&signature=6142eaddf8f8da721f51f13dca4336a24382c2317f6f212a8fee4cef25d44ceb&req=dSkiF892nYBZWfMW1HO4zbvYOljkJHiaK6hAzMpXfmO%2BmrU4wRCAiM5kLW9D%0AHBSSlBTgG6Sz7u4OkBY%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=1789154100&signature=ac91d793ae5bbdcfe5440fb726d6688a797ec59a4c7ea9c53c6cc0957c476acc&req=dSkiF895m4hdXvMW1HO4zW9EwgC8%2FHCygj8mTHivCKYJMqAYDAL6xwSgxeqI%0AJjh3ELUoMmojuX6FKJM%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1951676927/c66153a2c075c6a64404306aefd0/Screenshot%2B2025-10-28%2Bat%2B1_58_24-E2-80-AFPM.png?expires=1789191900&signature=1df1864bf269b19f5eb453c0bfb056b47788babe14c77f94741554759cab5447&req=dSkiF895m4hdXvMW1HO4zW9EwgC88HW6gj8mTHivCKZmy4onuEkeiKL5aDBC%0APWOJTKO3LMZKGdfr7RM%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 c3ada1178..6d3817216 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=1789154100&signature=bc933691e10180325c4e2022efa10ab73a1ee4ed27151a013418c1966038d805&req=diAiFcB%2Bn4NWWPMW1HO4zfGib26lbgReYabJlVJ9VPxw5rV6fs9qmdf4xVE4%0AYpLFAfBGhFCvBAXSd5g%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2053902291/8c39d1a79dedc97411eed54dec5c/CleanShot+2026-02-11+at+11_25_34%402x.png?expires=1789191900&signature=84be5339a2e333d03b2d20dc26830ecc96b7efb7ca3f995b809dad4940765c85&req=diAiFcB%2Bn4NWWPMW1HO4zfGib26lYgFWYabJlVJ9VPwL4pgGVLqV6msYmxRa%0Abexbq27cDvBpCX1OJTU%3D%0A) ## How does disabling public projects work? diff --git a/discovery.json b/discovery.json index 62e12c58b..afa8307c9 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-11", + "updated": "2026-09-12", "domains": { "anthropic.com": { "status": "frozen", diff --git a/tombstones.json b/tombstones.json index 2cd09582e..6d0370e46 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-11", + "updated": "2026-09-12", "urls": { "https://claude.com/docs/claude-science/annotations": { "since": "2026-09-01",