From 27979136e3ef1043eab08ca29d738f65cf43fa64 Mon Sep 17 00:00:00 2001 From: "claude[bot]" <41898282+claude[bot]@users.noreply.github.com> Date: Wed, 26 Aug 2026 02:19:07 +0000 Subject: [PATCH] docs: Claude Code v2.1.246 - Auto mode UI editor, disableDesktopLocalSessions, 50+ bug fixes Co-Authored-By: claude-yolo[bot] --- content/.metadata.json | 452 ++++++++++-------- content/CHANGELOG.md | 64 +++ content/claude-code-manifest.json | 40 +- .../claude-tag/admins/add-connections.md | 20 +- content/claude/claude-tag/admins/audit.md | 14 +- .../claude-tag/admins/configure-github.md | 8 + .../claude-tag/admins/connections/custom.md | 7 +- content/claude/claude-tag/admins/customize.md | 14 +- .../claude-tag/admins/pair-workspace.md | 5 +- .../claude-tag/admins/restrict-access.md | 12 +- .../claude-tag/admins/set-spend-limit.md | 5 +- content/claude/claude-tag/admins/test-it.md | 5 +- .../claude/claude-tag/admins/workspaces.md | 2 + .../claude-tag/concepts/settings-map.md | 8 +- .../claude/claude-tag/users/good-habits.md | 6 +- content/claude/cowork/changelog.md | 69 +++ content/claude/government/config/settings.md | 6 +- .../office-agents/third-party-platforms.md | 50 +- .../third-party/claude-desktop/bootstrap.md | 2 +- .../claude-desktop/configuration-changelog.md | 56 +++ .../claude-desktop/configuration.md | 152 ++++-- content/en/docs/claude-code/amazon-bedrock.md | 4 + content/en/docs/claude-code/artifacts.md | 2 +- .../en/docs/claude-code/auto-mode-config.md | 17 +- content/en/docs/claude-code/changelog.md | 64 +++ content/en/docs/claude-code/code-review.md | 8 +- content/en/docs/claude-code/commands.md | 14 +- content/en/docs/claude-code/costs.md | 2 +- .../en/docs/claude-code/desktop-changelog.md | 7 +- content/en/docs/claude-code/desktop-linux.md | 35 +- content/en/docs/claude-code/desktop.md | 7 +- content/en/docs/claude-code/env-vars.md | 12 +- content/en/docs/claude-code/errors.md | 40 +- content/en/docs/claude-code/fast-mode.md | 6 +- .../docs/claude-code/feature-availability.md | 4 - content/en/docs/claude-code/goal.md | 12 +- content/en/docs/claude-code/keybindings.md | 11 +- .../en/docs/claude-code/managed-settings.md | 4 +- .../en/docs/claude-code/monitoring-usage.md | 10 +- content/en/docs/claude-code/overview.md | 12 +- .../en/docs/claude-code/permission-modes.md | 21 +- content/en/docs/claude-code/permissions.md | 46 +- content/en/docs/claude-code/quickstart.md | 12 +- .../claude-code/server-managed-settings.md | 38 +- .../en/docs/claude-code/settings-reference.md | 21 + content/en/docs/claude-code/statusline.md | 17 +- .../en/docs/claude-code/terminal-config.md | 8 +- .../en/docs/claude-code/voice-dictation.md | 10 +- ...how-do-i-log-out-of-all-active-sessions.md | 2 +- ...-can-i-delete-my-claude-console-account.md | 4 +- ...k-settings-on-team-and-enterprise-plans.md | 2 +- ...ser-feedback-settings-on-claude-console.md | 2 +- .../10593882-share-and-unshare-chats.md | 6 +- .../10684626-enable-and-use-web-search.md | 2 +- ...ith-local-mcp-servers-on-claude-desktop.md | 2 +- content/support/11101966-use-voice-mode.md | 8 +- ...the-claude-lti-in-canvas-by-instructure.md | 2 +- ...and-memory-to-build-on-previous-context.md | 99 +++- ...being-asked-to-verify-my-payment-method.md | 2 +- .../11869619-use-claude-with-ios-apps.md | 2 +- .../11869629-use-claude-with-android-apps.md | 4 +- ...or-team-and-seat-based-enterprise-plans.md | 10 +- ...12173-get-started-with-claude-in-chrome.md | 2 +- ...eam-plan-from-monthly-to-annual-billing.md | 4 +- ...11783-create-and-edit-files-with-claude.md | 6 +- content/support/12138966-release-notes.md | 6 + .../12157520-claude-code-usage-analytics.md | 2 +- .../support/12260368-use-incognito-chats.md | 2 +- .../support/12293051-use-claude-in-xcode.md | 2 +- ...age-usage-credits-for-paid-claude-plans.md | 2 +- ...6728-troubleshoot-claude-error-messages.md | 2 +- .../support/12512180-use-skills-in-claude.md | 2 +- ...d-using-the-desktop-extension-allowlist.md | 8 +- .../12618689-claude-code-on-the-web.md | 6 +- ...-quick-entry-with-claude-desktop-on-mac.md | 2 +- ...analytics-for-team-and-enterprise-plans.md | 24 +- ...2446-claude-in-chrome-permissions-guide.md | 4 +- .../12997503-team-plan-billing-faqs.md | 2 +- .../13132885-set-up-single-sign-on-sso.md | 8 +- ...3133195-set-up-jit-or-scim-provisioning.md | 6 +- ...1-configuring-session-security-settings.md | 6 +- .../13189465-log-in-to-your-claude-account.md | 2 +- .../13325567-account-management-faqs.md | 2 +- ...13345190-get-started-with-claude-cowork.md | 10 +- ...mizing-your-console-appearance-settings.md | 2 +- ...13371040-log-in-to-your-console-account.md | 2 +- ...13641943-visual-and-interactive-content.md | 6 +- .../support/13756069-public-sector-faqs.md | 2 +- ...33-manage-plugins-for-your-organization.md | 2 +- .../support/13837440-use-plugins-in-claude.md | 4 +- ...hedule-recurring-tasks-in-claude-cowork.md | 2 +- ...gn-tasks-from-anywhere-in-claude-cowork.md | 4 +- ...ur-tasks-with-projects-in-claude-cowork.md | 12 +- ...-let-claude-use-your-computer-in-cowork.md | 6 +- ...sync-works-for-enterprise-organizations.md | 4 +- content/support/14503613-sso-login.md | 6 +- ...43-set-up-scim-in-claude-for-government.md | 6 +- content/support/14503775-mcp-web-search.md | 2 +- ...-up-your-design-system-in-claude-design.md | 2 +- ...min-guide-for-team-and-enterprise-plans.md | 2 +- ...14604416-get-started-with-claude-design.md | 2 +- ...t-a-default-model-for-your-organization.md | 2 +- ...nage-model-access-for-your-organization.md | 8 +- ...1-get-started-with-1password-for-claude.md | 2 +- ...6563838-get-started-with-claude-science.md | 13 + ...rstanding-your-pro-or-max-plan-invoices.md | 71 +++ ...8-understanding-your-team-plan-invoices.md | 75 +++ ...-understanding-your-claude-api-invoices.md | 55 +++ .../8114491-get-started-with-claude.md | 2 +- ...8230524-delete-or-rename-a-conversation.md | 16 +- .../support/8325618-paid-plan-billing-faqs.md | 2 +- ...27-customizing-your-appearance-settings.md | 6 +- ...nt-to-a-team-or-enterprise-organization.md | 2 +- ...77-how-can-i-create-and-manage-projects.md | 10 +- ...9-manage-project-visibility-and-sharing.md | 10 +- ...d-usage-reporting-in-the-claude-console.md | 8 +- .../9547008-publish-and-share-artifacts.md | 8 +- ...e-public-projects-for-your-organization.md | 2 +- discovery.json | 2 +- tombstones.json | 2 +- 120 files changed, 1447 insertions(+), 613 deletions(-) create mode 100644 content/support/16563838-get-started-with-claude-science.md create mode 100644 content/support/16607638-understanding-your-pro-or-max-plan-invoices.md create mode 100644 content/support/16607668-understanding-your-team-plan-invoices.md create mode 100644 content/support/16608069-understanding-your-claude-api-invoices.md diff --git a/content/.metadata.json b/content/.metadata.json index e035d647c..430651b26 100644 --- a/content/.metadata.json +++ b/content/.metadata.json @@ -1,7 +1,7 @@ { "metadata": { "version": "2.0", - "fetch_date": "2026-08-25T16:22:40.242581Z", + "fetch_date": "2026-08-26T02:17:23.918606Z", "section": "all" }, "items": [ @@ -4321,22 +4321,22 @@ "url": "https://code.claude.com/docs/en/overview", "status": "success", "path": "en/docs/claude-code/overview.md", - "sha256": "90cbed4c0ccdaefe35e85a86692343170a90a3def932ae3398970cc1dd2ef7b2", - "size": 16546 + "sha256": "efd04a3424a2ca6bd42eba7756a49e9071ae82b39dc56e7b9a91f813ac6e674e", + "size": 18770 }, { "url": "https://code.claude.com/docs/en/quickstart", "status": "success", "path": "en/docs/claude-code/quickstart.md", - "sha256": "5103508ee3a996b48abf344d5c6937750483d6bc1140f6b01e7190f90e6cb7f8", - "size": 13251 + "sha256": "9dbd8fd3a0b9eeefc7d45c127e638fbf9f54078d1f1f5b6287e54ad61fef40ef", + "size": 15579 }, { "url": "https://code.claude.com/docs/en/changelog", "status": "success", "path": "en/docs/claude-code/changelog.md", - "sha256": "25ff871bca319a441fea6d7306506283ae1bc4e3c3acbc1289e06e8c2ec8c47a", - "size": 584158 + "sha256": "b24b366c78771f88d2eba9a696af53662ea17b88ef1127a092394e2abbc9bf50", + "size": 593597 }, { "url": "https://code.claude.com/docs/en/how-claude-code-works", @@ -4461,15 +4461,15 @@ "url": "https://code.claude.com/docs/en/desktop", "status": "success", "path": "en/docs/claude-code/desktop.md", - "sha256": "278e73ae05b0f38306f00af94ad0aed44ed984c1ed672ee0dd9297fc04ee9462", - "size": 95478 + "sha256": "2ed26d7c1efde71300e02a5bf4c5d32fa8cb5227635ec29e418cc1532f4d2e89", + "size": 96947 }, { "url": "https://code.claude.com/docs/en/desktop-linux", "status": "success", "path": "en/docs/claude-code/desktop-linux.md", - "sha256": "3fb2b62a80c0c054626fccc30d840ba0ec476bde5d59c3704a757b4a8d02685d", - "size": 7645 + "sha256": "3962791d633a2c52d38d506a47216ff28dbcceb8817b0451a55f6c957bd151c5", + "size": 11493 }, { "url": "https://code.claude.com/docs/en/desktop-wsl", @@ -4545,8 +4545,8 @@ "url": "https://code.claude.com/docs/en/code-review", "status": "success", "path": "en/docs/claude-code/code-review.md", - "sha256": "50426c7b6ef8a73e4c42ae6cc2cecca772f58200a09052eb4c65e37dc23f3c97", - "size": 32091 + "sha256": "ca938026dbc7df33c5dadf800ddf0ef2033308e2b3a04b8b3951c302074016bf", + "size": 31537 }, { "url": "https://code.claude.com/docs/en/github-actions", @@ -4678,8 +4678,8 @@ "url": "https://code.claude.com/docs/en/artifacts", "status": "success", "path": "en/docs/claude-code/artifacts.md", - "sha256": "a58656a5d4d6ab2df654272fa681b125e3454d17bcd7126a604806f83f44b5ac", - "size": 32894 + "sha256": "d5450d057778a7a9e6d5aa2b92fec342898aafa512a9d55b1bf128eeca49dc37", + "size": 32909 }, { "url": "https://code.claude.com/docs/en/hooks-guide", @@ -4706,8 +4706,8 @@ "url": "https://code.claude.com/docs/en/goal", "status": "success", "path": "en/docs/claude-code/goal.md", - "sha256": "e1b85023df2cc1e02c3d37b241b8c2618930421aa8e42278fd74ecff1b35ffd6", - "size": 14889 + "sha256": "1a0bcf9a40c2228a9aa4e4a1571ba14b606b027b2f9ef404eb3deef31a8871b2", + "size": 15367 }, { "url": "https://code.claude.com/docs/en/headless", @@ -4755,8 +4755,8 @@ "url": "https://code.claude.com/docs/en/errors", "status": "success", "path": "en/docs/claude-code/errors.md", - "sha256": "62fccb7d15db5a90daf5107cf5c38f3e7698d07518861fd32f70b8a0b94b560d", - "size": 272893 + "sha256": "32c4fcb81f56eba9c3910380535b50066ebd24eb0eb23acd29b153b4d2c0ccb2", + "size": 277422 }, { "url": "https://code.claude.com/docs/en/admin-setup", @@ -4783,15 +4783,15 @@ "url": "https://code.claude.com/docs/en/managed-settings", "status": "success", "path": "en/docs/claude-code/managed-settings.md", - "sha256": "088b3c270f869f95fe02c23cda92638229f77e1070b0e9e190d164a43570492f", - "size": 45161 + "sha256": "93a2d2c24a1d05a10417ff601d4bade91dbf9d48dec16a784154e24b1756dddb", + "size": 45301 }, { "url": "https://code.claude.com/docs/en/server-managed-settings", "status": "success", "path": "en/docs/claude-code/server-managed-settings.md", - "sha256": "159c69cd0c831b4ed1e029865d6656abed2d352a0f2a6c465a17b03631bf930e", - "size": 35117 + "sha256": "cacf4534ccc6151ee4544237376c7665fad4dc73b371156041cd48defd3788ff", + "size": 38988 }, { "url": "https://code.claude.com/docs/en/managed-mcp", @@ -4804,8 +4804,8 @@ "url": "https://code.claude.com/docs/en/auto-mode-config", "status": "success", "path": "en/docs/claude-code/auto-mode-config.md", - "sha256": "5f82ee19fbd49fd4ad63ab047002f9ade4a629f3b5f9963eeaec7d7fedee9c79", - "size": 31706 + "sha256": "881ece7968820f58da39e187fc5cc7d118bdef0cc085646e384d8a2e3c8c32a4", + "size": 33727 }, { "url": "https://code.claude.com/docs/en/third-party-integrations", @@ -4818,15 +4818,15 @@ "url": "https://code.claude.com/docs/en/feature-availability", "status": "success", "path": "en/docs/claude-code/feature-availability.md", - "sha256": "9a4d9321e29c6112a08c86010fd3f83decde4c0b4c728e416ecbf823bf5cdbe0", - "size": 23687 + "sha256": "d262352821bae315d4ac5a218d8a938b4e7f0555e73936afad177e0b4c421b21", + "size": 23159 }, { "url": "https://code.claude.com/docs/en/amazon-bedrock", "status": "success", "path": "en/docs/claude-code/amazon-bedrock.md", - "sha256": "74232094253720e126512b857d5eea2cfca8a45b0dec69094ba18827f998bac8", - "size": 40015 + "sha256": "2143018a3a195c7a805b84383adb932ad838b013c9b710758fa34e25a481509c", + "size": 40958 }, { "url": "https://code.claude.com/docs/en/claude-platform-on-aws", @@ -4951,15 +4951,15 @@ "url": "https://code.claude.com/docs/en/monitoring-usage", "status": "success", "path": "en/docs/claude-code/monitoring-usage.md", - "sha256": "60a535943bc480869d4231360e4699729fda3185c261938f1e0703e6dfc36d06", - "size": 136615 + "sha256": "a3139221d34ee9f6a4d7affcb38dbacf16e69d1fa3036343e8235201683919dc", + "size": 137401 }, { "url": "https://code.claude.com/docs/en/costs", "status": "success", "path": "en/docs/claude-code/costs.md", - "sha256": "f360b37cede6cc48230dad82dbb6dd8fcc9e59a76343518fcdda20317a5bf768", - "size": 35101 + "sha256": "df3782e51e3ee54930ccd9c61866150985042616efd2acb66abd287037fd3200", + "size": 35227 }, { "url": "https://code.claude.com/docs/en/analytics", @@ -5042,8 +5042,8 @@ "url": "https://code.claude.com/docs/en/settings-reference", "status": "success", "path": "en/docs/claude-code/settings-reference.md", - "sha256": "3d0dc7ada7ca5c300cda7821d025bdd50a891f0275ea9ffb11b3f305dae98426", - "size": 377401 + "sha256": "5698a78752ec964c722277a6cab4a272e8acc30285cd860ea99a685c40e031c3", + "size": 380320 }, { "url": "https://code.claude.com/docs/en/settings-example", @@ -5056,15 +5056,15 @@ "url": "https://code.claude.com/docs/en/permissions", "status": "success", "path": "en/docs/claude-code/permissions.md", - "sha256": "6a1d2d107dc217f2d2f699d6d6a602fa6f6f806ac81a28a5d9664d77a2b6a791", - "size": 68203 + "sha256": "d0bdb132cc6668678a208ae038729b43ac23515c1b0a791951243092c06c729c", + "size": 70925 }, { "url": "https://code.claude.com/docs/en/permission-modes", "status": "success", "path": "en/docs/claude-code/permission-modes.md", - "sha256": "9f146ef9ac0a851611c716d914db5e208c72f5f1d12339dc691c7dff85c38e6c", - "size": 74959 + "sha256": "b8ca26b4dcd5e836dcb97829ef92828a0bc21cfc1562c439dfde957ce9fc6ccc", + "size": 74983 }, { "url": "https://code.claude.com/docs/en/sandboxing", @@ -5147,8 +5147,8 @@ "url": "https://code.claude.com/docs/en/fast-mode", "status": "success", "path": "en/docs/claude-code/fast-mode.md", - "sha256": "54f0b65983afd4ce109f3110ff778779981485d15273f1ab697b83c052f16c5e", - "size": 18178 + "sha256": "5455cf1e3007effb505c15217f2eabfd27424f65168bbb23a86a645add3cdfdd", + "size": 18338 }, { "url": "https://code.claude.com/docs/en/advisor", @@ -5168,8 +5168,8 @@ "url": "https://code.claude.com/docs/en/terminal-config", "status": "success", "path": "en/docs/claude-code/terminal-config.md", - "sha256": "b0de0429756ae86344b84fa8983cb4ec2a6fff9253baf27a50a53da915a47459", - "size": 23634 + "sha256": "4e9fd51df62ff4ca4f688ad5e6bcfd0358de36636f671032b96d2948970a02a5", + "size": 23840 }, { "url": "https://code.claude.com/docs/en/fullscreen", @@ -5189,22 +5189,22 @@ "url": "https://code.claude.com/docs/en/voice-dictation", "status": "success", "path": "en/docs/claude-code/voice-dictation.md", - "sha256": "35364a1aebd0263f97a623cf2415536681b50f30ae800e61565265b838ea6702", - "size": 16688 + "sha256": "a42612da5ed0b984d817f12b3328902c646e073ae299a8ee40c1cee58c64beb2", + "size": 16968 }, { "url": "https://code.claude.com/docs/en/statusline", "status": "success", "path": "en/docs/claude-code/statusline.md", - "sha256": "b0811428721bd7c30df85fa7bb8f604c69bd4ee7c4b549a7c8ea88fbe1be9723", - "size": 70453 + "sha256": "47a244f29967c8fd99fb7e69188027c55f42dba4d2ef24b629e727b496920b9b", + "size": 70821 }, { "url": "https://code.claude.com/docs/en/keybindings", "status": "success", "path": "en/docs/claude-code/keybindings.md", - "sha256": "a28bbcdde51c14b2e6a8b0525251169c180917014debf3b7dfe11ce644d5ba3b", - "size": 34759 + "sha256": "bf5a45c1bb93edf0c5f4fd01254735a5236e79835b42a5070fbe7cd5f06672e5", + "size": 34692 }, { "url": "https://code.claude.com/docs/en/cli-reference", @@ -5217,15 +5217,15 @@ "url": "https://code.claude.com/docs/en/commands", "status": "success", "path": "en/docs/claude-code/commands.md", - "sha256": "8267144c0ad8eef6726cb007af592d4e70e7de3e1eb0b869b0a228b07a7ab3d0", - "size": 160153 + "sha256": "4cbaa03ff4d6a1a096ffc8187aa57ee8857642b3da10a1c8dd1287ad3b26e043", + "size": 160241 }, { "url": "https://code.claude.com/docs/en/env-vars", "status": "success", "path": "en/docs/claude-code/env-vars.md", - "sha256": "d663d0a64d39195da7520ab9823b0672f5e3fafbe852000d37dbdf726ce59db5", - "size": 466580 + "sha256": "f5e59a5161443f12fbc34ef951e294244d1f53c9f459ae10325b9f856a4ec230", + "size": 467620 }, { "url": "https://code.claude.com/docs/en/tools-reference", @@ -8129,7 +8129,7 @@ "url": "https://support.claude.com/en/articles/8114491-get-started-with-claude", "status": "success", "path": "support/8114491-get-started-with-claude.md", - "sha256": "a0cbaf762d93f0e391ab4dade13754ec5737092ea4b9fd89ebcf72b93d541314", + "sha256": "ff7af0daf84aa0e55532e73c00876db3e0ad06f40df171d0e23541fa927899d5", "size": 5302 }, { @@ -8206,8 +8206,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": "eda8d0c16d81b5ef9b021e3b44c644d619e3a3bd5e5104980748ce4bf4d052a1", - "size": 5885 + "sha256": "8b48960d989027838b5af9c09f0441305d4d8aa8eb97a368d7a5242d7a4e7981", + "size": 5883 }, { "url": "https://support.claude.com/en/articles/8241126-upload-files-to-claude", @@ -8276,8 +8276,8 @@ "url": "https://support.claude.com/en/articles/8325618-paid-plan-billing-faqs", "status": "success", "path": "support/8325618-paid-plan-billing-faqs.md", - "sha256": "5affa9d5209a7f850ff2ac4e7da386ddf113f7178ccfa7ebf9886a4be6cf3762", - "size": 4555 + "sha256": "23253f3573edafa0d66c256e6d6f7629989c43a5c5f5ba1e62a3176d1aaba1d0", + "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", @@ -8339,8 +8339,8 @@ "url": "https://support.claude.com/en/articles/8887527-customizing-your-appearance-settings", "status": "success", "path": "support/8887527-customizing-your-appearance-settings.md", - "sha256": "8b58a3cb4ceb0df79a26d12f00e6efce8178de731dd941201fb91f5632efd98a", - "size": 1874 + "sha256": "c62d7ddc8e819b520219bb9254e672e8713386a0a464031a073f4a9bde95d73c", + "size": 1872 }, { "url": "https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler", @@ -8514,8 +8514,8 @@ "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": "9c7d78de0951ea64934774c9ece7aef90ac26cab2f02999ebf61405bc3043b9e", - "size": 9376 + "sha256": "55e24b8bc72a44b3981bfa33f89228ca2366eb6f71e38522bf196482ac304610", + "size": 9374 }, { "url": "https://support.claude.com/en/articles/9301722-updates-to-our-acceptable-use-policy-now-usage-policy-consumer-terms-of-service-and-privacy-policy", @@ -8563,15 +8563,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": "9a49140599e7c917d780ca807023073ee650b3534205fee691edc85b24e7ca11", - "size": 9270 + "sha256": "9a6c8dfa50f79fb1846b004a17175a40b090b379323651cc439d493a94016ef1", + "size": 9369 }, { "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": "d0b21c9fc6386c1336ef15fa50978085c64c5afa073ccc128cb7998d168729c7", - "size": 8569 + "sha256": "621f0baaa928998285ff01dc1524cc219cc7fba4f3b00f21d8ace21a9858a384", + "size": 8559 }, { "url": "https://support.claude.com/en/articles/9519291-what-is-anthropic-s-policy-for-handling-governmental-requests-for-user-information", @@ -8591,15 +8591,15 @@ "url": "https://support.claude.com/en/articles/9534590-cost-and-usage-reporting-in-the-claude-console", "status": "success", "path": "support/9534590-cost-and-usage-reporting-in-the-claude-console.md", - "sha256": "7cb45b085dfd7338360b48ce8e3a34a82515e96ff02f1c95a97d2d4a443c8e6c", + "sha256": "6d80593937c03e219ac6e9cb09a9aaa7b71a5becee4c390991f8b0107e2774ba", "size": 5104 }, { "url": "https://support.claude.com/en/articles/9547008-publish-and-share-artifacts", "status": "success", "path": "support/9547008-publish-and-share-artifacts.md", - "sha256": "3c856f3d313eb8efbd285a92fcfb120d54d38bdef0d0e4c41aba3dca7a0ce132", - "size": 7336 + "sha256": "5781e1cf157e8c49606aa4df4a2a3dd9b60c042d023a0c082cba668783e09578", + "size": 7326 }, { "url": "https://support.claude.com/en/articles/9612887-install-claude-for-android", @@ -8675,8 +8675,8 @@ "url": "https://support.claude.com/en/articles/9927533-disable-public-projects-for-your-organization", "status": "success", "path": "support/9927533-disable-public-projects-for-your-organization.md", - "sha256": "10cb4f9cb412be68ca4660d5bf9ae4f41534d61891d629fbf2ecd8984b931a80", - "size": 2580 + "sha256": "86e173e17cfea5ece002c9199d1a9148d663f00d18c3d1d3648aaf2b46e2a0e5", + "size": 2578 }, { "url": "https://support.claude.com/en/articles/9927624-add-or-update-your-team-plan-s-tax-or-vat-id", @@ -8815,15 +8815,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": "5ea13c0b0db01837669424b635b2f6a2826b4584053c6b14904041d7dbc52811", - "size": 2496 + "sha256": "b2d6f6f4499eb97bca0516e13169618ab10397da06480aca6e656c464368a80b", + "size": 2492 }, { "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": "1bbabfa471f4a92c7a4f08669a2d65a39a77da95e1bff8301ab50f0782c01c23", - "size": 3169 + "sha256": "2689c3b2fbb42c0671b44999635e438c140dce641f68c2ad4dc3ca7ffb4e7507", + "size": 3165 }, { "url": "https://support.claude.com/en/articles/10366389-how-can-i-get-higher-rate-limits-on-the-claude-api", @@ -8864,15 +8864,15 @@ "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": "ccccdfb4f2ff82500e8fb13b891c8b6c0409323e5491d9216c4963d4d88b4e20", + "sha256": "de26a5cb8a2e86e11ca676137d953598120c3cb32988628fb1606b0e6283ddeb", "size": 1036 }, { "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": "14a2662ebb90e77a3b37dd3b9061c4ecc962680f003b9e16413d1a204684add1", - "size": 999 + "sha256": "e55d180125508697f8c9deb66b9843d1c750cf1e3a043f21c4a40c3b99970406", + "size": 1001 }, { "url": "https://support.claude.com/en/articles/10534883-use-the-claude-widget-on-android", @@ -8885,15 +8885,15 @@ "url": "https://support.claude.com/en/articles/10593882-share-and-unshare-chats", "status": "success", "path": "support/10593882-share-and-unshare-chats.md", - "sha256": "b200d0ebc2754d6fa7b879500e3f0cc2473470a9268788517ff3a3bb1ecba56c", - "size": 4028 + "sha256": "44b59d2c39a9bfc1fa5a46b2384189552e8b35b0bca165bb924637f0909808b1", + "size": 4012 }, { "url": "https://support.claude.com/en/articles/10684626-enable-and-use-web-search", "status": "success", "path": "support/10684626-enable-and-use-web-search.md", - "sha256": "49647b7f95bffbaedf734d5c0a6f452181010c0362c2c03260305a98236f7da7", - "size": 6368 + "sha256": "2887fb81063c5c9b6541ce0704c5ef4e07e5c7a85e37d888965d811a3313b8ce", + "size": 6370 }, { "url": "https://support.claude.com/en/articles/10684638-report-block-and-remove-content-from-claude", @@ -8913,8 +8913,8 @@ "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": "3bc2a0954b4bc9e53f34a2cef95f916ebd7abf74d88389738455a54c15e35f30", - "size": 8265 + "sha256": "f9fe5b3ae8dc9fd0412deb0acf6ae0ad88bf3d1f1de93a524d2bb6844beecf15", + "size": 8267 }, { "url": "https://support.claude.com/en/articles/11049741-what-is-the-max-plan", @@ -8955,8 +8955,8 @@ "url": "https://support.claude.com/en/articles/11101966-use-voice-mode", "status": "success", "path": "support/11101966-use-voice-mode.md", - "sha256": "6427f89b40f6d2e38078e4f2e6cab29608f5baf3cda9486cb6f964f8ad99c489", - "size": 10550 + "sha256": "e58d0ff2ce78f75e089d8d85bf1b8d10cc98c01a7ce0354f75011cf16dc899a4", + "size": 10558 }, { "url": "https://support.claude.com/en/articles/11107691-why-is-a-coupon-or-promotion-not-available-for-my-account", @@ -9088,8 +9088,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": "9f74b9e2c2d2f5df3101a13327caa6837e346ac6830bbf250a4a2b4baaa2427e", - "size": 2748 + "sha256": "0ef6e5e1f20f1f89e31f7b07e1adc0d11b8e6e3f6e46cef93ae48b246b746327", + "size": 2750 }, { "url": "https://support.claude.com/en/articles/11732894-who-owns-and-manages-the-data-of-my-claude-for-education-account", @@ -9102,14 +9102,14 @@ "url": "https://support.claude.com/en/articles/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context", "status": "success", "path": "support/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context.md", - "sha256": "f125e5ff8072761df7eee2d3f45f39f742fe0c9fdc79d43030f458b90fda1a25", - "size": 21510 + "sha256": "dc26fbe53bab3c04431da82dc0624107173fe34498162e2e288aa27223d171b0", + "size": 25970 }, { "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": "30fdbb76ac5efc12d4d3f936b7b7e7174074c4ae13993a600aac9e40fa90a154", + "sha256": "8ae34601b863a38fea39ac493cce7a331f73d288deb7710e51b8fc681dd7130e", "size": 814 }, { @@ -9137,15 +9137,15 @@ "url": "https://support.claude.com/en/articles/11869619-use-claude-with-ios-apps", "status": "success", "path": "support/11869619-use-claude-with-ios-apps.md", - "sha256": "b12dae477cc172aa73ec66f56682d1052e5c6a5fd727d35e07ac71ac0e320233", - "size": 12431 + "sha256": "a9c02fec43c611bd37c0728e4ff4f962711587e8196c81d6c128452739f135f0", + "size": 12545 }, { "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": "4af88d976605407c205abbc38f60fe837756b27977b644e8db3336aafeb8f29e", - "size": 13877 + "sha256": "724e5e84a339326f9010e46c22d4c67c5950a9971e1bab50eaefd0caad801ae5", + "size": 14009 }, { "url": "https://support.claude.com/en/articles/11932705-automated-security-reviews-in-claude-code", @@ -9179,14 +9179,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": "5038d55fbf36aaa6a891afd746338157f6a71f8d9419e3477cefe779e3886371", - "size": 9634 + "sha256": "6b1cd73b70b94d383a459f5b65ec3a1fa6e00f0bed0f8c61cb947c5ff983e9d3", + "size": 9624 }, { "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": "68e63aac040ddc904e3ed2d9c7be0125219426a1654690bdc5aace70e837b33f", + "sha256": "b99b019d542e90e59c30185cf6a12896ee20146b93d8bc7e6486bf55cb6a4793", "size": 14333 }, { @@ -9200,7 +9200,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": "2ced34d07f80ba212c14a4bba901aceea141e0b332c6f7910f8eaa81f423568a", + "sha256": "228b2b19a0b231786cc8f039cd2cba30524371275389fc5bec3634a069a160af", "size": 1396 }, { @@ -9214,8 +9214,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": "60e9d14e56d9d739cc83f5ab3a7edbed5de498c034568bb43ffd45d53f61a9e7", - "size": 17960 + "sha256": "2f27899f6de91e3dc2a5ccbc10ddbb793541f81384ae55125000949824fee738", + "size": 17958 }, { "url": "https://support.claude.com/en/articles/12119250-model-safety-bug-bounty-program", @@ -9235,29 +9235,29 @@ "url": "https://support.claude.com/en/articles/12138966-release-notes", "status": "success", "path": "support/12138966-release-notes.md", - "sha256": "ee6f00b499051dd94c95217b911e6034799c7b21c21512bad798dde4de133c6b", - "size": 34435 + "sha256": "e65420db5529f28de876536187aa5e39cb1df691dcf8e426e08af4676488b983", + "size": 35093 }, { "url": "https://support.claude.com/en/articles/12157520-claude-code-usage-analytics", "status": "success", "path": "support/12157520-claude-code-usage-analytics.md", - "sha256": "8f7c5f1f36d80560a680ed5d651e9a2a4ca13715a12a6b1391e71f54fc6b8ab4", - "size": 6427 + "sha256": "edeb7842538e4cf05e98c212ad70b05559d3e8933ac5eaaead2934d63be5e806", + "size": 6429 }, { "url": "https://support.claude.com/en/articles/12260368-use-incognito-chats", "status": "success", "path": "support/12260368-use-incognito-chats.md", - "sha256": "453035338421d2685ebe37a99ac6be4916c2877f8bf092f101345654ff683b41", + "sha256": "dbe58f17ab6783eb18f1fd48863e068a97df97495271c8c68a5e53c7ea63598f", "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": "50a9a1e26d5c5a6db0c58ff05c623794d1998d2e19f8a4481e99876ceac1159c", - "size": 1907 + "sha256": "036ae3961bb6bcc453dcf3ee82622692f050a061d4518add2d76508011e7e92f", + "size": 1905 }, { "url": "https://support.claude.com/en/articles/12304248-manage-api-key-environment-variables-in-claude-code", @@ -9298,14 +9298,14 @@ "url": "https://support.claude.com/en/articles/12429409-manage-usage-credits-for-paid-claude-plans", "status": "success", "path": "support/12429409-manage-usage-credits-for-paid-claude-plans.md", - "sha256": "b802cba5a783c59878887c826b81035f8f43b2b5a882cd5c8a98c720d878a977", - "size": 6410 + "sha256": "9247597b6a318526268239d031514c57bcc7c7806d99e878f9a51df27ac81fcb", + "size": 6414 }, { "url": "https://support.claude.com/en/articles/12466728-troubleshoot-claude-error-messages", "status": "success", "path": "support/12466728-troubleshoot-claude-error-messages.md", - "sha256": "8a85e3767a5284e0d79ec144e1a05b50642f41298aa1550e1696725feb57bbfe", + "sha256": "ad0139ecc6358d0a507501060203b8965e01b86a0fb1f2d61fdda546a7ec3a9f", "size": 4232 }, { @@ -9326,7 +9326,7 @@ "url": "https://support.claude.com/en/articles/12512180-use-skills-in-claude", "status": "success", "path": "support/12512180-use-skills-in-claude.md", - "sha256": "8392fd3c94fcb5b0515058c6446cef49534b64fa1e3bb85ad75733ab2bd57354", + "sha256": "47b0c23311d155fbe8033c1750c06e3acffbd94f3b8e74963bb5b826cb659353", "size": 15546 }, { @@ -9347,7 +9347,7 @@ "url": "https://support.claude.com/en/articles/12592343-enabling-and-using-the-desktop-extension-allowlist", "status": "success", "path": "support/12592343-enabling-and-using-the-desktop-extension-allowlist.md", - "sha256": "d2134f3b5659a2fd9deb7416d7c8db231bf7aa05bc0e8aa2c5dc0f6649341bcb", + "sha256": "4fab9f2fb94116b49499952e993c4c4919cfcdb895cf21adb34c9a2afef22d68", "size": 5712 }, { @@ -9361,8 +9361,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": "036271e4e3794c0b959c6492127bb4552712f1e5620c2f83418fe14d80cf0cc0", - "size": 10960 + "sha256": "38295ea86189274373a3da250d81c983210760a6af3334a4e7ee78a8cfa97e18", + "size": 10964 }, { "url": "https://support.claude.com/en/articles/12622667-enterprise-configuration-for-claude-desktop", @@ -9382,8 +9382,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": "84eb865fe33805bff03394c48361251aba9cd8a2329f372457bbe8f31dcbacf1", - "size": 5974 + "sha256": "7052be0343d334ac5e66090c944bddc2ce9e885c5871a49882ff660bc045765b", + "size": 5970 }, { "url": "https://support.claude.com/en/articles/12684923-microsoft-365-connector-security-guide", @@ -9417,8 +9417,8 @@ "url": "https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans", "status": "success", "path": "support/12883420-view-usage-analytics-for-team-and-enterprise-plans.md", - "sha256": "da575ce906ef756e9ca6d590967eb7dde4991455f1bf522dbcabb7536b1d3a25", - "size": 13163 + "sha256": "351649bf80a06a1febf311580fad09d197c51272fb15a73e162e52db69f7becd", + "size": 13157 }, { "url": "https://support.claude.com/en/articles/12902405-claude-in-chrome-troubleshooting", @@ -9438,8 +9438,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": "a15d8c1255cdaa8a683d999109797f5274c2643de8770f4afa06779cf83826e3", - "size": 9563 + "sha256": "e125054919a1a4e9cdb73066a4cb3ea23cf29f4e94c436f2ab40c8de23200f36", + "size": 9567 }, { "url": "https://support.claude.com/en/articles/12938627-how-to-gift-a-claude-subscription", @@ -9466,8 +9466,8 @@ "url": "https://support.claude.com/en/articles/12997503-team-plan-billing-faqs", "status": "success", "path": "support/12997503-team-plan-billing-faqs.md", - "sha256": "d0598265399c9241270adca23eab35997923e2426b497fac6b3cb0cb56e9b3c5", - "size": 4008 + "sha256": "d20c24e8ac02e9921485d612402fe9d0a297add7e01cac4fd403633178d0a7c7", + "size": 4006 }, { "url": "https://support.claude.com/en/articles/13015708-access-the-compliance-api", @@ -9515,15 +9515,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": "65ee5cb4a8369d20199604ad5dd19e3d6853b9655d6699f671a6dba1824b7ced", - "size": 12323 + "sha256": "4f626b4a15db4eaab0be88251ff04539558d46806dbee1b9362ed67bacccefff", + "size": 12321 }, { "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": "5593dfc95a4402e3cc953e7d3980775cf41399e00d74e6278219de1e933a1afb", - "size": 19489 + "sha256": "4a1a247416a27b6917bc03e2d8e10571aaab8e3bbaf4c381a9a5a5a7678c8d01", + "size": 19487 }, { "url": "https://support.claude.com/en/articles/13133750-manage-members-on-team-and-enterprise-plans", @@ -9550,8 +9550,8 @@ "url": "https://support.claude.com/en/articles/13163631-configuring-session-security-settings", "status": "success", "path": "support/13163631-configuring-session-security-settings.md", - "sha256": "78d312c50add579cf640a9233a3a5624fdcb591fabb75ca1965e9ca71f11a7f3", - "size": 3704 + "sha256": "ba70475b92f4926dcc0902aa1f2fabd74e19b337a4ab2599d335f5cb38359bb0", + "size": 3700 }, { "url": "https://support.claude.com/en/articles/13163666-holiday-2025-usage-promotion", @@ -9571,8 +9571,8 @@ "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": "8a441f501ceb1a30e433fb5b32d736cfbcb224c42856843607a773e8dceb2861", - "size": 7040 + "sha256": "cf2d4379f7b1c8ec239466aead1821e65afde502faad93ee080145b8ac1db247", + "size": 7038 }, { "url": "https://support.claude.com/en/articles/13198485-enforce-network-level-access-control-with-tenant-restrictions", @@ -9599,22 +9599,22 @@ "url": "https://support.claude.com/en/articles/13325567-account-management-faqs", "status": "success", "path": "support/13325567-account-management-faqs.md", - "sha256": "b8efb559a274f35288fc77128e8ae6b804a6f5a15d6f66b13afd151bd42fe265", - "size": 2632 + "sha256": "df8e14bafff99087754ac65309c94081c8ea41ab4a2a2fa756f5f9d82142e7d4", + "size": 2636 }, { "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": "4dc064e687c9190594d00468f2ff3ade4d7a62eaf5781e1608695ff67e272f1f", - "size": 20714 + "sha256": "f59145a2b8099e948c51f2169f8a00827ae60d4883756bcbf9f47a2ae13953b4", + "size": 20915 }, { "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": "e222fc94cb81d70b81718e0e1dd44b688cfe3c4cd0d5c87592d251c06ff6e023", - "size": 611 + "sha256": "96d1e1b54ad372923817a4b7841bd3793bcf454a08bc8abd68c2ea673443e2cf", + "size": 609 }, { "url": "https://support.claude.com/en/articles/13346720-export-your-organization-s-data", @@ -9634,7 +9634,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": "cd4995ab145a98bbbd0bf55f000836aab7ff70af40382772b11423f1c11d6149", + "sha256": "dc684b2a93ab354893a652efb367bbcf2f2ce2a5642ab76e13ddb78ce1ea38bf", "size": 4611 }, { @@ -9690,8 +9690,8 @@ "url": "https://support.claude.com/en/articles/13641943-visual-and-interactive-content", "status": "success", "path": "support/13641943-visual-and-interactive-content.md", - "sha256": "97fbee65d880e641b6e191d99d7714c9112bb77e4afc2ccd9f90271cc29be943", - "size": 6513 + "sha256": "327f2cc32a957782837bebab297053f472e436a9adce5f255b2794d700b56a2b", + "size": 6509 }, { "url": "https://support.claude.com/en/articles/13663666-use-visual-and-interactive-content-on-team-and-enterprise-plans", @@ -9718,7 +9718,7 @@ "url": "https://support.claude.com/en/articles/13756069-public-sector-faqs", "status": "success", "path": "support/13756069-public-sector-faqs.md", - "sha256": "6fb6b38708e6b8316e1ea79bbee86a022d569b79119af0ffea5c2908626107d2", + "sha256": "b6ecba6b0c859f55c983196d26e0bb7e6e96ccb4ffd9c6af32192f38f03055d6", "size": 8380 }, { @@ -9746,21 +9746,21 @@ "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": "14476a08e7f8b6b7c72cb746a4c8efbceaf7b7574ecf008fd959d1257d6ba3a5", - "size": 20823 + "sha256": "5c6713beca63030df595a4a002480fcb9c6992b0b2e6442fddd3f631429a4d3c", + "size": 20831 }, { "url": "https://support.claude.com/en/articles/13837440-use-plugins-in-claude", "status": "success", "path": "support/13837440-use-plugins-in-claude.md", - "sha256": "2cd00f20527ea246cc812d86e4fb1ac190f97394f563e07f81f8599b50446536", - "size": 6714 + "sha256": "19e48b5cfc5f2497a74834b3e98e7186d100cf072902c406c14fd6c815d7aa6d", + "size": 6716 }, { "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": "d60495fbe089f1e53a57c4ad16cdd3f0d9653b18e840ba11763473edcaab8a6a", + "sha256": "2d18365d6061dcd916a1cb2c1e6543080ced9c3799e904b9466beb07331e6b42", "size": 4747 }, { @@ -9851,8 +9851,8 @@ "url": "https://support.claude.com/en/articles/13947068-assign-tasks-from-anywhere-in-claude-cowork", "status": "success", "path": "support/13947068-assign-tasks-from-anywhere-in-claude-cowork.md", - "sha256": "5ebe5450378d74d21aa15d35c88cd2d6bd35da3d7413d1326ac75d9020f7c45a", - "size": 8276 + "sha256": "8d39e789d78cbafcad2cda83afa6307b5db4567cc6eeca5f121ce96d393b3f89", + "size": 8274 }, { "url": "https://support.claude.com/en/articles/13979539-custom-visuals-in-chat-and-cowork", @@ -9872,15 +9872,15 @@ "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": "9e844b90d08aea63094589d5f75768ce9ecea238b0849b07311792a10bf4fe86", - "size": 5706 + "sha256": "ebb966a165247575d501e02f2b745f66a85e566db4637139b71a2a49bffa3f71", + "size": 5702 }, { "url": "https://support.claude.com/en/articles/14128542-let-claude-use-your-computer-in-cowork", "status": "success", "path": "support/14128542-let-claude-use-your-computer-in-cowork.md", - "sha256": "bad239f8a55f7f2aa639a440fa7d41640f0d619a1a42e498c51e60667c5144f4", - "size": 8284 + "sha256": "02cda071443404178693d7c69ff48c7e06ac2a01b0f04a8fd0816d0fff74e313", + "size": 8776 }, { "url": "https://support.claude.com/en/articles/14128775-claude-code-on-console-to-enterprise-migration", @@ -9942,8 +9942,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": "1e4d4c1e43866f11261ac6ed3eebab7251f1e73aa7b504d83fb287bd322f2483", - "size": 7438 + "sha256": "3681fa715277061d9138887def88037c43ccfa58bc891f4475b854646a522811", + "size": 7440 }, { "url": "https://support.claude.com/en/articles/14503520-available-beta-and-research-preview-features", @@ -9963,15 +9963,15 @@ "url": "https://support.claude.com/en/articles/14503613-sso-login", "status": "success", "path": "support/14503613-sso-login.md", - "sha256": "91da1f45b1dcaa886daf210f4efc1b425e0f5b8cdf5e2fb12746bb2030d937a2", + "sha256": "e9d4308975216a6043bef8da913205610eebac7406e49e9d94bdaf575d3bc257", "size": 6690 }, { "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": "e0de4ae0690c4014089e7396fe7a212b7908756aa1e44520019883f8b89bee30", - "size": 6421 + "sha256": "a2bf2717e4ad588e028ab740e06d1707c6fc7260826b4155f0a8db4012ffa05d", + "size": 6423 }, { "url": "https://support.claude.com/en/articles/14503675-organization-instructions-in-claude-for-government", @@ -9998,8 +9998,8 @@ "url": "https://support.claude.com/en/articles/14503775-mcp-web-search", "status": "success", "path": "support/14503775-mcp-web-search.md", - "sha256": "00727e01f723e2cb8553e3e4eb460391bff4b13b1c2387ee340449bdd4065b1e", - "size": 4675 + "sha256": "0131d4e9fd86c398b2cc2bf8b26aaaaffbbd219fbd859ed959c190a180ba779b", + "size": 4679 }, { "url": "https://support.claude.com/en/articles/14503794-model-availability-in-claude-for-government", @@ -10096,22 +10096,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": "e21e8f5583b59f0e0afc5c968801ea754e0b43ead990421e7189f7b0b6eda247", + "sha256": "275539825ceba390ab0e78382d61905829fd56f1a209963773fa29772cdcdba4", "size": 4398 }, { "url": "https://support.claude.com/en/articles/14604406-claude-design-admin-guide-for-team-and-enterprise-plans", "status": "success", "path": "support/14604406-claude-design-admin-guide-for-team-and-enterprise-plans.md", - "sha256": "cf240ca29e6fd557abb23054c6f2b47efe80f8547595401154fbe98ada8f2460", + "sha256": "ca6ae956863609d8bfd7cc9655fdc47fcdf8520aa6aa7e4ef9b6eed962cf32dd", "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": "0a559305fefd5965bbb725950ddcf152f4f943a19cbd3042372ce66832ea11b4", - "size": 11134 + "sha256": "05539f88163c3f5f57230847fb94d056370bdad9e4df10ada52fd0d51340353b", + "size": 11132 }, { "url": "https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude-opus-and-sonnet", @@ -10236,8 +10236,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": "84ccfe88581ab6bfff8b0ca100151cf867d27c7ea128c90e6bfa0484e5488576", - "size": 5740 + "sha256": "2b8e5a2995964916a1dba5a22852c03a5df8196af056a4b6c045160a8bf1d3d0", + "size": 5746 }, { "url": "https://support.claude.com/en/articles/15330651-claude-enterprise-admin-api-reference-guide", @@ -10348,7 +10348,7 @@ "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": "d6108b3b6b46e321a2d6f7e4a9369be2527b0a74fb20b52fed4d587b8d82dabb", + "sha256": "b71d37ce3b2c9edb990846c3ea4adf49bbd7e29f5d5d1f56d4b8c6b9b7754143", "size": 8505 }, { @@ -10383,8 +10383,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": "52b5c91f2bbb732d5cf0d441faec4106eee6a6ded3f6d672f87e7334966abcdb", - "size": 5056 + "sha256": "f52cb0af20f589243d7e0dd2e91870ebef7cee27b1dbe339858bed7e6cc5a252", + "size": 5058 }, { "url": "https://support.claude.com/en/articles/16049681-why-claude-switched-models-in-your-conversation-with-opus-5", @@ -10407,6 +10407,34 @@ "sha256": "42c154b394d3dc532aa14be55b786514a24a2f3539b737990e768f825a4d5e71", "size": 6486 }, + { + "url": "https://support.claude.com/en/articles/16563838-get-started-with-claude-science", + "status": "success", + "path": "support/16563838-get-started-with-claude-science.md", + "sha256": "60e0dee134c87ff0bf0df59748fff892964c9e02076e53cc4d0cbb5207eac40c", + "size": 1160 + }, + { + "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": "d91675798f9f0b4635cc39687a93f28ab764be2229e66e88295f801bfcc0cb8a", + "size": 5447 + }, + { + "url": "https://support.claude.com/en/articles/16607668-understanding-your-team-plan-invoices", + "status": "success", + "path": "support/16607668-understanding-your-team-plan-invoices.md", + "sha256": "4fd11c0e37a1cd52abc4c4bc67a3f140d525791dcf56d5c0ad6798e9d2c430cb", + "size": 5765 + }, + { + "url": "https://support.claude.com/en/articles/16608069-understanding-your-claude-api-invoices", + "status": "success", + "path": "support/16608069-understanding-your-claude-api-invoices.md", + "sha256": "f653618faee4362b9a60b0b6457fea5824728a191478144b16c429c154801122", + "size": 3643 + }, { "url": "https://claude.com/docs/claude-science/admin-controls", "status": "success", @@ -10614,8 +10642,8 @@ "url": "https://claude.com/docs/claude-tag/admins/add-connections", "status": "success", "path": "claude/claude-tag/admins/add-connections.md", - "sha256": "b24f3d0ab5c6e5ea543928db091f2a9269e37d853610892ff274e4a4f8c2ad6d", - "size": 30171 + "sha256": "e5bcf949a05cc6207fc984fcc61a0c7f7db052bd947e50eb7795e9eaba692fb1", + "size": 31144 }, { "url": "https://claude.com/docs/claude-tag/admins/attach-to-scope", @@ -10628,15 +10656,15 @@ "url": "https://claude.com/docs/claude-tag/admins/audit", "status": "success", "path": "claude/claude-tag/admins/audit.md", - "sha256": "3a19df684cf8d48144b27c6b2525d26633544f7e0778fca23a213b561903401c", - "size": 5202 + "sha256": "8105d628c53ec78932e72ea16f3684e991860fbc077f1a5e264a4ef0b031c0c2", + "size": 4598 }, { "url": "https://claude.com/docs/claude-tag/admins/configure-github", "status": "success", "path": "claude/claude-tag/admins/configure-github.md", - "sha256": "20ad4081c4efcd392c81a5fd01b35fb2cd080e1f5db86f929097cae5dfa47abe", - "size": 12157 + "sha256": "ffdfeb454ece4e299ae8b46593978c7add1b2fb474a44ad4d8a8fe14f77dd659", + "size": 12744 }, { "url": "https://claude.com/docs/claude-tag/admins/configure-gitlab", @@ -10670,8 +10698,8 @@ "url": "https://claude.com/docs/claude-tag/admins/connections/custom", "status": "success", "path": "claude/claude-tag/admins/connections/custom.md", - "sha256": "1b125daca47fe36963d2b1252c42b73a2469062d6214a1961802a18ea61a30d2", - "size": 13188 + "sha256": "cd8865746ef8aa9807123e9fb776e36ef69918dddf15a16ea0f8755346d57171", + "size": 13186 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/datadog", @@ -10775,8 +10803,8 @@ "url": "https://claude.com/docs/claude-tag/admins/customize", "status": "success", "path": "claude/claude-tag/admins/customize.md", - "sha256": "eaa5eba2c6e61c2520377cea53c941010fd3a8c5444ed38f032048621f5f8a38", - "size": 20697 + "sha256": "71c876d84263b0efa85bdc7578347d63df704afd8ab03bdf5b04d1b016a23362", + "size": 21171 }, { "url": "https://claude.com/docs/claude-tag/admins/for-slack-admins", @@ -10803,22 +10831,22 @@ "url": "https://claude.com/docs/claude-tag/admins/pair-workspace", "status": "success", "path": "claude/claude-tag/admins/pair-workspace.md", - "sha256": "3571eb5b97758a5945388049ad15ca64f2eb7abc115d0c20c06508d96c45643f", - "size": 10876 + "sha256": "0a84efa427abf104d4b13eab2d32ac30f038d34a1ab26cbdd5b67315a71740bb", + "size": 10985 }, { "url": "https://claude.com/docs/claude-tag/admins/restrict-access", "status": "success", "path": "claude/claude-tag/admins/restrict-access.md", - "sha256": "54c316adcb45344f853d95de812300d362f3d76611532544a5486f04ffe60657", - "size": 40977 + "sha256": "0984c8cb7cf6b3d446f266df65c194a88a48418440a564b11fc5f25a6851e1ee", + "size": 41341 }, { "url": "https://claude.com/docs/claude-tag/admins/set-spend-limit", "status": "success", "path": "claude/claude-tag/admins/set-spend-limit.md", - "sha256": "5eb6d54fe3681c9af9f92f8e442f848f32eb4b7f98821cdd2d7348581606d3be", - "size": 9701 + "sha256": "40b80e20eed628b1ca17ee87f6fd5032dc4cf7ec2bfa77fdcbc604215be337a8", + "size": 9818 }, { "url": "https://claude.com/docs/claude-tag/admins/setup-overview", @@ -10838,8 +10866,8 @@ "url": "https://claude.com/docs/claude-tag/admins/test-it", "status": "success", "path": "claude/claude-tag/admins/test-it.md", - "sha256": "0a7d7ac2edc6c1c4aa3a4ed16729a90e3051eeac2104c5d63db4e2165b97d4f4", - "size": 5949 + "sha256": "708b01507c0fd89cf66447876b4e6c397b050e650d908004352a912b0c84ed3c", + "size": 6066 }, { "url": "https://claude.com/docs/claude-tag/admins/troubleshooting", @@ -10852,8 +10880,8 @@ "url": "https://claude.com/docs/claude-tag/admins/workspaces", "status": "success", "path": "claude/claude-tag/admins/workspaces.md", - "sha256": "a88fbeb292cbe93237f92ce85224335a06349a5747c2111a73df01889d80052f", - "size": 8116 + "sha256": "dd2a4afce5afbdd0cddaff2fcd2718639c2b03b54242fb0c7122530c761b5fbc", + "size": 8422 }, { "url": "https://claude.com/docs/claude-tag/concepts/agent-identity", @@ -10901,8 +10929,8 @@ "url": "https://claude.com/docs/claude-tag/concepts/settings-map", "status": "success", "path": "claude/claude-tag/concepts/settings-map.md", - "sha256": "8409dcc89404ccb8b9947394d22fd5c5354586b1cd061ac7ea8d41c985935bb0", - "size": 11037 + "sha256": "44e62970d8e8b176156cedcb8c830665bdd384a4f2eca8aa7e7769500df4b154", + "size": 11266 }, { "url": "https://claude.com/docs/claude-tag/overview", @@ -10929,8 +10957,8 @@ "url": "https://claude.com/docs/claude-tag/users/good-habits", "status": "success", "path": "claude/claude-tag/users/good-habits.md", - "sha256": "3ef507f7bb9b5ca3ccfa72a34e2a5d9c686be4dd8d08b957850c31e3c6767d24", - "size": 20088 + "sha256": "b5f85a0fb69564585df5d4bd7dce4a34e9262edd0cdc2d855dcd4e2862c12f94", + "size": 20953 }, { "url": "https://claude.com/docs/claude-tag/users/memory", @@ -11307,8 +11335,8 @@ "url": "https://claude.com/docs/cowork/changelog", "status": "success", "path": "claude/cowork/changelog.md", - "sha256": "6fae36af34534b89a13463e8eca03d251d7a8d3249400433e5393d092f0b5333", - "size": 87187 + "sha256": "5d7c339a701404937417fedb38e1e2cc6ed56d440fcb30d575b6b8e79b1dbfa6", + "size": 94867 }, { "url": "https://claude.com/docs/cowork/guide/dispatch", @@ -11391,8 +11419,8 @@ "url": "https://claude.com/docs/government/config/settings", "status": "success", "path": "claude/government/config/settings.md", - "sha256": "e0f7925014112119a607a1e44971b20cc1b4e953d5e91da7817e8bb0e2d2e4e7", - "size": 22697 + "sha256": "a6445173400bf0a6d6ae4f22bab1e79184cc15e1d031aba866aa999105a1518b", + "size": 23835 }, { "url": "https://claude.com/docs/government/connectors/microsoft-365", @@ -11685,8 +11713,8 @@ "url": "https://claude.com/docs/office-agents/third-party-platforms", "status": "success", "path": "claude/office-agents/third-party-platforms.md", - "sha256": "663c3527d0a4e707c08850826d95d62dc2cc392c5f7aefe18b831decbc004a28", - "size": 51872 + "sha256": "68df66c6f1e03b8ffe71967026e8ae919986ca32d7b7dc24623c754642b5118e", + "size": 55242 }, { "url": "https://claude.com/docs/office-agents/word", @@ -11741,8 +11769,8 @@ "url": "https://claude.com/docs/third-party/claude-desktop/bootstrap", "status": "success", "path": "claude/third-party/claude-desktop/bootstrap.md", - "sha256": "ef37724ea3d2392a65050a4287dee349f98132d7d728f922303b2f8327f3db55", - "size": 47307 + "sha256": "e61b24dcb3eef256785992d6fa7e6bcd139926fa38bb16f28e09d7db2a97f65f", + "size": 47513 }, { "url": "https://claude.com/docs/third-party/claude-desktop/built-in-connectors", @@ -11776,15 +11804,15 @@ "url": "https://claude.com/docs/third-party/claude-desktop/configuration", "status": "success", "path": "claude/third-party/claude-desktop/configuration.md", - "sha256": "e57bd1aef6ac1876c3eae6b8686cb48298bb2fc9fabf1baa1b154fb8b54d5bd9", - "size": 125863 + "sha256": "3cff9e014e36f3823e69ed9c96f050f8f5c5489da340040d6d13ac2fd4e654e6", + "size": 148808 }, { "url": "https://claude.com/docs/third-party/claude-desktop/configuration-changelog", "status": "success", "path": "claude/third-party/claude-desktop/configuration-changelog.md", - "sha256": "cb66c2b71815f6e7f3497017b1698d69c4ab8e4c9082f08ac7f991b474ea4145", - "size": 41959 + "sha256": "64557a291f7294256632cf4236194e619b47e64d719a5013090d55b7aa8f6c8e", + "size": 45157 }, { "url": "https://claude.com/docs/third-party/claude-desktop/connectors-github", @@ -20750,8 +20778,8 @@ "url": "https://code.claude.com/docs/en/desktop-changelog", "status": "success", "path": "en/docs/claude-code/desktop-changelog.md", - "sha256": "278e73ae05b0f38306f00af94ad0aed44ed984c1ed672ee0dd9297fc04ee9462", - "size": 95478 + "sha256": "2ed26d7c1efde71300e02a5bf4c5d32fa8cb5227635ec29e418cc1532f4d2e89", + "size": 96947 }, { "url": "https://code.claude.com/docs/en/ultraplan", @@ -26706,10 +26734,6 @@ ], "failures": [], "dead": [ - { - "url": "https://support.claude.com/en/articles/10366473-where-can-i-find-full-receipts-and-invoices-for-my-claude-api-and-console-payments", - "reason": "HTTP 404" - }, { "url": "https://support.claude.com/en/articles/12650343-use-claude-for-excel", "reason": "moved -> https://claude.com/docs/office-agents/excel" @@ -27050,6 +27074,10 @@ "url": "https://support.claude.com/en/articles/9264804-how-can-i-cancel-my-claude-pro-subscription-on-the-claude-app-for-ios", "reason": "HTTP 404" }, + { + "url": "https://support.claude.com/en/articles/10366473-where-can-i-find-full-receipts-and-invoices-for-my-claude-api-and-console-payments", + "reason": "HTTP 404" + }, { "url": "https://support.claude.com/en/articles/10722177-sharing-prompts-in-the-claude-console", "reason": "HTTP 404" @@ -27084,8 +27112,8 @@ } ], "summary": { - "total": 3908, - "downloaded": 3814, + "total": 3912, + "downloaded": 3818, "skipped": 0, "failed": 0, "dead": 94, diff --git a/content/CHANGELOG.md b/content/CHANGELOG.md index 42198b8c0..8862f0c08 100644 --- a/content/CHANGELOG.md +++ b/content/CHANGELOG.md @@ -1,5 +1,69 @@ # Changelog +## 2.1.246 + +- Added a startup warning for Bash allow rules with a wildcard before the subcommand (e.g. `Bash(git * main)`), since they also match options inserted before the subcommand +- Added an Auto mode tab to `/permissions` for viewing and editing auto mode classifier rules +- Added the turn's completion time to the end-of-turn duration line, e.g. `✻ Sautéed for 23s · done 6:05 PM` +- Fixed fullscreen mode showing a blank transcript after resizing the terminal and jumping to the bottom until the next keypress +- Fixed a severe transcript slowdown when a diff contained a very long single line (e.g. a base64 string); such lines now render truncated with a marker +- Fixed erratic fullscreen scrolling when positioned at an earlier message, including jump-to-bottom getting stuck mid-transcript +- Fixed background sessions failing to open after 45 seconds when Claude Code's starting directory had been deleted, the machine had slept, or the host is slow to start processes +- Fixed background sessions failing to open with "Couldn't start the background service … EACCES" when another Claude Code process was re-installing the npm package at that moment +- Fixed markdown rendering being disabled for a whole message when its first 500 characters contained no markdown, and for `+`/`N)` lists and setext headings +- Fixed MCP tool calls interrupted by an incoming message in headless/remote sessions being reported to the model as "completed with no output" instead of an explicit interrupted error +- Fixed MCP tool arguments being sent as JSON strings when the parameter's schema is empty (`{}`), instead of their real type +- Fixed a command interrupted mid-run showing as "Ran 1 shell command" with no sign it was cut +- Fixed pressing ← or running `/background` during a dynamic workflow restarting its finished subagents; it now asks first and says how many subagents would restart +- Fixed opening a just-started session in `claude agents` while its worker was still booting (common on Windows) stopping it with "was stopped while the respawn was in flight" +- Fixed `claude agents` listing a backgrounded named session twice; backgrounding the same conversation again now numbers the new row (e.g. `my-session (2)`) +- Fixed the background retention sweep removing git worktrees under `.claude/worktrees/` that you created yourself when an old background-session record pointed at them +- Fixed auto mode tool calls being denied as "temporarily unavailable" on very large sessions by scaling the safety-check deadline with prompt size +- Fixed the plugin cache creating duplicate SHA-named directories for the same plugin +- Fixed plugin skills whose frontmatter `name` already includes the `:` prefix showing it doubled in the slash menu (e.g. `/plugin:plugin:skill`) +- Fixed `claude plugin update` failing for an installed plugin given its bare name (only the fully-qualified name worked) +- Fixed plugin installation failing when `plugin.json` was saved with a UTF-8 byte-order mark (BOM) +- Fixed `/reload-plugins` reporting 0 skills for plugins that define skills under `skills/*/SKILL.md` +- Fixed hook error messages showing a literal `${CLAUDE_PLUGIN_ROOT}` instead of the resolved plugin path +- Fixed `/rename` replacing the theme's prompt border color (including a custom theme's `promptBorder`) with the default cyan; the border now keeps your theme's color unless you pick one with `/color` +- Fixed custom theme diff colors (`diffAdded`/`diffRemoved` and their dimmed variants) being ignored in diffs and the `/theme` preview +- Fixed a `keybindings.json` binding with an unknown action name silently deadening that key; it is now skipped so the default binding keeps working, and a warning is logged under `--debug` +- Fixed `/stats` activity heatmap showing each day's activity one cell off (Sunday's count under Monday) in timezones east of UTC +- Fixed `/fork` from an already-forked or backgrounded session starting the new session with an empty conversation +- Fixed prompts beginning with `/--` (e.g. Lean doc comments) being rejected as an unknown slash command instead of being sent to Claude +- Fixed the `@` file picker staying open after the typed text stopped matching a real path +- Fixed the status line's cost and duration resetting to zero after navigating to the agents view and back +- Fixed fullscreen mode moving keyboard focus onto the control under the pointer when you clicked the terminal window only to bring it back into focus +- Fixed path completion failing when the completion token or working directory contained a null byte +- Windows/macOS: Fixed headless sessions not cleaning up stale entries in `~/.claude/sessions` left by sessions that exited uncleanly +- Fixed the UI stopping with a render error on the first tool call when a third-party Anthropic-compatible endpoint (`ANTHROPIC_BASE_URL`) streams a `tool_use` block without an `id` +- Fixed the Write tool reporting "Out of memory" or freezing for a long time after overwriting a very large existing file, even though the file had been written +- Fixed `claude plugin install ` exiting silently (or hanging in a terminal) instead of reporting an error when `~/.claude/plugins/known_marketplaces.json` is empty or corrupted +- Fixed resumed sessions failing every turn with a 400 when the saved history contains tool blocks the Anthropic API does not accept (typically written by a third-party API proxy) +- Fixed `curl -fsSL https://claude.ai/install.sh | bash` failing with "Raw mode is not supported" for some Team/Enterprise users with server-managed settings +- Fixed sessions that ended in plan mode resuming outside plan mode in the VS Code extension, and in `claude -p --continue`/`--resume` with a permission prompt tool, when no permission mode was set +- Fixed the `Notification` hook not firing while the sandbox "Network request outside of sandbox" permission prompt is waiting +- Fixed Bash permission checks to always require approval for malformed commands with a dangling `&&` or `||` operator +- Fixed `--strict-mcp-config` sessions prompting to approve `.mcp.json` servers they would never load, which left background sessions waiting at startup +- Fixed telemetry and metrics requests to Anthropic carrying the API key configured for a third-party gateway (`ANTHROPIC_BASE_URL`); a credential is now only sent to its own host +- Fixed a visible API error on the first prompt after idle when `apiKeyHelper` returns short-lived JWTs: an expired cached token is now refreshed before sending, and 401/403 auth errors retry quietly +- Fixed memory growing with session length in the fullscreen and Ctrl+O transcript views: each rendered message row no longer retains a full copy of the transcript-wide tool lookups +- Fixed `/ultrareview` runs and cloud sessions launched at the same time from one repository (e.g. from several worktrees) sometimes starting with another launch's uncommitted changes +- Fixed the task progress count (e.g. `3/5`) shown for background cloud sessions such as `/autofix-pr` occasionally missing a task +- Fixed Remote Control sessions keeping their placeholder name in claude.ai and the Claude app until the second prompt; the auto-generated title now appears after the first prompt +- Fixed MCP tools marked `requiresUserInteraction` still offering "Yes, and don't ask again" in their permission prompt; the option wrote an allow rule the tool then ignored +- Fixed the self-hosted runner ending its live sessions or exiting when a work-poll response is malformed (e.g. an intercepting proxy's HTML page); it now retries the poll +- Improved `/cd`: the new directory's project settings, hooks, `.mcp.json` servers (behind the usual approval prompt), skills, and agents now take effect right after the move instead of on `--resume` +- Improved Bash tool latency on bash shells by replaying snapshot functions without a base64 subshell per function +- Improved subagent results: a subagent that stops at its `maxTurns` limit now returns its output marked as partial, with a hint to continue it via `SendMessage`, instead of appearing finished +- Improved non-interactive sessions (`-p`, SDK, cloud sessions) to automatically continue a response cut off mid-stream by a server error, connection loss, or stall instead of ending with an error +- Improved attribution of usage telemetry to your organization for workload identity federation sessions, events sent while `apiKeyHelper` runs at startup, and after a login token expired while idle +- Changed `/code-review` so Claude can also start it on its own on Bedrock, Vertex AI, and Foundry, through the Claude apps gateway, and when telemetry or non-essential traffic is disabled +- `/goal`: Changed idle sessions to start at most three check-ins on long-running background work per goal; your next message allows three more +- Changed `claude install` and `claude update` to defer a pending managed-settings consent prompt to the next interactive session instead of prompting mid-command +- Changed OpenTelemetry plugin events for plugins synced from claude.ai: `plugin_id_hash` now reflects the plugin's real marketplace, and `enabled_via` is `admin-install` for admin-installed plugins +- Fixed the command sandbox's filesystem configuration not respecting `--setting-sources` + ## 2.1.245 - Fixed a crash on startup on Linux distributions that ship glibc 2.44 (for example Arch Linux, CachyOS and Fedora Rawhide) diff --git a/content/claude-code-manifest.json b/content/claude-code-manifest.json index a8a6786ce..b74822394 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": "cceab6b3a7a4d899e2a94963852304aaba43d6ac", - "tarball": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-2.1.245.tgz", + "shasum": "4222a707657362a9588eb194bb56c339193cbfd2", + "tarball": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-2.1.246.tgz", "fileCount": 7, - "integrity": "sha512-+7baJddJXZukgd6AgC7xStHGsMTVHDPlRcAoqTSPx2NQ+QwKGtvCZQLgbnKuhjkwq9v9vKvYwIhLOwGiE77mVQ==", + "integrity": "sha512-E2PEKkal9D05dWnsc2fcPclJpEbJbnIE3D1vp33aPrsFbmdbqyNzEcc9/SeFIj53hvP/M5BuHygOFbeoBWEAOg==", "signatures": [ { - "sig": "MEUCIQDnAbru948LI1AKJ0P31wi9d5ZugaK8YvHVM1X5Sbd5igIgHFiGhup4jpf+kmJgHOIVfuv9qcQdDVo4kKloq31/2ys=", + "sig": "MEUCIFg+x9zVDnGQevwMGtK61THvjT2SbC0ximwfpsouftxGAiEAvWqK1c1a/qi/NGhmNT5BRLMb0QPoYp0bus4luMqX9fM=", "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U" }, { - "sig": "MEQCIFDfM4g+U8vLuxMVk/Zpp3w6ONfE9dfmppnhnQx/7U0aAiALTZslSAqQ6pLolxiFm4LqoiGFITM4Lm+qEAP51URKAg==", + "sig": "MEUCIAv6NdvjZ1ZiWV/Fz+HaQbQfJ/wa3Vq66wD9qq/K6dD5AiEAqKZvdS3HXLhiARySnrcT+8P11Fi961yrl71RisNZVHk=", "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U" } ], - "unpackedSize": 179006 + "unpackedSize": 179247 }, "name": "@anthropic-ai/claude-code", "type": "module", - "_from": "file:staged-npm/anthropic-ai-claude-code-2.1.245.tgz", + "_from": "file:staged-npm/anthropic-ai-claude-code-2.1.246.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.245.tgz", - "_integrity": "sha512-+7baJddJXZukgd6AgC7xStHGsMTVHDPlRcAoqTSPx2NQ+QwKGtvCZQLgbnKuhjkwq9v9vKvYwIhLOwGiE77mVQ==", + "_resolved": "/home/runner/work/claude-cli-internal/claude-cli-internal/staged-npm/anthropic-ai-claude-code-2.1.246.tgz", + "_integrity": "sha512-E2PEKkal9D05dWnsc2fcPclJpEbJbnIE3D1vp33aPrsFbmdbqyNzEcc9/SeFIj53hvP/M5BuHygOFbeoBWEAOg==", "_npmVersion": "11.17.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": {}, @@ -106,19 +106,19 @@ "_hasShrinkwrap": false, "readmeFilename": "README.md", "optionalDependencies": { - "@anthropic-ai/claude-code-linux-x64": "2.1.245", - "@anthropic-ai/claude-code-win32-x64": "2.1.245", - "@anthropic-ai/claude-code-darwin-x64": "2.1.245", - "@anthropic-ai/claude-code-linux-arm64": "2.1.245", - "@anthropic-ai/claude-code-win32-arm64": "2.1.245", - "@anthropic-ai/claude-code-darwin-arm64": "2.1.245", - "@anthropic-ai/claude-code-linux-x64-musl": "2.1.245", - "@anthropic-ai/claude-code-linux-arm64-musl": "2.1.245" + "@anthropic-ai/claude-code-linux-x64": "2.1.246", + "@anthropic-ai/claude-code-win32-x64": "2.1.246", + "@anthropic-ai/claude-code-darwin-x64": "2.1.246", + "@anthropic-ai/claude-code-linux-arm64": "2.1.246", + "@anthropic-ai/claude-code-win32-arm64": "2.1.246", + "@anthropic-ai/claude-code-darwin-arm64": "2.1.246", + "@anthropic-ai/claude-code-linux-x64-musl": "2.1.246", + "@anthropic-ai/claude-code-linux-arm64-musl": "2.1.246" }, "_npmOperationalInternal": { - "tmp": "tmp/claude-code_2.1.245_1787633151980_0.9704444300115862", + "tmp": "tmp/claude-code_2.1.246_1787685454325_0.6828537139820177", "host": "s3://npm-registry-packages-npm-production" }, - "_id": "@anthropic-ai/claude-code@2.1.245", - "version": "2.1.245" + "_id": "@anthropic-ai/claude-code@2.1.246", + "version": "2.1.246" } \ No newline at end of file diff --git a/content/claude/claude-tag/admins/add-connections.md b/content/claude/claude-tag/admins/add-connections.md index b25248f37..62201c060 100644 --- a/content/claude/claude-tag/admins/add-connections.md +++ b/content/claude/claude-tag/admins/add-connections.md @@ -13,8 +13,9 @@ export const BetaNote = () => Claude Tag is in public beta. Features and b
1 · Pair workspace 2 · Give access - 3 · Spend limit - 4 · See it work + 3 · Connect GitHub + 4 · Spend limit + 5 · See it work
@@ -201,11 +202,20 @@ For a custom connection, choose the credential type: | GCP IAP (with Service Account Key) | Google Cloud services behind Identity-Aware Proxy. | | OAuth 2.0 JWT bearer | Server-to-server OAuth. | | OAuth 2.0 client credentials | Server-to-server OAuth. Salesforce uses this. | -| OAuth 2.0 authorization code (3-legged) | Sign in once as an admin; the agent acts as that account. | -| GitHub App | GitHub repositories; covered separately at [Configure GitHub access](/docs/claude-tag/admins/configure-github). | +| MCP Connector | Sign in once as an admin; the agent acts as that account. | + +For GitHub repositories, use the GitHub connection at [Configure GitHub access](/docs/claude-tag/admins/configure-github) rather than a credential from this table. Credentials are injected at the network boundary by Agent Proxy; the model and the sandbox are not given the key. A request to a host you haven't allowed is blocked, not sent. See [how Agent Proxy works](/docs/claude-tag/concepts/agent-identity#agent-proxy). +### Send a setup link to another admin + +When someone else holds a service's secret, create a setup link instead of collecting the secret yourself. On the service's row in the **Credentials** tab, open the **Connect** button's menu and select **Copy link for another admin**. Whoever opens the link signs in to your Claude organization and submits the credential there. They don't need an admin role. + +The row tracks the link. It shows **Pending** until the credential is submitted, then **Approval needed**. Select **Review** to check the submission and approve or reject it. The credential becomes active only after you approve it. The row shows **Expired** for a link that went unused, and until the credential is submitted you can revoke the link from the row's **⋮** menu. + +Setup links are available for services that use the Bearer or Basic credential type. For other types, the **Connect** menu has no link option. + ### Set allowed websites List the hosts a connection's credential may be sent to. A wildcard works only as the leftmost label, like `*.example.com`; it covers subdomains at any depth but not `example.com` itself. You can't enter `*` alone here; a credential is always limited to specific hosts. To let Claude reach any host without a credential, see [Allow all hosts](#allow-all-hosts). @@ -222,7 +232,7 @@ Agent Proxy starts applying a change within about a minute of your saving it, in ### Connections vs claude.ai connectors -The connection gallery lists credential types the agent can hold, not the connectors your organization or its members have set up on claude.ai. A connection authenticates the agent, not a person; a connector on someone's personal claude.ai account doesn't appear here. For Google services, use a service-account key or the OAuth sign-in option, both of which give the agent one credential with access to the data the channel needs. Personal connectors keep working in [DMs](/docs/claude-tag/concepts/agent-identity#direct-message-channels). +The connection gallery lists credential types the agent can hold, not the connectors your organization or its members have set up on claude.ai. A connection authenticates the agent, not a person; a connector on someone's personal claude.ai account doesn't appear here. For Google services, use a service-account key or the MCP Connector sign-in option, both of which give the agent one credential with access to the data the channel needs. Personal connectors keep working in [DMs](/docs/claude-tag/concepts/agent-identity#direct-message-channels). ## Attach plugins diff --git a/content/claude/claude-tag/admins/audit.md b/content/claude/claude-tag/admins/audit.md index 9e445105f..b8e19c6ad 100644 --- a/content/claude/claude-tag/admins/audit.md +++ b/content/claude/claude-tag/admins/audit.md @@ -12,11 +12,11 @@ export const BetaNote = () => Claude Tag is in public beta. Features and b Use this page to review what Claude Tag is doing across your organization: which routines are scheduled, what memory it has saved, and where to find a record of each action it took. -You must be an Owner in your Claude organization to open the Audit page; the other trails on this page are visible to anyone with access to the underlying surface. +The Audit page opens for Owners and Admins in your Claude organization; the other trails on this page are visible to anyone with access to the underlying surface. Claude Tag activity is auditable in four places: -* **[The Audit page](#what-the-audit-view-lists)** in admin settings, with tabs for scheduled work, memory, and (if enabled) network events +* **[The Audit page](#what-the-audit-view-lists)** in admin settings, with tabs for scheduled work, memory, and network events * **Memory files on each scope** (select the scope in the **Claude Tag's access** section, then choose **View memory files** from its **⋯** menu), where you can review what Claude has saved * **[Attribution on each action](#trace-an-action-to-its-source)** Claude takes in a connected tool * **[The audit logs of each connected service](#trace-an-action-to-its-source)**, where its actions appear under the service account you provisioned @@ -25,11 +25,11 @@ Claude Tag activity is auditable in four places: The Audit page, labeled **Activity** in the admin console's left nav and page heading, at [`claude.ai/admin-settings/claude-tag/audit`](https://claude.ai/admin-settings/claude-tag/audit) has these tabs: -| Tab | What it shows | -| :----------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Scheduled work** | Every routine across your organization, with a **Scope** filter and a per-row **⋮** menu (View details, Pause/Resume, Delete) | -| **Memory** | A link to each scope's memory files, where you can read what Claude has saved for that workspace or channel (an Owner can also edit or delete) | -| **Network events** | An hourly JSON export of outbound calls Claude made through Agent Proxy. Git and MCP traffic are not included in this export. Select a date and hour to download. This tab only appears if your organization has network-event export enabled; contact your account team to request it. | +| Tab | What it shows | +| :----------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Scheduled work** | Every routine across your organization, with a **Scope** filter and a per-row **⋮** menu (View details, Pause/Resume, Delete) | +| **Memory** | A link to each scope's memory files, where you can read what Claude has saved for that workspace or channel (you can also edit or delete them there) | +| **Network events** | An hourly JSON export of outbound calls Claude made through Agent Proxy. Git and MCP traffic are not included in this export. Select a date and hour to download. | Each routine on the **Scheduled work** tab shows **Created by** (the member who set it up) in its **View details** dialog. There is no per-action log of every task and who asked; for that, use the trails below. diff --git a/content/claude/claude-tag/admins/configure-github.md b/content/claude/claude-tag/admins/configure-github.md index 9fcdec6ed..5a21a5993 100644 --- a/content/claude/claude-tag/admins/configure-github.md +++ b/content/claude/claude-tag/admins/configure-github.md @@ -10,6 +10,14 @@ export const BetaNote = () => Claude Tag is in public beta. Features and b + + Using GitLab instead of GitHub? See [Configure GitLab access](/docs/claude-tag/admins/configure-gitlab). GitLab uses a service-account token rather than an installed app. Claude Tag gives Claude its own GitHub identity, the Claude GitHub App, so pull requests it opens from a channel are authored by Claude rather than by a person. You only need GitHub access if a team will hand Claude code work: branches, pull requests, review, or CI follow-up. diff --git a/content/claude/claude-tag/admins/connections/custom.md b/content/claude/claude-tag/admins/connections/custom.md index 89362bbbc..0380b666d 100644 --- a/content/claude/claude-tag/admins/connections/custom.md +++ b/content/claude/claude-tag/admins/connections/custom.md @@ -31,7 +31,7 @@ See [Create a dedicated account per service](/docs/claude-tag/admins/add-connect | **Name** | A label for this connection (for example "Internal billing API") | | **Credential type** | Pick the type that matches how the API authenticates; see [Credential types](#credential-types) | | **Allowed websites** | The API's host (for example `api.example.com`). A wildcard is allowed as the leftmost label. You can't enter `*` alone here; a credential is always limited to specific hosts (see [Allow all hosts](/docs/claude-tag/admins/add-connections#allow-all-hosts)). The credential is sent only to hosts you list here. | -| **Path prefixes** (optional) | Restrict the credential to specific URL paths under the host. Shown only for the OAuth 2.0 authorization code type. | +| **Path prefixes** (optional) | Restrict the credential to specific URL paths under the host. Shown only for the MCP Connector type, and only when the provider you pick doesn't fix its own hosts and paths. | | **Custom headers** | Any extra headers the API requires beyond the credential. Shown only for the Bearer credential type. | After saving, where the credential has an allow rule, you can narrow it by HTTP method and path from its **Edit connection** dialog; see [Restrict by path or method](/docs/claude-tag/admins/add-connections#restrict-by-path-or-method). @@ -48,8 +48,9 @@ After saving, where the credential has an allow rule, you can narrow it by HTTP | **GCP IAP (with Service Account Key)** | Google Cloud services behind Identity-Aware Proxy | | **OAuth 2.0 JWT bearer** | APIs that accept a JWT signed with your private key in exchange for an access token (DocuSign, for example) | | **OAuth 2.0 client credentials** | Machine-to-machine OAuth with a client ID and secret | -| **OAuth 2.0 authorization code (3-legged)** | OAuth with a user-consent step; the connection stores the resulting refresh token | -| **GitHub App** | GitHub repositories; covered separately at [Configure GitHub access](/docs/claude-tag/admins/configure-github) | +| **MCP Connector** | OAuth sign-in. Sign in once as an admin; the agent acts as that account. | + +For GitHub repositories, use the GitHub connection at [Configure GitHub access](/docs/claude-tag/admins/configure-github) rather than a credential from this table. If you're unsure which type, check the service's API authentication docs for which header or flow it expects. diff --git a/content/claude/claude-tag/admins/customize.md b/content/claude/claude-tag/admins/customize.md index 8cd03531e..4c053b320 100644 --- a/content/claude/claude-tag/admins/customize.md +++ b/content/claude/claude-tag/admins/customize.md @@ -12,12 +12,12 @@ export const BetaNote = () => Claude Tag is in public beta. Features and b Claude Tag's behavior is shaped by four layers, each set in a different place: -| Layer | What it is | Who sets it | Where | -| :---------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------- | -| **Connections** | Credentials for the systems Claude can reach (GitHub, Drive, Datadog, your APIs) | Owner; a [channel manager](/docs/claude-tag/admins/restrict-access#delegate-channel-setup-to-channel-managers) for their assigned channels | [Access bundles](/docs/claude-tag/admins/add-connections), or the channel's Configure page for a channel manager | -| **Plugins and skills** | Instructions that teach Claude how to use a tool or follow a process. A plugin bundles one or more [skills](https://code.claude.com/docs/en/skills). | Owner | [Bundle Plugins tab](/docs/claude-tag/admins/add-connections#attach-plugins) or a [skills repository](/docs/claude-tag/admins/skills-repo) | -| **Custom instructions** | Standing guidance read in every session at a scope (team conventions, output formats). Outranks channel memory. | Owner for any scope; channel members for the channel scope, from the [Configure page](/docs/claude-tag/users/good-habits#configure-claude-for-a-channel) | [Per-scope instructions](/docs/claude-tag/admins/attach-to-scope#add-custom-instructions) | -| **Channel memory** | Facts Claude saves while working in a channel | Anyone in the channel | By [telling Claude](/docs/claude-tag/users/memory) | +| Layer | What it is | Who sets it | Where | +| :---------------------- | :--------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Connections** | Credentials for the systems Claude can reach (GitHub, Drive, Datadog, your APIs) | Owner; a [channel manager](/docs/claude-tag/admins/restrict-access#delegate-channel-setup-to-channel-managers) for their assigned channels | [Access bundles](/docs/claude-tag/admins/add-connections), or the channel's Configure page for a channel manager | +| **Plugins and skills** | Instructions that teach Claude how to use a tool or follow a process. A plugin bundles one or more [skills](https://code.claude.com/docs/en/skills). | Owner; channel members can add plugins to their channel unless an admin restricts editing | [Bundle Plugins tab](/docs/claude-tag/admins/add-connections#attach-plugins), a [skills repository](/docs/claude-tag/admins/skills-repo), or the channel's Configure page | +| **Custom instructions** | Standing guidance read in every session at a scope (team conventions, output formats). Outranks channel memory. | Owner for any scope; channel members for the channel scope, from the [Configure page](/docs/claude-tag/users/good-habits#configure-claude-for-a-channel) | [Per-scope instructions](/docs/claude-tag/admins/attach-to-scope#add-custom-instructions) | +| **Channel memory** | Facts Claude saves while working in a channel | Anyone in the channel | By [telling Claude](/docs/claude-tag/users/memory) | Connections and plugins decide what Claude *can do*; instructions and memory shape *how it does it*. @@ -58,7 +58,7 @@ Changes in the table above are saved to channel memory; verify one stuck by aski Members can also tailor how Claude works in the channel from its Configure page on claude.ai. The **Configure** link in the footer of any Claude reply in the channel opens it, and if a member sends [`@Claude !configure`](/docs/claude-tag/users/commands#get-the-link-to-configure-a-channel) in the channel, Claude replies with a link to it. Anyone in the channel who is also a member of your Claude organization can edit settings for that channel there, unless an admin has [restricted editing to admins](/docs/claude-tag/admins/attach-to-scope#restrict-who-can-set-channel-instructions). The **Channel instructions** field on that page holds standing guidance that outranks memory. See [configure Claude for a channel](/docs/claude-tag/users/good-habits#configure-claude-for-a-channel). -The Configure page also shows the channel's resolved access, read-only. Its **Connections** tab lists the channel's resolved connections, which admins set in admin settings. Its **Routines** tab lists the channel's [routines](/docs/claude-tag/users/proactivity) with each one's schedule, status, and last run. +The Configure page also shows the channel's resolved access. Its **Tools and access** tab lists the channel's resolved connections and any allowed domains. Members can see those lists but not change them there. The same tab's **Plugins** card lists the plugins available to Claude in the channel; members can add plugins there unless an admin has [restricted editing to admins](/docs/claude-tag/admins/attach-to-scope#restrict-who-can-set-channel-instructions). Its **Routines** tab lists the channel's [routines](/docs/claude-tag/users/proactivity) with each one's schedule, status, and last run. On the Enterprise plan, an Owner can name [channel managers](/docs/claude-tag/admins/restrict-access#delegate-channel-setup-to-channel-managers) for a channel. They set the channel's default model, repositories, and connections from the same page. diff --git a/content/claude/claude-tag/admins/pair-workspace.md b/content/claude/claude-tag/admins/pair-workspace.md index 5dfc2b00b..a17bccd2c 100644 --- a/content/claude/claude-tag/admins/pair-workspace.md +++ b/content/claude/claude-tag/admins/pair-workspace.md @@ -13,8 +13,9 @@ export const BetaNote = () => Claude Tag is in public beta. Features and b
diff --git a/content/claude/claude-tag/admins/restrict-access.md b/content/claude/claude-tag/admins/restrict-access.md index 021cffbd4..cd794895c 100644 --- a/content/claude/claude-tag/admins/restrict-access.md +++ b/content/claude/claude-tag/admins/restrict-access.md @@ -216,7 +216,7 @@ You name channel managers one channel at a time. For that channel, a channel man ### What a channel manager can do on the Configure page -A channel manager has to be a member of the channel in Slack. In a channel you assigned to them, they see a **Channel manager settings** section on the channel's [Configure page](/docs/claude-tag/users/good-habits#configure-claude-for-a-channel), reached from the **Configure** link in any Claude reply. Other members see the same values read-only. +A channel manager has to be a member of the channel in Slack. The channel's [Configure page](/docs/claude-tag/users/good-habits#configure-claude-for-a-channel), reached from the **Configure** link in any Claude reply, is split into tabs. In a channel you assigned to them, a channel manager sees the **Default model** card on the **General** tab and the repository and access bundle cards on the **Tools and access** tab. Members without the role don't see those cards. Owners and Admins also see an **Admin** tab, whose **Channel settings** card holds some of the channel scope's settings from admin settings. | Setting | What a channel manager can do | | :----------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | @@ -242,7 +242,7 @@ Channel managers are built on [custom roles](https://claude.ai/admin-settings/ro - In the **Channel managers** section, select **Add channel managers who can add connections and repos to this channel**. Select **Add users** to add people, which also creates a group named after the channel, or **Add groups** to add a group from [`claude.ai/admin-settings/groups`](https://claude.ai/admin-settings/groups). The same group can manage several channels. + In the panel's header, select the people-icon button labeled **Add channel managers who can add connections and repos to this channel**. In the popup, select **Add users** to add people, which also creates a group named after the channel, or **Add groups** to add a group from [`claude.ai/admin-settings/groups`](https://claude.ai/admin-settings/groups). The same group can manage several channels. @@ -252,17 +252,17 @@ Channel managers are built on [custom roles](https://claude.ai/admin-settings/ro -Owners can already configure every channel, so you see them as **Already has full access** and can't add them. +Owners and Admins can already configure every channel, so you see them as **Already has full access** and can't add them. -Leave the role as it was created: assigned to its channel, with **Claude Tag channel setup** as its only permission. If the role's permissions are changed on the Roles page, the channel's **Channel managers** section stops recognizing the role, shows no managers, and refuses to add or remove any, with an error that points you to the Roles page. To recover, set the role's permissions back to exactly **Claude Tag channel setup**; the group and its members are kept. To give channel managers any other permission, create a separate role for it. +Leave the role as it was created: assigned to its channel, with **Claude Tag channel setup** as its only permission. If the role's permissions are changed on the Roles page, the channel's channel-managers popup stops recognizing the role and refuses to add or remove any, with a notice that points you to the Roles page. To recover, set the role's permissions back to exactly **Claude Tag channel setup**; the group and its members are kept. To give channel managers any other permission, create a separate role for it. ### Remove a channel manager -To remove a channel manager, open the same **Channel managers** section on the channel's panel. Remove a member you added directly, or detach a group you added. The member keeps their access level and any other custom roles. In the channel, they go back to seeing the Configure page's values read-only, like any other member. +To remove a channel manager, open the same popup from the people-icon button on the channel's panel. The current managers are listed under **Channel managers**. Remove a member you added directly, or detach a group you added. The member keeps their access level and any other custom roles. The manager cards on the channel's Configure page disappear for them. ### Verify a channel manager's access -The **Channel managers** section on the channel's panel shows each manager's status. A member whose access level doesn't support the role appears as **Not in effect**; the role works only on the **Custom roles** access level, so change the member's level on the Members page to put it into effect. An active manager sees the **Channel manager settings** section on the channel's [Configure page](/docs/claude-tag/users/good-habits#configure-claude-for-a-channel), so asking them to open that page confirms the setup. +The popup behind the people-icon button on the channel's panel shows each manager's status under **Channel managers**. A member whose access level doesn't support the role appears as **Not in effect**; the role works only on the **Custom roles** access level, so change the member's level on the Members page to put it into effect. An active manager sees the **Default model**, repository, and access bundle cards on the channel's [Configure page](/docs/claude-tag/users/good-habits#configure-claude-for-a-channel), so asking them to open that page confirms the setup. ### Audit channel manager activity diff --git a/content/claude/claude-tag/admins/set-spend-limit.md b/content/claude/claude-tag/admins/set-spend-limit.md index 12f2db1ce..8c99b4472 100644 --- a/content/claude/claude-tag/admins/set-spend-limit.md +++ b/content/claude/claude-tag/admins/set-spend-limit.md @@ -13,8 +13,9 @@ export const BetaNote = () => Claude Tag is in public beta. Features and b Work Claude does in channels bills to your **organization's usage balance**, not to individual seats. The **spend limit** is a cap you set on how much of that balance Claude Tag can use each billing period. diff --git a/content/claude/claude-tag/admins/test-it.md b/content/claude/claude-tag/admins/test-it.md index 49045c0a9..fd62b9725 100644 --- a/content/claude/claude-tag/admins/test-it.md +++ b/content/claude/claude-tag/admins/test-it.md @@ -13,8 +13,9 @@ export const BetaNote = () => Claude Tag is in public beta. Features and b
diff --git a/content/claude/claude-tag/admins/workspaces.md b/content/claude/claude-tag/admins/workspaces.md index eaa64c558..cdf2fa223 100644 --- a/content/claude/claude-tag/admins/workspaces.md +++ b/content/claude/claude-tag/admins/workspaces.md @@ -79,6 +79,8 @@ In the **Connected workspaces** list, select **Disconnect** on the workspace's r Access bundles belong to your organization, not to a workspace, so they stay available to attach to other scopes; only their bindings to the deleted scopes go. +After you disconnect, the Slack row under **Where Claude Tag works** shows **Disconnected** with the workspace's name, and offers a **Reconnect** action, as a button on that row and in the row's **⋮** menu. **Reconnect** reopens the pairing dialog, where you redeem a fresh code from `@Claude connect`. + The Slack app stays installed, so a workspace admin can pair the workspace again by sending `@Claude connect` in it, to the same Claude organization or a different one. If you intend the data to be deleted, wait a few minutes before pairing the workspace to the same organization again, because a new pairing that arrives while the deletion is still starting can cancel it. Once the deletion has run, the new pairing starts without the deleted data. Uninstalling the app from the workspace in Slack deletes the same data, whether or not you disconnected first; see [Quiet or remove Claude Tag](/docs/claude-tag/admins/restrict-access#quiet-or-remove-claude-tag). ## Related resources diff --git a/content/claude/claude-tag/concepts/settings-map.md b/content/claude/claude-tag/concepts/settings-map.md index 7c7abca48..246e5516d 100644 --- a/content/claude/claude-tag/concepts/settings-map.md +++ b/content/claude/claude-tag/concepts/settings-map.md @@ -20,7 +20,7 @@ Claude Tag's settings live on claude.ai, split across a few pages that each own | The **Configure** link in the footer of any Claude reply in a channel | Channel members (unless an admin restricts editing) and [channel managers](/docs/claude-tag/admins/restrict-access#delegate-channel-setup-to-channel-managers) for their assigned channels | One channel's instructions and whether Claude replies there without an @-mention. Channel managers also set the channel's default model, repositories, and connections | | [Customize > Connectors](https://claude.ai/customize/connectors) on your own claude.ai account | You | Which of your personal tools apply in [DMs](/docs/claude-tag/concepts/agent-identity#direct-message-channels) | -Channel memory and routines aren't in the table because you change them by talking to Claude in the channel; see [what anyone can change from the channel](/docs/claude-tag/admins/customize#change-behavior-from-the-channel). Admins can review both, as each scope's memory files and scheduled work, from [the Audit page](/docs/claude-tag/admins/audit). +Channel memory and routines aren't in the table because you change them by talking to Claude in the channel; see [what anyone can change from the channel](/docs/claude-tag/admins/customize#change-behavior-from-the-channel). Admins can review both, as each scope's memory files and scheduled work, from [the Audit page](/docs/claude-tag/admins/audit), labeled **Activity** in the console. ## The Claude Tag admin page @@ -43,11 +43,13 @@ Spend trends live at [`claude.ai/analytics/claude-tag`](https://claude.ai/analyt Every Claude reply in a channel ends with a footer, and its **Configure** link opens a claude.ai page for that channel; replies in DMs have no Configure link. You can also send [`@Claude !configure`](/docs/claude-tag/users/commands#get-the-link-to-configure-a-channel) in the channel, and Claude replies with a link to the same page. -Anyone in the channel who is also a member of your Claude organization can edit the **Channel instructions** field on that page, unless an admin has [restricted editing to admins](/docs/claude-tag/admins/attach-to-scope#restrict-who-can-set-channel-instructions). The page's **Respond automatically** toggle controls whether Claude replies in the channel without an @-mention; see [Turn automatic replies on or off](/docs/claude-tag/users/when-claude-responds#turn-automatic-replies-on-or-off). The page's **Connections** tab shows the channel's resolved connections, which admins set, so members can see the list but not change it. A **Routines** tab lists the channel's routines with each one's schedule, status, and last run. +Anyone in the channel who is also a member of your Claude organization can edit the **Channel instructions** field on that page, unless an admin has [restricted editing to admins](/docs/claude-tag/admins/attach-to-scope#restrict-who-can-set-channel-instructions). The page's **Respond automatically** toggle controls whether Claude replies in the channel without an @-mention; see [Turn automatic replies on or off](/docs/claude-tag/users/when-claude-responds#turn-automatic-replies-on-or-off). + +The page's **Tools and access** tab shows the channel's resolved connections and any allowed domains. Members can see those lists but not change them there. The same tab's **Plugins** card lists the channel's plugins, and members can add plugins there unless an admin has restricted editing to admins. A **Routines** tab lists the channel's routines with each one's schedule, status, and last run. The Configure page and the **Custom instructions** field on the scope's panel in admin settings write the same instructions, so a change from either place is visible in the other. See [Configure Claude for a channel](/docs/claude-tag/users/good-habits#configure-claude-for-a-channel). -On the Enterprise plan, an Owner can name [channel managers](/docs/claude-tag/admins/restrict-access#delegate-channel-setup-to-channel-managers) for a channel. For them, the same page adds a **Channel manager settings** section where they set the channel's default model, repositories, and connections. +On the Enterprise plan, an Owner can name [channel managers](/docs/claude-tag/admins/restrict-access#delegate-channel-setup-to-channel-managers) for a channel. For them, the same page adds editable cards: the channel's default model on the **General** tab, and its repositories and access bundles on the **Tools and access** tab. ## Personal connectors on claude.ai diff --git a/content/claude/claude-tag/users/good-habits.md b/content/claude/claude-tag/users/good-habits.md index b5702ed31..758fb1a98 100644 --- a/content/claude/claude-tag/users/good-habits.md +++ b/content/claude/claude-tag/users/good-habits.md @@ -24,6 +24,10 @@ Claude is most useful when the work is somewhere the team can see, steer, and bu * **Give Claude the destination, not the route.** State the outcome you want and let Claude work out the steps; the [definition of done](#give-every-task-a-definition-of-done) below makes that concrete. * **Tolerate the mess.** A first draft posted in the thread is more useful than a polished one in a DM. The thread is the workspace, not the deliverable. +### Mentioning people who aren't in the channel + +Claude can't add anyone to a channel, and it doesn't decide whether a mentioned person is notified. Slack's prompt to invite or notify someone who isn't in the channel appears only for messages you type yourself; it never applies to messages Claude posts. Slack delivers Claude's mention the way it delivers any app-posted message. In a public channel, the person is notified in their Activity view even though they haven't joined. In a private channel, they aren't notified and can't see the message until someone invites them. If you want someone to follow a thread Claude is working in, invite them yourself. + ## Write tasks that close The phrasing of a task determines whether it has a verifiable end state, what form the result takes, and how Claude responds while working on it. @@ -176,7 +180,7 @@ The **Respond automatically** toggle on that page controls whether Claude replie Use the **Channel instructions** field on that page to write standing guidance Claude reads in every new session in the channel: the channel's purpose, its conventions, the tone replies should take, and anything Claude should do or avoid there. Channel instructions outrank channel memory and sit alongside any instructions an admin has set for the workspace or organization. Save the field and the change applies to new sessions started in the channel. -The page also shows **Connections**, the services Claude can reach from this channel. Your organization's admins set that list, so you can see it on this page but not change it. If an Owner has made you a [channel manager](/docs/claude-tag/admins/restrict-access#delegate-channel-setup-to-channel-managers) for the channel, you can change it here. +The page's **Tools and access** tab shows **Connections**, the services Claude can reach from this channel, along with any allowed domains. You can see those lists but not change them on this page. The same tab's **Plugins** card lists the channel's plugins, and you can add plugins there unless an admin has restricted editing to admins. If an Owner has made you a [channel manager](/docs/claude-tag/admins/restrict-access#delegate-channel-setup-to-channel-managers) for the channel, the tab also has access bundle and repository cards you can edit. ## Keep thread count and review rate matched diff --git a/content/claude/cowork/changelog.md b/content/claude/cowork/changelog.md index 6a61beca4..3d868b01b 100644 --- a/content/claude/cowork/changelog.md +++ b/content/claude/cowork/changelog.md @@ -6,6 +6,75 @@ > Release notes for Claude Desktop + + **General** + + * Updated the bundled Claude Code CLI to version 2.1.246. + + **Code** + + * Fixed remote MCP servers never recovering after a dropped connection; they now reconnect automatically or report as failed. + * Fixed signing in to some MCP servers, such as Linear, failing with an "Invalid redirect URI" error. + + **Cowork** + + * No user-facing changes. + + **3P** + + * No user-facing changes. + + + + **General** + + * Added support for legacy Word .doc files, which now open like .docx, and Excel .xlsx and .xls spreadsheets, which now attach as text where they used to be refused. + * Removed sharing of chat artifacts for members of organizations whose admin has turned Artifacts off; links already shared keep working. + * Fixed chat refusing new messages after the weekly Cowork limit was used up. + * Fixed scheduled tasks set to run on both a day of the month and a weekday (for example "the 1st and every Monday") only running when the two coincided; they now run on either day, as their schedule description says. + * Fixed several chat reliability issues: queued messages could disappear or send on their own, a send retried during a service overload could add repeated copies of a message, reopening a chat before the reply arrived could show a false "message wasn't sent" error, and a single failed response could show two error messages. + * Fixed the app sometimes signing you out right after an automatic update. + + **Code** + + * Improved SSH session reliability: fixed connections failing when the configured identity file is a public key (common with 1Password setups), messages sent while the host reconnects are delivered once it is back, a Claude Code upload to the host now rides out a brief network pause, idle sessions no longer show a false "Lost connection" card, reconnecting can ask for a password or one-time code when needed, and a reconnect no longer reports lost output unless it truly could not be recovered. + * Fixed all saved SSH connections disappearing when one stored connection entry was invalid. + * Fixed background cleanup of old session worktrees on Windows sometimes also deleting the contents of folders that NTFS junctions inside the worktree pointed to, such as the main checkout's `node_modules`. + * Fixed removing a claude.ai import run resetting uncommitted work in a session you had started from that import; the session's files are now kept on disk. + * Fixed sessions failing to start for organizations using the `disableSideloadFlags` setting in Claude Code's `managed-settings.json`; sessions now start without the desktop's bundled skills and plugins instead. + * Fixed very high memory use, and a blank or unresponsive window, when opening or reconnecting sessions with very large transcripts or many subagents. + + **Cowork** + + * Added dictation in the Claude in Chrome side panel; allow the microphone once in the extension's settings. + * Fixed "upload failed" errors when staging Google Drive and other cloud-synced files that are not downloaded on your Mac yet; they now download automatically, and clearer messages explain when the sync app needs to be started. + * Fixed a Rename, Delete, or Move dialog left open in a task's header staying open when you switched to another task and acting on the task you switched to; it now closes on switch. + * Fixed only the last file staying attached when several files opened with Claude each needed confirmation. + * Fixed restored Cowork tabs showing a "Try again" error when the app restarted before sessions finished loading, such as right after an update. + * Fixed the tasks and files panel staying open as an empty pane after a restart. + + **3P** + + * Added `mcpToolTimeoutSec`, which sets how long an MCP tool call may run before it times out. Defaults to 180 seconds. + * Added `organizationInstructions`: organization-wide instructions appended to Claude's system prompt in Chat, Cowork, and Code sessions (up to 3,000 characters); settable via device management, a local configuration file, or the bootstrap response. They are guidance the model follows, not an enforced control. + * Added `skipWebFetchPreflight`. When enabled, Code sessions no longer contact api.anthropic.com before fetching a web page, which fixes page fetches failing on networks that block that host. Off by default. + * Added `userPluginMarketplacesEnabled` and `userPluginUploadsEnabled`, which control whether members can add their own plugin marketplaces and upload their own plugins; when off, the add options are hidden and adds are refused. Unset keys change nothing. + * Added Code tab features already available in the standard app: the Files panel with Show in Files, emoji autocomplete and inline prompt suggestions in the composer, interactive MCP app widgets in the conversation, and letting Claude read output from the integrated terminal panel. + * Added cost estimates to the Usage page: `inferenceModelPricingEnabled` shows an estimated cost alongside token counts, priced at Anthropic list price; `inferenceModelPricing` supplies per-model rates and `inferenceModelPricingMultiplier` scales every estimate (a number between 0 and 1). The two rate keys take effect in a future release; until then estimates use list price. Off by default. + * Added suggestions for plugins and skills from your organization's own library in chat. + * Added support for plugin marketplace credential helpers that return a username or `authtype=Bearer`, so marketplaces hosted on Bitbucket Data Center or behind GitLab deploy tokens can authenticate. + * Added the `disableDesktopLocalSessions` setting to Claude Code's `managed-settings.json`, which turns off Code sessions that run on the device itself so the Code tab offers only remote environments such as SSH; the environment menu shows Local greyed out with a "Disabled by your organization" explanation. + * Changed `allowedPluginMarketplaces` (beta): a `url` marketplace hosted on the bootstrap server's own origin can now use `credentialKind: "inferenceCredential"` and is fetched with the same sign-in the app already uses for its bootstrap configuration. + * Changed `builtinToolPolicy` to accept argument-scoped Claude Code permission rules such as `Bash(curl *)` in addition to bare tool names; `WebSearch` and `WebFetch` entries stay bare tool names, and entries that are not usable rules are rejected with a configuration error. + * Changed gateway device-code sign-in to show the signed-in account's email, when the gateway returns one, instead of the computer's login name. + * Changed the Code tab's file pane and git panel to follow the administrator's `allowedWorkspaceFolders` setting. + * Fixed Bedrock sessions behind a proxy that strips the response content type silently re-running every request without streaming, which billed each request twice. + * Fixed Cowork scheduled tasks running on the 200K-context model when the 1M-context row or "Default model" was selected in the task form; the form now labels the 1M row. + * Fixed the built-in Microsoft 365 connector publishing an invalid schema for updating a calendar event's end time. + * Fixed the Microsoft 365 local connector on Windows failing for users with more than one Microsoft work account on the PC. The Reconnect card now opens the Windows account picker and the chosen account is remembered; users of this connector will be asked to reconnect once after this update. + * Fixed the model picker showing a duplicate, mislabeled 1M-context row when `inferenceModels` lists a model both with and without the `[1m]` suffix. + + **General** diff --git a/content/claude/government/config/settings.md b/content/claude/government/config/settings.md index aca645261..f8ac3112b 100644 --- a/content/claude/government/config/settings.md +++ b/content/claude/government/config/settings.md @@ -100,9 +100,11 @@ The system-use notification shown at sign-in is separate from this banner. It is ### Product availability -A group of separate switches that control which Claude products and features are available to members. Each switch appears as its own row: **Claude Desktop**, **Chat in Claude Desktop**, **Advanced file analysis in Chat**, **Cowork in Claude Desktop**, **Code in Claude Desktop**, **Claude Code**, and **Claude for Microsoft 365**. All are on by default. Turning a switch off makes that product or feature unavailable. +A group of separate switches that control which Claude products and features are available to members. Each switch appears as its own row: **Claude Desktop**, **Chat in Claude Desktop**, **Advanced file analysis in Chat**, **Cowork in Claude Desktop**, **Code in Claude Desktop**, **Claude Code**, and **Claude for Microsoft 365**. All are on by default. -The **Chat in Claude Desktop**, **Cowork in Claude Desktop**, and **Code in Claude Desktop** switches each make one part of the app available to members. Chat is for simple conversations, Cowork is for longer tasks that Claude works through on its own in a local workspace folder, and Code is for software development. The **Claude Code** switch is separate and controls the standalone Claude Code command-line tool. +Turning off one of the three product switches (**Claude Desktop**, **Claude Code**, or **Claude for Microsoft 365**) makes Claude for Government stop serving that application your organization's configuration. From then on, Claude Desktop and the Claude for Microsoft 365 add-in are refused the organization's configuration when they request it, and Claude Code that is signed in to Claude for Government exits when it next starts (or right after sign-in) with a message that it couldn't load settings from the cloud gateway. Claude Code that is already running is not cut off and keeps working until it is next started. The product switches are not an access control on the Claude for Government service itself. What a member can reach is governed by their account, their [seat tier](/docs/government/org-admin/seat-tiers), and your agency's device and network management. To cut a member off at once, deactivate their account, after which they cannot sign in and requests from their existing sign-ins are refused (see [Deactivated users](/docs/government/org-admin/users#deactivated-users)). Turning off one of the other four switches removes that feature from Claude Desktop, as described below. + +The **Chat in Claude Desktop**, **Cowork in Claude Desktop**, and **Code in Claude Desktop** switches each make one part of the app available to members. Chat is for simple conversations, Cowork is for longer tasks that Claude works through on its own in a local workspace folder, and Code is for software development. The **Claude Code** switch is separate and applies to the standalone Claude Code command-line tool. When Chat and Cowork are both available, Claude Desktop presents them together as **Home** in its sidebar, next to **Code**. From Home, a member chooses **Chat** or **Cowork** in the message box, and the sidebar lists their chats and tasks together. diff --git a/content/claude/office-agents/third-party-platforms.md b/content/claude/office-agents/third-party-platforms.md index f4a8e7eb1..c189bdfd9 100644 --- a/content/claude/office-agents/third-party-platforms.md +++ b/content/claude/office-agents/third-party-platforms.md @@ -209,6 +209,38 @@ different settings. The add-in resolves each configuration key from a bootstrap endpoint, then Entra ID extension attributes, then manifest parameters. +### Admin feature controls + +The `disabled_features` configuration key turns off individual add-in +features for your users. It travels over the same three channels as every +other key: manifest parameters (comma-separated), Entra ID extension +attributes (comma-separated), or a bootstrap endpoint (JSON array), so it +can apply org-wide from one manifest or vary per user. + +| Slug | Effect | +| ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `skills.authoring` | Blocks creating, editing, and uploading skills. Running admin-provisioned skills is unaffected. | +| `thumbs` | Blocks response feedback (thumbs up / down and the follow-up prompt). | +| `addin.access` | Kill switch: the add-in refuses to run. | +| `file.upload` | Blocks attaching files to the conversation. | +| `web_search` | Removes the built-in web search and web fetch tools, whose queries are served by Anthropic's search provider, along with the user-facing web search toggle. Code execution is unaffected. | + +Unknown slugs are ignored, so setting a slug from a newer add-in version +on an older deployment is safe. + +Disabling `web_search` pairs with the `mcp_servers` key: attach your own +search tool from a server inside your network, and with the built-in +search disabled the model uses the tool you provide. This keeps search +queries on infrastructure you control. + +For document-scoped control, such as disabling a feature only on files +carrying certain sensitivity labels, use the `access_policies` key +instead; a statement without a resource behaves exactly like +`disabled_features`. The setup wizard's +`/claude-for-msft-365-install:manifest` and +`/claude-for-msft-365-install:access-policies` commands document both +keys in full. + ### Deploy to Outlook Outlook requires a separate manifest file from Excel, PowerPoint, and @@ -731,16 +763,16 @@ application in your tenant, confirm it matches these values. | Publisher | Anthropic, PBC (verified publisher) | | Supported account types | Accounts in any organizational directory | -The add-in uses the following redirect URIs for sign-in. Each one exists -for a specific sign-in path, and none of them receives a Microsoft -access token in the URL. +The add-in uses the following redirect URIs with this application. Each +one exists for a specific Microsoft sign-in path, and none of them +receives a Microsoft access token in the URL. -| Redirect URI | Platform | Purpose | -| -------------------------------------------- | ----------------------- | ---------------------------------------------------------------------------------------- | -| `https://pivot.claude.ai/auth/callback` | Web | admin consent confirmation page, receives `admin_consent` and `tenant` only | -| `https://pivot.claude.ai/msal-redirect.html` | Single-page application | MSAL response bridge for Office on the web, where the host cannot broker tokens natively | -| `brk-multihub://pivot.claude.ai` | Single-page application | Nested App Authentication broker on Office desktop and Mac | -| `https://pivot.claude.ai/auth/3p` | Web | legacy entry from earlier builds, not used by current builds, scheduled for removal | +| Redirect URI | Platform | Purpose | +| -------------------------------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `https://pivot.claude.ai/auth/callback` | Web | admin consent confirmation page, receives only `admin_consent` and `tenant` from Microsoft. Google sign-in for Vertex AI reuses this URI for its [OAuth authorization-code redirect](#oauth-authorization-code-redirects) | +| `https://pivot.claude.ai/msal-redirect.html` | Single-page application | MSAL response bridge for Office on the web, where the host cannot broker tokens natively | +| `brk-multihub://pivot.claude.ai` | Single-page application | Nested App Authentication broker on Office desktop and Mac | +| `https://pivot.claude.ai/auth/3p` | Web | legacy entry from earlier builds, not used by current builds, scheduled for removal | ### Verify this in your own environment diff --git a/content/claude/third-party/claude-desktop/bootstrap.md b/content/claude/third-party/claude-desktop/bootstrap.md index 48791d43b..9e6a1b0fb 100644 --- a/content/claude/third-party/claude-desktop/bootstrap.md +++ b/content/claude/third-party/claude-desktop/bootstrap.md @@ -389,7 +389,7 @@ When you supply `bootstrapOidc`, your configuration server and gateway are indep - Static headers sent on every request to the bootstrap config URL — for a service-account credential (`Authorization: Basic …`, an API key header) or a routing/tenant header. When either this or the headers helper script is set and no separate `bootstrapOidc` provider is configured, the app treats the headers as sufficient auth and does not require a per-user sign-in for the bootstrap fetch. Header values are masked in diagnostics and telemetry. For a rotating token, use the headers helper script instead. + Static headers sent on every request to the bootstrap config URL — for a service-account credential (`Authorization: Basic …`, an API key header) or a routing/tenant header. When either this or the headers helper script is set and no separate `bootstrapOidc` provider is configured, the app treats the headers as sufficient auth and does not require a per-user sign-in for the bootstrap fetch. These headers (and the helper script's below) also accompany requests to a plugin marketplace this server hosts on its own origin (`allowedPluginMarketplaces` with `credentialKind: "inferenceCredential"`). Header values are masked in diagnostics and telemetry. For a rotating token, use the headers helper script instead. diff --git a/content/claude/third-party/claude-desktop/configuration-changelog.md b/content/claude/third-party/claude-desktop/configuration-changelog.md index f3d04fc00..d4b9c94a5 100644 --- a/content/claude/third-party/claude-desktop/configuration-changelog.md +++ b/content/claude/third-party/claude-desktop/configuration-changelog.md @@ -8,6 +8,62 @@ 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 | + | -------------------------------------------------------------------------------------------------------------- | ---------- | ------------------------------------ | + | [`inferenceModelPricingEnabled`](/docs/third-party/claude-desktop/configuration#inferencemodelpricingenabled) | `boolean` | Show estimated cost | + | [`inferenceModelPricingMultiplier`](/docs/third-party/claude-desktop/configuration#inferencemodelpricingmultiplier) | `number` | Price multiplier | + | [`inferenceModelPricing`](/docs/third-party/claude-desktop/configuration#inferencemodelpricing) | `object[]` | Model pricing | + | [`userPluginMarketplacesEnabled`](/docs/third-party/claude-desktop/configuration#userpluginmarketplacesenabled) | `boolean` | Allow user-added plugin marketplaces | + | [`userPluginUploadsEnabled`](/docs/third-party/claude-desktop/configuration#userpluginuploadsenabled) | `boolean` | Allow user-added plugins | + | [`mcpToolTimeoutSec`](/docs/third-party/claude-desktop/configuration#mcptooltimeoutsec) | `integer` | MCP tool call timeout | + | [`skipWebFetchPreflight`](/docs/third-party/claude-desktop/configuration#skipwebfetchpreflight) | `boolean` | Skip WebFetch domain check | + | [`organizationInstructions`](/docs/third-party/claude-desktop/configuration#organizationinstructions) | `string` | Organization instructions | +
+ + **JSON (e.g. for non-MDM users or Bootstrap):** + + ```json theme={null} + { + "models": { + "pricing": { + "enabled": "", + "multiplier": "", + "models": [ + { + "name": "", + "inputPerMtok": "", + "outputPerMtok": "", + "cacheReadPerMtok": "", + "cacheWritePerMtok": "" + } + ] + } + }, + "plugins": { + "userPluginMarketplacesEnabled": "", + "userPluginUploadsEnabled": "" + }, + "mcp": { + "toolTimeoutSec": "" + }, + "workspace": { + "skipWebFetchPreflight": "", + "organizationInstructions": "" + } + } + ``` + + **Changed:** + + * `builtinToolPolicy` accepts argument-scoped Claude Code permission rules such as `Bash(curl *)` or `Edit(**/*.env)` as keys, in addition to bare tool names; `WebSearch` and `WebFetch` take the bare name only, and a key that is not a usable rule is dropped with a configuration error. Deploy argument-scoped entries once your whole fleet is on this release: an older build drops an argument-scoped `ask` entry as an unknown tool, so that tool runs without a prompt. +
+ No configuration changes in this release. diff --git a/content/claude/third-party/claude-desktop/configuration.md b/content/claude/third-party/claude-desktop/configuration.md index 043b72c96..7db03c399 100644 --- a/content/claude/third-party/claude-desktop/configuration.md +++ b/content/claude/third-party/claude-desktop/configuration.md @@ -82,7 +82,7 @@ The reference below is generated from the configuration schema and grouped to ma | Custom inference headers
`inferenceCustomHeaders` | `object` | MDM + Bootstrap | — | Extra headers on every inference request — routing and tenant headers only (org IDs, Bedrock Guardrails). No credentials; use the credential helper for tokens. Previously named `inferenceGatewayHeaders`. | | Sign-in session lifetime
`inferenceSessionLifetimeSec` | `integer` | MDM + Bootstrap | — | How long a sign-in stays valid under your IdP’s session policy. Shows a re-authenticate banner before it expires. | | Helper script
`inferenceCredentialHelper` | `string` | MDM + Bootstrap | — | Absolute path to an executable that prints the credential, optionally with per-request headers. | -| Helper script TTL
`inferenceCredentialHelperTtlSec` | `integer` | MDM + Bootstrap | `3600` | Helper output is cached for this many seconds. Re-runs at the next session start after expiry. Defaults to `3600`. | +| Helper script TTL
`inferenceCredentialHelperTtlSec` | `integer` | MDM + Bootstrap | `3600` | Helper output is cached for this many seconds; once it expires the helper re-runs without a relaunch (before the next turn when set above 120). Defaults to `3600`. | | Credential helper timeout
`inferenceCredentialHelperTimeoutSec` | `integer` | MDM + Bootstrap | `60` | Maximum wait for the helper executable to finish. Raise this if the helper opens a browser for interactive sign-in. Defaults to `60`. Range: 1–600. | | Re-run helper for silent refresh
`inferenceCredentialHelperSilentRefreshEnabled` | `boolean` | MDM + Bootstrap | `true` | On credential expiry, re-run the helper (CLAUDE\_HELPER\_CONTEXT=mid-session-refresh) to recover silently. Turn off if the helper can’t run non-interactively. Defaults to `true`. | | Artifact preview iframe origin
`userContentRendererUrl` | `string` | MDM + Bootstrap | — | HTTPS origin of the user-content-renderer deployment used for artifact and file previews. Defaults to the commercial host when unset. | @@ -226,11 +226,14 @@ The reference below is generated from the configuration schema and grouped to ma ### Models -| Setting | Type | Availability | Default | Description | -| ----------------------------------------------------------------------------------- | ---------- | --------------- | ------- | --------------------------------------------------------------------------------------------------------------------- | -| Model discovery
`modelDiscoveryEnabled` | `boolean` | MDM + Bootstrap | — | Auto-populate the model picker from the provider at launch. | -| Default to 1M context
`modelPrefer1mContext` | `boolean` | MDM + Bootstrap | — | When a user has no saved selection, start the picker on the 1M-context variant of the default model if it offers one. | -| Model list
`inferenceModels` | `object[]` | MDM + Bootstrap | — | Override the auto-discovered model list. First entry is the default. | +| Setting | Type | Availability | Default | Description | +| ---------------------------------------------------------------------------------------------------- | ---------- | --------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Model discovery
`modelDiscoveryEnabled` | `boolean` | MDM + Bootstrap | — | Auto-populate the model picker from the provider at launch. | +| Default to 1M context
`modelPrefer1mContext` | `boolean` | MDM + Bootstrap | — | When a user has no saved selection, start the picker on the 1M-context variant of the default model if it offers one. | +| Model list
`inferenceModels` | `object[]` | MDM + Bootstrap | — | Override the auto-discovered model list. First entry is the default. | +| Show estimated cost
`inferenceModelPricingEnabled` | `boolean` | MDM + Bootstrap | — | Show an estimated cost on the Usage page, at Anthropic list price for any model without a rate below. | +| Price multiplier
`inferenceModelPricingMultiplier` | `number` | MDM + Bootstrap | — | Scales every estimated cost (0.85 = 85% of the price); between 0 and 1. Takes effect in a future release; until then turns are estimated at list price. Range: 0–1. | +| Model pricing
`inferenceModelPricing` | `object[]` | MDM + Bootstrap | — | Per-model rates replacing Anthropic list price in the Usage page’s estimate. Takes effect in a future release; until then turns are estimated at list price. | @@ -252,6 +255,8 @@ The reference below is generated from the configuration schema and grouped to ma [{"name": "claude-sonnet-5", "supports1m": true}, "claude-opus-4-8"] ``` + `"claude-sonnet-5[1m]"` is shorthand for the same entry. When an ID is listed both bare and with `[1m]` (as a gateway lists it), the picker shows one model with a 1M variant; put `labelOverride` on the bare entry (a label on the `[1m]` spelling is ignored there); tier-tagged entries are not folded. + **Default to 1M context** (`prefer1m`) makes the 1M-context variant the default picker selection when this entry is the default model (the first entry); users can still switch to the standard variant, and an explicit user pick is always kept. No effect without `supports1m`. Under dynamic discovery (no explicit list), the equivalent flat key in the **Models** group applies instead: ```json theme={null} @@ -279,6 +284,32 @@ The reference below is generated from the configuration schema and grouped to ma | `anthropicFamilyTier` | `enum` | — | Which Claude tier this model stands in for. Pins the bare alias (e.g. ‘opus’) and, for opus/fable, the refusal fallback. One of: `sonnet`, `opus`, `haiku`, `fable`, `mythos`. | | `isFamilyDefault` | `boolean` | — | When several models share a tier alias, marks this one as the model the alias resolves to. Otherwise the first listed wins. | + + + Off unless set: the Usage page shows token counts only, since the app cannot know your negotiated provider rates. `true` turns on a USD estimate priced at Anthropic's published list price; `inferenceModelPricingMultiplier` and `inferenceModelPricing` refine it and each also turns the estimate on by itself. Claude Code performs the calculation, so the same figures appear in its own cost reporting for Code sessions. Model IDs Claude Code cannot map to a Claude model (an opaque gateway alias, an inference-profile ARN it cannot resolve) are left out of the estimate until `inferenceModelPricing` gives them a rate. A machine-level Claude Code managed `modelPricing` (MDM / managed-settings.json / server-managed) takes precedence over all three keys. + + + + Mirrors Claude Code's managed `modelPricing.multiplier`: a number in (0, 1] applied to every computed cost, whether the model was priced at Anthropic list price or by an `inferenceModelPricing` row — use it for a flat contracted discount. Setting it also turns the Usage page's estimate on. Takes effect in a future release, once Desktop bundles a Claude Code version that reads it; until then turns are estimated at Anthropic list price. Ignored when a machine-level Claude Code managed `modelPricing` is present. + + + + Each row replaces Anthropic list price for one model in the Usage page's estimate, in USD per million tokens (`inputPerMtok`, `outputPerMtok`, `cacheReadPerMtok`, `cacheWritePerMtok` — all four required; `cacheWritePerMtok` prices both 5-minute and 1-hour cache writes); any row also turns the estimate on. Mirrors Claude Code's managed `modelPricing.overrides`, and `name` is matched the same way: a built-in Claude model ID (e.g. `claude-sonnet-4-6`, or its Bedrock, Vertex, or Foundry ID) covers every dated and provider spelling of that model; any other value — a gateway alias, an inference-profile ARN — matches that exact ID only (case-insensitive) and wins over a built-in row. An ID Claude Code cannot map to a Claude model at all gets no estimate until a row here prices it. `inferenceModelPricingMultiplier` still applies on top of a row. These rates take effect in a future release, once Desktop bundles a Claude Code version that reads them; until then turns are estimated at Anthropic list price. + + ```json theme={null} + {"inferenceModelPricingEnabled": true, "inferenceModelPricingMultiplier": 0.9, "inferenceModelPricing": [{"name": "claude-sonnet-4-6", "inputPerMtok": 2.4, "outputPerMtok": 12, "cacheReadPerMtok": 0.24, "cacheWritePerMtok": 3}]} + ``` + + These are estimates for visibility, not an invoice; your provider bills at its own rates. A machine-level Claude Code managed `modelPricing` (MDM / managed-settings.json / server-managed) takes precedence over this table. + + | Field | Type | Default | Description | + | ------------------- | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------- | + | `name` | `string` | — | A model ID from the list above, or any other ID or alias your provider serves. A built-in Claude ID also covers its dated and provider forms. | + | `inputPerMtok` | `number` | — | USD per million input tokens. | + | `outputPerMtok` | `number` | — | USD per million output tokens. | + | `cacheReadPerMtok` | `number` | — | USD per million prompt-cache read tokens. | + | `cacheWritePerMtok` | `number` | — | USD per million prompt-cache write tokens (5-minute and 1-hour writes alike). | + ### Vertex @@ -356,19 +387,49 @@ The reference below is generated from the configuration schema and grouped to ma ### Workspace -| Setting | Type | Availability | Default | Description | -| -------------------------------------------------------------------------------------------------- | ---------- | ---------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Disabled built-in tools
`disabledBuiltinTools` | `string[]` | MDM + Bootstrap | — | Built-in tools removed from Cowork. | -| Disable bundled skills and workflows
`disableBundledSkills` | `boolean` | MDM + Bootstrap | — | Disables Claude Code’s bundled skills and workflows (deep-research and similar). Use where WebFetch/WebSearch aren’t available. | -| Allow user-created skills
`skillCreationEnabled` | `boolean` | MDM + Bootstrap | — | Allow users to create and upload their own skills. When off, the creation and upload surfaces are hidden and the agent’s skill-creation tools are disabled. | -| Built-in tool policy
`builtinToolPolicy` | `object` | MDM + Bootstrap | — | Per-tool approval policy for built-in tools. “ask” requires user approval before each call; “allow” is the default. | -| Allow Auto mode
`autoModeEnabled` | `boolean` | MDM + Bootstrap | `false` | Offer Auto mode in the Cowork and Code permission selectors. Claude decides which actions need approval. Defaults to `false`. | -| Enable tool search
`toolSearchEnabled` | `boolean` | MDM + Bootstrap | `false` | Load MCP tool schemas on demand (tool search) instead of inlining every schema into context. Defaults to `false`. | -| Allowed workspace folders
`allowedWorkspaceFolders` | `object[]` | MDM + Bootstrap | — | Folders where Claude may work. Applies to both Cowork and Code sessions. Leave unset for unrestricted access. | -| Allowed egress hosts
`coworkEgressAllowedHosts` | `string[]` | MDM + Bootstrap | — | Hostnames the agent’s tools may reach from Cowork and Code sessions. Also surfaced under Egress Requirements. | -| Require full VM sandbox
`requireCoworkFullVmSandbox` | `boolean` | MDM + Bootstrap · Deprecated | `false` | Runs tools inside an isolated VM instead of the host. Stronger isolation; slower file access and no host-process tools. Defaults to `false`. | +| Setting | Type | Availability | Default | Description | +| -------------------------------------------------------------------------------------------------------------------- | ---------- | ---------------------------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Allow user-added plugin marketplaces
`userPluginMarketplacesEnabled` | `boolean` | MDM + Bootstrap | — | Allow users to add plugin marketplaces themselves. When off, the add-marketplace surfaces are hidden and in-app adds are refused. | +| Allow user-added plugins
`userPluginUploadsEnabled` | `boolean` | MDM + Bootstrap | — | Allow users to add their own plugins. When off, every in-app option for adding one is hidden and uploads that still reach the app are refused. | +| Disabled built-in tools
`disabledBuiltinTools` | `string[]` | MDM + Bootstrap | — | Built-in tools, or argument-scoped permission rules such as Read(\*\*/.env), denied in Cowork and Code. | +| Disable bundled skills and workflows
`disableBundledSkills` | `boolean` | MDM + Bootstrap | — | Disables Claude Code’s bundled skills and workflows (deep-research and similar). Use where WebFetch/WebSearch aren’t available. | +| Allow user-created skills
`skillCreationEnabled` | `boolean` | MDM + Bootstrap | — | Allow users to create and upload their own skills. When off, the creation and upload surfaces are hidden and the agent’s skill-creation tools are disabled. | +| Built-in tool policy
`builtinToolPolicy` | `object` | MDM + Bootstrap | — | Approval policy per built-in tool or argument-scoped rule such as Bash(curl \*). “ask” requires user approval before each matching call; “allow” is the default. | +| Allow Auto mode
`autoModeEnabled` | `boolean` | MDM + Bootstrap | `false` | Offer Auto mode in the Cowork and Code permission selectors. Claude decides which actions need approval. Defaults to `false`. | +| Enable tool search
`toolSearchEnabled` | `boolean` | MDM + Bootstrap | `false` | Load MCP tool schemas on demand (tool search) instead of inlining every schema into context. Defaults to `false`. | +| Skip WebFetch domain check
`skipWebFetchPreflight` | `boolean` | MDM + Bootstrap | — | Skip Claude Code’s WebFetch domain lookup against api.anthropic.com in Code sessions. Off by default; turn on when that host is blocked. | +| Allowed workspace folders
`allowedWorkspaceFolders` | `object[]` | MDM + Bootstrap | — | Folders where Claude may work. Applies to both Cowork and Code sessions. Leave unset for unrestricted access. | +| Allowed egress hosts
`coworkEgressAllowedHosts` | `string[]` | MDM + Bootstrap | — | Hostnames the agent’s tools may reach from Cowork and Code sessions. Also surfaced under Egress Requirements. | +| Require full VM sandbox
`requireCoworkFullVmSandbox` | `boolean` | MDM + Bootstrap · Deprecated | `false` | Runs tools inside an isolated VM instead of the host. Stronger isolation; slower file access and no host-process tools. Defaults to `false`. | +| Organization instructions
`organizationInstructions` | `string` | MDM + Bootstrap | — | Appended to Claude’s system prompt in Chat, Cowork, and Code. Guidance the model follows, not an enforced control. Up to 3,000 characters. | + + When on (default), users can add plugin marketplaces from the plugin browser. Set to `false` to block user marketplace adds: the add-marketplace surfaces are hidden, and the app refuses adds that still reach it (deep links, stale UI). + + This is a feature-availability control enforced in the app, not a data boundary: marketplaces already registered on the user's machine (or registered outside the app, for example by the Claude Code CLI or by editing Claude Code's plugin files) are not removed or blocked by this key. Marketplaces provisioned by your organization (`allowedPluginMarketplaces`) are unaffected. + + This key applies only while the app runs in third-party mode. If users could otherwise sign in to Claude.ai on the device, also set `disableDeploymentModeChooser` so the app stays in third-party mode. + + + + When on (default), users can upload plugin files and create plugins with Claude. Set to `false` to stop users adding plugins of their own: every in-app option for doing so is hidden, and the app refuses uploads that still reach it. + + This is a feature-availability control enforced in the app, not a data boundary: plugins already installed (or placed on disk outside the app) are not removed or blocked by this key. Plugins from organization-provisioned marketplaces and the organization plugins directory are unaffected. + + This key applies only while the app runs in third-party mode. If users could otherwise sign in to Claude.ai on the device, also set `disableDeploymentModeChooser` so the app stays in third-party mode. + + + + Each entry is a Claude Code tool name (`Bash`, `Read`, `Write`, `Edit`, `Glob`, `Grep`, `NotebookEdit`, `WebFetch`, `WebSearch`, `Task`, `TodoWrite`, `TaskCreate`, `TaskUpdate`, `TaskGet`, `TaskList`, `TaskStop`, `Skill`, `REPL`, `JavaScript`, `AskUserQuestion`, `ToolSearch`, `SendUserMessage`) or an argument-scoped [permission rule](https://code.claude.com/docs/en/permissions#permission-rule-syntax) for one of them (any except `WebSearch` and `WebFetch`, which take the bare name only) — for example `Bash(curl *)`, `Read(//etc/**)`, or `Edit(**/*.env)`. A bare name covers every call to the tool (`Tool(*)` means the same and is stored as the bare name); an argument-scoped rule covers only matching calls and is evaluated by Claude Code's own rule matcher, in every permission mode including Auto and bypass. Claude Code matches a scope for `Bash(…)` (a command pattern) and for file-path patterns written as `Read(…)` (matched for every file-reading tool: `Read`, `Grep`, `Glob`) or `Edit(…)` (every file-editing tool: `Edit`, `Write`, `NotebookEdit`) — it does not consult a path pattern written against any other file tool; other tools take the bare name or Claude Code's generic `Tool(:)` form. `WebFetch` and `WebSearch` are whole-tool only: per-host web access is a single control, the egress host settings (`coworkEgressAllowedHosts`), which the Cowork sandbox and Code sessions both enforce, and web search runs server-side at the inference provider where no host list applies — a scoped `WebFetch(…)` or `WebSearch(…)` entry is not a usable rule here (the deny list still hands a scoped `WebFetch(…)` entry to Code sessions as written; Cowork never sees it). An entry Claude Code would not enforce as written raises a configuration warning. + + Argument-scoped `Bash(…)` rules apply to Code sessions and to Cowork sessions running inside the VM sandbox (`requireFullVmSandbox`); Cowork otherwise runs shell commands through a sandboxed `bash` workspace tool that honors the bare name only. Cowork sessions inside the VM sandbox see connected folders at sandbox paths (`/sessions/…/mnt//…`), so a file pattern spelled as a host absolute path (`Read(//Users/**)`) does not match there — write patterns that must hold in every Cowork mode folder-relative or `**/`-anchored (`Read(**/secrets/**)`, `Edit(**/*.env)`), or use a read-only `allowedWorkspaceFolders` entry. In Code side chats, and in Cowork sessions that run tools on the host, an **ask** entry on a file tool (`Read`, `Write`, `Edit`, `Glob`, `Grep`) blocks matching calls instead of prompting; Code sessions and VM-sandboxed Cowork sessions show the approval prompt. An **ask** entry, bare or argument-scoped, also turns off the app's remembered “always allow” choices for that whole tool, so each prompted call to it is confirmed individually. Argument-scoped rules reach sessions through Claude Code's managed-settings channel, so Claude Code managed settings delivered any other way — server-managed settings from the Claude admin console or a gateway, an MDM profile, or a [managed-settings file](https://claude.com/docs/third-party/claude-desktop/code#interaction-with-claude-code%E2%80%99s-own-managed-settings) — replace the argument-scoped **ask** rules (and any deny rule whose pattern contains `)` followed by a space or comma) unless that source sets `parentSettingsBehavior` to `"merge"`; bare names and other deny rules are enforced either way. + + The argument-scoped syntax requires the Claude Desktop release it first shipped in or newer — hold off deploying argument-scoped entries until your whole fleet is on that build (note `disableAutoUpdates` pins builds): an older build passes an argument-scoped **deny** entry through to Claude Code unchanged, but drops an argument-scoped **ask** entry as an unknown key — recorded there as a managed-configuration error (which, until that client updates, also blocks WSL sessions on Windows) — and the tool runs at its default (no prompt). + + An entry that is not a usable rule at all (a lowercase tool name, an unbalanced parenthesis, a scoped `WebFetch(…)` or `WebSearch(…)`) is also kept — the deny-list is served exactly as written — and raises a configuration warning. + + When on (default), users can create new skills and upload skill files in the app. Set to `false` to block user skill creation: the skill-creation and upload surfaces are hidden (the `skill_creation` feature is served as blocked by the organization), and the agent's skill-creation tools (saving skills from a conversation, skill proposals) are not offered in sessions — the same effect as turning off the **User-created skills** organization setting available to claude.ai enterprise admins. @@ -376,7 +437,13 @@ The reference below is generated from the configuration schema and grouped to ma - `ask-session` is accepted for compatibility and treated as `ask`. To remove a tool entirely, use **Disabled built-in tools** instead. + Each entry is a Claude Code tool name (`Bash`, `Read`, `Write`, `Edit`, `Glob`, `Grep`, `NotebookEdit`, `WebFetch`, `WebSearch`, `Task`, `TodoWrite`, `TaskCreate`, `TaskUpdate`, `TaskGet`, `TaskList`, `TaskStop`, `Skill`, `REPL`, `JavaScript`, `AskUserQuestion`, `ToolSearch`, `SendUserMessage`) or an argument-scoped [permission rule](https://code.claude.com/docs/en/permissions#permission-rule-syntax) for one of them (any except `WebSearch` and `WebFetch`, which take the bare name only) — for example `Bash(curl *)`, `Read(//etc/**)`, or `Edit(**/*.env)`. A bare name covers every call to the tool (`Tool(*)` means the same and is stored as the bare name); an argument-scoped rule covers only matching calls and is evaluated by Claude Code's own rule matcher, in every permission mode including Auto and bypass. Claude Code matches a scope for `Bash(…)` (a command pattern) and for file-path patterns written as `Read(…)` (matched for every file-reading tool: `Read`, `Grep`, `Glob`) or `Edit(…)` (every file-editing tool: `Edit`, `Write`, `NotebookEdit`) — it does not consult a path pattern written against any other file tool; other tools take the bare name or Claude Code's generic `Tool(:)` form. `WebFetch` and `WebSearch` are whole-tool only: per-host web access is a single control, the egress host settings (`coworkEgressAllowedHosts`), which the Cowork sandbox and Code sessions both enforce, and web search runs server-side at the inference provider where no host list applies — a scoped `WebFetch(…)` or `WebSearch(…)` entry is not a usable rule here (the deny list still hands a scoped `WebFetch(…)` entry to Code sessions as written; Cowork never sees it). An entry Claude Code would not enforce as written raises a configuration warning. + + Argument-scoped `Bash(…)` rules apply to Code sessions and to Cowork sessions running inside the VM sandbox (`requireFullVmSandbox`); Cowork otherwise runs shell commands through a sandboxed `bash` workspace tool that honors the bare name only. Cowork sessions inside the VM sandbox see connected folders at sandbox paths (`/sessions/…/mnt//…`), so a file pattern spelled as a host absolute path (`Read(//Users/**)`) does not match there — write patterns that must hold in every Cowork mode folder-relative or `**/`-anchored (`Read(**/secrets/**)`, `Edit(**/*.env)`), or use a read-only `allowedWorkspaceFolders` entry. In Code side chats, and in Cowork sessions that run tools on the host, an **ask** entry on a file tool (`Read`, `Write`, `Edit`, `Glob`, `Grep`) blocks matching calls instead of prompting; Code sessions and VM-sandboxed Cowork sessions show the approval prompt. An **ask** entry, bare or argument-scoped, also turns off the app's remembered “always allow” choices for that whole tool, so each prompted call to it is confirmed individually. Argument-scoped rules reach sessions through Claude Code's managed-settings channel, so Claude Code managed settings delivered any other way — server-managed settings from the Claude admin console or a gateway, an MDM profile, or a [managed-settings file](https://claude.com/docs/third-party/claude-desktop/code#interaction-with-claude-code%E2%80%99s-own-managed-settings) — replace the argument-scoped **ask** rules (and any deny rule whose pattern contains `)` followed by a space or comma) unless that source sets `parentSettingsBehavior` to `"merge"`; bare names and other deny rules are enforced either way. + + The argument-scoped syntax requires the Claude Desktop release it first shipped in or newer — hold off deploying argument-scoped entries until your whole fleet is on that build (note `disableAutoUpdates` pins builds): an older build passes an argument-scoped **deny** entry through to Claude Code unchanged, but drops an argument-scoped **ask** entry as an unknown key — recorded there as a managed-configuration error (which, until that client updates, also blocks WSL sessions on Windows) — and the tool runs at its default (no prompt). + + An entry that is not a usable rule at all (a lowercase tool name, an unbalanced parenthesis, a scoped `WebFetch(…)` or `WebSearch(…)`) is dropped and recorded as a configuration error, like any other unreadable managed value. `ask-session` is accepted for compatibility and treated as `ask`. To remove a tool or deny a rule entirely, use **Disabled built-in tools** instead. @@ -395,6 +462,12 @@ The reference below is generated from the configuration schema and grouped to ma Claude Desktop otherwise suppresses **all** of Claude Code's experimental beta features on 3P deployments (it pins `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` into session environments, because strict gateways reject unrecognized beta headers and fields). Enabling this key lifts that suppression, so other experimental betas — for example, on gateway- and Foundry-backed deployments, `context_management` request fields on models that support them — are re-enabled as well. This matches the request surface terminal Claude Code presents through the same gateway by default. Leave unset to keep the conservative default. + + Before fetching a page, Claude Code's WebFetch tool asks `api.anthropic.com` whether the domain is on Anthropic's content blocklist, and refuses the fetch if that lookup cannot complete. Third-party deployments route inference elsewhere and often block `api.anthropic.com` at the firewall; with the lookup on, every WebFetch in Code sessions then fails with "Unable to verify if domain … is safe to fetch", and where the host is reachable, every fetched hostname is sent to Anthropic. (Cowork sessions fetch through the app's own allowlisted fetch and never run this lookup.) + + Off (default): the lookup runs as it does today, so `api.anthropic.com` must be reachable from users' machines for Code-session WebFetch to work (listed under Egress Requirements). Set to `true` when users' machines cannot reach `api.anthropic.com` (corporate firewall, government network) or you do not want fetched hostnames sent there: Code sessions then fetch without the lookup and never contact that host for it. This is the same `skipWebFetchPreflight` setting Claude Code reads from its own [managed-settings](https://claude.com/docs/third-party/claude-desktop/code#interaction-with-claude-code%E2%80%99s-own-managed-settings) file; the app passes it to every session it starts. To restrict which domains Claude may fetch, use `coworkEgressAllowedHosts` or `builtinToolPolicy` instead. + + Paths can reference `~` and these environment variables, expanded per user: `%OneDrive%`, `%OneDriveCommercial%`, `%OneDriveConsumer%`, `%APPDATA%`, `%LOCALAPPDATA%`, `%USERNAME%`, `%XDG_DOCUMENTS_DIR%`. The set is fixed; an entry that references any other `%VAR%`, or one that is unset on the device, is ignored. @@ -410,7 +483,7 @@ The reference below is generated from the configuration schema and grouped to ma Applies to **both** Cowork and Code. In Cowork it governs the sandbox's web fetch, shell commands, and package installs. In Code sessions it is [translated into Claude Code's network sandbox allowlist](https://claude.com/docs/third-party/claude-desktop/code#applied-as-managed-policy); a separately deployed Claude Code managed-settings file on the endpoint takes precedence by default. - Does **not** apply to Web Search, which runs server-side at your inference provider rather than from the sandbox. + Does **not** apply to Web Search, which runs server-side at your inference provider rather than from the sandbox. Per-host control for the agent's web access lives here; to turn `WebFetch` or `WebSearch` off entirely, or to require approval for each call, list the bare tool name in `disabledBuiltinTools` or `builtinToolPolicy`. Only affects **tool calls**. Inference and MCP traffic are covered by their own allowlists elsewhere. When unset, only the inference endpoint is reachable from the sandbox; the agent's package installs (pip/npm) and web fetches will fail with a 403. @@ -420,6 +493,14 @@ The reference below is generated from the configuration schema and grouped to ma Hosts you add here also need to be open on your network firewall, on the listed ports. See **Egress Requirements** for the full allowlist. + + + Free-text instructions from your organization that Claude Desktop appends, in a clearly delimited block, after its own system prompt in **Chat**, **Cowork**, and **Code** (every chat, task, and Code session, including the sub-agents they spawn): for example house style, data-handling rules, or topics to decline. The model is told these instructions come from the organization's administrator and take priority over a user's personal preferences. + + This is guidance the model follows, not an enforced control: like any system-prompt text it steers the model's behavior and is usually honored, but it does not guarantee an outcome and is not a substitute for the restriction keys (tool policy, egress allowlist, folder allowlist). The app's own system prompt is never replaced or shortened by this key; in Code sessions it is added after Claude Code's own prompt and any `CLAUDE.md` instructions still apply. + + Read from the app's loaded configuration when a session starts; a changed value generally takes effect for sessions started after the next app launch. Leading and trailing whitespace is trimmed; an empty string is treated as unset. Maximum 3,000 characters; a longer value is rejected (the key is ignored with a configuration error) rather than truncated. Line breaks are preserved when the value is delivered as JSON, a bootstrap response, a `.mobileconfig` profile, or a `.reg` file; the Group Policy (ADMX) and Intune text box for this setting is single-line. + ## Connectors @@ -464,6 +545,7 @@ The reference below is generated from the configuration schema and grouped to ma | Managed MCP servers
`managedMcpServers` | `object[]` | MDM + Bootstrap | — | Org-pushed MCP servers: remote (HTTP/SSE) or local (stdio command). May embed bearer tokens. | | Allow persistent tool approvals
`mcpPersistentAlwaysAllowEnabled` | `boolean` | MDM + Bootstrap | `true` | Offer the persistent “Always allow” approval options for MCP tools. Disable to keep tool approvals per-call or session-scoped only. Defaults to `true`. | | Allow user-added MCP servers
`isLocalDevMcpEnabled` | `boolean` | MDM + Bootstrap | `true` | Local stdio servers added via the Developer settings. Remote servers come from the managed list above or organization plugins. Defaults to `true`. | +| MCP tool call timeout
`mcpToolTimeoutSec` | `integer` | MDM + Bootstrap | — | Per-call timeout for MCP tool calls, in seconds. Default 180 (3 minutes). Range: 60–3600. | @@ -524,6 +606,12 @@ The reference below is generated from the configuration schema and grouped to ma This key governs the chat and Cowork surfaces. Code sessions use a separate permission path this key does not cover — govern Code tool approvals with per-tool `toolPolicy` entries, whose `blocked` and `ask` values are forwarded there. + + + Sets the per-call timeout the agent applies to every MCP tool call; a call that runs longer fails with a timeout error the model can see. Cowork and chat sessions default to 180 seconds. Code sessions have no desktop-imposed MCP tool timeout today, so setting this key introduces one there as well. The desktop's own request deadlines toward MCP servers — the managed servers above and, where `isLocalDevMcpEnabled` permits them, user-added local servers — follow this value so they never cut a call short first; while the key is unset, calls to user-added local servers are additionally limited to 60 seconds by the desktop. Values outside 60–3600 are rejected at parse time (the error is listed in the diagnostics report) and the defaults apply. + + The timeout is global (there is no per-server or per-tool form), so size it for the slowest tool you need to complete: long-running tools on one server extend the window during which a stuck call on any server holds its turn. Cowork's built-in shell tool runs under the same cap: a single command's `timeout_ms` (itself limited to 600 seconds) cannot exceed this value. + ## Telemetry & updates @@ -723,18 +811,18 @@ The reference below is generated from the configuration schema and grouped to ma
- | Field | Type | Default | Description | - | ------------------------ | -------- | ------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - | `source` | `string` | — | Where the marketplace is fetched from: a GitHub repository (set repo), any Git remote (set url), or a hosted marketplace.json file (set url). One of: `github`, `git`, `url`. | - | `repo` | `string` | — | GitHub repository in owner/repo form. Case-insensitive. | - | `ref` | `string` | — | Commit SHA, branch, or tag. Leave empty to track the default branch. | - | `path` | `string` | — | Folder within the repository that contains the marketplace, when it isn’t at the root. | - | `expectedName` | `string` | — | Rejects the marketplace if its manifest name differs. | - | `installationPreference` | `enum` | — | Whether users install plugins themselves or get them automatically. One of: `available`, `auto_install`, `required`. | - | `credentialKind` | `enum` | — | How fetches authenticate: anonymously, with the user’s git credentials, via a helper executable, or as inference does (url sources the gateway hosts). One of: `anonymous`, `userGit`, `credentialHelper`, `inferenceCredential`. | - | `credentialHelper` | `string` | — | Executable that prints an access token for this marketplace. | - | `url` | `string` | — | HTTPS Git remote of the marketplace repository (git), or direct HTTPS URL of a hosted marketplace.json file (url). | - | `manifestSha256` | `string` | — | SHA-256 of the exact marketplace.json to accept. Required when Installation is auto\_install or required; a served manifest with any other digest is refused. | + | Field | Type | Default | Description | + | ------------------------ | -------- | ------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | + | `source` | `string` | — | Where the marketplace is fetched from: a GitHub repository (set repo), any Git remote (set url), or a hosted marketplace.json file (set url). One of: `github`, `git`, `url`. | + | `repo` | `string` | — | GitHub repository in owner/repo form. Case-insensitive. | + | `ref` | `string` | — | Commit SHA, branch, or tag. Leave empty to track the default branch. | + | `path` | `string` | — | Folder within the repository that contains the marketplace, when it isn’t at the root. | + | `expectedName` | `string` | — | Rejects the marketplace if its manifest name differs. | + | `installationPreference` | `enum` | — | Whether users install plugins themselves or get them automatically. One of: `available`, `auto_install`, `required`. | + | `credentialKind` | `enum` | — | How fetches authenticate: anonymously, with the user’s git credentials, via a helper executable, or as the app does to its gateway or bootstrap server (url). One of: `anonymous`, `userGit`, `credentialHelper`, `inferenceCredential`. | + | `credentialHelper` | `string` | — | Executable that prints an access token for this marketplace. | + | `url` | `string` | — | HTTPS Git remote of the marketplace repository (git), or direct HTTPS URL of a hosted marketplace.json file (url). | + | `manifestSha256` | `string` | — | SHA-256 of the exact marketplace.json to accept. Required when Installation is auto\_install or required; a served manifest with any other digest is refused. | @@ -769,7 +857,7 @@ The reference below is generated from the configuration schema and grouped to ma - Static headers sent on every request to the bootstrap config URL — for a service-account credential (`Authorization: Basic …`, an API key header) or a routing/tenant header. When either this or the headers helper script is set and no separate `bootstrapOidc` provider is configured, the app treats the headers as sufficient auth and does not require a per-user sign-in for the bootstrap fetch. Header values are masked in diagnostics and telemetry. For a rotating token, use the headers helper script instead. + Static headers sent on every request to the bootstrap config URL — for a service-account credential (`Authorization: Basic …`, an API key header) or a routing/tenant header. When either this or the headers helper script is set and no separate `bootstrapOidc` provider is configured, the app treats the headers as sufficient auth and does not require a per-user sign-in for the bootstrap fetch. These headers (and the helper script's below) also accompany requests to a plugin marketplace this server hosts on its own origin (`allowedPluginMarketplaces` with `credentialKind: "inferenceCredential"`). Header values are masked in diagnostics and telemetry. For a rotating token, use the headers helper script instead. diff --git a/content/en/docs/claude-code/amazon-bedrock.md b/content/en/docs/claude-code/amazon-bedrock.md index e901e15cd..432488d94 100644 --- a/content/en/docs/claude-code/amazon-bedrock.md +++ b/content/en/docs/claude-code/amazon-bedrock.md @@ -187,6 +187,8 @@ These two settings have different trigger conditions: * **`awsAuthRefresh`**: runs only when Claude Code detects that your AWS credentials are expired, either locally based on their timestamp or when the API returns a credential error, then retries the request with refreshed credentials. * **`awsCredentialExport`**: runs at session start and on each credential reload, even when the credentials in your AWS default credential provider chain are still valid. Use this when your Amazon Bedrock account requires cross-account credentials that differ from the ones the default provider chain would resolve. +Before running the `awsAuthRefresh` command, Claude Code makes an STS `GetCallerIdentity` call to confirm that your credentials are actually expired, and skips the command when they still work. Claude Code sends this check through your [proxy configuration](/docs/en/network-config#proxy-configuration), honoring `HTTPS_PROXY` and `NO_PROXY`. Before v2.1.239, Claude Code sent this check directly and hung at startup on networks that only allow egress through a proxy. + ##### Example configuration ```json theme={null} @@ -571,6 +573,8 @@ Before v2.1.208, the same misconfiguration surfaced as `API Error: Truncated eve To fix it, configure the gateway to pass the `InvokeModelWithResponseStream` response body and its `Content-Type` header through unmodified. If the gateway rewrites only the header and passes the binary body through intact, set [`CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD=1`](/docs/en/env-vars) to skip the check until the gateway is fixed. With the check off, a response body that was transformed fails with `Truncated event message received` again. +When a successful streaming response arrives with a missing or empty `Content-Type` header, Claude Code decodes the body as the binary event-stream format. Amazon Bedrock always sends the header, so a missing header means an intermediary stripped it. If your proxy strips the header and also re-emits the body as server-sent events, set [`CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT=1`](/docs/en/env-vars) so Claude Code reads the body as server-sent events instead. + ### Zero token counts in /context The `/context` command counts tokens for each tool group by sending the tool schemas to the Amazon Bedrock count-tokens API. On Claude Code versions before v2.1.196, Amazon Bedrock rejected that request because the schemas carried fields its count-tokens API doesn't accept, so every tool group showed 0 tokens. Other rows in the breakdown, such as messages and memory files, aren't affected. diff --git a/content/en/docs/claude-code/artifacts.md b/content/en/docs/claude-code/artifacts.md index aeeadfdf4..6b87f6a48 100644 --- a/content/en/docs/claude-code/artifacts.md +++ b/content/en/docs/claude-code/artifacts.md @@ -110,7 +110,7 @@ Read the comments on https://claude.ai/code/artifact/5fbea6f3-... and make the c If Claude tells you it can't read comments, check three things: * You're running Claude Code v2.1.221 or later. -* You're not in your first session since you installed Claude Code or upgraded from a version before v2.1.221. In that [first session after an install or upgrade](/docs/en/env-vars#first-session-after-an-install-or-upgrade), Claude can't read comments yet; start a new session and ask again. +* You're not in your first session since you installed Claude Code or upgraded from a version before v2.1.221. In that [first session after an install or upgrade](/docs/en/env-vars#first-session-after-an-install-or-upgrade), Claude might not be able to read comments yet; start a new session and ask again. * You haven't turned feature-flag fetching off. If you set `DISABLE_GROWTHBOOK`, `DISABLE_TELEMETRY`, or `DO_NOT_TRACK`, also set [`CLAUDE_CODE_ARTIFACT_COMMENTS=1`](/docs/en/env-vars#features-that-need-feature-flag-fetching) so Claude can read comments without fetching flags. ### Let Claude reply to comments on its own diff --git a/content/en/docs/claude-code/auto-mode-config.md b/content/en/docs/claude-code/auto-mode-config.md index 61a9cac2c..23c805154 100644 --- a/content/en/docs/claude-code/auto-mode-config.md +++ b/content/en/docs/claude-code/auto-mode-config.md @@ -23,6 +23,7 @@ This page covers how to: * [Define trusted infrastructure](#define-trusted-infrastructure) with `autoMode.environment` * [Generate environment entries](#generate-environment-entries) with `/auto-mode-setup` * [Override the block and allow rules](#override-the-block-and-allow-rules) when the defaults don't fit your pipeline +* [Edit rules from `/permissions`](#edit-rules-from-permissions) without opening a settings file * [Route all shell commands through the classifier](#route-all-shell-commands-through-the-classifier) with `autoMode.classifyAllShell` * [Inspect your effective config](#inspect-the-defaults-and-your-effective-config) with the `claude auto-mode` subcommands * [Review denials](#review-denials) so you know what to add next @@ -273,6 +274,18 @@ Each section is evaluated independently, so setting `environment` alone leaves t Only omit `"$defaults"` when you intend to take full ownership of the list. To do that safely, run `claude auto-mode defaults` to print the built-in rules, copy them into your settings file, then review each rule against your own pipeline and risk tolerance. +

+ Edit rules from `/permissions` +

+ +To view and edit classifier rules without opening a settings file, run [`/permissions`](/docs/en/permissions#manage-permissions) and select the **Auto mode** tab. The tab requires Claude Code v2.1.246 or later, and it appears only when [auto mode is available](/docs/en/permission-modes#eliminate-prompts-with-auto-mode) to your session. + +The tab lists the `allow`, `soft_deny`, `hard_deny`, and `environment` entries from each of the [scopes the classifier reads](#where-the-classifier-reads-configuration), and shows whether the built-in rules are in effect for each section. Claude Code shows entries from [managed settings](/docs/en/server-managed-settings) or the `--settings` flag as read-only, and saves every change you make on the tab to `~/.claude/settings.json`. From the tab you can: + +* Add, edit, or delete rules in the `allow`, `soft_deny`, and `hard_deny` sections. When you add the first rule to a section, Claude Code also inserts `"$defaults"` so the [built-in rules](#override-the-block-and-allow-rules) stay in effect. +* Turn the built-in rules for `allow`, `soft_deny`, or `hard_deny` off or back on. Claude Code records the choice by adding or removing `"$defaults"` in your list for that section, so a section needs at least one rule of your own before you can turn its built-in rules off. +* Edit the `environment` entries as one document in your editor. If you haven't configured any `environment` entries yet, Claude Code first asks whether to replace the built-in environment, then opens the editor on the full built-in text. When you save, Claude Code replaces your `autoMode.environment` array with the document. Include the `"$defaults"` line to [keep the built-in entries](#define-trusted-infrastructure). + ## Route all shell commands through the classifier By default, narrow Bash and PowerShell allow rules such as `Bash(npm test)` stay in effect in auto mode, and Claude Code resolves them before the classifier runs. Claude Code suspends only the broad rules that grant arbitrary code execution, such as `Bash(*)` or wildcarded interpreters, together with every rule that names [`Monitor`](/docs/en/tools-reference#monitor-tool), because Monitor commands run through the shell. This means a narrow rule can still let a destructive argument through without the classifier seeing it, for example a script path or flag the rule's prefix didn't anticipate. @@ -359,12 +372,14 @@ When the classifier produces [no verdict on the action](/docs/en/errors#auto-mod ### Fix a denial with an allow rule, an environment entry, or a retry -Claude Code shows the blocked tool call wherever the denial appears, including the transcript, the denial notification, and the **Recently denied** tab. Pick the fix from what the call was trying to reach or do: +Claude Code shows the blocked tool call wherever the denial appears, including the transcript and the **Recently denied** tab. Pick the fix from what the call was trying to reach or do: * A destination Claude needs throughout the task, such as a package registry, an internal domain, or a repository host: add it to `autoMode.environment`. * A command you want to run without review from now on: add an `allow` rule. * A one-off action you did intend: state that intent in your next message and let Claude retry. +You can add the environment entry or `allow` rule from the `/permissions` dialog's [**Auto mode** tab](#edit-rules-from-permissions). + The reason shown with the call is the fixed text `Blocked by classifier` in most sessions, in Claude Code v2.1.208 and later: the classifier scores each action on an internal severity scale rather than writing an explanation. Some sessions run a classifier model that writes a short explanation instead, in v2.1.193 and later; when one appears, treat it as a hint about which destination or intent the classifier was missing. Claude Code selects the classifier model, so which reason you see isn't something you configure. ### Fix repeated denials diff --git a/content/en/docs/claude-code/changelog.md b/content/en/docs/claude-code/changelog.md index 0d2618d31..dfb814a86 100644 --- a/content/en/docs/claude-code/changelog.md +++ b/content/en/docs/claude-code/changelog.md @@ -10,6 +10,70 @@ This page is generated from the [CHANGELOG.md on GitHub](https://github.com/anth Run `claude --version` to check your installed version. + + * Added a startup warning for Bash allow rules with a wildcard before the subcommand (e.g. `Bash(git * main)`), since they also match options inserted before the subcommand + * Added an Auto mode tab to `/permissions` for viewing and editing auto mode classifier rules + * Added the turn's completion time to the end-of-turn duration line, e.g. `✻ Sautéed for 23s · done 6:05 PM` + * Fixed fullscreen mode showing a blank transcript after resizing the terminal and jumping to the bottom until the next keypress + * Fixed a severe transcript slowdown when a diff contained a very long single line (e.g. a base64 string); such lines now render truncated with a marker + * Fixed erratic fullscreen scrolling when positioned at an earlier message, including jump-to-bottom getting stuck mid-transcript + * Fixed background sessions failing to open after 45 seconds when Claude Code's starting directory had been deleted, the machine had slept, or the host is slow to start processes + * Fixed background sessions failing to open with "Couldn't start the background service … EACCES" when another Claude Code process was re-installing the npm package at that moment + * Fixed markdown rendering being disabled for a whole message when its first 500 characters contained no markdown, and for `+`/`N)` lists and setext headings + * Fixed MCP tool calls interrupted by an incoming message in headless/remote sessions being reported to the model as "completed with no output" instead of an explicit interrupted error + * Fixed MCP tool arguments being sent as JSON strings when the parameter's schema is empty (`{}`), instead of their real type + * Fixed a command interrupted mid-run showing as "Ran 1 shell command" with no sign it was cut + * Fixed pressing ← or running `/background` during a dynamic workflow restarting its finished subagents; it now asks first and says how many subagents would restart + * Fixed opening a just-started session in `claude agents` while its worker was still booting (common on Windows) stopping it with "was stopped while the respawn was in flight" + * Fixed `claude agents` listing a backgrounded named session twice; backgrounding the same conversation again now numbers the new row (e.g. `my-session (2)`) + * Fixed the background retention sweep removing git worktrees under `.claude/worktrees/` that you created yourself when an old background-session record pointed at them + * Fixed auto mode tool calls being denied as "temporarily unavailable" on very large sessions by scaling the safety-check deadline with prompt size + * Fixed the plugin cache creating duplicate SHA-named directories for the same plugin + * Fixed plugin skills whose frontmatter `name` already includes the `:` prefix showing it doubled in the slash menu (e.g. `/plugin:plugin:skill`) + * Fixed `claude plugin update` failing for an installed plugin given its bare name (only the fully-qualified name worked) + * Fixed plugin installation failing when `plugin.json` was saved with a UTF-8 byte-order mark (BOM) + * Fixed `/reload-plugins` reporting 0 skills for plugins that define skills under `skills/*/SKILL.md` + * Fixed hook error messages showing a literal `${CLAUDE_PLUGIN_ROOT}` instead of the resolved plugin path + * Fixed `/rename` replacing the theme's prompt border color (including a custom theme's `promptBorder`) with the default cyan; the border now keeps your theme's color unless you pick one with `/color` + * Fixed custom theme diff colors (`diffAdded`/`diffRemoved` and their dimmed variants) being ignored in diffs and the `/theme` preview + * Fixed a `keybindings.json` binding with an unknown action name silently deadening that key; it is now skipped so the default binding keeps working, and a warning is logged under `--debug` + * Fixed `/stats` activity heatmap showing each day's activity one cell off (Sunday's count under Monday) in timezones east of UTC + * Fixed `/fork` from an already-forked or backgrounded session starting the new session with an empty conversation + * Fixed prompts beginning with `/--` (e.g. Lean doc comments) being rejected as an unknown slash command instead of being sent to Claude + * Fixed the `@` file picker staying open after the typed text stopped matching a real path + * Fixed the status line's cost and duration resetting to zero after navigating to the agents view and back + * Fixed fullscreen mode moving keyboard focus onto the control under the pointer when you clicked the terminal window only to bring it back into focus + * Fixed path completion failing when the completion token or working directory contained a null byte + * Windows/macOS: Fixed headless sessions not cleaning up stale entries in `~/.claude/sessions` left by sessions that exited uncleanly + * Fixed the UI stopping with a render error on the first tool call when a third-party Anthropic-compatible endpoint (`ANTHROPIC_BASE_URL`) streams a `tool_use` block without an `id` + * Fixed the Write tool reporting "Out of memory" or freezing for a long time after overwriting a very large existing file, even though the file had been written + * Fixed `claude plugin install ` exiting silently (or hanging in a terminal) instead of reporting an error when `~/.claude/plugins/known_marketplaces.json` is empty or corrupted + * Fixed resumed sessions failing every turn with a 400 when the saved history contains tool blocks the Anthropic API does not accept (typically written by a third-party API proxy) + * Fixed `curl -fsSL https://claude.ai/install.sh | bash` failing with "Raw mode is not supported" for some Team/Enterprise users with server-managed settings + * Fixed sessions that ended in plan mode resuming outside plan mode in the VS Code extension, and in `claude -p --continue`/`--resume` with a permission prompt tool, when no permission mode was set + * Fixed the `Notification` hook not firing while the sandbox "Network request outside of sandbox" permission prompt is waiting + * Fixed Bash permission checks to always require approval for malformed commands with a dangling `&&` or `||` operator + * Fixed `--strict-mcp-config` sessions prompting to approve `.mcp.json` servers they would never load, which left background sessions waiting at startup + * Fixed telemetry and metrics requests to Anthropic carrying the API key configured for a third-party gateway (`ANTHROPIC_BASE_URL`); a credential is now only sent to its own host + * Fixed a visible API error on the first prompt after idle when `apiKeyHelper` returns short-lived JWTs: an expired cached token is now refreshed before sending, and 401/403 auth errors retry quietly + * Fixed memory growing with session length in the fullscreen and Ctrl+O transcript views: each rendered message row no longer retains a full copy of the transcript-wide tool lookups + * Fixed `/ultrareview` runs and cloud sessions launched at the same time from one repository (e.g. from several worktrees) sometimes starting with another launch's uncommitted changes + * Fixed the task progress count (e.g. `3/5`) shown for background cloud sessions such as `/autofix-pr` occasionally missing a task + * Fixed Remote Control sessions keeping their placeholder name in claude.ai and the Claude app until the second prompt; the auto-generated title now appears after the first prompt + * Fixed MCP tools marked `requiresUserInteraction` still offering "Yes, and don't ask again" in their permission prompt; the option wrote an allow rule the tool then ignored + * Fixed the self-hosted runner ending its live sessions or exiting when a work-poll response is malformed (e.g. an intercepting proxy's HTML page); it now retries the poll + * Improved `/cd`: the new directory's project settings, hooks, `.mcp.json` servers (behind the usual approval prompt), skills, and agents now take effect right after the move instead of on `--resume` + * Improved Bash tool latency on bash shells by replaying snapshot functions without a base64 subshell per function + * Improved subagent results: a subagent that stops at its `maxTurns` limit now returns its output marked as partial, with a hint to continue it via `SendMessage`, instead of appearing finished + * Improved non-interactive sessions (`-p`, SDK, cloud sessions) to automatically continue a response cut off mid-stream by a server error, connection loss, or stall instead of ending with an error + * Improved attribution of usage telemetry to your organization for workload identity federation sessions, events sent while `apiKeyHelper` runs at startup, and after a login token expired while idle + * Changed `/code-review` so Claude can also start it on its own on Bedrock, Vertex AI, and Foundry, through the Claude apps gateway, and when telemetry or non-essential traffic is disabled + * `/goal`: Changed idle sessions to start at most three check-ins on long-running background work per goal; your next message allows three more + * Changed `claude install` and `claude update` to defer a pending managed-settings consent prompt to the next interactive session instead of prompting mid-command + * Changed OpenTelemetry plugin events for plugins synced from claude.ai: `plugin_id_hash` now reflects the plugin's real marketplace, and `enabled_via` is `admin-install` for admin-installed plugins + * Fixed the command sandbox's filesystem configuration not respecting `--setting-sources` + + * Fixed a crash on startup on Linux distributions that ship glibc 2.44 (for example Arch Linux, CachyOS and Fedora Rawhide) diff --git a/content/en/docs/claude-code/code-review.md b/content/en/docs/claude-code/code-review.md index 3d8ebd178..6810a6a24 100644 --- a/content/en/docs/claude-code/code-review.md +++ b/content/en/docs/claude-code/code-review.md @@ -340,12 +340,6 @@ The review runs in the background by default; before v2.1.218, it ran inside you Claude can start `/code-review` on its own. Ask it to review your changes in plain language and it can run the skill without you typing the command, and a [scheduled task](/docs/en/scheduled-tasks) with `/code-review` as its prompt runs the review. -Exceptions include the following sessions, where `/code-review` runs only when you type it yourself and a scheduled `/code-review` reaches Claude as plain text instead of running the review: - -* **Cloud providers**: sessions on Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, or Microsoft Foundry, unless a host platform that embeds Claude Code sets [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/en/env-vars) -* **Claude apps gateway**: sessions that connect through the [Claude apps gateway](/docs/en/claude-apps-gateway) -* **Privacy environment variables**: sessions that opt out of telemetry or feature-flag fetching with [`DISABLE_TELEMETRY`, `DO_NOT_TRACK`, `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`, or `DISABLE_GROWTHBOOK`](/docs/en/env-vars#variables) - A scheduled task never launches the [cloud review](#escalate-to-ultrareview), so schedule `/code-review` without the `ultra` argument. To stop both Claude and scheduled tasks from starting the review while keeping `/code-review` available for you to type, add a [`skillOverrides`](/docs/en/skills#override-skill-visibility-from-settings) entry to a [settings file](/docs/en/settings#where-settings-live) such as `~/.claude/settings.json`: @@ -358,7 +352,7 @@ To stop both Claude and scheduled tasks from starting the review while keeping ` } ``` -From v2.1.215 through v2.1.222, Claude never started `/code-review` on its own in any configuration. +Before v2.1.246, Claude started `/code-review` on its own only where a feature flag fetched from Anthropic turned it on. In [sessions that don't fetch feature flags](/docs/en/env-vars#features-that-need-feature-flag-fetching), `/code-review` ran only when you typed it, and a scheduled `/code-review` reached Claude as plain text. ### Escalate to ultrareview diff --git a/content/en/docs/claude-code/commands.md b/content/en/docs/claude-code/commands.md index 834f444e5..5d9dcdaff 100644 --- a/content/en/docs/claude-code/commands.md +++ b/content/en/docs/claude-code/commands.md @@ -34,7 +34,7 @@ Most commands are useful at a specific point in a session, from setting up a pro The table below lists all the commands included in Claude Code. Most are built-in commands whose behavior is coded into the CLI. Two kinds of entries are marked: -* **[Skill](/docs/en/skills#bundled-skills)**: a bundled skill. It works like skills you write yourself: a prompt handed to Claude, which Claude can also invoke automatically when relevant. +* **[Skill](/docs/en/skills#bundled-skills)**: a bundled skill. It works like skills you write yourself: a prompt handed to Claude. * `/verify` runs only when you invoke it. Before v2.1.215, Claude could also run `/verify` on its own. * **[Workflow](/docs/en/workflows#bundled-workflows)**: a bundled [dynamic workflow](/docs/en/workflows) that fans work out across many subagents and runs in the background. * `/deep-research` runs only when you invoke it. Before v2.1.218, Claude could also start it on its own. @@ -61,10 +61,10 @@ In the table below, `` indicates a required argument and `[arg]` indicates | `/branch [name]` | Create a branch of the current conversation at this point, so you can try a different direction without losing the conversation as it stands. Switches you into the branch and preserves the original, which you can return to with `/resume`. To run a copy as a separate [background session](/docs/en/agent-view) instead of switching into it, use `/fork`; to hand a side task to a [subagent](/docs/en/sub-agents) that reports back into this conversation, use `/subtask` | | `/btw [question]` | Ask a [side question](/docs/en/interactive-mode#side-questions-with-%2Fbtw) about the current session without adding to the conversation. If you run `/btw` without a question, Claude Code shows your most recent side question so you can browse earlier answers; if you haven't asked one yet, Claude Code prints a usage line. Before v2.1.212, `/btw` required a question | | `/bug [report]` | Report a bug or share your conversation. You choose how much session history to include and confirm on a consent screen before anything is sent. When you're signed in to Anthropic on a first-party connection, the report goes to Anthropic; on a third-party provider, or without Anthropic credentials, Claude Code writes the report to a [local archive under `~/.claude/feedback-bundles/`](/docs/en/data-usage#telemetry-services) that you forward yourself. In the [VS Code extension](/docs/en/vs-code#use-the-prompt-box), `/bug` opens the extension's own feedback dialog instead; requires Claude Code v2.1.229 or later. When you run it while Claude is responding, Claude Code opens the dialog immediately. Before v2.1.232, Claude Code queued the command until the turn finished. Alias: `/share`. Before v2.1.212, `/bug` and `/share` were aliases of `/feedback` | -| `/cd ` | Move this session to a new working directory, keeping the conversation and its prompt cache. Type a partial path to see matching directory suggestions; press `Tab` to accept one. Claude Code prompts you to [trust the workspace](/docs/en/permissions#project-allow-rules-and-workspace-trust) if you haven't worked in it before, and `--resume` [finds the moved session](/docs/en/sessions#resume-a-session) afterward. To grant access to an extra directory without moving the session, use `/add-dir`. Restrict or disable `/cd` targets with [`Cd` permission rules](/docs/en/permissions#cd). Requires Claude Code v2.1.169 or later | +| `/cd ` | Move this session to a new working directory, keeping the conversation and its prompt cache. Type a partial path to see matching directory suggestions; press `Tab` to accept one. The suggestions require Claude Code v2.1.206 or later. Claude Code prompts you to [trust the workspace](/docs/en/permissions#project-allow-rules-and-workspace-trust) if you haven't worked in it before, and `--resume` [finds the moved session](/docs/en/sessions#resume-a-session) afterward. To grant access to an extra directory without moving the session, use `/add-dir`. Restrict or disable `/cd` targets with [`Cd` permission rules](/docs/en/permissions#cd). Requires Claude Code v2.1.169 or later | | `/chrome` | Configure [Claude in Chrome](/docs/en/chrome) settings | | `/claude-api [migrate\|upgrade\|managed-agents-onboard\|prompt-audit]` | **[Skill](/docs/en/skills#bundled-skills).** Load [Claude API](https://platform.claude.com/docs/en/api/overview) and Managed Agents reference material for your project's language. Also activates automatically when your code imports `anthropic` or `@anthropic-ai/sdk`. Run `migrate` to update existing Claude API code to a newer model; `upgrade` to move your project's Anthropic SDK dependency across a major version, currently the Python `anthropic` package from 0.x to 1.x; `managed-agents-onboard` for a walkthrough that creates a new Managed Agent; or `prompt-audit` to flag instructions written for older models in your prompts, skills, and tool descriptions and propose fixes as a diff. The `prompt-audit` subcommand requires Claude Code v2.1.221 or later, and `upgrade` requires v2.1.236 or later | -| `/clear [name]` | Start a new conversation with empty context. Pass a name to label the previous conversation in the `/resume` picker. To free up context while continuing the same conversation, use `/compact` instead. Resume the previous conversation with `/resume`, or, in the same Claude Code process, restore it from [the rewind menu's previous-session entry](/docs/en/checkpointing#rewind-past-a-cleared-conversation). Aliases: `/reset`, `/new` | +| `/clear [name]` | Start a new conversation with empty context. Pass a name to label the previous conversation in the `/resume` picker. To free up context while continuing the same conversation, use `/compact` instead. Resume the previous conversation with `/resume`, or, in the same Claude Code process, restore it from [the rewind menu's previous-session entry](/docs/en/checkpointing#rewind-past-a-cleared-conversation). The rewind entry requires Claude Code v2.1.191 or later. Aliases: `/reset`, `/new` | | `/code-review [low\|medium\|high\|xhigh\|max\|ultra] [--fix] [--comment] [pr#\|branch\|path]` | **[Skill](/docs/en/skills#bundled-skills).** Review the current diff, or a PR number, branch, or path you pass, for correctness bugs and cleanup opportunities. Pass `--fix` to apply findings, `--comment` to post them as inline GitHub PR comments, or `ultra` to run a deep [cloud review](/docs/en/ultrareview). With `ultra` on a `github.com` PR target, `--post` preselects [posting the finished findings to the PR](/docs/en/ultrareview#post-findings-to-the-pull-request) in the launch dialog. See [Review a diff locally](/docs/en/code-review#review-a-diff-locally) for the effort levels, targeting, and how it relates to `/simplify`. Alias: `/review` | | `/color [color\|default]` | Set the prompt bar color for the current session. Available colors: `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, `cyan`. Use `default` to reset, or run with no argument to pick a random color. When [Remote Control](/docs/en/remote-control) is connected, the color syncs to claude.ai/code. Also available in non-interactive mode (`-p`); requires Claude Code v2.1.205 or later | | `/compact [instructions]` | Free up context by summarizing the conversation so far. Optionally pass focus instructions for the summary. See [how compaction handles rules, skills, and memory files](/docs/en/context-window#what-survives-compaction) | @@ -108,7 +108,7 @@ In the table below, `` indicates a required argument and `[arg]` indicates | `/mobile` | Show QR code to download the Claude mobile app. Aliases: `/ios`, `/android` | | `/model [model]` | Switch the AI model and save it as your default for new sessions. For models that support it, use left/right arrows to [adjust effort level](/docs/en/model-config#adjust-effort-level). With no argument, opens a picker; press `s` on a row to switch for the current session only. See [when Claude Code asks you to confirm the switch](/docs/en/prompt-caching#switching-models). Once confirmed, the change applies without waiting for the current response to finish. Also available in non-interactive mode (`-p`) with a model argument instead of the picker, where it applies to the current session only and isn't saved as your default; requires Claude Code v2.1.205 or later | | `/passes` | Share a free week of Claude Code with friends. Only visible if your account is eligible | -| `/permissions` | Manage allow, ask, and deny rules for tool permissions. Opens an interactive dialog where you can view rules by scope, add or remove rules, manage working directories, and review [recent auto mode denials](/docs/en/auto-mode-config#review-denials). When you run it while Claude is responding, Claude Code opens the dialog immediately and applies your changes starting with Claude's next tool call in the same turn. Before v2.1.234, Claude Code queued the command until the turn finished. Alias: `/allowed-tools` | +| `/permissions` | Manage allow, ask, and deny rules for tool permissions. Opens an interactive dialog where you can view rules by scope, add or remove rules, manage working directories, and review [recent auto mode denials](/docs/en/auto-mode-config#review-denials). You can also view and edit [auto mode classifier rules](/docs/en/auto-mode-config#edit-rules-from-permissions) from the dialog's **Auto mode** tab. When you run it while Claude is responding, Claude Code opens the dialog immediately and applies your changes starting with Claude's next tool call in the same turn. Before v2.1.234, Claude Code queued the command until the turn finished. Alias: `/allowed-tools` | | `/plan [description]` | Enter plan mode directly from the prompt. Pass an optional description to enter plan mode and immediately start with that task, for example `/plan fix the auth bug` | | `/plugin [subcommand]` | Manage Claude Code [plugins](/docs/en/plugins). Run with no argument to open the plugin menu, or pass a subcommand such as `list`, `install`, `enable`, or `disable` to act directly. Claude Code can activate a plugin during the install; the [install summary](/docs/en/discover-plugins#install-plugins) tells you whether it did or whether to run `/reload-plugins` | | `/powerup` | Discover Claude Code features through quick interactive lessons with animated demos | @@ -135,7 +135,7 @@ In the table below, `` indicates a required argument and `[arg]` indicates | `/setup-bedrock` | Configure [Amazon Bedrock](/docs/en/amazon-bedrock) authentication, region, and model pins through an interactive wizard. [Hidden from the command menu](#how-the-command-menu-matches-what-you-type) until `CLAUDE_CODE_USE_BEDROCK=1` is set; type it in full. First-time Amazon Bedrock users can also access this wizard from the login screen | | `/setup-vertex` | Configure [Google Cloud's Agent Platform](/docs/en/google-vertex-ai) authentication, project, region, and model pins through an interactive wizard. [Hidden from the command menu](#how-the-command-menu-matches-what-you-type) until `CLAUDE_CODE_USE_VERTEX=1` is set; type it in full. First-time Google Cloud's Agent Platform users can also access this wizard from the login screen | | `/simplify [target]` | **[Skill](/docs/en/skills#bundled-skills).** Review the changed code for cleanup opportunities and apply the fixes. Four review [agents](/docs/en/sub-agents) run in parallel, covering reuse of existing helpers, simplification, efficiency, and whether the change is at the right level of abstraction. From v2.1.154, the review doesn't look for correctness bugs. Use `/code-review` to find bugs. On earlier versions, `/simplify` is equivalent to `/code-review --fix`. Pass a path or PR reference to review a specific target | -| `/skills` | List available [skills](/docs/en/skills). Type to filter the list by name. Press `t` to sort by token count. Press `Space` to [cycle a skill's visibility to Claude and the `/` menu](/docs/en/skills#override-skill-visibility-from-settings), then `Enter` to save | +| `/skills` | List available [skills](/docs/en/skills). Type to filter the list by name. Press `t` to sort by token count. Press `Space` to [cycle a skill's visibility to Claude and the `/` menu](/docs/en/skills#override-skill-visibility-from-settings) | | `/stats` | Alias for `/usage`. Opens on the Stats tab | | `/status` | Open the Settings interface on the Status tab, showing version, model, account, and connectivity. A `Session kind` row reads `background job · attached` or `background job · unattended` in a [background session](/docs/en/agent-view), depending on whether a terminal is attached, and `interactive` in any other session. Before v2.1.221, `/status` didn't show this row. Works while Claude is responding | | `/statusline` | Configure Claude Code's [status line](/docs/en/statusline). Describe what you want, or run without arguments to auto-configure from your shell prompt | @@ -163,8 +163,8 @@ In the table below, `` indicates a required argument and `[arg]` indicates Claude Code filters the `/` menu as you type. Each bullet below covers one thing you might notice while filtering: -* **Highlighting**: Claude Code highlights the top suggestion only when the letters after the `/` match a command's name or alias, from the start of the name or from a word within it, ignoring the `:`, `_`, and `-` separators. Typing `/adddir` highlights `/add-dir`, and typing `/new` highlights `/clear` through its alias. Press `Enter` to run the highlighted suggestion. -* **After a typo**: Claude Code highlights nothing. The close matches stay listed, and you can pick one with `Tab` or the arrow keys, but `Enter` submits your text as typed and reports [Unknown command](/docs/en/errors#unknown-command). +* **Highlighting**: Claude Code highlights the top suggestion only when the letters after the `/` match a command's name or alias, from the start of the name or from a word within it, ignoring the `:`, `_`, and `-` separators. Typing `/adddir` highlights `/add-dir`, and typing `/new` highlights `/clear` through its alias. Press `Enter` to run the highlighted suggestion. These highlighting rules require Claude Code v2.1.236 or later. +* **After a typo**: Claude Code highlights nothing. The close matches stay listed, and you can pick one with `Tab` or the arrow keys, but `Enter` submits your text as typed and reports [Unknown command](/docs/en/errors#unknown-command). Before v2.1.236, Claude Code ran the closest match when you pressed `Enter`. * **Commands that aren't available to you**: Claude Code leaves them out of the menu. When nothing matches, Claude Code shows `No commands match "/name"`. Most unavailable commands return [Unknown command](/docs/en/errors#unknown-command) when you submit them; a few, such as [`/schedule` on a Console API key](/docs/en/routines#schedule-returns-unknown-command), answer with their own availability message instead. * **Hidden commands**: Claude Code keeps a few available commands, such as `/heapdump`, out of the menu by design. A partial name never brings a hidden command into the menu: if the partial matches nothing visible, Claude Code shows the same no-match message. Claude Code lists the command only once you've typed its full name, and submitting the full name runs it. diff --git a/content/en/docs/claude-code/costs.md b/content/en/docs/claude-code/costs.md index 304492fe8..3ff05fb1b 100644 --- a/content/en/docs/claude-code/costs.md +++ b/content/en/docs/claude-code/costs.md @@ -298,7 +298,7 @@ A session that has been open for hours can use far more of your plan limits than * **Cache misses**: your first message after a break longer than the [cache lifetime](/docs/en/prompt-caching#cache-lifetime) misses the cache and reprocesses your full context. The lifetime is an hour on a subscription and drops to five minutes once you're drawing on [usage credits](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans); on an API key or cloud provider, it's five minutes by default. To keep the one-hour lifetime while drawing on usage credits, [choose the TTL yourself](/docs/en/prompt-caching#choose-the-ttl-yourself). On Pro and Max plans, when you resume a large session after a long break, Claude Code [offers to resume from a summary](/docs/en/sessions#resume-from-a-summary) so later requests don't carry the full history * **Scheduled tasks**: a [scheduled task](/docs/en/scheduled-tasks) fires on its interval even while the session is idle, sending your full context each time * **Cross-session messages**: Claude Code delivers a [message from another of your sessions](/docs/en/cross-session-messaging) as a new turn when this session sits idle, sending your full context each time. To hold inbound messages instead of delivering them, set [`crossSessionInbound`](/docs/en/settings-reference#crosssessioninbound) to `hold` -* **Goal check-ins**: while background work keeps an active [goal](/docs/en/goal) waiting, Claude Code [asks Claude to check on that work](/docs/en/goal#background-work-defers-evaluation) even when the session sits idle, starting a new turn that sends your full context. To turn check-ins off, set [`CLAUDE_CODE_GOAL_CHECKIN_MINUTES`](/docs/en/env-vars) to `0`. Idle check-ins require Claude Code v2.1.236 or later +* **Goal check-ins**: while background work keeps an active [goal](/docs/en/goal) waiting, Claude Code [asks Claude to check on that work](/docs/en/goal#background-work-defers-evaluation) even when the session sits idle, starting a new turn that sends your full context. Claude Code starts at most three idle check-ins per goal between your prompts. Before v2.1.246, idle check-ins were uncapped. To turn check-ins off, set [`CLAUDE_CODE_GOAL_CHECKIN_MINUTES`](/docs/en/env-vars) to `0`. Idle check-ins require Claude Code v2.1.236 or later * **Agent teammates**: each active [teammate](#agent-team-token-costs) keeps consuming tokens until it exits * **Compaction**: `/compact` reads the conversation it summarizes, so [compacting a large context](/docs/en/prompt-caching#compacting-the-conversation) is itself a large request. When you want a fresh start instead of continuity, `/clear` costs nothing diff --git a/content/en/docs/claude-code/desktop-changelog.md b/content/en/docs/claude-code/desktop-changelog.md index 641b09072..1adf6eaa0 100644 --- a/content/en/docs/claude-code/desktop-changelog.md +++ b/content/en/docs/claude-code/desktop-changelog.md @@ -639,6 +639,10 @@ To set environment variables for local sessions and dev servers on any platform, [Extended thinking](/docs/en/model-config#extended-thinking) is enabled by default, which improves performance on complex reasoning tasks but uses additional tokens. On the Anthropic API, set `MAX_THINKING_TOKENS` to `0` in the local environment editor to turn thinking off; this has no effect on Fable 5, which always uses extended thinking. On models with [adaptive reasoning](/docs/en/model-config#adjust-effort-level), any other `MAX_THINKING_TOKENS` value is ignored because adaptive reasoning controls thinking depth instead. On Opus 4.6 and Sonnet 4.6, set `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` to `1` to use a fixed thinking budget; Fable 5, Sonnet 5, and Opus 4.7 and later always use adaptive reasoning and have no fixed-budget mode. +#### Local sessions on managed devices + +Your administrator can turn off local sessions with the [`disableDesktopLocalSessions` managed setting](#managed-settings). When they have, **Local** stays in the environment dropdown but is grayed out and can't be selected, with a tooltip saying your organization turned it off, and on Windows the [WSL](/docs/en/desktop-wsl) entry, whose availability on managed devices is [governed separately](/docs/en/admin-setup#wsl-sessions-in-claude-code-desktop), is grayed out the same way. New sessions default to the first SSH connection if one is configured, and Desktop shows a message that local sessions aren't available on this device if you try to continue an existing one. Choose an [SSH](#ssh-sessions) or [cloud](#cloud-sessions) environment instead, or contact your IT team. + ### Cloud sessions Cloud sessions continue in the background even if you close the app. Usage counts toward your [subscription plan limits](/docs/en/costs) with no separate compute charges. @@ -725,13 +729,14 @@ Managed settings override project and user settings and apply to Claude Code ses | `disableBrowserExternalNavigation` | set to `true` to turn off external browsing in the [Browser pane](#browse-external-sites) entirely. Neither users nor Claude can navigate to external sites, and localhost dev server previews are unaffected. The value must be the JSON boolean `true`; the string `"true"` is ignored. | | `sshConfigs` | pre-configure [SSH connections](#pre-configure-ssh-connections-for-your-team) that appear in the environment dropdown. Users cannot edit or delete managed connections. | | `sshHostAllowlist` | restrict [SSH sessions](#restrict-which-ssh-hosts-users-can-connect-to) to hosts whose resolved hostname matches one of these patterns. An empty array disables SSH sessions. Read from managed settings only. | +| `disableDesktopLocalSessions` | set to `true` to turn off [Code sessions that run on the device](#local-sessions-on-managed-devices), leaving SSH sessions to other hosts and cloud sessions available. The value must be the JSON boolean `true`. Read from managed settings only. | | `managedMcpServers` | push MCP server configurations to all users. Available in third-party (3P) Desktop deployments only. In each entry, set a transport of `"http"`, `"sse"`, or `"stdio"`, connection details, and optionally a `toolPolicy` map to restrict which of that server's tools users can invoke. Deliver it through the managed settings file, MDM, or a Claude apps gateway policy's [`desktop` block](/docs/en/claude-apps-gateway-config#claude-desktop-overlay), since 3P deployments don't receive admin-console settings. To deliver it through the gateway, you need Claude Code v2.1.232 or later on the gateway server. | Which managed settings reach a Desktop session depends on where that session runs. Model restrictions such as [`availableModels`](/docs/en/model-config#restrict-model-selection) are enforced in Desktop's Claude Code sessions the same way as in the terminal CLI; see [surface coverage](/docs/en/model-config#surface-coverage). * **Local sessions on this machine**: a managed settings file deployed to disk applies. Managed settings pushed remotely through the admin console also reach these sessions on Anthropic's API when the session authenticates with an [eligible login or key](/docs/en/server-managed-settings#platform-availability), following the same [settings precedence](/docs/en/settings#settings-precedence) as the terminal CLI. * **[Cloud sessions](#cloud-sessions)**: receive [server-managed settings](/docs/en/server-managed-settings); device-deployed files don't reach them, because they run on Anthropic-managed VMs. Sessions routed to a [self-hosted environment](/docs/en/self-hosted-environments) fall back to the managed settings file in the runner image when server-managed settings deliver no keys, per [settings precedence](/docs/en/server-managed-settings#settings-precedence), apart from the [keys Claude Code reads from every admin source](/docs/en/managed-settings#keys-read-from-every-admin-source). -* **[SSH sessions](#ssh-sessions)**: the session reads the managed settings file from the remote host. Desktop itself reads `sshConfigs` and `sshHostAllowlist` from the local machine's managed settings when creating the connection. +* **[SSH sessions](#ssh-sessions)**: the session reads the managed settings file from the remote host. Desktop itself reads `sshConfigs`, `sshHostAllowlist`, and `disableDesktopLocalSessions` from the local machine's managed settings. `permissions.disableBypassPermissionsMode` and `disableAutoMode` also work in user and project settings, but placing them in managed settings prevents users from overriding them. diff --git a/content/en/docs/claude-code/desktop-linux.md b/content/en/docs/claude-code/desktop-linux.md index ab5475f36..09f5709e3 100644 --- a/content/en/docs/claude-code/desktop-linux.md +++ b/content/en/docs/claude-code/desktop-linux.md @@ -17,7 +17,17 @@ The desktop app on Linux gives you the same Chat, Cowork, and Claude Code experi * Ubuntu 22.04 or later, or Debian 12 or later * x86\_64 or arm64 -Other Debian-based distributions that meet these requirements may work but aren't officially tested. +Other Debian-based distributions that meet these requirements may work but aren't officially tested. On distributions that aren't Debian-based, such as Fedora or Arch, run the [CLI](/docs/en/setup#system-requirements) instead. If you work on Windows with WSL 2, install the Windows desktop app and run sessions inside your distribution; see [Claude Code Desktop in WSL](/docs/en/desktop-wsl). + +### Cowork requirements + +Cowork is the desktop tab for [Dispatch and longer agentic work](https://claude.com/docs/cowork/overview). On Linux, Cowork runs those tasks in a virtual machine that the desktop app hosts with QEMU and KVM. To use Cowork, your machine needs: + +* **Hardware virtualization**: turned on in your firmware settings. Without it, the Cowork tab reports "Cowork requires hardware virtualization (KVM)". +* **QEMU and UEFI firmware**: `qemu-system-x86`, `ovmf`, and `virtiofsd` on x86\_64, or `qemu-system-arm`, `qemu-efi-aarch64`, and `virtiofsd` on arm64. `apt install claude-desktop` installs them by default as recommended packages. If you installed with `--no-install-recommends`, or your system is a minimal image that skips recommended packages, the Cowork tab reports "Cowork requires QEMU" and shows the `apt install` command to run. Ubuntu 22.04 has no `virtiofsd` package; the app uses a bundled copy there. +* **Access to `/dev/kvm`**: add your user to the `kvm` group with `sudo usermod -aG kvm $USER`, then log out and back in. Some desktop environments grant the logged-in user access to `/dev/kvm` without the group, but Cowork also needs `/dev/vhost-vsock`, which only `kvm` group members can open. Join the group even if `/dev/kvm` already works for you. + +The app checks these requirements once at launch: restart it after installing packages, and log out and back in after joining the group. If your kernel has no module directory under `/lib/modules`, which is common on ChromeOS and in container-based Linux environments, the Cowork tab reports that the kernel doesn't include the virtualization support Cowork needs and that it can't be added manually. ## Install @@ -37,7 +47,7 @@ Install from Anthropic's apt repository so that updates arrive through your syst sudo curl -fsSLo /usr/share/keyrings/claude-desktop-archive-keyring.asc https://downloads.claude.ai/claude-desktop/key.asc ``` - If this download fails, `apt update` later fails with `NO_PUBKEY BAA929FF1A7ECACE`. Confirm the key downloaded and belongs to Anthropic before continuing: + The command prints nothing when it succeeds and a `curl:` error when it doesn't. A missing or wrong key makes `apt update` fail later with `NO_PUBKEY BAA929FF1A7ECACE`, so confirm the key downloaded and belongs to Anthropic before continuing: ```bash theme={null} gpg --show-keys /usr/share/keyrings/claude-desktop-archive-keyring.asc @@ -115,12 +125,33 @@ sudo rm /etc/apt/sources.list.d/claude-desktop.list If `sudo apt install claude-desktop` fails with `E: Unable to locate package claude-desktop`, apt didn't find the repository you added. Check the following: +* Run `sudo apt update` after adding the repository. `apt install` on its own doesn't see a repository you added after the last time you ran `apt update`. * Confirm the repository entry was written. `cat /etc/apt/sources.list.d/claude-desktop.list` should show the `deb` line from the [Add Anthropic's apt repository](#install) step. If the file is empty or missing, run that step again. * Confirm your architecture is supported. `dpkg --print-architecture` should print `amd64` or `arm64`. The repository doesn't publish packages for other architectures. * Run `sudo apt update` again and check its output for errors related to `downloads.claude.ai`. A network or key error there means the repository was added but couldn't be reached or verified. If the repository is in place and reachable and the package is still not found, [install from a downloaded file](#install-from-a-downloaded-file) instead. +### Unmet dependencies + +If `apt` stops with `The following packages have unmet dependencies` or `Unsatisfied dependencies`, read which dependency it names: + +* `libc6 (>= 2.34)`: your distribution is older than the package supports. Ubuntu 20.04 ships `libc6` 2.31. Upgrade to Ubuntu 22.04 or later, or Debian 12 or later. +* All missing dependencies show `not installable` with an `:amd64` or `:arm64` suffix: you downloaded the `.deb` for a different architecture than your machine's. Run `dpkg --print-architecture` and download the matching `.deb`, or [install from the apt repository](#install), which selects the package for your architecture. + +### Running as root without --no-sandbox is not supported + +If `claude-desktop` exits with this message, you launched it as root. Log in as a regular user and launch it from there. + +### Cowork isn't available + +If the Cowork tab shows one of these messages, fix the requirement it names, then restart the app: + +* **Cowork requires QEMU**: install the [QEMU and UEFI firmware packages](#cowork-requirements) the message lists. +* **Cowork requires hardware virtualization (KVM)**: turn on [hardware virtualization](#cowork-requirements) in your firmware settings. +* **Claude doesn't have permission to use virtualization (/dev/kvm)**: add your user to the [`kvm` group](#cowork-requirements), then log out and back in. +* **Cowork requires the `vhost_vsock` kernel module**: run `sudo modprobe vhost_vsock`, then restart the app. That loads the module for the current boot only. To load it on every boot, run `echo vhost_vsock | sudo tee /etc/modules-load.d/vhost_vsock.conf`. + ## What's not in the Linux beta yet * **Computer Use**: [app and screen control](/docs/en/desktop#let-claude-use-your-computer) isn't available on Linux. diff --git a/content/en/docs/claude-code/desktop.md b/content/en/docs/claude-code/desktop.md index 641b09072..1adf6eaa0 100644 --- a/content/en/docs/claude-code/desktop.md +++ b/content/en/docs/claude-code/desktop.md @@ -639,6 +639,10 @@ To set environment variables for local sessions and dev servers on any platform, [Extended thinking](/docs/en/model-config#extended-thinking) is enabled by default, which improves performance on complex reasoning tasks but uses additional tokens. On the Anthropic API, set `MAX_THINKING_TOKENS` to `0` in the local environment editor to turn thinking off; this has no effect on Fable 5, which always uses extended thinking. On models with [adaptive reasoning](/docs/en/model-config#adjust-effort-level), any other `MAX_THINKING_TOKENS` value is ignored because adaptive reasoning controls thinking depth instead. On Opus 4.6 and Sonnet 4.6, set `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` to `1` to use a fixed thinking budget; Fable 5, Sonnet 5, and Opus 4.7 and later always use adaptive reasoning and have no fixed-budget mode. +#### Local sessions on managed devices + +Your administrator can turn off local sessions with the [`disableDesktopLocalSessions` managed setting](#managed-settings). When they have, **Local** stays in the environment dropdown but is grayed out and can't be selected, with a tooltip saying your organization turned it off, and on Windows the [WSL](/docs/en/desktop-wsl) entry, whose availability on managed devices is [governed separately](/docs/en/admin-setup#wsl-sessions-in-claude-code-desktop), is grayed out the same way. New sessions default to the first SSH connection if one is configured, and Desktop shows a message that local sessions aren't available on this device if you try to continue an existing one. Choose an [SSH](#ssh-sessions) or [cloud](#cloud-sessions) environment instead, or contact your IT team. + ### Cloud sessions Cloud sessions continue in the background even if you close the app. Usage counts toward your [subscription plan limits](/docs/en/costs) with no separate compute charges. @@ -725,13 +729,14 @@ Managed settings override project and user settings and apply to Claude Code ses | `disableBrowserExternalNavigation` | set to `true` to turn off external browsing in the [Browser pane](#browse-external-sites) entirely. Neither users nor Claude can navigate to external sites, and localhost dev server previews are unaffected. The value must be the JSON boolean `true`; the string `"true"` is ignored. | | `sshConfigs` | pre-configure [SSH connections](#pre-configure-ssh-connections-for-your-team) that appear in the environment dropdown. Users cannot edit or delete managed connections. | | `sshHostAllowlist` | restrict [SSH sessions](#restrict-which-ssh-hosts-users-can-connect-to) to hosts whose resolved hostname matches one of these patterns. An empty array disables SSH sessions. Read from managed settings only. | +| `disableDesktopLocalSessions` | set to `true` to turn off [Code sessions that run on the device](#local-sessions-on-managed-devices), leaving SSH sessions to other hosts and cloud sessions available. The value must be the JSON boolean `true`. Read from managed settings only. | | `managedMcpServers` | push MCP server configurations to all users. Available in third-party (3P) Desktop deployments only. In each entry, set a transport of `"http"`, `"sse"`, or `"stdio"`, connection details, and optionally a `toolPolicy` map to restrict which of that server's tools users can invoke. Deliver it through the managed settings file, MDM, or a Claude apps gateway policy's [`desktop` block](/docs/en/claude-apps-gateway-config#claude-desktop-overlay), since 3P deployments don't receive admin-console settings. To deliver it through the gateway, you need Claude Code v2.1.232 or later on the gateway server. | Which managed settings reach a Desktop session depends on where that session runs. Model restrictions such as [`availableModels`](/docs/en/model-config#restrict-model-selection) are enforced in Desktop's Claude Code sessions the same way as in the terminal CLI; see [surface coverage](/docs/en/model-config#surface-coverage). * **Local sessions on this machine**: a managed settings file deployed to disk applies. Managed settings pushed remotely through the admin console also reach these sessions on Anthropic's API when the session authenticates with an [eligible login or key](/docs/en/server-managed-settings#platform-availability), following the same [settings precedence](/docs/en/settings#settings-precedence) as the terminal CLI. * **[Cloud sessions](#cloud-sessions)**: receive [server-managed settings](/docs/en/server-managed-settings); device-deployed files don't reach them, because they run on Anthropic-managed VMs. Sessions routed to a [self-hosted environment](/docs/en/self-hosted-environments) fall back to the managed settings file in the runner image when server-managed settings deliver no keys, per [settings precedence](/docs/en/server-managed-settings#settings-precedence), apart from the [keys Claude Code reads from every admin source](/docs/en/managed-settings#keys-read-from-every-admin-source). -* **[SSH sessions](#ssh-sessions)**: the session reads the managed settings file from the remote host. Desktop itself reads `sshConfigs` and `sshHostAllowlist` from the local machine's managed settings when creating the connection. +* **[SSH sessions](#ssh-sessions)**: the session reads the managed settings file from the remote host. Desktop itself reads `sshConfigs`, `sshHostAllowlist`, and `disableDesktopLocalSessions` from the local machine's managed settings. `permissions.disableBypassPermissionsMode` and `disableAutoMode` also work in user and project settings, but placing them in managed settings prevents users from overriding them. diff --git a/content/en/docs/claude-code/env-vars.md b/content/en/docs/claude-code/env-vars.md index de67fa448..9b133d411 100644 --- a/content/en/docs/claude-code/env-vars.md +++ b/content/en/docs/claude-code/env-vars.md @@ -232,6 +232,7 @@ Numeric variables such as timeouts, token budgets, and retry counts accept scien | `CLAUDE_CODE_DISABLE_ATTACHMENTS` | Set to `1` to disable attachment processing. File mentions with `@` syntax are sent as plain text instead of being expanded into file content | | `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | Set to `1` to disable [auto memory](/docs/en/memory#auto-memory). Set to `0` to force auto memory on even when `--bare` mode or [`autoMemoryEnabled: false`](/docs/en/settings-reference#automemoryenabled) would otherwise disable it. When disabled, Claude does not create or load auto memory files | | `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | Set to `1` to disable all background task functionality, including the `run_in_background` parameter on Bash and subagent tools, auto-backgrounding, and the Ctrl+B shortcut | +| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | Set to `1` to stop Claude Code from treating an [Amazon Bedrock](/docs/en/amazon-bedrock) streaming response with a missing or empty `Content-Type` header as the binary `application/vnd.amazon.eventstream` format. Amazon Bedrock always sends that header, so when it's absent, a [proxy stripped it](/docs/en/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy) and by default Claude Code decodes the body as the binary format anyway. Set this variable only when the proxy strips the header and also re-emits the body as server-sent events; Claude Code then reads the body as server-sent events instead. Requires Claude Code v2.1.239 or later | | `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | Set to `1` to skip the check that an [Amazon Bedrock](/docs/en/amazon-bedrock) streaming response carries the `application/vnd.amazon.eventstream` content-type. Without this variable, a response with a different content-type fails with an error naming that content-type, which means a [gateway or proxy is transforming the response](/docs/en/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy). Set it only when the gateway rewrites the `Content-Type` header but passes the binary event-stream body through unmodified; if the body itself was transformed, requests fail with `Truncated event message received` instead. Requires Claude Code v2.1.208 or later | | `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | Set to `1` to stop a [background session's](/docs/en/agent-view) running background shell commands, dynamic workflows, and, as of v2.1.198, background subagents when the [supervisor](/docs/en/agent-view#the-supervisor-process) stops, restarts, or updates that session's process, instead of handing them to the session's next process. Affects only that handoff: backgrounding a session with `←` or [`/background`](/docs/en/agent-view#from-inside-a-session) still carries in-flight work over, and `CLAUDE_DISABLE_ADOPT` turns off both. Requires Claude Code v2.1.196 or later | | `CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP` | Set to `1` to stop Claude Code from terminating [background shell commands](/docs/en/interactive-mode#background-bash-commands) when the operating system reports memory pressure. By default, on macOS and Linux, Claude Code terminates a background shell started in the main session on a memory-pressure signal once the session has been idle for 30 minutes and no turn or subagent is running. Windows has no memory-pressure signal, so this variable has no effect there. Requires Claude Code v2.1.193 or later | @@ -479,7 +480,9 @@ Standard OpenTelemetry exporter variables (`OTEL_METRICS_EXPORTER`, `OTEL_LOGS_E ## Features that need feature-flag fetching -Claude Code turns some features on through feature flags it fetches from Anthropic. You turn flag fetching off for a session by setting `DISABLE_GROWTHBOOK`, `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, or `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`. Each variable's row says which values do that. With fetching off, you can't: +Claude Code turns some features on through feature flags it fetches from Anthropic. You turn flag fetching off for a session by setting `DISABLE_GROWTHBOOK`, `DISABLE_TELEMETRY`, `DO_NOT_TRACK`, or `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`. Each variable's row says which values do that. + +Claude Code also leaves fetching off when you connect through a [Claude apps gateway](/docs/en/claude-apps-gateway). On Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, or Microsoft Foundry, Claude Code leaves fetching off unless a host platform that embeds Claude Code sets `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`. With fetching off, you can't: * [Start sessions in auto mode by default](/docs/en/permission-modes#which-mode-a-session-starts-in) on Pro, Max, and Team plans; Claude Code starts your sessions in Manual instead * Have the VS Code extension [read settings files for the starting permission mode](/docs/en/permission-modes#switch-permission-modes) @@ -496,14 +499,9 @@ Claude Code turns some features on through feature flags it fetches from Anthrop * Get the [v2 MCP client runtime](/docs/en/mcp#mcp-client-runtimes) and its protocol probe without setting `MCP_SDK_GENERATION` and `MCP_PROTOCOL_NEGOTIATION`; Claude Code uses the v1 runtime unless you set `MCP_SDK_GENERATION=v2`, and skips the probe unless you set `MCP_PROTOCOL_NEGOTIATION=auto` * Get the [PowerShell tool](/docs/en/tools-reference#powershell-tool) by default for claude.ai and Console accounts on Windows with Git Bash installed; Claude Code routes shell commands through Git Bash unless you set `CLAUDE_CODE_USE_POWERSHELL_TOOL=1`. On Windows without Git Bash, the tool stays on -With fetching off, you can still type `/code-review` yourself, but [Claude can't start the review on its own, and a scheduled `/code-review` reaches Claude as plain text](/docs/en/code-review#let-claude-start-the-review) instead of running the review. - ### First session after an install or upgrade -You can also miss a [flag-gated feature](#features-that-need-feature-flag-fetching) in your first session after you install Claude Code, or after you upgrade to a version that adds the feature, even when none of the variables that disable flag fetching are set. Claude Code fetches the flags during that session, so a feature that's otherwise available to you is there in your next session. Two features behave differently in that first session: - -* Claude Code [binds the session's inbox socket](/docs/en/cross-session-messaging#the-sessions-inbox-socket) and exports the messaging variables partway through the session, as soon as the fetch completes, so other sessions can message it before you restart. -* Claude Code checks the `claude import` flag before it starts a session, so if `claude import` is the first thing you run after installing, it prints [`claude import is not yet available in this build`](/docs/en/errors#claude-import-is-not-yet-available-in-this-build). Start a session, then run it again. +In your first session after you install Claude Code, or upgrade to a version that adds a feature, a [flag-gated feature](#features-that-need-feature-flag-fetching) can be missing, and a session can start in Manual mode on a plan that otherwise starts in auto mode. Claude Code fetches the flags during that session, so both are there in your next session. After a fresh install, a non-interactive session, such as `claude -p`, the Agent SDK, or the VS Code extension, can pick the flags up before it [chooses its starting permission mode](/docs/en/permission-modes#which-mode-a-session-starts-in); an interactive terminal session doesn't. ## See also diff --git a/content/en/docs/claude-code/errors.md b/content/en/docs/claude-code/errors.md index 847bb9679..229bf6234 100644 --- a/content/en/docs/claude-code/errors.md +++ b/content/en/docs/claude-code/errors.md @@ -82,6 +82,7 @@ Match the message you see to a section below. | `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) | @@ -179,6 +180,7 @@ Match the message you see to a section below. | `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [Configuration warnings](#workspace-has-not-been-trusted) | | `headersHelper not run — this workspace has no persisted trust` | [Configuration warnings](#headershelper-not-run) | | `... 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) | | Responses seem lower quality than usual | [Response quality](#responses-seem-lower-quality-than-usual) | @@ -1125,6 +1127,21 @@ Before v2.1.234, the message ended after `intercepting the request`. * On a network with a sign-in page, such as guest Wi-Fi, complete the sign-in in a browser, then retry * If only the non-streaming route through your gateway is broken, set [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK=1`](/docs/en/env-vars#variables) so a request that fails mid-stream goes to the normal retry path instead of this fallback, except when the streaming endpoint itself returns `404`, where Claude Code still falls back +### Streaming response ended before any complete data was received + +A streaming response from your model provider completed without delivering any usable data, so Claude Code re-sent the request without streaming to finish the turn. Claude Code shows the warning once per session, in interactive sessions only. Before v2.1.239, Claude Code silently retried without streaming. + +```text theme={null} +Streaming response ended before any complete data was received. Retrying without streaming. If this keeps happening, check any proxy or gateway between Claude Code and your model provider. +``` + +Claude Code sends each affected request twice: the empty streaming attempt and the retry. The usual cause is a proxy or gateway that consumes or transforms the streaming response body on its way back. + +**What to do:** + +* Configure any proxy or gateway between Claude Code and your model provider to pass streaming response bodies and their headers through unmodified +* On [Amazon Bedrock](/docs/en/amazon-bedrock), see [Streaming errors behind a gateway or proxy](/docs/en/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy) for the header and body requirements + ### Bedrock streaming response has an unexpected content-type A gateway or proxy between Claude Code and [Amazon Bedrock](/docs/en/amazon-bedrock) is transforming the streaming response body or its `Content-Type` header. Amazon Bedrock streams responses as `application/vnd.amazon.eventstream`, and Claude Code rejects a successful streaming response that reports a different content-type instead of decoding a body it can't read. The request isn't retried. @@ -2485,7 +2502,7 @@ Inside tmux, Claude Code detects a marker that arrived through the tmux server's ## Configuration warnings -Claude Code writes these messages to stderr rather than showing an error in the conversation, except where an entry notes that it writes the message to the debug log instead. It writes most of them at startup, reporting configuration it read but didn't apply, and writes the [unrecognized-model diagnostic line](#unrecognized-model-id-on-a-request) at request time. +Claude Code writes these messages to stderr rather than showing an error in the conversation, except where an entry notes that it writes the message to the debug log instead. It writes most of them at startup and writes the [unrecognized-model diagnostic line](#unrecognized-model-id-on-a-request) at request time. ### Workspace has not been trusted @@ -2537,6 +2554,27 @@ Permission deny rule (.claude/settings.json): Write(docs/**) is not matched by f In a [background session](/docs/en/agent-view) or with `--output-format json` or `stream-json`, Claude Code writes the warning to the debug log instead of stderr, so machine-read output stays clean; run with `--debug` to capture it at `~/.claude/debug/.txt`. Before v2.1.210, Claude Code accepted these rules without a warning. +### Has a wildcard before the rest of the command + +Claude Code found a `Bash` allow rule whose `*` comes before a later word that determines which command it is, such as `Bash(git * main)` or `Bash(git -C * status *)`, in one of your [settings files](/docs/en/settings#where-settings-live), in [managed settings](/docs/en/managed-settings), or in an `--allowedTools` or `--settings` flag value. The `*` matches any text, including options inserted at that position: `Bash(git * main)` also approves `git -c core.fsmonitor=