diff --git a/content/.metadata.json b/content/.metadata.json index a0cf266d3..690838cd9 100644 --- a/content/.metadata.json +++ b/content/.metadata.json @@ -1,7 +1,7 @@ { "metadata": { "version": "2.0", - "fetch_date": "2026-08-19T16:17:20.607596Z", + "fetch_date": "2026-08-20T02:09:53.705519Z", "section": "all" }, "items": [ @@ -44,8 +44,8 @@ "url": "https://platform.claude.com/docs/en/build-with-claude/overview", "status": "success", "path": "en/build-with-claude/overview.md", - "sha256": "09a16d75ae0923a054e6d0d33dd4a59518cfc67ce327fa9fe6121d103d741178", - "size": 29406 + "sha256": "8bdcd9479b45f6ae0769be3c208e6f1cc7423d3bf1e87b866eb2eeda520ccaff", + "size": 29394 }, { "url": "https://platform.claude.com/docs/en/build-with-claude/working-with-messages", @@ -107,8 +107,8 @@ "url": "https://platform.claude.com/docs/en/build-with-claude/citations", "status": "success", "path": "en/build-with-claude/citations.md", - "sha256": "8a753cf2f910f09663c62fb35b3ac4995c5a3ca1fda1c15b02645322daf1d392", - "size": 76202 + "sha256": "5ca531361a269863338524c7b30a6e266af2aad8b0be0c597b7bd5998dcbf6ae", + "size": 76454 }, { "url": "https://platform.claude.com/docs/en/build-with-claude/streaming", @@ -247,29 +247,29 @@ "url": "https://platform.claude.com/docs/en/agents-and-tools/tool-use/server-tools", "status": "success", "path": "en/agents-and-tools/tool-use/server-tools.md", - "sha256": "a5959db11d27e4621c77ab593fcbc607171214fb5cd27786af1a4ee6223c3c51", - "size": 43682 + "sha256": "48e7218e23e2cd0d0ea697537d871368e6a39078d1e227c4df298730e1c17f5a", + "size": 44507 }, { "url": "https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool", "status": "success", "path": "en/agents-and-tools/tool-use/web-search-tool.md", - "sha256": "72109d84ec76e6829079e3e72f498ec42d3c6e6cb1a307c03797c42a5cb9bbe5", - "size": 26979 + "sha256": "68e1c04c7773e6884f4936d6d9254515842fdb65967e46a4bab1e685065c25cd", + "size": 28151 }, { "url": "https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-fetch-tool", "status": "success", "path": "en/agents-and-tools/tool-use/web-fetch-tool.md", - "sha256": "eea5c75929a57e48c3a2bfc6616241ea961d80ed6a59bfaec59192d1f6536125", - "size": 33810 + "sha256": "bb90affb43f445b98d5f957740f1fece84b50552f27d3b2ca27e1cec6c38f7a5", + "size": 34431 }, { "url": "https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool", "status": "success", "path": "en/agents-and-tools/tool-use/code-execution-tool.md", - "sha256": "0887a3fede7b071e1045a39f496070de4c46a7135a0758d083e5a1c4bfd95e5d", - "size": 61068 + "sha256": "0713a10fa23dc51b4ba4313cb32c37aebaac9a295f5d1144c28506f0eecaf731", + "size": 61241 }, { "url": "https://platform.claude.com/docs/en/agents-and-tools/tool-use/advisor-tool", @@ -422,15 +422,15 @@ "url": "https://platform.claude.com/docs/en/build-with-claude/files", "status": "success", "path": "en/build-with-claude/files.md", - "sha256": "9cb3e722238635102bd70c5006d3c5d362a60022d1718e59d89c4bd7dde2c8b6", - "size": 33565 + "sha256": "be5c90313c3c6f485527d040d8839998cd21cdc9badc3c11c61bcc0661bb414d", + "size": 36658 }, { "url": "https://platform.claude.com/docs/en/build-with-claude/pdf-support", "status": "success", "path": "en/build-with-claude/pdf-support.md", - "sha256": "3f47b6c643a07f17143ab599c9d653727fcf5a8af49e55722b040c61a5dbdefd", - "size": 62811 + "sha256": "9ed41f58d45b90d6ee6e2db8243bd52d38ff4c2c375f87b92e821d98ee34a186", + "size": 62918 }, { "url": "https://platform.claude.com/docs/en/build-with-claude/vision", @@ -450,15 +450,15 @@ "url": "https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview", "status": "success", "path": "en/agents-and-tools/agent-skills/overview.md", - "sha256": "f3a9e69a05e4d41157561ced529eb795dc420d99103faf2a3488d364f5eacf03", - "size": 21652 + "sha256": "c161721ff90020eb3e9ba8755f70371f1c70a1b1aeba3c0b1545087479a6949c", + "size": 21536 }, { "url": "https://platform.claude.com/docs/en/agents-and-tools/agent-skills/quickstart", "status": "success", "path": "en/agents-and-tools/agent-skills/quickstart.md", - "sha256": "c1295ed9cb4998662848b4a9b45e61e156a1f542adde11a5f2ea876d432d4be7", - "size": 40010 + "sha256": "b00c029bb325e47977bd8f4a50845c19e7707533f0371fb6660923b7b4501e38", + "size": 40130 }, { "url": "https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices", @@ -471,15 +471,15 @@ "url": "https://platform.claude.com/docs/en/agents-and-tools/agent-skills/enterprise", "status": "success", "path": "en/agents-and-tools/agent-skills/enterprise.md", - "sha256": "7a83e80ce335ab329ed9f1c674fa3747b3b0d46656c9de6835932cc168976e36", - "size": 16293 + "sha256": "dbbd6b433898c561e78a1ee161bfcee4e996aec0e4442bfeaa26c1cf587eda67", + "size": 16294 }, { "url": "https://platform.claude.com/docs/en/build-with-claude/skills-guide", "status": "success", "path": "en/build-with-claude/skills-guide.md", - "sha256": "85af315e980fe974e2f85d403db4099a5aee51a1fb0d902dd468cb4c42d5bb49", - "size": 157714 + "sha256": "c8f32577cd749adfd92db848db1f84c5b8f4a97fe654ff8bfa9405a033376846", + "size": 153654 }, { "url": "https://platform.claude.com/docs/en/agents-and-tools/remote-mcp-servers", @@ -576,8 +576,8 @@ "url": "https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws", "status": "success", "path": "en/build-with-claude/claude-platform-on-aws.md", - "sha256": "c836743bbe5cf40329dfba4c99a664fd8991c746103ad1909cfc527a515c13a5", - "size": 82663 + "sha256": "252db9103da4eb12ec50244200ad7c5d2ff7e003748389a26424c8fbf646c965", + "size": 83116 }, { "url": "https://platform.claude.com/docs/en/build-with-claude/claude-on-vertex-ai", @@ -597,8 +597,8 @@ "url": "https://platform.claude.com/docs/en/managed-agents/overview", "status": "success", "path": "en/managed-agents/overview.md", - "sha256": "51d7877c23bbd04a0478fa9656603687cfc0bb01e1c9a7a3759450d380d01e7f", - "size": 7417 + "sha256": "481e095ec42fade0b03a46decb7090b6e8753fae76d2bfd6df68c9b17ed9d5b3", + "size": 7480 }, { "url": "https://platform.claude.com/docs/en/managed-agents/quickstart", @@ -618,8 +618,8 @@ "url": "https://platform.claude.com/docs/en/managed-agents/migration", "status": "success", "path": "en/managed-agents/migration.md", - "sha256": "8359d7e71a98d7d8dd26cc6aaad703f00c106737cbe3376ab60ed011a4ca53b7", - "size": 50698 + "sha256": "868e92c60b617b2367ab7d91b072481ecd5ffb5ec9ccc2fd3d487b149571e873", + "size": 51181 }, { "url": "https://platform.claude.com/docs/en/managed-agents/agent-setup", @@ -632,36 +632,36 @@ "url": "https://platform.claude.com/docs/en/managed-agents/tools", "status": "success", "path": "en/managed-agents/tools.md", - "sha256": "b30b62ef33c122b2e17d2db7df359ddd50b96e2d01e7593c4ff9fc820526c2e4", - "size": 17756 + "sha256": "489ca39bad3cf9490a8a1dda01dcab13fcda5c129ae28d8ed53cecadfcaa1f45", + "size": 40323 }, { "url": "https://platform.claude.com/docs/en/managed-agents/mcp-connector", "status": "success", "path": "en/managed-agents/mcp-connector.md", - "sha256": "4dc2dc2889fec00803bb63abd13eff381b6af1a044ce445acb56237ad82c79aa", - "size": 16284 + "sha256": "d44a05e80424670445065299acf7c2fe2ba27db6caacc6e10f389a41d2695a27", + "size": 16617 }, { "url": "https://platform.claude.com/docs/en/managed-agents/permission-policies", "status": "success", "path": "en/managed-agents/permission-policies.md", - "sha256": "c6243d61bea3096b6f2c429758f7058744c9280e1fc9d30e1a898e53226ac851", - "size": 31772 + "sha256": "87c2a652878388d7d398d71a95b42db0f47f7cd077dc23ed41468e0ed3846d2a", + "size": 31706 }, { "url": "https://platform.claude.com/docs/en/managed-agents/skills", "status": "success", "path": "en/managed-agents/skills.md", - "sha256": "7aa632fae2c60bb35a64fad0afe48d41f8bbe8c500501d7092ebea245c0fdc5f", - "size": 22729 + "sha256": "6b4bda14fa7c55cce495394c3ab8244a03bbeaf15bd7964f5a44ac8ad090ef42", + "size": 22799 }, { "url": "https://platform.claude.com/docs/en/managed-agents/environments", "status": "success", "path": "en/managed-agents/environments.md", - "sha256": "351d8b74376929bfa21d8fdacb2bbb202815339f1837f07a06011c3fe1115cd0", - "size": 22128 + "sha256": "9fc1ba4fbb6f40b805a3aa164b25702e592c0fb0b380b87fe78ddc4461fb7a9a", + "size": 22417 }, { "url": "https://platform.claude.com/docs/en/managed-agents/cloud-sandboxes-reference", @@ -674,15 +674,15 @@ "url": "https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes", "status": "success", "path": "en/managed-agents/self-hosted-sandboxes.md", - "sha256": "4cf7d8eb0926d85ad9d0463edd562c583aeaad99bb7ee84a16787a0c81b41b9c", - "size": 77721 + "sha256": "7b345fbd35b258c04bffda0ce75de06d16bb70245812c11727bd84eea969320a", + "size": 110982 }, { "url": "https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes-security", "status": "success", "path": "en/managed-agents/self-hosted-sandboxes-security.md", - "sha256": "e144bd4181fdcd265211f1953e18fac5ce520f7dfb7d834d88c8c07fc0a7cefe", - "size": 2972 + "sha256": "e468f498b05131c7557ecea0e71ee277b60b9c342427126b24e32b8c11ebd1c8", + "size": 4778 }, { "url": "https://platform.claude.com/docs/en/managed-agents/sessions", @@ -695,15 +695,15 @@ "url": "https://platform.claude.com/docs/en/managed-agents/session-operations", "status": "success", "path": "en/managed-agents/session-operations.md", - "sha256": "316b069fe610e68256de69ac33ab54b01fdaf45ed37a0c1ddb4a933be11e8614", - "size": 24988 + "sha256": "6014abe9dd525c3f9a3b48b5ab11a44f8ca4cbc06c17263eaa4a156663784e9d", + "size": 25221 }, { "url": "https://platform.claude.com/docs/en/managed-agents/events-and-streaming", "status": "success", "path": "en/managed-agents/events-and-streaming.md", - "sha256": "bf1e37d48fd2ae3083c37ed5abded772459bf57eaa49272601e715bf810892b4", - "size": 113631 + "sha256": "dda0181e3f9306306c31a26a52b99a356b057e39135d697f26a5f16f7d5d5be9", + "size": 115634 }, { "url": "https://platform.claude.com/docs/en/managed-agents/budgets", @@ -723,8 +723,8 @@ "url": "https://platform.claude.com/docs/en/managed-agents/define-outcomes", "status": "success", "path": "en/managed-agents/define-outcomes.md", - "sha256": "7455bd010c0509efaad569eed15c6365c23422540e648fcfdd8ecb7650587ffb", - "size": 32650 + "sha256": "4bbd8ea7ba556d167c23bc36477769e74eb908bf60ca9b5d270aeef32935d03c", + "size": 32594 }, { "url": "https://platform.claude.com/docs/en/managed-agents/vaults", @@ -751,8 +751,8 @@ "url": "https://platform.claude.com/docs/en/managed-agents/memory", "status": "success", "path": "en/managed-agents/memory.md", - "sha256": "d2fe0cfd5218f04ba3963cfd451a8081322e755bd1e7cc7ce03ec84493b0dde0", - "size": 44799 + "sha256": "9f2b4d1b678eff2eccfde12b67e2eaa6267fe75d0255dc2b861e8128538fa8d1", + "size": 46588 }, { "url": "https://platform.claude.com/docs/en/managed-agents/dreams", @@ -772,43 +772,43 @@ "url": "https://platform.claude.com/docs/en/managed-agents/scheduled-deployments", "status": "success", "path": "en/managed-agents/scheduled-deployments.md", - "sha256": "beb5001b7f1e0d937e6bee8ea47efca516e6370d057595ae59337f283cbee64a", - "size": 24556 + "sha256": "0e2fb32a505c9d10e793415b145910122d83044830af173934dc1eb6e2b76b5d", + "size": 24949 }, { "url": "https://platform.claude.com/docs/en/managed-agents/reference", "status": "success", "path": "en/managed-agents/reference.md", - "sha256": "45c2fa8a14fc2ccb019fa9026c95a36426ab7eab5944f144b6002694fc0802ef", - "size": 20615 + "sha256": "a017f506ec9a4bc77464d293622ae9b470ebf5ae059af80c057cf9b5f493262d", + "size": 21065 }, { "url": "https://platform.claude.com/docs/en/manage-claude/admin-api", "status": "success", "path": "en/manage-claude/admin-api.md", - "sha256": "fccb182841bede8aa232ccf9024076ce87bf2e65847e699fc161c96f6d3be274", - "size": 15192 + "sha256": "0e5af336fe39eb46fa97aace4cf37760242b8db76be96f33ddc977f2c2ec0f68", + "size": 15175 }, { "url": "https://platform.claude.com/docs/en/manage-claude/user-management", "status": "success", "path": "en/manage-claude/user-management.md", - "sha256": "a4c3e5e16d896c1e3e8eaabf67252558e21b3ce5c4f663cbb796122d8c4799cb", - "size": 37101 + "sha256": "23d4ab4bfa7a8e09dcee5052e96e5e4042a35fcc5fde9e1e0733befd8330062f", + "size": 36772 }, { "url": "https://platform.claude.com/docs/en/manage-claude/workspaces", "status": "success", "path": "en/manage-claude/workspaces.md", - "sha256": "9b61b914684f5527578e853fe2c758900a3f134a43cd039abbbe57a92a11306c", - "size": 25136 + "sha256": "76727e2a928d45415b66937142407eb3bffb1eec50fdcf6bde711bb95b545d4e", + "size": 25240 }, { "url": "https://platform.claude.com/docs/en/manage-claude/admin-api-keys", "status": "success", "path": "en/manage-claude/admin-api-keys.md", - "sha256": "8cdd1fed4dac05b2c430f73b9514d8f8ecceae426a6a614b7e5e54743acc5b31", - "size": 15747 + "sha256": "65fbcf778abe7aaa3869228a738a4d2674955bc694c9651e669c394d72592e11", + "size": 15711 }, { "url": "https://platform.claude.com/docs/en/manage-claude/app-attest", @@ -926,14 +926,14 @@ "url": "https://platform.claude.com/docs/en/manage-claude/data-residency", "status": "success", "path": "en/manage-claude/data-residency.md", - "sha256": "4779c99564a7ea5f6423d2fb91b53e8fc0936f14f670c1f9e14ab4bd054ec515", - "size": 14703 + "sha256": "29a2137e57c94e863158d244d4c1c52869b0bf4226cb24bdfe970d336131db47", + "size": 14911 }, { "url": "https://platform.claude.com/docs/en/manage-claude/api-and-data-retention", "status": "success", "path": "en/manage-claude/api-and-data-retention.md", - "sha256": "9981daf66c4b75639235c980cf4e81cba75fa6eb8634d522ef8180e6aed19916", + "sha256": "f28771f6605286a50dc1cdc7a0b5696795b2481ae983bca5e308589e87318e81", "size": 55704 }, { @@ -1181,6 +1181,13 @@ "sha256": "f025a764592beab9e3ae7678c27097ae335cf54f245017ab3c242661e78076f6", "size": 9265 }, + { + "url": "https://platform.claude.com/docs/en/about-claude/additional-resources", + "status": "success", + "path": "en/about-claude/additional-resources.md", + "sha256": "6303bfff6af1937165805bbe94e3da23b32f9602c516810e2d72e986aa934bd9", + "size": 1509 + }, { "url": "https://platform.claude.com/docs/en/about-claude/models/overview", "status": "success", @@ -1248,8 +1255,8 @@ "url": "https://platform.claude.com/docs/en/resources/overview", "status": "success", "path": "en/resources/overview.md", - "sha256": "f4efe011ae305ac858b24e203f15314b66f53814c2d108fec52a373c79fd56a5", - "size": 4887 + "sha256": "e4f789adb01dac96e9ae4d68af2a85d0aff8a058c626da0feab46d435d7c46b3", + "size": 3327 }, { "url": "https://platform.claude.com/docs/en/release-notes/system-prompts", @@ -1374,8 +1381,8 @@ "url": "https://platform.claude.com/docs/en/api/overview", "status": "success", "path": "en/api/overview.md", - "sha256": "9e285167b30b1c0e5cf57150130aade624d74ee0aa8a9057360447be3ab86456", - "size": 19765 + "sha256": "3185bf3de6f9edbe829303be1bf312dd99943b9b81f93babe3dcd973c22ae8fb", + "size": 19924 }, { "url": "https://platform.claude.com/docs/en/api/beta-headers", @@ -1402,8 +1409,8 @@ "url": "https://platform.claude.com/docs/en/api/rate-limits", "status": "success", "path": "en/api/rate-limits.md", - "sha256": "27738d20da88c513b81371950df63b658fd4726c0e9a13bc44a6de320278584a", - "size": 28691 + "sha256": "e54c5365f0a127593003770d25bbf1cba51ab2fcb7fb887102350f8f49c954be", + "size": 29096 }, { "url": "https://platform.claude.com/docs/en/api/service-tiers", @@ -1451,8 +1458,8 @@ "url": "https://platform.claude.com/docs/en/release-notes/overview", "status": "success", "path": "en/release-notes/overview.md", - "sha256": "b37e0bd3d987a2e6c4e6be8b364086961e297b7893d64602de82ec5754885f14", - "size": 87622 + "sha256": "a971e0d8b406dbf8dc8d5c2f01c5b7965349c9e47ed004ea1f89c53f12a7409a", + "size": 91125 }, { "url": "https://platform.claude.com/docs/en/api/completions", @@ -3964,8 +3971,8 @@ "url": "https://platform.claude.com/docs/en/claude_api_primer", "status": "success", "path": "en/claude_api_primer.md", - "sha256": "d479d22027cea9d39174890cb995efb1e3baae520c154f288e9791748bdd5eec", - "size": 27169 + "sha256": "584a287a204754021389e49cc0883ecab22ebadae2375b7254f4bccfaef6e8b3", + "size": 27665 }, { "url": "https://code.claude.com/docs/en/overview", @@ -3985,8 +3992,8 @@ "url": "https://code.claude.com/docs/en/changelog", "status": "success", "path": "en/docs/claude-code/changelog.md", - "sha256": "055628a3225c59b1be4ea8fa99f76cedf5cea25023681f069ea17c94239eafa5", - "size": 554295 + "sha256": "492710bb316b840130b902990bd44ca496b940ed653e3d7bf200bfc882737286", + "size": 559755 }, { "url": "https://code.claude.com/docs/en/how-claude-code-works", @@ -4020,29 +4027,29 @@ "url": "https://code.claude.com/docs/en/prompt-caching", "status": "success", "path": "en/docs/claude-code/prompt-caching.md", - "sha256": "1d5c84df1378714397af5a43ecc67c9bf20b7476470a78fa6ec5caf3180a0480", - "size": 30821 + "sha256": "b12cdf3df16f42b5aa6c4c922a555026a9ca840c21094ee61b0092ce918d161c", + "size": 31995 }, { "url": "https://code.claude.com/docs/en/memory", "status": "success", "path": "en/docs/claude-code/memory.md", - "sha256": "714ee359ae36615df0a70335ebc6bc78c42e01dcc32e616c736ded37c666d2b6", - "size": 35973 + "sha256": "ac9efcab29939e429226c6331890d50ed22e64fe78f64befb237011667b78cff", + "size": 36357 }, { "url": "https://code.claude.com/docs/en/permission-modes", "status": "success", "path": "en/docs/claude-code/permission-modes.md", - "sha256": "63b387905da8418b85b0dd679fc3676ea7ea57a40b896fdb66b4d8436f4ec0ba", - "size": 73658 + "sha256": "1fcc0dfc821c04fb3c7dd84f0d4b4ef8457033b4a94475f27c72fe8465b7a3bb", + "size": 73984 }, { "url": "https://code.claude.com/docs/en/sessions", "status": "success", "path": "en/docs/claude-code/sessions.md", - "sha256": "92c24809f34d44e558b4141c168625730c0118ff2df9321b76c8eb9bceb4e456", - "size": 26127 + "sha256": "5861c6bf998099861616d2a50e08e72145e34656a80074b19c0e6c49730e755d", + "size": 28616 }, { "url": "https://code.claude.com/docs/en/common-workflows", @@ -4076,8 +4083,8 @@ "url": "https://code.claude.com/docs/en/remote-control", "status": "success", "path": "en/docs/claude-code/remote-control.md", - "sha256": "7d5d8a1657469c7dcebaddd7852685349054a0bb68489e5ddaa1c858d97f8c37", - "size": 54298 + "sha256": "e93415473d01ea5f98e471b29e92cb5c9ba3970e8a727902a950a2108bb764a4", + "size": 54940 }, { "url": "https://code.claude.com/docs/en/web-quickstart", @@ -4209,8 +4216,8 @@ "url": "https://code.claude.com/docs/en/github-actions", "status": "success", "path": "en/docs/claude-code/github-actions.md", - "sha256": "d4d7be8dd3f2bcc1d692336921a9d1b9c534582c69f7cd0a08f9acf495c96d21", - "size": 32680 + "sha256": "0ca99e2a65d0522aae03d28a6b18c10a1355f268f3332beb3dc287e7b070968e", + "size": 32697 }, { "url": "https://code.claude.com/docs/en/github-actions-cloud-providers", @@ -4258,8 +4265,8 @@ "url": "https://code.claude.com/docs/en/sub-agents", "status": "success", "path": "en/docs/claude-code/sub-agents.md", - "sha256": "227626bc5018367896b25c3ecc241964adf11bacd050644f6576cb64e9226dd4", - "size": 101302 + "sha256": "6f51d2b55ae01c0a9c4915788ba0969d99130634512968d870f3b08e8860e5a5", + "size": 102648 }, { "url": "https://code.claude.com/docs/en/agent-view", @@ -4412,8 +4419,8 @@ "url": "https://code.claude.com/docs/en/errors", "status": "success", "path": "en/docs/claude-code/errors.md", - "sha256": "01b42e3801011b257a4bae207d3ddecac7df09b07ae48de631a534a58663eb07", - "size": 244892 + "sha256": "0ec2bcda562403a98b6ac4d41a13bf71d6e441098519a21b3d7b9b33cb69721f", + "size": 244668 }, { "url": "https://code.claude.com/docs/en/admin-setup", @@ -4601,8 +4608,8 @@ "url": "https://code.claude.com/docs/en/monitoring-usage", "status": "success", "path": "en/docs/claude-code/monitoring-usage.md", - "sha256": "37897e0deab05447a92714045067fed5b43e703f9b4d079c6bc6d5fe89b51423", - "size": 136332 + "sha256": "f3664077c262ee3c9b512d0dc7f0bbae0e1ab6d1ef5f2627d8b0edcfe4de9f5d", + "size": 136344 }, { "url": "https://code.claude.com/docs/en/costs", @@ -4622,8 +4629,8 @@ "url": "https://code.claude.com/docs/en/plugin-marketplaces", "status": "success", "path": "en/docs/claude-code/plugin-marketplaces.md", - "sha256": "57f8012108a3c9309c028bc918411e3455b5525de4b315b0f7ae9f26a45b752c", - "size": 91747 + "sha256": "33ae0625956a0a956da0305705cb44eb47dc996304f9ced85f63c27efed91159", + "size": 97558 }, { "url": "https://code.claude.com/docs/en/plugin-dependencies", @@ -4685,15 +4692,15 @@ "url": "https://code.claude.com/docs/en/settings", "status": "success", "path": "en/docs/claude-code/settings.md", - "sha256": "e871e58af55f35e9e7e8f198ce0aa63962bf2744a301f4833ebddb6b27c1f427", - "size": 337427 + "sha256": "b456a5603bb5399de68a95b88ddeba42bd66f1e79920f5e298551ec15acf257a", + "size": 337432 }, { "url": "https://code.claude.com/docs/en/permissions", "status": "success", "path": "en/docs/claude-code/permissions.md", - "sha256": "d34ad5a1c49ee2d204a90b376033dba8e728dee3d48f379cbf2bbcd203bfc4b9", - "size": 66667 + "sha256": "89f064c3f87f8e15f6bae5cd357fb05b37d8763a14cfe40b5195b4ecb33a0984", + "size": 67254 }, { "url": "https://code.claude.com/docs/en/sandbox-environments", @@ -4769,8 +4776,8 @@ "url": "https://code.claude.com/docs/en/model-config", "status": "success", "path": "en/docs/claude-code/model-config.md", - "sha256": "f1f8199299e10a5481ad693fcc149e3f241a4dbc0165cc7b8c08bd025af1bf19", - "size": 93973 + "sha256": "2ecaaa6e9bcbcd28e74c6acca5d3a2bc1fb95a3fe1f2e316b51c26594e016352", + "size": 96916 }, { "url": "https://code.claude.com/docs/en/fast-mode", @@ -4804,8 +4811,8 @@ "url": "https://code.claude.com/docs/en/fullscreen", "status": "success", "path": "en/docs/claude-code/fullscreen.md", - "sha256": "21c31a4efd144c5b595446ec9e0d02827f1a814bed7eb9835c2b283a115b55c9", - "size": 24876 + "sha256": "7a5258cf262093d36671b0e805459ace438951b0441dac9900b5b76a4381328c", + "size": 25760 }, { "url": "https://code.claude.com/docs/en/accessibility", @@ -4832,7 +4839,7 @@ "url": "https://code.claude.com/docs/en/keybindings", "status": "success", "path": "en/docs/claude-code/keybindings.md", - "sha256": "f4f92084c021ff3bcd249f58cbb9dd0f8a32cc80972db181bf9134c964bc0872", + "sha256": "53eda076c094255abfcc79b4365bf2ed53eb25314cfe5ebdb794e851128103d6", "size": 31968 }, { @@ -4853,15 +4860,15 @@ "url": "https://code.claude.com/docs/en/env-vars", "status": "success", "path": "en/docs/claude-code/env-vars.md", - "sha256": "8aefcd0ad87bd7c2ca1bf99af0cba40697a45e7b0f87dc8f229ceaa543903b1d", - "size": 406269 + "sha256": "2066b28f2ea4c95a9fae4a3be7830d3bceffe341986beee95dd3775d3a8cc4cc", + "size": 408670 }, { "url": "https://code.claude.com/docs/en/tools-reference", "status": "success", "path": "en/docs/claude-code/tools-reference.md", - "sha256": "9aca2d27e25265521267b3d592af98d3f350e04e3bc9198d384fa743d1b1c5c1", - "size": 94248 + "sha256": "3bdb698238e1f657b59baee669420e4195f1531c2a804cf08e4a656aaa4d7d94", + "size": 94653 }, { "url": "https://code.claude.com/docs/en/interactive-mode", @@ -4888,15 +4895,15 @@ "url": "https://code.claude.com/docs/en/plugins-reference", "status": "success", "path": "en/docs/claude-code/plugins-reference.md", - "sha256": "86e6d8bd05be813ebe95759768ed10a02b5964453a34101b4d67a114f3015068", - "size": 103768 + "sha256": "dee03b014c2bc3ee8760344525a5289e14402a15e023ee61df49250ee2e479f4", + "size": 105485 }, { "url": "https://code.claude.com/docs/en/channels-reference", "status": "success", "path": "en/docs/claude-code/channels-reference.md", - "sha256": "6bd409fb75cc5f3e2e515ad414879da5ec9f3174c4733ff156226e120000f288", - "size": 49849 + "sha256": "b3fd0b5f24287dd4e5d49f5acc0a224d9224aa20f6c97273505b9cf50e12b046", + "size": 50144 }, { "url": "https://code.claude.com/docs/en/glossary", @@ -4951,15 +4958,15 @@ "url": "https://code.claude.com/docs/en/agent-sdk/sessions", "status": "success", "path": "en/docs/claude-code/agent-sdk/sessions.md", - "sha256": "1e95f0fecbb3418e0b587bbba61ee494c615d7ffec568a106c60794e42519ac4", - "size": 23624 + "sha256": "fad6f960c5ad712303aecaf593348c3190e272660bcfa9e5ffde8618b00b30b2", + "size": 23851 }, { "url": "https://code.claude.com/docs/en/agent-sdk/session-storage", "status": "success", "path": "en/docs/claude-code/agent-sdk/session-storage.md", - "sha256": "71272961db6923f0e7891fa125ae4375e0bd0fd9c3b5e725a0c29ffa304158b4", - "size": 23805 + "sha256": "455304fa0ea851dec08097ba501c89e123851e9375e975426ceb8ecc588cce6d", + "size": 24152 }, { "url": "https://code.claude.com/docs/en/agent-sdk/streaming-vs-single-mode", @@ -5084,8 +5091,8 @@ "url": "https://code.claude.com/docs/en/agent-sdk/hosting", "status": "success", "path": "en/docs/claude-code/agent-sdk/hosting.md", - "sha256": "0ca0bdd88dd83957f5164368c5864a739b525c5aea913368df7968f7d7999c8f", - "size": 23866 + "sha256": "c61d315aa3ece81d7f3dcfceb3f8be27914cefddb669eb5bd7c051191a9ab284", + "size": 24179 }, { "url": "https://code.claude.com/docs/en/agent-sdk/secure-deployment", @@ -5098,8 +5105,8 @@ "url": "https://code.claude.com/docs/en/agent-sdk/typescript", "status": "success", "path": "en/docs/claude-code/agent-sdk/typescript.md", - "sha256": "3c974fd67899346a36704b749c6a90788e165c0e10f2fcbee02aa3c5db8d6da1", - "size": 293152 + "sha256": "ac9ba78023d800ecda70c568ded6510787c1da481176478d4bc8a63214e86efa", + "size": 296269 }, { "url": "https://code.claude.com/docs/en/agent-sdk/typescript-v2-preview", @@ -5112,8 +5119,8 @@ "url": "https://code.claude.com/docs/en/agent-sdk/python", "status": "success", "path": "en/docs/claude-code/agent-sdk/python.md", - "sha256": "3d2a5b2c57fb863731f7ec1e41ab0d01a214f44e3d3229a831e3f51a4f75ebea", - "size": 190724 + "sha256": "1fce99cdcfd670e5468145546bbaee8eec329379f0ca818b4fa776995acc31b2", + "size": 192947 }, { "url": "https://code.claude.com/docs/en/agent-sdk/migration-guide", @@ -7744,8 +7751,8 @@ "url": "https://support.claude.com/en/articles/8114491-get-started-with-claude", "status": "success", "path": "support/8114491-get-started-with-claude.md", - "sha256": "e158cdac4754b85ac818d99b4899418ef7680e39d2b62c460ac996674791c055", - "size": 5302 + "sha256": "d9e63db87e1536795ab485c1b042dbd47fba9519ecba2f38c2c3f99f70cc84a3", + "size": 5298 }, { "url": "https://support.claude.com/en/articles/8114494-how-up-to-date-is-claude-s-training-data", @@ -7782,13 +7789,6 @@ "sha256": "e56d3bd77983a1341670fcc103fbcc1a3018be98deb2aacf75ee59f7119f1a57", "size": 148 }, - { - "url": "https://support.claude.com/en/articles/8114526-how-will-i-be-billed-for-claude-api-use", - "status": "success", - "path": "support/8114526-how-will-i-be-billed-for-claude-api-use.md", - "sha256": "683a854de2c43164f787912c61237e4e37880db154071778b3479d7c4facd0cc", - "size": 1225 - }, { "url": "https://support.claude.com/en/articles/8114527-i-m-encountering-429-errors-and-i-m-worried-my-rate-limit-is-too-low-what-should-i-do", "status": "success", @@ -7828,8 +7828,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": "62bd622c0c19f56718fa9d1eea0ec0199259936df45ba590e1f8736291de87f0", - "size": 5889 + "sha256": "8b71b409f76fc2642b308e67177197388927b016603dec042843357383b0c111", + "size": 5883 }, { "url": "https://support.claude.com/en/articles/8241126-upload-files-to-claude", @@ -7898,8 +7898,8 @@ "url": "https://support.claude.com/en/articles/8325618-paid-plan-billing-faqs", "status": "success", "path": "support/8325618-paid-plan-billing-faqs.md", - "sha256": "f8bcc2e4bc0ff5bcaf0cb890c4898b4e1652c5353b01897b524b563206da38f6", - "size": 4553 + "sha256": "ce8ecd1502264e3c706398a3708bd63a5b38cc5ab63752a82e49d14132ab656a", + "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", @@ -7937,9 +7937,9 @@ "size": 1613 }, { - "url": "https://support.claude.com/en/articles/8606378-how-do-i-use-the-workbench", + "url": "https://support.claude.com/en/articles/8606378-how-do-i-use-the-playground", "status": "success", - "path": "support/8606378-how-do-i-use-the-workbench.md", + "path": "support/8606378-how-do-i-use-the-playground.md", "sha256": "1bc975804c6d5c0458bdc2450c3c7e09655e27113081a3e36015b1123a8d5884", "size": 5575 }, @@ -7961,8 +7961,8 @@ "url": "https://support.claude.com/en/articles/8887527-customizing-your-appearance-settings", "status": "success", "path": "support/8887527-customizing-your-appearance-settings.md", - "sha256": "f2b39600b84b0aa3869a4ea40b33f7a5d3990862cf2f5b0708af33934c2eea06", - "size": 1874 + "sha256": "ae16694dadae1278a961a599c165f32eb187263e12d52ac4ae09c3bb23ee19a1", + "size": 1870 }, { "url": "https://support.claude.com/en/articles/8896518-does-anthropic-crawl-data-from-the-web-and-how-can-site-owners-block-the-crawler", @@ -7975,8 +7975,8 @@ "url": "https://support.claude.com/en/articles/8977456-how-do-i-pay-for-my-claude-api-usage", "status": "success", "path": "support/8977456-how-do-i-pay-for-my-claude-api-usage.md", - "sha256": "d1f65a5cf002aa149a1a8c9fc198f3e932470442faf738ba320fe7fcdbf57f68", - "size": 2466 + "sha256": "06d0d346eb865458926aeeceafdfe7c39810ac3cd5053270581c92ca7ef70881", + "size": 3351 }, { "url": "https://support.claude.com/en/articles/8987200-can-i-use-the-claude-api-for-individual-use", @@ -8017,8 +8017,8 @@ "url": "https://support.claude.com/en/articles/9028421-how-can-i-delete-my-claude-account", "status": "success", "path": "support/9028421-how-can-i-delete-my-claude-account.md", - "sha256": "d94fbae3c683100e63f0aa395a135474432619da5d1d589851ac88a98a1c8081", - "size": 2021 + "sha256": "a20a2b05a35ccf372dda3c884301e09eaa297d763cde12f311a8b92600b748eb", + "size": 2731 }, { "url": "https://support.claude.com/en/articles/9035075-law-enforcement-requests", @@ -8136,8 +8136,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": "09f1457a99e80abf14a209930110aec45b3e1f30de9a42379f1f95a494f47ba4", - "size": 9273 + "sha256": "e4573b2242040c6c038420fd3ef3aebd76bf83d2a261a77af53991f9e8b60093", + "size": 9271 }, { "url": "https://support.claude.com/en/articles/9301722-updates-to-our-acceptable-use-policy-now-usage-policy-consumer-terms-of-service-and-privacy-policy", @@ -8185,15 +8185,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": "fc0a2c9f41e7deace81645186a3e240a9e6649686dabdf8d4ce89dd9a49a9a37", - "size": 9272 + "sha256": "55c83e63acd5c0e6c908a5862827c163edd05db4a14eddd3273667ba08104477", + "size": 9318 }, { "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": "21aff3e74d8898a00c1f6af5fe344f9107891cba134b58329048bf66880f8077", - "size": 8563 + "sha256": "5ca74ee216dd80a760ab01d8ee05b5e466fbee1059934167a38b8d92592b8bb9", + "size": 8565 }, { "url": "https://support.claude.com/en/articles/9519291-what-is-anthropic-s-policy-for-handling-governmental-requests-for-user-information", @@ -8213,15 +8213,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": "e8a08d63f094245f47285fbeee681b82ed319504e6ce35f5b5c8a1cc86018fcd", - "size": 5096 + "sha256": "686c04c72b2dc5c98dbf05072703f48703e14af7184df9155c7ef4e28edb4ecc", + "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": "9ce27c71d92a38c1a85f9d0434f169930581a3af2582fdacac05be0536197f0f", - "size": 7324 + "sha256": "ea56a09c6deccfb34ad855b437894d39c795cf9909c5f73180b5d3f147a16387", + "size": 7326 }, { "url": "https://support.claude.com/en/articles/9612887-install-claude-for-android", @@ -8297,7 +8297,7 @@ "url": "https://support.claude.com/en/articles/9927533-disable-public-projects-for-your-organization", "status": "success", "path": "support/9927533-disable-public-projects-for-your-organization.md", - "sha256": "7fb57a717025b0d9b027516147e85257f561fd5e6fc775326575924e61703f93", + "sha256": "874e4ff27efbdc8263dab52eae20b50cb8f93957e42e40eb007d101464f521f0", "size": 2578 }, { @@ -8374,8 +8374,8 @@ "url": "https://support.claude.com/en/articles/10185728-understanding-claude-s-personalization-features", "status": "success", "path": "support/10185728-understanding-claude-s-personalization-features.md", - "sha256": "476871d4dc44c451c48119d36c5878637059e96165c99c5281164bd894a29d3c", - "size": 2803 + "sha256": "7a29f6f0f6646d7b9fb5d064a4f871896b31a118a58a882c428a3f2c3a26456e", + "size": 2747 }, { "url": "https://support.claude.com/en/articles/10185996-how-to-change-your-pro-plan-from-monthly-to-annual-billing", @@ -8437,15 +8437,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": "9d65493b361f1cb8165f2b1a3d8410ccb700c7e4f84d3dfe867ebf91244d914f", + "sha256": "df479b1349bd94954d7f85553245a5049891bee4454bbfa71bf06df52e635b84", "size": 2494 }, { "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": "25ceda52fce69c4ac64d84083f317534b126973ec4802fc99cf85c5ba4591ac7", - "size": 3167 + "sha256": "1d46f6b1645439f831b027cee3da2ef8b72eaa1dcfe8d1ef3950dce32662d984", + "size": 3163 }, { "url": "https://support.claude.com/en/articles/10366389-how-can-i-get-higher-rate-limits-on-the-claude-api", @@ -8493,15 +8493,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": "273be174d81bb49f6623baaf870a2f1291cbed51209023f5ebcf9a7a7fd5b71f", - "size": 1040 + "sha256": "b759d4bf8eba571a50914f03e29ebd07e75eda0a34c4cc5153ea4b17418f795d", + "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": "f75100958816ba1d1932672381042db090df2907c14e33d2d4189608b7527931", - "size": 1003 + "sha256": "183f6d92f38fae12e8f6cce18700a333c14da44f4278a4a8490d9c5fda84c16b", + "size": 999 }, { "url": "https://support.claude.com/en/articles/10534883-use-the-claude-widget-on-android", @@ -8514,15 +8514,15 @@ "url": "https://support.claude.com/en/articles/10593882-share-and-unshare-chats", "status": "success", "path": "support/10593882-share-and-unshare-chats.md", - "sha256": "df46f12ed260c49352e05454febe1824f139b2f230b6b3a6ffce319e7bd9a5e7", - "size": 4018 + "sha256": "40437b8a8176339467b1d427365ef9f670af30d31d7f7a0985bec11d18786296", + "size": 4014 }, { "url": "https://support.claude.com/en/articles/10684626-enable-and-use-web-search", "status": "success", "path": "support/10684626-enable-and-use-web-search.md", - "sha256": "ec83193818207f4c4c8bb16e310e6b6d69d1afcd04f4ebf82760432b4eb934e4", - "size": 6370 + "sha256": "4023d37cb19596abe9ae7d17871622af75893ed85701227253e7c3123e760ffd", + "size": 6372 }, { "url": "https://support.claude.com/en/articles/10684638-report-block-and-remove-content-from-claude", @@ -8542,8 +8542,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": "5cd0237f1d76dd86105a6c11c5148972b8d9eb0cca9991a1e379fdc1fc92315d", - "size": 8267 + "sha256": "c0523260806f3f2f06883c33acb20dcc03239c38ca72a74cd7db0d92302f964b", + "size": 8271 }, { "url": "https://support.claude.com/en/articles/11049741-what-is-the-max-plan", @@ -8584,8 +8584,8 @@ "url": "https://support.claude.com/en/articles/11101966-use-voice-mode", "status": "success", "path": "support/11101966-use-voice-mode.md", - "sha256": "95a5916133fe86de61c3758a9d8c0b0e1fe353012a5164fc0ff894add83ed537", - "size": 10556 + "sha256": "e3a30a231af7d8f6a5985894a5e668e618498531b59d95e590c3eeaa23d20d59", + "size": 10550 }, { "url": "https://support.claude.com/en/articles/11107691-why-is-a-coupon-or-promotion-not-available-for-my-account", @@ -8619,8 +8619,8 @@ "url": "https://support.claude.com/en/articles/11145838-use-claude-code-with-your-pro-or-max-plan", "status": "success", "path": "support/11145838-use-claude-code-with-your-pro-or-max-plan.md", - "sha256": "2f87a3308d9d836d0422b8112a4439a5644c710505103488d08a32ed63b186b4", - "size": 7024 + "sha256": "30a090336ecafdb1ac1623a4569dac754ca41d4daa8386a5cb74ccd2de92888b", + "size": 6964 }, { "url": "https://support.claude.com/en/articles/11174108-about-the-development-partner-program", @@ -8717,8 +8717,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": "0a8031d1ef3c875af8a647d395fcb8f746097a506e585d58dea1e5402f9a90f9", - "size": 2748 + "sha256": "cbd28e7c2a95458f843b5f3fdbdd74d3637834ed22a71c7d5dd7c8ef3ea92315", + "size": 2750 }, { "url": "https://support.claude.com/en/articles/11732894-who-owns-and-manages-the-data-of-my-claude-for-education-account", @@ -8731,15 +8731,15 @@ "url": "https://support.claude.com/en/articles/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context", "status": "success", "path": "support/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context.md", - "sha256": "1a10a9573bbe9a632122ee97d0f18ec3ef75d1dc9a57eed239032ad853788431", - "size": 21518 + "sha256": "616c41ec1d12e0a29722906397f5d961fdd36b4aec0fb4a71045badf3f13b708", + "size": 21562 }, { "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": "29944620b097d07e12941a96992c440fa97a9fbe5d80d8f62bd64743894f85fc", - "size": 816 + "sha256": "8cf049e4c9f4c93ad1b03be778b22a3ead662829bb7ad9a1d0e6c457eb9142cf", + "size": 820 }, { "url": "https://support.claude.com/en/articles/11825384-how-to-update-claude-for-ios", @@ -8773,8 +8773,8 @@ "url": "https://support.claude.com/en/articles/11869629-use-claude-with-android-apps", "status": "success", "path": "support/11869629-use-claude-with-android-apps.md", - "sha256": "f685ababcda12543861b15bb570c7fbf7d15b83643bcb1db3c256f02d19581b1", - "size": 13879 + "sha256": "6de16eda2c52918c79aacfd11cd4a3bbe21b2f912c628303aecf021b0c224f74", + "size": 13877 }, { "url": "https://support.claude.com/en/articles/11932705-automated-security-reviews-in-claude-code", @@ -8808,15 +8808,15 @@ "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": "0948245fad0a0be4933791fc51dc0952dbe51c6ffaf4d45e28807365486b495c", - "size": 9632 + "sha256": "4928d479e2f7165e304bef59cd4e3abadb9f5412886f639de2c7977be23158f2", + "size": 9642 }, { "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": "4a4db770a49a2adccc65fe0e4bb1bb6c23e1721b946588098341da5e7a20c05d", - "size": 14333 + "sha256": "1248c92659a394e7b6f149beb93245f2e494ced910e237fec0d2f79d9764c518", + "size": 14335 }, { "url": "https://support.claude.com/en/articles/12053672-what-happens-to-a-user-s-data-when-they-are-removed-from-a-team-or-enterprise-organization", @@ -8829,7 +8829,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": "2094b7a54c0fa60a742a754df4676b90f5e389a3eb7c94b36b94ec256679f984", + "sha256": "3d3b41bd6edc9adcff0936f83c15dd18c3bbb3fa2ea8dda485f1883e8b31d4fb", "size": 1400 }, { @@ -8843,8 +8843,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": "ad0d5ce2a3fc69eed8b69eff1caff1c8e366b9663b2f46dd305e12337c82f630", - "size": 17960 + "sha256": "bfa862ad7a3a0cae91f94c9a07cec632a2df22263f17200c7db8c776ea587f9d", + "size": 17964 }, { "url": "https://support.claude.com/en/articles/12119250-model-safety-bug-bounty-program", @@ -8871,22 +8871,22 @@ "url": "https://support.claude.com/en/articles/12157520-claude-code-usage-analytics", "status": "success", "path": "support/12157520-claude-code-usage-analytics.md", - "sha256": "95c7eb4dcc8302d22589bd59b0aab4a839da5ccdd24c49987946fb3caf7edd5d", + "sha256": "82f0ba1b0e4a8fe15fe9d2e14dae3d3558b4921630adda49109fcb5d94feaeca", "size": 6427 }, { "url": "https://support.claude.com/en/articles/12260368-use-incognito-chats", "status": "success", "path": "support/12260368-use-incognito-chats.md", - "sha256": "bac7283a1419a3b18655b5a3ed841c24ca8f19cf36b0bdda66c094436916e06b", - "size": 3600 + "sha256": "59d34224b8a35dd2e348b3ce677e46f6946f3a2bc22099bd9eeb247e925d2571", + "size": 3598 }, { "url": "https://support.claude.com/en/articles/12293051-use-claude-in-xcode", "status": "success", "path": "support/12293051-use-claude-in-xcode.md", - "sha256": "29ff5fe723f62f3a5fa1d18b670b2c885a8288d646132f188d7c4fa26d163df5", - "size": 1911 + "sha256": "fada41ed1e38d46520927d92f8f8aefdf99eb61c7259bc6203272188406551f7", + "size": 1907 }, { "url": "https://support.claude.com/en/articles/12304248-manage-api-key-environment-variables-in-claude-code", @@ -8927,15 +8927,15 @@ "url": "https://support.claude.com/en/articles/12429409-manage-usage-credits-for-paid-claude-plans", "status": "success", "path": "support/12429409-manage-usage-credits-for-paid-claude-plans.md", - "sha256": "e5973fcd3aea5a556d690e5ddfa5b03362901a3983a9dc91bc2e836cc389196c", + "sha256": "9fc655015cc159c29f3cd743e7de4c0d1caaf27a0c2c263983232ece1e435658", "size": 6412 }, { "url": "https://support.claude.com/en/articles/12466728-troubleshoot-claude-error-messages", "status": "success", "path": "support/12466728-troubleshoot-claude-error-messages.md", - "sha256": "4d9447ce9ddef58aac579446f5e95fedc814f1bdb3ea2de862f37f00f599a3aa", - "size": 4234 + "sha256": "e7387ad7aafbe5f03b5eb7196294c674e20ad009143e0d7eb50f2ba6f4998ba7", + "size": 4236 }, { "url": "https://support.claude.com/en/articles/12489464-use-enterprise-search", @@ -8955,7 +8955,7 @@ "url": "https://support.claude.com/en/articles/12512180-use-skills-in-claude", "status": "success", "path": "support/12512180-use-skills-in-claude.md", - "sha256": "bda6cec72909254c921e4fd515a3df03387fdd4755116ed519318101146e4b5f", + "sha256": "bc93e753c24b1c90678f47accdb3f7dd938f42e5aa7f49b9d66ac7f138ca034a", "size": 14429 }, { @@ -8976,7 +8976,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": "7aad5911352abb2be60666937fb5b578622b83204ebe55cc57110de89c0345fe", + "sha256": "93b4c78504514f7f332df16bdf3ad333643a94ae652e341241e1a83dfbb3629a", "size": 5716 }, { @@ -8990,8 +8990,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": "81d9356ee790f211fa4148a46351136aead0297e166452375982aca2824cf640", - "size": 10964 + "sha256": "30df30c5fabaa733b10580638080573897bd09949001d3d387368bcef8f21607", + "size": 10970 }, { "url": "https://support.claude.com/en/articles/12622667-enterprise-configuration-for-claude-desktop", @@ -9011,7 +9011,7 @@ "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": "87e127c2ce35266ecc6da1c60b29bc070fb1a2b8f70e01bb91557a9e1763d729", + "sha256": "424cf5bf7ea778de418b7dc5a8bbfe7a4e2139b9298e6ce86732eef6ebd3ff41", "size": 5974 }, { @@ -9046,8 +9046,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": "055f849a7e30a6a274185c8221713ddbc954855db6fdc8a2b9fd627ebbb2c0d9", - "size": 13173 + "sha256": "63b2d297c121ec6ec86c3c3e964809d54718d32be7ce6acb82b2862a80b35c89", + "size": 13175 }, { "url": "https://support.claude.com/en/articles/12902405-claude-in-chrome-troubleshooting", @@ -9067,8 +9067,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": "1e1b16fbdbdc4196341dfa6903451b6817e53d609b6f88ea68a466bb8b451f3f", - "size": 9571 + "sha256": "cb7cc2888b707bad585d926688d0dba3e30bc2c81eefc3d2036db87cb9cf0501", + "size": 9565 }, { "url": "https://support.claude.com/en/articles/12938627-how-to-gift-a-claude-subscription", @@ -9095,7 +9095,7 @@ "url": "https://support.claude.com/en/articles/12997503-team-plan-billing-faqs", "status": "success", "path": "support/12997503-team-plan-billing-faqs.md", - "sha256": "fe1214af5e6aa272d3e791c34ad5ff2524b0fcb037f155040c5a12cc496ac965", + "sha256": "ca77c0af5220636a8dd2aa3a194e766101ec723b8792f1b3c3543b6c3192db6c", "size": 4006 }, { @@ -9144,15 +9144,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": "154cd17d84b91eb22e35390d716d98435a5abae5fc49cd1926a0791daa8ea71e", - "size": 12313 + "sha256": "62eee6ffe7102382875970c55d46d5a66898995107131a8ed510299b59ccce0c", + "size": 12319 }, { "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": "2f2a1d42eee3ff7062f834146f271249bc9195acd18c839301c794915b5b37e1", - "size": 16614 + "sha256": "835a4017d4afb15468603812adc54a2961fad13f5b54f6e527ce49192c5363b2", + "size": 16608 }, { "url": "https://support.claude.com/en/articles/13133750-manage-members-on-team-and-enterprise-plans", @@ -9179,8 +9179,8 @@ "url": "https://support.claude.com/en/articles/13163631-configuring-session-security-settings", "status": "success", "path": "support/13163631-configuring-session-security-settings.md", - "sha256": "43fb5cc1468f6958bd59eed940795abbd9260cf7931571621972e6ed27793140", - "size": 3700 + "sha256": "bb5c10b1e3465cb66125864aee3b645598abed93ddfab4b90d65ff045a8eb92b", + "size": 3712 }, { "url": "https://support.claude.com/en/articles/13163666-holiday-2025-usage-promotion", @@ -9200,8 +9200,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": "4cc53fa43e51dd4dfc4ec13081087879a851a80dedcf8733e35d8f3e68b59295", - "size": 7036 + "sha256": "e7bee0ea798722c5ae760943493ffd9a144058c666b0dbf1b51c0756effdb06b", + "size": 7038 }, { "url": "https://support.claude.com/en/articles/13198485-enforce-network-level-access-control-with-tenant-restrictions", @@ -9228,22 +9228,22 @@ "url": "https://support.claude.com/en/articles/13325567-account-management-faqs", "status": "success", "path": "support/13325567-account-management-faqs.md", - "sha256": "b1cae4d238271ae3e2c95517765b561c0644e9072cdd888d686c1633e88fd755", + "sha256": "e5247f265cdbec40e7f56fb223519948fc852ccb603de74376c1ded579e1a891", "size": 2632 }, { "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": "e7aac729e56ef13da4bcfd0d79bf0e341731fb87877e3106820702730d5877dd", - "size": 20574 + "sha256": "9d300120150c688bfd3e7235577d41b300746aa9e66a468a799f12e7973c9b02", + "size": 20562 }, { "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": "e21ad23b082ab0b34bd94584f7b7033c398b82917e9c2d4a07b8468a43af8a61", - "size": 607 + "sha256": "c1d4be2f72c39185880abcf2f31cb770882cad2c85a673b964425d8d63e89c64", + "size": 611 }, { "url": "https://support.claude.com/en/articles/13346720-export-your-organization-s-data", @@ -9263,7 +9263,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": "91aea1ea2390285aa420180ad704dcbacc852e521892dda82a8c8f3b2394376d", + "sha256": "d22f35b2dd4b0236c36ffdc5b4c7e47948f16fc0f1958d2ced8bfc5ce938df12", "size": 4611 }, { @@ -9319,8 +9319,8 @@ "url": "https://support.claude.com/en/articles/13641943-visual-and-interactive-content", "status": "success", "path": "support/13641943-visual-and-interactive-content.md", - "sha256": "c27eeb4873247fd1a7020ed0032f37fccaa1b90301d81803373b9d8403e08c7d", - "size": 6515 + "sha256": "993372fe3741565074771d0d8d3ec357cb9f83d4f377829e0699c587cf601791", + "size": 6511 }, { "url": "https://support.claude.com/en/articles/13663666-use-visual-and-interactive-content-on-team-and-enterprise-plans", @@ -9347,8 +9347,8 @@ "url": "https://support.claude.com/en/articles/13756069-public-sector-faqs", "status": "success", "path": "support/13756069-public-sector-faqs.md", - "sha256": "378b21f5334d4d873d3e603b7401c0b93d20db15295229ef32f4274031d63864", - "size": 8380 + "sha256": "cad15e6256e476845fd687267de919109a545bd6d31562a16266a213b4b48cb0", + "size": 8382 }, { "url": "https://support.claude.com/en/articles/13776697-join-an-organization-via-invite-link", @@ -9375,22 +9375,22 @@ "url": "https://support.claude.com/en/articles/13837433-manage-plugins-for-your-organization", "status": "success", "path": "support/13837433-manage-plugins-for-your-organization.md", - "sha256": "c8e304fe0733a6cbec708a266481e8353a9169050b627dc98aaff0b466e604fb", - "size": 19938 + "sha256": "55c84cd7507ac0cad4576329fc175819246e702430111254ddebea04d0326fed", + "size": 19934 }, { "url": "https://support.claude.com/en/articles/13837440-use-plugins-in-claude", "status": "success", "path": "support/13837440-use-plugins-in-claude.md", - "sha256": "aabc6cc81bcec0f4fc7521827d1eb3074d6961b2a61ae7225eb12d484cf50318", - "size": 6718 + "sha256": "d26668293ca8a1344c65f45e0fe7be58f658cd9d4735ab38525c3ebec21ba608", + "size": 6714 }, { "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": "68e66a03dc83e87b070e92a1d1945f83fda9b1b6360036b8c04d6e837d502475", - "size": 4771 + "sha256": "97841df2d520e6a3b986d965cceb1bbf822803dc251f1d3a831e75dd9babbf58", + "size": 4743 }, { "url": "https://support.claude.com/en/articles/13917817-google-workspace-sso-scim-email-mismatch", @@ -9473,15 +9473,15 @@ "url": "https://support.claude.com/en/articles/13930458-set-up-role-based-permissions-on-enterprise-plans", "status": "success", "path": "support/13930458-set-up-role-based-permissions-on-enterprise-plans.md", - "sha256": "f718b130d7c34c9b87fe8cf888396ce6982e09dc165a0e590ef783644d5aa9b1", - "size": 42074 + "sha256": "05743d4053d5eb921b712490885815a912f08a91957ee64cc4350e1e396e83d2", + "size": 42076 }, { "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": "1facfb19d88ddb946ce0b1590b57fb4840925841f552d763c203b8dec1487d06", - "size": 8276 + "sha256": "ba0a3abb62584fb8174ecfb38c041abfa834ba113db61f2d3831e5710920893f", + "size": 8278 }, { "url": "https://support.claude.com/en/articles/13979539-custom-visuals-in-chat-and-cowork", @@ -9501,15 +9501,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": "1562091f18acde438bcb815cef3314fd63312e57711cd7f0b4352baf213fbf09", - "size": 5704 + "sha256": "0278799eb96f07704f692f56cbe9530cbcd327fa64dd2ba3e93c759fd34b4e57", + "size": 5690 }, { "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": "71519ee6b07f41f7598a42ec10cb04071084be763f958b4328b6bb25ea089368", - "size": 8288 + "sha256": "93c8e4e2344fcfe24d6de0b99758169f45a73f6ae31aa4ef4cd7ef807778b867", + "size": 8282 }, { "url": "https://support.claude.com/en/articles/14128775-claude-code-on-console-to-enterprise-migration", @@ -9571,8 +9571,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": "1d507aa8b3996372afbca88cfb2b9392c1115cf4eec6c864517239220f87ee44", - "size": 7438 + "sha256": "69032f63a66ebf580afb113dbb33a049c6a03002907321bae5a357ed37b46537", + "size": 7436 }, { "url": "https://support.claude.com/en/articles/14503520-available-beta-and-research-preview-features", @@ -9592,15 +9592,15 @@ "url": "https://support.claude.com/en/articles/14503613-sso-login", "status": "success", "path": "support/14503613-sso-login.md", - "sha256": "4831052d51d15bb56c8c85e23fab5551f0afdca4e0f4954b0a6df76c72f0d276", - "size": 6688 + "sha256": "46141b76c5df320fcf2e9ca61e8568d11b5e1f34f3433274a4e444a45cb5043c", + "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": "7af4ce374c6488d08726a28b8d8362ecb9ea7b65b30aac10318031762e80af7d", - "size": 6415 + "sha256": "20ff50595193cf0562b9106a381349550f3a632cff526c289f3cae89631b2c10", + "size": 6425 }, { "url": "https://support.claude.com/en/articles/14503675-organization-instructions-in-claude-for-government", @@ -9627,8 +9627,8 @@ "url": "https://support.claude.com/en/articles/14503775-mcp-web-search", "status": "success", "path": "support/14503775-mcp-web-search.md", - "sha256": "a6d35d3948acf683a76b568a87872d40e62d90708f0ac21970612ccb1e336ccd", - "size": 4681 + "sha256": "f0f2bd03a8c58dbcb62d4808ca40eedbf6867c5ff8c69cc9cfb2356e9436ab91", + "size": 4675 }, { "url": "https://support.claude.com/en/articles/14503794-model-availability-in-claude-for-government", @@ -9725,21 +9725,21 @@ "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": "56f7f22effe949255ef695fceb61302562895756b132fa9fba2c11fa717603e7", - "size": 4398 + "sha256": "60ae025564195b51bd6f6514625e25152160de2d1933f9bd134919da97bab6f8", + "size": 4396 }, { "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": "8dce462abba55f3c6af27d37a310fedbd4059762556c52ef4bb38650aed24494", - "size": 12737 + "sha256": "683a067cce0e629c961451bb5338e2f9c7271a80e91e81aeb9aeda2b59a2b9d8", + "size": 12733 }, { "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": "62bc80401204b3a9d347b942230803711f68924c1028d0281173bd2516040abe", + "sha256": "16c409b070687f7deaab363db645b724125f4080b52824593f2ef68c44636d5d", "size": 11134 }, { @@ -9802,8 +9802,8 @@ "url": "https://support.claude.com/en/articles/14782391-claude-enterprise-consumption-guide", "status": "success", "path": "support/14782391-claude-enterprise-consumption-guide.md", - "sha256": "fddbafbe56bdebbfa956c436bc85e0e2c597d86057d1e50cbf55a20af0702b9f", - "size": 22304 + "sha256": "2baba368c70166d12342d3584818dece9e500aaece0656047e3bc7bd14458b76", + "size": 25324 }, { "url": "https://support.claude.com/en/articles/14793921-find-and-join-a-console-organization", @@ -9865,7 +9865,7 @@ "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": "389f4a29529a72829532ecb30354d706641e8dd38e60422cd746d1d2a18c5f38", + "sha256": "109b34159e8c610ff65eb200015bd315634e860dbaa94becb8798701f11720b8", "size": 5740 }, { @@ -9977,8 +9977,8 @@ "url": "https://support.claude.com/en/articles/15694740-manage-model-access-for-your-organization", "status": "success", "path": "support/15694740-manage-model-access-for-your-organization.md", - "sha256": "8c7df19330d22e2ab23ddd2d2fd2ae4dcdc6e980e856eb5f85c418984b0739d3", - "size": 8503 + "sha256": "67a072f85af603403a5d4d8da8742570b96ca2c42f68b0ecfdf6428caee78672", + "size": 8495 }, { "url": "https://support.claude.com/en/articles/15707726-using-claude-for-legal-work-privilege-confidentiality-and-how-to-think-about-configuration", @@ -10012,7 +10012,7 @@ "url": "https://support.claude.com/en/articles/15936181-get-started-with-1password-for-claude", "status": "success", "path": "support/15936181-get-started-with-1password-for-claude.md", - "sha256": "98d3042034a390692dc74d862620d809bec8138130e0df294626be19b12f4067", + "sha256": "9953c7c4160bf614b789326a39327112f9b7a89376270254e7ed00e278f1a269", "size": 5056 }, { @@ -12189,7 +12189,7 @@ "url": "https://raw.githubusercontent.com/anthropics/claude-plugins-official/main/.claude-plugin/marketplace.json", "status": "success", "path": "github/claude-plugins-official/.claude-plugin/marketplace.json", - "sha256": "6771469814f3cf8d61e9943629ff61ce0f3cdd58d40f0681339e8ece7c26eee7", + "sha256": "50449eb87355c01b78709cae3d577fe994b96362e56460dfdd1df0d142f24883", "size": 168794 }, { @@ -14968,8 +14968,8 @@ "url": "https://raw.githubusercontent.com/anthropics/claude-quickstarts/main/managed-agents/README.md", "status": "success", "path": "github/claude-quickstarts/managed-agents/README.md", - "sha256": "7d15e1590fd232a397537952486941d50fe34cc3fbbab60535bc12a9aa4168a2", - "size": 2693 + "sha256": "6c8d901d619b40e9a6adcf68e15728f303ce6131562cbcf3f09f3b2cd973e8f1", + "size": 3207 }, { "url": "https://raw.githubusercontent.com/anthropics/claude-quickstarts/main/managed-agents/assistant-ui/CLAUDE.md", @@ -15069,6 +15069,34 @@ "sha256": "1ba56fcc1e2b3503e21fc54eea7615729ffa7e0d0096363a13ab8c6c97dcb03d", "size": 3986 }, + { + "url": "https://raw.githubusercontent.com/anthropics/claude-quickstarts/main/managed-agents/self-hosted-sandboxes/CLAUDE.md", + "status": "success", + "path": "github/claude-quickstarts/managed-agents/self-hosted-sandboxes/CLAUDE.md", + "sha256": "fcc8ebc8779c3bc0dab644fbeff619f0d8b9362dcc52556d5bcc52276a010667", + "size": 4654 + }, + { + "url": "https://raw.githubusercontent.com/anthropics/claude-quickstarts/main/managed-agents/self-hosted-sandboxes/README.md", + "status": "success", + "path": "github/claude-quickstarts/managed-agents/self-hosted-sandboxes/README.md", + "sha256": "1dc0507d1a5426dfbdcb46fdbbed5e8a701af6349e5c6c007f6cc9b50f4385d6", + "size": 1760 + }, + { + "url": "https://raw.githubusercontent.com/anthropics/claude-quickstarts/main/managed-agents/self-hosted-sandboxes/docker-memory/README.md", + "status": "success", + "path": "github/claude-quickstarts/managed-agents/self-hosted-sandboxes/docker-memory/README.md", + "sha256": "9d4c8714f87c3ae8ff250b0c79e94f5ec3b65374abe2ff9c531e7c9b4ce7739e", + "size": 6552 + }, + { + "url": "https://raw.githubusercontent.com/anthropics/claude-quickstarts/main/managed-agents/self-hosted-sandboxes/docker/README.md", + "status": "success", + "path": "github/claude-quickstarts/managed-agents/self-hosted-sandboxes/docker/README.md", + "sha256": "4acdf83496d8c17f6f1ac6a52c9113e80c65cea982e43d35f04286822a533bbe", + "size": 3768 + }, { "url": "https://raw.githubusercontent.com/anthropics/claude-code-action/main/.claude/agents/code-quality-reviewer.md", "status": "success", @@ -15668,8 +15696,8 @@ "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-python/main/CHANGELOG.md", "status": "success", "path": "github/anthropic-sdk-python/CHANGELOG.md", - "sha256": "984b3a9a60fb6405d45e13a989bb3a1768664e675ecfa5eb1841bbc827cff495", - "size": 225120 + "sha256": "4c7605cb2743a116dedd186b1df35945a9547e431872ad557d9753099c3f81f9", + "size": 225824 }, { "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-python/main/CONTRIBUTING.md", @@ -15696,8 +15724,8 @@ "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-python/main/api.md", "status": "success", "path": "github/anthropic-sdk-python/api.md", - "sha256": "9ef233e9df4bef011e5be0bc33614eb9ce0894a5dafcb5b3ab884fdb05c1deec", - "size": 74935 + "sha256": "9a449941e0eb156fb8e350636e818fe6a406c5a809ca39f2ae90bce424b035a3", + "size": 82918 }, { "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-python/main/examples/greeting-SKILL.md", @@ -15710,8 +15738,8 @@ "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-python/main/helpers.md", "status": "success", "path": "github/anthropic-sdk-python/helpers.md", - "sha256": "4c5db647118afe2c7aeb6d13311250fd49429c2688dd6a1d8dd660c10a4fcd89", - "size": 14375 + "sha256": "842e7974c938931282d274d2896a8ecf408a95b4bfcc6ac75909dc42cc8b79dc", + "size": 14424 }, { "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-python/main/src/anthropic/lib/foundry.md", @@ -15738,8 +15766,8 @@ "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-typescript/main/CHANGELOG.md", "status": "success", "path": "github/anthropic-sdk-typescript/CHANGELOG.md", - "sha256": "dc917d37711d026b7a9cc54138422a6c4c1bd4db83e6af743b5cfc5af808692a", - "size": 204133 + "sha256": "aacc993f86ad7f98d96b7855033f58ad5dfb4ded86d0e8a4606173b4b76e272c", + "size": 205144 }, { "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-typescript/main/CLAUDE.md", @@ -15780,8 +15808,8 @@ "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-typescript/main/api.md", "status": "success", "path": "github/anthropic-sdk-typescript/api.md", - "sha256": "ad808a616affd4ee59aa996ed5aadb67c6b210cd1ebd3c832907996dec204b1c", - "size": 111565 + "sha256": "044b3d7cdac80a6abad507bff1ddc8c98c8417cea76c0d769dcdceb1b7fc1ce6", + "size": 127711 }, { "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-typescript/main/examples/greeting-SKILL.md", @@ -15801,8 +15829,8 @@ "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-typescript/main/packages/aws-sdk/CHANGELOG.md", "status": "success", "path": "github/anthropic-sdk-typescript/packages/aws-sdk/CHANGELOG.md", - "sha256": "90ae4d56a389c75a5624b4c9fd100cbcefe72dcc337d287e48e93812f877e4a2", - "size": 8851 + "sha256": "f57c491813dfc036e5f78b708f209eb0727785176ae04042c7cd4a2d556905d1", + "size": 9270 }, { "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-typescript/main/packages/aws-sdk/README.md", @@ -15815,8 +15843,8 @@ "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-typescript/main/packages/bedrock-sdk/CHANGELOG.md", "status": "success", "path": "github/anthropic-sdk-typescript/packages/bedrock-sdk/CHANGELOG.md", - "sha256": "294b50600237e424aedbc3d6e4a4cd7612e89b2d402c2c5b303b31d3c047db50", - "size": 46348 + "sha256": "6d49da0c433a5e34bf25df9e709bbd8c75adbaef2495d05b7d2e21f406c2b881", + "size": 47197 }, { "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-typescript/main/packages/bedrock-sdk/README.md", @@ -15829,8 +15857,8 @@ "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-typescript/main/packages/foundry-sdk/CHANGELOG.md", "status": "success", "path": "github/anthropic-sdk-typescript/packages/foundry-sdk/CHANGELOG.md", - "sha256": "e568219002b03571a4a50338667a8da9a6df5f731bc1760c28d5fe0b84a60e7f", - "size": 5660 + "sha256": "2c576c46d217bad3556ebbb7d4d8d2d3c2682e61219db6adee2ec513448cadc8", + "size": 6104 }, { "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-typescript/main/packages/foundry-sdk/README.md", @@ -15843,8 +15871,8 @@ "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-typescript/main/packages/google-cloud-sdk/CHANGELOG.md", "status": "success", "path": "github/anthropic-sdk-typescript/packages/google-cloud-sdk/CHANGELOG.md", - "sha256": "9ff757df2fb5c45325305b70d2db545f3bf2ebcf2930ca2aa4de31ee6987a966", - "size": 4091 + "sha256": "f2914741ef524ff9815f5d0bc7993b04ff013cf0a3398652bbd1d36befc13fbf", + "size": 4558 }, { "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-typescript/main/packages/google-cloud-sdk/README.md", @@ -15857,8 +15885,8 @@ "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-typescript/main/packages/vertex-sdk/CHANGELOG.md", "status": "success", "path": "github/anthropic-sdk-typescript/packages/vertex-sdk/CHANGELOG.md", - "sha256": "7c201a3621638c53663459eced74f6269837fd98bbab0edee7658f429fe71fd4", - "size": 26978 + "sha256": "2a51d421c2325062d3e61f212975a3f312060507a96d6300817906305bee526c", + "size": 27414 }, { "url": "https://raw.githubusercontent.com/anthropics/anthropic-sdk-typescript/main/packages/vertex-sdk/README.md", @@ -15905,8 +15933,8 @@ ], "failures": [ { - "url": "https://support.claude.com/en/articles/10722177-sharing-prompts-in-the-claude-console", - "error": "404, message='Not Found', url='https://support.claude.com/en/articles/10722177-sharing-prompts-in-the-claude-console.md'" + "url": "https://support.claude.com/en/articles/8114526-how-will-i-be-billed-for-claude-api-use", + "error": "404, message='Not Found', url='https://support.claude.com/en/articles/8114526-how-will-i-be-billed-for-claude-api-use.md'" }, { "url": "https://support.claude.com/en/articles/12650343-use-claude-for-excel", @@ -15938,8 +15966,8 @@ } ], "summary": { - "total": 2279, - "downloaded": 2271, + "total": 2283, + "downloaded": 2275, "skipped": 0, "failed": 8, "success_rate": 99.6 diff --git a/content/CHANGELOG.md b/content/CHANGELOG.md index 17b809154..d2211503d 100644 --- a/content/CHANGELOG.md +++ b/content/CHANGELOG.md @@ -1,5 +1,46 @@ # Changelog +## 2.1.237 + +- Fixed prompt caching for sessions using an LLM gateway or custom base URL +- Added a built-in "Concise" output style: Claude leads with results and skips preamble and narration, while doing the work just as thoroughly. Select it under Output style in /config. + +## 2.1.236 + +- Added `ANTHROPIC_DEFAULT_MODEL` environment variable: sets the model new sessions start on, while a `/model` pick still overrides it and persists across restarts (unlike `ANTHROPIC_MODEL`) +- Added `notify_when_idle` to cross-session `SendMessage`: ask another Claude Code session on this machine to send one notice when it next goes idle — opt-in, one-shot, no polling (macOS and Linux) +- Sandbox: on macOS, wildcard read-deny rules (e.g. `**/.env`) now take precedence inside allowed read regions, cover matched directories' contents, and can't be bypassed by renaming the denied file +- Fixed clipboard copy, background housekeeping, background sessions, and local MCP logs breaking after the directory a session had switched into was removed (since 2.1.229) +- Fixed the fullscreen renderer failing permanently after a single failed start: it now falls back to the classic renderer instead of exiting on every subsequent launch +- Fixed the `/model` picker rendering taller than the terminal: it now shows only as many models as fit the window, with the rest reachable by scrolling +- Fixed `SendMessage` calls being rejected when a malformed closing tag left the message text inside the summary field +- Fixed unhandled promise rejections when a subprocess fails to start, for example `powershell.exe` on WSL with Windows interop disabled (regression in 2.1.234) +- Fixed fullscreen mode sometimes not showing a newly sent message until the next update after the terminal was resized +- Fixed a blank band that could remain above the prompt after clearing a multi-line prompt, and panes not repainting after resizing the terminal away and back, in fullscreen mode +- Fixed the managed-settings approval prompt sometimes not appearing at startup while still capturing the first keypress as approval +- Fixed terminal tab titles jumping in tmux (iTerm tmux integration): the title is now written only when its text changes instead of animating every 960ms +- Fixed an unclear error when the cloud environments list came back empty or malformed +- Fixed the Fable 5 first-time usage-credits prompt auto-selecting the fallback model after 60 seconds with no answer when using Remote Control +- Fixed spinner tips never appearing, with a repeated background error, when the cached guest-pass reward in `~/.claude.json` was malformed +- Fixed skills hot-reload in SDK/VS Code sessions raising an error on every skills change after the session's working directory was deleted (2.1.229+) +- Fixed self-hosted runner sessions released on idle, retire, or startup timeout occasionally resuming on another runner before the post-session hook had finished +- Fixed the Clawd mascot's eyes and feet rendering unevenly in iTerm2 at some font sizes +- Fixed occasional runaway session recaps: recap text (automatic and `/recap`) is now capped at 400 characters, cut at a word boundary +- Improved startup performance: the session counter is now written in the background +- Improved auto mode: `Monitor` allow rules are now set aside while auto mode is active, so Monitor commands are reviewed the same way Bash commands are +- Improved auto mode on Bedrock, Vertex AI, and Foundry, and when telemetry is disabled: the classifier now uses the same defaults as on the Claude API, including severity-scored classification +- Improved auto mode: the git status check can no longer be fooled by a repo's `status.showUntrackedFiles=no` setting into reporting a clean tree +- Changed the `/model` picker to highlight only the newest model's name, so the highlight marks the new release rather than an arbitrary subset of the list +- `/goal`: an idle session whose goal is parked behind long-running background work now checks in automatically after 30 minutes (then 1h, 2h) instead of waiting for you to return +- `/usage` now shows the usage-credits spend row for Team and Enterprise members, and shows a capped row at 0% before anything is spent +- SIGTERM in print/SDK mode no longer records an interrupted turn or synthetic tool denials before exiting; running commands are still terminated and the process still exits with code 143 +- Pressing Enter on a slash-command typo or a command unavailable in this session now reports it instead of running the closest fuzzy match; prefixes and aliases still run +- Remote Control now marks a session offline within seconds when the CLI exits or its terminal closes +- `SendMessage` now refuses further messages to a session up front once a rapid burst would exceed what that session's inbox accepts, instead of reporting them sent while they were dropped +- Aligned the session title chip on the prompt border with the footer's right edge +- Right-aligned footer items (goal indicator, session state, background agent status) and truncated notices now share a consistent right margin with the rest of the prompt area +- [VSCode] Added screen reader support for the transcript: live announcements for replies, permission requests, errors, and status changes, plus per-turn heading navigation + ## 2.1.235 - Added an optional `spellcheck` setting that underlines misspelled words in the prompt input as you type, using your installed `aspell`, `hunspell`, or `ispell` diff --git a/content/claude-code-manifest.json b/content/claude-code-manifest.json index 8e21cc3a2..81abd57b7 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": "c82eb033efe6148a49edad03948249ad9299ed57", - "tarball": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-2.1.235.tgz", + "shasum": "ee9d0ca62e3af256bcf28ae71ae198fb7e67a504", + "tarball": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-2.1.237.tgz", "fileCount": 7, - "integrity": "sha512-poJ4l/nro9NEZEoLU1txUGMMw92m5P3o6Nh86GfaQuPryvOdKIz/ChlPaq3FDetiaXmoNit3ZkEgnQ1PN7z/dQ==", + "integrity": "sha512-abVRJmxRjeoti4i5luV56PZ2T73gJOO7Y1puy/SsXpF5sid0PXbqBkbX4jQMLtdy2Ho4MftJ71v1vCXYrhb9Ww==", "signatures": [ { - "sig": "MEUCICWFRrQ6e/5sYX/aTAiw/df8RDBoLmutS1j4mWM7u+BRAiEA1nYVfv8+kNrhnQlbCGplF06D2E57sNrNjhUekg2REsU=", + "sig": "MEUCIG/2MF1JFbSrDZ01kmap+626aLOoNlEX+kKpoRnj7xrHAiEAtaq9lRUfO7Rg56cvoBUUJasKPlnfKwEWbdmhpwYFecY=", "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U" }, { - "sig": "MEUCIQDB9fa6n4sJFMF+1MODgqK7cxlMnyh0fzPTA0OOxPhpJwIgTB0ldNxmWVRN56SCcFXmNskRD9hwaAOqbTmxJhovV5g=", + "sig": "MEYCIQDOM8DZvrMf0FmjkCXl9WbeQpmh4lcpLqxsKQwmWh4bFwIhAPNGsdytMpcFrn+pDBFV1QLZWLdGYjLpML8NJJV03QQk", "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U" } ], - "unpackedSize": 172650 + "unpackedSize": 172673 }, "name": "@anthropic-ai/claude-code", "type": "module", - "_from": "file:staged-npm/anthropic-ai-claude-code-2.1.235.tgz", + "_from": "file:staged-npm/anthropic-ai-claude-code-2.1.237.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.235.tgz", - "_integrity": "sha512-poJ4l/nro9NEZEoLU1txUGMMw92m5P3o6Nh86GfaQuPryvOdKIz/ChlPaq3FDetiaXmoNit3ZkEgnQ1PN7z/dQ==", + "_resolved": "/home/runner/work/claude-cli-internal/claude-cli-internal/staged-npm/anthropic-ai-claude-code-2.1.237.tgz", + "_integrity": "sha512-abVRJmxRjeoti4i5luV56PZ2T73gJOO7Y1puy/SsXpF5sid0PXbqBkbX4jQMLtdy2Ho4MftJ71v1vCXYrhb9Ww==", "_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.235", - "@anthropic-ai/claude-code-win32-x64": "2.1.235", - "@anthropic-ai/claude-code-darwin-x64": "2.1.235", - "@anthropic-ai/claude-code-linux-arm64": "2.1.235", - "@anthropic-ai/claude-code-win32-arm64": "2.1.235", - "@anthropic-ai/claude-code-darwin-arm64": "2.1.235", - "@anthropic-ai/claude-code-linux-x64-musl": "2.1.235", - "@anthropic-ai/claude-code-linux-arm64-musl": "2.1.235" + "@anthropic-ai/claude-code-linux-x64": "2.1.237", + "@anthropic-ai/claude-code-win32-x64": "2.1.237", + "@anthropic-ai/claude-code-darwin-x64": "2.1.237", + "@anthropic-ai/claude-code-linux-arm64": "2.1.237", + "@anthropic-ai/claude-code-win32-arm64": "2.1.237", + "@anthropic-ai/claude-code-darwin-arm64": "2.1.237", + "@anthropic-ai/claude-code-linux-x64-musl": "2.1.237", + "@anthropic-ai/claude-code-linux-arm64-musl": "2.1.237" }, "_npmOperationalInternal": { - "tmp": "tmp/claude-code_2.1.235_1787077450102_0.9499445655869563", + "tmp": "tmp/claude-code_2.1.237_1787183874722_0.6222272370003468", "host": "s3://npm-registry-packages-npm-production" }, - "_id": "@anthropic-ai/claude-code@2.1.235", - "version": "2.1.235" + "_id": "@anthropic-ai/claude-code@2.1.237", + "version": "2.1.237" } \ No newline at end of file diff --git a/content/en/about-claude/additional-resources.md b/content/en/about-claude/additional-resources.md new file mode 100644 index 000000000..23d7a336a --- /dev/null +++ b/content/en/about-claude/additional-resources.md @@ -0,0 +1,41 @@ +--- +title: Additional resources +url: https://platform.claude.com/docs/en/about-claude/additional-resources +description: Learning resources and documentation formats optimized for AI ingestion. +--- + +## Learning resources + + + + Deployable applications built with the API. + + + + Step-by-step lessons on building with Claude. + + + + Replicable code samples and implementations. + + + + In-depth production guides for building common use cases with Claude. + + + + Key terms and concepts for working with Claude and language models. + + + +## Resources for AI ingestion + + + + Concise API guide meant for ingestion by Claude. + + + + LLM-optimized documentation index. + + diff --git a/content/en/agents-and-tools/agent-skills/enterprise.md b/content/en/agents-and-tools/agent-skills/enterprise.md index f1c7a9347..faef13ace 100644 --- a/content/en/agents-and-tools/agent-skills/enterprise.md +++ b/content/en/agents-and-tools/agent-skills/enterprise.md @@ -115,7 +115,7 @@ Evaluation results signal when to act: As a general guideline, limit the number of Skills loaded simultaneously to maintain reliable recall accuracy. Each Skill's metadata (name and description) competes for attention in the system prompt. With too many Skills active, Claude may fail to select the right Skill or miss relevant ones entirely. Use your evaluation suite to measure recall accuracy as you add Skills, and stop adding when performance degrades. -Note that API requests support a maximum of 8 Skills for each request (see [Using Skills with the API](https://platform.claude.com/docs/en/build-with-claude/skills-guide)). If a role requires more Skills than a single request supports, consider consolidating narrow Skills into broader ones or routing requests to different Skill sets based on task type. +Note that API requests support a maximum of 20 Skills for each request (see [Using Skills with the API](https://platform.claude.com/docs/en/build-with-claude/skills-guide)). If a role requires more Skills than a single request supports, consider consolidating narrow Skills into broader ones or routing requests to different Skill sets based on task type. ### Start specific, consolidate later diff --git a/content/en/agents-and-tools/agent-skills/overview.md b/content/en/agents-and-tools/agent-skills/overview.md index ff5600502..b430f2266 100644 --- a/content/en/agents-and-tools/agent-skills/overview.md +++ b/content/en/agents-and-tools/agent-skills/overview.md @@ -149,11 +149,7 @@ Skills are available across Claude's agent products: The Claude API supports both pre-built Agent Skills and custom Skills. Both work identically: specify the relevant `skill_id` in the `container` parameter along with the [code execution tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool). -**Prerequisites:** Using Skills through the API requires the [code execution tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool), whose container Skills run in, and one beta header: - -* `skills-2025-10-02` - Enables Skills functionality - -Add a second header, `files-api-2025-04-14`, when you use the [Files API](https://platform.claude.com/docs/en/build-with-claude/files) to upload input files to the container or download files a Skill produces. +**Prerequisites:** Using Skills through the API requires the [code execution tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool), whose container Skills run in. On the Claude API, neither the Skills API nor the `container.skills` parameter requires a beta header, and requests that still send `skills-2025-10-02` continue to work. Use pre-built Agent Skills by referencing their `skill_id` (`pptx`, `xlsx`, `docx`, or `pdf`), or create and upload your own through the Skills API (`/v1/skills` endpoints). Custom Skills are shared workspace-wide: all workspace members can access them. diff --git a/content/en/agents-and-tools/agent-skills/quickstart.md b/content/en/agents-and-tools/agent-skills/quickstart.md index 2643c420c..54f9b33f7 100644 --- a/content/en/agents-and-tools/agent-skills/quickstart.md +++ b/content/en/agents-and-tools/agent-skills/quickstart.md @@ -364,10 +364,11 @@ The request includes the following parts: * **`skill_id: "pptx"`:** The PowerPoint Skill identifier * **`version: "latest"`:** The Skill version set to the most recently published * **`tools`:** Enables code execution (required for Skills) -* **Beta header:** `skills-2025-10-02` - The examples on this page use the `code_execution_20260521` tool version, which is generally available and needs only the `skills-2025-10-02` beta header. The Step 3 code parses the result types that current tool versions return. Skills also work with older [code execution tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool) versions such as `code_execution_20250825`: any current code execution tool version satisfies the Skills requirement. If you use a different version, keep its tool `type` and any beta header consistent with the code execution tool page, and always include `skills-2025-10-02`. + Skills are generally available on the Claude API and don't require a beta header. The examples on this page still send the `skills-2025-10-02` beta header and use the SDKs' `beta` namespace. Both remain valid, so you can run the examples as written and omit the header in your own requests. + + The examples use the `code_execution_20260521` tool version, and the Step 3 code parses the result types that current tool versions return. Skills also work with older [code execution tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool) versions such as `code_execution_20250825`: any current code execution tool version satisfies the Skills requirement without a beta header. If you use a different version, use the tool `type` listed on the code execution tool page. When you make this request, Claude automatically matches your task to the relevant Skill. Because you asked for a presentation, Claude determines the PowerPoint Skill is relevant and loads its full instructions: the second level of progressive disclosure. Then Claude runs the Skill's code to create your presentation. diff --git a/content/en/agents-and-tools/tool-use/code-execution-tool.md b/content/en/agents-and-tools/tool-use/code-execution-tool.md index ed41e8228..3825e28f1 100644 --- a/content/en/agents-and-tools/tool-use/code-execution-tool.md +++ b/content/en/agents-and-tools/tool-use/code-execution-tool.md @@ -278,7 +278,7 @@ If you want Claude to run code for a borderline request, ask explicitly (for exa To analyze your own data files (such as CSV, Excel, or images), upload them through the Files API and reference them in your request: - Using the Files API with code execution requires the Files API beta header: `"anthropic-beta": "files-api-2025-04-14"` + This workflow doesn't require a beta header: uploading and downloading files through the Files API and referencing them in `container_upload` blocks are all generally available. The examples on this page send `anthropic-beta: files-api-2025-04-14`, which the API accepts but doesn't require. The Python environment can process various file types uploaded through the Files API, including: diff --git a/content/en/agents-and-tools/tool-use/server-tools.md b/content/en/agents-and-tools/tool-use/server-tools.md index 0f1240319..ed270b1f6 100644 --- a/content/en/agents-and-tools/tool-use/server-tools.md +++ b/content/en/agents-and-tools/tool-use/server-tools.md @@ -1071,6 +1071,10 @@ Invalid domain formats are rejected at request time with a 400 `invalid_request_ Unicode characters in domain names can bypass domain filters through homograph attacks: `аmazon.com` (with a Cyrillic `а`) looks identical to `amazon.com` but is a different domain. Use ASCII-only domain names in allow and block lists, and audit existing entries for non-ASCII characters. +[Claude Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) uses the same `allowed_domains` and `blocked_domains` fields on the `web_search` and `web_fetch` entries of the agent toolset. On Managed Agents, each list holds at most 64 entries, domains listed for `web_fetch` cannot include a path, and fields specific to the Messages API tools, such as `max_uses`, `citations`, and `cache_control`, are not available. See [Restrict web search and web fetch domains](https://platform.claude.com/docs/en/managed-agents/tools#restrict-web-search-and-web-fetch-domains) for the full rules. + +Organization-level web search and web fetch settings in the Claude Console apply to Messages API requests only; they do not apply to Managed Agents sessions, which use only the per-tool lists on the agent toolset. + ## Dynamic filtering with code execution The `_20260209` and later versions of web search and web fetch use code execution internally to apply dynamic filters against search results. diff --git a/content/en/agents-and-tools/tool-use/web-fetch-tool.md b/content/en/agents-and-tools/tool-use/web-fetch-tool.md index 0a75c9fd9..fe4fc5471 100644 --- a/content/en/agents-and-tools/tool-use/web-fetch-tool.md +++ b/content/en/agents-and-tools/tool-use/web-fetch-tool.md @@ -446,6 +446,8 @@ The `max_uses` parameter limits the number of web fetches performed. Failed fetc For domain filtering with `allowed_domains` and `blocked_domains`, see [Server tools](https://platform.claude.com/docs/en/agents-and-tools/tool-use/server-tools#domain-filtering). +On [Claude Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview), set these fields on the `web_fetch` entry of the agent toolset, where each listed domain must be a plain hostname with no path; see [Restrict web search and web fetch domains](https://platform.claude.com/docs/en/managed-agents/tools#restrict-web-search-and-web-fetch-domains). + ### Content limits The `max_content_tokens` parameter limits the amount of content included in the context. If the fetched content exceeds this limit, the tool truncates it. This helps control token usage when fetching large documents. The limit applies to text content, not to binary content such as PDFs. @@ -454,6 +456,8 @@ The `max_content_tokens` parameter limits the amount of content included in the The `max_content_tokens` parameter limit is approximate. The actual number of input tokens used can vary by a small amount. +On Claude Managed Agents, the `web_fetch` entry of the agent toolset also accepts `max_content_tokens`; see [Restrict web search and web fetch domains](https://platform.claude.com/docs/en/managed-agents/tools#restrict-web-search-and-web-fetch-domains). + ### Cache bypass diff --git a/content/en/agents-and-tools/tool-use/web-search-tool.md b/content/en/agents-and-tools/tool-use/web-search-tool.md index 772ade7ba..3d6fef328 100644 --- a/content/en/agents-and-tools/tool-use/web-search-tool.md +++ b/content/en/agents-and-tools/tool-use/web-search-tool.md @@ -237,6 +237,8 @@ The following examples use `web_search_20260318`: Web search is enabled for your organization unless an administrator has disabled it in the [Claude Console](https://platform.claude.com/settings/privacy), where they can also restrict which domains it searches. If it's disabled, a request that includes the tool fails with a 400 `invalid_request_error` that says web search is not enabled, rather than an [error code](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool#errors) inside a search result. +These organization-level settings in the Claude Console apply to Messages API requests only. [Claude Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) sessions use only the per-tool `allowed_domains` and `blocked_domains` lists on the agent toolset; see [Restrict web search and web fetch domains](https://platform.claude.com/docs/en/managed-agents/tools#restrict-web-search-and-web-fetch-domains). + Provide the web search tool in your API request: @@ -446,6 +448,8 @@ Provide `allowed_domains` or `blocked_domains`, not both. If a request includes For the full domain filtering rules, see [Domain filtering](https://platform.claude.com/docs/en/agents-and-tools/tool-use/server-tools#domain-filtering) in the Server tools guide. +On [Claude Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview), set these fields on the `web_search` entry of the agent toolset; see [Restrict web search and web fetch domains](https://platform.claude.com/docs/en/managed-agents/tools#restrict-web-search-and-web-fetch-domains). + ### Localization The `user_location` parameter allows you to localize search results based on a user's location. Provide at least one of `city`, `region`, `country`, or `timezone`. @@ -456,6 +460,8 @@ The `user_location` parameter allows you to localize search results based on a u * `country`: The two-letter [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) country code. The API rejects unsupported country codes with a 400 error. * `timezone`: The [IANA timezone ID](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). +On Claude Managed Agents, the `web_search` entry of the agent toolset accepts a `user_location` object with the same fields. The API rejects an unsupported `country` code with a 400 error when you create or update the agent, or when you create or update a session that supplies the setting. See [Restrict web search and web fetch domains](https://platform.claude.com/docs/en/managed-agents/tools#restrict-web-search-and-web-fetch-domains). + ### Response inclusion diff --git a/content/en/api/overview.md b/content/en/api/overview.md index 20589f12f..e7daa5da8 100644 --- a/content/en/api/overview.md +++ b/content/en/api/overview.md @@ -29,11 +29,11 @@ The Claude API includes the following APIs: * **[Message Batches API](https://platform.claude.com/docs/en/api/messages/batches/create)**: Process large volumes of Messages requests asynchronously with 50% cost reduction (`POST /v1/messages/batches`) * **[Token Counting API](https://platform.claude.com/docs/en/api/messages-count-tokens)**: Count tokens in a message before sending to manage costs and rate limits (`POST /v1/messages/count_tokens`) * **[Models API](https://platform.claude.com/docs/en/api/models/list)**: List available Claude models and their details (`GET /v1/models`) +* **[Files API](https://platform.claude.com/docs/en/api/beta/files/upload)**: Upload and manage files for use across multiple API calls (`POST /v1/files`, `GET /v1/files`) +* **[Skills API](https://platform.claude.com/docs/en/api/skills/create-skill)**: Create and manage custom agent skills (`POST /v1/skills`, `GET /v1/skills`) **Beta:** -* **[Files API](https://platform.claude.com/docs/en/api/beta/files/upload)**: Upload and manage files for use across multiple API calls (`POST /v1/files`, `GET /v1/files`) -* **[Skills API](https://platform.claude.com/docs/en/api/skills/create-skill)**: Create and manage custom agent skills (`POST /v1/skills`, `GET /v1/skills`) * **[Agents API](https://platform.claude.com/docs/en/managed-agents/agent-setup)**: Define reusable, versioned agent configurations for Claude Managed Agents (`POST /v1/agents`, `GET /v1/agents`) * **[Sessions API](https://platform.claude.com/docs/en/managed-agents/sessions)**: Run stateful agent sessions in managed cloud sandboxes (`POST /v1/sessions`, `GET /v1/sessions/{id}/events/stream`) * **[Environments API](https://platform.claude.com/docs/en/managed-agents/environments)**: Configure sandbox templates for agent sessions (`POST /v1/environments`, `GET /v1/environments`) @@ -152,7 +152,7 @@ To go back a page, pass `prev_page` as the `page` parameter. `prev_page` is `nul Every SDK provides an auto-paginating iterator that follows `next_page` for you. In Python and TypeScript, you get it by iterating the list result directly. The other SDKs provide the iterator through a separate method. SDK auto-pagination is forward-only; to go back a page, read `prev_page` from the response and pass it back as the `page` parameter yourself. See [client SDKs](https://platform.claude.com/docs/en/cli-sdks-libraries/overview) for language-specific details. - Some list endpoints use a different cursor scheme. The [Message Batches API](https://platform.claude.com/docs/en/build-with-claude/batch-processing), the [Files API](https://platform.claude.com/docs/en/build-with-claude/files), the [Models API](https://platform.claude.com/docs/en/api/models/list), and several [Admin API](https://platform.claude.com/docs/en/manage-claude/admin-api) endpoints take `after_id` and `before_id` query parameters instead of `page`. Their responses return `has_more`, `first_id`, and `last_id` instead of `next_page`. Some endpoints that use the `page` scheme, such as `GET /v1/skills`, also return a `has_more` Boolean alongside `next_page`. See the reference page for each endpoint for its exact pagination fields. + Some list endpoints use a different cursor scheme. The [Message Batches API](https://platform.claude.com/docs/en/build-with-claude/batch-processing), the [Models API](https://platform.claude.com/docs/en/api/models/list), and several [Admin API](https://platform.claude.com/docs/en/manage-claude/admin-api) endpoints take `after_id` and `before_id` query parameters instead of `page`. Their responses return `has_more`, `first_id`, and `last_id` instead of `next_page`. The [Files API](https://platform.claude.com/docs/en/build-with-claude/files) also uses that scheme when a request includes the `files-api-2025-04-14` beta header; without the header, `GET /v1/files` takes `page` and returns `next_page`. Some endpoints that use the `page` scheme, such as `GET /v1/skills`, also return a `has_more` Boolean alongside `next_page`. See the reference page for each endpoint for its exact pagination fields. ## Rate limits and availability diff --git a/content/en/api/rate-limits.md b/content/en/api/rate-limits.md index 59f8a3c1c..d23e3767b 100644 --- a/content/en/api/rate-limits.md +++ b/content/en/api/rate-limits.md @@ -193,6 +193,10 @@ The Message Batches API has its own set of rate limits which are shared across a | Create endpoints (for example, agents, sessions, and environments) | 300 requests per minute | | Read endpoints (for example, retrieve, list, and stream) | 1,200 requests per minute | +### Files API + +[Files API](https://platform.claude.com/docs/en/build-with-claude/files) requests have their own per-organization limit, shared across upload, list, retrieve, download, and delete operations and separate from the Messages API limits described earlier on this page. See [Files API rate limits](https://platform.claude.com/docs/en/build-with-claude/files#rate-limits) for the current value. + ### Fast mode rate limits When using [fast mode](https://platform.claude.com/docs/en/build-with-claude/fast-mode) (research preview) with `speed: "fast"` on Claude Opus 5 or Opus 4.8, dedicated rate limits apply that are separate from standard Opus rate limits. When fast mode rate limits are exceeded, the API returns a `429` error with a `retry-after` header. Fast mode is not available on Claude Opus 4.7 (requests return an error) or Claude Opus 4.6 (requests to `claude-opus-4-6` with `speed: "fast"` run at standard speed). See [Fast mode](https://platform.claude.com/docs/en/build-with-claude/fast-mode#supported-models). diff --git a/content/en/build-with-claude/citations.md b/content/en/build-with-claude/citations.md index b32e92611..3102e3141 100644 --- a/content/en/build-with-claude/citations.md +++ b/content/en/build-with-claude/citations.md @@ -740,7 +740,7 @@ Plain text documents are automatically chunked into sentences. You can provide t - Files API document sources are in beta. These examples use the beta client path; see [Files API](https://platform.claude.com/docs/en/build-with-claude/files) for upload details. + These examples reference the uploaded file as a `document` source. They use the SDK `beta` client path and send the `anthropic-beta: files-api-2025-04-14` header, which the API accepts but does not require. See [Files API](https://platform.claude.com/docs/en/build-with-claude/files) for upload details. @@ -1571,7 +1571,7 @@ PDF documents can be provided as base64-encoded data, a URL, or by `file_id`. PD - Files API document sources are in beta. These examples use the beta client path; see [Files API](https://platform.claude.com/docs/en/build-with-claude/files) for upload details. + These examples reference the uploaded file as a `document` source. They use the SDK `beta` client path and send the `anthropic-beta: files-api-2025-04-14` header, which the API accepts but does not require. See [Files API](https://platform.claude.com/docs/en/build-with-claude/files) for upload details. diff --git a/content/en/build-with-claude/claude-platform-on-aws.md b/content/en/build-with-claude/claude-platform-on-aws.md index b484a68fb..9bda1d768 100644 --- a/content/en/build-with-claude/claude-platform-on-aws.md +++ b/content/en/build-with-claude/claude-platform-on-aws.md @@ -550,9 +550,10 @@ See the [comparison table](https://platform.claude.com/docs/en/build-with-claude [Claude Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) is available on Claude Platform on AWS, including [agents](https://platform.claude.com/docs/en/managed-agents/agent-setup), [environments](https://platform.claude.com/docs/en/managed-agents/environments), [sessions](https://platform.claude.com/docs/en/managed-agents/sessions), [credential vaults](https://platform.claude.com/docs/en/managed-agents/vaults), [memory stores](https://platform.claude.com/docs/en/managed-agents/memory), [webhooks](https://platform.claude.com/docs/en/managed-agents/webhooks), [multiagent orchestration](https://platform.claude.com/docs/en/managed-agents/multiagent-orchestration), and [self-hosted sandboxes](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes). -Session behavior on Claude Platform on AWS differs from first-party Claude Managed Agents in one way: +Session behavior on Claude Platform on AWS differs from first-party Claude Managed Agents in two ways: * **Autonomous-session reauthentication:** A session can run autonomously, without any [user events](https://platform.claude.com/docs/en/managed-agents/reference#event-types), for up to 6 hours. After 6 hours, the session requires reauthentication before it continues. To reauthenticate, send any user-role event to the session (see [Events and streaming](https://platform.claude.com/docs/en/managed-agents/events-and-streaming)). First-party Claude Managed Agents has no autonomous-session runtime limit. +* **[Memory stores on self-hosted environments](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#use-memory-stores):** A session that runs on a self-hosted environment cannot attach memory stores; a session that includes one is rejected at creation. Sessions on cloud environments attach memory stores as usual. On first-party Claude Managed Agents, sessions on both cloud and self-hosted environments can attach memory stores. ### Features not supported diff --git a/content/en/build-with-claude/files.md b/content/en/build-with-claude/files.md index d9f8615e1..9a608b508 100644 --- a/content/en/build-with-claude/files.md +++ b/content/en/build-with-claude/files.md @@ -5,18 +5,12 @@ description: Upload files once, reference them by file_id in Messages requests, --- ## Compatibility -- Status: Beta -- [Beta header](https://platform.claude.com/docs/en/api/beta-headers): `files-api-2025-04-14` - [ZDR](https://platform.claude.com/docs/en/manage-claude/api-and-data-retention): not eligible -- Platforms: Claude API (beta), Claude Platform on AWS (beta), Microsoft Foundry (beta) [1]; not available on Amazon Bedrock, Google Cloud +- Platforms: Claude API, Claude Platform on AWS (beta), Microsoft Foundry (beta) [1]; not available on Amazon Bedrock, Google Cloud 1. On [Microsoft Foundry](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry), the Files API requires a [Hosted on Anthropic deployment](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#additional-features-not-supported-when-hosted-on-azure). The Files API lets you upload and manage files to use with the Claude API without re-uploading content with each request. This is particularly useful when using the [code execution tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool) to provide inputs (for example, datasets and documents) and then download outputs (for example, charts). You can [explore the API reference directly](https://platform.claude.com/docs/en/api/beta/files/upload), in addition to this guide. - - Reach out through the [feedback form](https://forms.gle/tisHyierGwgN4DUE9) to share your experience with the Files API. - - ## File type support Referencing a `file_id` in a Messages request is supported on all models that support the given file type. [Images](https://platform.claude.com/docs/en/build-with-claude/vision) are supported on all current Claude models. For [PDFs](https://platform.claude.com/docs/en/build-with-claude/pdf-support) and [other file types with the code execution tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool#model-compatibility), see the linked pages for model support. @@ -39,7 +33,10 @@ The Files API provides a create-once, use-many-times approach for working with f ## How to use the Files API - To use the Files API, you'll need to include the beta feature header: `anthropic-beta: files-api-2025-04-14`. The SDKs add this header automatically when you call methods on the `beta.files` namespace, so the SDK examples on this page don't pass it explicitly for file operations. Messages requests that reference a file do need it, which the SDK examples pass through their `betas` parameter. + Requests to the Files API endpoints (`/v1/files`) don't need a beta header, and neither do Messages or Message Batches requests that reference an uploaded file. Two things to know about the `anthropic-beta: files-api-2025-04-14` header the examples on this page still send: + + * **Referencing a file from the Messages API.** Requests that use an uploaded file as a `document` or `image` source, or in a `container_upload` block for the code execution tool, work with or without the header. The SDK examples on this page still pass it through their `betas` parameter, which continues to work. + * **Sending the header on Files API requests.** The SDK `beta.files` methods and the CLI `ant beta:files` commands add the header automatically, and the cURL examples on this page include it. Those requests keep working and return the earlier response format: the list endpoint paginates with `before_id` and `after_id`, returns `has_more`, `first_id`, and `last_id` instead of `next_page`, and rejects the `page` and `ids[]` parameters as unknown fields. File objects returned under the header omit `expires_at` instead of returning `null` when no expiration is set. To use `page` and `ids[]` as described under [List files](https://platform.claude.com/docs/en/build-with-claude/files#list-files), send the request without the beta header. ### Uploading a file @@ -165,7 +162,8 @@ The response from uploading a file includes: "mime_type": "application/pdf", "size_bytes": 1024000, "created_at": "2025-01-01T00:00:00Z", - "downloadable": false + "downloadable": false, + "expires_at": null } ``` @@ -701,7 +699,7 @@ The following examples read a text file and send its contents as plain text: #### List files -Retrieve a list of your uploaded files. The endpoint is paginated: each request returns up to `limit` files (20 by default), and the `before_id` and `after_id` parameters fetch the adjacent page. See the [List Files API reference](https://platform.claude.com/docs/en/api/beta/files/list). The SDKs return the first page and provide auto-pagination helpers. The CLI example bounds the total with `--max-items`: +Retrieve a list of your uploaded files. The endpoint is paginated: each request returns up to `limit` files (20 by default, and at most 1,000), and the response's `next_page` cursor fetches the next page when passed back as the `page` parameter. Files are ordered newest first. See the [List Files API reference](https://platform.claude.com/docs/en/api/beta/files/list). The SDKs return the first page and provide auto-pagination helpers. The CLI example bounds the total with `--max-items`: ```bash cURL @@ -771,6 +769,10 @@ Retrieve a list of your uploaded files. The endpoint is paginated: each request ``` +To check a known set of files in one request instead of paging, pass up to 100 file IDs as `ids[]` query parameters. An `ids[]` request always returns a single page (`next_page` is `null`), and any ID that does not resolve to a file in your workspace is silently omitted from `data`; compare the returned IDs against the requested IDs to detect misses. `ids[]` cannot be combined with `page` or `limit`. + +The `page` parameter, the `next_page` cursor, and the `ids[]` filter apply to requests sent without the `anthropic-beta: files-api-2025-04-14` header. The preceding examples send it (the SDKs and CLI add it for `beta.files` calls), so they receive the earlier list format described in the note under [How to use the Files API](https://platform.claude.com/docs/en/build-with-claude/files#how-to-use-the-files-api). + #### Get file metadata Retrieve information about a specific file: @@ -986,11 +988,28 @@ Download files that were created by [skills](https://platform.claude.com/docs/en * Files are scoped to the workspace of the API key that uploaded them. Any API key in the same workspace can reference them; never accept file IDs from untrusted sources (see the [workspace access warning](https://platform.claude.com/docs/en/build-with-claude/files#workspace-scoped-access)) * Files cannot be modified or renamed after upload. To change a file's content, upload a new file and delete the old one -* Files persist until you delete them with the `DELETE /v1/files/{file_id}` endpoint +* Files persist until you delete them with the `DELETE /v1/files/{file_id}` endpoint or they reach their `expires_at` * Deleted files cannot be recovered * Files are inaccessible through the API shortly after deletion, but they may persist in active Messages API calls and associated tool uses * Files that users delete will be deleted in accordance with Anthropic's [data retention policy](https://privacy.claude.com/en/articles/7996866-how-long-do-you-store-my-organization-s-data). For ZDR eligibility across all features, see [API and data retention](https://platform.claude.com/docs/en/manage-claude/api-and-data-retention) +### File expiration + +To have a file expire automatically, include an `expires_in_seconds` form field when you upload it. The value is an integer number of seconds between 3,600 (1 hour) and 7,776,000 (90 days). The resulting `expires_at` timestamp (RFC 3339) appears on every file response and is `null` for files uploaded without an expiration. Expiration is set once at upload and cannot be changed. + +When a file reaches its `expires_at`: + +* Downloading its content (`GET /v1/files/{file_id}/content`) returns a 404 error +* A Messages request that references the file fails before inference +* Its metadata (`GET /v1/files/{file_id}`) remains readable for up to 30 days, with `expires_at` in the past +* It continues to appear in list responses during that window; compare `expires_at` to the current time to filter expired files + +Deleting an expired file with `DELETE /v1/files/{file_id}` removes its metadata immediately instead of waiting for the 30-day window to elapse. + + + Expiration is a lifecycle feature, not a guaranteed-deletion control. After `expires_at`, file content is no longer retrievable through the API and is released from your storage quota; the underlying content may be retained for a limited period thereafter for safety review before permanent deletion, and file metadata remains visible for up to 30 days after expiration. To remove a file before its scheduled expiration, use `DELETE /v1/files/{file_id}`. + + ### Audit logging If your organization has the [Compliance API](https://platform.claude.com/docs/en/manage-claude/compliance-api) enabled, its [Activity Feed](https://platform.claude.com/docs/en/manage-claude/compliance-activity-feed) records Files API operations made with a Claude API key or from the Claude Console: each upload (`POST /v1/files`), content download (`GET /v1/files/{file_id}/content`), and deletion (`DELETE /v1/files/{file_id}`) appears as a `platform_file_uploaded`, `platform_file_content_downloaded`, or `platform_file_deleted` activity. Listing files and retrieving file metadata are not recorded. Operations that occur while the Compliance API is off are not recorded and cannot be recovered later, so [set up the Compliance API](https://platform.claude.com/docs/en/manage-claude/compliance-api-access) before you rely on this audit trail. On [Claude Platform on AWS](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws#monitoring-and-logging), audit file operations with AWS CloudTrail data events instead. diff --git a/content/en/build-with-claude/overview.md b/content/en/build-with-claude/overview.md index b9efd325e..0456cbf23 100644 --- a/content/en/build-with-claude/overview.md +++ b/content/en/build-with-claude/overview.md @@ -82,7 +82,7 @@ Infrastructure that supports discovering, orchestrating, and scaling tool use. | Feature | Description | ZDR | Availability | | ------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------- | ------------------------------------------------------------------------------ | -| [Agent Skills](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview) | Extend Claude's capabilities with Skills. Use pre-built Skills (PowerPoint, Excel, Word, PDF) or create custom Skills with instructions and scripts. Skills use progressive disclosure to efficiently manage context. | Not ZDR eligible | † | +| [Agent Skills](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview) | Extend Claude's capabilities with Skills. Use pre-built Skills (PowerPoint, Excel, Word, PDF) or create custom Skills with instructions and scripts. Skills use progressive disclosure to efficiently manage context. | Not ZDR eligible | † | | [Fine-grained tool streaming](https://platform.claude.com/docs/en/agents-and-tools/tool-use/fine-grained-tool-streaming) | Stream tool use parameters without buffering/JSON validation, reducing latency for receiving large parameters. | ZDR eligible | | | [MCP connector](https://platform.claude.com/docs/en/agents-and-tools/mcp-connector) | Connect to remote [MCP](https://platform.claude.com/docs/en/mcp) servers directly from the Messages API without a separate MCP client. | Not ZDR eligible | † | | [Programmatic tool calling](https://platform.claude.com/docs/en/agents-and-tools/tool-use/programmatic-tool-calling) | Enable Claude to call your tools programmatically from within code execution containers, reducing latency and token consumption for multi-tool workflows. | Not ZDR eligible | † | @@ -105,9 +105,9 @@ Infrastructure for controlling and optimizing Claude's context window. Manage files and assets for use with Claude. -| Feature | Description | ZDR | Availability | -| ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------- | ---------------- | ------------------------------------------------------------------------- | -| [Files API](https://platform.claude.com/docs/en/build-with-claude/files) | Upload and manage files to use with Claude without re-uploading content with each request. Supports PDFs, images, and text files. | Not ZDR eligible | † | +| Feature | Description | ZDR | Availability | +| ------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------- | ---------------- | --------------------------------------------------------------------- | +| [Files API](https://platform.claude.com/docs/en/build-with-claude/files) | Upload and manage files to use with Claude without re-uploading content with each request. Supports PDFs, images, and text files. | Not ZDR eligible | † | \* **Structured outputs:** Your prompts and Claude's outputs are not stored. Only JSON schemas are cached, for up to 24 hours since last use. **Web search and web fetch:** ZDR-eligible except when [dynamic filtering](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool#dynamic-filtering) is enabled. **Fallback credit and server-side fallback:** The features retain no message content, but both handle refusals from Claude Fable 5, which [is not available under ZDR](https://platform.claude.com/docs/en/manage-claude/api-and-data-retention#model-specific-data-retention-requirements). See [ZDR details](https://platform.claude.com/docs/en/manage-claude/api-and-data-retention#feature-eligibility). diff --git a/content/en/build-with-claude/pdf-support.md b/content/en/build-with-claude/pdf-support.md index 975463426..d242785be 100644 --- a/content/en/build-with-claude/pdf-support.md +++ b/content/en/build-with-claude/pdf-support.md @@ -704,7 +704,7 @@ If you need to send PDFs from your local system or when a URL isn't available: #### Option 3: Files API -For PDFs you'll use repeatedly, or when you want to avoid encoding overhead, use the [Files API](https://platform.claude.com/docs/en/build-with-claude/files) (beta): +For PDFs you'll use repeatedly, or when you want to avoid encoding overhead, use the [Files API](https://platform.claude.com/docs/en/build-with-claude/files). These examples send the `anthropic-beta: files-api-2025-04-14` header, which the API accepts but doesn't require: ```bash cURL diff --git a/content/en/build-with-claude/skills-guide.md b/content/en/build-with-claude/skills-guide.md index 6a6238f23..a199a5df7 100644 --- a/content/en/build-with-claude/skills-guide.md +++ b/content/en/build-with-claude/skills-guide.md @@ -47,7 +47,7 @@ You can use Skills from two sources: | ------------------ | ------------------------------------------ | ------------------------------------------------------------------------------------------------------ | | **Type value** | `anthropic` | `custom` | | **Skill IDs** | Short names: `pptx`, `xlsx`, `docx`, `pdf` | Generated: `skill_01AbCdEfGhIjKlMnOpQrStUv` | -| **Version format** | Date-based: `20251013` or `latest` | Epoch timestamp: `1759178010641129` or `latest` | +| **Version format** | Date-based: `20251013` or `latest` | Version ID: `skver_01AbCdEfGhIjKlMnOpQrStUv` or `latest` | | **Management** | Pre-built and maintained by Anthropic | Upload and manage through the [Skills API](https://platform.claude.com/docs/en/api/beta/skills/create) | | **Availability** | Available to all users | Private to your workspace | @@ -58,14 +58,9 @@ Both skill sources are returned by the [List Skills endpoint](https://platform.c To use Skills, you need: 1. **Claude API key** from the [Claude Console](https://platform.claude.com/settings/keys) +2. **[Code execution tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool)** enabled in your requests -2. **Beta headers:** - - * `code-execution-2025-08-25` - Enables code execution (required for Skills) - * `skills-2025-10-02` - Enables Skills API - * `files-api-2025-04-14` - Required only when you use the [Files API](https://platform.claude.com/docs/en/build-with-claude/files) to upload input files or download files a Skill produces - -3. **[Code execution tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool)** enabled in your requests +Skills are generally available on the Claude API and don't require an `anthropic-beta` header, either for the Skills API or for `container.skills` in Messages requests. The examples in this guide still send the `skills-2025-10-02` beta header (plus `code-execution-2025-08-25` in Messages requests) and use the SDKs' `beta` namespace. Both headers remain valid opt-ins, so the examples work as written, and you can omit them in your own requests. Skills require the code execution tool, so use a model from its [model compatibility list](https://platform.claude.com/docs/en/agents-and-tools/tool-use/code-execution-tool#model-compatibility). @@ -75,7 +70,7 @@ Skills require the code execution tool, so use a model from its [model compatibi ### Container parameter -Skills are specified using the `container` parameter in the Messages API. You can include up to 8 Skills for each request. +Skills are specified using the `container` parameter in the Messages API. You can include up to 20 Skills for each request. The structure is identical for both Anthropic and custom Skills. Specify the required `type` and `skill_id`, and optionally include `version` to pin to a specific version: @@ -2256,7 +2251,7 @@ A Skill bundle is a directory containing a `SKILL.md` file at the top level with Upload your custom Skill to make it available in your workspace. You can upload a zip archive or individual file objects. The Python SDK also provides a `files_from_dir` helper that accepts a directory path. -Files are identified by the filename you attach. Per-file uploads must keep a common top-level directory in their paths (the `;filename=` suffix in the cURL example and the filename arguments in the SDK examples). A zip archive must contain the skill directory as its single top-level entry. For the walkthrough's skill, create one with `zip -r financial_skill.zip financial_skill/` and substitute it for the `example_skill.zip` placeholder in the zip-upload options. +Files are identified by the filename you attach (the `;filename=` suffix in the cURL example and the filename arguments in the SDK examples). For the walkthrough's skill, create a zip with `zip -r financial_skill.zip financial_skill/` and substitute it for the `example_skill.zip` placeholder in the zip-upload options. ```bash cURL @@ -2526,13 +2521,9 @@ Files are identified by the filename you attach. Per-file uploads must keep a co **Requirements:** -* Must include a `SKILL.md` file at the top level - -* All files must specify a common root directory in their paths - -* The top-level directory name must match the `name` in `SKILL.md` frontmatter (case and underscore insensitive: `Financial_Skill` matches `financial-skill`) +* Must include a `SKILL.md` file at the upload root (or at the top of a single enclosing folder) -* `display_title` is optional: when omitted, it derives from the `SKILL.md` `name`; an explicit value must be unique among the custom skills in your workspace +* `display_name` is optional: when omitted, it derives from the `SKILL.md` `name`; an explicit value may be up to 255 characters and does not need to be unique within the workspace * Total upload size must be under 30 MB (uncompressed) @@ -2796,128 +2787,44 @@ Get details about a specific Skill: ### Deleting a Skill -To delete a Skill, you must first delete all its versions: +Deleting a Skill also removes all of its versions. The cascade is GA-only behavior, so unlike the other examples in this guide, these call the GA surface directly rather than the `beta` namespace. ```bash cURL - # Step 1: List the versions, then delete each one - curl "https://api.anthropic.com/v1/skills/skill_01AbCdEfGhIjKlMnOpQrStUv/versions" \ - -H "x-api-key: $ANTHROPIC_API_KEY" \ - -H "anthropic-version: 2023-06-01" \ - -H "anthropic-beta: skills-2025-10-02" - - # Repeat for each version the list returned - curl -X DELETE "https://api.anthropic.com/v1/skills/skill_01AbCdEfGhIjKlMnOpQrStUv/versions/1759178010641129" \ - -H "x-api-key: $ANTHROPIC_API_KEY" \ - -H "anthropic-version: 2023-06-01" \ - -H "anthropic-beta: skills-2025-10-02" - - # Step 2: Delete the Skill curl -X DELETE "https://api.anthropic.com/v1/skills/skill_01AbCdEfGhIjKlMnOpQrStUv" \ -H "x-api-key: $ANTHROPIC_API_KEY" \ - -H "anthropic-version: 2023-06-01" \ - -H "anthropic-beta: skills-2025-10-02" + -H "anthropic-version: 2023-06-01" ``` ```bash CLI - # Step 1: List the versions, then delete each one - ant beta:skills:versions list \ - --skill-id skill_01AbCdEfGhIjKlMnOpQrStUv \ - --transform version \ - --raw-output - - # Repeat for each version id the list returned - ant beta:skills:versions delete \ - --skill-id skill_01AbCdEfGhIjKlMnOpQrStUv \ - --version 1759178010641129 >/dev/null - - # Step 2: Delete the Skill - ant beta:skills delete \ + ant skills delete \ --skill-id skill_01AbCdEfGhIjKlMnOpQrStUv >/dev/null ``` ```python Python client = anthropic.Anthropic() - # Step 1: Delete all versions - for version in client.beta.skills.versions.list( - skill_id="skill_01AbCdEfGhIjKlMnOpQrStUv" - ): - client.beta.skills.versions.delete( - skill_id="skill_01AbCdEfGhIjKlMnOpQrStUv", - version=version.version, - ) - - # Step 2: Delete the Skill - client.beta.skills.delete(skill_id="skill_01AbCdEfGhIjKlMnOpQrStUv") + client.skills.delete(skill_id="skill_01AbCdEfGhIjKlMnOpQrStUv") ``` ```typescript TypeScript const client = new Anthropic(); - // Step 1: Delete all versions - for await (const version of client.beta.skills.versions.list( - "skill_01AbCdEfGhIjKlMnOpQrStUv" - )) { - await client.beta.skills.versions.delete(version.version, { - skill_id: "skill_01AbCdEfGhIjKlMnOpQrStUv" - }); - } - - // Step 2: Delete the Skill - await client.beta.skills.delete("skill_01AbCdEfGhIjKlMnOpQrStUv"); + await client.skills.delete("skill_01AbCdEfGhIjKlMnOpQrStUv"); ``` ```csharp C# - using Anthropic.Models.Beta.Skills.Versions; - // ... AnthropicClient client = new(); - // Step 1: Delete all versions - await foreach (var version in (await client.Beta.Skills.Versions.List("skill_01AbCdEfGhIjKlMnOpQrStUv")).Paginate()) - { - await client.Beta.Skills.Versions.Delete( - version.Version, - new VersionDeleteParams { SkillID = "skill_01AbCdEfGhIjKlMnOpQrStUv" } - ); - } - - // Step 2: Delete the Skill - await client.Beta.Skills.Delete("skill_01AbCdEfGhIjKlMnOpQrStUv"); + await client.Skills.Delete("skill_01AbCdEfGhIjKlMnOpQrStUv"); ``` ```go Go client := anthropic.NewClient() - // Step 1: Delete all versions - versions := client.Beta.Skills.Versions.ListAutoPaging( - context.TODO(), - "skill_01AbCdEfGhIjKlMnOpQrStUv", - anthropic.BetaSkillVersionListParams{}, - ) - - for versions.Next() { - version := versions.Current() - _, err := client.Beta.Skills.Versions.Delete( - context.TODO(), - version.Version, - anthropic.BetaSkillVersionDeleteParams{ - SkillID: "skill_01AbCdEfGhIjKlMnOpQrStUv", - }, - ) - if err != nil { - log.Fatal(err) - } - } - if versions.Err() != nil { - log.Fatal(versions.Err()) - } - - // Step 2: Delete the Skill - _, err := client.Beta.Skills.Delete( + _, err := client.Skills.Delete( context.TODO(), "skill_01AbCdEfGhIjKlMnOpQrStUv", - anthropic.BetaSkillDeleteParams{}, ) if err != nil { log.Fatal(err) @@ -2925,46 +2832,17 @@ To delete a Skill, you must first delete all its versions: ``` ```java Java - import com.anthropic.models.beta.skills.versions.VersionListPage; - import com.anthropic.models.beta.skills.versions.VersionDeleteParams; - // ... void main() { AnthropicClient client = AnthropicOkHttpClient.fromEnv(); - // Step 1: Delete all versions - VersionListPage versions = client.beta().skills().versions().list("skill_01AbCdEfGhIjKlMnOpQrStUv"); - - for (var version : versions.autoPager()) { - client.beta().skills().versions().delete( - version.version(), - VersionDeleteParams.builder() - .skillId("skill_01AbCdEfGhIjKlMnOpQrStUv") - .build() - ); - } - - // Step 2: Delete the Skill - client.beta().skills().delete("skill_01AbCdEfGhIjKlMnOpQrStUv"); + client.skills().delete("skill_01AbCdEfGhIjKlMnOpQrStUv"); } ``` ```php PHP $client = new Client(); - // Step 1: Delete all versions - $versions = $client->beta->skills->versions->list( - skillID: 'skill_01AbCdEfGhIjKlMnOpQrStUv', - ); - - foreach ($versions->pagingEachItem() as $version) { - $client->beta->skills->versions->delete( - skillID: 'skill_01AbCdEfGhIjKlMnOpQrStUv', - version: $version->version, - ); - } - - // Step 2: Delete the Skill - $client->beta->skills->delete( + $client->skills->delete( skillID: 'skill_01AbCdEfGhIjKlMnOpQrStUv', ); ``` @@ -2972,21 +2850,10 @@ To delete a Skill, you must first delete all its versions: ```ruby Ruby client = Anthropic::Client.new - # Step 1: Delete all versions - client.beta.skills.versions.list("skill_01AbCdEfGhIjKlMnOpQrStUv").auto_paging_each do |version| - client.beta.skills.versions.delete( - version.version, - skill_id: "skill_01AbCdEfGhIjKlMnOpQrStUv" - ) - end - - # Step 2: Delete the Skill - client.beta.skills.delete("skill_01AbCdEfGhIjKlMnOpQrStUv") + client.skills.delete("skill_01AbCdEfGhIjKlMnOpQrStUv") ``` -Attempting to delete a Skill with existing versions returns a 400 error. - ### Versioning Skills support versioning to manage updates safely: @@ -2999,11 +2866,11 @@ Skills support versioning to manage updates safely: **Custom Skills:** -* Auto-generated epoch timestamps: `1759178010641129` +* Auto-generated version IDs: `skver_01AbCdEfGhIjKlMnOpQrStUv` * Use `"latest"` to always get the most recent version * Create new versions when updating Skill files -A new version is a complete snapshot, not a delta: upload the Skill's full file set each time, under the same top-level directory name used at creation. Files you omit are not carried over. The following examples re-upload the complete `financial_skill/` bundle from [Creating a Skill](https://platform.claude.com/docs/en/build-with-claude/skills-guide#creating-a-skill). +A new version is a complete snapshot, not a delta: upload the Skill's full file set each time. Files you omit are not carried over, and the `name` in the new version's `SKILL.md` must match the Skill's existing name. The following examples re-upload the complete `financial_skill/` bundle from [Creating a Skill](https://platform.claude.com/docs/en/build-with-claude/skills-guide#creating-a-skill). ```bash cURL @@ -3902,7 +3769,7 @@ Combine Excel and custom DCF analysis Skills: ### Request limits -* **Maximum Skills per request:** 8 +* **Maximum Skills per request:** 20 * **Maximum Skill upload size:** 30 MB (all files combined, uncompressed) diff --git a/content/en/claude_api_primer.md b/content/en/claude_api_primer.md index ff89c07af..2e978af32 100644 --- a/content/en/claude_api_primer.md +++ b/content/en/claude_api_primer.md @@ -21,7 +21,7 @@ For fast, cost-effective tasks: Claude Haiku 4.5: claude-haiku-4-5-20251001 ### Basic request and response - + ```bash CLI ant messages create \ --model claude-opus-5 \ @@ -66,7 +66,7 @@ For fast, cost-effective tasks: Claude Haiku 4.5: claude-haiku-4-5-20251001 The Messages API is stateless, which means that you always send the full conversational history to the API. You can use this pattern to build up a conversation over time. Earlier conversational turns don't necessarily need to actually originate from Claude. You can use synthetic `assistant` messages. - + ```bash CLI ant messages create <<'YAML' model: claude-opus-5 @@ -105,7 +105,7 @@ You can prefill part of Claude's response in the last position of the input mess Claude 4.6 and later models and Claude Mythos Preview do not support assistant message prefill; requests to those models must end with a user message. The examples below use a model that supports prefill. - + ```bash CLI ant messages create <<'YAML' model: claude-sonnet-4-5 @@ -140,7 +140,7 @@ You can prefill part of Claude's response in the last position of the input mess Claude can read both text and images in requests. Both `base64` and `url` source types are supported for images, along with the `image/jpeg`, `image/png`, `image/gif`, and `image/webp` media types. - + ```bash CLI IMAGE_URL="https://platform.claude.com/docs/images/vision-example.jpg" @@ -260,7 +260,7 @@ Thinking is supported in the following models: When thinking is on, Claude creates `thinking` content blocks where it outputs its internal reasoning. The API response includes `thinking` content blocks, followed by `text` content blocks. - + ```bash CLI ant messages create \ --transform content --format yaml <<'YAML' @@ -314,7 +314,7 @@ Important limitations: ### Preserving thinking blocks - + ```bash CLI # First request: capture the assistant content array (thinking + tool_use # blocks, signatures intact) as compact JSON. @@ -448,7 +448,7 @@ Interleaved thinking enables Claude to think between tool calls, reasoning about On older models that use manual extended thinking (Claude 4, 4.5, and Sonnet 4.6 models), enable interleaved thinking by adding the beta header `interleaved-thinking-2025-05-14` to your API request: - + ```bash CLI ant beta:messages create --beta interleaved-thinking-2025-05-14 <<'YAML' model: claude-sonnet-4-6 @@ -719,7 +719,7 @@ When creating a Message, you can set `"stream": true` to incrementally stream th ### Streaming with SDKs - + ```bash CLI ant messages create --stream --format jsonl \ --model claude-opus-5 \ diff --git a/content/en/docs/claude-code/agent-sdk/hosting.md b/content/en/docs/claude-code/agent-sdk/hosting.md index f12c2213b..0d1373795 100644 --- a/content/en/docs/claude-code/agent-sdk/hosting.md +++ b/content/en/docs/claude-code/agent-sdk/hosting.md @@ -267,11 +267,11 @@ To isolate tenants inside a shared container: * Pass `settingSources: []` in TypeScript or `setting_sources=[]` in Python so no filesystem settings load. * Set `CLAUDE_CODE_DISABLE_AUTO_MEMORY=1` in `env`. [Auto memory](/docs/en/memory#auto-memory) at `~/.claude/projects//memory/` loads into the system prompt regardless of `settingSources`. See [What settingSources does not control](/docs/en/agent-sdk/claude-code-features#what-settingsources-does-not-control) for the other inputs that load unconditionally. -* Point `CLAUDE_CONFIG_DIR` at a per-tenant directory so tenants do not share the `~/.claude.json` global config. +* Point `CLAUDE_CONFIG_DIR` at a per-tenant directory so tenants do not share the `~/.claude.json` global config. When each config directory serves one working directory, you can also set [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/en/sessions#name-the-project-directory-yourself) in `env` to keep the transcript paths under it short. Requires TypeScript Agent SDK v0.3.234 or later. * Use a per-tenant working directory. Pass `cwd` explicitly on every `query()` call. * Apply per-tenant egress rules at your proxy, such as distinct outbound IPs, credentials, or domain allowlists, so a compromised tenant cannot exfiltrate data via another tenant's outbound policy. -The example below applies the four SDK-level options together. Construct `tenantDir` and `configDir` so each tenant gets a path no other tenant can read. In TypeScript, `env` replaces the subprocess environment, so spread `...process.env` to keep inherited variables like `PATH` and `ANTHROPIC_API_KEY`. In Python, `env` is merged on top of the inherited environment. +The example below applies the settings, auto memory, config directory, and working directory options together. Construct `tenantDir` and `configDir` so each tenant gets a path no other tenant can read. In TypeScript, `env` replaces the subprocess environment, so spread `...process.env` to keep inherited variables like `PATH` and `ANTHROPIC_API_KEY`. In Python, `env` is merged on top of the inherited environment. ```typescript TypeScript theme={null} diff --git a/content/en/docs/claude-code/agent-sdk/python.md b/content/en/docs/claude-code/agent-sdk/python.md index 5cce8c638..56b5afda6 100644 --- a/content/en/docs/claude-code/agent-sdk/python.md +++ b/content/en/docs/claude-code/agent-sdk/python.md @@ -295,13 +295,14 @@ def get_session_messages( #### Return type: `SessionMessage` -| Property | Type | Description | -| :------------------- | :----------------------------- | :------------------------ | -| `type` | `Literal["user", "assistant"]` | Message role | -| `uuid` | `str` | Unique message identifier | -| `session_id` | `str` | Session identifier | -| `message` | `Any` | Raw message content | -| `parent_tool_use_id` | `None` | Reserved for future use | +| Property | Type | Description | +| :------------------- | :----------------------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | `Literal["user", "assistant"]` | Message role | +| `uuid` | `str` | Unique message identifier | +| `session_id` | `str` | Session identifier | +| `message` | `Any` | Raw message content | +| `parent_tool_use_id` | `str \| None` | For subagent messages, the id of the spawning `Agent` tool-use block. `None` for main-session messages and older sessions | +| `parent_agent_id` | `str \| None` | For messages from a [nested subagent](/docs/en/sub-agents#let-subagents-spawn-their-own-subagents), the agent id of the parent subagent. `None` for main-session messages, top-level subagent messages, and older sessions | #### Example @@ -776,6 +777,7 @@ class ClaudeAgentOptions: user: str | None = None include_partial_messages: bool = False include_hook_events: bool = False + forward_subagent_text: bool = False fork_session: bool = False resume_session_at: str | None = None resume_drops_turn: str | None = None @@ -828,6 +830,7 @@ class ClaudeAgentOptions: | `user` | `str \| None` | `None` | User identifier | | `include_partial_messages` | `bool` | `False` | Include partial message streaming events. When enabled, [`StreamEvent`](#streamevent) messages are yielded | | `include_hook_events` | `bool` | `False` | Include hook lifecycle events in the message stream as `HookEventMessage` objects | +| `forward_subagent_text` | `bool` | `False` | Forward subagent text and thinking blocks in the message stream. By default only subagent `tool_use` and `tool_result` blocks are emitted | | `fork_session` | `bool` | `False` | When resuming with `resume`, fork to a new session ID instead of continuing the original session | | `resume_session_at` | `str \| None` | `None` | When resuming, load the conversation only up to and including the message with this UUID. Use with `resume`, and usually `fork_session`, to branch from an earlier point | | `resume_drops_turn` | `str \| None` | `None` | UUID of the user prompt whose turn a `resume_session_at` truncation discards. When set, the CLI refuses the resume if the discarded range holds entries not attributable to that turn. Requires Claude Code v2.1.223 or later; the bundled CLI satisfies this | diff --git a/content/en/docs/claude-code/agent-sdk/session-storage.md b/content/en/docs/claude-code/agent-sdk/session-storage.md index 6505e1a90..e44d014ce 100644 --- a/content/en/docs/claude-code/agent-sdk/session-storage.md +++ b/content/en/docs/claude-code/agent-sdk/session-storage.md @@ -86,7 +86,11 @@ A `SessionStore` is an object with two required methods, `append` and `load`, an ``` -`SessionKey` addresses one transcript. `projectKey` is a stable, filesystem-safe encoding of the working directory, `sessionId` is the session UUID, and `subpath` is set when the entry belongs to a subagent transcript or sidecar file rather than the main conversation. Because `projectKey` encodes the working directory, resume or continue from the store from a working directory matching the original run's. Treat `subpath` as an opaque key suffix; it follows the on-disk layout, for example `subagents/agent-`. When `subpath` is undefined the key refers to the main transcript. +`SessionKey` addresses one transcript. `projectKey` is a stable, filesystem-safe encoding of the working directory, `sessionId` is the session UUID, and `subpath` is set when the entry belongs to a subagent transcript or sidecar file rather than the main conversation. + +Because `projectKey` encodes the working directory, resume or continue from the store from a working directory matching the original run's. In TypeScript, if you set [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/en/sessions#name-the-project-directory-yourself) beside `CLAUDE_CONFIG_DIR` in a query's [`env` option](/docs/en/agent-sdk/typescript#options), the SDK keys that query's entries, and its `resume` and `continue` lookups, by that name instead. Requires Agent SDK v0.3.234 or later. + +Treat `subpath` as an opaque key suffix; it follows the on-disk layout, for example `subagents/agent-`. When `subpath` is undefined the key refers to the main transcript. | Method | Required | Called when | | :--------------------- | :------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | diff --git a/content/en/docs/claude-code/agent-sdk/sessions.md b/content/en/docs/claude-code/agent-sdk/sessions.md index 1e76e17f1..99ecbc7a2 100644 --- a/content/en/docs/claude-code/agent-sdk/sessions.md +++ b/content/en/docs/claude-code/agent-sdk/sessions.md @@ -269,7 +269,11 @@ This example resumes the session from [Capture the session ID](#capture-the-sess You should see a response that builds on the earlier analysis instead of starting fresh. That confirms the agent resumed the session with its prior context intact. - Claude Code stores sessions under `~/.claude/projects//*.jsonl`. If you set the `CLAUDE_CONFIG_DIR` environment variable, look under `$CLAUDE_CONFIG_DIR/projects/` instead. To find your session's directory, replace every non-alphanumeric character in the absolute working directory with `-`: `/Users/me/proj` becomes `-Users-me-proj`. For a working directory whose converted name exceeds 200 characters, Claude Code [truncates the name and appends a hash](/docs/en/sessions#where-transcripts-are-stored), so match the first 200 characters of the converted name when you list `projects/`. + Claude Code stores sessions under `~/.claude/projects//*.jsonl`. If you set the `CLAUDE_CONFIG_DIR` environment variable, look under `$CLAUDE_CONFIG_DIR/projects/` instead. + + To find your session's directory, replace every non-alphanumeric character in the absolute working directory with `-`: `/Users/me/proj` becomes `-Users-me-proj`. For a working directory whose converted name exceeds 200 characters, Claude Code [truncates the name and appends a hash](/docs/en/sessions#where-transcripts-are-stored), so match the first 200 characters of the converted name when you list `projects/`. + + If you set [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/en/sessions#name-the-project-directory-yourself) beside `CLAUDE_CONFIG_DIR`, look under that name in `projects/` instead. Requires TypeScript Agent SDK v0.3.234 or later. You can resume from any working directory: diff --git a/content/en/docs/claude-code/agent-sdk/typescript.md b/content/en/docs/claude-code/agent-sdk/typescript.md index b43834a83..d8e8b4973 100644 --- a/content/en/docs/claude-code/agent-sdk/typescript.md +++ b/content/en/docs/claude-code/agent-sdk/typescript.md @@ -1331,6 +1331,7 @@ type SDKSystemMessage = { plugins: { name: string; path: string }[]; fast_mode_state?: FastModeState; fast_mode_disabled_reason?: FastModeDisabledReason; + effort?: "low" | "medium" | "high" | "xhigh" | "max" | null; capabilities?: string[]; }; ``` @@ -1339,6 +1340,8 @@ type SDKSystemMessage = { `terminal_slash_commands` names the entries in `slash_commands` whose interface is bound to the local terminal, such as `exit`. You can send them like any other entry in `slash_commands`; the field exists so a remote or mobile client can hide them from its command menus. The field is present only when non-empty, and requires Agent SDK v0.3.229 or later. +* `effort`: the [effort level](/docs/en/model-config#adjust-effort-level) Claude Code sends on the session's next request, or `null` when it sends none. Claude Code sets the field only on the init message it sends to [Remote Control](/docs/en/remote-control) clients, and omits it from the init message your application reads. Requires Agent SDK v0.3.234 or later. + The `capabilities` array names the protocol behaviors this CLI implements, so you can feature-detect instead of comparing `claude_code_version` strings. It is an open set: ignore values you don't recognize, and check for the specific capability whose behavior you rely on. The field requires Claude Code v2.1.205 or later and is absent on earlier CLIs. | Capability | Meaning | @@ -1570,6 +1573,7 @@ type SDKMessageOrigin = | { kind: "peer"; from: string; + fromMode?: "bypass" | "prompting"; name?: string; fromSession?: string; senderTaskId?: string; @@ -1609,6 +1613,7 @@ Every other task notification has no `subkind`. That includes [scheduled tasks]( A `peer` origin identifies which agent sent the message: an in-process [teammate](/docs/en/agent-teams) sending to `main` with `SendMessage`, or a [cross-session peer](/docs/en/cross-session-messaging), another of your Claude Code sessions. A cross-session peer can run on the same machine, or on [another of your machines](/docs/en/cross-session-messaging#message-sessions-on-other-machines) or [Claude Code on the web](/docs/en/claude-code-on-the-web) when its message arrives through Remote Control. The two kinds of sender fill the fields differently: * `from`: the teammate's name, or the sender address for a cross-session peer. For a [one-way cross-machine message](/docs/en/cross-session-messaging#message-sessions-on-other-machines), the sender has no reply address and `from` is `"unknown"`. The value is sender-authored; `verifiedPeerPid` is the verified identity. +* `fromMode`: the sending session's permission class, `bypass` or `prompting`, declared by a host that relays a peer message between your sessions, such as the [desktop app](/docs/en/desktop#work-across-sessions). Claude Code reads it in the receiving session when it applies the [inbound controls](/docs/en/cross-session-messaging#control-inbound-messages). Requires Agent SDK v0.3.234 or later. * `senderTaskId`: the teammate's task ID. Absent for a cross-session peer. * `name`: the sender's display name, normalized by Claude Code: it strips Unicode control, format, surrogate, and line or paragraph separator code points, then trims the result and caps it at 64 code points with an ellipsis. Requires Claude Code v2.1.205 or later. * `body`: the decoded message body with the peer envelope stripped, byte-exact with what the model sees. Always present for a teammate message; for a cross-session peer, present only when the turn is exactly one peer envelope formed by Claude Code. Render `name` and `body` instead of re-parsing the message text. Requires Claude Code v2.1.205 or later. @@ -2925,6 +2930,8 @@ type ArtifactInput = { label?: string; url?: string; force?: boolean; + capabilities?: Record; + contract?: "latest" | string; }; ``` @@ -2932,6 +2939,9 @@ Publishes a local `.html` or `.md` file as a hosted artifact page, or lists the Pass `"list"` to enumerate the user's published artifacts; only `limit` and `scope` may accompany it. `scope` defaults to `"mine"`, which lists artifacts the user owns; `"shared"` lists artifacts other people shared with the user, and `"all"` lists both. +* `capabilities`: the runtime capabilities the published page uses, keyed by capability name, such as the [connectors the page may call](/docs/en/artifacts#pull-live-data-with-mcp-connectors). The artifact service validates the declaration and rejects a publish that names a capability the account can't use or gives one an invalid config. Pass `{}` to clear a stored declaration, and omit the field on a redeploy to keep it. Requires Agent SDK v0.3.235 or later. +* `contract`: the runtime version the published page runs against. Omit it to keep the artifact's current version, pass `"latest"` to upgrade, or pass a specific version to pin or roll back. Requires Agent SDK v0.3.235 or later. + The types are exported, but the tool is off by default in Agent SDK sessions. Publishing also requires every condition in the [artifacts availability table](/docs/en/artifacts#availability), which sessions authenticated with an API key don't meet. ### Projects @@ -3191,13 +3201,13 @@ type BashOutput = { staleReadFileStateHint?: string; ghRateLimitHint?: string; gitOperation?: { - commit?: { sha: string; kind: "committed" | "amended" | "cherry-picked" }; + commit?: { sha: string; kind: "committed" | "amended" | "cherry-picked"; branch?: string }; push?: { branch: string }; branch?: { ref: string; action: "merged" | "rebased" }; pr?: { number: number; url?: string; - action: "created" | "edited" | "merged" | "commented" | "closed" | "ready" | "draft" | "auto-merge-enabled" | "auto-merge-disabled"; + action: "created" | "edited" | "merged" | "commented" | "closed" | "reopened" | "ready" | "draft" | "auto-merge-enabled" | "auto-merge-disabled"; }; }; }; @@ -3215,6 +3225,8 @@ The `stdout`, `stderr`, and `backgroundTaskId` fields carry: When a subagent running in the foreground owns a backgrounded command, Claude Code terminates the command when that subagent gives its final response. Claude Code sets `backgroundEndsWithFinalResponse` to `true` on such commands, and omits the field when the command survives the turn, as commands started by the main conversation or by background subagents do. The field requires Claude Code v2.1.227 or later. +Claude Code sets `gitOperation.commit.branch` to the branch named in git's commit summary line, and omits it for a commit made on a detached HEAD. The field requires Agent SDK v0.3.227 or later. Claude Code reports a `gh pr reopen` command as the `reopened` PR action, which requires Agent SDK v0.3.234 or later. + ### Monitor **Tool name:** `Monitor` @@ -4097,13 +4109,31 @@ type PermissionRuleValue = { ### `ApiKeySource` +Where the API key for the session's requests came from, reported as `apiKeySource` on the [`SDKSystemMessage`](#sdksystemmessage) init message. + ```typescript theme={null} -type ApiKeySource = "user" | "project" | "org" | "temporary" | "oauth"; +type ApiKeySource = + | "ANTHROPIC_API_KEY" + | "apiKeyHelper" + | "/login managed key" + | "none" + | "user" + | "project" + | "org" + | "temporary" + | "oauth"; ``` - - At runtime, the `apiKeySource` field on the [`SDKSystemMessage`](#sdksystemmessage) init message can also be the string `"none"` when no API key is in use, for example when the session authenticates with an OAuth token. Handle values outside this union defensively. - +Claude Code reports one of four values: + +| Value | Key in use | +| -------------------- | ------------------------------------------------------------------------------------------------------------------------------- | +| `ANTHROPIC_API_KEY` | The key in the `ANTHROPIC_API_KEY` environment variable | +| `apiKeyHelper` | The key returned by your [`apiKeyHelper`](/docs/en/settings#available-settings) command | +| `/login managed key` | The key Claude Code stored when you logged in with a [Claude Console account](/docs/en/authentication#claude-console-authentication) | +| `none` | No API key. The session authenticates another way, such as a claude.ai login, a bearer token, or a cloud provider | + +Agent SDK v0.3.234 and later list these four values in the type. The type also keeps `user`, `project`, `org`, `temporary`, and `oauth` so older code still compiles, and Claude Code doesn't report them. ### `SdkBeta` diff --git a/content/en/docs/claude-code/changelog.md b/content/en/docs/claude-code/changelog.md index 5c9b6da2b..93c916acd 100644 --- a/content/en/docs/claude-code/changelog.md +++ b/content/en/docs/claude-code/changelog.md @@ -10,6 +10,47 @@ This page is generated from the [CHANGELOG.md on GitHub](https://github.com/anth Run `claude --version` to check your installed version. + + * Fixed prompt caching for sessions using an LLM gateway or custom base URL + * Added a built-in "Concise" output style: Claude leads with results and skips preamble and narration, while doing the work just as thoroughly. Select it under Output style in /config. + + + + * Added `ANTHROPIC_DEFAULT_MODEL` environment variable: sets the model new sessions start on, while a `/model` pick still overrides it and persists across restarts (unlike `ANTHROPIC_MODEL`) + * Added `notify_when_idle` to cross-session `SendMessage`: ask another Claude Code session on this machine to send one notice when it next goes idle — opt-in, one-shot, no polling (macOS and Linux) + * Sandbox: on macOS, wildcard read-deny rules (e.g. `**/.env`) now take precedence inside allowed read regions, cover matched directories' contents, and can't be bypassed by renaming the denied file + * Fixed clipboard copy, background housekeeping, background sessions, and local MCP logs breaking after the directory a session had switched into was removed (since 2.1.229) + * Fixed the fullscreen renderer failing permanently after a single failed start: it now falls back to the classic renderer instead of exiting on every subsequent launch + * Fixed the `/model` picker rendering taller than the terminal: it now shows only as many models as fit the window, with the rest reachable by scrolling + * Fixed `SendMessage` calls being rejected when a malformed closing tag left the message text inside the summary field + * Fixed unhandled promise rejections when a subprocess fails to start, for example `powershell.exe` on WSL with Windows interop disabled (regression in 2.1.234) + * Fixed fullscreen mode sometimes not showing a newly sent message until the next update after the terminal was resized + * Fixed a blank band that could remain above the prompt after clearing a multi-line prompt, and panes not repainting after resizing the terminal away and back, in fullscreen mode + * Fixed the managed-settings approval prompt sometimes not appearing at startup while still capturing the first keypress as approval + * Fixed terminal tab titles jumping in tmux (iTerm tmux integration): the title is now written only when its text changes instead of animating every 960ms + * Fixed an unclear error when the cloud environments list came back empty or malformed + * Fixed the Fable 5 first-time usage-credits prompt auto-selecting the fallback model after 60 seconds with no answer when using Remote Control + * Fixed spinner tips never appearing, with a repeated background error, when the cached guest-pass reward in `~/.claude.json` was malformed + * Fixed skills hot-reload in SDK/VS Code sessions raising an error on every skills change after the session's working directory was deleted (2.1.229+) + * Fixed self-hosted runner sessions released on idle, retire, or startup timeout occasionally resuming on another runner before the post-session hook had finished + * Fixed the Clawd mascot's eyes and feet rendering unevenly in iTerm2 at some font sizes + * Fixed occasional runaway session recaps: recap text (automatic and `/recap`) is now capped at 400 characters, cut at a word boundary + * Improved startup performance: the session counter is now written in the background + * Improved auto mode: `Monitor` allow rules are now set aside while auto mode is active, so Monitor commands are reviewed the same way Bash commands are + * Improved auto mode on Bedrock, Vertex AI, and Foundry, and when telemetry is disabled: the classifier now uses the same defaults as on the Claude API, including severity-scored classification + * Improved auto mode: the git status check can no longer be fooled by a repo's `status.showUntrackedFiles=no` setting into reporting a clean tree + * Changed the `/model` picker to highlight only the newest model's name, so the highlight marks the new release rather than an arbitrary subset of the list + * `/goal`: an idle session whose goal is parked behind long-running background work now checks in automatically after 30 minutes (then 1h, 2h) instead of waiting for you to return + * `/usage` now shows the usage-credits spend row for Team and Enterprise members, and shows a capped row at 0% before anything is spent + * SIGTERM in print/SDK mode no longer records an interrupted turn or synthetic tool denials before exiting; running commands are still terminated and the process still exits with code 143 + * Pressing Enter on a slash-command typo or a command unavailable in this session now reports it instead of running the closest fuzzy match; prefixes and aliases still run + * Remote Control now marks a session offline within seconds when the CLI exits or its terminal closes + * `SendMessage` now refuses further messages to a session up front once a rapid burst would exceed what that session's inbox accepts, instead of reporting them sent while they were dropped + * Aligned the session title chip on the prompt border with the footer's right edge + * Right-aligned footer items (goal indicator, session state, background agent status) and truncated notices now share a consistent right margin with the rest of the prompt area + * \[VSCode] Added screen reader support for the transcript: live announcements for replies, permission requests, errors, and status changes, plus per-turn heading navigation + + * Added an optional `spellcheck` setting that underlines misspelled words in the prompt input as you type, using your installed `aspell`, `hunspell`, or `ispell` * Fixed whole-prompt-cache invalidation when a language server disconnected or reconnected mid-session diff --git a/content/en/docs/claude-code/channels-reference.md b/content/en/docs/claude-code/channels-reference.md index 99efb2af5..b700b49e8 100644 --- a/content/en/docs/claude-code/channels-reference.md +++ b/content/en/docs/claude-code/channels-reference.md @@ -477,6 +477,8 @@ Clients on Claude Code v2.1.211 or later sanitize `description` and `input_previ For `input_preview`, Claude Code applies the 3,500 limit to each top-level field of the arguments separately and keeps the JSON's own structural quotes. Clients before v2.1.211 relay `description` raw and cut `input_preview` to 200 UTF-16 units with a trailing ellipsis. +Clients on Claude Code v2.1.234 or later relay the marker `(value unserializable)` in place of an `input_preview` field value they can't serialize safely, such as a circular structure or an extremely large array. You still receive the field's key, and the preview's other fields are unchanged. + Clients on Claude Code v2.1.234 or later also mask credentials in `description` and `input_preview`. You receive `[REDACTED]` in place of a recognizable provider credential token, such as an API key or a personal access token. Expect three effects of the masking when you render the fields: * Claude Code masks key names inside `input_preview` as well as their values. A key name you display may not match the key name in the input. diff --git a/content/en/docs/claude-code/env-vars.md b/content/en/docs/claude-code/env-vars.md index 78ffe081b..cde4320da 100644 --- a/content/en/docs/claude-code/env-vars.md +++ b/content/en/docs/claude-code/env-vars.md @@ -100,7 +100,7 @@ See [Settings files](/docs/en/settings#settings-files) for where each file lives ## Precedence -Some behaviors have both an environment variable and a dedicated settings key. If you set both, the environment variable takes precedence. For example, `ANTHROPIC_MODEL` overrides the `model` setting, and `CLAUDE_CODE_AUTO_CONNECT_IDE` overrides `autoConnectIde`. Claude Code uses the settings key only when the environment variable is unset. +Some behaviors have both an environment variable and a dedicated settings key. If you set both, the environment variable takes precedence, except for [`ANTHROPIC_DEFAULT_MODEL`](/docs/en/model-config#set-a-default-model-for-new-sessions). For example, `ANTHROPIC_MODEL` overrides the `model` setting, and `CLAUDE_CODE_AUTO_CONNECT_IDE` overrides `autoConnectIde`. When the same variable is set in both your shell and a settings file `env` block, the settings file value applies. Claude Code writes each `env` entry into the process environment at startup and again when the file changes, replacing the value inherited from the shell. A few variables are special-cased; the [`env` setting](/docs/en/settings#available-settings) lists the exceptions. @@ -157,6 +157,7 @@ Numeric variables such as timeouts, token budgets, and retry counts accept scien | `ANTHROPIC_DEFAULT_HAIKU_MODEL_DESCRIPTION` | Display description for the pinned Haiku model in the `/model` picker. Defaults to `Custom Haiku model` when not set. See [Model configuration](/docs/en/model-config#customize-pinned-model-display-and-capabilities) | | `ANTHROPIC_DEFAULT_HAIKU_MODEL_NAME` | Display name for the pinned Haiku model in the `/model` picker. Defaults to the model ID when not set. See [Model configuration](/docs/en/model-config#customize-pinned-model-display-and-capabilities) | | `ANTHROPIC_DEFAULT_HAIKU_MODEL_SUPPORTED_CAPABILITIES` | Comma-separated list of [capabilities](/docs/en/model-config#customize-pinned-model-display-and-capabilities) the pinned Haiku model supports, for example `effort,thinking`. See [Model configuration](/docs/en/model-config#customize-pinned-model-display-and-capabilities) | +| `ANTHROPIC_DEFAULT_MODEL` | Model that new sessions start on by default. Requires Claude Code v2.1.236 or later. See [Set a default model for new sessions](/docs/en/model-config#set-a-default-model-for-new-sessions) | | `ANTHROPIC_DEFAULT_OPUS_MODEL` | Model ID that the `opus` alias resolves to, and that `opusplan` uses while Plan Mode is active. See [Model configuration](/docs/en/model-config#environment-variables) | | `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | Display description for the pinned Opus model in the `/model` picker. When not set, defaults to `Custom Opus model`, or `Custom Opus model (1M context)` if the pinned model ID has the `[1m]` suffix and `CLAUDE_CODE_DISABLE_1M_CONTEXT` isn't turned on. See [Model configuration](/docs/en/model-config#customize-pinned-model-display-and-capabilities) | | `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | Display name for the pinned Opus model in the `/model` picker. Defaults to the model ID when not set. See [Model configuration](/docs/en/model-config#customize-pinned-model-display-and-capabilities) | @@ -322,6 +323,7 @@ Numeric variables such as timeouts, token budgets, and retry counts accept scien | `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | Set to `1` to stop Claude Code from passing `-ExecutionPolicy Bypass` when spawning PowerShell for tool calls, hooks, and status line commands, and respect the machine's effective execution policy instead. By default Claude Code bypasses execution policy at process scope so `.ps1` scripts and module imports work on default-Restricted Windows installs. Process-scope bypass never overrides Group Policy `MachinePolicy` or `UserPolicy` regardless of this setting | | `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | Maximum time in milliseconds that [non-interactive mode](/docs/en/headless#background-tasks-at-exit) with the `-p` flag waits after the final turn for background subagents and workflows whose result is part of the output. Default: `600000`, or 10 minutes. When the cap is exceeded, remaining background tasks are terminated and the process exits. Set to `0` to wait indefinitely. This cap is separate from the five-second grace period that applies to plain background shells | | `CLAUDE_CODE_PROCESS_WRAPPER` | Launch the processes Claude Code starts from its own binary, such as the background service that hosts [agent view](/docs/en/agent-view) sessions, through a corporate launcher given as an argv prefix like `/opt/corp/launcher`. Set it in the `env` block of user or [managed settings](/docs/en/permissions#managed-settings), not as a shell export, so the detached background service inherits it; project and local settings can't set it. Equivalent to the [`processWrapper` setting](/docs/en/settings#available-settings), which requires Claude Code v2.1.210 or later; this variable takes precedence when both are set. The VS Code extension configures its own launcher separately through its `claudeProcessWrapper` setting. Ignored on Windows. See [Run Claude Code behind a corporate launcher](/docs/en/corporate-launcher) for the value format, what the launcher covers, and the contract the launcher must satisfy. Requires Claude Code v2.1.208 or later | +| `CLAUDE_CODE_PROJECT_DIR_NAME` | Set together with `CLAUDE_CONFIG_DIR` to choose the `projects/` directory name Claude Code stores that session's transcripts and auto memory under, in place of one derived from the working directory path. For example, starting Claude Code with `CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude` stores them under `/srv/tenant-a/projects/work/`. Claude Code ignores this variable when `CLAUDE_CONFIG_DIR` is unset, and reads it only from the environment you start `claude` from, never from a [settings file `env` block](#in-settings-files). See [Name the project directory yourself](/docs/en/sessions#name-the-project-directory-yourself). Requires Claude Code v2.1.234 or later | | `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | Set to `1` to propagate W3C trace context when `ANTHROPIC_BASE_URL` points at a custom proxy. Propagation covers the `traceparent` header on model and HTTP MCP requests and the `TRACEPARENT` environment variable for Bash, PowerShell, and hook subprocesses. By default, propagation is enabled only when connected directly to the Anthropic API. Added in v2.1.152. See [Traces (beta)](/docs/en/monitoring-usage#traces-beta) | | `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | Set by host platforms that embed Claude Code and manage model provider routing on its behalf. When set, Claude Code ignores provider-selection, endpoint, and authentication variables such as `CLAUDE_CODE_USE_BEDROCK`, `ANTHROPIC_BASE_URL`, and `ANTHROPIC_API_KEY` in settings files, so user settings can't override the host's routing. Claude Code also ignores model-selection keys such as `model`, `fallbackModel`, and `modelOverrides` in [managed settings](/docs/en/permissions#managed-settings), whichever managed source delivers them, so the host's model configuration takes precedence over an out-of-date managed model pin; an [`availableModels`](/docs/en/model-config#restrict-model-selection) allowlist in managed settings still applies unless the host supplies its own. Claude Code also skips the automatic telemetry opt-out it otherwise applies on third-party providers such as Amazon Bedrock, Claude Platform on AWS, Google Cloud's Agent Platform, and Microsoft Foundry, so telemetry follows the standard `DISABLE_TELEMETRY` opt-out. See [Default behaviors by API provider](/docs/en/data-usage#default-behaviors-by-api-provider) | | `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | Set to `1` to allow the proxy to perform DNS resolution instead of the caller. Opt-in for environments where the proxy should handle hostname resolution | diff --git a/content/en/docs/claude-code/errors.md b/content/en/docs/claude-code/errors.md index 1fb3b0eb6..de40cb23b 100644 --- a/content/en/docs/claude-code/errors.md +++ b/content/en/docs/claude-code/errors.md @@ -434,7 +434,7 @@ When this error appears mid-conversation because the context grew past 200K toke * Run `/model` and select the variant without the `[1m]` suffix to fall back to the standard context window * Run `/usage-credits` to turn on metered billing for the 1M variant on Pro and Max, or to request it from your admin on Team and Enterprise -* If the error persists after `/model`, a 1M model ID may be set elsewhere. See [There's an issue with the selected model](#theres-an-issue-with-the-selected-model) for the configuration locations to check in priority order. +* If the error persists after `/model`, a 1M model ID may be set elsewhere. See [Setting your model](/docs/en/model-config#setting-your-model) for the configuration locations to check in priority order. * To remove 1M variants from the model picker entirely, set [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/en/env-vars) ### Server is temporarily limiting requests @@ -1336,7 +1336,7 @@ There's an issue with the selected model (claude-...). It may not exist or you m * **Non-interactive mode (`-p`)**: pass `--model` with a valid alias or ID, or set [`ANTHROPIC_MODEL`](/docs/en/env-vars). The error text shows `Run --model` on this surface. * **Agent SDK**: the error text omits the hint because the model is set programmatically. Set [`model` on `Options`](/docs/en/agent-sdk/typescript#options) in TypeScript or [`ClaudeAgentOptions(model=...)`](/docs/en/agent-sdk/python#claudeagentoptions) in Python, and handle the structured `model_not_found` error to surface your own retry or model picker. * Use an alias such as `sonnet` or `opus` instead of a full versioned ID. Aliases resolve to a maintained default so they don't go stale. See [Model configuration](/docs/en/model-config). -* If the wrong model keeps coming back in the CLI, a stale ID is set somewhere. Check in [priority order](/docs/en/model-config#setting-your-model): the `--model` flag, the `ANTHROPIC_MODEL` environment variable, then the `model` field in `.claude/settings.local.json`, your project's `.claude/settings.json`, and `~/.claude/settings.json`. Remove the stale value and Claude Code falls back to your account default. +* If the wrong model keeps coming back in the CLI, a stale ID is set somewhere. Check the places you can set a model in [priority order](/docs/en/model-config#setting-your-model) and remove the stale value. * A newly launched model can be available on the Anthropic API before Amazon Bedrock, Google Cloud's Agent Platform, or Microsoft Foundry offers it. If you pinned a new model ID on one of those providers and see this error, check your provider's model catalog for availability in your region, and keep the previous version pinned until the new one appears there. * Claude Code reports an expired claude.ai login as [Login expired](#login-expired), not as this error. Before v2.1.206, an expired login that could no longer be refreshed failed every model with this error; run `/login` if you see that on an older version. * For Google Cloud's Agent Platform deployments, see [Google Cloud's Agent Platform troubleshooting](/docs/en/google-vertex-ai#troubleshooting). @@ -1357,7 +1357,7 @@ Claude Code produces this error locally at the moment the switch is requested, b * Run `/model` with no argument to open the picker and choose from the models available to your account, then pass the alias or ID shown there * If you used an alias that a newer Claude Code version supports, run `claude update`. A full ID that starts with `claude-` passes this check even when the model is newer than your Claude Code version, so upgrading isn't needed for those. -* A model saved before v2.1.200 isn't repaired by this check. If a stale value keeps coming back, remove it from the locations listed under [There's an issue with the selected model](#theres-an-issue-with-the-selected-model). +* A model saved before v2.1.200 isn't repaired by this check. If a stale value keeps coming back, remove it from the locations listed under [Setting your model](/docs/en/model-config#setting-your-model). * The check runs only on the Anthropic API. On any other provider or gateway, including a custom `ANTHROPIC_BASE_URL`, the provider defines the model names, so Claude Code accepts any string and passes it through. Claude Code can still write the [unrecognized-model diagnostic line](#unrecognized-model-id-on-a-request) at request time, on every provider. ### Claude Opus is not available with the Claude Pro plan @@ -2372,7 +2372,7 @@ Claude Code doesn't write the line for provider IDs it resolves to a model it re * If the ID names a model newer than your Claude Code version, run `claude update` -* If the ID is a typo, fix it where you set it: the `--model` flag, the `ANTHROPIC_MODEL` or `ANTHROPIC_DEFAULT_*_MODEL` environment variables, or the `model` setting. If `query_source` starts with `agent:`, fix it where you set the [subagent's model](/docs/en/sub-agents#choose-a-model) instead. +* If the ID is a typo, fix it in whichever of the [places you can set a model](/docs/en/model-config#setting-your-model) or [alias variables](/docs/en/model-config#environment-variables) holds it. If `query_source` starts with `agent:`, fix it where you set the [subagent's model](/docs/en/sub-agents#choose-a-model) instead. Before v2.1.233, Claude Code wrote no line when it sent a request for a model ID it didn't recognize. diff --git a/content/en/docs/claude-code/fullscreen.md b/content/en/docs/claude-code/fullscreen.md index 0bce5b4c5..43c108cff 100644 --- a/content/en/docs/claude-code/fullscreen.md +++ b/content/en/docs/claude-code/fullscreen.md @@ -88,6 +88,15 @@ With Copy on select off, press `Ctrl+Shift+c` to copy manually. On terminals tha With a selection active, hold `Shift` and press the arrow keys to extend it from the keyboard. `Shift+↑` and `Shift+↓` scroll the viewport when the selection reaches the top or bottom edge. `Shift+Home` and `Shift+End` extend to the start or end of the current line. +In the normal prompt view, what happens to an active selection depends on the key you press: + +* **`Esc`**: Claude Code performs the key's usual action, such as interrupting the running response or dismissing an open dialog, and the selection stays highlighted. +* **`PgUp`, `PgDn`, `Ctrl+Home`, `Ctrl+End`, or `Shift`, `Alt` or `Option`, or `Cmd`, `Win`, or `Super` with an arrow, `Home`, or `End` key**: the selection stays. +* **Any other key, including plain arrow keys, `Enter`, and typed characters**: Claude Code clears the selection. +* **A key bound to [`selection:clear`](/docs/en/keybindings#scroll-actions)**: Claude Code clears the selection, even when the key is `Esc` or another key that otherwise keeps it. The action has no default binding. + +In [transcript mode](#search-and-review-the-conversation), the navigation and search keys listed there also keep the selection. + ## Scroll the conversation Fullscreen rendering handles scrolling inside the app. Use these shortcuts to navigate: diff --git a/content/en/docs/claude-code/github-actions.md b/content/en/docs/claude-code/github-actions.md index 62ce1fd87..6bab8325b 100644 --- a/content/en/docs/claude-code/github-actions.md +++ b/content/en/docs/claude-code/github-actions.md @@ -146,7 +146,7 @@ For details on how the Claude Code GitHub Action limits what Claude can do with The Claude Code GitHub Action detects how to run from your workflow configuration: * **Interactive mode**: when the workflow provides no `prompt` input, Claude waits for the trigger phrase, `@claude` by default, in an issue or pull request comment, in a pull request review, or in the body or title of a newly opened issue, then responds to that request. Progress and results appear as a comment on the triggering issue or PR. -* **Automation mode**: when the workflow provides a `prompt` input, Claude runs without waiting for a mention, subject only to the [access checks](#who-can-trigger-runs). By default, results appear in the workflow run log rather than a comment. Claude can post to the issue or pull request when the prompt directs it to and it has a tool that can post, as in the [code-review example](#run-a-skill). +* **Automation mode**: when the workflow provides a `prompt` input, Claude runs without waiting for a mention, subject only to the [checks on who can trigger runs](#who-can-trigger-runs). By default, results appear in the workflow run log rather than a comment. Claude can post to the issue or pull request when the prompt directs it to and it has a tool that can post, as in the [code-review example](#run-a-skill). ### Who can trigger runs diff --git a/content/en/docs/claude-code/keybindings.md b/content/en/docs/claude-code/keybindings.md index c310b0390..cd0df5b33 100644 --- a/content/en/docs/claude-code/keybindings.md +++ b/content/en/docs/claude-code/keybindings.md @@ -337,7 +337,7 @@ Actions available in the `Scroll` context when [fullscreen rendering](/docs/en/f | `scroll:fullPageUp` | (unbound) | Scroll up the full viewport height | | `scroll:fullPageDown` | (unbound) | Scroll down the full viewport height | | `selection:copy` | Ctrl+Shift+C / Cmd+C | Copy the selected text to the clipboard | -| `selection:clear` | (unbound) | Clear the active text selection | +| `selection:clear` | (unbound) | Clear the active text selection. Requires v2.1.234 or later | | `selection:extendLeft` | Shift+Left | Extend the active selection one column left | | `selection:extendRight` | Shift+Right | Extend the active selection one column right | | `selection:extendUp` | Shift+Up | Extend the active selection one row up. Scrolls the viewport when the selection reaches the top edge | diff --git a/content/en/docs/claude-code/memory.md b/content/en/docs/claude-code/memory.md index 19a22957e..d75a7ef9a 100644 --- a/content/en/docs/claude-code/memory.md +++ b/content/en/docs/claude-code/memory.md @@ -357,6 +357,8 @@ To disable auto memory via environment variable, set `CLAUDE_CODE_DISABLE_AUTO_M Each project gets its own memory directory at `~/.claude/projects//memory/`. The `` path is derived from the git repository, so all worktrees and subdirectories within the same repo share one auto memory directory. Outside a git repo, the project root is used instead. +If you set [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/en/sessions#name-the-project-directory-yourself) beside `CLAUDE_CONFIG_DIR`, Claude Code uses that name as the `` directory under `/projects/` instead, whichever repository you launch it in, so projects launched with that config directory share one auto memory directory. Requires Claude Code v2.1.234 or later. + To store auto memory in a different location, set `autoMemoryDirectory` in your `settings.json`. It is read from any [settings scope](/docs/en/settings#settings-precedence): user, project, local, policy, or `--settings`. ```json theme={null} diff --git a/content/en/docs/claude-code/model-config.md b/content/en/docs/claude-code/model-config.md index 25884e2be..3dfa5bfc4 100644 --- a/content/en/docs/claude-code/model-config.md +++ b/content/en/docs/claude-code/model-config.md @@ -29,7 +29,7 @@ Use a model alias to select model settings without remembering exact version num | Model alias | Behavior | | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **`default`** | Special value that clears any model override and reverts to the recommended model for your account type, or to the [organization default model](#organization-default-model) when an admin has set one. Not itself a model alias | +| **`default`** | Special value that clears any model override and reverts to the [runtime default for your account](#default-model-setting). Not itself a model alias | | **`best`** | Uses Fable 5 where your organization has access to it, otherwise the latest Opus model | | **`fable`** | Uses Claude Fable 5 for your hardest and longest-running tasks | | **`sonnet`** | Uses the latest Sonnet model for daily coding tasks | @@ -98,6 +98,7 @@ You can configure your model in several ways, listed in order of priority: 2. **At startup**: launch with `claude --model ` 3. **Environment variable**: set `ANTHROPIC_MODEL=` 4. **Settings**: configure permanently in your settings file using the `model` field +5. **[Default for new sessions](#set-a-default-model-for-new-sessions)**: set `ANTHROPIC_DEFAULT_MODEL=` As of v2.1.153, `/model` saves your choice as the default for new sessions by writing the `model` field in your user settings. In the picker: @@ -114,7 +115,7 @@ Prices in the `/model` picker appear when Claude Code talks to the Anthropic API Resumed sessions started with `claude --resume`, `--continue`, or the `/resume` picker keep the model they were using when the transcript was saved, regardless of the current `model` setting. If the restored model has been retired or is excluded by [`availableModels`](#restrict-model-selection), the session falls through to the normal precedence order. This prevents another session's `/model` choice from changing the model on resume. On providers that use provider-specific deployment IDs rather than Anthropic model IDs, such as Amazon Bedrock, Google Cloud's Agent Platform, and Microsoft Foundry, the transcript model isn't restored at all and the session resolves its model through the normal precedence order. -A model you pick for the new launch with `--model` or `ANTHROPIC_MODEL` still takes precedence over the restored model. As of v2.1.195, so does an [`ANTHROPIC_DEFAULT_OPUS_MODEL`](#environment-variables) family variable. +A model you pick for the new launch with `--model` or `ANTHROPIC_MODEL` still takes precedence over the restored model. As of v2.1.195, so does an [`ANTHROPIC_DEFAULT_OPUS_MODEL`](#environment-variables) family variable. [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions) can too, under the conditions listed in its section. When the active model at startup comes from project or managed settings rather than your own selection, the startup header shows which settings file set it. Run `/model` to override; the project or managed setting reapplies on the next launch. On platforms that embed Claude Code and set [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/en/env-vars), the host's model configuration takes precedence over managed model settings, while a managed `availableModels` allowlist stays in force unless the host supplies its own; the key-level enumeration is under [Settings precedence](/docs/en/settings#settings-precedence). @@ -154,6 +155,30 @@ Example settings file: } ``` +#### Set a default model for new sessions + +Set `ANTHROPIC_DEFAULT_MODEL=` to choose the model your sessions start on by default. Requires Claude Code v2.1.236 or later. + +Claude Code starts a new session on the variable's model only when none of these selects a model: + +* The `--model` flag +* `ANTHROPIC_MODEL` +* A `model` value in any settings file, including the choice you save with `/model` +* An [organization default model](#organization-default-model) + +A choice you save with `/model` takes precedence over the variable on later launches too. With `ANTHROPIC_MODEL` set instead, Claude Code returns to that variable's model on the next launch, whatever you saved with `/model`. + +Claude Code also resolves the Default option to the variable's model, unless an organization default model applies. When the Default option resolves to the variable's model, the Default row in the `/model` picker shows the label Set by ANTHROPIC\_DEFAULT\_MODEL. + +Claude Code ignores the variable in these cases, and the Default option resolves as if you hadn't set it: + +* You set it to `default`, `inherit`, `opusplan`, or `haiku` +* [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) is on +* [`availableModels`](#restrict-model-selection) or [organization model restrictions](#organization-model-restrictions) exclude the model +* The model isn't available to your account + +When a new session would start on the variable's model, a session you resume with `claude --resume`, `--continue`, or the `/resume` picker starts on it too. Claude Code doesn't restore the model saved in that session's transcript. Otherwise Claude Code doesn't use the variable when you [resume a session](#setting-your-model). + ## Restrict model selection Enterprise administrators can use `availableModels` in [managed or policy settings](/docs/en/settings#settings-files) to restrict which models users can select. Entries match a model family such as `sonnet`, a version prefix such as `claude-sonnet-4-5`, or a full model ID such as `claude-sonnet-4-5-20250929`. @@ -162,7 +187,7 @@ On platforms that embed Claude Code and set [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HO When `availableModels` is set, the allowlist applies everywhere a user can specify a model: -* **Main session model**: `/model`, the `--model` flag, the `ANTHROPIC_MODEL` environment variable, the `model` setting, and the model restored when [resuming a session](#setting-your-model) +* **Main session model**: `/model`, the `--model` flag, the `ANTHROPIC_MODEL` environment variable, the `model` setting, [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions), and the model restored when [resuming a session](#setting-your-model) * **Alias resolution**: the `ANTHROPIC_DEFAULT_OPUS_MODEL`, `ANTHROPIC_DEFAULT_SONNET_MODEL`, `ANTHROPIC_DEFAULT_HAIKU_MODEL`, and `ANTHROPIC_DEFAULT_FABLE_MODEL` environment variables cannot redirect an allowed alias to a model outside the list * **Fast mode**: `/fast` refuses to toggle when it would implicitly switch to an Opus model outside the list, with the message "is not in your organization's allowed models" * **Subagent and teammate models**: the `model` field in [subagent](/docs/en/sub-agents#choose-a-model) frontmatter, the Agent tool's `model` parameter, [agent team](/docs/en/agent-teams#specify-teammates-and-models) teammate models, `CLAUDE_CODE_SUBAGENT_MODEL`, and, on v2.1.197 and earlier, the model picker in the `/agents` wizard @@ -178,6 +203,7 @@ Claude Code handles any other blocked selection according to where the model was * **`/model`**: Claude Code rejects the switch with an error * **`--model` flag, `ANTHROPIC_MODEL`, or the `model` setting**: Claude Code replaces the value at startup with a warning naming both the requested and substituted models, and the session starts on the default model +* **[`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions)**: Claude Code ignores the variable * **Subagent or teammate override**: Claude Code falls back to the [subagent's inherited model](/docs/en/sub-agents#choose-a-model) or the [lead's model for a teammate](/docs/en/agent-teams#specify-teammates-and-models) rather than failing the request. In interactive sessions, Claude Code warns you when it substitutes a subagent's model, by this fallback or by the newest-permitted-version substitution above, naming the requested and substituted models; it doesn't report a teammate's fallback. Where the newest-permitted-version substitution above operates, a blocked family alias follows it instead; before v2.1.222, an alias fell back like any other blocked value on every provider * **Skill or command override**: Claude Code ignores the override, including a blocked family alias, and the skill or command runs on the session model. A skill or command that [runs in a subagent](/docs/en/skills#run-skills-in-a-subagent) follows the subagent behavior above instead * **`advisorModel` setting**: the advisor is disabled for the session @@ -217,7 +243,7 @@ Every surface enforces the allowlist it receives. Which delivery mechanism reach ### Default model behavior -The Default option in the model picker is not affected by `availableModels` unless [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) is also set. On its own, `availableModels` leaves Default available, resolving to the system's [runtime default](#default-model-setting) for the account. If that default is a model you intend to restrict, set `enforceAvailableModels` as well. +On its own, `availableModels` leaves the Default option on the system's [runtime default](#default-model-setting) for the account until you also set [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model). If that default is a model you intend to restrict, set `enforceAvailableModels` as well. An empty `availableModels` array never engages the Default-model enforcement: with `availableModels: []`, named model selections are blocked but the Default model for the account type remains usable regardless of `enforceAvailableModels`. @@ -234,7 +260,7 @@ Set `enforceAvailableModels: true` alongside a non-empty `availableModels` in ma The Default option resolves to the account-type default, or to the [organization default model](#organization-default-model) when an admin has set one. When that model is not in the allowlist, the Default option instead resolves to the first `availableModels` entry that names an allowed, available model, and the `/model` picker's Default row shows that model. This applies everywhere the default is reached: session startup, selecting Default in `/model`, the `"default"` keyword in [fallback model chains](#fallback-model-chains), and the fallback used when an excluded selection is dropped. -`enforceAvailableModels` has no effect when `availableModels` is unset or empty: with `availableModels: []`, the Default model for the account type remains usable, so the setting cannot lock users out of every model. When `availableModels` is non-empty but no entry resolves to an allowed and available model, enforcement is skipped and Default resolves to the account-type default, with a warning visible only under `--debug`. Keep at least one guaranteed-available entry in the list to avoid this. +`enforceAvailableModels` remaps the Default option only when `availableModels` is non-empty. With `availableModels: []`, the Default model for the account type remains usable, so the setting cannot lock users out of every model. When `availableModels` is non-empty but no entry resolves to an allowed and available model, enforcement is skipped and Default resolves to the account-type default, with a warning visible only under `--debug`. Keep at least one guaranteed-available entry in the list to avoid this. Deploy both keys in the [highest-precedence managed source](/docs/en/settings#precedence-within-the-managed-tier): these keys don't merge across managed sources, so a pair placed in a managed settings file is ignored when the admin console delivers any settings. @@ -247,7 +273,7 @@ To fully control the model experience, combine these settings: * **`availableModels`**: restricts which named models users can switch to * **`enforceAvailableModels`**: extends the `availableModels` allowlist to the Default option, so Default cannot resolve to a model outside the list * **`model`**: sets the initial model selection when a session starts -* **`ANTHROPIC_DEFAULT_SONNET_MODEL`** / **`ANTHROPIC_DEFAULT_OPUS_MODEL`** / **`ANTHROPIC_DEFAULT_HAIKU_MODEL`** / **`ANTHROPIC_DEFAULT_FABLE_MODEL`**: control what the Default option and the `sonnet`, `opus`, `haiku`, and `fable` aliases resolve to +* **`ANTHROPIC_DEFAULT_SONNET_MODEL`** / **`ANTHROPIC_DEFAULT_OPUS_MODEL`** / **`ANTHROPIC_DEFAULT_HAIKU_MODEL`** / **`ANTHROPIC_DEFAULT_FABLE_MODEL`**: control what the `sonnet`, `opus`, `haiku`, and `fable` aliases resolve to, and which version the [account-type default](#default-model-setting) uses This example starts users on Sonnet 4.5, limits the picker to Sonnet and Haiku, and ensures Default resolves to a model on the allowlist rather than the tier default: @@ -262,7 +288,7 @@ This example starts users on Sonnet 4.5, limits the picker to Sonnet and Haiku, } ``` -Without `enforceAvailableModels` or the `env` block, a user who selects Default in the picker would get the latest release for their tier, bypassing the version pin in `model` and `availableModels`. The two settings cover different scopes: `enforceAvailableModels` makes Default obey the allowlist, while the `env` block pins which version a permitted alias such as `sonnet` resolves to. Use `enforceAvailableModels` alone when restricting model families is enough; add the `env` block when you also need to pin a specific version. +Without `enforceAvailableModels` or the `env` block, a user who selects Default in the picker gets the [runtime default](#default-model-setting) rather than the version pinned in `model`. The two settings cover different scopes: `enforceAvailableModels` makes Default obey the allowlist, while the `env` block pins which version a permitted alias such as `sonnet` resolves to. Use `enforceAvailableModels` alone when restricting model families is enough; add the `env` block when you also need to pin a specific version. ### Merge behavior @@ -297,11 +323,11 @@ Both restrictions apply together: a model is selectable only when it is permitte ## Organization default model -Organization admins on Claude Enterprise plans can set a default model for Claude Code members from the claude.ai admin console, for the whole organization or per custom role. When one is set, the Default option resolves to that model instead of the [account-type default](#default-model-setting). Requires Claude Code v2.1.196 or later. +Organization admins on Claude Enterprise plans can set a default model for Claude Code members from the claude.ai admin console, for the whole organization or per custom role. When one is set, the Default option resolves to that model. Requires Claude Code v2.1.196 or later. The Default row in the `/model` picker shows the organization default's name with the label Org default. The label reads Org default whether the admin set the default for the whole organization or for your role. A role default covers members of that custom role and takes precedence over the organization-wide default; when several of your roles set different defaults, the most capable model applies. -The organization default is a starting point, not a restriction, and any other model selection takes precedence over it: +The organization default is a starting point, not a restriction. These selections take precedence over it: * the `--model` flag and the `ANTHROPIC_MODEL` environment variable * a `model` value in [managed settings](/docs/en/settings#settings-files) or supplied through `--settings` @@ -315,11 +341,11 @@ Claude Code reads the organization default once at startup, so a default the adm When the organization default doesn't override user selection, the first interactive launch after the admin changes it clears the `model` key from your user settings once, so the new default applies. It changes nothing else in the file, and a model you save with `/model` after that launch is kept. -The organization default passes through the same restriction checks as any other Default model before it is adopted: +The organization default passes through these restriction checks before it is adopted: -* [`availableModels`](#restrict-model-selection) on its own never constrains the Default option, so an organization default outside the allowlist still applies. When [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) is also set, an organization default outside the allowlist is remapped to the first allowlist entry, like any other Default +* [`availableModels`](#restrict-model-selection) on its own doesn't apply to the organization default, so an organization default outside the allowlist still applies. When [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) is also set, an organization default outside the allowlist is remapped to the first allowlist entry, like any other Default * an organization default that [organization model restrictions](#organization-model-restrictions) deny for your account is replaced by the newest allowed model in its family, or a lower-cost family when every version of it is restricted -* an organization default that isn't available to your account at all, such as Fable 5 under [zero data retention](/docs/en/zero-data-retention), is skipped, and the Default option resolves to the account-type default +* an organization default that isn't available to your account at all, such as Fable 5 under [zero data retention](/docs/en/zero-data-retention), is skipped, and the Default option resolves as it would [without an organization default](#default-model-setting) As of v2.1.199, when the organization default is a different model family from your account type's usual default, the `/model` picker keeps a separate row for that usual family, so you can still switch to it for a session. In v2.1.196 through v2.1.198 that row is missing from the picker. @@ -346,11 +372,11 @@ Enterprise pay-as-you-go means an Enterprise organization billed by usage rather Before v2.1.219, `default` resolved to Opus 4.8 on the Anthropic API, Max, Team Premium, and Enterprise pay-as-you-go from v2.1.154, and on Claude Platform on AWS, Amazon Bedrock, and Google Cloud's Agent Platform from v2.1.207. Before v2.1.207, `default` resolved to Opus 4.7 on Claude Platform on AWS and to Sonnet 4.5 on Amazon Bedrock and Google Cloud's Agent Platform. -When an admin has set an [organization default model](#organization-default-model), `default` resolves to that model instead of the account-type default above. Requires Claude Code v2.1.196 or later. +When an admin has set an [organization default model](#organization-default-model), `default` resolves to that model instead of the account-type default above. Requires Claude Code v2.1.196 or later. `default` can also resolve to the model you set with [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions), under the conditions listed in its section. When managed settings [enforce the allowlist for the Default model](#enforce-the-allowlist-for-the-default-model) and the account-type default is not in `availableModels`, `default` resolves to the enforced Default instead of the account-type default above. When both apply, the organization default replaces the account-type default first and enforcement then applies to it: an allowlisted organization default is kept, while one outside the list resolves to the enforced Default. -Fable 5 is not the default model on any account type. Sessions use Fable 5 only after you choose it, with `/model fable`, a `model` setting, or the `best` alias where Fable 5 is available. Choosing it with `/model` saves it as the selected model in your user settings, so later sessions start on Fable 5 until you change models. +Fable 5 is not the default model on any account type. Sessions use Fable 5 only after you choose it, for example with `/model fable`, a `model` setting, or the `best` alias where Fable 5 is available. Choosing it with `/model` saves it as the selected model in your user settings, so later sessions start on Fable 5 until you change models. ### `opusplan` model setting @@ -468,6 +494,10 @@ When you first run Fable 5, Opus 4.8, or Opus 4.7, Claude Code applies that mode `low`, `medium`, `high`, and `xhigh` persist across sessions when you set them in an interactive session. `max` provides the deepest reasoning. Unless you set it through the `CLAUDE_CODE_EFFORT_LEVEL` environment variable, `max` applies to the current session only. + + A level you pick from the effort control on a phone or browser connected through [Remote Control](/docs/en/remote-control#what-connected-devices-see) applies to that session only. + + A level set with `/effort` in [non-interactive mode](/docs/en/headless), with the `-p` flag, applies to the current session only and isn't saved as your default. It also can't release the model-default hold: while the hold is in force, a non-interactive `/effort` reports `Not applied`, so pass `--effort` at launch instead. The `/effort` menu also offers `ultracode`. Ultracode is a Claude Code setting rather than a model effort level: it sends `xhigh` to the model and additionally has Claude orchestrate [dynamic workflows](/docs/en/workflows) for substantive tasks. It applies to the current session only. @@ -512,6 +542,7 @@ You can change effort through any of the following: * **`--effort` flag**: pass a level name to set it for a single session when launching Claude Code * **Environment variable**: set `CLAUDE_CODE_EFFORT_LEVEL` to a level name or `auto` * **Settings**: set `effortLevel` to `low`, `medium`, `high`, or `xhigh` in your settings file. `max` and `ultracode` are [session-only](#adjust-effort-level) and are not accepted here +* **From a connected device**: in a [Remote Control](/docs/en/remote-control#what-connected-devices-see) session, pick a level from the effort control on your phone or in your browser. The level applies to the current session only. Requires Claude Code v2.1.234 or later * **Skill and subagent frontmatter**: set `effort` in a [skill](/docs/en/skills#frontmatter-reference) or [subagent](/docs/en/sub-agents#supported-frontmatter-fields) markdown file to override the effort level when that skill or subagent runs The environment variable takes precedence over all other methods, then your configured level, then the model default. Frontmatter effort applies when that skill or subagent is active, overriding the session level but not the environment variable. @@ -627,7 +658,7 @@ On an [LLM gateway](/docs/en/llm-gateway) or other custom deployment, Claude Cod * If the ID doesn't start with `claude-` but contains `[1m]`, in any casing, and Claude Code can't resolve it to a Claude model, Claude Code assumes a 1M window for it and the variable doesn't apply on its own. To correct the window while keeping proactive compaction, also set [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/en/env-vars). With a declared window above 200K, Claude Code then shows a [startup warning](/docs/en/errors#the-200k-limit-isnt-enforced) that the 200K limit isn't enforced. The warning is expected in this configuration. * If the ID starts with `claude-` in any casing or resolves to a Claude model, the variable takes effect only when [`DISABLE_COMPACT`](/docs/en/env-vars) is also set, which disables all compaction. For example, Claude Code resolves an ID that contains a Claude model name, such as `anthropic/claude-opus-4-8` or `us.anthropic.claude-…-v1:0`, to that model. This includes IDs that also contain `[1m]`: Claude Code resolves `claude-opus-4-8[1m]` to Opus 4.8 even with `CLAUDE_CODE_DISABLE_1M_CONTEXT` set. -For a model ID Claude Code doesn't recognize, set [`CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1`](/docs/en/env-vars) to have Claude Code compact only after the API rejects the conversation with Anthropic's too-long error; that recovery doesn't run when a gateway [rewrites the error](/docs/en/llm-gateway-connect#troubleshoot-gateway-errors). +For a model ID Claude Code doesn't recognize, set [`CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1`](/docs/en/env-vars) to have Claude Code compact only after the API rejects the conversation with a [too-long error Claude Code recognizes](/docs/en/errors#prompt-is-too-long). Claude Code doesn't run that recovery when a gateway [rewrites the error](/docs/en/llm-gateway-connect#troubleshoot-gateway-errors) to wording Claude Code doesn't recognize. ## Checking your current model @@ -658,7 +689,7 @@ A custom ID that embeds a family name, such as `my-gateway/claude-opus-5`, count ## Environment variables -Use the following environment variables to control the model names that the aliases map to. Each value must be a full model name, or the equivalent identifier for your API provider. +Use the following environment variables to control the model names that the aliases map to. Each value must be a full model name, or the equivalent identifier for your API provider. To choose the model your sessions start on, set [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions), which this table omits. | Environment variable | Description | | -------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | @@ -677,7 +708,7 @@ When deploying Claude Code through [Amazon Bedrock](/docs/en/amazon-bedrock), [G Without pinning, Claude Code uses model aliases such as `fable`, `opus`, `sonnet`, and `haiku` that resolve to a built-in default model ID for each provider. That default can lag the newest Anthropic release, and the model it points to may not yet be enabled in a user's account. When the default is unavailable, Amazon Bedrock and Google Cloud's Agent Platform users see a notice and the session falls back to an earlier version of the default model, or to the default Sonnet model when the default is an Opus model and no Opus version is available. Microsoft Foundry users see errors instead, because Microsoft Foundry has no equivalent startup check. -On Amazon Bedrock and Google Cloud's Agent Platform, a user who starts the session on a specific Sonnet or Opus version, with `--model`, `ANTHROPIC_MODEL`, or the `model` setting, pins that version as the session's default for the matching alias: the startup check skips the built-in default it replaces and shows no fallback notice. Before v2.1.211, the check ran and could show a notice even when a session model was explicitly configured. +On Amazon Bedrock and Google Cloud's Agent Platform, a user who starts the session on a specific Sonnet or Opus version, for example with `--model`, `ANTHROPIC_MODEL`, or the `model` setting, pins that version as the session's default for the matching alias: the startup check skips the built-in default it replaces and shows no fallback notice. Before v2.1.211, the check ran and could show a notice even when a session model was explicitly configured. Set the model environment variables to specific version IDs as part of your initial setup. Pinning lets you control when your users move to a new model. diff --git a/content/en/docs/claude-code/monitoring-usage.md b/content/en/docs/claude-code/monitoring-usage.md index 538f7f26b..450c397f0 100644 --- a/content/en/docs/claude-code/monitoring-usage.md +++ b/content/en/docs/claude-code/monitoring-usage.md @@ -795,7 +795,7 @@ Logged when a tool permission decision is made (accept/reject). * `"config"`: Decided automatically without prompting, based on project settings, allow or deny rules in the user's personal settings, enterprise managed policy, `--allowedTools` or `--disallowedTools` flags, the active permission mode, a session-scoped grant from an earlier prompt in the same interactive CLI session, or because the tool is inherently safe. The event doesn't indicate which of these sources matched. Claude Code also reports `"config"` when the permission prompt request itself fails, for example when the Agent SDK's [`canUseTool`](/docs/en/agent-sdk/typescript#canusetool) callback or the [`--permission-prompt-tool`](/docs/en/cli-reference#cli-flags) tool returns an invalid result, or when the input stream closes while the request is pending. Before v2.1.216, Claude Code reported these failures as `"user_reject"`. * `"hook"`: A `PreToolUse` or `PermissionRequest` hook returned the decision. * `"user_permanent"`: Emitted when the user chose "Yes, and don't ask again for ..." at a permission prompt, which saves an allow rule to their personal settings. In the interactive CLI this is emitted only for that choice itself; later calls that match the saved rule emit `"config"` instead. In Agent SDK or non-interactive `-p` sessions, both the initial choice and later rule matches emit `"user_permanent"`. Treated as an accept. - * `"user_temporary"`: Emitted when the user chose "Yes" at a permission prompt for a one-time approval, or chose one of the "... during this session" options on a file edit or read prompt. In the interactive CLI this is emitted only for the choice itself; later calls allowed by that session-scoped grant emit `"config"` instead. In Agent SDK or non-interactive `-p` sessions, both the choice and later matches emit `"user_temporary"`. Treated as an accept. + * `"user_temporary"`: Emitted when the user chose "Yes" at a permission prompt for a one-time approval, or chose an option that grants access for the rest of the session on a file edit or read prompt. In the interactive CLI this is emitted only for the choice itself; later calls allowed by that session-scoped grant emit `"config"` instead. In Agent SDK or non-interactive `-p` sessions, both the choice and later matches emit `"user_temporary"`. Treated as an accept. * `"user_abort"`: Emitted when the user dismissed the permission prompt without answering. In Agent SDK and non-interactive `-p` sessions, this includes interrupting the turn while a `canUseTool` or `--permission-prompt-tool` permission request is pending; before v2.1.216, Claude Code reported that interrupt as `"user_reject"`. Treated as a reject. * `"user_reject"`: Emitted when the user chose "No" when prompted. In the interactive CLI this is emitted only for that choice itself; calls that match a deny rule in the user's personal settings emit `"config"` instead. In Agent SDK or non-interactive `-p` sessions, calls that match a deny rule in personal settings emit `"user_reject"`. Treated as a reject. * `tool_parameters` (when `OTEL_LOG_TOOL_DETAILS=1`): JSON string containing tool-specific parameters. Same shape as the [Tool result event](#tool-result-event), minus post-execution fields such as `git_commit_id`. Values may differ from `tool_result` for an accepted call if the permission decision rewrites the tool input via `updatedInput`. Use this attribute to see which command was rejected when `decision` is `"reject"`. diff --git a/content/en/docs/claude-code/permission-modes.md b/content/en/docs/claude-code/permission-modes.md index 874e76a3f..b7640d148 100644 --- a/content/en/docs/claude-code/permission-modes.md +++ b/content/en/docs/claude-code/permission-modes.md @@ -204,7 +204,10 @@ Each interface has its own control for switching permission modes during a sessi Use the mode dropdown next to the prompt box on [claude.ai/code](https://claude.ai/code) or in the mobile app. Permission prompts appear in claude.ai for approval. Which modes appear depends on where the session runs: * **Cloud sessions** on [Claude Code on the web](/docs/en/claude-code-on-the-web): Accept edits, Plan, and Auto. Accept edits corresponds to `default` mode: cloud sessions pre-approve file edits regardless of mode, so the dropdown shows Accept edits instead of Manual. Cloud sessions still honor `defaultMode: "acceptEdits"` from settings. Auto mode appears only when your organization allows it and the selected model supports it. Bypass permissions isn't available. - * **[Remote Control](/docs/en/remote-control) sessions** on your local machine: Manual, Accept edits, and Plan. You can't select Auto or Bypass permissions from the app. The dropdown shows the permission mode the local session is in, including a mode set from the terminal, and updates when the permission mode changes in the app or in the terminal. The one exception is Bypass permissions: the session never reports that mode to claude.ai, so switching into it from the terminal doesn't change what the dropdown shows. Before v2.1.202, sessions connected with `/remote-control` or `claude --remote-control` didn't report their mode at all, so claude.ai and the mobile app could show a mode the session wasn't in. The mismatch affected only the label: Claude Code generated permission prompts from the session's actual mode, and they still appeared in the app for approval. + * **[Remote Control](/docs/en/remote-control) sessions** on your local machine: Manual, Accept edits, and Plan. You can't select Auto or Bypass permissions from the app. + * Except for Bypass permissions, the dropdown shows the permission mode the local session is in, including one set from the terminal. It updates when the permission mode changes in the app or in the terminal. The session never reports Bypass permissions to claude.ai, so switching into it from the terminal doesn't change what the dropdown shows. + * Sessions hosted by the [desktop app](/docs/en/desktop) or the [VS Code extension](/docs/en/vs-code) report permission mode changes to claude.ai as they happen, the same as sessions hosted in a terminal. + * Before v2.1.202, sessions connected with `/remote-control` or `claude --remote-control` didn't report their permission mode at all, so claude.ai and the mobile app could show a permission mode the session wasn't in. The mismatch affected only the label. Claude Code generated permission prompts from the session's actual permission mode, and they still appeared in the app for approval. For Remote Control, the local machine running the session must be signed in with your claude.ai account; API keys aren't supported. You can also set the starting permission mode when launching that local session: @@ -248,7 +251,7 @@ Press `Shift+Tab` again to leave plan mode without approving a plan. When the plan is ready, Claude presents it and asks how to proceed. From that prompt you can choose: -* **Yes, and use auto mode**: approve and start in [auto mode](#eliminate-prompts-with-auto-mode). When auto mode is unavailable, this option reads **Yes, auto-accept edits**. Sessions started with bypass permissions enabled show **Yes, and bypass permissions** instead. +* **Yes, and use auto mode**: approve and start in [auto mode](#eliminate-prompts-with-auto-mode). When auto mode is unavailable, this option reads **Yes, auto-accept edits**. If you started the session with bypass permissions enabled, the option reads **Yes, and switch to BYPASS PERMISSIONS (no further prompts) for this session** instead. * **Yes, manually approve edits**: approve and review each edit individually. * **No, keep planning**: stay in plan mode and tell Claude what to change. diff --git a/content/en/docs/claude-code/permissions.md b/content/en/docs/claude-code/permissions.md index a0d9569f6..5b1c51c35 100644 --- a/content/en/docs/claude-code/permissions.md +++ b/content/en/docs/claude-code/permissions.md @@ -24,6 +24,8 @@ When you choose "Yes, and don't ask again" and the approval saves permanently, s Before v2.1.211, Claude Code always saved the rule in the starting directory, so an approval granted in a worktree or subdirectory didn't apply to the rest of the repository. Rules that earlier versions saved in a subdirectory or worktree still apply to sessions started there. +Sometimes a permission prompt offers only a one-time approval, with no "don't ask again" option and no option to allow the action for the rest of the session. Claude Code offers those options only when the prompt can show you everything they would allow, so a rule you save from a prompt covers only what its option named. Claude Code leaves the options out when the command or edit is too large to show in full, or when the option's label can't fit every command or path the rule would cover. Approve the action once, or add the rule yourself in [`/permissions`](#manage-permissions). + On a Bash or PowerShell permission prompt, press `Ctrl+E` to show an explanation of the command: what it does, why Claude is running it, and what could go wrong, labeled **Low risk**, **Med risk**, or **High risk**. Claude Code sends the command and Claude's own description of the call to the model to generate the explanation only when you press `Ctrl+E`, not on every prompt. Showing the explanation doesn't run the command; press `Ctrl+E` again to hide it. To turn the shortcut off, set [`permissionExplainerEnabled`](/docs/en/settings#global-config-settings) to `false` in `~/.claude.json`. diff --git a/content/en/docs/claude-code/plugin-marketplaces.md b/content/en/docs/claude-code/plugin-marketplaces.md index ecad586bc..630bf544d 100644 --- a/content/en/docs/claude-code/plugin-marketplaces.md +++ b/content/en/docs/claude-code/plugin-marketplaces.md @@ -1194,7 +1194,7 @@ Both `remove` and `update` fail when run against a seed-managed marketplace, whi * Verify the marketplace URL is accessible * Check that `.claude-plugin/marketplace.json` exists at the specified path -* Ensure JSON syntax is valid using `claude plugin validate .` or `/plugin validate .` from the marketplace directory. To check skill, agent, and command frontmatter, run the command against each plugin directory +* Ensure JSON syntax is valid using `claude plugin validate .` or `/plugin validate .` from the marketplace directory. To check skill, agent, and command frontmatter, see [Validate a plugin or a directory without a manifest](#validate-a-plugin-or-a-directory-without-a-manifest) * For private repositories, confirm you have access permissions ### Marketplace validation errors @@ -1209,16 +1209,14 @@ As of Claude Code v2.1.196, the per-entry pass also: Earlier versions skip plugins at the marketplace root and only descend from a `.claude-plugin/marketplace.json`. -To validate an individual plugin's `plugin.json` and its skill, agent, command, and hook files, run the command against the plugin directory itself, for example `claude plugin validate ./plugins/my-plugin`. Common errors: +From a marketplace directory, Claude Code doesn't open the plugins' skill, agent, command, or hook files. To find errors in those files, see [Validate a plugin or a directory without a manifest](#validate-a-plugin-or-a-directory-without-a-manifest). The table below lists the most common errors from a marketplace directory, with the cause and fix for each: -| Error | Cause | Solution | -| :------------------------------------------------ | :---------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------ | -| `File not found: .claude-plugin/marketplace.json` | Missing manifest | Create `.claude-plugin/marketplace.json` with required fields | -| `Invalid JSON syntax: Unexpected token...` | JSON syntax error in marketplace.json | Check for missing commas, extra commas, or unquoted strings | -| `Duplicate plugin name "x" found in marketplace` | Two plugins share the same name | Give each plugin a unique `name` value | -| `plugins[0].source: Path contains ".."` | Source path contains `..` | Use paths relative to the marketplace root without `..`. See [Relative paths](#relative-paths) | -| `YAML frontmatter failed to parse: ...` | Invalid YAML in a skill, agent, or command file | Fix the YAML syntax in the frontmatter block. At runtime this file loads with no metadata. Reported only when validating a plugin directory | -| `Invalid JSON syntax: ...` (hooks.json) | Malformed `hooks/hooks.json` | Fix JSON syntax. A malformed `hooks/hooks.json` prevents the entire plugin from loading. Reported only when validating a plugin directory | +| Error | Cause | Solution | +| :------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------------------------------------- | :-------------------------------------------------------------------------------------------------- | +| `No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json` | The directory you named has no `.claude-plugin/marketplace.json` or `plugin.json`, and no skill, agent, or command files to check | Run from the marketplace root, or create `.claude-plugin/marketplace.json` with the required fields | +| `Invalid JSON syntax: Unexpected token...` | JSON syntax error in marketplace.json | Check for missing commas, extra commas, or unquoted strings | +| `Duplicate plugin name "x" found in marketplace` | Two plugins share the same name | Give each plugin a unique `name` value | +| `plugins[0].source: Path contains ".."` | Source path contains `..` | Use paths relative to the marketplace root without `..`. See [Relative paths](#relative-paths) | **Warnings** (non-blocking): @@ -1228,6 +1226,35 @@ To validate an individual plugin's `plugin.json` and its skill, agent, command, * `Marketplace name "x" is reserved in Claude Desktop`: the marketplace is named `org`, `org-provisioned`, or `unknown`, in any casing. Claude Code accepts these names, but Claude Desktop's managed marketplace sync rejects the whole marketplace. Rename the marketplace. Before v2.1.221, `claude plugin validate` didn't run this check. * `Marketplace name "x" is not accepted by Claude Desktop` or `Plugin name "x" is not accepted by Claude Desktop`: Claude Desktop accepts names of up to 128 characters made of letters, digits, `.`, `_`, and `-`, starting with a letter or digit. Claude Code accepts other forms, but Claude Desktop's managed marketplace sync rejects a marketplace whose name fails the check and silently drops a plugin entry whose name does. Rename the marketplace or plugin. Before v2.1.221, `claude plugin validate` didn't run these checks. +#### Validate a plugin or a directory without a manifest + +To find skill, agent, and command files whose frontmatter doesn't parse, run `claude plugin validate` and name the directory that holds them. Claude Code doesn't look outside the directory you name. Every run except one against a plugin that has a `plugin.json` requires Claude Code v2.1.233 or later. + +Pick the directory by what you want to check: + +| To check | Run | Claude Code checks | +| :------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------------------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| A plugin that has a `plugin.json` | `claude plugin validate ./plugins/my-plugin` | `plugin.json`, `hooks/hooks.json`, and the `skills`, `agents`, and `commands` directories at the plugin root | +| One directory of skills, agents, or commands, such as a plugin that has no `plugin.json` yet | `claude plugin validate .claude/skills`, `~/.claude/agents`, or `./my-plugin/agents` | Every skill, agent, or command file in that directory | +| A folder whose skill is its root `SKILL.md` | `claude plugin validate ./skills`, naming the `skills` directory that holds the folder | Each folder's root `SKILL.md`. The holding directory must be named `skills`; a folder under another name, such as `plugins/`, has no run that checks its root `SKILL.md` | +| A project's three directories at once | `claude plugin validate .claude`, or the project root when it has no `.claude-plugin/` manifest | `.claude/skills`, `.claude/agents`, and `.claude/commands` | +| Your user-level directories | `claude plugin validate ~/.claude` | `~/.claude/skills`, `~/.claude/agents`, and `~/.claude/commands` | + +A plugin run also warns about a `CLAUDE.md` at the plugin root. For paths you set through the [component path fields](/docs/en/plugins-reference#component-path-fields) in `plugin.json`, it checks that each path exists but doesn't read the files there, and it doesn't check a `SKILL.md` at the plugin root. To check a plugin whose skill is its root `SKILL.md`, run the command twice when the plugin sits in a directory named `skills`: name that `skills` directory to check the root `SKILL.md`, and name the plugin directory to check the rest. When the plugin sits under another name, such as `plugins/`, only the second run is available, and no run checks its root `SKILL.md`. + +Claude Code doesn't follow symlinks inside the directory you name. What it does depends on where the link is: + +* **A linked `skills`, `agents`, or `commands` directory under the plugin or `.claude` root**: Claude Code warns that nothing in it was read. +* **A linked entry inside a `skills`, `agents`, or `commands` directory**: Claude Code skips it and warns, per directory, how many entries it skipped that a session would load. A plugin whose `skills` directory [links to a sibling plugin's skills](/docs/en/plugins-reference#share-files-within-a-marketplace-with-symlinks) passes with warnings; to check the linked skills, name the sibling plugin's directory. The same applies to a [symlinked skill entry](/docs/en/skills#where-skills-live) in `~/.claude/skills` or `.claude/skills`, which a session does follow; to check it, name a directory called `skills` that holds the real folder. +* **The `skills`, `agents`, or `commands` directory you name is itself a symlink, or its parent `.claude` directory is**: Claude Code reports an error and checks nothing in it. Name the real directory instead. + +A clean run ends with `Validation passed`. `No manifest found in directory` means Claude Code found no `plugin.json` or `marketplace.json` there, and no skill, agent, or command file in the directories it probes under it. Name the `skills`, `agents`, or `commands` directory that holds your files instead. + +Two of the errors Claude Code reports from these runs, with the fix for each: + +* `YAML frontmatter failed to parse: ...`: fix the YAML in the frontmatter block of the skill, agent, or command file. Until you do, a session reads no frontmatter fields from the file +* `Invalid JSON syntax: ...` on `hooks/hooks.json`: fix the JSON syntax. Until you do, a session loads the plugin without the hooks in that file. Claude Code reports this error only in a plugin run + ### Plugin installation failures **Symptoms**: Marketplace appears but plugin installation fails diff --git a/content/en/docs/claude-code/plugins-reference.md b/content/en/docs/claude-code/plugins-reference.md index 2e0310106..3fcecd0dc 100644 --- a/content/en/docs/claude-code/plugins-reference.md +++ b/content/en/docs/claude-code/plugins-reference.md @@ -1210,14 +1210,14 @@ This shows: ### Common issues -| Issue | Cause | Solution | -| :---------------------------------- | :------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Plugin not loading | Invalid `plugin.json` | Run `claude plugin validate ./my-plugin` or `/plugin validate ./my-plugin`, where `./my-plugin` is your plugin directory, to check `plugin.json`, skill/agent/command frontmatter, and `hooks/hooks.json` for syntax and schema errors | -| Skills not appearing | Wrong directory structure | Ensure `skills/` or `commands/` is at the plugin root, not inside `.claude-plugin/` | -| Hooks not firing | Script not executable | Run `chmod +x script.sh` | -| MCP server fails | Missing `${CLAUDE_PLUGIN_ROOT}` | Use variable for all plugin paths | -| Path errors | Absolute paths used | Make paths relative, starting with `./`; see [Path behavior rules](#path-behavior-rules), which cover the `skills` field's `"."` exception | -| LSP `Executable not found in $PATH` | Language server not installed | Install the binary (e.g., `npm install -g typescript-language-server typescript`) | +| Issue | Cause | Solution | +| :---------------------------------- | :------------------------------ | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Plugin not loading | Invalid `plugin.json` | Run `claude plugin validate ./my-plugin` or `/plugin validate ./my-plugin`, where `./my-plugin` is your plugin directory, to check `plugin.json`, `hooks/hooks.json`, and the frontmatter of the skills, agents, and commands in the plugin's default directories for syntax and schema errors. See [Validate a plugin or a directory without a manifest](/docs/en/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest) for what a run covers | +| Skills not appearing | Wrong directory structure | Ensure `skills/` or `commands/` is at the plugin root, not inside `.claude-plugin/` | +| Hooks not firing | Script not executable | Run `chmod +x script.sh` | +| MCP server fails | Missing `${CLAUDE_PLUGIN_ROOT}` | Use variable for all plugin paths | +| Path errors | Absolute paths used | Make paths relative, starting with `./`; see [Path behavior rules](#path-behavior-rules), which cover the `skills` field's `"."` exception | +| LSP `Executable not found in $PATH` | Language server not installed | Install the binary (e.g., `npm install -g typescript-language-server typescript`) | ### Example error messages diff --git a/content/en/docs/claude-code/prompt-caching.md b/content/en/docs/claude-code/prompt-caching.md index adddf0d1f..604916053 100644 --- a/content/en/docs/claude-code/prompt-caching.md +++ b/content/en/docs/claude-code/prompt-caching.md @@ -100,15 +100,37 @@ Editing your MCP config does not by itself change the cache. The new config take ### Enabling or disabling a plugin -[Plugins](/docs/en/plugins) bundle several component types, and the cost of a change depends on which components the plugin provides. Skills, commands, agents, hooks, LSP servers, monitors, and themes never invalidate the cache: anything they add to the request is appended after the existing conversation, so the next request pays for the new content but still reads everything before it from the cache. +When you enable or disable a [plugin](/docs/en/plugins), what the change costs depends on which component types the plugin provides. The cases below cover each component type, when Claude Code applies the change, and what happens when you disable a plugin again in the same session. -The exception is a plugin that provides [MCP servers](/docs/en/plugins-reference#mcp-servers). Enabling or disabling one follows the same rules as [connecting or disconnecting an MCP server](#connecting-or-disconnecting-an-mcp-server): the cache survives when the server's tools are deferred, and the next request re-reads the entire conversation when they load into the prefix. +#### Plugin components that keep the cache -Plugin changes apply when you run [`/reload-plugins`](/docs/en/discover-plugins#apply-plugin-changes-without-restarting) or start a new session. For a plugin with a `command` source, Claude Code [can reload the plugin itself](/docs/en/plugin-marketplaces#when-claude-code-re-runs-the-command). Claude Code can also activate a plugin you [install from the `/plugin` interface](/docs/en/discover-plugins#install-plugins) during the install; the install summary tells you whether it did or whether to run `/reload-plugins`. If that reload would trigger the full re-read below, the command warns first and applies when you rerun it with `--force`. +Claude Code never invalidates the cache for a plugin's skills, commands, agents, hooks, monitors, or themes. It appends their content after the existing conversation, so the next request pays for that content and still reads everything before it from the cache. -The cost, whether appended announcements or a full re-read, shows up on the first turn after the change applies, not when you run `/plugin enable` or `/plugin disable`. When a reload would trigger the full re-read, `/reload-plugins` shows a warning and doesn't apply the reload. Pass `--force` to apply anyway. +#### Plugins that provide MCP servers -Disabling a plugin you enabled earlier in the session restores the previous request shape. If that prefix is still within its [cache lifetime](#cache-lifetime), the next request reads the older cache entry instead of rebuilding. +When you enable or disable a plugin that provides [MCP servers](/docs/en/plugins-reference#mcp-servers), Claude Code follows the same rules as when you [connect or disconnect an MCP server](#connecting-or-disconnecting-an-mcp-server): + +* If Claude Code defers the server's tools, it keeps the cache. +* If Claude Code loads them into the prefix, the next request re-reads the entire conversation. + +#### Code intelligence plugins + +When you enable a [code intelligence plugin](/docs/en/discover-plugins#code-intelligence), Claude gets the [LSP tool](/docs/en/tools-reference#lsp-tool-behavior). + +If you enable one mid-session, Claude Code changes the tool set at most once in that session. Once Claude Code has had a language server available, it keeps the LSP tool in the request for the rest of the session. Claude Code doesn't change the tool set or invalidate the cache when a language server stops, fails, or reconnects later. Before v2.1.235, Claude Code removed the tool from the request whenever every language server had crashed or failed to start and added it back when one recovered. + +#### When plugin changes apply + +Claude Code applies a plugin change when you run [`/reload-plugins`](/docs/en/discover-plugins#apply-plugin-changes-without-restarting) or start a new session. You pay the cost, whether appended announcements or a full re-read, on the first turn after the change applies, not when you run `/plugin enable` or `/plugin disable`. Claude Code can also apply a change on its own in two cases: + +* For a plugin with a `command` source, Claude Code [can reload the plugin itself](/docs/en/plugin-marketplaces#when-claude-code-re-runs-the-command). +* When you [install a plugin from the `/plugin` interface](/docs/en/discover-plugins#install-plugins), Claude Code can activate it during the install. Claude Code tells you in the install summary whether it did or whether to run `/reload-plugins`. + +When you run `/reload-plugins` and the reload would trigger a full re-read, Claude Code shows a warning and doesn't apply the reload. Rerun it with `--force` to apply the reload anyway. + +#### Plugins you enable and then disable in one session + +When you disable a plugin you enabled earlier in the session, Claude Code restores the previous request shape, apart from the [LSP tool](#code-intelligence-plugins), which Claude Code keeps for the rest of the session. If that prefix is still within its [cache lifetime](#cache-lifetime), the next request reads the older cache entry instead of rebuilding. ### Denying an entire tool diff --git a/content/en/docs/claude-code/remote-control.md b/content/en/docs/claude-code/remote-control.md index 679823d8d..e79454feb 100644 --- a/content/en/docs/claude-code/remote-control.md +++ b/content/en/docs/claude-code/remote-control.md @@ -164,6 +164,7 @@ A connected device shows the conversation in your terminal as it happens. These * **Compaction and `/clear`**: while Claude Code [compacts the conversation](/docs/en/context-window#what-survives-compaction), connected devices show the progress and then where the conversation was compacted. When you run `/clear`, the conversation resets on connected devices too. * **Switching conversations with `/resume`**: the connected device doesn't receive the switched-to conversation's title or earlier history, but new messages in both directions go to and from whichever conversation is open in your terminal. To work on the original conversation from the device again, run `/resume` in your terminal and switch back to it. * **Messages from your other sessions**: with [cross-session messaging](/docs/en/cross-session-messaging), the same connection carries messages between your own sessions on different machines and from your [Claude Code on the web](/docs/en/claude-code-on-the-web) sessions, through Anthropic servers like the rest of Remote Control traffic. [Message sessions on other machines](/docs/en/cross-session-messaging#message-sessions-on-other-machines) covers the delivery rules and [Control inbound messages](/docs/en/cross-session-messaging#control-inbound-messages) covers the inbound controls. Requires Claude Code v2.1.224 or later. +* **Effort level**: when you set the [effort level](/docs/en/model-config#adjust-effort-level) from a connected device, with `/effort` or the device's effort control, Claude Code applies it to the session on your machine, and claude.ai/code shows the level the session is using. If you pinned a level with `CLAUDE_CODE_EFFORT_LEVEL`, the session keeps that level, and Claude Code refuses a different pick from the effort control. A level you pick from the effort control applies to the current session only and doesn't change your saved default. Picking a level from the effort control requires Claude Code v2.1.234 or later on your machine. * **Reconnecting after a connection failure**: run `/remote-control` to reconnect. If compaction rewrote the conversation or you switched conversations with `/resume` in the meantime, Claude Code archives the server session it was using instead of leaving it in the session list. You can still find it by [filtering for archived sessions](/docs/en/claude-code-on-the-web#archive-sessions). Switching conversations while a device is still connected doesn't archive the session. ### Enable Remote Control for all sessions diff --git a/content/en/docs/claude-code/sessions.md b/content/en/docs/claude-code/sessions.md index 0af025c3f..5c7a7e11b 100644 --- a/content/en/docs/claude-code/sessions.md +++ b/content/en/docs/claude-code/sessions.md @@ -196,12 +196,33 @@ Each line is a JSON object for a message, tool use, or metadata entry. The entry The location, retention, and write behavior are configurable: -| To | Set | Where | -| ------------------------------------------- | ------------------------------------------------------ | ------------------------- | -| Move storage off `~/.claude` | [`CLAUDE_CONFIG_DIR`](/docs/en/env-vars) | Environment variable | -| Change the 30-day retention | [`cleanupPeriodDays`](/docs/en/settings#available-settings) | `settings.json` | -| Suppress transcript writes in all modes | [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/en/env-vars) | Environment variable | -| Suppress writes for one non-interactive run | [`--no-session-persistence`](/docs/en/cli-reference) | CLI flag with `claude -p` | +| To | Set | Where | +| ------------------------------------------------------------------------------- | ------------------------------------------------------ | ------------------------- | +| Move storage off `~/.claude` | [`CLAUDE_CONFIG_DIR`](/docs/en/env-vars) | Environment variable | +| [Name the `` directory yourself](#name-the-project-directory-yourself) | [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/en/env-vars) | Environment variable | +| Change the 30-day retention | [`cleanupPeriodDays`](/docs/en/settings#available-settings) | `settings.json` | +| Suppress transcript writes in all modes | [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/en/env-vars) | Environment variable | +| Suppress writes for one non-interactive run | [`--no-session-persistence`](/docs/en/cli-reference) | CLI flag with `claude -p` | + +### Name the project directory yourself + +By default, Claude Code derives the `` name from the whole working directory path. To choose the name yourself, set `CLAUDE_CODE_PROJECT_DIR_NAME` alongside `CLAUDE_CONFIG_DIR`. Claude Code then stores that session's transcripts and [auto memory](/docs/en/memory#auto-memory) under your name. This suits a host that embeds Claude Code and gives each session its own config directory. Requires Claude Code v2.1.234 or later. + +For example, this launch keeps tenant A's data under `/srv/tenant-a` and names its project directory `work`: + +```bash theme={null} +CLAUDE_CONFIG_DIR=/srv/tenant-a CLAUDE_CODE_PROJECT_DIR_NAME=work claude +``` + +Claude Code writes the session's transcripts to `/srv/tenant-a/projects/work/` and its auto memory to `/srv/tenant-a/projects/work/memory/`, whatever the working directory is. + +Three rules apply when you set it: + +* **Set `CLAUDE_CONFIG_DIR` too**: the name doesn't vary with the working directory, so under the default `~/.claude` it would merge every project's transcripts and auto memory into one directory. Claude Code ignores `CLAUDE_CODE_PROJECT_DIR_NAME` when `CLAUDE_CONFIG_DIR` is unset. +* **Use 1-64 letters, digits, hyphens, or underscores**: don't use a Windows device name such as `con`. Claude Code ignores any other value and uses the derived name. +* **Set it in the shell environment that starts `claude`**: Claude Code reads it once at startup from that environment, so an `env` block in a settings file can't set it. + +Once you've named a config directory's project directory, keep launching with that name. If you start Claude Code with the same `CLAUDE_CONFIG_DIR` but without `CLAUDE_CODE_PROJECT_DIR_NAME`, it reads and writes the derived directory again. The sessions stored under your name stay on disk: press `Ctrl+A` in the [session picker](#use-the-session-picker) to list sessions from every project directory under that config directory, the pinned one included, and whichever way you launch, [`claude --resume `](#resume-a-session) finds a session stored under either name. ## See also diff --git a/content/en/docs/claude-code/settings.md b/content/en/docs/claude-code/settings.md index adc5eaff4..672c4abcf 100644 --- a/content/en/docs/claude-code/settings.md +++ b/content/en/docs/claude-code/settings.md @@ -241,7 +241,7 @@ This tolerance applies only to managed settings. User, project, and local settin | `autoMode.classifyAllShell` | **Default**: `false`. When `true`, suspends every Bash and PowerShell allow rule while auto mode is active so all shell commands route through the classifier, not only rules that match arbitrary-code-execution patterns. See [Route all shell commands through the classifier](/docs/en/auto-mode-config#route-all-shell-commands-through-the-classifier). Requires Claude Code v2.1.193 or later | `true` | | `autoScrollEnabled` | **Default**: `true`. In [fullscreen rendering](/docs/en/fullscreen), follow new output to the bottom of the conversation. Appears in `/config` as **Auto-scroll**. Permission prompts still scroll into view when this is off | `false` | | `autoUpdatesChannel` | **Default**: `"latest"`. Release channel to follow for updates. Use `"stable"` for a version that is typically about one week old and skips versions with major regressions, or `"latest"` for the most recent release. To disable auto-updates entirely, set [`DISABLE_AUTOUPDATER`](/docs/en/setup#disable-auto-updates) in `env` | `"stable"` | -| `availableModels` | Restrict which models users can select for the main session, [subagents](/docs/en/sub-agents), [skills](/docs/en/skills), and the [advisor](/docs/en/advisor). Does not affect the Default option unless `enforceAvailableModels` is also set. See [Restrict model selection](/docs/en/model-config#restrict-model-selection) | `["sonnet", "haiku"]` | +| `availableModels` | Restrict which models users can select for the main session, [subagents](/docs/en/sub-agents), [skills](/docs/en/skills), and the [advisor](/docs/en/advisor). See [Default model behavior](/docs/en/model-config#default-model-behavior) for the Default option. See [Restrict model selection](/docs/en/model-config#restrict-model-selection) | `["sonnet", "haiku"]` | | `awaySummaryEnabled` | Show a one-line session recap when you return to the terminal after a few minutes away. Set to `false` or turn off Session recap in `/config` to disable. Same as [`CLAUDE_CODE_ENABLE_AWAY_SUMMARY`](/docs/en/env-vars) | `true` | | `awsAuthRefresh` | Custom script that modifies the `.aws` directory (see [advanced credential configuration](/docs/en/amazon-bedrock#advanced-credential-configuration)) | `aws sso login --profile myprofile` | | `awsCredentialExport` | Custom script that outputs JSON with AWS credentials (see [advanced credential configuration](/docs/en/amazon-bedrock#advanced-credential-configuration)) | `/bin/generate_aws_grant.sh` | @@ -278,8 +278,8 @@ This tolerance applies only to managed settings. User, project, and local settin | `enableAllProjectMcpServers` | Automatically approve all MCP servers defined in project `.mcp.json` files. As of v2.1.196, `claude mcp list` and `claude mcp get` honor this key in an untrusted folder only from [settings files that aren't checked into the repository](/docs/en/mcp#managing-your-servers) | `true` | | `enableArtifact` | Enable or disable the [Artifact](/docs/en/artifacts) tool for this user. When unset, the default follows the feature's [availability](/docs/en/artifacts#availability) for your account. The **Artifacts** row in `/config` writes this key. A managed `disableArtifact` and your organization's [admin setting](/docs/en/artifacts#manage-artifacts-for-your-organization) take precedence, and the key is ignored in project and local settings (`.claude/settings.json`, `.claude/settings.local.json`), which a repository could otherwise commit. Requires Claude Code v2.1.196 or later | `true` | | `enabledMcpjsonServers` | List of specific MCP servers from `.mcp.json` files to approve. As of v2.1.196, `claude mcp list` and `claude mcp get` honor this key in an untrusted folder only from [settings files that aren't checked into the repository](/docs/en/mcp#managing-your-servers) | `["memory", "github"]` | -| `enforceAvailableModels` | Extend the `availableModels` allowlist to the Default model. When `true` in managed settings and `availableModels` is a non-empty array, the Default option falls back to the first allowlisted entry that is available, but only when the model Default would resolve to (the [organization default](/docs/en/model-config#organization-default-model) when one applies, otherwise the account-type default) is not in the allowlist; an allowlisted default is kept as-is. Has no effect when `availableModels` is unset or empty. See [Enforce the allowlist for the Default model](/docs/en/model-config#enforce-the-allowlist-for-the-default-model). Requires Claude Code v2.1.175 or later | `true` | -| `env` | Environment variables applied to every session and to subprocesses Claude Code spawns from it. Set a variable to `""` to override a shell export with an empty string, which Claude Code treats as unset for provider selection. Subprocesses still inherit the empty value. `NO_COLOR` and `FORCE_COLOR` set here reach only subprocesses; to change Claude Code's own interface colors, set them in your shell before launching `claude`. Claude Code ignores identity variables set here that its hosting environments own, such as `CLAUDE_CODE_REMOTE` and `CLAUDE_CODE_ACCOUNT_UUID`. It also ignores [`CLAUDE_CODE_MESSAGING_SOCKET` and `CLAUDE_CODE_MESSAGING_TOKEN`](/docs/en/env-vars#variables), which it exports itself. Ignoring the socket variable requires Claude Code v2.1.224 or later, and ignoring the token requires v2.1.228 or later | `{"FOO": "bar"}` | +| `enforceAvailableModels` | Extend the `availableModels` allowlist to the Default model. When `true` in managed settings and `availableModels` is a non-empty array, a Default model outside the allowlist falls back to the first allowlisted entry that is available. See [Enforce the allowlist for the Default model](/docs/en/model-config#enforce-the-allowlist-for-the-default-model). Requires Claude Code v2.1.175 or later | `true` | +| `env` | Environment variables Claude Code sets in every session and passes to the processes it starts, such as Bash commands and hooks. To override a shell export you can't unset, set that variable to `""` here; Claude Code treats the empty value as unset for provider selection, and processes it starts still inherit the empty value. `NO_COLOR` and `FORCE_COLOR` set here reach only subprocesses; to change Claude Code's own interface colors, set them in your shell before launching `claude`. Claude Code ignores identity variables set here that its hosting environments own, such as `CLAUDE_CODE_REMOTE` and `CLAUDE_CODE_ACCOUNT_UUID`. It also ignores [`CLAUDE_CODE_MESSAGING_SOCKET` and `CLAUDE_CODE_MESSAGING_TOKEN`](/docs/en/env-vars#variables), which it exports itself. Ignoring the socket variable requires Claude Code v2.1.224 or later, and ignoring the token requires v2.1.228 or later. Ignoring [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/en/sessions#name-the-project-directory-yourself), which it reads from the launch environment only, requires v2.1.234 or later | `{"FOO": "bar"}` | | `fallbackModel` | Fallback model(s) to try in order when the primary model is overloaded or unavailable. Claude Code switches to the next available model in the chain for the rest of the turn and shows a notice. `"default"` expands to the default model. Chains are capped at three models; extra entries are ignored. Unlike most array settings, this key does not merge across settings files: the highest-precedence file that defines it supplies the entire chain. The [`--fallback-model`](/docs/en/cli-reference#cli-flags) flag overrides this for one session. See [Fallback model chains](/docs/en/model-config#fallback-model-chains) | `["claude-sonnet-5", "claude-haiku-4-5"]` | | `fastMode` | Turn [fast mode](/docs/en/fast-mode) on for sessions where it's available. Toggling with `/fast` writes `true` here in user settings and removes the key when you turn fast mode off | `true` | | `fastModePerSessionOptIn` | When `true`, fast mode does not persist across sessions. Each session starts with fast mode off, requiring users to enable it with `/fast`. The user's fast mode preference is still saved. See [Require per-session opt-in](/docs/en/fast-mode#require-per-session-opt-in) | `true` | diff --git a/content/en/docs/claude-code/sub-agents.md b/content/en/docs/claude-code/sub-agents.md index 38365b639..a73955bea 100644 --- a/content/en/docs/claude-code/sub-agents.md +++ b/content/en/docs/claude-code/sub-agents.md @@ -302,6 +302,19 @@ The following fields can be used in the YAML frontmatter. Only `name` and `descr | `color` | No | Display color for the subagent in the task list and transcript. Accepts `red`, `blue`, `green`, `yellow`, `purple`, `orange`, `pink`, or `cyan` | | `initialPrompt` | No | Auto-submitted as the first user turn when this agent runs as the main session agent (via `--agent` or the `agent` setting). [Commands](/docs/en/commands) and [skills](/docs/en/skills) are processed. Prepended to any user-provided prompt | +#### Subagent files Claude Code skips + +Claude Code skips a file in a project, user, or managed `agents` directory, or in one under a directory you add with `--add-dir`, without reporting it in the session, when the frontmatter has any of these problems: + +* **No `name`**: Claude Code treats the file as documentation kept beside your agents. +* **A `name` that starts with `-` or contains `:`**: Claude Code skips the file and writes an error to the debug log. See the `name` row in the table above. +* **A `name` but no `description`**: Claude Code skips the file and writes the reason to the debug log. +* **YAML that doesn't parse**: Claude Code reads no fields from the file, skips it, and writes the parse error to the debug log. + +To see the debug log, run Claude Code with `--debug`. A [plugin subagent](/docs/en/plugins-reference#agents) whose frontmatter has no `name` or doesn't parse still loads, under its filename. + +To find files in an `agents` directory whose frontmatter doesn't parse, run `claude plugin validate` against the directory, for example `.claude/agents` or `~/.claude/agents`. Claude Code checks only [the directory you name](/docs/en/plugin-marketplaces#validate-a-plugin-or-a-directory-without-a-manifest), and doesn't flag a file whose frontmatter parses but has no `name`. Requires Claude Code v2.1.233 or later. + ### Choose a model The `model` field controls which [AI model](/docs/en/model-config) the subagent uses: @@ -796,7 +809,7 @@ For each subagent Claude spawns with the Agent tool, Claude Code picks foregroun For a skill with `context: fork`, Claude Code follows the rules in [Run skills in a subagent](/docs/en/skills#run-skills-in-a-subagent) instead, whether or not fork mode is on. -Background subagents run with a [smaller built-in tool set](#available-tools) than foreground subagents, except for conversation forks, and they surface every permission prompt in your main session. When you answer one of those prompts with a choice that lasts beyond that one tool call, such as "Yes, allow all edits during this session", Claude Code applies your answer to the whole session, including your main conversation. +Background subagents run with a [smaller built-in tool set](#available-tools) than foreground subagents, except for conversation forks, and they surface every permission prompt in your main session. When you answer one of those prompts with a choice that lasts beyond that one tool call, such as a grant that lasts for the rest of the session, Claude Code applies your answer to the whole session, including your main conversation. A background subagent's results reach Claude as a completion notification in a later turn. Claude waits for that notification before reporting the subagent's results, and if you ask about progress first, it reports that the subagent is still running. Before v2.1.211, Claude sometimes reported results for a background subagent that hadn't finished. diff --git a/content/en/docs/claude-code/tools-reference.md b/content/en/docs/claude-code/tools-reference.md index feecc1c46..8a1fa26fe 100644 --- a/content/en/docs/claude-code/tools-reference.md +++ b/content/en/docs/claude-code/tools-reference.md @@ -286,7 +286,9 @@ The LSP tool gives Claude code intelligence from a running language server. Afte * Find implementations of an interface * Trace call hierarchies -The tool is inactive until you install a [code intelligence plugin](/docs/en/discover-plugins#code-intelligence) for your language. The plugin bundles the language server configuration, and you install the server binary separately. +Claude Code keeps the tool inactive until you install a [code intelligence plugin](/docs/en/discover-plugins#code-intelligence) for your language. Claude Code takes the language server's configuration from the plugin, and you install the server binary yourself. + +Claude Code keeps the tool active for the rest of a session once it has had a language server available in that session. Claude Code returns an error result for each LSP call on a file whose language server it can't start. Before v2.1.235, Claude Code deactivated the tool whenever every language server had crashed or failed to start and reactivated it when one recovered. ## Monitor tool diff --git a/content/en/manage-claude/admin-api-keys.md b/content/en/manage-claude/admin-api-keys.md index 215fc3d6c..8a7f907d7 100644 --- a/content/en/manage-claude/admin-api-keys.md +++ b/content/en/manage-claude/admin-api-keys.md @@ -10,10 +10,10 @@ Where you create the key depends on which Claude product your organization uses. ## Which key do you need? -| Your organization | Create the key in | Key prefix | Who can create it | Works with | -| ----------------------------------------------------------- | ----------------------------------------------------------------------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| **Claude Console** (Claude Platform, `platform.claude.com`) | [Claude Console > Settings > Admin keys](https://platform.claude.com/settings/admin-keys) | `sk-ant-admin01-...` | Organization members with the **admin** role | [Admin API](https://platform.claude.com/docs/en/manage-claude/admin-api), [Usage and Cost API](https://platform.claude.com/docs/en/manage-claude/usage-cost-api), [Rate Limits API](https://platform.claude.com/docs/en/manage-claude/rate-limits-api), [Claude Code Analytics API](https://platform.claude.com/docs/en/manage-claude/claude-code-analytics-api), and the Compliance API [Activity Feed](https://platform.claude.com/docs/en/manage-claude/compliance-activity-feed) | -| **Claude Enterprise** (`claude.ai`) | [claude.ai > Organization settings > API](https://claude.ai/admin-settings/api-access) | `sk-ant-api01-...` | The parent organization's **primary owner** (all linked organizations). An **organization owner** can create one carrying Compliance API scopes only, restricted to their own organization | [User management](https://platform.claude.com/docs/en/manage-claude/user-management) (the Admin API's member, invite, and group endpoints, in beta), [Compliance API](https://platform.claude.com/docs/en/manage-claude/compliance-api), [Claude Enterprise Analytics API](https://platform.claude.com/docs/en/manage-claude/analytics-api), and [Spend Limits API](https://platform.claude.com/docs/en/manage-claude/spend-limits-api), according to the [scopes](https://platform.claude.com/docs/en/manage-claude/admin-api-keys#choose-scopes-for-a-claude-enterprise-key) you select | +| Your organization | Create the key in | Key prefix | Who can create it | Works with | +| ----------------------------------------------------------- | ----------------------------------------------------------------------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| **Claude Console** (Claude Platform, `platform.claude.com`) | [Claude Console > Settings > Admin keys](https://platform.claude.com/settings/admin-keys) | `sk-ant-admin01-...` | Organization members with the **admin** role | [Admin API](https://platform.claude.com/docs/en/manage-claude/admin-api), [Usage and Cost API](https://platform.claude.com/docs/en/manage-claude/usage-cost-api), [Rate Limits API](https://platform.claude.com/docs/en/manage-claude/rate-limits-api), [Claude Code Analytics API](https://platform.claude.com/docs/en/manage-claude/claude-code-analytics-api), and the Compliance API [Activity Feed](https://platform.claude.com/docs/en/manage-claude/compliance-activity-feed) | +| **Claude Enterprise** (`claude.ai`) | [claude.ai > Organization settings > API](https://claude.ai/admin-settings/api-access) | `sk-ant-api01-...` | The parent organization's **primary owner** (all linked organizations). An **organization owner** can create one carrying Compliance API scopes only, restricted to their own organization | [User management](https://platform.claude.com/docs/en/manage-claude/user-management) (the Admin API's member, invite, and group endpoints), [Compliance API](https://platform.claude.com/docs/en/manage-claude/compliance-api), [Claude Enterprise Analytics API](https://platform.claude.com/docs/en/manage-claude/analytics-api), and [Spend Limits API](https://platform.claude.com/docs/en/manage-claude/spend-limits-api), according to the [scopes](https://platform.claude.com/docs/en/manage-claude/admin-api-keys#choose-scopes-for-a-claude-enterprise-key) you select | A key created in one organization cannot be used to manage a different organization. If your company uses both Claude Console and Claude Enterprise, create one key in each. diff --git a/content/en/manage-claude/admin-api.md b/content/en/manage-claude/admin-api.md index 9c25b61f9..35eebd63e 100644 --- a/content/en/manage-claude/admin-api.md +++ b/content/en/manage-claude/admin-api.md @@ -20,7 +20,7 @@ The [Admin API](https://platform.claude.com/docs/en/api/admin) allows you to pro - **Claude Enterprise:** Claude Enterprise (claude.ai) organizations use the Admin API too, with a scoped API key created in claude.ai. Of the endpoints on this page, only members and invites are available to them (in beta), alongside Claude-Enterprise-only endpoints: groups and custom-role reads (beta), and [spend limits](https://platform.claude.com/docs/en/manage-claude/spend-limits-api). See [User management](https://platform.claude.com/docs/en/manage-claude/user-management) for Claude Enterprise. + **Claude Enterprise:** Claude Enterprise (claude.ai) organizations use the Admin API too, with a scoped API key created in claude.ai. Of the endpoints on this page, only members and invites are available to them, alongside Claude-Enterprise-only endpoints: groups and custom-role reads, and [spend limits](https://platform.claude.com/docs/en/manage-claude/spend-limits-api). See [User management](https://platform.claude.com/docs/en/manage-claude/user-management) for Claude Enterprise. diff --git a/content/en/manage-claude/api-and-data-retention.md b/content/en/manage-claude/api-and-data-retention.md index 6842fbd5d..394efb330 100644 --- a/content/en/manage-claude/api-and-data-retention.md +++ b/content/en/manage-claude/api-and-data-retention.md @@ -183,7 +183,7 @@ Each eligibility column uses three values: | [Data residency](https://platform.claude.com/docs/en/manage-claude/data-residency) | `/v1/messages` (with `inference_geo`) | Yes | Yes | | | [Effort](https://platform.claude.com/docs/en/build-with-claude/effort) | `/v1/messages` (with `effort`) | Yes | Yes | | | [Fast mode](https://platform.claude.com/docs/en/build-with-claude/fast-mode) | `/v1/messages` (with `speed: "fast"`) | Yes | Yes | Same Messages API endpoint with faster inference. ZDR applies regardless of speed setting. | -| [Files API](https://platform.claude.com/docs/en/build-with-claude/files) | `/v1/files` | No | No | Files retained until explicitly deleted. See [Files API](https://platform.claude.com/docs/en/build-with-claude/files#data-retention). | +| [Files API](https://platform.claude.com/docs/en/build-with-claude/files) | `/v1/files` | No | No | Files retained until explicitly deleted or they reach their configured expiration. See [Files API](https://platform.claude.com/docs/en/build-with-claude/files#data-retention). | | [Fine-grained tool streaming](https://platform.claude.com/docs/en/agents-and-tools/tool-use/fine-grained-tool-streaming) | `/v1/messages` | Yes | Yes | | | [MCP connector](https://platform.claude.com/docs/en/agents-and-tools/mcp-connector) | `/v1/messages` (with `mcp_servers`) | No | No | Data retained per standard policy. See [MCP connector](https://platform.claude.com/docs/en/agents-and-tools/mcp-connector#data-retention). | | [MCP tunnels](https://platform.claude.com/docs/en/agents-and-tools/mcp-tunnels/overview) | `/v1/tunnels` | No | No | Research preview. See [MCP tunnels security](https://platform.claude.com/docs/en/agents-and-tools/mcp-tunnels/security) for the data-flow boundary and subprocessor details. | diff --git a/content/en/manage-claude/data-residency.md b/content/en/manage-claude/data-residency.md index d8ab239cf..ef1b95279 100644 --- a/content/en/manage-claude/data-residency.md +++ b/content/en/manage-claude/data-residency.md @@ -10,7 +10,7 @@ Data residency controls let you manage where your data is processed and stored. * **Workspace geo:** Controls where data is stored at rest and where endpoint processing (such as image transcoding and code execution) happens. Configured at the workspace level in the [Claude Console](https://platform.claude.com). - [Claude Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) supports geographic pinning at the agent level: `inference_geo` on an [agent's model configuration](https://platform.claude.com/docs/en/managed-agents/agent-setup#pin-the-inference-geo) pins the geography that serves model requests for sessions running that agent, with [per-session overrides](https://platform.claude.com/docs/en/managed-agents/sessions#pin-the-inference-geo-for-a-session) at session create. Agents without a pin follow the workspace's default inference geo on each request. Managed Agents also respects the Workspace geo configured in Console, and with [self-hosted sandboxes](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes), tool execution and the sandbox filesystem stay on infrastructure you control. + [Claude Managed Agents](https://platform.claude.com/docs/en/managed-agents/overview) supports geographic pinning at the agent level: `inference_geo` on an [agent's model configuration](https://platform.claude.com/docs/en/managed-agents/agent-setup#pin-the-inference-geo) pins the geography that serves model requests for sessions running that agent, with [per-session overrides](https://platform.claude.com/docs/en/managed-agents/sessions#pin-the-inference-geo-for-a-session) at session create. Agents without a pin follow the workspace's default inference geo on each request. Managed Agents also respects the Workspace geo configured in Console, and with [self-hosted sandboxes](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes), tool execution and the sandbox filesystem stay on infrastructure you control; the contents of attached [memory stores](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#use-memory-stores) remain stored by Anthropic and are copied to your sandbox for the session. ## Inference geo diff --git a/content/en/manage-claude/user-management.md b/content/en/manage-claude/user-management.md index 450bc2646..5aa9f8b68 100644 --- a/content/en/manage-claude/user-management.md +++ b/content/en/manage-claude/user-management.md @@ -7,27 +7,27 @@ description: "Manage the people in your Claude Enterprise organization with the This page covers managing the people in your **Claude Enterprise** (claude.ai) organization programmatically, using the [Admin API](https://platform.claude.com/docs/en/api/admin): list members and look them up by email address, change a member's role, remove members, send and withdraw invites, manage your enterprise's groups and their membership, and read your organization's custom roles. For Claude Console (Claude Platform) organizations, see the [Admin API guide for Claude Console](https://platform.claude.com/docs/en/manage-claude/admin-api). - **The endpoints on this page are in beta for Claude Enterprise organizations.** The beta is enabled for all Claude Enterprise organizations. Group and custom-role requests must include the [beta header](https://platform.claude.com/docs/en/api/beta-headers) `anthropic-beta: ce-user-management-2026-07-13`; requests without it return 404. Member and invite requests take no beta header. + **The endpoints on this page are generally available for Claude Enterprise organizations.** The [beta header](https://platform.claude.com/docs/en/api/beta-headers) `anthropic-beta: ce-user-management-2026-07-13` is no longer required on group and custom-role requests; requests that still send it are accepted and behave identically. The group and custom-role examples on this page still send the header, which continues to work. ## Which endpoints can your organization use? The Admin API is a single set of endpoints under `https://api.anthropic.com/v1/organizations/`. Claude Console and Claude Enterprise organizations authenticate with [different keys](https://platform.claude.com/docs/en/manage-claude/admin-api-keys) and each have access to a different subset of the endpoints: -| Endpoints | Claude Console (Claude Platform) | Claude Enterprise (claude.ai) | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | ------------------------------- | -| [Members](https://platform.claude.com/docs/en/manage-claude/user-management#members) and [invites](https://platform.claude.com/docs/en/manage-claude/user-management#invites) | Available; see the [Admin API guide](https://platform.claude.com/docs/en/manage-claude/admin-api) | **Beta** (this page) | -| [Groups](https://platform.claude.com/docs/en/manage-claude/user-management#groups) | Not available | **Beta** (this page) | -| [Custom roles](https://platform.claude.com/docs/en/manage-claude/user-management#custom-roles) | Not available | **Beta**, read-only (this page) | -| [Spend limits](https://platform.claude.com/docs/en/manage-claude/spend-limits-api) | Not available | Available | -| [Workspaces](https://platform.claude.com/docs/en/manage-claude/workspaces), [API keys](https://platform.claude.com/docs/en/manage-claude/admin-api#api-keys), [usage and cost reports](https://platform.claude.com/docs/en/manage-claude/usage-cost-api), [rate limits](https://platform.claude.com/docs/en/manage-claude/rate-limits-api), and the other endpoints in the [Admin API guide](https://platform.claude.com/docs/en/manage-claude/admin-api) | Available | Not available | +| Endpoints | Claude Console (Claude Platform) | Claude Enterprise (claude.ai) | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- | -------------------------------- | +| [Members](https://platform.claude.com/docs/en/manage-claude/user-management#members) and [invites](https://platform.claude.com/docs/en/manage-claude/user-management#invites) | Available; see the [Admin API guide](https://platform.claude.com/docs/en/manage-claude/admin-api) | Available (this page) | +| [Groups](https://platform.claude.com/docs/en/manage-claude/user-management#groups) | Not available | Available (this page) | +| [Custom roles](https://platform.claude.com/docs/en/manage-claude/user-management#custom-roles) | Not available | Available, read-only (this page) | +| [Spend limits](https://platform.claude.com/docs/en/manage-claude/spend-limits-api) | Not available | Available | +| [Workspaces](https://platform.claude.com/docs/en/manage-claude/workspaces), [API keys](https://platform.claude.com/docs/en/manage-claude/admin-api#api-keys), [usage and cost reports](https://platform.claude.com/docs/en/manage-claude/usage-cost-api), [rate limits](https://platform.claude.com/docs/en/manage-claude/rate-limits-api), and the other endpoints in the [Admin API guide](https://platform.claude.com/docs/en/manage-claude/admin-api) | Available | Not available | Members and invites are the same endpoints for both organization types; this page documents their Claude Enterprise behavior, including the Claude Enterprise [organization roles](https://platform.claude.com/docs/en/manage-claude/user-management#organization-roles). The group and custom-role endpoints exist only for Claude Enterprise. **Scoped Admin API key required** - These endpoints require an Admin API key with the `read:members` scope (member and invite `GET` endpoints, and all custom-role endpoints; there is no separate role scope), the `write:members` scope (member and invite `POST` and `DELETE` endpoints), the `read:rbac_groups` scope (group `GET` endpoints), or the `write:rbac_groups` scope (group `POST` and `DELETE` endpoints). A key carrying the `read:org_audit` scope (a read-only scope for security-audit integrations) can also call every `GET` endpoint on this page and the [Compliance API](https://platform.claude.com/docs/en/manage-claude/compliance-api) read endpoints. See [Create an Admin API key](https://platform.claude.com/docs/en/manage-claude/admin-api-keys#create-a-key-for-a-claude-enterprise-organization) for where your primary owner creates one and which scopes to select. Pass the key in the `x-api-key` header on every request. Member and invite requests also require the `anthropic-version: 2023-06-01` header, as shown in the examples; group and custom-role requests do not, and instead require the `anthropic-beta` header described in the preceding note. + These endpoints require an Admin API key with the `read:members` scope (member and invite `GET` endpoints, and all custom-role endpoints; there is no separate role scope), the `write:members` scope (member and invite `POST` and `DELETE` endpoints), the `read:rbac_groups` scope (group `GET` endpoints), or the `write:rbac_groups` scope (group `POST` and `DELETE` endpoints). A key carrying the `read:org_audit` scope (a read-only scope for security-audit integrations) can also call every `GET` endpoint on this page and the [Compliance API](https://platform.claude.com/docs/en/manage-claude/compliance-api) read endpoints. See [Create an Admin API key](https://platform.claude.com/docs/en/manage-claude/admin-api-keys#create-a-key-for-a-claude-enterprise-organization) for where your primary owner creates one and which scopes to select. Pass the key in the `x-api-key` header on every request. Member and invite requests also require the `anthropic-version: 2023-06-01` header, as shown in the examples; group and custom-role requests do not. ## Overview @@ -245,7 +245,7 @@ curl -X DELETE "https://api.anthropic.com/v1/organizations/invites/invite_01QrSt ## Groups -Groups your enterprise creates directly, in [claude.ai organization settings](https://claude.ai/admin-settings) or through this API (`source_type: "direct"`), support every endpoint in this section. Groups provisioned by your identity provider (`source_type: "scim"`) can be read but not modified: renaming or deleting a SCIM group, or changing its membership, returns 400, because your identity provider owns it. Every group request must include the `anthropic-beta: ce-user-management-2026-07-13` header, as shown in the examples; requests without it return 404. Unlike member and invite requests, group requests do not require the `anthropic-version` header. +Groups your enterprise creates directly, in [claude.ai organization settings](https://claude.ai/admin-settings) or through this API (`source_type: "direct"`), support every endpoint in this section. Groups provisioned by your identity provider (`source_type: "scim"`) can be read but not modified: renaming or deleting a SCIM group, or changing its membership, returns 400, because your identity provider owns it. Unlike member and invite requests, group requests do not require the `anthropic-version` header. ### List groups @@ -422,7 +422,7 @@ curl -X DELETE "https://api.anthropic.com/v1/organizations/rbac_groups/rbac_grou ## Custom roles -Custom roles are read-only through the API: these endpoints catalog your organization's custom roles (defined in [claude.ai organization settings](https://claude.ai/admin-settings) or provisioned by Anthropic) and the permissions each role grants. Custom-role reads use the `read:members` scope (there is no separate role scope) and work with an organization-level key: unlike the group endpoints, they do not require a key created for all linked organizations, and the catalog returned is your organization's own. Custom-role requests, like group requests, must include the `anthropic-beta: ce-user-management-2026-07-13` header; requests without it return 404. +Custom roles are read-only through the API: these endpoints catalog your organization's custom roles (defined in [claude.ai organization settings](https://claude.ai/admin-settings) or provisioned by Anthropic) and the permissions each role grants. Custom-role reads use the `read:members` scope (there is no separate role scope) and work with an organization-level key: unlike the group endpoints, they do not require a key created for all linked organizations, and the catalog returned is your organization's own. ### List roles diff --git a/content/en/manage-claude/workspaces.md b/content/en/manage-claude/workspaces.md index 09f94d85d..b8c7cebcc 100644 --- a/content/en/manage-claude/workspaces.md +++ b/content/en/manage-claude/workspaces.md @@ -13,7 +13,7 @@ Every organization has a **Default Workspace** that cannot be renamed, archived, Key characteristics: * **Workspace identifiers** use the `wrkspc_` prefix (for example, `wrkspc_01JwQvzr7rXLA5AGx3HKfFUJ`) -* **Maximum 100 workspaces** per organization (archived workspaces don't count) +* **Maximum 100 workspaces** per organization by default (archived workspaces don't count); contact your account team if you need more * **Default Workspace** has a `wrkspc_` ID like any other workspace (returned in the [`anthropic-workspace-id` response header](https://platform.claude.com/docs/en/manage-claude/workspaces#identify-the-workspace-behind-an-api-response) and accepted by [Get Workspace](https://platform.claude.com/docs/en/api/admin/workspaces/retrieve)), but it doesn't appear in [List Workspaces](https://platform.claude.com/docs/en/api/admin/workspaces/list) results, and API keys, usage reports, and cost reports show `null` for its `workspace_id` * **API keys** are scoped to a single workspace and can only access resources within that workspace @@ -477,7 +477,7 @@ Create workspaces for specific projects or products to track usage and costs sep - Yes, you can have a maximum of 100 workspaces per organization. Archived workspaces do not count toward this limit. + Yes. Each organization can have up to 100 workspaces by default, and archived workspaces don't count toward this limit. If you need more, contact your account team. diff --git a/content/en/managed-agents/define-outcomes.md b/content/en/managed-agents/define-outcomes.md index d3c9eab63..4cf334749 100644 --- a/content/en/managed-agents/define-outcomes.md +++ b/content/en/managed-agents/define-outcomes.md @@ -55,7 +55,7 @@ Example rubric: Pass the rubric as inline text on `user.define_outcome` (see [Create a session with an outcome](https://platform.claude.com/docs/en/managed-agents/define-outcomes#create-a-session-with-an-outcome)), or upload it through the Files API for reuse across sessions. - Uploading through the Files API requires a beta header that grants Files API access. Your Managed Agents beta header grants this on its own, so you don't need to send `files-api-2025-04-14` alongside it. The curl example passes its headers explicitly. + Uploading through the Files API doesn't require a beta header. The cURL example sends the `managed-agents-2026-04-01` header it uses throughout this walkthrough, which the Files API also accepts. diff --git a/content/en/managed-agents/environments.md b/content/en/managed-agents/environments.md index 0305c8851..ea15c6dc4 100644 --- a/content/en/managed-agents/environments.md +++ b/content/en/managed-agents/environments.md @@ -383,7 +383,7 @@ Supported package managers: ### Networking -The `networking` field controls the sandbox's outbound network access. It does not affect the allowed domains for the `web_search` or `web_fetch` tools. +The `networking` field controls the sandbox's outbound network access. It does not affect the `web_search` or `web_fetch` tools, which run on Anthropic's servers; to restrict the sites those tools can reach, set `allowed_domains` or `blocked_domains` on the tool's entry in the agent toolset. See [Restrict web search and web fetch domains](https://platform.claude.com/docs/en/managed-agents/tools#restrict-web-search-and-web-fetch-domains). | Mode | Description | | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | diff --git a/content/en/managed-agents/events-and-streaming.md b/content/en/managed-agents/events-and-streaming.md index da66e364b..4e56e0670 100644 --- a/content/en/managed-agents/events-and-streaming.md +++ b/content/en/managed-agents/events-and-streaming.md @@ -2753,11 +2753,21 @@ To enforce a spend limit, set a [session budget](https://platform.claude.com/doc ## Console observability -The Claude Console provides a visual timeline view of your agent sessions. Navigate to the Claude Managed Agents section in the Console to see: +The Claude Console includes a session viewer for inspecting what an agent did without writing any code. In the Console sidebar, under **Managed Agents**, select **Sessions** to see every session in the workspace with its status, agent, token usage, cost, and creation time, then select a session to open it. The session viewer is only accessible to Developers and Admins. It shows: -* **Session list:** All sessions with their status, creation time, and agent -* **Tracing view:** A chronological view of events (content, timestamps, token usage) within a session. Tracing views are only accessible to Developers and Admins. -* **Tool execution:** Details of each tool call and its result +* **Timeline minimap:** A zoomable overview of the session's activity over time, with one lane per thread in [multiagent](https://platform.claude.com/docs/en/managed-agents/multiagent-orchestration) sessions. Select a lane to view that thread, or select a mark to jump to its event. + +* **Transcript:** The conversation grouped by model request, including thinking, tool calls with their inputs and results, and message text as it streams. You can filter the events and copy or download them as JSON. + +* **Inspector:** A resizable side panel with details about the session, in five tabs: + + * **Session** shows the session's details and metadata, its cumulative cost over time, and spend against the session's [budget](https://platform.claude.com/docs/en/managed-agents/budgets) when one is set. + * **Events** lists every raw event on the current thread in the order the server sent it; select an event to see its JSON. A message that streamed while the page was open also has a **Deltas** view of its [event deltas](https://platform.claude.com/docs/en/managed-agents/events-and-streaming#event-deltas). + * **Tools** lists the tools the session's agents are configured with, along with call counts, failures, and median duration; select a tool to see its calls and jump to one in the transcript. + * **Resources** lists mounted [files](https://platform.claude.com/docs/en/managed-agents/files), [repositories](https://platform.claude.com/docs/en/managed-agents/github), and [memory stores](https://platform.claude.com/docs/en/managed-agents/memory) at their container paths, including the memories in each store and the changes this session made to them, plus files the agent wrote to `/mnt/session/outputs` and the [skills](https://platform.claude.com/docs/en/managed-agents/skills) attached to the session's agents. + * **Threads** lists every thread with its status, context size, and cost. Select a thread to view its details, such as the agent, model, context usage, and cost. + +Append `?event={event_id}` to a session URL to open the session at a specific event. ## Debugging tips diff --git a/content/en/managed-agents/mcp-connector.md b/content/en/managed-agents/mcp-connector.md index 546695017..7b278fcbc 100644 --- a/content/en/managed-agents/mcp-connector.md +++ b/content/en/managed-agents/mcp-connector.md @@ -237,7 +237,7 @@ Constraints: ## Configure which MCP tools are available -The `mcp_toolset` entry supports the same `default_config` and `configs` shape as the built-in agent toolset, applied to the tools the MCP server exposes. The `name` in each `configs` entry is the bare tool name as reported by the server. +The `mcp_toolset` entry supports a `default_config` object and a `configs` array, applied to the tools the MCP server exposes. Each `configs` entry accepts only `name`, `enabled`, and `permission_policy`. Unlike entries in the built-in agent toolset, MCP tool entries do not take a `type` field, and the [web settings](https://platform.claude.com/docs/en/managed-agents/tools#restrict-web-search-and-web-fetch-domains) available on `web_search` and `web_fetch` do not apply to MCP tools. The `name` in each `configs` entry is the bare tool name as reported by the server. By default all tools exposed by the MCP server are enabled. To enable only specific tools, set `default_config.enabled` to `false` and explicitly enable the tools you want: diff --git a/content/en/managed-agents/memory.md b/content/en/managed-agents/memory.md index 0c185172b..b90c5f025 100644 --- a/content/en/managed-agents/memory.md +++ b/content/en/managed-agents/memory.md @@ -18,7 +18,7 @@ Each Managed Agents session starts with a fresh context by default. When a sessi ## Overview -A **memory store** is a workspace-scoped collection of text documents optimized for Claude. When you attach a store to a session, it is mounted as a directory inside the session's sandbox. The agent reads and writes it with the same file tools it uses for the rest of the filesystem, and a note describing each mount is automatically added to the system prompt, telling the agent where to look. The [agent toolset](https://platform.claude.com/docs/en/managed-agents/tools) is required for these interactions; make sure to enable it during [agent creation](https://platform.claude.com/docs/en/managed-agents/agent-setup). +A **memory store** is a workspace-scoped collection of text documents optimized for Claude. When you attach a store to a session, it is mounted as a directory inside the session's sandbox. The agent reads and writes it with the same file tools it uses for the rest of the filesystem, and a note describing each mount is automatically added to the system prompt, telling the agent where to look. The [agent toolset](https://platform.claude.com/docs/en/managed-agents/tools) is required for these interactions; make sure to enable it during [agent creation](https://platform.claude.com/docs/en/managed-agents/agent-setup). On [self-hosted sandboxes](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#use-memory-stores), that directory is not a live mount. Instead, the SDK's environment worker downloads each attached store into your sandbox before the agent's tools run and keeps that copy in sync with the store. Each **memory** in a store is addressed by a path and can be read and edited directly through the API or the Claude Console, allowing for tuning, importing, and exporting. @@ -208,7 +208,7 @@ Pre-load a store with reference material before any agent runs: ## Attach a memory store to a session -Memory stores are attached in the session's `resources[]` array when the [session is created](https://platform.claude.com/docs/en/managed-agents/sessions#creating-a-session). Unlike file resources, memory stores can only be attached at session creation time; adding or removing one from a running session is not supported. +Memory stores are attached in the session's `resources[]` array when the [session is created](https://platform.claude.com/docs/en/managed-agents/sessions#creating-a-session). Unlike file resources, memory stores can only be attached at session creation time; adding or removing one from a running session is not supported. You attach memory stores the same way for sessions on cloud and [self-hosted environments](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#use-memory-stores); self-hosted environments accept only `memory_store` resources. Optionally include `instructions` to provide session-specific guidance for how the agent should use this store. It is shown to the agent alongside the store's `name` and `description`, and is capped at 4,096 characters. @@ -381,6 +381,12 @@ Each attached store is mounted inside the session's sandbox as a directory under `access` is enforced at the filesystem level: a `read_only` mount rejects writes, while writes to a `read_write` mount produce [memory versions](https://platform.claude.com/docs/en/managed-agents/memory#audit-memory-changes) attributed to the session. + + On [self-hosted sandboxes](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#use-memory-stores), each store's directory is a local copy that the SDK worker manages rather than a live mount. The worker reconciles each copy with its store after tool calls, at most once per sync interval (15 seconds by default), and once more when the session ends. The agent's `write` and `edit` tools change only the local copy; the worker uploads those changes at its next sync, so another session running on a self-hosted sandbox sees a change only after both workers have synced. Paths under `/mnt/memory/` outside the store directories are not scratch space there: the worker's file tools refuse to write to them, and anything a shell command writes there is never synced to a store. + + For a `read_only` store, the worker's `write` and `edit` tools refuse changes under that directory and the worker never uploads anything from it. For how the worker resolves write conflicts, and what the `bash` tool can still change in a read-only store's local copy, see [Read-only stores and conflicts](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#read-only-stores-and-conflicts). + + The agent's reads and writes appear in the [event stream](https://platform.claude.com/docs/en/managed-agents/events-and-streaming) as ordinary `agent.tool_use` and `agent.tool_result` events for whichever tool touched the mount. ## View and edit memories diff --git a/content/en/managed-agents/migration.md b/content/en/managed-agents/migration.md index 957c33c6c..f4085c59b 100644 --- a/content/en/managed-agents/migration.md +++ b/content/en/managed-agents/migration.md @@ -598,6 +598,7 @@ If you built an agent by calling `messages.create` in a `while` loop, running to * **System prompt and model:** Same fields, now on the agent definition. * **Custom tools:** Still declared with JSON Schema. Execution moves from inline handling to responding to `agent.custom_tool_use` events. See [Session event stream](https://platform.claude.com/docs/en/managed-agents/events-and-streaming). +* **Web search and web fetch settings:** Same `allowed_domains`, `blocked_domains`, `max_content_tokens`, and `user_location` fields, now set once on the `web_search` and `web_fetch` entries of the agent toolset's `configs` array instead of on every request. The `max_uses`, `citations`, and `cache_control` fields are not available. See [Restrict web search and web fetch domains](https://platform.claude.com/docs/en/managed-agents/tools#restrict-web-search-and-web-fetch-domains). * **Context:** You can still inject context through the system prompt, [file resources](https://platform.claude.com/docs/en/managed-agents/files), or [skills](https://platform.claude.com/docs/en/managed-agents/skills). ## From the Claude Agent SDK diff --git a/content/en/managed-agents/overview.md b/content/en/managed-agents/overview.md index 88c479011..da89f99af 100644 --- a/content/en/managed-agents/overview.md +++ b/content/en/managed-agents/overview.md @@ -83,7 +83,7 @@ Claude Managed Agents gives Claude access to a set of built-in tools: * **Bash:** Run shell commands in the sandbox * **File operations:** Read, write, edit, glob, and grep files in the sandbox -* **Web search and fetch:** Search the web and retrieve content from URLs +* **Web search and fetch:** Search the web and retrieve content from URLs, optionally restricted to an allowlist or blocklist of domains * **MCP servers:** Connect to external tool providers See [Tools](https://platform.claude.com/docs/en/managed-agents/tools) for the full list and configuration options. diff --git a/content/en/managed-agents/permission-policies.md b/content/en/managed-agents/permission-policies.md index 85ebda383..016cc19ef 100644 --- a/content/en/managed-agents/permission-policies.md +++ b/content/en/managed-agents/permission-policies.md @@ -541,9 +541,8 @@ Use the `configs` array to override the default for individual tools. The `name` }, Configs = [ - new() + new BetaManagedAgentsBashToolConfigParams { - Name = "bash", PermissionPolicy = new BetaManagedAgentsAlwaysAskPolicy { Type = "always_ask" }, }, ], @@ -562,11 +561,12 @@ Use the `configs` array to override the default for individual tools. The `name` }, }, }, - Configs: []anthropic.BetaManagedAgentsAgentToolConfigParams{{ - Name: anthropic.BetaManagedAgentsAgentToolConfigParamsNameBash, - PermissionPolicy: anthropic.BetaManagedAgentsAgentToolConfigParamsPermissionPolicyUnion{ - OfAlwaysAsk: &anthropic.BetaManagedAgentsAlwaysAskPolicyParam{ - Type: anthropic.BetaManagedAgentsAlwaysAskPolicyTypeAlwaysAsk, + Configs: []anthropic.BetaManagedAgentsAgentToolConfigUnionParamsUnion{{ + OfBetaManagedAgentsBashToolConfigs: &anthropic.BetaManagedAgentsBashToolConfigParams{ + PermissionPolicy: anthropic.BetaManagedAgentsBashToolConfigParamsPermissionPolicyUnion{ + OfAlwaysAsk: &anthropic.BetaManagedAgentsAlwaysAskPolicyParam{ + Type: anthropic.BetaManagedAgentsAlwaysAskPolicyTypeAlwaysAsk, + }, }, }, }}, @@ -593,8 +593,7 @@ Use the `configs` array to override the default for individual tools. The `name` .build() ) .addConfig( - BetaManagedAgentsAgentToolConfigParams.builder() - .name(BetaManagedAgentsAgentToolConfigParams.Name.BASH) + BetaManagedAgentsBashToolConfigParams.builder() .permissionPolicy( BetaManagedAgentsAlwaysAskPolicy.builder() .type(BetaManagedAgentsAlwaysAskPolicy.Type.ALWAYS_ASK) @@ -608,7 +607,7 @@ Use the `configs` array to override the default for individual tools. The `name` ``` ```php PHP - use Anthropic\Beta\Agents\BetaManagedAgentsAgentToolConfigParams; + use Anthropic\Beta\Agents\BetaManagedAgentsBashToolConfigParams; use Anthropic\Beta\Agents\BetaManagedAgentsAgentToolset20260401Params; use Anthropic\Beta\Agents\BetaManagedAgentsAgentToolsetDefaultConfigParams; use Anthropic\Beta\Agents\BetaManagedAgentsAlwaysAllowPolicy; @@ -621,8 +620,7 @@ Use the `configs` array to override the default for individual tools. The `name` permissionPolicy: BetaManagedAgentsAlwaysAllowPolicy::with(type: 'always_allow'), ), configs: [ - BetaManagedAgentsAgentToolConfigParams::with( - name: 'bash', + BetaManagedAgentsBashToolConfigParams::with( permissionPolicy: BetaManagedAgentsAlwaysAskPolicy::with(type: 'always_ask'), ), ], diff --git a/content/en/managed-agents/reference.md b/content/en/managed-agents/reference.md index 55a07ffbc..4c4aa53bc 100644 --- a/content/en/managed-agents/reference.md +++ b/content/en/managed-agents/reference.md @@ -103,6 +103,8 @@ These are the `ant beta:worker` CLI flags for the pre-built worker that drives a | `--max-idle` | How long to wait after the session goes idle with an `end_turn` [stop reason](https://platform.claude.com/docs/en/api/handling-stop-reasons) before shutting down. Defaults to `60s`. | | `--log-format` | Log output format. Use `json` for structured log ingestion. Defaults to `text`. | +The CLI worker does not mount [memory stores](https://platform.claude.com/docs/en/managed-agents/memory): a session that attaches one still runs, but the agent finds nothing at the store's `mount_path` and no changes sync back to the store. To use memory stores in sessions on a self-hosted environment, run the SDK worker instead; see [Use memory stores](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#use-memory-stores). + ## Supported MCP server types Claude Managed Agents connects to [remote MCP servers](https://platform.claude.com/docs/en/agents-and-tools/remote-mcp-servers) that expose an HTTP endpoint, or to private MCP servers through [MCP tunnels](https://platform.claude.com/docs/en/agents-and-tools/mcp-tunnels/overview). The server should support the MCP protocol's streamable HTTP transport; servers that only support the deprecated SSE transport still work through an automatic fallback. See [MCP connector](https://platform.claude.com/docs/en/managed-agents/mcp-connector) for declaring servers on an agent. diff --git a/content/en/managed-agents/scheduled-deployments.md b/content/en/managed-agents/scheduled-deployments.md index 55b21677b..6266aa942 100644 --- a/content/en/managed-agents/scheduled-deployments.md +++ b/content/en/managed-agents/scheduled-deployments.md @@ -16,7 +16,7 @@ For the launch context and examples of what teams run on schedules, see [schedul When creating a deployment, you pass the [session configurations](https://platform.claude.com/docs/en/managed-agents/sessions) required for execution, in addition to a `schedule`. -* Deployments require [agent configuration](https://platform.claude.com/docs/en/managed-agents/agent-setup) and [environment configuration](https://platform.claude.com/docs/en/managed-agents/environments), and optionally accept [files](https://platform.claude.com/docs/en/managed-agents/files), [GitHub](https://platform.claude.com/docs/en/managed-agents/github), [memory stores](https://platform.claude.com/docs/en/managed-agents/memory), and [vaults](https://platform.claude.com/docs/en/managed-agents/vaults). +* Deployments require [agent configuration](https://platform.claude.com/docs/en/managed-agents/agent-setup) and [environment configuration](https://platform.claude.com/docs/en/managed-agents/environments), and optionally accept [files](https://platform.claude.com/docs/en/managed-agents/files), [GitHub](https://platform.claude.com/docs/en/managed-agents/github), [memory stores](https://platform.claude.com/docs/en/managed-agents/memory), and [vaults](https://platform.claude.com/docs/en/managed-agents/vaults). A deployment that targets a [self-hosted environment](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#use-memory-stores) can attach memory stores; `file` and `github_repository` resources require a cloud environment. The Claude Console deployment form does not currently offer memory stores for self-hosted environments; attach them through the API or an SDK instead. * Deployments also require at least one initial event, a `user.message` or `user.define_outcome`, that starts each session's work. * In the `schedule`, you define a cron `expression` and a `timezone`. Maximum granularity supported is at the minute level. diff --git a/content/en/managed-agents/self-hosted-sandboxes-security.md b/content/en/managed-agents/self-hosted-sandboxes-security.md index ae63382ab..bb1a2a3bf 100644 --- a/content/en/managed-agents/self-hosted-sandboxes-security.md +++ b/content/en/managed-agents/self-hosted-sandboxes-security.md @@ -12,8 +12,11 @@ Anthropic secures the control plane across all environments: session and work qu * **Network egress controls.** Your sandbox's network access is determined by your VPC and firewall rules. Without egress restrictions, a compromised tool execution can reach arbitrary external hosts. Restrict outbound traffic to only the endpoints your tools require. * **Service key storage and rotation.** The environment service key (`ANTHROPIC_ENVIRONMENT_KEY`) authorizes polling your environment's work queue and submitting results back to sessions. Store it in a secrets manager, not in environment files or sandbox images. Rotate it immediately if you suspect exposure. * **Isolating untrusted workloads.** The environment service key is scoped to one environment's work queue. If you run untrusted code inside your sandbox, consider provisioning a separate workspace and environment for each trust boundary. This limits each key to a single user's sessions instead of a shared pool. +* **Per-session credentials.** Each work item your worker claims can carry a per-session `secret`, which the SDK worker uses in place of the environment service key. Access to [memory stores](https://platform.claude.com/docs/en/managed-agents/memory) requires the `secret`: the memory store endpoints reject the environment key (see [Use memory stores](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#use-memory-stores)). Pass the `secret` only into the sandbox that serves that session, keep it out of images and shared volumes, and never log it. * **Tool-execution blast radius.** Tools run inside your sandbox with whatever permissions your process has. Apply least privilege to the process user and mount only the directories your tools require. * **Log retention and session content.** Conversation content and tool outputs pass through your worker and stay in your environment. You are responsible for retaining, redacting, or deleting that data in compliance with your own policies. Anthropic has no visibility into what your worker does with session content once delivered. +* **Memory store contents.** [Memory stores](https://platform.claude.com/docs/en/managed-agents/memory) remain hosted by Anthropic, including their version history. When a session attaches one, the worker keeps a working copy under `/mnt/memory/` in your sandbox for the session's duration and syncs changes back. The worker deletes that copy when the session ends, but a worker that exits without running its teardown leaves it behind. Cleaning up leftover copies, the permissions on that path, and isolation between sessions that share a filesystem are your responsibility. +* **Read-only memory stores.** A store attached with `read_only` access is protected from upload, not from local modification. The worker's `write` and `edit` tools refuse to write under its directory, nothing there syncs back, and the memory store endpoints reject writes to it made with the session's `secret`. Other processes in the sandbox, including commands the agent runs through the `bash` tool, can still change the local copy, and later tool calls in that session read the changed copy until that memory next changes in the store. If the agent must not be able to alter even its local view of such a store, disable the `bash` tool for that agent. ## What Anthropic cannot do for you diff --git a/content/en/managed-agents/self-hosted-sandboxes.md b/content/en/managed-agents/self-hosted-sandboxes.md index 3c29ffdb0..ec5d5a26f 100644 --- a/content/en/managed-agents/self-hosted-sandboxes.md +++ b/content/en/managed-agents/self-hosted-sandboxes.md @@ -6,7 +6,7 @@ description: Run Claude Managed Agents sessions in self-hosted sandboxes, keepin By default, Managed Agents executes tools and code inside [Anthropic-managed cloud sandboxes](https://platform.claude.com/docs/en/managed-agents/cloud-sandboxes-reference). Self-hosted sandboxes keep the orchestration on Anthropic's side but move tool execution into infrastructure you control, so the agent's code, filesystem, and network egress never leave your environment. -Tool execution stays on your host: the filesystem the agent reads and writes, the processes it spawns, and the network it can reach are all under your control. Tool inputs and outputs still flow to Anthropic's control plane (where Claude runs) so the model can see results and determine what to do next. See the [security model](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes-security) for the full data-flow boundary. +Tool execution stays on your host: the filesystem the agent reads and writes, the processes it spawns, and the network it can reach are all under your control. Tool inputs and outputs still flow to Anthropic's control plane (where Claude runs) so the model can see results and determine what to do next. The agent's [skills](https://platform.claude.com/docs/en/managed-agents/skills) and the contents of any [memory stores](https://platform.claude.com/docs/en/managed-agents/memory) attached to the session are stored by Anthropic and copied into your sandbox for the session; changes the agent makes to memory files sync back to the store. See the [security model](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes-security) for the full data-flow boundary. Self-hosted sandboxes support all Claude models available in Managed Agents, including Claude Opus 4.8 and Claude Opus 5. The model is configured on the [agent](https://platform.claude.com/docs/en/managed-agents/agent-setup), not the environment. @@ -14,12 +14,13 @@ Tool execution stays on your host: the filesystem the agent reads and writes, th ## How it differs from cloud environments -| | Cloud environment | Self-hosted sandbox | -| ----------------------------- | --------------------------- | ------------------- | -| Where tools run | Anthropic-managed sandboxes | Your infrastructure | -| Network reach | Anthropic's egress controls | Your network policy | -| File and GitHub repo mounting | Managed by Anthropic | Managed by you | -| Lifecycle | Managed by Anthropic | Managed by you | +| | Cloud environment | Self-hosted sandbox | +| ----------------------------- | -------------------------------------- | --------------------------------------------------------- | +| Where tools run | Anthropic-managed sandboxes | Your infrastructure | +| Network reach | Anthropic's egress controls | Your network policy | +| File and GitHub repo mounting | Managed by Anthropic | Managed by you | +| Memory stores | Mounted by Anthropic at `/mnt/memory/` | Downloaded to `/mnt/memory/` and synced by the SDK worker | +| Lifecycle | Managed by Anthropic | Managed by you | Self-hosting is a good fit when the agent needs to operate on data that cannot leave your network boundary, reach internal services that are not publicly routable, or run under your organization's own compliance and audit controls. @@ -45,6 +46,7 @@ The CLI and SDK both ship pre-built workers. The `ant` CLI supports the always-o * **`/workspace`:** the system default working directory for tool execution and skill download. The CLI's `--workdir` flag defaults to the current directory; pass `--workdir /workspace` to match the system default. Skills are downloaded to `/skills//`. If you use a different working directory, update your agent's system prompt so Claude can locate the skill files. * **Outputs:** on self-hosted environments the session's system prompt omits the `/mnt/session/outputs` instruction used on Anthropic-managed sandboxes, so final deliverables land wherever the agent writes them in your sandbox filesystem, typically under the working directory. +* **`/mnt/memory/`:** memory stores attached to the session are materialized here by the SDK worker, one directory per store at the store's `mount_path` (for example, `/mnt/memory/user-preferences/`). The worker creates these directories when it claims the session and removes them when the session ends; see [Use memory stores](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#use-memory-stores). ## Before you begin @@ -53,10 +55,13 @@ You need: * **An existing agent.** If you don't have one, complete the [Quickstart](https://platform.claude.com/docs/en/managed-agents/quickstart) first and note its agent ID. * **A Linux host** with `/bin/bash` at that exact path. The worker's bash tool invokes it directly, without consulting `PATH`. The TypeScript SDK additionally requires `unzip` and `tar` on the `PATH` and Node.js 22 or later; the Python and Go SDKs use their standard libraries for archive extraction and have no additional binary requirements. * **The `ant` CLI or an Anthropic SDK** (Python, TypeScript, or Go) on the worker host. -* **Two credentials:** an environment key (generated in the Console in the steps that follow) authenticates the worker to its queue; your Claude API key creates sessions and reads queue stats from outside the worker host. Key generation is Console-only. +* **Credentials:** an environment key (generated in the Console in the steps that follow) authenticates the worker to its queue; your Claude API key creates sessions and reads queue stats from outside the worker host. Key generation is Console-only. Claimed work items also carry a per-session `secret` that the worker uses to mount [memory stores](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#use-memory-stores); you don't generate it, but in the sandbox-per-session pattern you forward it into the sandbox yourself (see [Run one sandbox per session](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#run-one-sandbox-per-session)). +* **For memory stores, a prepared host.** If sessions on this environment will attach memory stores, prepare `/mnt/memory` on the worker host before you start the worker; see [Prepare the host](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#prepare-the-host). On [Claude Platform on AWS](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws), the worker authenticates with AWS IAM (SigV4) or an [API key generated in the AWS Console](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws#api-key-authentication), not an environment key. Attach the [`AnthropicSelfHostedEnvironmentAccess`](https://platform.claude.com/docs/en/api/claude-platform-on-aws-iam-actions#managed-policies) managed policy to the IAM principal your worker runs as. Environment keys generated in the Claude Console don't work with the Claude Platform on AWS endpoint. + + Memory stores cannot be attached to sessions on self-hosted environments on Claude Platform on AWS. @@ -250,7 +255,7 @@ Choose **always-on** for the simplest setup: a long-running process polls the qu ENTRYPOINT ["ant", "beta:worker", "run"] ``` - Then write a spawn script that forwards session details into a fresh sandbox. The poller injects `ANTHROPIC_SESSION_ID`, `ANTHROPIC_WORK_ID`, `ANTHROPIC_ENVIRONMENT_ID`, and `ANTHROPIC_ENVIRONMENT_KEY` into the script's environment. `ANTHROPIC_BASE_URL` is optional and is passed through only if it was set on the poller host; it overrides the default API endpoint. In the example, `/host/outputs` is a host directory you choose; it is bind-mounted to the sandbox's working directory (`/workspace`) so you can retrieve session deliverables after the sandbox exits. On self-hosted environments the agent writes deliverables under the working directory rather than `/mnt/session/outputs` (see [Sandbox filesystem](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#sandbox-filesystem)), so mounting the working directory is what captures them; the mount also picks up the downloaded `skills/` tree and any intermediate files the agent creates. + Then write a spawn script that forwards session details into a fresh sandbox. The poller injects `ANTHROPIC_SESSION_ID`, `ANTHROPIC_WORK_ID`, `ANTHROPIC_ENVIRONMENT_ID`, and `ANTHROPIC_ENVIRONMENT_KEY` into the script's environment, and writes the claimed work item to the script's standard input as JSON, including the work item's per-session `secret` when Anthropic issued one. `ANTHROPIC_BASE_URL` is optional and is passed through only if it was set on the poller host; it overrides the default API endpoint. In the example, `/host/outputs` is a host directory you choose; it is bind-mounted to the sandbox's working directory (`/workspace`) so you can retrieve session deliverables after the sandbox exits. On self-hosted environments the agent writes deliverables under the working directory rather than `/mnt/session/outputs` (see [Sandbox filesystem](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#sandbox-filesystem)), so mounting the working directory is what captures them; the mount also picks up the downloaded `skills/` tree and any intermediate files the agent creates. ```bash #!/bin/bash @@ -263,6 +268,8 @@ Choose **always-on** for the simplest setup: a long-running process polls the qu your-image ``` + The `ant beta:worker run` entrypoint does not mount [memory stores](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#use-memory-stores). If sessions on this environment attach memory stores, keep the poller, but build the per-session image around the SDK worker and extend the spawn script to forward the work item's `secret` into the sandbox, as shown in [Run one sandbox per session](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#run-one-sandbox-per-session). + Start the poller pointing at the script: ```bash @@ -281,7 +288,9 @@ Choose **always-on** for the simplest setup: a long-running process polls the qu ```python Python import asyncio + import contextlib import os + import signal from anthropic import AsyncAnthropic from anthropic.lib.environments import EnvironmentWorker @@ -290,12 +299,20 @@ Choose **always-on** for the simplest setup: a long-running process polls the qu environment_key = os.environ["ANTHROPIC_ENVIRONMENT_KEY"] environment_id = os.environ["ANTHROPIC_ENVIRONMENT_ID"] async with AsyncAnthropic(auth_token=environment_key) as client: - await EnvironmentWorker( + worker = EnvironmentWorker( client, environment_id=environment_id, environment_key=environment_key, workdir="/workspace", - ).run() + ) + task = asyncio.create_task(worker.run()) + # Cancelling the task, rather than killing the process, lets the worker stop its + # in-flight work item and upload changed memory files before it exits. + loop = asyncio.get_running_loop() + for signum in (signal.SIGINT, signal.SIGTERM): + loop.add_signal_handler(signum, task.cancel) + with contextlib.suppress(asyncio.CancelledError): + await task asyncio.run(main()) @@ -309,6 +326,9 @@ Choose **always-on** for the simplest setup: a long-running process polls the qu const environmentId = process.env.ANTHROPIC_ENVIRONMENT_ID!; const client = new Anthropic({ authToken: environmentKey }); const controller = new AbortController(); + // Aborting on either signal lets the worker upload changed memory files and remove its + // store directories before the process exits. + process.once("SIGINT", () => controller.abort()); process.once("SIGTERM", () => controller.abort()); await new EnvironmentWorker({ @@ -393,22 +413,52 @@ Choose **always-on** for the simplest setup: a long-running process polls the qu `EnvironmentWorker` claims the work item, downloads skills, executes tool calls in the working directory, posts results back, and exits. Invoke it when `session.status_run_started` fires. + When you hand a claimed work item to `handle_item()` yourself, as this handler does, pass the work item's `secret` along as `work_secret` (`workSecret` in TypeScript, `WorkSecret` in Go) so the session can mount any [memory stores](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#use-memory-stores) attached to it. A handler like this one runs every claimed item in one process on one host, so two sessions that attach the same memory store cannot run through it at the same time (see [Prepare the host](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#prepare-the-host)); if your sessions share stores, launch [one sandbox per session](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#run-one-sandbox-per-session) instead. + ```python Python + import asyncio import os + import signal import anthropic + import standardwebhooks # installed by the anthropic[webhooks] extra environment_key = os.environ["ANTHROPIC_ENVIRONMENT_KEY"] environment_id = os.environ["ANTHROPIC_ENVIRONMENT_ID"] client = anthropic.AsyncAnthropic( auth_token=environment_key, ) + # Cancelled on SIGINT or SIGTERM (wired in handle) so an in-flight work item can upload + # changed memory files and remove its store directories before the process exits. + inflight: set[asyncio.Task[None]] = set() - async def handle(raw: bytes, headers: dict[str, str]) -> dict: - event = client.beta.webhooks.unwrap(raw.decode(), headers=headers) + def cancel_inflight() -> None: + for task in inflight: + task.cancel() + + + async def handle(raw: bytes, headers: dict[str, str]) -> tuple[dict[str, str], int]: + try: + event = client.beta.webhooks.unwrap(raw.decode(), headers=headers) + except standardwebhooks.WebhookVerificationError: + return {"error": "signature verification failed"}, 401 if event.data.type != "session.status_run_started": - return {"status": "ignored"} + return {"status": "ignored"}, 200 + loop = asyncio.get_running_loop() + for signum in (signal.SIGINT, signal.SIGTERM): + loop.add_signal_handler(signum, cancel_inflight) + task = asyncio.create_task(run_queued_work()) + inflight.add(task) + task.add_done_callback(inflight.discard) + try: + await task + except asyncio.CancelledError: + return {"status": "shutting down"}, 503 + return {"status": "ok"}, 200 + + + async def run_queued_work() -> None: async for work in client.beta.environments.work.poller( environment_id=environment_id, environment_key=environment_key, @@ -422,8 +472,9 @@ Choose **always-on** for the simplest setup: a long-running process polls the qu environment_id=environment_id, session_id=work.data.id, environment_key=environment_key, + # The per-session secret is what lets the worker mount the session's memory stores. + work_secret=work.secret, ) - return {"status": "ok"} ``` ```typescript TypeScript @@ -434,6 +485,11 @@ Choose **always-on** for the simplest setup: a long-running process polls the qu const client = new Anthropic({ authToken: environmentKey }); + // Aborted on SIGINT or SIGTERM so an in-flight work item can upload changed memory + // files and remove its store directories before the process exits. + const shutdown = new AbortController(); + process.once("SIGINT", () => shutdown.abort()); + process.once("SIGTERM", () => shutdown.abort()); export async function handle(req: Request): Promise { const body = await req.text(); @@ -453,13 +509,17 @@ Choose **always-on** for the simplest setup: a long-running process polls the qu blockMs: null, reclaimOlderThanMs: 2000, drain: true, - autoStop: false + autoStop: false, + signal: shutdown.signal })) { await client.beta.environments.work.worker({ workdir: "/workspace" }).handleItem({ workId: work.id, environmentId, sessionId: work.data.id, - environmentKey + environmentKey, + // The per-session secret is what lets the worker mount the session's memory stores. + workSecret: work.secret ?? undefined, + signal: shutdown.signal }); } return Response.json({ status: "ok" }); @@ -477,10 +537,13 @@ Choose **always-on** for the simplest setup: a long-running process polls the qu import ( "context" "encoding/json" + "errors" "io" "log/slog" "net/http" "os" + "os/signal" + "syscall" "github.com/anthropics/anthropic-sdk-go" "github.com/anthropics/anthropic-sdk-go/lib/environments" @@ -498,6 +561,9 @@ Choose **always-on** for the simplest setup: a long-running process polls the qu worker = environments.NewEnvironmentWorker(client, environments.EnvironmentWorkerOptions{ Workdir: "/workspace", }) + // Cancelled on SIGINT or SIGTERM (set in main) so an in-flight work item can + // upload changed memory files and remove its store directories before exit. + shutdown context.Context ) func handle(w http.ResponseWriter, r *http.Request) { @@ -519,13 +585,15 @@ Choose **always-on** for the simplest setup: a long-running process polls the qu // The Go SDK does not provide a RunOne convenience: drain pending items // with WorkPoller and run each one with HandleItem. // Detach from r.Context(): the session can outlive the webhook delivery timeout. - ctx := context.Background() + // The process-wide shutdown context still ends the item cleanly on SIGTERM. + ctx := shutdown poller := environments.NewWorkPoller(ctx, client, environments.WorkPollerOptions{ EnvironmentID: environmentID, EnvironmentKey: environmentKey, BlockMs: param.Null[int64](), ReclaimOlderThanMs: param.NewOpt[int64](2000), Drain: true, + AutoStop: param.NewOpt(false), }) defer poller.Close() for poller.Next() { @@ -535,6 +603,8 @@ Choose **always-on** for the simplest setup: a long-running process polls the qu EnvironmentID: item.EnvironmentID, SessionID: item.Data.ID, EnvironmentKey: environmentKey, + // The per-session secret is what lets the worker mount the session's memory stores. + WorkSecret: item.Secret, }); err != nil { slog.Error("handle work item", "work_id", item.ID, "err", err) http.Error(w, "internal error", http.StatusInternalServerError) @@ -550,10 +620,23 @@ Choose **always-on** for the simplest setup: a long-running process polls the qu } func main() { + ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM) + defer stop() + shutdown = ctx + + server := &http.Server{Addr: ":8080"} http.HandleFunc("POST /webhook", handle) - if err := http.ListenAndServe(":8080", nil); err != nil { - slog.Error("http server", "err", err) - os.Exit(1) + go func() { + if err := server.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) { + slog.Error("http server", "err", err) + os.Exit(1) + } + }() + // On a signal, stop accepting deliveries and return only after in-flight + // handlers, and therefore their work items' memory teardown, have finished. + <-ctx.Done() + if err := server.Shutdown(context.Background()); err != nil { + slog.Error("http shutdown", "err", err) } } @@ -586,14 +669,15 @@ The SDK provides three helpers at different levels of control. `EnvironmentWorke * **`EnvironmentWorker`:** the out-of-the-box worker. Handles polling, setup, and execution end to end. * `.run()`: runs indefinitely, picking up sessions as they arrive. - * `.handle_item()`: handles a single claimed work item and exits. Pass the work, session, and environment identifiers explicitly, or let it read the `ANTHROPIC_*` variables that `ant beta:worker poll --on-work` sets for the process it spawns. + * `.handle_item()`: handles a single claimed work item and exits. Pass the work, session, and environment identifiers explicitly, or let it read the `ANTHROPIC_*` variables that `ant beta:worker poll --on-work` sets for the process it spawns. To let the session mount its [memory stores](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#use-memory-stores), also pass the work item's `secret` as `work_secret` (`workSecret` in TypeScript, `WorkSecret` in Go) or set `ANTHROPIC_WORK_SECRET`; `ant beta:worker poll --on-work` does not set that variable, so read the secret from the work item JSON it writes to your script's standard input, as shown in [Run one sandbox per session](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#run-one-sandbox-per-session). + * `memory_sync_interval` (`memorySyncIntervalMs` in TypeScript, `MemorySyncInterval` in Go) and `memory_sync_deletes` (`memoryRemoteDeletes`, `MemorySyncDeletes`): how often attached memory stores reconcile with the server while the session runs, and whether files the agent deletes locally are also deleted from the store. See [Configure sync](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#configure-sync) for units, defaults, and how to disable memory support. * **`work.poller()`:** polls the work queue on your behalf and gives you each claimed session. Use this when you want to decide what happens for each session, for example launching a sandbox rather than running tools in-process. * `drain`: whether to stop polling once the queue is empty rather than waiting for new work. * `block_ms`: how long to wait for work to arrive before returning, in milliseconds. Must be between 1 and 999 (per-poll wait; the helper re-polls automatically). Pass `null` (`None` in Python, `param.Null[int64]()` in Go) for a non-blocking check; omitting the parameter uses the default 999 ms long-poll. * `reclaim_older_than_ms`: re-claim work items that were claimed but never acknowledged within this many milliseconds. - * `auto_stop`: whether to post a stop signal for each work item once your loop body finishes with it. The Go poller has no opt-out and always posts the stop signal, so block in the loop body until the session completes rather than detaching. + * `auto_stop` (`autoStop` in TypeScript, `AutoStop` in Go): whether to post a stop signal for each work item once your loop body finishes with it. Turn it off when the process you launch for the session, rather than the loop body, runs the work item to completion. * **`client.beta.sessions.events.tool_runner()`:** runs tool calls for a single session, given the session ID and a tool list. Use when you've already claimed the work and only need the execution layer. @@ -619,12 +703,31 @@ Use the work poller directly when you want to launch your own per-session proces from anthropic import AsyncAnthropic from anthropic.types.beta.environments import BetaSelfHostedWork + SANDBOX_ENV = ( + "ANTHROPIC_ENVIRONMENT_ID", + "ANTHROPIC_ENVIRONMENT_KEY", + "ANTHROPIC_WORK_ID", + "ANTHROPIC_SESSION_ID", + "ANTHROPIC_WORK_SECRET", + "ANTHROPIC_BASE_URL", # forwarded only when set on this host + ) + async def launch_container(work: BetaSelfHostedWork) -> None: - # Replace with your own per-session sandbox launcher. Pass - # ANTHROPIC_ENVIRONMENT_KEY into the launched sandbox, never - # your API key. print(f"claimed session {work.data.id}") + # Replace `docker run` with your own sandbox launcher. Forward the environment + # key (never your API key) and the work item's per-session secret: the worker + # inside needs the secret to mount the session's memory stores. + env = os.environ | { + "ANTHROPIC_WORK_ID": work.id, + "ANTHROPIC_SESSION_ID": work.data.id, + "ANTHROPIC_WORK_SECRET": work.secret or "", + } + forward = [arg for name in SANDBOX_ENV for arg in ("-e", name)] + launcher = await asyncio.create_subprocess_exec( + "docker", "run", "--rm", "--detach", *forward, "your-sdk-worker-image", env=env + ) + await launcher.wait() async def main() -> None: @@ -643,19 +746,43 @@ Use the work poller directly when you want to launch your own per-session proces ``` ```typescript TypeScript + import { spawn } from "node:child_process"; + import { once } from "node:events"; import Anthropic from "@anthropic-ai/sdk"; import { WorkPoller } from "@anthropic-ai/sdk/helpers/beta/environments"; import type { BetaSelfHostedWork } from "@anthropic-ai/sdk/resources/beta/environments"; + const SANDBOX_ENV = [ + "ANTHROPIC_ENVIRONMENT_ID", + "ANTHROPIC_ENVIRONMENT_KEY", + "ANTHROPIC_WORK_ID", + "ANTHROPIC_SESSION_ID", + "ANTHROPIC_WORK_SECRET", + "ANTHROPIC_BASE_URL" // forwarded only when set on this host + ]; + const environmentKey = process.env.ANTHROPIC_ENVIRONMENT_KEY!; const environmentId = process.env.ANTHROPIC_ENVIRONMENT_ID!; const client = new Anthropic({ authToken: environmentKey }); async function launchContainer(work: BetaSelfHostedWork): Promise { - // Replace with your own per-session sandbox launcher. Pass - // ANTHROPIC_ENVIRONMENT_KEY into the launched sandbox, never - // your API key. console.log(`claimed session ${work.data.id}`); + // Replace `docker run` with your own sandbox launcher. Forward the environment + // key (never your API key) and the work item's per-session secret: the worker + // inside needs the secret to mount the session's memory stores. + const env = { + ...process.env, + ANTHROPIC_WORK_ID: work.id, + ANTHROPIC_SESSION_ID: work.data.id, + ANTHROPIC_WORK_SECRET: work.secret ?? "" + }; + const forward = SANDBOX_ENV.flatMap((name) => ["-e", name]); + const launcher = spawn( + "docker", + ["run", "--rm", "--detach", ...forward, "your-sdk-worker-image"], + { env, stdio: "inherit" } + ); + await once(launcher, "close"); } const poller = new WorkPoller({ @@ -683,18 +810,40 @@ Use the work poller directly when you want to launch your own per-session proces "fmt" "log" "os" + "os/exec" "github.com/anthropics/anthropic-sdk-go" "github.com/anthropics/anthropic-sdk-go/lib/environments" "github.com/anthropics/anthropic-sdk-go/option" + "github.com/anthropics/anthropic-sdk-go/packages/param" ) - func launchContainer(work *anthropic.BetaSelfHostedWork) { - // Replace with your own per-session sandbox launcher. The Go poller - // calls work.Stop when this function returns (it has no auto-stop - // opt-out), so block here until the session completes rather than - // detaching as the Python and TypeScript tabs do. + var sandboxEnv = []string{ + "ANTHROPIC_ENVIRONMENT_ID", + "ANTHROPIC_ENVIRONMENT_KEY", + "ANTHROPIC_WORK_ID", + "ANTHROPIC_SESSION_ID", + "ANTHROPIC_WORK_SECRET", + "ANTHROPIC_BASE_URL", // forwarded only when set on this host + } + + func launchContainer(ctx context.Context, work *anthropic.BetaSelfHostedWork) error { fmt.Printf("claimed session %s\n", work.Data.ID) + // Replace `docker run` with your own sandbox launcher. Forward the environment + // key (never your API key) and the work item's per-session secret: the worker + // inside needs the secret to mount the session's memory stores. + args := []string{"run", "--rm", "--detach"} + for _, name := range sandboxEnv { + args = append(args, "-e", name) + } + launcher := exec.CommandContext(ctx, "docker", append(args, "your-sdk-worker-image")...) + launcher.Env = append(os.Environ(), + "ANTHROPIC_WORK_ID="+work.ID, + "ANTHROPIC_SESSION_ID="+work.Data.ID, + "ANTHROPIC_WORK_SECRET="+work.Secret, + ) + launcher.Stdout, launcher.Stderr = os.Stdout, os.Stderr + return launcher.Run() } func main() { @@ -708,6 +857,7 @@ Use the work poller directly when you want to launch your own per-session proces poller := environments.NewWorkPoller(ctx, client, environments.WorkPollerOptions{ EnvironmentID: environmentID, EnvironmentKey: environmentKey, + AutoStop: param.NewOpt(false), // the launched sandbox owns the stop call }) defer poller.Close() @@ -715,7 +865,9 @@ Use the work poller directly when you want to launch your own per-session proces if err != nil { log.Fatal(err) } - launchContainer(work) + if err := launchContainer(ctx, work); err != nil { + log.Fatal(err) + } } } ``` @@ -736,7 +888,9 @@ Use the work poller directly when you want to launch your own per-session proces ``` -**`AgentToolContext`** is the execution context for tool calls. It defines the working directory and path policy, and can download the session's skills. **`beta_agent_toolset_20260401(env)`** takes an `AgentToolContext` and returns the standard tool implementations (`bash`, `read`, `write`, `edit`, `glob`, `grep`). +Whatever launches the sandbox must forward the claimed work item's `secret` into it (for example as `ANTHROPIC_WORK_SECRET`) alongside the session, work, and environment identifiers, so the worker inside can mount the session's [memory stores](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#use-memory-stores); see [Run one sandbox per session](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#run-one-sandbox-per-session). + +**`AgentToolContext`** is the execution context for tool calls. It defines the working directory and path policy, and can download the session's skills. The file tools (`read`, `write`, `edit`, `glob`, `grep`) are confined to the working directory plus any directories listed in `allowed_roots` (`allowedRoots` in TypeScript, `AllowedRoots` in Go), and `write` and `edit` additionally refuse paths under `read_only_roots` (`readOnlyRoots`, `ReadOnlyRoots`). `EnvironmentWorker` adds the session's memory store directories to these lists itself. The confinement is a guardrail for the file tools only, not a sandbox; it does not constrain `bash`. **`beta_agent_toolset_20260401(env)`** takes an `AgentToolContext` and returns the standard tool implementations (`bash`, `read`, `write`, `edit`, `glob`, `grep`). **With `EnvironmentWorker`:** both are managed automatically. Pass a `tools` factory to customize the tool list: @@ -943,11 +1097,258 @@ Anthropic doesn't mount files or GitHub repositories into self-hosted sandboxes. - Self-hosted sandboxes don't support `resources` entries; a session that includes any resource on a self-hosted environment is rejected. + Self-hosted sandboxes support `memory_store` resources only; see [Use memory stores](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#use-memory-stores). A session on a self-hosted environment that includes a `file` or `github_repository` resource is rejected with a 400 error: + + ```text wrap + Environment env_... is a self-hosted environment. `resources` are not supported with self-hosted environments. + ``` + + [Deployments](https://platform.claude.com/docs/en/managed-agents/scheduled-deployments) that target a self-hosted environment follow the same rule. See [Self-hosted worker](https://platform.claude.com/docs/en/managed-agents/reference#self-hosted-worker) in the reference for the full list of CLI flags, and [SDK helpers](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#sdk-helpers) for the SDK helper options. +## Use memory stores + +Sessions on a self-hosted environment attach [memory stores](https://platform.claude.com/docs/en/managed-agents/memory) exactly as sessions on cloud environments do: list them in `resources` when you create the session, as shown in [Attach a memory store to a session](https://platform.claude.com/docs/en/managed-agents/memory#attach-a-memory-store-to-a-session). A session accepts up to 8 memory stores. On a self-hosted environment the SDK worker, rather than Anthropic's infrastructure, materializes each store for the agent, so memory stores there require `EnvironmentWorker` (or its `handle_item()` method) from the Python, TypeScript, or Go SDK. + +The `ant` CLI worker (`ant beta:worker poll` and `ant beta:worker run`) does not mount memory stores. To combine the CLI poller with memory stores, run the SDK worker inside a per-session sandbox as described in [Run one sandbox per session](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#run-one-sandbox-per-session). + +Memory stores cannot be attached to sessions on self-hosted environments on [Claude Platform on AWS](https://platform.claude.com/docs/en/build-with-claude/claude-platform-on-aws). + +### How the worker handles memory + +When the worker claims a work item whose session has memory stores attached, it: + +1. Downloads each attached store to its `mount_path` on the worker host, authenticating with the work item's per-session `secret`. The `mount_path` is the same directory under `/mnt/memory/` that cloud sessions use (for example, `/mnt/memory/user-preferences/` for a store named "User Preferences"), and the session's system prompt describes it to the agent. +2. Adds those directories to the file tools' allowed roots, and the directories of stores attached with `access: "read_only"` to their read-only roots, so the agent works on memories with the same `read`, `write`, `edit`, `glob`, and `grep` tools it uses in the working directory. +3. Reconciles local and remote changes after tool calls, at most once per sync interval (15 seconds by default): memories that changed in the store are written to disk, and files the agent changed are uploaded to the store. +4. Runs a final sync when the session ends, flushes any uploads still pending for up to 30 seconds, and then removes the directories it created. A worker that is cancelled while a session runs skips the final sync but still uploads changed files and removes the directories before it exits. + +The memory store on Anthropic's side remains the source of truth. [Memory versions](https://platform.claude.com/docs/en/managed-agents/memory#audit-memory-changes), redaction, and viewing or editing memories in the Console work as they do for cloud sessions, and the agent's memory reads and writes appear in the [event stream](https://platform.claude.com/docs/en/managed-agents/events-and-streaming) as ordinary tool events. Because each worker syncs on an interval, a change written in one session becomes visible to another running session only after both have synced, typically well under a minute at the default interval; sessions on cloud sandboxes see each other's changes almost immediately. + +Each store directory contains a marker file named `.anthropic-memory-store` that ties the directory to its store. Leave it in place: the worker does not sync a directory whose marker is missing or altered. + +### Prepare the host + +Memory stores on self-hosted sandboxes need a POSIX filesystem on the worker host (the Linux host from [Before you begin](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#before-you-begin)); Windows hosts are not supported, because the worker requires `O_NOFOLLOW` when it opens memory files. A case-sensitive filesystem is recommended, so that memory paths that differ only in case do not collide. + +Before you start the worker, create the parent directory and make it writable by the user the worker runs as: + +```bash +sudo mkdir -p /mnt/memory && sudo chown "$USER" /mnt/memory +``` + +Do not create the per-store directories yourself. The worker creates each store's `mount_path` directory (for example, `/mnt/memory/user-preferences`) when a session starts, refuses to start the session's work if something already exists at that path, and removes the directory when the session ends. Two operating rules follow: + +* **Run one session per filesystem when sessions attach the same store.** Two sessions cannot mount the same store on one host at the same time, because both need the same path. Giving each session its own sandbox, as described in [Run one sandbox per session](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#run-one-sandbox-per-session), satisfies this rule. +* **Stop workers gracefully.** When you stop a worker while a session runs, `EnvironmentWorker` uploads the session's changed memory files and removes its store directories only if it is cancelled rather than killed: a killed process runs no teardown, and the worker does not install signal handlers itself. Wire SIGTERM and SIGINT to cancellation in the process that runs it: abort the `signal` you pass to the worker in TypeScript, cancel the context in Go, and in Python cancel the task that runs `run()` or `handle_item()` from a signal handler. Then stop workers with SIGTERM and give them at least 30 seconds to exit before any hard kill, because the final upload can take that long. If a worker is killed before its teardown runs, remove the leftover store directory under `/mnt/memory/` before the next session that attaches that store; any edits in it that had not synced are lost. + +### Run one sandbox per session + +The sandbox-per-session pattern in [Run a worker](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#run-a-worker) gives each session a fresh filesystem, which is what [Prepare the host](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#prepare-the-host) calls for when sessions attach the same store. Keep `ant beta:worker poll --on-work` (or the SDK's work poller) as the poller on the host. + +The `ant beta:worker run` entrypoint shown there does not mount memory stores, so build the per-session image around the SDK worker instead: its entrypoint constructs `EnvironmentWorker` and calls `handle_item()` (`handleItem` in TypeScript, `HandleItem` in Go), which reads the session, work, and environment identifiers from the `ANTHROPIC_*` variables and the work item's per-session `secret` from `ANTHROPIC_WORK_SECRET`. You can also pass the secret explicitly as `work_secret` (`workSecret` in TypeScript, `WorkSecret` in Go). + + + ```python Python + import asyncio + import contextlib + import os + import signal + from anthropic import AsyncAnthropic + from anthropic.lib.environments import EnvironmentWorker + + + async def main() -> None: + async with AsyncAnthropic(auth_token=os.environ["ANTHROPIC_ENVIRONMENT_KEY"]) as client: + worker = EnvironmentWorker(client, workdir="/workspace") + # With no arguments, handle_item() reads the ANTHROPIC_* variables the spawn + # script forwarded, including ANTHROPIC_WORK_SECRET. + task = asyncio.create_task(worker.handle_item()) + # Cancelling the task when the container is stopped lets the worker upload + # changed memory files and remove the store directories before it exits. + loop = asyncio.get_running_loop() + for signum in (signal.SIGINT, signal.SIGTERM): + loop.add_signal_handler(signum, task.cancel) + with contextlib.suppress(asyncio.CancelledError): + await task + + + asyncio.run(main()) + ``` + + ```typescript TypeScript + import Anthropic from "@anthropic-ai/sdk"; + import { EnvironmentWorker } from "@anthropic-ai/sdk/helpers/beta/environments"; + + const client = new Anthropic({ authToken: process.env.ANTHROPIC_ENVIRONMENT_KEY }); + const controller = new AbortController(); + // Aborting when the container is stopped lets the worker upload changed memory + // files and remove the store directories before it exits. + process.once("SIGTERM", () => controller.abort()); + process.once("SIGINT", () => controller.abort()); + + // With no arguments, handleItem() reads the ANTHROPIC_* variables the spawn + // script forwarded, including ANTHROPIC_WORK_SECRET. + await new EnvironmentWorker({ + client, + workdir: "/workspace", + signal: controller.signal + }).handleItem(); + ``` + + ```csharp C# + // EnvironmentWorker is not currently available in the C# SDK. + ``` + + ```go Go + package main + + import ( + "context" + "log" + "os" + "os/signal" + "syscall" + + "github.com/anthropics/anthropic-sdk-go" + "github.com/anthropics/anthropic-sdk-go/lib/environments" + "github.com/anthropics/anthropic-sdk-go/option" + ) + + func main() { + // Cancelling the context when the container is stopped lets the worker upload + // changed memory files and remove the store directories before it exits. + ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt, syscall.SIGTERM) + defer stop() + + client := anthropic.NewClient(option.WithAuthToken(os.Getenv("ANTHROPIC_ENVIRONMENT_KEY"))) + worker := environments.NewEnvironmentWorker(client, environments.EnvironmentWorkerOptions{ + Workdir: "/workspace", + }) + // With zero-value options, HandleItem reads the ANTHROPIC_* variables the spawn + // script forwarded, including ANTHROPIC_WORK_SECRET. + if err := worker.HandleItem(ctx, environments.HandleItemOptions{}); err != nil { + log.Fatalf("worker: %v", err) + } + } + + ``` + + ```java Java + // EnvironmentWorker is not currently available in the Java SDK. + ``` + + ```php PHP + // EnvironmentWorker is not currently available in the PHP SDK. + ``` + + ```ruby Ruby + # EnvironmentWorker is not currently available in the Ruby SDK. + ``` + + +`ant beta:worker poll --on-work` does not set `ANTHROPIC_WORK_SECRET` for the script it spawns, so the spawn script reads the secret from the work item JSON on its standard input and passes it into the sandbox: + +```bash +#!/bin/bash +# spawn.sh: called once per claimed work item +# The claimed work item arrives as JSON on stdin. Its secret is the +# per-session credential that the memory store endpoints require. +ANTHROPIC_WORK_SECRET="$(jq -r '.secret // empty')" +export ANTHROPIC_WORK_SECRET +mkdir -p "/host/outputs/$ANTHROPIC_SESSION_ID" +exec docker run --rm \ + -e ANTHROPIC_SESSION_ID -e ANTHROPIC_ENVIRONMENT_KEY \ + -e ANTHROPIC_WORK_ID -e ANTHROPIC_ENVIRONMENT_ID -e ANTHROPIC_BASE_URL \ + -e ANTHROPIC_WORK_SECRET \ + -v "/host/outputs/$ANTHROPIC_SESSION_ID":/workspace \ + your-sdk-worker-image +``` + +If you claim work with the SDK's work poller instead, pass each claimed item's `secret` into the sandbox you launch in the same way. Pass it only into the sandbox that serves that session, and never log it. + +The sandbox image also needs a writable `/mnt/memory` (see [Prepare the host](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#prepare-the-host)). Because each sandbox serves one session and is discarded afterward, no leftover directories need cleanup, and the memory directories do not need to be bind-mounted to the host: the worker uploads their contents to the store before the sandbox exits. If you stop a container before its session ends, send a signal that the entrypoint turns into cancellation (see [Prepare the host](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#prepare-the-host)) rather than killing it, so that upload still runs. Give the container time to finish the upload as well: Docker follows the stop signal with SIGKILL after 10 seconds by default, so raise that limit to at least the 30 seconds that Prepare the host calls for, with `--stop-timeout` on `docker run` or your orchestrator's termination grace period. + +### Configure sync + +Two `EnvironmentWorker` options control memory behavior: + +* **`memory_sync_interval`** (Python, in seconds; `memorySyncIntervalMs` in TypeScript, in milliseconds; `MemorySyncInterval` in Go, a duration): how often attached stores reconcile with the server while the session runs. Defaults to 15 seconds; the minimum is 5 seconds. A shorter interval narrows the window in which another session sees stale memories, at the cost of more memory store requests. `None` in Python, `null` in TypeScript, or a negative duration in Go disables memory support entirely: the worker neither downloads nor syncs stores, and a session with memory stores attached runs without them even though its system prompt still describes them, so disable memory support only on workers whose sessions attach no memory stores. While memory support is enabled, a work item that arrives without a per-session `secret` for a session with attached stores fails rather than running without memory (see [Troubleshoot memory mounts](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#troubleshoot-memory-mounts)). +* **`memory_sync_deletes`** (`memoryRemoteDeletes` in TypeScript, `MemorySyncDeletes` in Go): whether a file the agent deletes locally is also deleted from the store. The value is one of `"enabled"` (the default), `"log_only"`, or `"disabled"` in Python and TypeScript, and one of the constants `environments.MemorySyncDeletesEnabled` (the zero value), `environments.MemorySyncDeletesLogOnly`, or `environments.MemorySyncDeletesDisabled` in Go. When enabled, the worker deletes the memory from the store once a later sync confirms the file is still gone; in log-only mode it runs the same checks but only logs what it would have deleted, which lets you watch what your workers would delete before you trust the enabled mode; when disabled, it never deletes from the store. Uploads and downloads are unaffected by this setting. + +Set these options where you construct the worker, whether through the `EnvironmentWorker` constructor or, in Python and TypeScript, the `client.beta.environments.work.worker()` factory that the webhook handler uses. + +For example, to sync every 10 seconds and only log the deletes the worker would have made: + + + ```python Python + worker = EnvironmentWorker( + client, + environment_id=environment_id, + environment_key=environment_key, + workdir="/workspace", + memory_sync_interval=10, # seconds + memory_sync_deletes="log_only", + ) + ``` + + ```typescript TypeScript + const worker = new EnvironmentWorker({ + client, + environmentId, + environmentKey, + workdir: "/workspace", + memorySyncIntervalMs: 10_000, + memorySyncDeletes: "log_only" + }); + ``` + + ```csharp C# + // EnvironmentWorker is not currently available in the C# SDK. + ``` + + ```go Go + worker := environments.NewEnvironmentWorker(client, environments.EnvironmentWorkerOptions{ + EnvironmentID: environmentID, + EnvironmentKey: environmentKey, + Workdir: "/workspace", + MemorySyncInterval: 10 * time.Second, + MemorySyncDeletes: environments.MemorySyncDeletesLogOnly, + }) + ``` + + ```java Java + // EnvironmentWorker is not currently available in the Java SDK. + ``` + + ```php PHP + // EnvironmentWorker is not currently available in the PHP SDK. + ``` + + ```ruby Ruby + # EnvironmentWorker is not currently available in the Ruby SDK. + ``` + + +### Read-only stores and conflicts + +For a store attached with `access: "read_only"`, the `write` and `edit` tools refuse to change files inside its directory, and the worker never uploads anything from it. Changes made through `bash` are not blocked locally: they are never synced to the store, and the next remote change to that memory overwrites them. If you need the local copy itself to stay unchanged during the session, disable the `bash` tool for that agent; do not mount the store path read-only, because the worker itself must create the directory and write the downloaded memories into it. + +Conflicts resolve in favor of the store. When the agent changes a memory file that also changed in the store since the session last synced it, the worker keeps the store's version at the next sync, overwrites the local file with it, and logs a warning; the `write` and `edit` tools themselves succeed and no error reaches the agent. If the agent's change still applies, it can re-read the file after the sync and make the change again. + +### Troubleshoot memory mounts + +The worker logs mount and background sync failures rather than reporting them to the session; only read-only refusals reach the agent, as tool errors (see [Read-only stores and conflicts](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#read-only-stores-and-conflicts)). If a memory store cannot be mounted when the worker claims a session, the worker fails the work item: the session emits no error event and stays idle. + +| Symptom | Cause | Fix | +| --------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| The worker log contains `the work item carried no sessions token` (in Go, the `ErrSessionMemoryNoToken` error) and the work item fails. | The work item's per-session `secret` did not reach the worker: memory stores on self-hosted sandboxes are not enabled for your organization, or your spawn script did not forward the secret into the sandbox. | In the sandbox-per-session pattern, forward `ANTHROPIC_WORK_SECRET` into the sandbox as shown in [Run one sandbox per session](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#run-one-sandbox-per-session). If the worker polls and runs sessions in one process and still logs this, contact support. | +| The worker log contains `something already exists at the memory store's path`. | A directory left over from a previous session, usually one whose worker was killed before its teardown ran. | Remove the leftover directory that the log line names. Edits in it that had not synced are lost. | +| The worker log contains `cannot create the memory store's folder` and `the worker host must make this mount path writable`. | The user the worker runs as cannot create directories under `/mnt/memory`. | Create `/mnt/memory` and `chown` it to that user; see [Prepare the host](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#prepare-the-host). | +| The session sits `idle` with a `requires_action` stop reason and no error event shortly after a worker claimed it. | The worker failed the work item because it could not mount a memory store, for one of the preceding reasons. | Fix the cause on the host, then send a [`user.interrupt`](https://platform.claude.com/docs/en/managed-agents/events-and-streaming#integrating-events) event: the session's work is queued again and the next worker that claims it retries the mount. | + ## Serve custom tools from your sandbox [Custom tools](https://platform.claude.com/docs/en/managed-agents/tools#custom-tools) are tools your own code executes: the agent emits an `agent.custom_tool_use` event and waits for a matching `user.custom_tool_result`. The worker can be that code, and because it runs inside your sandbox, the tool reaches the internal services, credentials, and network egress you configured for the sandbox, and nothing more. The environment key authorizes posting custom tool results, so your Claude API key stays off the worker host. diff --git a/content/en/managed-agents/session-operations.md b/content/en/managed-agents/session-operations.md index fa0a21934..1dad551f1 100644 --- a/content/en/managed-agents/session-operations.md +++ b/content/en/managed-agents/session-operations.md @@ -23,7 +23,7 @@ Sessions progress through these statuses. See [Start a session](https://platform ## Updating the agent configuration -You can update a session's `agent.tools` and `agent.mcp_servers`, including permission policies, mid-session without creating a new agent version. Updates are session-local and do not propagate back to the underlying agent. +You can update a session's `agent.tools` and `agent.mcp_servers`, including permission policies and per-tool web settings such as [domain filters](https://platform.claude.com/docs/en/managed-agents/tools#restrict-web-search-and-web-fetch-domains), mid-session without creating a new agent version. Updates are session-local and do not propagate back to the underlying agent. Updated `allowed_domains` and `blocked_domains` apply to the rest of the session. Only the agent's `tools` and `mcp_servers` can change after a session is created. To run a session with `model`, `system`, or `skills` values other than the agent's, use [agent configuration overrides](https://platform.claude.com/docs/en/managed-agents/sessions#override-agent-configuration-for-a-session) when you create the session. The agent's model configuration, including its [`inference_geo`](https://platform.claude.com/docs/en/manage-claude/data-residency) pin, also can't change mid-session: set the pin when you save the agent, or set or clear it for a single session with a `model` override when you create it. The agent's configured `system` field is fixed for the session's lifetime. On models that support it, you can still append system-level guidance mid-session by sending a [`system.message` event](https://platform.claude.com/docs/en/managed-agents/events-and-streaming#sending-system-messages). diff --git a/content/en/managed-agents/skills.md b/content/en/managed-agents/skills.md index a14f8de00..73b244866 100644 --- a/content/en/managed-agents/skills.md +++ b/content/en/managed-agents/skills.md @@ -21,7 +21,7 @@ To learn how to author custom skills, see [Agent Skills](https://platform.claude A custom skill is a directory containing a `SKILL.md` file plus any supporting files, uploaded to your workspace as a zip archive or as individual files. Creating the skill returns the `skill_*` ID you reference when attaching it to an agent. Anthropic pre-built skills are already available in every workspace and don't require this step. To use only pre-built skills, skip to [Attach skills to an agent](https://platform.claude.com/docs/en/managed-agents/skills#attach-skills-to-an-agent). -When you call the Skills API directly with cURL, pass the `anthropic-beta: skills-2025-10-02` header explicitly. The CLI and SDKs send it automatically. +The Skills API doesn't require a beta header. The cURL example still sends `anthropic-beta: skills-2025-10-02`, and the CLI and SDK `beta` commands add it automatically; requests that include it continue to work unchanged. These examples omit the optional `display_title` field, so the skill's title is derived from `SKILL.md`. An explicitly passed `display_title` must be unique among the custom skills in your workspace. diff --git a/content/en/managed-agents/tools.md b/content/en/managed-agents/tools.md index 265e28020..3b1df1e10 100644 --- a/content/en/managed-agents/tools.md +++ b/content/en/managed-agents/tools.md @@ -14,7 +14,7 @@ Claude Managed Agents also supports custom, user-defined tools. Your application ## Available tools -The agent toolset includes the following tools. All are enabled by default when you include the toolset in your agent configuration. Use the values in the Name column to reference tools in the `configs` array. +The agent toolset includes the following tools. All are enabled by default when you include the toolset in your agent configuration. Each entry in the `configs` array is identified by its `name`, using the values in the Name column, and accepts an optional `type` field with the same value. The `web_search` and `web_fetch` entries accept additional settings; see [Restrict web search and web fetch domains](https://platform.claude.com/docs/en/managed-agents/tools#restrict-web-search-and-web-fetch-domains). | Tool | Name | Description | | ---------- | ------------ | ---------------------------------------------- | @@ -33,6 +33,8 @@ When a tool output exceeds 100,000 characters (about 25,000 tokens), it is autom Enable the full toolset with `agent_toolset_20260401` when creating an agent. Use the `configs` array to disable specific tools or override their settings. Each config entry can also set a `permission_policy` that controls whether the tool's calls are auto-approved or require confirmation. See [Permission policies](https://platform.claude.com/docs/en/managed-agents/permission-policies) for the available policy types. +Config entries for `web_search` and `web_fetch` also accept domain filters and other web settings; see [Restrict web search and web fetch domains](https://platform.claude.com/docs/en/managed-agents/tools#restrict-web-search-and-web-fetch-domains). + ```bash cURL agent=$(curl -fsSL https://api.anthropic.com/v1/agents \ @@ -111,7 +113,7 @@ Enable the full toolset with `agent_toolset_20260401` when creating an agent. Us Type = "agent_toolset_20260401", Configs = [ - new() { Name = "web_fetch", Enabled = false }, + new BetaManagedAgentsWebFetchToolConfigParams { Enabled = false }, ], }, ], @@ -127,9 +129,10 @@ Enable the full toolset with `agent_toolset_20260401` when creating an agent. Us Tools: []anthropic.BetaAgentNewParamsToolUnion{{ OfAgentToolset20260401: &anthropic.BetaManagedAgentsAgentToolset20260401Params{ Type: anthropic.BetaManagedAgentsAgentToolset20260401ParamsTypeAgentToolset20260401, - Configs: []anthropic.BetaManagedAgentsAgentToolConfigParams{{ - Name: anthropic.BetaManagedAgentsAgentToolConfigParamsNameWebFetch, - Enabled: anthropic.Bool(false), + Configs: []anthropic.BetaManagedAgentsAgentToolConfigUnionParamsUnion{{ + OfBetaManagedAgentsWebFetchToolConfigs: &anthropic.BetaManagedAgentsWebFetchToolConfigParams{ + Enabled: anthropic.Bool(false), + }, }}, }, }}, @@ -148,8 +151,7 @@ Enable the full toolset with `agent_toolset_20260401` when creating an agent. Us .model(BetaManagedAgentsModel.CLAUDE_OPUS_5) .addTool(BetaManagedAgentsAgentToolset20260401Params.builder() .type(BetaManagedAgentsAgentToolset20260401Params.Type.AGENT_TOOLSET_20260401) - .addConfig(BetaManagedAgentsAgentToolConfigParams.builder() - .name(BetaManagedAgentsAgentToolConfigParams.Name.WEB_FETCH) + .addConfig(BetaManagedAgentsWebFetchToolConfigParams.builder() .enabled(false) .build()) .build()) @@ -157,8 +159,8 @@ Enable the full toolset with `agent_toolset_20260401` when creating an agent. Us ``` ```php PHP - use Anthropic\Beta\Agents\BetaManagedAgentsAgentToolConfigParams; use Anthropic\Beta\Agents\BetaManagedAgentsAgentToolset20260401Params; + use Anthropic\Beta\Agents\BetaManagedAgentsWebFetchToolConfigParams; $agent = $client->beta->agents->create( name: 'Coding Assistant', @@ -167,7 +169,7 @@ Enable the full toolset with `agent_toolset_20260401` when creating an agent. Us BetaManagedAgentsAgentToolset20260401Params::with( type: 'agent_toolset_20260401', configs: [ - BetaManagedAgentsAgentToolConfigParams::with(name: 'web_fetch', enabled: false), + BetaManagedAgentsWebFetchToolConfigParams::with(enabled: false), ], ), ], @@ -220,6 +222,434 @@ The `default_config` object sets the baseline for every tool in the set, and per } ``` +### Restrict web search and web fetch domains + +To control which sites the agent's web tools can reach, set `allowed_domains` (the tool can reach only these hosts) or `blocked_domains` (the tool can never reach these hosts) on the `web_search` and `web_fetch` entries of the toolset's `configs` array. Each tool carries its own list, so `web_search` and `web_fetch` can have different restrictions. A listed domain covers that host and all of its subdomains. At runtime, a `web_fetch` call for a URL that its lists do not permit returns an error result to the agent (`is_error: true` on the `agent.tool_result` event, with content that names the error code `url_not_allowed`), and `web_search` omits results that its lists do not permit. + +The following toolset limits `web_search` to two sites and localizes its results, and blocks one host for `web_fetch` while capping how much fetched content enters the context: + +```json +{ + "type": "agent_toolset_20260401", + "configs": [ + { + "type": "web_search", + "name": "web_search", + "allowed_domains": ["docs.example.com", "arxiv.org"], + "user_location": { + "type": "approximate", + "country": "US", + "timezone": "America/Los_Angeles" + } + }, + { + "type": "web_fetch", + "name": "web_fetch", + "blocked_domains": ["ads.example.com"], + "max_content_tokens": 50000 + } + ] +} +``` + + + In the Python, TypeScript, Go, Java, C#, Ruby, and PHP SDKs, each `configs` entry is typed per tool: a union with one member per built-in tool, discriminated by `type`. `type` is optional when you construct an entry (the server infers it from `name`) and always present on responses. This typing does not change the JSON that an entry serializes to, so a request whose entries set only `name`, `enabled`, and `permission_policy` is valid with or without `type`. In SDKs where you construct entries from typed values rather than plain dictionaries or hashes (Go, Java, C#, and PHP), the element type of `configs` is the union itself: build each entry from its per-tool member type. + + +The following request creates an agent with this toolset and prints the `configs` array from the response: + + + ```bash cURL + agent=$(curl -fsSL https://api.anthropic.com/v1/agents \ + -H "x-api-key: $ANTHROPIC_API_KEY" \ + -H "anthropic-version: 2023-06-01" \ + -H "anthropic-beta: managed-agents-2026-04-01" \ + -H "content-type: application/json" \ + -d @- <<'EOF' + { + "name": "Research Agent", + "model": "claude-opus-5", + "tools": [ + { + "type": "agent_toolset_20260401", + "configs": [ + { + "type": "web_search", + "name": "web_search", + "allowed_domains": ["docs.example.com", "arxiv.org"], + "user_location": { + "type": "approximate", + "country": "US", + "timezone": "America/Los_Angeles" + } + }, + { + "type": "web_fetch", + "name": "web_fetch", + "blocked_domains": ["ads.example.com"], + "max_content_tokens": 50000 + } + ] + } + ] + } + EOF + ) + jq '.tools[0].configs' <<< "$agent" + ``` + + ```bash CLI + ant beta:agents create --transform tools.0.configs <<'YAML' + name: Research Agent + model: claude-opus-5 + tools: + - type: agent_toolset_20260401 + configs: + - type: web_search + name: web_search + allowed_domains: [docs.example.com, arxiv.org] + user_location: + type: approximate + country: US + timezone: America/Los_Angeles + - type: web_fetch + name: web_fetch + blocked_domains: [ads.example.com] + max_content_tokens: 50000 + YAML + ``` + + ```python Python + client = Anthropic() + + agent = client.beta.agents.create( + name="Research Agent", + model="claude-opus-5", + tools=[ + { + "type": "agent_toolset_20260401", + "configs": [ + { + "name": "web_search", + "allowed_domains": ["docs.example.com", "arxiv.org"], + "user_location": { + "type": "approximate", + "country": "US", + "timezone": "America/Los_Angeles", + }, + }, + { + "name": "web_fetch", + "blocked_domains": ["ads.example.com"], + "max_content_tokens": 50_000, + }, + ], + } + ], + ) + + for tool in agent.tools: + if tool.type == "agent_toolset_20260401": + print(json.dumps([config.to_dict() for config in tool.configs], indent=2)) + ``` + + ```typescript TypeScript + const client = new Anthropic(); + + const agent = await client.beta.agents.create({ + name: "Research Agent", + model: "claude-opus-5", + tools: [ + { + type: "agent_toolset_20260401", + configs: [ + { + name: "web_search", + allowed_domains: ["docs.example.com", "arxiv.org"], + user_location: { + type: "approximate", + country: "US", + timezone: "America/Los_Angeles" + } + }, + { + name: "web_fetch", + blocked_domains: ["ads.example.com"], + max_content_tokens: 50_000 + } + ] + } + ] + }); + + for (const tool of agent.tools) { + if (tool.type === "agent_toolset_20260401") { + console.log(JSON.stringify(tool.configs, null, 2)); + } + } + ``` + + ```csharp C# + using Anthropic.Models.Beta.Agents; + + AnthropicClient client = new(); + + var agent = await client.Beta.Agents.Create(new() + { + Name = "Research Agent", + Model = BetaManagedAgentsModel.ClaudeOpus5, + Tools = + [ + new BetaManagedAgentsAgentToolset20260401Params + { + Type = BetaManagedAgentsAgentToolset20260401ParamsType.AgentToolset20260401, + Configs = + [ + new BetaManagedAgentsWebSearchToolConfigParams + { + AllowedDomains = ["docs.example.com", "arxiv.org"], + UserLocation = new() + { + Country = "US", + Timezone = "America/Los_Angeles", + }, + }, + new BetaManagedAgentsWebFetchToolConfigParams + { + BlockedDomains = ["ads.example.com"], + MaxContentTokens = 50_000, + }, + ], + }, + ], + }); + + JsonSerializerOptions jsonOptions = new() { WriteIndented = true }; + foreach (var tool in agent.Tools) + { + if (tool.TryPickBetaManagedAgentsAgentToolset20260401(out var toolset)) + { + Console.WriteLine(JsonSerializer.Serialize(toolset.Configs, jsonOptions)); + } + } + ``` + + ```go Go + client := anthropic.NewClient() + ctx := context.Background() + + agent, err := client.Beta.Agents.New(ctx, anthropic.BetaAgentNewParams{ + Name: "Research Agent", + Model: anthropic.BetaManagedAgentsModelConfigParams{ + ID: anthropic.BetaManagedAgentsModelClaudeOpus5, + }, + Tools: []anthropic.BetaAgentNewParamsToolUnion{{ + OfAgentToolset20260401: &anthropic.BetaManagedAgentsAgentToolset20260401Params{ + Type: anthropic.BetaManagedAgentsAgentToolset20260401ParamsTypeAgentToolset20260401, + Configs: []anthropic.BetaManagedAgentsAgentToolConfigUnionParamsUnion{ + {OfBetaManagedAgentsWebSearchToolConfigs: &anthropic.BetaManagedAgentsWebSearchToolConfigParams{ + AllowedDomains: []string{"docs.example.com", "arxiv.org"}, + UserLocation: anthropic.BetaManagedAgentsUserLocationParam{ + Country: anthropic.String("US"), + Timezone: anthropic.String("America/Los_Angeles"), + }, + }}, + {OfBetaManagedAgentsWebFetchToolConfigs: &anthropic.BetaManagedAgentsWebFetchToolConfigParams{ + BlockedDomains: []string{"ads.example.com"}, + MaxContentTokens: anthropic.Int(50000), + }}, + }, + }, + }}, + }) + if err != nil { + panic(err) + } + + for _, tool := range agent.Tools { + switch toolset := tool.AsAny().(type) { + case anthropic.BetaManagedAgentsAgentToolset20260401: + configs := make([]json.RawMessage, len(toolset.Configs)) + for i, config := range toolset.Configs { + configs[i] = json.RawMessage(config.RawJSON()) + } + output, err := json.MarshalIndent(configs, "", " ") + if err != nil { + panic(err) + } + fmt.Println(string(output)) + } + } + ``` + + ```java Java + import com.anthropic.models.beta.agents.AgentCreateParams; + import com.anthropic.models.beta.agents.BetaManagedAgentsAgentToolset20260401Params; + import com.anthropic.models.beta.agents.BetaManagedAgentsModel; + import com.anthropic.models.beta.agents.BetaManagedAgentsUserLocation; + import com.anthropic.models.beta.agents.BetaManagedAgentsWebFetchToolConfigParams; + import com.anthropic.models.beta.agents.BetaManagedAgentsWebSearchToolConfigParams; + + void main() { + var client = AnthropicOkHttpClient.fromEnv(); + + var agent = client.beta().agents().create(AgentCreateParams.builder() + .name("Research Agent") + .model(BetaManagedAgentsModel.CLAUDE_OPUS_5) + .addTool(BetaManagedAgentsAgentToolset20260401Params.builder() + .type(BetaManagedAgentsAgentToolset20260401Params.Type.AGENT_TOOLSET_20260401) + .addConfig(BetaManagedAgentsWebSearchToolConfigParams.builder() + .allowedDomains(List.of("docs.example.com", "arxiv.org")) + .userLocation(BetaManagedAgentsUserLocation.builder() + .country("US") + .timezone("America/Los_Angeles") + .build()) + .build()) + .addConfig(BetaManagedAgentsWebFetchToolConfigParams.builder() + .blockedDomains(List.of("ads.example.com")) + .maxContentTokens(50_000) + .build()) + .build()) + .build()); + + for (var tool : agent.tools()) { + if (tool.isAgentToolset20260401()) { + var configs = tool.asAgentToolset20260401().configs(); + IO.println(ObjectMappers.jsonMapper().valueToTree(configs)); + } + } + } + ``` + + ```php PHP + use Anthropic\Beta\Agents\BetaManagedAgentsAgentToolset20260401; + use Anthropic\Beta\Agents\BetaManagedAgentsAgentToolset20260401Params; + use Anthropic\Beta\Agents\BetaManagedAgentsUserLocation; + use Anthropic\Beta\Agents\BetaManagedAgentsWebFetchToolConfigParams; + use Anthropic\Beta\Agents\BetaManagedAgentsWebSearchToolConfigParams; + // ... + + $client = new Client(); + + $agent = $client->beta->agents->create( + name: 'Research Agent', + model: 'claude-opus-5', + tools: [ + BetaManagedAgentsAgentToolset20260401Params::with( + type: 'agent_toolset_20260401', + configs: [ + BetaManagedAgentsWebSearchToolConfigParams::with( + allowedDomains: ['docs.example.com', 'arxiv.org'], + userLocation: BetaManagedAgentsUserLocation::with( + country: 'US', + timezone: 'America/Los_Angeles', + ), + ), + BetaManagedAgentsWebFetchToolConfigParams::with( + blockedDomains: ['ads.example.com'], + maxContentTokens: 50_000, + ), + ], + ), + ], + ); + + foreach ($agent->tools as $tool) { + if ($tool instanceof BetaManagedAgentsAgentToolset20260401) { + echo json_encode($tool->configs, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES), PHP_EOL; + } + } + ``` + + ```ruby Ruby + client = Anthropic::Client.new + + agent = client.beta.agents.create( + name: "Research Agent", + model: "claude-opus-5", + tools: [ + { + type: :agent_toolset_20260401, + configs: [ + { + name: :web_search, + allowed_domains: ["docs.example.com", "arxiv.org"], + user_location: {type: :approximate, country: "US", timezone: "America/Los_Angeles"} + }, + { + name: :web_fetch, + blocked_domains: ["ads.example.com"], + max_content_tokens: 50_000 + } + ] + } + ] + ) + + case agent.tools.first + in Anthropic::Models::Beta::BetaManagedAgentsAgentToolset20260401 => toolset + puts JSON.pretty_generate(toolset.configs.map(&:to_h)) + end + ``` + + +In the Claude Console, set allowed or blocked domains from the `web_search` and `web_fetch` rows of the **Built-in tools** card on the agent form; set `max_content_tokens` and `user_location` in the **Raw** view of the agent's configuration. + +In addition to `enabled` and `permission_policy`, the web tool entries accept the following settings: + +| Setting | Applies to | Description | +| -------------------- | ------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `allowed_domains` | `web_search`, `web_fetch` | The only hosts the tool can reach. Cannot be combined with `blocked_domains` on the same entry. | +| `blocked_domains` | `web_search`, `web_fetch` | Hosts the tool cannot reach. | +| `max_content_tokens` | `web_fetch` | Caps the amount of fetched page content included in the context. Must be a positive integer. See [content limits](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-fetch-tool#content-limits). | +| `user_location` | `web_search` | Localizes search results. An object with the same fields as the Messages API [`user_location`](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool#localization) parameter. | + + + An environment's [`networking`](https://platform.claude.com/docs/en/managed-agents/environments#networking) settings control the sandbox's own outbound traffic. They do not affect `web_search` or `web_fetch`, which run on Anthropic's servers whether the environment is a cloud or self-hosted sandbox. The per-tool `allowed_domains` and `blocked_domains` lists are the way to restrict what these tools can reach. + + + + Organization-level web search and web fetch settings in the Claude Console apply to the Messages API and do not apply to Managed Agents sessions. To restrict an agent's web tools, configure `allowed_domains` or `blocked_domains` on its toolset instead. + + +#### Domain list rules + +* Set either `allowed_domains` or `blocked_domains` on an entry, not both. An entry that sets both is rejected. +* Each list holds 1 to 64 domains, each 1 to 255 characters. An empty list is rejected: to apply no restriction, omit the field or send `null`. +* Each domain is a registrable domain name, or a subdomain of one, written as a plain hostname: ASCII letters, digits, hyphens, underscores, and dots, with no scheme, port, credentials, wildcard, or whitespace, no label that begins or ends with a hyphen, and no path other than the optional `web_search` path suffix described later in this list. Use `example.com`, not `https://example.com`, `example.com:443`, or `*.example.com`. Hostnames are compared without regard to case, and a single trailing `/` is ignored. +* A listed domain matches that host and its subdomains: `example.com` covers `docs.example.com`, but `docs.example.com` does not cover `example.com` or `api.example.com`. A leading `www.` is a subdomain like any other, so `www.example.com` does not cover `example.com`; list the bare domain to cover both. +* IP addresses are not accepted in any form, whether IPv4, IPv6, bracketed, or numeric shorthand such as `127.1`. List the site's domain name instead. +* A bare top-level domain or registry suffix such as `com`, `co.uk`, or `gov.uk` is rejected, and so is a single-label name such as `intranet`. List a full domain such as `example.co.uk`. +* `localhost` and hosts ending in `.localhost`, `.local`, `.internal`, `.localdomain`, or `.invalid` are rejected. +* Use the `xn--` (Punycode) form for internationalized domain names; a domain that contains non-ASCII characters is rejected. +* A `web_fetch` domain cannot include a path: use `example.com`, not `example.com/*`. A `web_search` domain can carry a path suffix such as `example.com/blog`, in which the path cannot contain spaces, `?`, `#`, or any of the characters `$ , | ^ !`. Prefer plain hostnames for `web_search` too, because the search provider matches path suffixes as URL patterns rather than as strict host rules. +* Duplicate domains within a list are rejected. `www.example.com` and `example.com` count as different domains; see the earlier matching rule for what each covers. + +#### When settings are validated + +Format and limit violations are rejected with a 400 `invalid_request_error` when you [create an agent](https://platform.claude.com/docs/en/managed-agents/agent-setup#create-an-agent) or [update an agent](https://platform.claude.com/docs/en/managed-agents/agent-setup#update-an-agent), and when you create or update a session that supplies `tools`. For example, the message for an entry that sets both lists includes `Only one of allowed_domains or blocked_domains may be set.`, and the message for an empty list includes `allowed_domains: Empty list of domains is ambiguous. Provide at least one domain or null.` The message for a domain that breaks a format rule names its list and zero-based position, for example `allowed_domains.0: IP addresses are not supported; provide a plain hostname like "example.com"`. + +The same requests also reject three settings that depend on the search and fetch providers: a domain in `allowed_domains` that Anthropic's crawler is not permitted to access, a `user_location.country` that the search provider does not support (the message ends in `user_location.country: not a country the search provider supports`), and a `user_location.timezone` that is not a valid IANA name. The session checks the configuration again when it first initializes the tool; if a setting that was accepted earlier is no longer valid at that point, the session emits a [`session.error`](https://platform.claude.com/docs/en/managed-agents/events-and-streaming) event and returns to `idle` without retrying. Fix the setting by [updating the session's tools](https://platform.claude.com/docs/en/managed-agents/session-operations#updating-the-agent-configuration), update the agent as well so that new sessions start with the corrected configuration, then send a new `user.message` to continue. + +#### Multiagent sessions, outcomes, and mid-session updates + +In a [multiagent session](https://platform.claude.com/docs/en/managed-agents/multiagent-orchestration), every domain list that applies to a thread is enforced at the same time: an agent in the roster of the coordinator is bound by its own `allowed_domains` and `blocked_domains`, by those of any agent that called it, and by the coordinator's current lists. + +* Allowlists combine to the domains that all of them cover, and blocklists add together, so a roster agent can narrow what a tool reaches but never widen it. For example, a roster agent that sets `blocked_domains` keeps the coordinator's `allowed_domains` and blocks those hosts within it, and a roster agent that sets its own `allowed_domains` can reach only the hosts that both its list and the coordinator's list cover. +* If the combined allowlists have no domain in common, the tool stays available to that agent but every call fails with a `url_not_allowed` error stating that no domain is permitted, and the tool description tells the model so. Keep each roster agent's allowlist inside the coordinator's to avoid this. +* `max_content_tokens` and `user_location` are not combined: a thread uses the value from its own tool configuration if set, otherwise from the agent that called it, otherwise from the coordinator's current configuration. +* A `{"type": "self"}` roster entry has no web settings of its own and follows the coordinator's current settings. +* The grader in [outcome-driven sessions](https://platform.claude.com/docs/en/managed-agents/define-outcomes) runs without `web_search` and `web_fetch`, regardless of these settings. +* You can change the lists on an idle session by [updating its tools](https://platform.claude.com/docs/en/managed-agents/session-operations#updating-the-agent-configuration). The new lists apply to the rest of the session; in a multiagent session, every thread applies them from its next turn, while a roster agent's own lists stay as its agent definition set them when the session was created. + +#### Differences from the Messages API tools + +These settings use the same `allowed_domains` and `blocked_domains` vocabulary as [domain filtering](https://platform.claude.com/docs/en/agents-and-tools/tool-use/server-tools#domain-filtering) on the Messages API server tools, with the following differences on Managed Agents: + +* Each list is capped at 64 domains. +* Domains listed for `web_fetch` cannot include a path. +* `max_uses`, `citations`, and `cache_control` are not available on the toolset. + ## Custom tools In addition to built-in tools, you can define custom tools. Custom tools are analogous to [user-defined client tools](https://platform.claude.com/docs/en/agents-and-tools/tool-use/how-tool-use-works#user-defined-tools-client-executed) in the Messages API. diff --git a/content/en/release-notes/overview.md b/content/en/release-notes/overview.md index aab713921..3f65f0db0 100644 --- a/content/en/release-notes/overview.md +++ b/content/en/release-notes/overview.md @@ -10,6 +10,18 @@ description: Updates to the Claude Platform, including the Claude API, client SD For updates to Claude Code, see the [complete CHANGELOG.md](https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md) in the `claude-code` repository. +### August 19, 2026 + +* The [Admin API](https://platform.claude.com/docs/en/api/admin) user-management endpoints for **Claude Enterprise** (claude.ai) organizations (members, invites, groups, and custom roles) are now generally available. The `anthropic-beta: ce-user-management-2026-07-13` header is no longer required on group and custom-role requests; requests that still send it are accepted unchanged. See [User management](https://platform.claude.com/docs/en/manage-claude/user-management). + +- The [Files API](https://platform.claude.com/docs/en/build-with-claude/files) is now generally available on the Claude API. Requests to the `/v1/files` endpoints, and Messages API requests that reference an uploaded file, no longer require the `files-api-2025-04-14` beta header. Requests sent without the header use the GA response format: [file expiration](https://platform.claude.com/docs/en/build-with-claude/files#file-expiration) (set `expires_in_seconds` when you upload a file; file objects report `expires_at`), and `page` and `next_page` [pagination](https://platform.claude.com/docs/en/api/overview#pagination) plus an `ids[]` filter when you [list files](https://platform.claude.com/docs/en/build-with-claude/files#list-files). Storage is 1 TB per organization and the rate limit is 500 requests per minute. `/v1/files` requests that still send the beta header keep working and return the previous response format. + +* [Agent Skills](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview) and the Skills API (`/v1/skills`) are now generally available on the Claude API. Requests no longer require the `skills-2025-10-02` beta header, including Messages API requests that load Skills through the `container` parameter. Requests that still send the header continue to work unchanged. See [Using Agent Skills with the API](https://platform.claude.com/docs/en/build-with-claude/skills-guide). + +- You can now restrict which sites a Claude Managed Agents agent's `web_search` and `web_fetch` tools can reach. Set `allowed_domains` or `blocked_domains` on the tool's entry in the `agent_toolset_20260401` `configs` array; `web_fetch` also accepts `max_content_tokens` and `web_search` accepts `user_location`. Each `configs` entry is identified by its `name` and typed by an optional `type`, and requests that pass only `name`, `enabled`, and `permission_policy` continue to work; in the typed SDKs, `configs` entries become per-tool types. See [Restrict web search and web fetch domains](https://platform.claude.com/docs/en/managed-agents/tools#restrict-web-search-and-web-fetch-domains). +- Claude Managed Agents sessions that run in a [self-hosted sandbox](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes) can now attach [memory stores](https://platform.claude.com/docs/en/managed-agents/memory). The Python, TypeScript, and Go SDK workers download each attached store into the sandbox at its `mount_path` and sync the agent's changes back to the store. See [Use memory stores](https://platform.claude.com/docs/en/managed-agents/self-hosted-sandboxes#use-memory-stores). +- The session viewer in the Claude Console has been redesigned with a timeline minimap, a transcript grouped by model request, and an Inspector panel for session details and cost, raw events, per-tool statistics, mounted resources, and per-thread activity. See [Console observability](https://platform.claude.com/docs/en/managed-agents/events-and-streaming#console-observability). + ### August 18, 2026 * Workbench is now [**Playground**](https://platform.claude.com/playground) in the Claude Console. Playground supports every Messages API parameter and includes templates that demonstrate API features such as code execution and web search. It shows the full SDK request and the API response for each run, to help you understand the API and build with it. For more, see the [Claude Help Center](https://support.claude.com/en/articles/8606378-how-do-i-use-playground) or try it at [platform.claude.com/playground](https://platform.claude.com/playground). diff --git a/content/en/resources/overview.md b/content/en/resources/overview.md index fbce642f3..3bc659372 100644 --- a/content/en/resources/overview.md +++ b/content/en/resources/overview.md @@ -1,11 +1,9 @@ --- -title: Resources +title: Model cards url: https://platform.claude.com/docs/en/resources/overview -description: Model cards, learning resources, and documentation formats optimized for AI ingestion. +description: Model cards with detailed documentation for Claude models. --- -## Model cards - Detailed documentation of Claude Opus 5. @@ -75,43 +73,3 @@ description: Model cards, learning resources, and documentation formats optimize Detailed documentation of Claude 2 models. - -## Learning resources - - - - Deployable applications built with the API. - - - - Step-by-step lessons on building with Claude. - - - - Replicable code samples and implementations. - - - - In-depth production guides for building common use cases with Claude. - - - - Key terms and concepts for working with Claude and language models. - - - -## Resources for AI ingestion - - - - Concise API guide meant for ingestion by Claude. - - - - Concise overview of Claude Platform documentation, optimized for LLM ingestion. - - - - LLM-optimized documentation index. - - diff --git a/content/github/anthropic-sdk-python/CHANGELOG.md b/content/github/anthropic-sdk-python/CHANGELOG.md index 8fa4570e5..f8358ed12 100644 --- a/content/github/anthropic-sdk-python/CHANGELOG.md +++ b/content/github/anthropic-sdk-python/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## 0.125.0 (2026-08-19) + +Full Changelog: [v0.124.0...v0.125.0](https://github.com/anthropics/anthropic-sdk-python/compare/v0.124.0...v0.125.0) + +### Features + +* **api:** managed agents web search config and self hosted sandbox memory ([b75afd6](https://github.com/anthropics/anthropic-sdk-python/commit/b75afd6ffa210ff2e98bc5e90d6f1f3367038f0b)) + +## 0.124.0 (2026-08-19) + +Full Changelog: [v0.123.0...v0.124.0](https://github.com/anthropics/anthropic-sdk-python/compare/v0.123.0...v0.124.0) + +### Features + +* **api:** Files and Skills APIs are now GA; add computer use and browser use toolsets ([9a09e84](https://github.com/anthropics/anthropic-sdk-python/commit/9a09e84608944172088acf371e7584133ca19844)) + ## 0.123.0 (2026-08-18) Full Changelog: [v0.122.0...v0.123.0](https://github.com/anthropics/anthropic-sdk-python/compare/v0.122.0...v0.123.0) diff --git a/content/github/anthropic-sdk-python/api.md b/content/github/anthropic-sdk-python/api.md index f6ffc2dd9..15e4b5228 100644 --- a/content/github/anthropic-sdk-python/api.md +++ b/content/github/anthropic-sdk-python/api.md @@ -34,6 +34,46 @@ from anthropic.types import ( BashCodeExecutionToolResultError, BashCodeExecutionToolResultErrorCode, BashCodeExecutionToolResultErrorParam, + BrowserCloseTabConfig, + BrowserDoubleClickConfig, + BrowserFileUploadConfig, + BrowserFindConfig, + BrowserFormInputConfig, + BrowserGetPageTextConfig, + BrowserHoldKeyConfig, + BrowserHoverConfig, + BrowserJavascriptExecConfig, + BrowserKeyConfig, + BrowserLeftClickConfig, + BrowserLeftClickDragConfig, + BrowserLeftMouseDownConfig, + BrowserLeftMouseUpConfig, + BrowserListTabsConfig, + BrowserMiddleClickConfig, + BrowserMouseMoveConfig, + BrowserNavigateConfig, + BrowserNewTabConfig, + BrowserReadConsoleConfig, + BrowserReadNetworkConfig, + BrowserReadPageConfig, + BrowserRightClickConfig, + BrowserScreenshotConfig, + BrowserScrollConfig, + BrowserScrollToConfig, + BrowserStateBlockParam, + BrowserStateChange, + BrowserStateChangeDownloadCompleted, + BrowserStateChangeDownloadFailed, + BrowserStateChangeDownloadStarted, + BrowserStateChangeTabOpened, + BrowserStateTabEntry, + BrowserSwitchTabConfig, + BrowserToolset20260801, + BrowserToolsetConfigs, + BrowserTripleClickConfig, + BrowserTypeConfig, + BrowserWaitConfig, + BrowserZoomConfig, CacheControlEphemeral, CacheCreation, CitationCharLocation, @@ -64,7 +104,28 @@ from anthropic.types import ( CodeExecutionToolResultError, CodeExecutionToolResultErrorCode, CodeExecutionToolResultErrorParam, + ComputerCursorPositionConfig, + ComputerDoubleClickConfig, + ComputerHoldKeyConfig, + ComputerKeyConfig, + ComputerLeftClickConfig, + ComputerLeftClickDragConfig, + ComputerLeftMouseDownConfig, + ComputerLeftMouseUpConfig, + ComputerMiddleClickConfig, + ComputerMouseMoveConfig, + ComputerRightClickConfig, + ComputerScreenshotConfig, + ComputerScrollConfig, + ComputerToolset20260801, + ComputerToolsetConfigs, + ComputerTripleClickConfig, + ComputerTypeConfig, + ComputerWaitConfig, + ComputerZoomConfig, Container, + ContainerParams, + ContainerSkill, ContainerUploadBlock, ContainerUploadBlockParam, ContentBlock, @@ -76,12 +137,16 @@ from anthropic.types import ( DocumentBlockParam, EncryptedCodeExecutionResultBlock, EncryptedCodeExecutionResultBlockParam, + FileDocumentSource, + FileImageSource, ImageBlockParam, + ImageTransformationsParam, InputJSONDelta, JSONOutputFormat, MemoryTool20250818, Message, MessageCountTokensTool, + MessageCreateParamsContainer, MessageDeltaUsage, MessageParam, MessageTokensCount, @@ -108,6 +173,7 @@ from anthropic.types import ( ServerToolUseBlock, ServerToolUseBlockParam, SignatureDelta, + SkillParams, StopReason, TextBlock, TextBlockParam, @@ -248,6 +314,52 @@ Methods: - client.models.retrieve(model_id) -> ModelInfo - client.models.list(\*\*params) -> SyncPage[ModelInfo] +# Files + +Types: + +```python +from anthropic.types import DeletedFile, FileMetadata +``` + +Methods: + +- client.files.list(\*\*params) -> SyncPageCursor[FileMetadata] +- client.files.delete(file_id) -> DeletedFile +- client.files.download(file_id) -> BinaryAPIResponse +- client.files.retrieve_metadata(file_id) -> FileMetadata +- client.files.upload(\*\*params) -> FileMetadata + +# Skills + +Types: + +```python +from anthropic.types import DeletedSkill, Skill, SkillSource +``` + +Methods: + +- client.skills.create(\*\*params) -> Skill +- client.skills.retrieve(skill_id) -> Skill +- client.skills.list(\*\*params) -> SyncPageCursor[Skill] +- client.skills.delete(skill_id) -> DeletedSkill + +## Versions + +Types: + +```python +from anthropic.types.skills import DeletedSkillVersion, SkillVersion +``` + +Methods: + +- client.skills.versions.create(skill_id, \*\*params) -> SkillVersion +- client.skills.versions.retrieve(version, \*, skill_id) -> SkillVersion +- client.skills.versions.list(skill_id, \*\*params) -> SyncPageCursor[SkillVersion] +- client.skills.versions.delete(version, \*, skill_id) -> DeletedSkillVersion + # Beta Types: @@ -319,6 +431,46 @@ from anthropic.types.beta import ( BetaBashCodeExecutionToolResultBlockParam, BetaBashCodeExecutionToolResultError, BetaBashCodeExecutionToolResultErrorParam, + BetaBrowserCloseTabConfig, + BetaBrowserDoubleClickConfig, + BetaBrowserFileUploadConfig, + BetaBrowserFindConfig, + BetaBrowserFormInputConfig, + BetaBrowserGetPageTextConfig, + BetaBrowserHoldKeyConfig, + BetaBrowserHoverConfig, + BetaBrowserJavascriptExecConfig, + BetaBrowserKeyConfig, + BetaBrowserLeftClickConfig, + BetaBrowserLeftClickDragConfig, + BetaBrowserLeftMouseDownConfig, + BetaBrowserLeftMouseUpConfig, + BetaBrowserListTabsConfig, + BetaBrowserMiddleClickConfig, + BetaBrowserMouseMoveConfig, + BetaBrowserNavigateConfig, + BetaBrowserNewTabConfig, + BetaBrowserReadConsoleConfig, + BetaBrowserReadNetworkConfig, + BetaBrowserReadPageConfig, + BetaBrowserRightClickConfig, + BetaBrowserScreenshotConfig, + BetaBrowserScrollConfig, + BetaBrowserScrollToConfig, + BetaBrowserStateBlockParam, + BetaBrowserStateChange, + BetaBrowserStateChangeDownloadCompleted, + BetaBrowserStateChangeDownloadFailed, + BetaBrowserStateChangeDownloadStarted, + BetaBrowserStateChangeTabOpened, + BetaBrowserStateTabEntry, + BetaBrowserSwitchTabConfig, + BetaBrowserToolset20260801, + BetaBrowserToolsetConfigs, + BetaBrowserTripleClickConfig, + BetaBrowserTypeConfig, + BetaBrowserWaitConfig, + BetaBrowserZoomConfig, BetaCacheControlEphemeral, BetaCacheCreation, BetaCacheMissMessagesChanged, @@ -364,6 +516,25 @@ from anthropic.types.beta import ( BetaCompactionBlockParam, BetaCompactionContentBlockDelta, BetaCompactionIterationUsage, + BetaComputerCursorPositionConfig, + BetaComputerDoubleClickConfig, + BetaComputerHoldKeyConfig, + BetaComputerKeyConfig, + BetaComputerLeftClickConfig, + BetaComputerLeftClickDragConfig, + BetaComputerLeftMouseDownConfig, + BetaComputerLeftMouseUpConfig, + BetaComputerMiddleClickConfig, + BetaComputerMouseMoveConfig, + BetaComputerRightClickConfig, + BetaComputerScreenshotConfig, + BetaComputerScrollConfig, + BetaComputerToolset20260801, + BetaComputerToolsetConfigs, + BetaComputerTripleClickConfig, + BetaComputerTypeConfig, + BetaComputerWaitConfig, + BetaComputerZoomConfig, BetaContainer, BetaContainerParams, BetaContainerUploadBlock, @@ -396,6 +567,7 @@ from anthropic.types.beta import ( BetaFileDocumentSource, BetaFileImageSource, BetaImageBlockParam, + BetaImageTransformationsParam, BetaInputJSONDelta, BetaInputTokensClearAtLeast, BetaInputTokensTrigger, @@ -597,16 +769,24 @@ from anthropic.types.beta import ( BetaManagedAgentsAlwaysAskPolicy, BetaManagedAgentsAnthropicSkill, BetaManagedAgentsAnthropicSkillParams, + BetaManagedAgentsBashToolConfig, + BetaManagedAgentsBashToolConfigParams, BetaManagedAgentsCustomSkill, BetaManagedAgentsCustomSkillParams, BetaManagedAgentsCustomTool, BetaManagedAgentsCustomToolInputSchema, BetaManagedAgentsCustomToolParams, + BetaManagedAgentsEditToolConfig, + BetaManagedAgentsEditToolConfigParams, BetaManagedAgentsEffortHigh, BetaManagedAgentsEffortLow, BetaManagedAgentsEffortMax, BetaManagedAgentsEffortMedium, BetaManagedAgentsEffortXhigh, + BetaManagedAgentsGlobToolConfig, + BetaManagedAgentsGlobToolConfigParams, + BetaManagedAgentsGrepToolConfig, + BetaManagedAgentsGrepToolConfigParams, BetaManagedAgentsMCPServerURLDefinition, BetaManagedAgentsMCPToolConfig, BetaManagedAgentsMCPToolConfigParams, @@ -620,9 +800,18 @@ from anthropic.types.beta import ( BetaManagedAgentsMultiagentCoordinator, BetaManagedAgentsMultiagentCoordinatorParams, BetaManagedAgentsMultiagentSelfParams, + BetaManagedAgentsReadToolConfig, + BetaManagedAgentsReadToolConfigParams, BetaManagedAgentsSessionThreadAgent, BetaManagedAgentsSkillParams, BetaManagedAgentsURLMCPServerParams, + BetaManagedAgentsUserLocation, + BetaManagedAgentsWebFetchToolConfig, + BetaManagedAgentsWebFetchToolConfigParams, + BetaManagedAgentsWebSearchToolConfig, + BetaManagedAgentsWebSearchToolConfigParams, + BetaManagedAgentsWriteToolConfig, + BetaManagedAgentsWriteToolConfigParams, ) ``` @@ -1122,16 +1311,16 @@ Methods: Types: ```python -from anthropic.types.beta import BetaFileScope, DeletedFile, FileMetadata +from anthropic.types.beta import BetaDeletedFile, BetaFileMetadata, BetaFileScope ``` Methods: -- client.beta.files.list(\*\*params) -> SyncPage[FileMetadata] -- client.beta.files.delete(file_id) -> DeletedFile +- client.beta.files.list(\*\*params) -> SyncPage[BetaFileMetadata] +- client.beta.files.delete(file_id) -> BetaDeletedFile - client.beta.files.download(file_id) -> BinaryAPIResponse -- client.beta.files.retrieve_metadata(file_id) -> FileMetadata -- client.beta.files.upload(\*\*params) -> FileMetadata +- client.beta.files.retrieve_metadata(file_id) -> BetaFileMetadata +- client.beta.files.upload(\*\*params) -> BetaFileMetadata ## Skills diff --git a/content/github/anthropic-sdk-python/helpers.md b/content/github/anthropic-sdk-python/helpers.md index 66334bc7d..41fd3fef4 100644 --- a/content/github/anthropic-sdk-python/helpers.md +++ b/content/github/anthropic-sdk-python/helpers.md @@ -213,7 +213,7 @@ response = await client.beta.messages.create( from anthropic.lib.tools.mcp import mcp_resource_to_file resource = await mcp_client.read_resource(uri="file:///path/to/data.json") -uploaded = await client.beta.files.upload(file=mcp_resource_to_file(resource)) +uploaded = await client.files.upload(file=mcp_resource_to_file(resource)) ``` ### Error handling @@ -316,9 +316,10 @@ async for work in client.beta.environments.work.poller( ): if work.data.type != "session": continue - # Passing `client` and `session_id` makes `AgentToolContext` fetch the session's resolved agent - # on enter and download each of its skills into `{workdir}/skills//`. - async with AgentToolContext(workdir="/workspace", client=client, session_id=work.data.id) as env: + # Fetch the session once; passing `client` and `session` makes `AgentToolContext` download + # each of the session agent's skills into `{workdir}/skills//` on enter. + session = await client.beta.sessions.retrieve(work.data.id) + async with AgentToolContext(workdir="/workspace", client=client, session=session) as env: async for call in client.beta.sessions.events.tool_runner( work.data.id, tools=beta_agent_toolset_20260401(env), diff --git a/content/github/anthropic-sdk-typescript/CHANGELOG.md b/content/github/anthropic-sdk-typescript/CHANGELOG.md index d2687b7bb..93739dca5 100644 --- a/content/github/anthropic-sdk-typescript/CHANGELOG.md +++ b/content/github/anthropic-sdk-typescript/CHANGELOG.md @@ -1,5 +1,26 @@ # Changelog +## 0.120.0 (2026-08-19) + +Full Changelog: [sdk-v0.119.0...sdk-v0.120.0](https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.119.0...sdk-v0.120.0) + +### Features + +* **api:** managed agents web search config and self hosted sandbox memory ([ba8ec50](https://github.com/anthropics/anthropic-sdk-typescript/commit/ba8ec50ffe31e10781971a942d54289439307424)) + + +### Chores + +* **internal:** use a single pnpm workspace lockfile ([#359](https://github.com/anthropics/anthropic-sdk-typescript/issues/359)) ([3c32145](https://github.com/anthropics/anthropic-sdk-typescript/commit/3c32145d2bc4d53888c6c6857c9af216eec95fb9)) + +## 0.119.0 (2026-08-19) + +Full Changelog: [sdk-v0.118.0...sdk-v0.119.0](https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.118.0...sdk-v0.119.0) + +### Features + +* **api:** Files and Skills APIs are now GA; add computer use and browser use toolsets ([ab41aa3](https://github.com/anthropics/anthropic-sdk-typescript/commit/ab41aa32b92a7964b35beb42a6be5b0bec1dd735)) + ## 0.118.0 (2026-08-18) Full Changelog: [sdk-v0.117.1...sdk-v0.118.0](https://github.com/anthropics/anthropic-sdk-typescript/compare/sdk-v0.117.1...sdk-v0.118.0) diff --git a/content/github/anthropic-sdk-typescript/api.md b/content/github/anthropic-sdk-typescript/api.md index 621cc38a9..f987615d2 100644 --- a/content/github/anthropic-sdk-typescript/api.md +++ b/content/github/anthropic-sdk-typescript/api.md @@ -32,6 +32,46 @@ Types: - BashCodeExecutionToolResultError - BashCodeExecutionToolResultErrorCode - BashCodeExecutionToolResultErrorParam +- BrowserCloseTabConfig +- BrowserDoubleClickConfig +- BrowserFileUploadConfig +- BrowserFindConfig +- BrowserFormInputConfig +- BrowserGetPageTextConfig +- BrowserHoldKeyConfig +- BrowserHoverConfig +- BrowserJavascriptExecConfig +- BrowserKeyConfig +- BrowserLeftClickConfig +- BrowserLeftClickDragConfig +- BrowserLeftMouseDownConfig +- BrowserLeftMouseUpConfig +- BrowserListTabsConfig +- BrowserMiddleClickConfig +- BrowserMouseMoveConfig +- BrowserNavigateConfig +- BrowserNewTabConfig +- BrowserReadConsoleConfig +- BrowserReadNetworkConfig +- BrowserReadPageConfig +- BrowserRightClickConfig +- BrowserScreenshotConfig +- BrowserScrollConfig +- BrowserScrollToConfig +- BrowserStateBlockParam +- BrowserStateChange +- BrowserStateChangeDownloadCompleted +- BrowserStateChangeDownloadFailed +- BrowserStateChangeDownloadStarted +- BrowserStateChangeTabOpened +- BrowserStateTabEntry +- BrowserSwitchTabConfig +- BrowserToolset20260801 +- BrowserToolsetConfigs +- BrowserTripleClickConfig +- BrowserTypeConfig +- BrowserWaitConfig +- BrowserZoomConfig - CacheControlEphemeral - CacheCreation - CitationCharLocation @@ -62,7 +102,28 @@ Types: - CodeExecutionToolResultError - CodeExecutionToolResultErrorCode - CodeExecutionToolResultErrorParam +- ComputerCursorPositionConfig +- ComputerDoubleClickConfig +- ComputerHoldKeyConfig +- ComputerKeyConfig +- ComputerLeftClickConfig +- ComputerLeftClickDragConfig +- ComputerLeftMouseDownConfig +- ComputerLeftMouseUpConfig +- ComputerMiddleClickConfig +- ComputerMouseMoveConfig +- ComputerRightClickConfig +- ComputerScreenshotConfig +- ComputerScrollConfig +- ComputerToolset20260801 +- ComputerToolsetConfigs +- ComputerTripleClickConfig +- ComputerTypeConfig +- ComputerWaitConfig +- ComputerZoomConfig - Container +- ContainerParams +- ContainerSkill - ContainerUploadBlock - ContainerUploadBlockParam - ContentBlock @@ -76,12 +137,16 @@ Types: - DocumentBlockParam - EncryptedCodeExecutionResultBlock - EncryptedCodeExecutionResultBlockParam +- FileDocumentSource +- FileImageSource - ImageBlockParam +- ImageTransformationsParam - InputJSONDelta - JSONOutputFormat - MemoryTool20250818 - Message - MessageCountTokensTool +- MessageCreateParamsContainer - MessageDeltaEvent - MessageDeltaUsage - MessageParam @@ -109,6 +174,7 @@ Types: - ServerToolUseBlock - ServerToolUseBlockParam - SignatureDelta +- SkillParams - StopReason - TextBlock - TextBlockParam @@ -239,6 +305,50 @@ Methods: - client.models.retrieve(modelID, { ...params }) -> ModelInfo - client.models.list({ ...params }) -> ModelInfosPage +# Files + +Types: + +- DeletedFile +- FileMetadata + +Methods: + +- client.files.list({ ...params }) -> FileMetadataPageCursor +- client.files.delete(fileID) -> DeletedFile +- client.files.download(fileID) -> Response +- client.files.retrieveMetadata(fileID) -> FileMetadata +- client.files.upload({ ...params }) -> FileMetadata + +# Skills + +Types: + +- DeletedSkill +- Skill +- SkillSource + +Methods: + +- client.skills.create({ ...params }) -> Skill +- client.skills.retrieve(skillID) -> Skill +- client.skills.list({ ...params }) -> SkillsPageCursor +- client.skills.delete(skillID) -> DeletedSkill + +## Versions + +Types: + +- DeletedSkillVersion +- SkillVersion + +Methods: + +- client.skills.versions.create(skillID, { ...params }) -> SkillVersion +- client.skills.versions.retrieve(version, { ...params }) -> SkillVersion +- client.skills.versions.list(skillID, { ...params }) -> SkillVersionsPageCursor +- client.skills.versions.delete(version, { ...params }) -> DeletedSkillVersion + # Beta Types: @@ -300,6 +410,46 @@ Types: - BetaBashCodeExecutionToolResultBlockParam - BetaBashCodeExecutionToolResultError - BetaBashCodeExecutionToolResultErrorParam +- BetaBrowserCloseTabConfig +- BetaBrowserDoubleClickConfig +- BetaBrowserFileUploadConfig +- BetaBrowserFindConfig +- BetaBrowserFormInputConfig +- BetaBrowserGetPageTextConfig +- BetaBrowserHoldKeyConfig +- BetaBrowserHoverConfig +- BetaBrowserJavascriptExecConfig +- BetaBrowserKeyConfig +- BetaBrowserLeftClickConfig +- BetaBrowserLeftClickDragConfig +- BetaBrowserLeftMouseDownConfig +- BetaBrowserLeftMouseUpConfig +- BetaBrowserListTabsConfig +- BetaBrowserMiddleClickConfig +- BetaBrowserMouseMoveConfig +- BetaBrowserNavigateConfig +- BetaBrowserNewTabConfig +- BetaBrowserReadConsoleConfig +- BetaBrowserReadNetworkConfig +- BetaBrowserReadPageConfig +- BetaBrowserRightClickConfig +- BetaBrowserScreenshotConfig +- BetaBrowserScrollConfig +- BetaBrowserScrollToConfig +- BetaBrowserStateBlockParam +- BetaBrowserStateChange +- BetaBrowserStateChangeDownloadCompleted +- BetaBrowserStateChangeDownloadFailed +- BetaBrowserStateChangeDownloadStarted +- BetaBrowserStateChangeTabOpened +- BetaBrowserStateTabEntry +- BetaBrowserSwitchTabConfig +- BetaBrowserToolset20260801 +- BetaBrowserToolsetConfigs +- BetaBrowserTripleClickConfig +- BetaBrowserTypeConfig +- BetaBrowserWaitConfig +- BetaBrowserZoomConfig - BetaCacheControlEphemeral - BetaCacheCreation - BetaCacheMissMessagesChanged @@ -345,6 +495,25 @@ Types: - BetaCompactionBlockParam - BetaCompactionContentBlockDelta - BetaCompactionIterationUsage +- BetaComputerCursorPositionConfig +- BetaComputerDoubleClickConfig +- BetaComputerHoldKeyConfig +- BetaComputerKeyConfig +- BetaComputerLeftClickConfig +- BetaComputerLeftClickDragConfig +- BetaComputerLeftMouseDownConfig +- BetaComputerLeftMouseUpConfig +- BetaComputerMiddleClickConfig +- BetaComputerMouseMoveConfig +- BetaComputerRightClickConfig +- BetaComputerScreenshotConfig +- BetaComputerScrollConfig +- BetaComputerToolset20260801 +- BetaComputerToolsetConfigs +- BetaComputerTripleClickConfig +- BetaComputerTypeConfig +- BetaComputerWaitConfig +- BetaComputerZoomConfig - BetaContainer - BetaContainerParams - BetaContainerUploadBlock @@ -377,6 +546,7 @@ Types: - BetaFileDocumentSource - BetaFileImageSource - BetaImageBlockParam +- BetaImageTransformationsParam - BetaInputJSONDelta - BetaJSONOutputFormat - BetaInputTokensClearAtLeast @@ -571,16 +741,24 @@ Types: - BetaManagedAgentsAlwaysAskPolicy - BetaManagedAgentsAnthropicSkill - BetaManagedAgentsAnthropicSkillParams +- BetaManagedAgentsBashToolConfig +- BetaManagedAgentsBashToolConfigParams - BetaManagedAgentsCustomSkill - BetaManagedAgentsCustomSkillParams - BetaManagedAgentsCustomTool - BetaManagedAgentsCustomToolInputSchema - BetaManagedAgentsCustomToolParams +- BetaManagedAgentsEditToolConfig +- BetaManagedAgentsEditToolConfigParams - BetaManagedAgentsEffortHigh - BetaManagedAgentsEffortLow - BetaManagedAgentsEffortMax - BetaManagedAgentsEffortMedium - BetaManagedAgentsEffortXhigh +- BetaManagedAgentsGlobToolConfig +- BetaManagedAgentsGlobToolConfigParams +- BetaManagedAgentsGrepToolConfig +- BetaManagedAgentsGrepToolConfigParams - BetaManagedAgentsMCPServerURLDefinition - BetaManagedAgentsMCPToolConfig - BetaManagedAgentsMCPToolConfigParams @@ -594,9 +772,18 @@ Types: - BetaManagedAgentsMultiagentCoordinator - BetaManagedAgentsMultiagentCoordinatorParams - BetaManagedAgentsMultiagentSelfParams +- BetaManagedAgentsReadToolConfig +- BetaManagedAgentsReadToolConfigParams - BetaManagedAgentsSessionThreadAgent - BetaManagedAgentsSkillParams - BetaManagedAgentsURLMCPServerParams +- BetaManagedAgentsUserLocation +- BetaManagedAgentsWebFetchToolConfig +- BetaManagedAgentsWebFetchToolConfigParams +- BetaManagedAgentsWebSearchToolConfig +- BetaManagedAgentsWebSearchToolConfigParams +- BetaManagedAgentsWriteToolConfig +- BetaManagedAgentsWriteToolConfigParams Methods: @@ -1047,17 +1234,17 @@ Methods: Types: +- BetaDeletedFile +- BetaFileMetadata - BetaFileScope -- DeletedFile -- FileMetadata Methods: -- client.beta.files.list({ ...params }) -> FileMetadataPage -- client.beta.files.delete(fileID, { ...params }) -> DeletedFile +- client.beta.files.list({ ...params }) -> BetaFileMetadataPage +- client.beta.files.delete(fileID, { ...params }) -> BetaDeletedFile - client.beta.files.download(fileID, { ...params }) -> Response -- client.beta.files.retrieveMetadata(fileID, { ...params }) -> FileMetadata -- client.beta.files.upload({ ...params }) -> FileMetadata +- client.beta.files.retrieveMetadata(fileID, { ...params }) -> BetaFileMetadata +- client.beta.files.upload({ ...params }) -> BetaFileMetadata ## Skills diff --git a/content/github/anthropic-sdk-typescript/packages/aws-sdk/CHANGELOG.md b/content/github/anthropic-sdk-typescript/packages/aws-sdk/CHANGELOG.md index 980e6bec5..9a04df6ac 100644 --- a/content/github/anthropic-sdk-typescript/packages/aws-sdk/CHANGELOG.md +++ b/content/github/anthropic-sdk-typescript/packages/aws-sdk/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.6.5 (2026-08-19) + +Full Changelog: [aws-sdk-v0.6.4...aws-sdk-v0.6.5](https://github.com/anthropics/anthropic-sdk-typescript/compare/aws-sdk-v0.6.4...aws-sdk-v0.6.5) + +### Chores + +* **internal:** use a single pnpm workspace lockfile ([#359](https://github.com/anthropics/anthropic-sdk-typescript/issues/359)) ([3c32145](https://github.com/anthropics/anthropic-sdk-typescript/commit/3c32145d2bc4d53888c6c6857c9af216eec95fb9)) + ## 0.6.4 (2026-08-13) Full Changelog: [aws-sdk-v0.6.3...aws-sdk-v0.6.4](https://github.com/anthropics/anthropic-sdk-typescript/compare/aws-sdk-v0.6.3...aws-sdk-v0.6.4) @@ -46,7 +54,7 @@ Full Changelog: [aws-sdk-v0.5.0...aws-sdk-v0.6.0](https://github.com/anthropics/ ### Features -* **bedrock:** pass client logger to AWS credential provider chain (SDK-90) ([#29](https://github.com/anthropics/anthropic-sdk-typescript/issues/29)) ([9563b4b](https://github.com/anthropics/anthropic-sdk-typescript/commit/9563b4bc8ad522f9f2e73781b55f136f24550a86)) +* **bedrock:** pass client logger to AWS credential provider chain ([#29](https://github.com/anthropics/anthropic-sdk-typescript/issues/29)) ([9563b4b](https://github.com/anthropics/anthropic-sdk-typescript/commit/9563b4bc8ad522f9f2e73781b55f136f24550a86)) ## 0.5.0 (2026-06-18) diff --git a/content/github/anthropic-sdk-typescript/packages/bedrock-sdk/CHANGELOG.md b/content/github/anthropic-sdk-typescript/packages/bedrock-sdk/CHANGELOG.md index a18fccc56..97de70cbb 100644 --- a/content/github/anthropic-sdk-typescript/packages/bedrock-sdk/CHANGELOG.md +++ b/content/github/anthropic-sdk-typescript/packages/bedrock-sdk/CHANGELOG.md @@ -1,5 +1,21 @@ # Changelog +## 0.33.1 (2026-08-19) + +Full Changelog: [bedrock-sdk-v0.33.0...bedrock-sdk-v0.33.1](https://github.com/anthropics/anthropic-sdk-typescript/compare/bedrock-sdk-v0.33.0...bedrock-sdk-v0.33.1) + +### Chores + +* **internal:** use a single pnpm workspace lockfile ([#359](https://github.com/anthropics/anthropic-sdk-typescript/issues/359)) ([3c32145](https://github.com/anthropics/anthropic-sdk-typescript/commit/3c32145d2bc4d53888c6c6857c9af216eec95fb9)) + +## 0.33.0 (2026-08-19) + +Full Changelog: [bedrock-sdk-v0.32.4...bedrock-sdk-v0.33.0](https://github.com/anthropics/anthropic-sdk-typescript/compare/bedrock-sdk-v0.32.4...bedrock-sdk-v0.33.0) + +### Features + +* **api:** Files and Skills APIs are now GA; add computer use and browser use toolsets ([ab41aa3](https://github.com/anthropics/anthropic-sdk-typescript/commit/ab41aa32b92a7964b35beb42a6be5b0bec1dd735)) + ## 0.32.4 (2026-08-13) Full Changelog: [bedrock-sdk-v0.32.3...bedrock-sdk-v0.32.4](https://github.com/anthropics/anthropic-sdk-typescript/compare/bedrock-sdk-v0.32.3...bedrock-sdk-v0.32.4) @@ -45,7 +61,7 @@ Full Changelog: [bedrock-sdk-v0.31.0...bedrock-sdk-v0.32.0](https://github.com/a ### Features -* **bedrock:** pass client logger to AWS credential provider chain (SDK-90) ([#29](https://github.com/anthropics/anthropic-sdk-typescript/issues/29)) ([9563b4b](https://github.com/anthropics/anthropic-sdk-typescript/commit/9563b4bc8ad522f9f2e73781b55f136f24550a86)) +* **bedrock:** pass client logger to AWS credential provider chain ([#29](https://github.com/anthropics/anthropic-sdk-typescript/issues/29)) ([9563b4b](https://github.com/anthropics/anthropic-sdk-typescript/commit/9563b4bc8ad522f9f2e73781b55f136f24550a86)) ## 0.31.0 (2026-06-18) diff --git a/content/github/anthropic-sdk-typescript/packages/foundry-sdk/CHANGELOG.md b/content/github/anthropic-sdk-typescript/packages/foundry-sdk/CHANGELOG.md index 15542bba3..2d02044c6 100644 --- a/content/github/anthropic-sdk-typescript/packages/foundry-sdk/CHANGELOG.md +++ b/content/github/anthropic-sdk-typescript/packages/foundry-sdk/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.4.4 (2026-08-19) + +Full Changelog: [foundry-sdk-v0.4.3...foundry-sdk-v0.4.4](https://github.com/anthropics/anthropic-sdk-typescript/compare/foundry-sdk-v0.4.3...foundry-sdk-v0.4.4) + +### Chores + +* **internal:** use a single pnpm workspace lockfile ([#359](https://github.com/anthropics/anthropic-sdk-typescript/issues/359)) ([3c32145](https://github.com/anthropics/anthropic-sdk-typescript/commit/3c32145d2bc4d53888c6c6857c9af216eec95fb9)) + ## 0.4.3 (2026-08-13) Full Changelog: [foundry-sdk-v0.4.2...foundry-sdk-v0.4.3](https://github.com/anthropics/anthropic-sdk-typescript/compare/foundry-sdk-v0.4.2...foundry-sdk-v0.4.3) diff --git a/content/github/anthropic-sdk-typescript/packages/google-cloud-sdk/CHANGELOG.md b/content/github/anthropic-sdk-typescript/packages/google-cloud-sdk/CHANGELOG.md index 406500f8a..201353ed1 100644 --- a/content/github/anthropic-sdk-typescript/packages/google-cloud-sdk/CHANGELOG.md +++ b/content/github/anthropic-sdk-typescript/packages/google-cloud-sdk/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.0.10 (2026-08-19) + +Full Changelog: [google-cloud-sdk-v0.0.9...google-cloud-sdk-v0.0.10](https://github.com/anthropics/anthropic-sdk-typescript/compare/google-cloud-sdk-v0.0.9...google-cloud-sdk-v0.0.10) + +### Chores + +* **internal:** use a single pnpm workspace lockfile ([#359](https://github.com/anthropics/anthropic-sdk-typescript/issues/359)) ([3c32145](https://github.com/anthropics/anthropic-sdk-typescript/commit/3c32145d2bc4d53888c6c6857c9af216eec95fb9)) + ## 0.0.9 (2026-08-13) Full Changelog: [google-cloud-sdk-v0.0.8...google-cloud-sdk-v0.0.9](https://github.com/anthropics/anthropic-sdk-typescript/compare/google-cloud-sdk-v0.0.8...google-cloud-sdk-v0.0.9) diff --git a/content/github/anthropic-sdk-typescript/packages/vertex-sdk/CHANGELOG.md b/content/github/anthropic-sdk-typescript/packages/vertex-sdk/CHANGELOG.md index e4dabfa5b..76f4b6fe5 100644 --- a/content/github/anthropic-sdk-typescript/packages/vertex-sdk/CHANGELOG.md +++ b/content/github/anthropic-sdk-typescript/packages/vertex-sdk/CHANGELOG.md @@ -1,5 +1,13 @@ # Changelog +## 0.19.5 (2026-08-19) + +Full Changelog: [vertex-sdk-v0.19.4...vertex-sdk-v0.19.5](https://github.com/anthropics/anthropic-sdk-typescript/compare/vertex-sdk-v0.19.4...vertex-sdk-v0.19.5) + +### Chores + +* **internal:** use a single pnpm workspace lockfile ([#359](https://github.com/anthropics/anthropic-sdk-typescript/issues/359)) ([3c32145](https://github.com/anthropics/anthropic-sdk-typescript/commit/3c32145d2bc4d53888c6c6857c9af216eec95fb9)) + ## 0.19.4 (2026-08-13) Full Changelog: [vertex-sdk-v0.19.3...vertex-sdk-v0.19.4](https://github.com/anthropics/anthropic-sdk-typescript/compare/vertex-sdk-v0.19.3...vertex-sdk-v0.19.4) @@ -45,7 +53,7 @@ Full Changelog: [vertex-sdk-v0.18.0...vertex-sdk-v0.19.0](https://github.com/ant ### Features -* **vertex:** bump google-auth-library to ^10.2.0 (SDK-91) ([#30](https://github.com/anthropics/anthropic-sdk-typescript/issues/30)) ([eb2d25c](https://github.com/anthropics/anthropic-sdk-typescript/commit/eb2d25cb868c74d0106d460f85f48465e35f83dd)) +* **vertex:** bump google-auth-library to ^10.2.0 ([#30](https://github.com/anthropics/anthropic-sdk-typescript/issues/30)) ([eb2d25c](https://github.com/anthropics/anthropic-sdk-typescript/commit/eb2d25cb868c74d0106d460f85f48465e35f83dd)) ## 0.18.0 (2026-06-18) diff --git a/content/github/claude-plugins-official/.claude-plugin/marketplace.json b/content/github/claude-plugins-official/.claude-plugin/marketplace.json index 383122418..4ccefd77f 100644 --- a/content/github/claude-plugins-official/.claude-plugin/marketplace.json +++ b/content/github/claude-plugins-official/.claude-plugin/marketplace.json @@ -503,7 +503,7 @@ "source": { "source": "url", "url": "https://github.com/microsoft/azure-skills.git", - "sha": "16dc8c51ba7fda44c18781b5e4c0ca40a7a06a55" + "sha": "ea76537ef7f2ae4f3a3d02d26347ec5afe19068c" }, "homepage": "https://github.com/microsoft/azure-skills" }, @@ -673,7 +673,7 @@ "source": { "source": "url", "url": "https://github.com/carboneio/carbone-skill.git", - "sha": "dfbb8042ea29c7a6a2907455edb82e95d94c066e" + "sha": "25207b3f52b97872312eab997ee5c62cc5c9542d" }, "homepage": "https://carbone.io" }, @@ -958,7 +958,7 @@ "source": { "source": "url", "url": "https://github.com/cloudinary-devs/cloudinary-plugin.git", - "sha": "77ed3c5da085ef1d189948f9ff2a1bf5ab7b257b" + "sha": "08b8edd33a649cfdb58efcd42777d232a43ee4f4" }, "homepage": "https://cloudinary.com/documentation" }, @@ -1030,7 +1030,7 @@ "source": { "source": "url", "url": "https://github.com/CodSpeedHQ/codspeed.git", - "sha": "f85b328f2224e5ba115426b70bbab6701f3c1996" + "sha": "379889739c1824944ca3c7cad396b4fd03e1a694" }, "homepage": "https://codspeed.io" }, @@ -1129,7 +1129,7 @@ "source": { "source": "url", "url": "https://github.com/CrowdStrike/foundry-skills.git", - "sha": "513cdd556e96f476d58473791d475d18a5941345" + "sha": "7f7d46687c16a9a37c9b08ad58ad58999aabe497" }, "homepage": "https://github.com/CrowdStrike/foundry-skills" }, @@ -1143,7 +1143,7 @@ "source": { "source": "url", "url": "https://github.com/CrowdStrike/fusion-skills.git", - "sha": "4ed963d52cd0ca7c611c9e1e93fcdd73886a7ce1" + "sha": "8df28a78be316f619a0a5227a401b395da990c40" }, "homepage": "https://github.com/CrowdStrike/fusion-skills" }, @@ -1253,7 +1253,7 @@ "url": "https://github.com/databricks/databricks-agent-skills.git", "path": "plugins/databricks/claude", "ref": "main", - "sha": "cefd5c39f35a56f675a2714a93f7d42ef9a11437" + "sha": "653db600b4c1525850d7fed9c9171914908c57b0" }, "homepage": "https://developers.databricks.com/" }, @@ -1267,7 +1267,7 @@ "source": { "source": "url", "url": "https://github.com/datadog-labs/claude-code-plugin.git", - "sha": "cd4aedbcddf9473ef1d37c6d6d13e7c771df5242" + "sha": "6b8c62c7d2b0caed748379e70aa804a7468623b2" }, "homepage": "https://www.datadoghq.com/" }, @@ -1430,7 +1430,7 @@ "source": { "source": "url", "url": "https://github.com/DuendeSoftware/duende-skills.git", - "sha": "91e793dfca015a973ea51c4e26deeee1a397a09c" + "sha": "2f4b3c3b1fc0af26f58529241a18d83187014752" }, "homepage": "https://duendesoftware.com" }, @@ -1718,7 +1718,7 @@ "source": { "source": "url", "url": "https://github.com/growthbook/skills.git", - "sha": "8f7dc3f0d1f177cb9120ab7b04eafa1241c44d83" + "sha": "a2b9c1d2e519ad9abacf7d69277f76afcd0b3959" }, "homepage": "https://growthbook.io" }, @@ -1760,7 +1760,7 @@ "source": { "source": "url", "url": "https://github.com/hostinger/claude-plugin.git", - "sha": "f5676adedcd66d9b9ea5169fa3371d49a753abba" + "sha": "70a43bc67ffde48062bf51db1e1bbaec26e65881" }, "homepage": "https://www.hostinger.com" }, @@ -2134,7 +2134,7 @@ "source": { "source": "url", "url": "https://github.com/mapbox/mapbox-agent-skills.git", - "sha": "c482cc8c344bcdd141d369f44b7ec5b00a4735dd" + "sha": "304d4eb7b0c61d999ce1ad690fe368680e2e5993" }, "homepage": "https://www.mapbox.com" }, @@ -2159,7 +2159,7 @@ "source": { "source": "url", "url": "https://github.com/mattpocock/skills.git", - "sha": "9c9f36ccd3995266cd675468af71639c8dde1ec5" + "sha": "885e2ca4d842d139e9aef4e48d366c63cb1b8013" }, "homepage": "https://github.com/mattpocock/skills" }, @@ -2817,7 +2817,7 @@ "source": { "source": "url", "url": "https://github.com/qdrant/skills.git", - "sha": "cdcce09dfe0742ecf294649ec029c1f491320853" + "sha": "93b66882bab856a92907798ce1fad5b034ed4604" }, "homepage": "https://skills.qdrant.tech" }, @@ -2893,7 +2893,7 @@ "source": "url", "url": "https://github.com/RevenueCat/rc-claude-code-plugin.git", "path": "revenuecat", - "sha": "7aa440b998e70bdebabde00fd0195f4ec9c6aa6d" + "sha": "1c7e6899f1114023adbe15bc301186280004b517" }, "homepage": "https://www.revenuecat.com" }, @@ -2920,7 +2920,7 @@ "url": "https://github.com/redis/agent-skills.git", "path": "plugins/redis-development", "ref": "main", - "sha": "f04e664b5ffe7bbe50141b481d2b039f5b16d260" + "sha": "fa7948e8ac364c440464a29cbe67d7620584a8d9" }, "homepage": "https://redis.io" }, @@ -2970,7 +2970,7 @@ "source": "url", "url": "https://github.com/RevenueCat/rc-claude-code-plugin.git", "path": "revenuecat", - "sha": "7aa440b998e70bdebabde00fd0195f4ec9c6aa6d" + "sha": "1c7e6899f1114023adbe15bc301186280004b517" }, "homepage": "https://www.revenuecat.com" }, @@ -3099,7 +3099,7 @@ "source": { "source": "url", "url": "https://github.com/sanity-io/agent-toolkit.git", - "sha": "6b48aeddf90cc59257cfacc0a022a28340383a41" + "sha": "65960de3e7472ea068df1c26fc70021e7aa0fc27" }, "homepage": "https://www.sanity.io" }, @@ -3133,7 +3133,7 @@ "url": "https://github.com/SAP/open-ux-tools.git", "path": "packages/fiori-mcp-server", "ref": "main", - "sha": "e7e6f970bd7bd173832050095f422ffb1e8722dd" + "sha": "aa5846b65167576f3cf17ed22c488a4377d7859d" }, "homepage": "https://github.com/SAP/open-ux-tools/tree/main/packages/fiori-mcp-server" }, @@ -3299,7 +3299,7 @@ "source": { "source": "url", "url": "https://github.com/Shopify/Shopify-AI-Toolkit.git", - "sha": "cc5af6505c27939222072449278f6356857cb064" + "sha": "51a7d6cbed88fec14658f4e2d243dcdab128cf77" }, "homepage": "https://shopify.dev" }, @@ -3835,7 +3835,7 @@ "source": { "source": "url", "url": "https://github.com/wix/skills.git", - "sha": "b4cd5b59c5191c2116b7b388db4b5a095937a4f4" + "sha": "50601241dc1c7a103c3f43228f8cf2405b4b3ed8" }, "homepage": "https://dev.wix.com/docs/wix-cli/guides/development/about-wix-skills" }, @@ -3942,7 +3942,7 @@ "source": { "source": "url", "url": "https://github.com/zscaler/zscaler-mcp-server.git", - "sha": "ee6354bfd20f797f3e77b69566f500e83c04f723" + "sha": "809f68d6c921e0829fb2e07e9b797e7e70cf720b" }, "homepage": "https://github.com/zscaler/zscaler-mcp-server" }, diff --git a/content/github/claude-quickstarts/managed-agents/README.md b/content/github/claude-quickstarts/managed-agents/README.md index 87836cc00..0ca173244 100644 --- a/content/github/claude-quickstarts/managed-agents/README.md +++ b/content/github/claude-quickstarts/managed-agents/README.md @@ -41,3 +41,12 @@ Projects built on [Claude Managed Agents](https://platform.claude.com/docs/en/ma fact and a fraction of the per-question token cost. The worked example is a real M&A data room: the 2024 Squarespace / Permira take-private, fetched from public SEC EDGAR filings. + +- **[self-hosted-sandboxes/](self-hosted-sandboxes/)** runs sessions + on hardware you control. A self-hosted environment is a work queue: + a host process polls it with the environment key and starts one + short-lived Docker container per claimed session. `docker/` is the + all-CLI baseline; `docker-memory/` runs the Python SDK worker in the + container so each session mounts a memory store at `/mnt/memory` + and syncs it back, and keeps the environment key out of the + containers with a per-session token. diff --git a/content/github/claude-quickstarts/managed-agents/self-hosted-sandboxes/CLAUDE.md b/content/github/claude-quickstarts/managed-agents/self-hosted-sandboxes/CLAUDE.md new file mode 100644 index 000000000..755a21df2 --- /dev/null +++ b/content/github/claude-quickstarts/managed-agents/self-hosted-sandboxes/CLAUDE.md @@ -0,0 +1,60 @@ +# Self-hosted sandbox demos + +Two demos with one shape: a self-hosted environment is a work queue, the +host runs `ant beta:worker poll --on-work on-work.sh` with the environment +key, and `on-work.sh` starts one short-lived Docker container per claimed +session. In `docker/` the container runs `ant beta:worker run` with the +environment key. In `docker-memory/` the container runs the Python SDK's +`EnvironmentWorker` (`worker.py`) with only a per-session token, and the +session's memory store is mounted at `/mnt/memory/` and synced back. +`README.md` here and in each directory has the design. This file is the +runbook. + +## When the user asks to set one up, get it working, or debug it + +1. **Invoke `/claude-api` first** for the Managed Agents reference (agents, + environments, sessions, memory stores). Don't guess field names. +2. **Check the host**: `docker version` works for this user, `ant --version` + is 1.23 or later, `jq` is on PATH, and `ant auth status` shows a login + (or the user puts `ANTHROPIC_API_KEY` in `.env`). Nothing else: the + Python SDK only runs inside the `docker-memory/` image. +3. **`./agents/setup.sh`** creates the resources from `agents/*/*.yaml` and + appends their IDs to `.env`. Re-running updates in place. +4. **The one step you can't do for the user**: the environment key. They + mint it in the Console (Environments, the environment `setup.sh` just + created, Keys) and add `ANTHROPIC_ENVIRONMENT_KEY=...` to `.env` (the + example line is commented out). Ask them to paste it there. Never echo it + or log it. +5. **Start the sandbox side** with `./start.sh` and leave it running. It + builds the image first. Healthy output ends with `polling env=env_...`. +6. **Create a session from a second terminal** with the + `ant beta:sessions create ... --initial-event ...` command from that + demo's README (`docker-memory/` adds `--resource "{type: memory_store, ...}"`). + `set -a; . ./.env; set +a` first so the IDs are in scope. +7. **Watch it run** in the `start.sh` terminal: `[on-work] session=sesn_... + (starting)`, then the container's own log (tool calls, and in the memory + demo `downloaded N memories ... -> /mnt/memory/...`), then + `session idle after end_turn ...; stopping` 60s after the agent finishes, + and the container exits. One poller serves one session at a time (the CLI + stops a work item when `on-work.sh` returns, so the script stays attached + to the container). For concurrent sessions run more `start.sh` processes. +8. **Memory demo, prove persistence**: after the first container exits, + create a second session asking what it remembers and confirm the recall + in `ant beta:sessions:events list --session-id ...`. Server side: + `ant beta:memory-stores:memories list --memory-store-id "$CLAUDE_MEMORY_STORE_ID" --view full`. + +## Debugging + +| Symptom | Cause and fix | +|---|---| +| Session sits in `running`, container log shows `tool 'repl' not owned by this runner` and nothing else happens | The agent isn't pinned to `tools: [{type: agent_toolset_20260401}]`. The YAML in `agents/` pins it. A hand-made agent may not. (A pinned agent can still log the odd `repl` line and carry on: that's fine.) | +| `on-work.sh` logs `carried no per-session secret` and exits 1 (memory demo) | The environment issued no per-session token, so a container would have no credential. Memory needs that token. Use `docker/` on that environment. | +| `sessions create --resource` returns 400 `resources are not supported with self-hosted environments` | The org doesn't have memory on self-hosted environments enabled yet. Nothing to fix locally. | +| Container log shows `failed to download skill` (memory demo) | Expected: the skills API takes the environment key, which this variant never puts in a container. See the README. | +| `start.sh` says `set ANTHROPIC_ENVIRONMENT_KEY` | Step 4 wasn't done: the key is neither in `.env` (uncommented) nor exported in that shell. | +| Poller gets 401 | The environment key doesn't belong to `CLAUDE_ENVIRONMENT_ID`, or `ANTHROPIC_BASE_URL` in `.env` points at a different API host than the one `setup.sh` used. | +| Container can't reach a service on the host (rootless Docker) | `SANDBOX_DOCKER_RUN_ARGS="--add-host=host.docker.internal:host-gateway" ./start.sh` and address the host as `host.docker.internal`. | +| Disk fills with `shs-ws-*` / `shs-mem-ws-*` volumes | Per-session `/workspace` volumes are never removed automatically. `docker volume rm` the dead sessions' ones. | + +Both `start.sh` scripts deliberately `unset ANTHROPIC_API_KEY ANTHROPIC_AUTH_TOKEN`: +the sandbox host runs on the environment key alone. Don't "fix" that. diff --git a/content/github/claude-quickstarts/managed-agents/self-hosted-sandboxes/README.md b/content/github/claude-quickstarts/managed-agents/self-hosted-sandboxes/README.md new file mode 100644 index 000000000..dd1f57cff --- /dev/null +++ b/content/github/claude-quickstarts/managed-agents/self-hosted-sandboxes/README.md @@ -0,0 +1,30 @@ +# Self-hosted sandboxes with Docker + +Two demos of running managed-agent sessions on hardware you control, with +plain Docker as the per-session sandbox. Both have the same shape: a +self-hosted environment (`config: {type: self_hosted}` in +`agents/*/environment.yaml`) is a work queue rather than a sandbox +template, a host process polls it with the environment key, and each +claimed session runs in its own short-lived container. + +- [`docker/`](docker/) is the baseline, all `ant` CLI. The host runs + `ant beta:worker poll` and each container runs `ant beta:worker run`. + One credential, the environment key, everywhere, including inside the + containers. An agent can read its container's environment, so in this + variant the containers protect the host, not sessions from each other. +- [`docker-memory/`](docker-memory/) adds a memory store. The host side is + the same CLI poller, and the container runs the Python SDK's + `EnvironmentWorker`, which downloads the session's memory store to + `/mnt/memory/...`, syncs edits back, and exits. The environment key never + enters a container: each one authenticates with a per-session token + instead, so a session cannot reach another session's work or memories. + +Memory stores mount at a fixed path on the sandbox filesystem, so two +sessions on one unvirtualized machine would read and overwrite each +other's memories. One container per session is the recommended way to run +more than one session per host once memory is attached. The +`docker-memory/` README covers the mechanics. + +In both, `./agents/setup.sh` creates the resources from YAML with the `ant` CLI and +writes their IDs to `.env`. The one manual step is the environment key, +which you mint in the Console for the environment `setup.sh` created. diff --git a/content/github/claude-quickstarts/managed-agents/self-hosted-sandboxes/docker-memory/README.md b/content/github/claude-quickstarts/managed-agents/self-hosted-sandboxes/docker-memory/README.md new file mode 100644 index 000000000..e716f8d9b --- /dev/null +++ b/content/github/claude-quickstarts/managed-agents/self-hosted-sandboxes/docker-memory/README.md @@ -0,0 +1,115 @@ +# Docker demo with memory: one container per session + +Run managed-agent sessions on your own hardware with a memory store that +persists across them. The host polls a self-hosted environment with the +`ant` CLI and starts one Docker container per claimed session. The container +downloads the session's memory store to `/mnt/memory/`, serves +the agent's tools, syncs memory edits back while the session runs, and +exits. The server keeps the memories, so containers are disposable. + +It is the [`docker/`](../docker/) demo plus two things: the container runs +the Python SDK's `EnvironmentWorker` (which does the memory download and +sync), and the environment key never enters a container. + +## How to use it + +Needs Docker, `jq`, the [`ant` CLI](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/quickstart) +1.23 or later (`brew install anthropics/tap/ant`), and `ant auth login` once +(or an API key in `.env`). No Python on the host: the SDK lives in the image. + +```sh +cd managed-agents/self-hosted-sandboxes/docker-memory +claude "help me set up and run this self-hosted sandbox memory demo" +``` + +Or by hand. One-time setup: + +```sh +./agents/setup.sh # creates the memory store, self-hosted environment, and agent; writes their IDs to .env +# Mint a key for that environment in the Console (Environments -> it -> Keys) +# and set ANTHROPIC_ENVIRONMENT_KEY= in .env +``` + +Sandbox side, leave running: + +```sh +./start.sh # builds the image, then polls the environment for sessions +``` + +Control plane, from any other terminal or machine with the same `.env`. +Create a session on the environment with the store attached and a first +message: + +```sh +set -a; . ./.env; set +a +ant beta:sessions create --agent "$CLAUDE_AGENT_ID" --environment-id "$CLAUDE_ENVIRONMENT_ID" \ + --resource "{type: memory_store, memory_store_id: $CLAUDE_MEMORY_STORE_ID, access: read_write}" \ + --initial-event "{type: user.message, content: [{type: text, text: 'Remember that I indent with tabs, 3 wide.'}]}" +``` + +`start.sh` logs `[on-work] session=sesn_... (starting)` followed by the +container's own log: `downloaded N memories ... -> /mnt/memory/user-preferences`, +the tool calls, and `session idle after end_turn for 60s; stopping` before +the container exits. Then prove the memory outlived it: run the same command +with `text: 'What do you know about my preferences?'`. A fresh container +downloads the store and the agent answers from it. What the server holds: + +```sh +ant beta:memory-stores:memories list --memory-store-id "$CLAUDE_MEMORY_STORE_ID" --view full +``` + +`access: read_only` attaches the store for sessions that may read but never +write (the file tools refuse writes under that mount). A different +`memory_store_id` is a blank slate the first store's sessions never see: +one store per end user is the pattern. + +One poller serves one session at a time: the CLI stops a work item as soon +as its `--on-work` script returns, so `on-work.sh` stays attached to the +container until it exits. Run `./start.sh` in as many terminals or on as +many hosts as you want concurrent sessions. The environment is a queue and +spreads sessions across them. + +## How it works + +| | | +|---|---| +| `agents/memory-demo/` | Agent, self-hosted environment, and memory store definitions for `setup.sh`. The agent pins `tools: [{type: agent_toolset_20260401}]`, the toolset `worker.py` serves. A server-default toolset includes tools the worker does not own and the session stalls (`tool 'repl' not owned by this runner`). | +| `start.sh` | Host. Builds the image, execs `ant beta:worker poll --on-work on-work.sh` with the environment key from `.env`. | +| `on-work.sh` | Host, once per claimed work item. Reads the item's per-session `secret` off stdin and runs an attached `--rm` container with only that secret, returning when it exits. Refuses items that carry no secret. `SANDBOX_DOCKER_RUN_ARGS` adds `docker run` flags. | +| `Dockerfile`, `worker.py` | Container. `python:3.12-slim` + the `anthropic` SDK (0.125.0 or later, the first with memory sync for self-hosted sandboxes) + `rg`/`git`/`curl`/`jq`. `worker.py` pulls the sessions token out of the secret and calls `EnvironmentWorker.handle_item()`: memory download and sync, tool dispatch, lease heartbeat, force-stop on exit. | + +Three credentials, three blast radii. Your org credential (`ant auth login` +or `ANTHROPIC_API_KEY`) runs `setup.sh` and creates sessions, and never +reaches the sandbox host. The environment key lives only in the `start.sh` +poller and can only claim work. Each container holds only its session's +token, so an agent that reads its own environment (it runs arbitrary bash) +cannot claim other sessions' work or read their memories. The memory +endpoints reject the environment key outright. The trade-off: the skills +API takes the environment key and not the token, so an agent with skills +runs without them here (the worker logs the failed download and carries +on). If you need skills, pass the key in as `docker/` does and accept its +weaker isolation, or bake the skill files into the image. + +One container per session is what keeps memories apart. A store mounts at +a fixed path derived from its name (`/mnt/memory/user-preferences`), and +the agent addresses that exact path, so two sessions on one filesystem +would read and overwrite each other's directory. A fresh container gives +each session its own mount, clean even after a crash. Only `/workspace` +persists, on a per-session volume (`shs-mem-ws-`) that is never +removed automatically: `docker volume rm` dead sessions' volumes. + +## How sync behaves + +The SDK downloads the store before the session's tools run, reconciles the +directory with the server every 30s (checked after each tool call, tunable +via `memory_sync_interval` on `EnvironmentWorker`) plus once at a clean end, +gives a session that dies mid-run a bounded push-only flush, and removes the +directory on teardown. Reconcile is per file: local-only changes upload, +remote-only changes download, a same-file conflict takes the server version +with a warning. Uploads carry a `content_sha256` precondition, so two +sessions sharing a store merge cleanly when they write different files and +a lost race on the same file drops the loser's push instead of corrupting +it. A local delete propagates only after the file has stayed gone for 30s +and a re-check, so a wiped directory re-downloads instead of emptying the +store. The `.anthropic-memory-store` marker in each mount is how the SDK +decides to trust the folder. It never syncs, and agents can ignore it. diff --git a/content/github/claude-quickstarts/managed-agents/self-hosted-sandboxes/docker/README.md b/content/github/claude-quickstarts/managed-agents/self-hosted-sandboxes/docker/README.md new file mode 100644 index 000000000..311394a3e --- /dev/null +++ b/content/github/claude-quickstarts/managed-agents/self-hosted-sandboxes/docker/README.md @@ -0,0 +1,75 @@ +# Docker demo: one container per session + +Run managed-agent sessions on hardware you control. The host runs +`ant beta:worker poll` against a self-hosted environment, and for each +claimed session its `--on-work` script runs a short-lived Docker container +whose entrypoint is `ant beta:worker run`. That container downloads the +agent's skills, serves the session's tools (`bash`, `read`, `write`, `edit`, +`glob`, `grep`), heartbeats the work-item lease, and exits 60s after the +session idles. Nothing is exposed to the internet: the poller long-polls +the API. + +## How to use it + +Needs Docker, the [`ant` CLI](https://platform.claude.com/docs/en/cli-sdks-libraries/cli/quickstart) +1.23 or later (`brew install anthropics/tap/ant`), and `ant auth login` once +(or an API key in `.env`). + +```sh +cd managed-agents/self-hosted-sandboxes/docker +claude "help me set up and run this self-hosted sandbox demo" +``` + +Or by hand. One-time setup: + +```sh +./agents/setup.sh # creates the self-hosted environment + agent, writes their IDs to .env +# Mint a key for that environment in the Console (Environments -> it -> Keys) +# and set ANTHROPIC_ENVIRONMENT_KEY= in .env +``` + +Sandbox side, leave running: + +```sh +./start.sh # builds the image, then polls the environment for sessions +``` + +Control plane, from any other terminal or machine with the same `.env`: + +```sh +set -a; . ./.env; set +a +ant beta:sessions create --agent "$CLAUDE_AGENT_ID" --environment-id "$CLAUDE_ENVIRONMENT_ID" \ + --initial-event '{type: user.message, content: [{type: text, text: "Which tools do you have? Try each one."}]}' +``` + +`start.sh` logs `[on-work] session=sesn_... (starting)` followed by the +container's own log (`downloaded skill ...`, `executing tool ...`) until it +prints `session idle after end_turn; stopping` and the container exits. +Send the session another message (`ant beta:sessions:events send`) and a +new container picks it up with the same `/workspace`, which lives on a +per-session volume (`shs-ws-`). `docker volume rm` dead +sessions' volumes. + +One poller serves one session at a time: the CLI stops a work item as soon +as its `--on-work` script returns, so `on-work.sh` stays attached to the +container until it exits. Run `./start.sh` in as many terminals or on as +many hosts as you want concurrent sessions. The environment is a queue and +spreads sessions across them. + +## How it works + +| | | +|---|---| +| `agents/sandbox-demo/` | Agent and self-hosted environment definitions for `setup.sh`. The agent pins `tools: [{type: agent_toolset_20260401}]`, the toolset `ant beta:worker run` serves. A server-default toolset includes tools the worker does not own and the session stalls on them. | +| `start.sh` | Builds the image, execs `ant beta:worker poll --on-work on-work.sh` with the environment key from `.env`. | +| `on-work.sh` | Once per claimed work item: runs an attached `--rm` per-session container and returns when it exits. `SANDBOX_DOCKER_RUN_ARGS` adds `docker run` flags (resource limits, networks). | +| `Dockerfile` | `debian:12-slim` + `ant` (pinned by `ARG ANT_VERSION`, fetched for the image's architecture) + `rg`/`git`/`curl`/`jq`, `ENTRYPOINT ant beta:worker run`. Add whatever else your agents need. | + +One credential everywhere: the environment key. The poller claims work with +it and `on-work.sh` passes it into each container, where `ant beta:worker +run` uses it for the session's event stream, the lease heartbeat, and the +skills download. An agent can read its container's environment (it runs +arbitrary bash), so here the containers limit the blast radius for the +host, not between sessions. The [`docker-memory/`](../docker-memory/) +variant shows the per-session token split that isolates sessions from each +other, and what it costs. diff --git a/content/support/10185728-understanding-claude-s-personalization-features.md b/content/support/10185728-understanding-claude-s-personalization-features.md index f33281e42..833d2dfc3 100644 --- a/content/support/10185728-understanding-claude-s-personalization-features.md +++ b/content/support/10185728-understanding-claude-s-personalization-features.md @@ -1,6 +1,6 @@ # Understanding Claude's personalization features -Claude offers several ways to personalize your experience: profile instructions, project instructions, and styles. Each serves a different purpose in helping Claude better understand and meet your needs. +Claude offers several ways to personalize your experience. Each serves a different purpose in helping Claude better understand and meet your needs. ## Instructions for Claude @@ -70,6 +70,6 @@ For more information, see **[What are skills?](https://support.claude.com/en/art - Use project instructions when you need specific guidance or context for a particular project (paid plans only). -- Use styles when you want to customize how Claude formats and delivers its responses. +- Use skills when you want to customize how Claude formats and delivers its responses. You can use these features independently or in combination to create the most effective experience for your needs. \ No newline at end of file diff --git a/content/support/10310342-how-do-i-log-out-of-all-active-sessions.md b/content/support/10310342-how-do-i-log-out-of-all-active-sessions.md index 7ba2340df..f04f8e27e 100644 --- a/content/support/10310342-how-do-i-log-out-of-all-active-sessions.md +++ b/content/support/10310342-how-do-i-log-out-of-all-active-sessions.md @@ -38,7 +38,7 @@ To regain access to your account on any device, you'll need to authenticate agai If you used your Claude account to authenticate into Claude Code, you can manage your authorization tokens by navigating to **[Settings > Claude Code](https://claude.ai/settings/claude-code)**. To remove a token and log out of Claude Code, click the trash can icon. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1608263923/b4fa7d6f6f08f2adffb4ea63bc58/image+%287%29.png?expires=1787157900&signature=bdaada670f9555c6b1d78ce3de5721505c0351f87cd9f9e5ebd7a337b6fbcf07&req=dSYnHst4nohdWvMW1HO4zVuHihv802CyAQofdwM8qVcEhf2nwq2Od6wjiBIM%0A1wMuXpTj%2BhXJ7GtZQO4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1608263923/b4fa7d6f6f08f2adffb4ea63bc58/image+%287%29.png?expires=1787193900&signature=23542226f09c9882ae3fa5c3de540d93650f227d188e4d82b2942455cbf472a8&req=dSYnHst4nohdWvMW1HO4zVuHihv832SyAQofdwM8qVesX3bdwq1SrARrXNyj%0A0PaJtAB5TmqbgAr%2BYhA%3D%0A) ## Unable to access your account? diff --git a/content/support/10366376-how-can-i-delete-my-claude-console-account.md b/content/support/10366376-how-can-i-delete-my-claude-console-account.md index 2fa3886b7..45140bad2 100644 --- a/content/support/10366376-how-can-i-delete-my-claude-console-account.md +++ b/content/support/10366376-how-can-i-delete-my-claude-console-account.md @@ -36,7 +36,7 @@ If you followed the steps above to delete your Console organization but want to If you have an outstanding balance, you will see a message during the deletion flow that prompts you to pay the balance first by routing you to [Settings > Billing](https://platform.claude.com/settings/billing). -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1973957766/5c2dd87c0818a0400099a833c9b3/4cc3130a-f696-4967-9fe3-e5623c6f02bd?expires=1787157900&signature=d68972e9b8d265c2347fa83aa1ed797837f913f06e584330cf81bcb43f1b8b9e&req=dSkgFcB7moZZX%2FMW1HO4zbYXUBBjWeMSFZRyvJPpBZ%2F1JzE6KNqNJcCkaBEd%0ARvjpeMhL%2FKQ7qLr4RfI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1973957766/5c2dd87c0818a0400099a833c9b3/4cc3130a-f696-4967-9fe3-e5623c6f02bd?expires=1787193900&signature=a07164983d82e5798190c03501ecafe1d8c712ea2d924854937676469174e344&req=dSkgFcB7moZZX%2FMW1HO4zbYXUBBjVecSFZRyvJPpBZ89TiAkSt1Lcj2sL5oO%0AF4pRLETPjL%2FgQdGurN8%3D%0A) You must pay this outstanding balance before you’re able to move forward with the deletion process. @@ -44,6 +44,6 @@ You must pay this outstanding balance before you’re able to move forward with There are some scenarios where you will need to contact our team to delete your account. If this is the case, it will be noted when you try to delete your organization: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1973957765/19dda72a40db95d78c00c27a1a1c/6ce89be6-93ce-409c-bbea-d34be09db348?expires=1787157900&signature=03748d02c978620a876f5fd8ca9e464bc6db3aad8eccbfb8871aa9a3527935e2&req=dSkgFcB7moZZXPMW1HO4zRW12%2BLMfaPwZxDZGlqR6Ggec0zRmd1R%2BvpWOK5Y%0A0TtdOOFW95ehe6AK%2Bxc%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1973957765/19dda72a40db95d78c00c27a1a1c/6ce89be6-93ce-409c-bbea-d34be09db348?expires=1787193900&signature=9f490cb7a68158faef47555280940e066123da9ad2ed6db7ae8f40a17b7da69e&req=dSkgFcB7moZZXPMW1HO4zRW12%2BLMcafwZxDZGlqR6GiHgP3a7hUtyMzsCV%2Fb%0AJyrOMJhPq4gxK8BTvtI%3D%0A) If you are seeing this message, this indicates that your Console organization cannot be deleted via the self-service pathway. \ No newline at end of file diff --git a/content/support/10504844-manage-user-feedback-settings-on-team-and-enterprise-plans.md b/content/support/10504844-manage-user-feedback-settings-on-team-and-enterprise-plans.md index eb9ce2fd6..9cb410914 100644 --- a/content/support/10504844-manage-user-feedback-settings-on-team-and-enterprise-plans.md +++ b/content/support/10504844-manage-user-feedback-settings-on-team-and-enterprise-plans.md @@ -6,6 +6,6 @@ As a Primary Owner or Owner of a Team or Enterprise plan, you can manage the abi 2. Use the toggle to change the **Rate chats** setting for your organization: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2058292603/75752add0bed6a9f3ab217f01708/CleanShot%2B2026-02-12%2Bat%2B08_55_14-402x.png?expires=1787157900&signature=e3cdc6aa34a799ebdb5cdbcb1d49c442ce4c1e7fa8255ba4ddd3d67375052bd5&req=diAiHst3n4dfWvMW1HO4zYGm8iAdFa%2FF085gFtEpvcTAD1yG%2FKuO8aObp5do%0ASkldKwDcC9%2Bxg5WipPE%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2058292603/75752add0bed6a9f3ab217f01708/CleanShot%2B2026-02-12%2Bat%2B08_55_14-402x.png?expires=1787193900&signature=7d2d525eba5ea570a914e9a965469854958f65a95209cd0be13ae18ce2c4bc52&req=diAiHst3n4dfWvMW1HO4zYGm8iAdGavF085gFtEpvcS9bCojQJsOzntcQgf5%0Ai%2BSYk5CCG0mOFDHku20%3D%0A) More information on how Anthropic collects, uses, and stores feedback data can be found in our Privacy Center: **[How long do you store my organization’s data?](https://privacy.claude.com/en/articles/7996866-how-long-do-you-store-my-organization-s-data)** \ No newline at end of file diff --git a/content/support/10504853-manage-user-feedback-settings-on-claude-console.md b/content/support/10504853-manage-user-feedback-settings-on-claude-console.md index d3adf0b81..9c533ab2e 100644 --- a/content/support/10504853-manage-user-feedback-settings-on-claude-console.md +++ b/content/support/10504853-manage-user-feedback-settings-on-claude-console.md @@ -8,6 +8,6 @@ To manage feedback for your Console organization: 2. Toggle the feedback switch on or off. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1729186182/ebf4032a12a8c56959ca927726ce/Screenshot+2025-09-16+at+12_32_31%E2%80%AFPM.png?expires=1787157900&signature=b228517a6bc4d947b222ae0bdcd0ac46bb4ecf5bf36582340f837e91eb710109&req=dSclH8h2m4BXW%2FMW1HO4zVpN5HAcXG9MJ%2FadMup7FQcI7rubq6s9NodeOnRt%0Aef%2FES%2BahTyPq0MYI6%2B8%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1729186182/ebf4032a12a8c56959ca927726ce/Screenshot+2025-09-16+at+12_32_31%E2%80%AFPM.png?expires=1787193900&signature=1c38278e593495950e4c4c3ebe749118199298366443572c2c3f311540e62799&req=dSclH8h2m4BXW%2FMW1HO4zVpN5HAcUGtMJ%2FadMup7FQcRx0WI8lP%2FjIRX1VkM%0AOGJqBztlzDMbBO4l43I%3D%0A) More information on how Anthropic collects, uses, and stores feedback data can be found in our Privacy Center: [How long do you store my organization’s data?](https://privacy.claude.com/en/articles/7996866-how-long-do-you-store-my-organization-s-data) \ No newline at end of file diff --git a/content/support/10593882-share-and-unshare-chats.md b/content/support/10593882-share-and-unshare-chats.md index 891be7b33..7f003b2ef 100644 --- a/content/support/10593882-share-and-unshare-chats.md +++ b/content/support/10593882-share-and-unshare-chats.md @@ -38,12 +38,12 @@ To unshare a chat: Users on free, Pro, or Max plans can review a log of shared chats by navigating to **[Settings > Privacy](https://claude.ai/settings/data-privacy-controls)**. Find the **Privacy settings** section and click “Manage” next to **Shared chats:** -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1921669913/7cc7be48cfc7a18f9f469d6cd83c/CleanShot+2026-01-08+at+10_20_43%402x.png?expires=1787157900&signature=9d733b92afff01e84cae7aba67d901785eacac59ca0d44f1d1b8b007d18928b0&req=dSklF894lIheWvMW1HO4zWn5HzQcZ0Jic9cNIYuX0GHyPQB3g1mC7%2BKJx%2BW9%0APFUND9Si5uonDp%2B48NY%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1921669913/7cc7be48cfc7a18f9f469d6cd83c/CleanShot+2026-01-08+at+10_20_43%402x.png?expires=1787193900&signature=da4bf0f09a848799dd34e401f04662b02641672d5d917c06acf4f3123ed1625b&req=dSklF894lIheWvMW1HO4zWn5HzQca0Zic9cNIYuX0GHofytyWch6LK1rDdyq%0Amb%2Fg4QqYU0VNnwgni2k%3D%0A) This will open a **Shared chats** modal listing the title, date shared, and link to each chat, allowing you to easily review and access all your previously-shared content. From here, you also have the option to click “Unshare” next to each listed chat to revoke access to the last snapshot you shared: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1624243810/e6fe1d262597446c7fe21dff9f10/AD_4nXdW-GhByF8uKV7fCq9lTbkVB91FglSL6TSyXAOUk_MLcTV9YsEMBMkm9rgm1oXqv0k3sJh1JhlzZP6tHVkKbDJJ71pDRRtM3aVNG64MDuKDIzgmknh-XDZdNa7biTsTdwGoPr5GRg?expires=1787157900&signature=d575e449514ac41be54fe6b9ef2d8918a7bffddbaa9ad98fed98473133aac747&req=dSYlEst6noleWfMW1HO4ze44eCBgkRU3guvTv9woD7aaiT35akmI%2F2uUadOR%0AHEvTpXKO9G71VaRZDIs%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1624243810/e6fe1d262597446c7fe21dff9f10/AD_4nXdW-GhByF8uKV7fCq9lTbkVB91FglSL6TSyXAOUk_MLcTV9YsEMBMkm9rgm1oXqv0k3sJh1JhlzZP6tHVkKbDJJ71pDRRtM3aVNG64MDuKDIzgmknh-XDZdNa7biTsTdwGoPr5GRg?expires=1787193900&signature=8a1b7f9b7fa1dd62e9ac9f2ed79d9dcc4f25f0facb4542d7ff62447c501d8e15&req=dSYlEst6noleWfMW1HO4ze44eCBgnRE3guvTv9woD7aEaZphrUZIsUywgVMy%0Acyzazt0L2fowyIalVPg%3D%0A) If you don’t have any shared chat snapshots, the **Shared chats** modal will show “No shared content found”: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1624243808/b025db8e598f0c88fb16d83d48d5/AD_4nXeUwCKnmFzzrjMHhfr5By4zk5pJlkEn3wbJ8-aNfu13Yl99IjBywpqPx9G07QRzpH1EwRY7uG7Q9m9fib98Gql1cIV7XwUCTzEgBNu79Ey8tCOS5CEVmwveIcEOxJ4fonBhe3g9MA?expires=1787157900&signature=12a9bf4038c59d6d22e292629078b8dd48703d18e87d671a60d3c45c14fb4639&req=dSYlEst6nolfUfMW1HO4zdaFncJ1hI64DeZsm0Gz1HtX2TuXEo%2BDxw38JNmC%0AAebTzVYkmNZTmNowOEs%3D%0A) \ No newline at end of file +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1624243808/b025db8e598f0c88fb16d83d48d5/AD_4nXeUwCKnmFzzrjMHhfr5By4zk5pJlkEn3wbJ8-aNfu13Yl99IjBywpqPx9G07QRzpH1EwRY7uG7Q9m9fib98Gql1cIV7XwUCTzEgBNu79Ey8tCOS5CEVmwveIcEOxJ4fonBhe3g9MA?expires=1787193900&signature=7ba7e32632780c7cddc0f3e5b352b633c4a589a3aec100b97a586b07a04befb4&req=dSYlEst6nolfUfMW1HO4zdaFncJ1iIq4DeZsm0Gz1Hs2cJcZH%2F9BCNlORYy4%0AoUKRdOmFPjrN1E%2BbM50%3D%0A) \ No newline at end of file diff --git a/content/support/10684626-enable-and-use-web-search.md b/content/support/10684626-enable-and-use-web-search.md index e7fb5d576..1b3cff3e2 100644 --- a/content/support/10684626-enable-and-use-web-search.md +++ b/content/support/10684626-enable-and-use-web-search.md @@ -24,7 +24,7 @@ Web search expands Claude's knowledge with real-time data, helping you make bett An Owner or Primary Owner must first enable web search for the entire workspace. This can be found in **[Admin settings > Capabilities](https://claude.ai/admin-settings/capabilities)**: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2032032614/ad907328c4d9a26ee4bd9ca27a52/CleanShot+2026-02-05+at+09_01_42%402x.png?expires=1787157900&signature=759ea789d4cf608c42d78cdcd16ae54d71c17f4d1b72a4532f2fcc8423f7f977&req=diAkFMl9n4deXfMW1HO4zetvyrW7HclZUJIbgsqS2%2BNELNM3qgOGnrlsafFI%0A%2FAva1XZr185ttiaRnPI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2032032614/ad907328c4d9a26ee4bd9ca27a52/CleanShot+2026-02-05+at+09_01_42%402x.png?expires=1787193900&signature=fc5fe403d4debd071e9c8411cb782660da3776008391236eb55fed9c72d6b938&req=diAkFMl9n4deXfMW1HO4zetvyrW7Ec1ZUJIbgsqS2%2BMafnqOyc%2BhYKnwALyc%0ANAdfr2N6bGidRj%2Bud1I%3D%0A) Once this is enabled at the workspace level, any member of the organization can switch it on while starting a chat by clicking the “+” button in the lower left corner of the chat window and selecting “Web search." Users can toggle this off for chats that don’t require web search capabilities. diff --git a/content/support/10949351-getting-started-with-local-mcp-servers-on-claude-desktop.md b/content/support/10949351-getting-started-with-local-mcp-servers-on-claude-desktop.md index 493e54c5b..4089f8af6 100644 --- a/content/support/10949351-getting-started-with-local-mcp-servers-on-claude-desktop.md +++ b/content/support/10949351-getting-started-with-local-mcp-servers-on-claude-desktop.md @@ -48,7 +48,7 @@ for specific instructions. Custom desktop extensions uploads allow Team and Enterprise plans to leverage organization-specific workflows that aren’t available in the public directory. After creating a custom desktop extension, Owners and Primary Owners can navigate to Settings > Extensions within Claude Desktop and click “Advanced settings” to access the **Extension Developer** section: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1681607607/ba6e379d2769d190f0970a0adaed/AD_4nXd4aZkqjJFpiXMPF28Pih7HmSJ9pPsnoWAfVgiLdFRFiTkO92YtXteIjvDHaPl7T0tjfpRTBOlyrMbQ_aciCNDgfIuEvV3szmKvt72x5O51DMSClXOYWk1JIRIzylwkj3joXqZcLw?expires=1787157900&signature=63bee1a0e8483500cae9e354a5550f42f8f2a5a17af22cb160fef9675ffa1247&req=dSYvF89%2BmodfXvMW1HO4zWbPxEd%2BMjo7Hn9K2IaIG2IxVfB3TuCXqACYR3Cq%0AhbN9FPBTe3yL7BQbjPQ%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1681607607/ba6e379d2769d190f0970a0adaed/AD_4nXd4aZkqjJFpiXMPF28Pih7HmSJ9pPsnoWAfVgiLdFRFiTkO92YtXteIjvDHaPl7T0tjfpRTBOlyrMbQ_aciCNDgfIuEvV3szmKvt72x5O51DMSClXOYWk1JIRIzylwkj3joXqZcLw?expires=1787193900&signature=3795dfc83c588e8ea74eebf05cef16471a4e3a125d477f670f00f23047745eb6&req=dSYvF89%2BmodfXvMW1HO4zWbPxEd%2BPj47Hn9K2IaIG2Ljnb5mrN%2Bcae2x2OxY%0A8Z5zKqb5eNTEHJm44%2FA%3D%0A) Click “Install Extension…” and select the .mcpb file. Follow the prompts to install and configure your custom desktop extension. For more in-depth information, please refer to our [desktop extension developer documentation](https://github.com/anthropics/mcpb). diff --git a/content/support/11101966-use-voice-mode.md b/content/support/11101966-use-voice-mode.md index b0ad47381..75b1cb81a 100644 --- a/content/support/11101966-use-voice-mode.md +++ b/content/support/11101966-use-voice-mode.md @@ -24,7 +24,7 @@ Voice mode transforms how you interact with Claude by: 2. Tap the sound wave symbol in the lower right corner of the chat window to activate voice mode: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2042358620/1bf2311353615c1c494da1312a17/124b93a8-0a9b-4c84-9d1f-ede6ca3498dd?expires=1787157900&signature=ed20432f1336ef848905baf7cd18177f5b47c123404488f656fd79f4782d93c8&req=diAjFMp7lYddWfMW1HO4zZyGrslzvlAZF6uXnTLMvvC25ehJpXgJ%2B2ZL2CCL%0Arujp%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2042358620/1bf2311353615c1c494da1312a17/124b93a8-0a9b-4c84-9d1f-ede6ca3498dd?expires=1787193900&signature=1bac71c0d1a348a3ae36bd1b15cc456dba0958b86ba90285211b543d3bb1bea6&req=diAjFMp7lYddWfMW1HO4zZyGrslzslQZF6uXnTLMvvDaDDgYkxgs9hHNBR8S%0A8TJe%0A) 3. Start talking and see your prompt automatically populate in the chat input. @@ -32,7 +32,7 @@ Voice mode transforms how you interact with Claude by: 5. Claude will remain in voice mode until you click the “Stop” button in the lower right corner of the chat window: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2042352060/162f9e61f7fbeb689201dfc1cac1/6a7fafb2-31df-43be-a43f-0059d735e3c4?expires=1787157900&signature=54e9aaf22dd9185b279fcc6611cc6d5321ee4834ecbfba6fe6cf884af44429d8&req=diAjFMp7n4FZWfMW1HO4zU6VRfrLTbtgxNdRzYWrfF7YXNJxznG0wxm8M4VA%0AZKPUF%2BQvMbntgKm%2F0xM%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2042352060/162f9e61f7fbeb689201dfc1cac1/6a7fafb2-31df-43be-a43f-0059d735e3c4?expires=1787193900&signature=c80b43e87eed5007aafa963d566a2ca7a2613528bb756c68ae6bc5d10d15cd8a&req=diAjFMp7n4FZWfMW1HO4zU6VRfrLQb9gxNdRzYWrfF7nhSddk3S0cZKlmiZe%0AkoSmJMuksjNTm6ScBXY%3D%0A) ### On mobile (iOS and Android) @@ -40,7 +40,7 @@ Voice mode transforms how you interact with Claude by: 2. Tap the voice mode icon (sound wave symbol next to the microphone icon) in the text input field: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2042359690/68879db64559ecf87991f73ce058/671ff972-9e08-4686-bc04-955dab4b2de3?expires=1787157900&signature=b2869ca7c133115ac44d7388f9753e43cbcb3bda62e590d51bb2eeda5506e1fe&req=diAjFMp7lIdWWfMW1HO4zQTUIfN7ld9HD%2FRXAPlQ7LYknPKNxpV1UW%2FuU76l%0AWW%2F2%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2042359690/68879db64559ecf87991f73ce058/671ff972-9e08-4686-bc04-955dab4b2de3?expires=1787193900&signature=52969a846eac43ed45e6bb2a7d56ef36d4f957cdb80cc2264304544c1d6a6922&req=diAjFMp7lIdWWfMW1HO4zQTUIfN7mdtHD%2FRXAPlQ7Lb8mdrBLGoJujeOiut9%0AqcmN%0A) 3. Choose a voice to personalize your experience. @@ -78,7 +78,7 @@ To change the voice later: - **On mobile:** Click the settings button in the bottom left corner while chatting with Claude in voice mode, then tap your preferred voice and pace: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2042352063/25eca25bcfd573ecab30dd53158c/074454a6-fa5a-4c49-8b19-02d434b4ca50?expires=1787157900&signature=2d3a4f41b606abf3a1a7fdd100010228101064576d8107557b8181aa4060a200&req=diAjFMp7n4FZWvMW1HO4zZ3%2FGG2UZVcDy8OQfYsvK3wcgOG7JvqkFAJMHCgx%0A0l6FwYzD63tQisFeamo%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2042352063/25eca25bcfd573ecab30dd53158c/074454a6-fa5a-4c49-8b19-02d434b4ca50?expires=1787193900&signature=db5fcc75c82fa66cd19d67136f42622540182afe7c633e18f7a8da6b2bba6e58&req=diAjFMp7n4FZWvMW1HO4zZ3%2FGG2UaVMDy8OQfYsvK3zw%2Barxc7HZiSWBWwdf%0ARu%2FvdiGOuqiDwjgYoTU%3D%0A) ## Choose a model diff --git a/content/support/11145838-use-claude-code-with-your-pro-or-max-plan.md b/content/support/11145838-use-claude-code-with-your-pro-or-max-plan.md index 733ad6b7b..73628fe66 100644 --- a/content/support/11145838-use-claude-code-with-your-pro-or-max-plan.md +++ b/content/support/11145838-use-claude-code-with-your-pro-or-max-plan.md @@ -70,7 +70,7 @@ When you reach your usage limits, you can select from a few options based on you - **[Enable usage credits](https://support.claude.com/en/articles/12429409-)** to continue using Claude with your Pro plan after hitting the included usage limit. -- You will have the flexibility to switch to **[pay-as-you-go usage](https://support.claude.com/en/articles/8114526-how-will-i-be-billed-for-claude-api-use)** with a Claude Console account for intensive coding sprints. +- Switch to a Claude Console account and **[purchase API usage credits](https://support.claude.com/en/articles/8977456-how-do-i-pay-for-my-claude-api-usage)** for intensive coding sprints. - Wait until your usage limits reset. @@ -80,7 +80,7 @@ When you reach your usage limits, you can select from a few options based on you - **[Enable usage credits](https://support.claude.com/en/articles/12429409-)** to continue using Claude with your Max plan after hitting the included usage limit. -- You will have the flexibility to switch to **[pay-as-you-go usage](https://support.claude.com/en/articles/8114526-how-will-i-be-billed-for-claude-api-use)** with a Claude Console account for intensive coding sprints. +- Switch to a Claude Console account and **[purchase API usage credits](https://support.claude.com/en/articles/8977456-how-do-i-pay-for-my-claude-api-usage)** for intensive coding sprints. - Wait until your usage limits reset. diff --git a/content/support/11725453-set-up-the-claude-lti-in-canvas-by-instructure.md b/content/support/11725453-set-up-the-claude-lti-in-canvas-by-instructure.md index 4d29f288b..3237be20e 100644 --- a/content/support/11725453-set-up-the-claude-lti-in-canvas-by-instructure.md +++ b/content/support/11725453-set-up-the-claude-lti-in-canvas-by-instructure.md @@ -44,7 +44,7 @@ This article provides information on how to enable the Claude LTI integration in 5. Click "Install" and refresh the course page. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1611422430/c8e0875feac1f2c7cb033be74fc9/AD_4nXfLU_bui3EXcCjQ0qm70HD97neqjGayKeDer_t76utlci8gZSUjYRhw6ZSOlDdqSEcwXBzd_shAh7pQEJ-8OoE0O21DM5coOgxmO_WD5hlwiuwtS2iYXcTavhIRyQT5zKFWvfn3NA?expires=1787157900&signature=9c9ee936c4462b3a0ad43317c42c58b69a5a0ff1f20e4302fbe2fd5defdc97f6&req=dSYmF818n4VcWfMW1HO4zTEDauwfnvSIEv2ojHLMylZa5LGECJ3ikIZfwZCw%0AowuA%2BqCGSHy4JbPSu40%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1611422430/c8e0875feac1f2c7cb033be74fc9/AD_4nXfLU_bui3EXcCjQ0qm70HD97neqjGayKeDer_t76utlci8gZSUjYRhw6ZSOlDdqSEcwXBzd_shAh7pQEJ-8OoE0O21DM5coOgxmO_WD5hlwiuwtS2iYXcTavhIRyQT5zKFWvfn3NA?expires=1787193900&signature=82aba48ed2d89e3f04e22067f364f12f397f8ad9abfcc1f29aa5198f19d9cc9f&req=dSYmF818n4VcWfMW1HO4zTEDauwfkvCIEv2ojHLMylbNZZjCCKpfIwL%2BFvn5%0A1%2Bzy91Dkbv6iMpDX2xo%3D%0A) ## Turn on the Claude LTI Integration in Claude for Education organization settings diff --git a/content/support/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context.md b/content/support/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context.md index a2114cd40..9b04056fd 100644 --- a/content/support/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context.md +++ b/content/support/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context.md @@ -40,7 +40,7 @@ When Claude searches your previous chats, you will see this reflected in your cu Yes, navigate to **[Settings > Memory](https://claude.ai/new#settings/customize-memory)** and switch the toggle next to "Search and reference chats" off: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2533482439/4dee2d7b267f865205feefc8f4f3/cb60c334-d1e2-4828-a01d-dfb36bbaa7eb?expires=1787157900&signature=47f614adf81eb2bf404e19f4238b2f83d8fb6c74b89a03d26e2a50e8f272e2a1&req=diUkFc12n4VcUPMW1HO4zY9IRA1tUNZ%2BYNcz5nFaZkHy9XKU9qDqbh86PE43%0ARI5vhQzzWSfs2DFVsIw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2533482439/4dee2d7b267f865205feefc8f4f3/cb60c334-d1e2-4828-a01d-dfb36bbaa7eb?expires=1787313600&signature=15fe131472af6b05b2f4092d71493759e3ad309cd5b1f3780c5ca94b3e9b0361&req=diUkFc12n4VcUPMW3nq%2Bgc%2FqKU4PNk5pX1ce7sLh5cxrzvr%2BoUopAOq5Mz8r%0AGiFfjVgQfskZ%2BN6HRoWg6fcm2H0%3D%0A) ## Can I exclude a specific past chat from searches? @@ -76,11 +76,11 @@ Each project has its own separate memory space and dedicated project summary, so ## Enable Claude’s memory -**Note:** Members of Enterprise plans can only enable this feature individually when it’s enabled by an Owner for their organization. See **[Controls for Enterprise plan Owners](#h_f7d6b307e2)** for more information. +**Note:** Members of Enterprise plans can only enable this feature individually when it’s enabled by an owner for their organization. See **[Controls for Enterprise plan owners](#h_18b0f4a7ce)** for more information. You can toggle Claude’s memory on by navigating to **[Settings > Memory](https://claude.ai/new#settings/customize-memory)** and turning on **Generate memory from chats**: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2533482441/b5c806a8e3f68bf34c4a70724d38/d30be013-d099-4c93-99d1-23d404792f08?expires=1787157900&signature=510acd80e1d28ba63123fa4d781128d9964c70a54f53b2e96df96757a00eede8&req=diUkFc12n4VbWPMW1HO4zRlYrpxs51clNshWSMEMw9d7%2F%2Fj%2F%2F7J0n3aC1L3g%0ACKm5G2%2FJxhvE0nXjt60%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2533482441/b5c806a8e3f68bf34c4a70724d38/d30be013-d099-4c93-99d1-23d404792f08?expires=1787313600&signature=f26b1d6ae01664d7d35c081b04af526d28f70a75a01103cc0c55383359f9bc28&req=diUkFc12n4VbWPMW3nq%2BgUSsLm4kbk2XFDlz1G74VAF4LAWDe%2B0VPR6Rp24L%0AGzJe80ItXyCvcbHvc7OhHBDi5R8%3D%0A) If you want to disable Claude’s memory, click the toggle and you'll see two options: @@ -184,7 +184,7 @@ When Claude searches your previous chats, you will see this reflected in your cu Yes, navigate to **[Settings > Capabilities](https://claude.ai/settings/capabilities)** and find the **Preferences** section. Switch the toggle next to “Search and reference chats” off: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1719730889/3fafbf5ecaa0ae31d7d84a66229b/c25536c1-7433-4b94-a5e9-cd5acf97a4fd?expires=1787157900&signature=fcbcc91fa3cb5de638912d76123f41244bb0af3cd64ee4c0b1a2086f7621d71b&req=dScmH859nYlXUPMW1HO4zRzXH1gxJjbLJG68qZhl781puQ1w1orMG10klsdY%0AjaWXfapqg7uIUdIDykw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1719730889/3fafbf5ecaa0ae31d7d84a66229b/c25536c1-7433-4b94-a5e9-cd5acf97a4fd?expires=1787313600&signature=57883972ed623f8aa6f6fb423d388de9e4e0509d7b3c7af243c2e7ced81c8173&req=dScmH859nYlXUPMW3nq%2BgZWAenTwzHy9RBaiEHajSESPq61hUuNiR1GdJErw%0Axq5GvdptWQw8WoQAI7SqsyE4J6I%3D%0A) ### Can I exclude a specific past chat from searches? @@ -192,7 +192,7 @@ Incognito chats are available to all Claude users (free, Pro, Max, Team, and Ent When starting a new chat with Claude outside of a project, you'll see a ghost icon in the upper right corner of your screen: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1719730893/9549b21954e0070ceb6b85231fd5/88e59234-6fc2-4229-84fe-733b33efff26?expires=1787157900&signature=50842364b2e68ba24a1ba4c2fdc8df8611233a8eb557d2f3031e6d5e726f9dad&req=dScmH859nYlWWvMW1HO4za54sKRtOYGyXDpzhlKsgjMwWzQnSGGtR4lnSR7x%0APq%2F7jb79bVZlDqHYwpo%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1719730893/9549b21954e0070ceb6b85231fd5/88e59234-6fc2-4229-84fe-733b33efff26?expires=1787313600&signature=65b322c89ed603a0b8e8ffa54d34b4e719ebfebe6a7b412d16545342b7dbd3ac&req=dScmH859nYlWWvMW3nq%2Bgf44pcp9re7zN2t1mzkyUm2mwpAduVqTyPkFC4kd%0AhkzVypGdt9liK4ZLB7uBBQC5eEc%3D%0A) Clicking the ghost icon will open an incognito chat, creating a temporary conversation that isn’t saved to your chat history. Claude won’t pull information from incognito chats when searching previous conversations. @@ -224,7 +224,7 @@ Each project has its own separate memory space and dedicated project summary, so You can toggle Claude’s memory on by navigating to **[Settings > Capabilities](https://claude.ai/settings/capabilities)**: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1719730892/62f9f2b68d675a8e33393f06024f/89198978-192f-4c52-915d-5294b16f3fe1?expires=1787157900&signature=f0a3c607c60d53acccccd70f4857b53ba61c2eb587b6965c2786bbd3842fb2ed&req=dScmH859nYlWW%2FMW1HO4zTD5MMbncuNMBq9N9dRTKYdo0y1oLoO3R8V8beOp%0AmE8TaH96VLp9EHKRt30%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1719730892/62f9f2b68d675a8e33393f06024f/89198978-192f-4c52-915d-5294b16f3fe1?expires=1787313600&signature=1dc279cd27f9edbc35f67a0e6c2f30ea94fb476d1a1ffecbf5b41cad4aad6413&req=dScmH859nYlWW%2FMW3nq%2BgRexfslS03E5VWnBdWCMNKNUMo9WgA86o9jNBDZN%0ACkYPN3zMkteSJc5ik47sBu0SWeg%3D%0A) If you want to disable Claude’s memory, click the toggle to see two options: diff --git a/content/support/11818288-why-am-i-being-asked-to-verify-my-payment-method.md b/content/support/11818288-why-am-i-being-asked-to-verify-my-payment-method.md index ada2e00fd..3f04562b4 100644 --- a/content/support/11818288-why-am-i-being-asked-to-verify-my-payment-method.md +++ b/content/support/11818288-why-am-i-being-asked-to-verify-my-payment-method.md @@ -2,7 +2,7 @@ If you see the following pop-up when you log in to your Claude account, you’ll need to click the “Verify now” button to verify your payment method: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1631413861/42c3b13d7fc44a11a88ec2b9cd03/AD_4nXeMx8QXpeZZCkfAnVSwx8KZ9n4Vr2rvPdQddyE6ZNxch__F6ZqFs1G4ZmU52Wvb7gRlwRqquTLdw8IQv-gICDyP-MXqiQK_Oe7gX3SKsCKKt2IEpMx4qDeMeeZufMaJfv16XgOH5g?expires=1787157900&signature=b1d3dd20a54d836ad9dcfcef4a567c0bee0c004410604e80f77ff6bcd374d7a5&req=dSYkF81%2FnolZWPMW1HO4zf7%2BjEPv7Yf7n6MrEicvimC9BBNoZgo4%2BkRQkDnN%0AudVkjVuoYictP9zYeHk%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1631413861/42c3b13d7fc44a11a88ec2b9cd03/AD_4nXeMx8QXpeZZCkfAnVSwx8KZ9n4Vr2rvPdQddyE6ZNxch__F6ZqFs1G4ZmU52Wvb7gRlwRqquTLdw8IQv-gICDyP-MXqiQK_Oe7gX3SKsCKKt2IEpMx4qDeMeeZufMaJfv16XgOH5g?expires=1787193900&signature=3dcc40abdd7e993e326636bdfc8dc64b9ddbee1b2264d56873b426155ed763ca&req=dSYkF81%2FnolZWPMW1HO4zf7%2BjEPv4YP7n6MrEicvimDbHduYdhnOm6%2BBVKDL%0ArDFER%2FHHoW2aCE%2B99Fc%3D%0A) ## What happens if I click “Remind me later?” diff --git a/content/support/11869629-use-claude-with-android-apps.md b/content/support/11869629-use-claude-with-android-apps.md index 72eb9b553..93a9672c7 100644 --- a/content/support/11869629-use-claude-with-android-apps.md +++ b/content/support/11869629-use-claude-with-android-apps.md @@ -222,7 +222,7 @@ Permission requirements vary by feature: For features requiring permissions (like location or calendar access), Claude will request permission contextually with clear explanations of why the access is needed. You’ll be prompted to approve the action with three options: Allow once, Always allow, or Don't allow. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1707351614/ccb910e4b87b1e96ad9a11bbd835/b57b2130-d8d6-4499-89f6-6c12de236fd4?expires=1787157900&signature=af7ef0bde65143bee8220bc2bdce19b163ffba6cbb87a3a0d643ccf0ef7ab93b&req=dScnEcp7nIdeXfMW1HO4zQe5GliO3iL9S5x65TIld%2FAvnTjDueWiFuv1qPEz%0AT6Dw8aHri9d%2F96jpxxk%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1707351614/ccb910e4b87b1e96ad9a11bbd835/b57b2130-d8d6-4499-89f6-6c12de236fd4?expires=1787193900&signature=bac135985aa19f02afdd64c4d2c021d17067c739c9afb074913c7aabeeed2ad8&req=dScnEcp7nIdeXfMW1HO4zQe5GliO0ib9S5x65TIld%2FDp67AOPVYCmJszOEmn%0A6hkBZJXnO2sY5rxlt3c%3D%0A) These permissions can be managed at any time in your device settings by going to Settings > Apps > Claude > Permissions. Click into each permission listed under **Allowed** and **Not allowed** to make changes. You can toggle between “Allow only while using the app” or “Ask every time” to change Claude’s access, or remove permissions by choosing “Don’t allow.” Claude will only request permissions if needed for specific features, and you can always choose to decline while still using other capabilities. diff --git a/content/support/12005970-manage-usage-credits-for-team-and-seat-based-enterprise-plans.md b/content/support/12005970-manage-usage-credits-for-team-and-seat-based-enterprise-plans.md index 8028c230b..739cb231f 100644 --- a/content/support/12005970-manage-usage-credits-for-team-and-seat-based-enterprise-plans.md +++ b/content/support/12005970-manage-usage-credits-for-team-and-seat-based-enterprise-plans.md @@ -70,7 +70,7 @@ After navigating to **[Organization settings > Usage](https://claude.ai/admin-se The **Usage and spend limits** section will show the current limit (if any) or **Unlimited**. Clicking on "Adjust limit" opens a modal where you can either input an amount and click "Set spend limit," or click "Set to unlimited" to remove the organization-wide monthly spend limit. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149347604/936ac4eb025d3ef1f00c3b8a26b0/image.png?expires=1787157900&signature=541fc0e8630cb50ef2f0f1d7d189e3be0594042bd56c5bb0aba88789edc8787a&req=diEjH8p6modfXfMW1HO4zQHwg6bWkymv6DwhVVpk1mDmCNAiFygrgjdp1iMX%0Asdln%2BR58YMgDwUkLrPA%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149347604/936ac4eb025d3ef1f00c3b8a26b0/image.png?expires=1787193900&signature=dcfd9984bce548af806fb238c5687ec39ec069625625889e4c9bad034a01d7c6&req=diEjH8p6modfXfMW1HO4zQHwg6bWny2v6DwhVVpk1mByqGjtgIBHE84yurD%2B%0AukyAHdwOZ8xj4qp%2BE%2FQ%3D%0A) Changes to your organization’s overall spend limit go into effect immediately. @@ -78,11 +78,11 @@ Changes to your organization’s overall spend limit go into effect immediately. Owners and Primary Owners on **seat-based Enterprise plans only** can set spend limits that apply to all users within a specific seat tier. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149351600/c5b979c366ac2738f60ea84e85b3/CleanShot+2026-03-10+at+15_37_41%402x.png?expires=1787157900&signature=3516869aaed15f3333e3ad590e86c1b50009e757f89b16299b59ed381ef4a8db&req=diEjH8p7nIdfWfMW1HO4zYnqMIKVJneA0wfO62ivdG%2BpR%2FZV3TLk4HqaeypB%0A2uwGjVOrIVyZH9Iug6E%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149351600/c5b979c366ac2738f60ea84e85b3/CleanShot+2026-03-10+at+15_37_41%402x.png?expires=1787193900&signature=875036d0cd3bd2ce3d80c677c3cd2a6837d61bd3097df0330adc7023465e8c19&req=diEjH8p7nIdfWfMW1HO4zYnqMIKVKnOA0wfO62ivdG%2FqIv4XC51OkSuJ8Veu%0A6U51q5Fyjesg3DQ%2BOOY%3D%0A) Select the "By group" tab to see **Standard seats** and **Premium seats** groups. Click the "..." icon next to the current limit, then "Edit limit." This opens a modal where you can either select "Set dollar amount" and input an amount, or click "Unlimited" to remove the limit for that seat type. Click "Set limit" to save your changes. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149362056/44993661ca2db771fe924d0346f6/image.png?expires=1787157900&signature=c82f5f7db00a63b4f647b8c24803142c81d7ebfa6939c706c0dcc9800317b8c4&req=diEjH8p4n4FaX%2FMW1HO4zRzvvIIKdUpPq7nEDCGq9G5Z8MU2oS292yZ7SHap%0A62AJV5j2xLSzGvvXGlo%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149362056/44993661ca2db771fe924d0346f6/image.png?expires=1787193900&signature=1422a4d5f5b02e640ad3afd32e56353e141c6ca63e14146c95c02aeb922040b6&req=diEjH8p4n4FaX%2FMW1HO4zRzvvIIKeU5Pq7nEDCGq9G7X%2Bv14GRKezmzXCNcZ%0AQvveJApG0vzPWhNEROU%3D%0A) --- @@ -90,11 +90,11 @@ Select the "By group" tab to see **Standard seats** and **Premium seats** groups Owners and Primary Owners can also set individual monthly spend limits for each member by finding **Spend limits by user** and clicking the "..." button next to the user, then "Edit limit." -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149370853/db66f5cd03683b9cc119d0dcd6b8/image.png?expires=1787157900&signature=d049548eb7dbb42bcfa3dc295d73c719aa313f4761d67d178e815293995fcf0c&req=diEjH8p5nYlaWvMW1HO4zaPdGQBWUChPe9HwvwG7ubh6CJK1vlShEVYZs7eg%0AXDuGGkQJTA2MeEj40tM%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149370853/db66f5cd03683b9cc119d0dcd6b8/image.png?expires=1787193900&signature=7df362535fd31041247fc63e93676f57c05f93151723e6113051c640fe9bc209&req=diEjH8p5nYlaWvMW1HO4zaPdGQBWXCxPe9HwvwG7ubhPM5eQCe3FXWqhp9AC%0AfHKbgpH0rwZaWKQ7J70%3D%0A) Enter the amount and click "Set limit." Alternatively, selecting "Set to unlimited" will remove that member's monthly spend limit (they will still be subject to any organization or seat-level spend limits). -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149374028/97813fe3b515c2e839d8d92abd79/image.png?expires=1787157900&signature=99d8235056ecea4027ebe19f26df04f0290aace478365265786c30caa961b875&req=diEjH8p5mYFdUfMW1HO4zevsAvCLNuyDw6z2wGSwkbv0L98%2FyfFHZGqYJCwo%0AhUbutS2RYoSXz9Cf40E%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2149374028/97813fe3b515c2e839d8d92abd79/image.png?expires=1787193900&signature=d6449b38ac2c62936c42925c9f5836c1ecc9110f6645f5a40362336601a9c2d4&req=diEjH8p5mYFdUfMW1HO4zevsAvCLOuiDw6z2wGSwkbtzRePg%2Be%2BBminOvU%2Ba%0AHDAs7ZYMINCYQifqb90%3D%0A) This allows owners fine control over usage credits, so you can set limits for different members based on their roles or individual needs. Once a user reaches their defined spend limit, this will automatically pause their usage credits until the end of the month. They will need to wait for their usage limits to reset before using Claude again. diff --git a/content/support/12012173-get-started-with-claude-in-chrome.md b/content/support/12012173-get-started-with-claude-in-chrome.md index 35402952a..959f23f14 100644 --- a/content/support/12012173-get-started-with-claude-in-chrome.md +++ b/content/support/12012173-get-started-with-claude-in-chrome.md @@ -36,7 +36,7 @@ Follow these steps to enable the Claude in Chrome connector in your desktop app: 4. Toggle the connector on, then download and install the extension if you haven’t already. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2604933811/ae37c41fc808dbdf48d135338334/6cc9ba4b-9d31-43a2-ab80-8048b5f9d791?expires=1787157900&signature=517ecb3198ed527cb50ce537235a890637db1d0d619d4eadf2103d349442ecf0&req=diYnEsB9noleWPMW1HO4zUOPbPvHk%2BWEnt%2F2nPMwUPjokJI9663rekls8rlG%0AVjEguUM5DKZz1zTJXqc%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2604933811/ae37c41fc808dbdf48d135338334/6cc9ba4b-9d31-43a2-ab80-8048b5f9d791?expires=1787193900&signature=d2c68e2642a10213d6ab04d82fdf14841d70fc7dc99dfe4d84a1e349b162d915&req=diYnEsB9noleWPMW1HO4zUOPbPvHn%2BGEnt%2F2nPMwUPhnEAWInk%2Bj03W8LBfC%0ApC9wxPryGsPHc2NtB9M%3D%0A) Completing these steps will add Claude in Chrome to the “Connectors” drop-down on your chats with Claude. This is disabled by default, so you’ll need to enable it manually for each conversation. diff --git a/content/support/12083917-change-your-team-plan-from-monthly-to-annual-billing.md b/content/support/12083917-change-your-team-plan-from-monthly-to-annual-billing.md index 70b5e3e81..4b094fe7e 100644 --- a/content/support/12083917-change-your-team-plan-from-monthly-to-annual-billing.md +++ b/content/support/12083917-change-your-team-plan-from-monthly-to-annual-billing.md @@ -8,11 +8,11 @@ Owners and Primary Owners of Team plans with monthly subscriptions can switch fr 3. Or from /upgrade, click the “Switch to Annual plan” button: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1690325734/d47f714680d78408d6022d06b8d1/image.png?expires=1787238000&signature=fb87d4db2142c5d9f0a8527076f67a11042aa0c6979ee1e48890b8ff72a6219f&req=dSYuFsp8mIZcXfMW3Hu4gZzas%2FXtvj1RlWrRiVwqPzaTgZGL9bDfUy6KBB%2BX%0Aag%3D%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1690325734/d47f714680d78408d6022d06b8d1/image.png?expires=1787292000&signature=7f6e1f228230524c92ea7f8e25b506297c4197db93317b94c2e933ba5beece17&req=dSYuFsp8mIZcXfMW3Hu4gZzas%2FXtvj1bn2rRiVwqPzYPDsdBkHd9%2Bpq%2BLmeW%0Amw%3D%3D%0A) 4. The confirmation screen will display the total cost for your upgrade from monthly to annual billing: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1690326039/3a91cdc5fff57d188a18ecc6273f/image.png?expires=1787238000&signature=6ce8b724f48c3a73716dae865ca1d349e8c9ef420477cf15a99264e205d7bccf&req=dSYuFsp8m4FcUPMW3Hu4gbNj%2Bk78Ww%2Fig%2B5vzcg6znU57JmjMWR9shS4%2BnVQ%0AzQ%3D%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1690326039/3a91cdc5fff57d188a18ecc6273f/image.png?expires=1787292000&signature=8d48cb1e2e86a6111006423e5f96a54b9bd7aadef3f4426021ccaf1fbc01dd36&req=dSYuFsp8m4FcUPMW3Hu4gbNj%2Bk78Ww%2Foie5vzcg6znUTtFUDkEf90GTK%2FKts%0ATQ%3D%3D%0A) 5. Click “Confirm subscription.” diff --git a/content/support/12111783-create-and-edit-files-with-claude.md b/content/support/12111783-create-and-edit-files-with-claude.md index a39994b0b..2843cfac4 100644 --- a/content/support/12111783-create-and-edit-files-with-claude.md +++ b/content/support/12111783-create-and-edit-files-with-claude.md @@ -48,7 +48,7 @@ These capabilities make it easy to produce professional documents by simply chat To give Claude access to external data sources, toggle **Allow network egress** on: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2054774005/25bcfffba6c249cd128d6c3f6d52/CleanShot+2026-02-11+at+16_34_47%402x.png?expires=1787157900&signature=e37f91277c1201ecf31445ffab3edb6fa5378a45a5f3190959b50c1d81d2d9a4&req=diAiEs55mYFfXPMW1HO4zYFJywpECZ7HPQVowIiib2kBZBzbWK6n9ESyRe8I%0AMBAOgxnnwx2mtGWaTx0%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2054774005/25bcfffba6c249cd128d6c3f6d52/CleanShot+2026-02-11+at+16_34_47%402x.png?expires=1787193900&signature=b9f9adfc27ca79d72a33d7eb9c6a575501a2ed783bca88daf0c2a411a8c5689e&req=diAiEs55mYFfXPMW1HO4zYFJywpEBZrHPQVowIiib2myVicK%2BMZDVVpiAfSn%0AXxdPf5nsnfL5Z1RVqWs%3D%0A) ### Enabling on Claude Mobile @@ -66,11 +66,11 @@ Team and Enterprise organization owners can control network access settings in * - **Allow network egress to package managers and specific domains:** Claude can access package managers plus additional domains you specify. Add domains individually to whitelist specific resources your organization needs: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1789945362/ad72504d5429960f369b8b91b43c/86f06c0e-6eaa-4574-a4cb-2c38b273613a?expires=1787157900&signature=1da0d2b6cb78cf15cb3477c5b5c6b77e3f683d16b14fd4a058918817559cfd25&req=dScvH8B6mIJZW%2FMW1HO4zXJcBmpCkC5CpMW6Iph6YZfeRMWyWqWmer%2FO68iX%0AN9RCs2nzpMms92mzOdI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1789945362/ad72504d5429960f369b8b91b43c/86f06c0e-6eaa-4574-a4cb-2c38b273613a?expires=1787193900&signature=f1a3b1ab4b4f151754165d1d6edb5f91afd56c1ef24e80cb83996e3269fa7ca9&req=dScvH8B6mIJZW%2FMW1HO4zXJcBmpCnCpCpMW6Iph6YZduZFoO2L4xFGh%2B1p3N%0A%2BD9QWovYjbmXLj5eR9o%3D%0A) **All domains:** Claude has full internet access except for domains on Anthropic's legal blocklist. While this provides maximum flexibility for file creation and analysis tasks, it’s also the riskiest option. Please review the **[security considerations below](#h_0ee9d698a1)** before enabling “All domains”: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1789945361/e3188cb8edb9ca7c303615da6378/f1c99a7d-5956-48d5-9ec7-b7ae6c8c3d28?expires=1787157900&signature=17310e5bb711a3e0228e19444609d1032e8d3e9d1859071ecbd6a1598e241687&req=dScvH8B6mIJZWPMW1HO4zdnseBOT6zirqgKIA6CM1tq%2Fc%2F7Vuc2zAt8vhlfD%0AqOYbHbINhIQElnmWR0M%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1789945361/e3188cb8edb9ca7c303615da6378/f1c99a7d-5956-48d5-9ec7-b7ae6c8c3d28?expires=1787193900&signature=48807d86cfd4b9d12545471f30ddc3446c72a5917e9f27e05f2771afe6562ad4&req=dScvH8B6mIJZWPMW1HO4zdnseBOT5zyrqgKIA6CM1tpFOGHb5y0%2B6cmeTzOa%0AEO1GC0q%2BDOSlmJOXTiQ%3D%0A) --- diff --git a/content/support/12157520-claude-code-usage-analytics.md b/content/support/12157520-claude-code-usage-analytics.md index 7bf4aab31..bfae999a9 100644 --- a/content/support/12157520-claude-code-usage-analytics.md +++ b/content/support/12157520-claude-code-usage-analytics.md @@ -50,7 +50,7 @@ The **Usage** tab displays the following metrics for your organization. Data on - **Top commands**: The Claude Code commands used most often across your organization. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1717579277/46c512f4b3ed05c359cecd78ed5c/e0ce2c19-39e2-411f-9a1f-cb1d46439a42?expires=1787157900&signature=b053df339bd61dedefc192d45fcd8b098be2e3ace2bd231ec0efd0cdf3c2062c&req=dScmEcx5lINYXvMW1HO4zfiEP6FRin7HCX9h5MbdDjOLXLkElU%2F9zlJqjP2a%0AwiyIN3QLK2ApUCu8eSo%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1717579277/46c512f4b3ed05c359cecd78ed5c/e0ce2c19-39e2-411f-9a1f-cb1d46439a42?expires=1787193900&signature=d1ca83160960a38a800632e89bfd0a47f533b043c458a4e4ff9c7f4d565771c3&req=dScmEcx5lINYXvMW1HO4zfiEP6FRhnrHCX9h5MbdDjMqZTsfM26pqJhFbJa2%0AKJMeKl9fRvgZ%2B0A5ELk%3D%0A) ### User-level metrics diff --git a/content/support/12260368-use-incognito-chats.md b/content/support/12260368-use-incognito-chats.md index 455b2ff9e..1a6a02009 100644 --- a/content/support/12260368-use-incognito-chats.md +++ b/content/support/12260368-use-incognito-chats.md @@ -30,7 +30,7 @@ Incognito chats are temporary conversations that aren't saved to your chat histo When starting a new chat with Claude outside of a project, you'll see a ghost icon in the upper right corner of your screen: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1719768744/c7a2fa56cf284e48472f3b9c4dbf/030563f8-9f97-4891-a749-9ae95968a063?expires=1787157900&signature=438ac5a627943278cf62ac9a74a004b27aa08bd9ff2979bee9751ec05d61f573&req=dScmH854lYZbXfMW1HO4zeUcuwW8a%2BKCDCAt3Cx%2FSO1JHWjEAeXyAhILZkBu%0AARlD%2Fgo%2BEb2XMthz3QM%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1719768744/c7a2fa56cf284e48472f3b9c4dbf/030563f8-9f97-4891-a749-9ae95968a063?expires=1787193900&signature=764e47ebb4e809f6b55eaf4e59bce4a7361d2de8c3fbc45665ec7a3f3aa81206&req=dScmH854lYZbXfMW1HO4zeUcuwW8Z%2BaCDCAt3Cx%2FSO0WOG023fYDx0jdCOCY%0Ag9gpT2EBaNNYF%2Bb8kyM%3D%0A) 1. Click the ghost icon to enable incognito mode. diff --git a/content/support/12293051-use-claude-in-xcode.md b/content/support/12293051-use-claude-in-xcode.md index c996e716b..cdf3d2248 100644 --- a/content/support/12293051-use-claude-in-xcode.md +++ b/content/support/12293051-use-claude-in-xcode.md @@ -34,7 +34,7 @@ To start using Claude in Xcode: 3. Log in with your Claude account. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1727371585/b18ca03a6357c52d12d10386f28e/dab2dcb2-f670-4173-b77d-38767a34cec1?expires=1787157900&signature=5d558cd8018a0041fef5f9e377f9fb487cca90d5fc189f23ac532842bd54f3ab&req=dSclEcp5nIRXXPMW1HO4zUAXI8sDV6%2FdFalhp3bugHKRLRU729%2FaCbwsN9rq%0AD0JDO3beq8SJZtT%2B5gI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1727371585/b18ca03a6357c52d12d10386f28e/dab2dcb2-f670-4173-b77d-38767a34cec1?expires=1787193900&signature=c258df6e42443512e29e182da8bcea919292bc8260e5072597fcd3b37f300136&req=dSclEcp5nIRXXPMW1HO4zUAXI8sDW6vdFalhp3bugHIk4kWepLMKzo2zdLYK%0AG%2BisuVbpDVAca2k2Oqo%3D%0A) ## Usage limits diff --git a/content/support/12429409-manage-usage-credits-for-paid-claude-plans.md b/content/support/12429409-manage-usage-credits-for-paid-claude-plans.md index 9f4d4c93c..0cd8e6bbe 100644 --- a/content/support/12429409-manage-usage-credits-for-paid-claude-plans.md +++ b/content/support/12429409-manage-usage-credits-for-paid-claude-plans.md @@ -46,7 +46,7 @@ To enable usage credits on your paid Claude plan: 8. You can also enable auto-reload to automatically make a purchase when your balance falls below a threshold you set: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1805819785/5e203c38e6ba3f76bfd1dab0d5ce/fe062e7c-18cb-48cc-a7e2-754ac6e6c4be?expires=1787157900&signature=bec3afd1d9eee2e0f0206e90dbd65291dc8350a072105b351d19b6e24431aa29&req=dSgnE8F%2FlIZXXPMW1HO4zYj2ARWYoPcxopE7m38YdfdO0s73pMfb%2BmRCNbc4%0AyPB0tywB02KH68uU2gw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1805819785/5e203c38e6ba3f76bfd1dab0d5ce/fe062e7c-18cb-48cc-a7e2-754ac6e6c4be?expires=1787193000&signature=1def586d9273db428453f8b93d20063406bd71e5b5165b40b6a305a452207887&req=dSgnE8F%2FlIZXXPMW1HO4zYj2ARWYrPM4opE7m38YdfeQZ%2FSNRbfRTJa0Ndbm%0AWg9NPJDrcApk7mLyCUY%3D%0A) **Note:** There is a daily redemption limit of $2000. diff --git a/content/support/12466728-troubleshoot-claude-error-messages.md b/content/support/12466728-troubleshoot-claude-error-messages.md index 037495d62..fd48c64db 100644 --- a/content/support/12466728-troubleshoot-claude-error-messages.md +++ b/content/support/12466728-troubleshoot-claude-error-messages.md @@ -58,4 +58,4 @@ Capacity issues will not appear on our status page because they represent normal Service incidents are disruptions where Claude is unavailable or significantly degraded for all or most users. These represent actual technical problems with our systems. To check for confirmed incidents, visit status.claude.com, where you'll find real-time updates on scope, impact, and resolution progress for any active incidents. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1753796247/e6a8c6ef8653b229c5758e881242/c2fc6fc0-d163-4119-93e0-394104d86bc9?expires=1787157900&signature=0df3b06007d0c947061cb96a34a3b86fe7306fddbe826bd96cf7410c62feab10&req=dSciFc53m4NbXvMW1HO4za4BXqgi17XN7y68oYp%2BYg9e%2BY%2FhM519NRQsCpRq%0AKMjE2N3shXX6zfsBBEk%3D%0A) \ No newline at end of file +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1753796247/e6a8c6ef8653b229c5758e881242/c2fc6fc0-d163-4119-93e0-394104d86bc9?expires=1787193900&signature=3a935715a8a70aafccd53519847ea2d90d12906d2207e61ad3a2fe00255a9dd8&req=dSciFc53m4NbXvMW1HO4za4BXqgi27HN7y68oYp%2BYg9c0kW%2F0D8MvEpbFA%2B7%0AFuQvGldu%2Flg5fDtcq34%3D%0A) \ No newline at end of file diff --git a/content/support/12512180-use-skills-in-claude.md b/content/support/12512180-use-skills-in-claude.md index d57045f75..b42e53c72 100644 --- a/content/support/12512180-use-skills-in-claude.md +++ b/content/support/12512180-use-skills-in-claude.md @@ -166,7 +166,7 @@ To remove a custom skill you've uploaded: 4. To delete the custom skill entirely, click the "..." button next to the toggle, then select "Delete": - ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2105391273/8359cbf8be20dce0f1cd3fd40e6f/CleanShot-2B2026-02-25-2Bat-2B15_50_16.png?expires=1787157900&signature=5b638bcf0b3a724d1fed5277f0457de7a58df1ca8cdf2b5842f8add7a849178f&req=diEnE8p3nINYWvMW1HO4zSOgDywpx%2BGkH%2BdCnFXB0ug2e9Bsv9dP8mCnBpPE%0AqKwi%0A) + ![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2105391273/8359cbf8be20dce0f1cd3fd40e6f/CleanShot-2B2026-02-25-2Bat-2B15_50_16.png?expires=1787193900&signature=45d9469ce1adaa0306b950c4b363dc8c82083b94a6dfda653d9d634ff4628241&req=diEnE8p3nINYWvMW1HO4zSOgDywpy%2BWkH%2BdCnFXB0ug112MiNVHWhAkf5uAx%0AV6uS%0A) 5. Click "Delete" in the confirmation prompt. diff --git a/content/support/12592343-enabling-and-using-the-desktop-extension-allowlist.md b/content/support/12592343-enabling-and-using-the-desktop-extension-allowlist.md index 6460727a9..7fe46a8a5 100644 --- a/content/support/12592343-enabling-and-using-the-desktop-extension-allowlist.md +++ b/content/support/12592343-enabling-and-using-the-desktop-extension-allowlist.md @@ -20,11 +20,11 @@ The desktop extension allowlist is disabled by default, so an organization Owner 4. Switch to the "Desktop" tab: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1781755172/63c92550571842577ad435860ec5/6f5cc4e1-ff7d-48de-863a-c4e6184d4605?expires=1787157900&signature=90c7119d2340b29ec048f9e3fba6144d7a4a6a0c6fa1d5f12b0214309b74c60e&req=dScvF857mIBYW%2FMW1HO4zQ9pXU0L%2BnfS0ugSQm1MFW%2BIc4HPO%2BBKite2cejV%0Apqoa%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1781755172/63c92550571842577ad435860ec5/6f5cc4e1-ff7d-48de-863a-c4e6184d4605?expires=1787193900&signature=217493ca8e33c971b2ffd6398e5f7c4285758b5e2b25810fd9d35be65256b7fc&req=dScvF857mIBYW%2FMW1HO4zQ9pXU0L9nPS0ugSQm1MFW%2F9JHzMzwKcSzyu7pZA%0A5%2B5S%0A) 5. Toggle **Allowlist** on: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1781755578/a6bafff5f084dc86ae463703fd3d/6cf0ee18-4e71-4129-98e8-cc08174e3c3a?expires=1787157900&signature=ed5f81fdc7e021c49d1e32e67b90af55be835b112029cb6ce9377eb1c9e73f8b&req=dScvF857mIRYUfMW1HO4zaj0BHYqTKANTAorLxpdoc949JdqgRDaApQ6N5pt%0A4k8I%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1781755578/a6bafff5f084dc86ae463703fd3d/6cf0ee18-4e71-4129-98e8-cc08174e3c3a?expires=1787193900&signature=2b4a11268da4ea6ee7e91ca64534be27418d593198d2c5f940e58cdc3c328827&req=dScvF857mIRYUfMW1HO4zaj0BHYqQKQNTAorLxpdoc%2Bc9zv4RVdFke%2FFAtXK%0AOZ3m%0A) ## What happens after enabling the allowlist? @@ -42,7 +42,7 @@ Consider completing the allowlist setup during off-hours to minimize disruption **Important:** The allowlist requires Claude Desktop version 0.13.91 or higher, so users should update the desktop app by clicking “Claude”, then either “Check for updates” or “Restart to update to Claude 0.13.91”: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1781756960/ad18af50c83d35f2673656c23e00/a7ee450f-0c7d-42d6-a75f-fb1bc088cb52?expires=1787157900&signature=ddb1e018bb111c9c2d978b88c5312edf4bc6af6a3585090d08e1d93abfd9a18b&req=dScvF857m4hZWfMW1HO4zYUJqYSrDzXiCEDZ5AdBjIbNMFoQMKWJbmVQ2dBN%0AbOPxiJQ3%2BvR3uqm3u04%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1781756960/ad18af50c83d35f2673656c23e00/a7ee450f-0c7d-42d6-a75f-fb1bc088cb52?expires=1787193900&signature=b487e4a06e083eeab3024c14d9cacf7baf1d55ef0dba32869ed5b9db2282cc8d&req=dScvF857m4hZWfMW1HO4zYUJqYSrAzHiCEDZ5AdBjIaKxr934ITbpC7c0Pr8%0Az61r9jl7O8%2FcP%2BXeOOg%3D%0A) ## Managing allowed extensions @@ -60,7 +60,7 @@ After enabling the allowlist, you can choose which extensions to allow: If you want to remove an extension from the allowlist, click the “...” button and “Remove from allowlist.” -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1781751250/6558c0f59aea7976bd44b0213d76/e750f02b-cd0d-437e-a83f-9ac362cdf456?expires=1787157900&signature=e3eaa0562a0630188626793663185b0192945e8f88bae6cc19bab8c46518dc4c&req=dScvF857nINaWfMW1HO4zTrxBa8o%2BlCcqXridZhfx1JEG7eACsNzDK%2BpzD%2Bk%0At4NKs4nTfznqRnQNFWI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1781751250/6558c0f59aea7976bd44b0213d76/e750f02b-cd0d-437e-a83f-9ac362cdf456?expires=1787193900&signature=5670729434b12d2f92cddb63676269178234675f1931ed9e0aa2ec8049630726&req=dScvF857nINaWfMW1HO4zTrxBa8o9lScqXridZhfx1IMsDr55yIWVE6GQQA5%0AEWQISVVDe2ml%2BPPSI90%3D%0A) ## Uploading custom extensions diff --git a/content/support/12618689-claude-code-on-the-web.md b/content/support/12618689-claude-code-on-the-web.md index 553190217..884316124 100644 --- a/content/support/12618689-claude-code-on-the-web.md +++ b/content/support/12618689-claude-code-on-the-web.md @@ -10,7 +10,7 @@ This feature works with repositories you may not have on your local machine. You Claude Code for web enables asynchronous development workflows. With Claude Code in your terminal or editor, you typically work synchronously: you make a request, wait for Claude to respond, review the changes, then make another request. Synchronous work like this gives you fine-grained control but requires your attention throughout the process. Claude Code on the web handles this differently: you can assign a larger task, let Claude work independently, and return later to review the completed work. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1786446157/07ec74cd46317f8278083a317841/6448f3ee-c6df-4417-8a13-90d8c2ca3d55?expires=1787157900&signature=29c3e11c04369b44ae5575ae0ebb1aaafbc5c95ad1f7df3a862d906df34b782b&req=dScvEM16m4BaXvMW1HO4zR8%2BAFSBR5p%2F7XrRA1YwWGuGQoD2uvaSw9xLbcoK%0AnVDo21ENS64cHYNXG8A%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1786446157/07ec74cd46317f8278083a317841/6448f3ee-c6df-4417-8a13-90d8c2ca3d55?expires=1787193900&signature=8ad201b44709a9057cdb0015881f10abbc740772a605b54dcda8509ab7cd7c20&req=dScvEM16m4BaXvMW1HO4zR8%2BAFSBS55%2F7XrRA1YwWGuHKNjV8kNzHiKZDJ8w%0Au2SdKjcaJfTmYX1E3kk%3D%0A) You can also run multiple tasks in parallel. Since each task runs in its own isolated environment, you can have Claude working on several different issues or repositories simultaneously. Each task proceeds independently and creates its own pull request when complete. More than one task can work on the same repository at the same time. @@ -18,13 +18,13 @@ You can also run multiple tasks in parallel. Since each task runs in its own iso When you start a task, Claude Code on the web creates an isolated virtual machine for your work. Your GitHub repository is cloned into this environment, which comes pre-configured with common development tools and language ecosystems. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1786446158/c092f1383826cb871493f74169d4/97b7cb98-5da2-438e-a920-e170b8b9790e?expires=1787157900&signature=ffeb5e8e2127fbc189081724f9e3cc3f227a6a32104135aeb67b45a8bd6a4b0d&req=dScvEM16m4BaUfMW1HO4zcR0rZE1iu7J7DtpMiX%2FBYkDg%2BuLY8pBTy%2Fzmh1Z%0AD62zrl3z0LnMXh1SaYY%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1786446158/c092f1383826cb871493f74169d4/97b7cb98-5da2-438e-a920-e170b8b9790e?expires=1787193900&signature=64bffa2030f8f2ba915aa5a7b442a210b513c4aaaf46900e899684b35bb8854b&req=dScvEM16m4BaUfMW1HO4zcR0rZE1hurJ7DtpMiX%2FBYmVD6Qc3qt0J301qeih%0AWcId9kAkZzLp5wFYXTQ%3D%0A) Claude prepares the environment by running any setup commands you've defined in your repository's configuration. This includes installing dependencies, setting up databases, or running other initialization steps your project needs. If your task requires network access, maybe to install packages or fetch data, you can configure the level of internet access the environment has. Once the environment is ready, Claude begins working on your task. Claude reads your code, makes changes, writes tests, and runs commands to verify the work. You can monitor progress and provide guidance through the web interface if needed. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1786446156/83ecf0a5b98eddc9ffc9694c50f7/353589ce-b678-441d-8909-71b45fa2d065?expires=1787157900&signature=d17553fbfacebfb192a16c2ec75b8ee96dd19f54a2c95965cfefd1299a2a7401&req=dScvEM16m4BaX%2FMW1HO4zVbcTGSC5sPHUQl3YqgIJdbAK6GlW3L6M03kt1tj%0ANGM9rQ0REEUnbKANHxk%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1786446156/83ecf0a5b98eddc9ffc9694c50f7/353589ce-b678-441d-8909-71b45fa2d065?expires=1787193900&signature=50528cb009d89719a210e0b4c1100e086bf6392739e2bfcbc93353afd80171ee&req=dScvEM16m4BaX%2FMW1HO4zVbcTGSC6sfHUQl3YqgIJdZNg0fl%2F9QXEjO8%2F%2Bz0%0A%2Bl3JKdx8nj5%2FIt2eG2s%3D%0A) When Claude completes the task, it pushes the changes to a new branch in your GitHub repository. You receive a notification and can review the changes, then create a pull request directly from the interface. The pull request includes all of Claude's work, ready for your review and any additional changes you want to make. diff --git a/content/support/12626668-use-quick-entry-with-claude-desktop-on-mac.md b/content/support/12626668-use-quick-entry-with-claude-desktop-on-mac.md index fa9cd7ce4..904fa5933 100644 --- a/content/support/12626668-use-quick-entry-with-claude-desktop-on-mac.md +++ b/content/support/12626668-use-quick-entry-with-claude-desktop-on-mac.md @@ -40,7 +40,7 @@ When you first open the updated version of Claude Desktop, you'll see a prompt t Once enabled, double-tapping Option will open a text box where you can type your message and start a new chat. You can also click "New chat" to see your five most recent conversations. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1893088365/2ca4b782dda90abea1fe5f4150af/CleanShot+2025-12-18+at+13_14_30%402x.png?expires=1787157900&signature=f2b39e56e4a47f60532ca59c011b9e2b79fca96f797b48fbf0ee41df440cb5fc&req=dSguFcl2lYJZXPMW1HO4zWggD9lQo5uTRC8c%2FcM5c2JPM7oIO8fA1%2B65NWVR%0A9rH%2BPY6DRc9NjXstJsY%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1893088365/2ca4b782dda90abea1fe5f4150af/CleanShot+2025-12-18+at+13_14_30%402x.png?expires=1787193900&signature=7e4f97df2b6ee6301aedb99b970dffe10f411eafbb42acef7f3b1ad88548fb0e&req=dSguFcl2lYJZXPMW1HO4zWggD9lQr5%2BTRC8c%2FcM5c2LQlt85jSJ9LCi3ycMu%0A3deSjGtZ6jP8z7jgn%2Bs%3D%0A) ### Enable the voice shortcut (optional) diff --git a/content/support/12883420-view-usage-analytics-for-team-and-enterprise-plans.md b/content/support/12883420-view-usage-analytics-for-team-and-enterprise-plans.md index 9a516ebf1..d3a755f60 100644 --- a/content/support/12883420-view-usage-analytics-for-team-and-enterprise-plans.md +++ b/content/support/12883420-view-usage-analytics-for-team-and-enterprise-plans.md @@ -22,7 +22,7 @@ This page includes the following analytics: - Sessions in Cowork -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2515895966/9f231a620f47d49e0ee648152189/848c1787-4eaa-4809-8fd2-1dbe2722560f?expires=1787157900&signature=92e8c5d433d76e5545398b7c104fe883b7164e476efd0b0e1bcdcecb7c250603&req=diUmE8F3mIhZX%2FMW1HO4zZL6waFznoJ4ExEG4dCAGDbm3kXnwjXBM5408Gia%0A4tGQ148gctZNBCSZZY4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2515895966/9f231a620f47d49e0ee648152189/848c1787-4eaa-4809-8fd2-1dbe2722560f?expires=1787193900&signature=973a3c9cb617096a64a0de7710bd0d62cfc75945629cf9c742d6f87964b492d8&req=diUmE8F3mIhZX%2FMW1HO4zZL6waFzkoZ4ExEG4dCAGDZE9DveJ5SQsxeMTY%2Bi%0AR1Bo6KUd54jszp76Hgw%3D%0A) ### Who’s using Claude? @@ -34,7 +34,7 @@ This page includes the following analytics: Use the dropdown on the **Active members and assigned seats** chart to filter by product, including Claude Design. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2515896351/4d955858e6662c37489cc1470871/457cf159-8c2a-4403-ba22-cb92cb47e459?expires=1787157900&signature=fd396f869784de96dd925b05a16af3380e961788e0b941c4b7502e474cd1a59f&req=diUmE8F3m4JaWPMW1HO4zYEqejCoR5emYqPRsgaNdTzuzJ1tm8QzYWTnXfx9%0AugQC3nFAN6Yt8IKbjiU%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2515896351/4d955858e6662c37489cc1470871/457cf159-8c2a-4403-ba22-cb92cb47e459?expires=1787193900&signature=e53c6f42d2f1cb8aa3f26fe777cf74946c678fa78054a23a1bec1697d3b40c6a&req=diUmE8F3m4JaWPMW1HO4zYEqejCoS5OmYqPRsgaNdTwf2ZgD8rf6cSiwu49k%0AMrbVBc4mzYdAEXxBn4k%3D%0A) ### How are they using Claude? @@ -48,9 +48,9 @@ Use the dropdown on the **Active members and assigned seats** chart to filter by - How agentic is their work? (beta) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2583875713/e3cb3c329f3b643cb9a3809876b3/image.png?expires=1787157900&signature=af3e24484d5131bfe2ee248e455bccc42f2b06e92903eddca2bf1e3133d491da&req=diUvFcF5mIZeWvMW1HO4zciS3a%2Fon7liDFD6TO7tG4gBBBh5HZq7kZ4j64EY%0A8wamekr5g5qR6ofzupg%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2583875713/e3cb3c329f3b643cb9a3809876b3/image.png?expires=1787193900&signature=23cdbf26034098a70cf8a75eacae3a7388d1a0bb5f3e24591fd8b68dc4b4b461&req=diUvFcF5mIZeWvMW1HO4zciS3a%2Fok71iDFD6TO7tG4honrE8tfTDYpHEbumB%0A%2F2%2FmUrS4HaZkINEQfT8%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2515896563/abf008596ce5501297a609696362/fce5423c-4769-4b73-9a0a-c50f6407ebea?expires=1787157900&signature=dd08f6c6e540ecab309130290873a51af5bf0c81bc7b851993c1951d18070dff&req=diUmE8F3m4RZWvMW1HO4zR%2BIDoBvuPD%2BLS3kobW3ZgTBhHf9NaWQueBo7Llw%0AMSFXYGjmYr191gired8%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2515896563/abf008596ce5501297a609696362/fce5423c-4769-4b73-9a0a-c50f6407ebea?expires=1787193900&signature=5bca988cebc279d26dab5f66b9c8e486f16f901e2c62c720c794e60dc05ec6d3&req=diUmE8F3m4RZWvMW1HO4zR%2BIDoBvtPT%2BLS3kobW3ZgTGqH1Dv%2FZ6tBMubnfB%0A8ySa4zEMIkX511fJXt4%3D%0A) ### What are the results? @@ -66,7 +66,7 @@ Use the dropdown on the **Active members and assigned seats** chart to filter by - Estimated time saved -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2515896943/dd415f03afe56ca38308ef987f86/189e8ebc-5594-4f4b-bd84-e3c11c824d5b?expires=1787157900&signature=2d64aca53de9c41fab94f807afac226492678d37f73618138058489af154d7b9&req=diUmE8F3m4hbWvMW1HO4zfJThCM%2BrNtPiovaLYNN7Rn49u4ZcK6KYa%2F8QFTU%0Al%2Ffkte5zQ9ecLKE2R6M%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2515896943/dd415f03afe56ca38308ef987f86/189e8ebc-5594-4f4b-bd84-e3c11c824d5b?expires=1787193900&signature=25841aa4c015471edd3387721eb706d4250105d4f6d19ea46ed2edd35d83b091&req=diUmE8F3m4hbWvMW1HO4zfJThCM%2BoN9PiovaLYNN7Rmz3XMXAkBZ1eNAulxC%0Auu%2FMTD5BSI4viiknP5U%3D%0A) ### How much is Claude costing? @@ -82,9 +82,9 @@ This section includes the following analytics: - Spend by model (month-to-date, quarter-to-date, year-to-date, 1 year) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2515896942/b403f2d216fc40b5195911020b8e/446b99f1-3187-4b79-b2be-9f17b1632ff8?expires=1787157900&signature=c3826574d6f889436be49ce8bd7fa046f84941192e2cf2f3aa6fa4a3b4702519&req=diUmE8F3m4hbW%2FMW1HO4zYE%2BQ9kD6TbUWbBLGZ4vBJXUhB7FBd7LTtNkTeGV%0AzlQWUNp171%2F%2B35fzO4w%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2515896942/b403f2d216fc40b5195911020b8e/446b99f1-3187-4b79-b2be-9f17b1632ff8?expires=1787193900&signature=2e34aa93c0e4c0b285b3e696c3df990e3e7fb27f8070130b19352120676163e7&req=diUmE8F3m4hbW%2FMW1HO4zYE%2BQ9kD5TLUWbBLGZ4vBJUkhN1wroovQ0A9vZj%2F%0AJNoEWeWgD7MnJmWP200%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2515896941/2239ce38639df339b24d5af1cb50/f829bc2a-ee52-4135-9b13-09ef1b7d66d6?expires=1787157900&signature=6051cdb1d89e82263bc8f8b3399718b7bb9757adfbbad5c0b17f7a28ccfd45e1&req=diUmE8F3m4hbWPMW1HO4zTz0Nu0DIs5ZC%2BtvTPa1I7F3sz0g0oPF9%2BWr2Fid%0AHJJDvtbXh0vKq41w4uo%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2515896941/2239ce38639df339b24d5af1cb50/f829bc2a-ee52-4135-9b13-09ef1b7d66d6?expires=1787193900&signature=c9d936464461276269534c12eb440d9569d2af9df1cd2393211ce5522bafd6a9&req=diUmE8F3m4hbWPMW1HO4zTz0Nu0DLspZC%2BtvTPa1I7Fp%2Fb8IDr7gtQzPFJ00%0AfwTxHMC51pj%2B9ao5OIc%3D%0A) ## Export a spend report @@ -160,7 +160,7 @@ Navigate to **[Analytics > Claude Chat](https://claude.ai/analytics/usage)** to - Top members by chats -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2515898793/405db0c492da11886c28a2b82731/71a55afc-1cef-4c50-b7e1-86775cb9a168?expires=1787157900&signature=d6ba31d0ecf658f6e39f1e4382683339d621690353455a49f1b745a73a4a5c44&req=diUmE8F3lYZWWvMW1HO4zbhc8fqdZOMoTcfMEUwBBiVPwHWkraHViVUx5Ji%2F%0AK4%2B7x8nr%2Bu7Ca3xAsyI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2515898793/405db0c492da11886c28a2b82731/71a55afc-1cef-4c50-b7e1-86775cb9a168?expires=1787193900&signature=5afaeb5cb5d1d6e616637680fe31c14978acf206c5ab102e91148d23ee44588d&req=diUmE8F3lYZWWvMW1HO4zbhc8fqdaOcoTcfMEUwBBiUYMaMX2Cl%2B0GIDAk37%0AOzl%2F07uxSGFmiyZXvWY%3D%0A) ### Projects @@ -172,7 +172,7 @@ Navigate to **[Analytics > Claude Chat](https://claude.ai/analytics/usage)** to - Top members by project usage -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2515899610/91d93108f0767e795fb9e488e882/71607d6d-dff1-4a13-a445-aa1d79850eed?expires=1787157900&signature=f6682fbd54042dd0b801499ca22db0a6064ecc24637784f0f52f0d11e54142e1&req=diUmE8F3lIdeWfMW1HO4zWhGoTuYniSrExu5cYiHHN8ezlMFdtV32hgrIeP2%0AQl4Sl75ZRFPSqSfmmE4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2515899610/91d93108f0767e795fb9e488e882/71607d6d-dff1-4a13-a445-aa1d79850eed?expires=1787193900&signature=56b22ce5ff128df555fd27720b42b7eb6917ce0d12e18c535d7921ba570b72f1&req=diUmE8F3lIdeWfMW1HO4zWhGoTuYkiCrExu5cYiHHN%2BIwHA1Wi8RI7QeGnVz%0AKHk%2FfgLd7dM19CSc6x0%3D%0A) ### Artifacts @@ -182,7 +182,7 @@ Navigate to **[Analytics > Claude Chat](https://claude.ai/analytics/usage)** to - Top 10 users by artifacts generated (month-to-date, quarter-to-date, year-to-date, 1 year) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2515899838/33d737f2357d6e485704669962ae/43faadc3-47da-4a93-bbb7-47a7983e7441?expires=1787157900&signature=fe62db8923ea104438da2c6d95eef00a01ab434242f7ea7789e5054a44776d5a&req=diUmE8F3lIlcUfMW1HO4zcSk4r3Te%2BnJjHDogqK0V%2ByNTN6sQz%2BWYrKtO0pP%0A5XjXFuQ%2FnqFxG7wblOQ%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2515899838/33d737f2357d6e485704669962ae/43faadc3-47da-4a93-bbb7-47a7983e7441?expires=1787193900&signature=14d796435e5c2c7c8f404252580d93b60ca5ed7ccf0048844876d1aabe9b15db&req=diUmE8F3lIlcUfMW1HO4zcSk4r3Td%2B3JjHDogqK0V%2BwmM8uvzbqIU7XEsSZd%0A5o6ul3CJwwjR5638SeM%3D%0A) --- @@ -278,7 +278,7 @@ Navigate to **[Analytics > Cowork](https://claude.ai/analytics/cowork)** to view - Daily, weekly, and monthly active Cowork users -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2515901489/8005693d55b7fefbfe9233258d39/106c22a0-3f47-47a6-abbd-4788dd70f218?expires=1787157900&signature=ac4c268c726ceefa93ca2e21498dd96c41a181279502224df37ce4edbc2a71ae&req=diUmE8B%2BnIVXUPMW1HO4zX7WEo%2BwWEahFSi1Z3SzLLsG00sGLslmlaexnux9%0APxsqw%2FMmEcHTuYEebDE%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2515901489/8005693d55b7fefbfe9233258d39/106c22a0-3f47-47a6-abbd-4788dd70f218?expires=1787193900&signature=b7d499defd7ce1aa7bb1fbc1caaef58e9f7aaace7504146ac8342e76bf6d0f2e&req=diUmE8B%2BnIVXUPMW1HO4zX7WEo%2BwVEKhFSi1Z3SzLLukLC%2BIROy0FrEVE5X2%0AGYUO8CJmUYj8WQeoUD0%3D%0A) **Note:** Cowork analytics are available alongside Chat and Claude Code data in the **[Analytics API](https://platform.claude.com/docs/en/manage-claude/analytics-api)**. @@ -288,7 +288,7 @@ Navigate to **[Analytics > Cowork](https://claude.ai/analytics/cowork)** to view When your admin turns on individual usage analytics, any member of the organization can see their own usage broken down by product, model, and skill, along with where they stand against any spend limits set for them. Individual usage analytics are available in **[Settings > Usage](https://claude.ai/settings/usage)**. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2533906328/1f5cd0a57def40676410f8f379b4/member-usage-30d-model.png?expires=1787157900&signature=aeb4074dcfbe4fdc24b2955837c2d951c79536400188d690ddbe0144d7e5cf85&req=diUkFcB%2Bm4JdUfMW1HO4zfveB6jEeezTWGUKUw6QS4%2BU0GC10HMET6lD6Lpp%0AO%2BNnwVWXl%2FUmmpWt6Do%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2533906328/1f5cd0a57def40676410f8f379b4/member-usage-30d-model.png?expires=1787193900&signature=4697c35c0bc5d369f0fe06e224734ac4331faf5b0211a634f00209a32cfee101&req=diUkFcB%2Bm4JdUfMW1HO4zfveB6jEdejTWGUKUw6QS48vMvZ6%2Fs1%2B16xjtWrq%0A0UVakKjHmmmvzuDs6Po%3D%0A) --- diff --git a/content/support/12902446-claude-in-chrome-permissions-guide.md b/content/support/12902446-claude-in-chrome-permissions-guide.md index 67216de38..56a8542ef 100644 --- a/content/support/12902446-claude-in-chrome-permissions-guide.md +++ b/content/support/12902446-claude-in-chrome-permissions-guide.md @@ -28,7 +28,7 @@ In "Manually approve," Claude checks with you before it acts. What that looks li Claude creates a plan from your prompt, which you can approve before Claude starts. The plan specifies which websites you're allowing Claude to access, as well as the approach it will follow: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1843320727/8d1c859ae9b8e0cdb536d024bf40/9bc3d239-8eb6-4bae-a032-a236f88ee606?expires=1787157900&signature=41c98fb190f76acae8cdac2d774b633d28b0826580057e9eb4389ec8985f14e8&req=dSgjFcp8nYZdXvMW1HO4zYqyZcVM%2BYW%2BgN0ADj5oqFCCBmgImdHpt2DZvmAX%0APjsr%2B72%2FB%2B%2B0F8VWgHc%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1843320727/8d1c859ae9b8e0cdb536d024bf40/9bc3d239-8eb6-4bae-a032-a236f88ee606?expires=1787193900&signature=2189756a82a6992306640972320a1c13b3db2acadc79c27cd504642cd1ba9357&req=dSgjFcp8nYZdXvMW1HO4zYqyZcVM9YG%2BgN0ADj5oqFC7gozje%2FVhb6wZNrNd%0Aq8gNsJODkQFkv4dIzAY%3D%0A) Note that Claude will only use the websites listed in the plan, so you’ll need to manually approve any additional access requests. @@ -62,7 +62,7 @@ When you choose "Skip all approvals," Claude doesn't pause to ask, and nothing c There are some websites on which Claude requires approval for every action. If you navigate to one of these sites, a **New permissions required** prompt will appear in the extension side panel, Claude Cowork, or Claude Code where Claude will ask for permission before accessing the page or taking any action. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2604970825/d7b961271be69e7541b406df1efd/d845324e-6b4a-4f54-83b9-0bea86ec09c6?expires=1787157900&signature=aacee93d3d523af109c7e98d9603cfd2e112e1013d62fe441a522a1d9118356a&req=diYnEsB5nYldXPMW1HO4zZ3NqmFxjSvl7A4lHPBihAUMUtX7Rg5FwVaqkDgr%0AnQtmHxp56k3xMaiMkFw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2604970825/d7b961271be69e7541b406df1efd/d845324e-6b4a-4f54-83b9-0bea86ec09c6?expires=1787193900&signature=089d627019b456fa2c56b704666e2c447ae9e8c0d99cbbfaeb862b1f5c200103&req=diYnEsB5nYldXPMW1HO4zZ3NqmFxgS%2Fl7A4lHPBihAX9Ize7cPiyHAyDTFmW%0AhGEDyEFeQYKhvoosE3c%3D%0A) ### Permission options diff --git a/content/support/12997503-team-plan-billing-faqs.md b/content/support/12997503-team-plan-billing-faqs.md index 57ffe5156..165c8752f 100644 --- a/content/support/12997503-team-plan-billing-faqs.md +++ b/content/support/12997503-team-plan-billing-faqs.md @@ -18,7 +18,7 @@ Your organization's billing address determines where your invoices are sent. You If you want to use a name other than the one tied to your payment method, an organization Owner should check the "Use a different name on invoices" box when adding or updating your payment method in **[Organization settings > Billing](https://claude.ai/admin-settings/billing)**: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1922145253/f2e3d4e0fe43a2ea07e89244764c/image.png?expires=1787157900&signature=a64d1e3869ec22b20246cc519d01484ad111eae5663a6c80f869526169d59364&req=dSklFMh6mINaWvMW1HO4zRZTxF3AvszaKAqLF4ERnlWOuwslWTZrBG7Tj%2BYn%0AYepbqdFD2BQlRffeGUM%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1922145253/f2e3d4e0fe43a2ea07e89244764c/image.png?expires=1787193900&signature=2c2cf32e3a30e94e52e8c0c8db4f4f7d1ca7ceca4758d2401272ee8017ce2372&req=dSklFMh6mINaWvMW1HO4zRZTxF3AssjaKAqLF4ERnlU3Jw%2BzuO6WCH3VKnyy%0AYBgLCUKSvLEZC6nTbDo%3D%0A) ## When will I be billed? diff --git a/content/support/13132885-set-up-single-sign-on-sso.md b/content/support/13132885-set-up-single-sign-on-sso.md index 0c3ec2b26..3610223cf 100644 --- a/content/support/13132885-set-up-single-sign-on-sso.md +++ b/content/support/13132885-set-up-single-sign-on-sso.md @@ -42,7 +42,7 @@ You can verify multiple domains for a single organization, but all domains must 3. Enter the domain(s) you want to verify in the **Update organization email domains** modal and click the “+” button: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2498843282/561d5ceb1c3a5df75bdfee8bfc3f/d2491145-362d-490b-bdcf-66a0a7656ddc?expires=1787157900&signature=d9e4135e75199ec8f1933d7a5a271c30902e5d1b9f0ba0b96f7610eddb236eab&req=diQuHsF6noNXW%2FMW1HO4zSdmHns4%2F8OFe3H0OpmIzWFy3jV85g2bDbabeUvz%0AkKtj%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2498843282/561d5ceb1c3a5df75bdfee8bfc3f/d2491145-362d-490b-bdcf-66a0a7656ddc?expires=1787193900&signature=88650c251e79ced33a152c9bb8b282f48ef21c4ae98018dc6295f0fa6a4cc48f&req=diQuHsF6noNXW%2FMW1HO4zSdmHns488eFe3H0OpmIzWFCHJQQdBvRW0UJ1iyO%0A1FR6%0A) 4. Click “Save” when you’re finished adding domains. @@ -50,7 +50,7 @@ You can verify multiple domains for a single organization, but all domains must 6. Enter your domain in the text box and click “Continue”: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2047042630/0617a562cd28a7ff0e607d66a30b/6bd08e1d-2b65-40ab-bc79-a257153854c1?expires=1787157900&signature=8d5e16a325fce24e96b5d8f50e8b0d0fe35e7b1d968e63cab6cef6bdda6c9e39&req=diAjEcl6n4dcWfMW1HO4zWHctRqWktajyoyXAW0OlXqqI2M46YJ8gFRXyI66%0AqthT%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2047042630/0617a562cd28a7ff0e607d66a30b/6bd08e1d-2b65-40ab-bc79-a257153854c1?expires=1787193900&signature=b3668a82b97f17dd1e6fe75b1dcbeee84d3dfef0dd16220f633af71a39e64056&req=diAjEcl6n4dcWfMW1HO4zWHctRqWntKjyoyXAW0OlXoHGEKHlMIgw53w9Hsn%0AKVP%2F%0A) 7. The setup screen displays a TXT record. **Copy the full Value using the copy button**—it begins with `anthropic-domain-verification-` and is longer than what's visible in the box. In your DNS provider, add a TXT record with **Host/Name** set to `@` (the root of your domain) and **Value** set to the copied string. Add it alongside any existing TXT records; don't replace them. The value is case-sensitive, so paste it exactly. @@ -76,7 +76,7 @@ Clicking "Refresh" re-checks your DNS; it won't show Verified until the publishe If the record is correct and propagated but the status still shows Pending, contact Support. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2047044496/b8df54a0331784cc9ae8f00112aa/bf9609c1-dc93-4665-a066-4cae2fe4b002?expires=1787157900&signature=0c6119899226211c096432b588229d9c1e9198c6faad9ace93feefa1a81a9ca3&req=diAjEcl6mYVWX%2FMW1HO4zVjmWS4BanOwPM2D8Zcdgrg38XJnKgzSFQyQrHQu%0AJivS09GQeg6DyuSOE3o%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2047044496/b8df54a0331784cc9ae8f00112aa/bf9609c1-dc93-4665-a066-4cae2fe4b002?expires=1787193900&signature=2a04799874d33209f799ee74a24e5b924baf1a0880229658236742b4add30f3c&req=diAjEcl6mYVWX%2FMW1HO4zVjmWS4BZnewPM2D8ZcdgrivnDt6rOf8JvTr9jAd%0AU6x7%2BLOjWx7f%2FxhfHyU%3D%0A) **Note:** Once your domain is verified, you'll see a **Restrict organization creation** toggle under **Security** on the Organization and access organization settings page. Enable this if you want to prevent users from creating new Claude or Console organizations—including personal accounts—using your verified domains. @@ -116,7 +116,7 @@ For IdP-specific setup instructions, see: You can now choose to toggle on **Require SSO for Console** and/or **Require SSO for Claude,** on the **Organization and access** page, under the **Authentication** section: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312690200/bd2403586d4f6651ccd79e2a45af/b9f8d7ce-0def-49d9-bfb2-3a14352d7214?expires=1787157900&signature=270b5a606bed50e79466bfd7d49fbb279ef30167dcca63c862cbb1650bb683b1&req=diMmFM93nYNfWfMW1HO4zdAICwigB3sDItXtKivx6ZHTkhN1rLVdtpCKBFnZ%0A7ZE24T03CbiBQSd90lU%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312690200/bd2403586d4f6651ccd79e2a45af/b9f8d7ce-0def-49d9-bfb2-3a14352d7214?expires=1787193900&signature=6078548a03268f428b7b2299b27fe2fe0df9012c09ccd9fe5be9f084d6270d1b&req=diMmFM93nYNfWfMW1HO4zdAICwigC38DItXtKivx6ZHILGshPHH8Fyz%2BVanZ%0AzafEIDGrNhhr7uTcBqI%3D%0A) When SSO is required, users must use the “Continue with SSO” option to log in to their Claude/Console accounts. When SSO is not required, they will have the option to choose “Continue with SSO” or “Continue with email.” diff --git a/content/support/13133195-set-up-jit-or-scim-provisioning.md b/content/support/13133195-set-up-jit-or-scim-provisioning.md index bb4ca5d97..2153dd5f2 100644 --- a/content/support/13133195-set-up-jit-or-scim-provisioning.md +++ b/content/support/13133195-set-up-jit-or-scim-provisioning.md @@ -34,7 +34,7 @@ Use this table to help decide which provisioning mode is right for your organiza Both JIT and SCIM can be combined with **Enable group mappings** to control role or seat tier assignment based on IdP group membership. If you select either of these options for your provisioning mode, **Enable group mappings** will appear within the **User provisioning** section: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312706099/35d5d3ec149880a96bb7acec59f6/a4cfce55-86bf-40b0-b455-c8f412d48e9e?expires=1787157900&signature=d5e7b25ba4a7ef72f8a2fbae352202d1be8a3055aa2b8b33184dbe7022b57dae&req=diMmFM5%2Bm4FWUPMW1HO4zXBDQ6xVCF1%2FxFMG%2BIEvQScYwBaoiWOlyqN%2F8mQ%2F%0AOs6h8QmcvCbU2FK2LOo%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312706099/35d5d3ec149880a96bb7acec59f6/a4cfce55-86bf-40b0-b455-c8f412d48e9e?expires=1787193900&signature=c0f3b8ed401005ffb91001af6638af74675383b4347046f58b016b0df816b05c&req=diMmFM5%2Bm4FWUPMW1HO4zXBDQ6xVBFl%2FxFMG%2BIEvQSfzZUNtNc%2Bb2eLvcdtP%0AGhEkxvujbH6exn3Mg9U%3D%0A) ### Available roles and seat tiers @@ -118,7 +118,7 @@ Once your IdP is connected, continue to Step 3. 4. Toggle **Enable group mappings** on (if it’s not already): -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312714635/b57870b51e6511c8293637bceee2/da1ceabc-b6bc-451b-9cda-24ff6aa90d02?expires=1787157900&signature=053a512a7f43240562d8d3867b672c1621f39cc84ec1bf5a1ab25f0d35d7ba1c&req=diMmFM5%2FmYdcXPMW1HO4zeBEbsLZkv1Byb72rapuHpNlyzAE6498qUlyqgv6%0AODel%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312714635/b57870b51e6511c8293637bceee2/da1ceabc-b6bc-451b-9cda-24ff6aa90d02?expires=1787193900&signature=a717d629645b1bdfcd1b052e6de6ce6664d88495323feaf92e2b38a4d318f5ae&req=diMmFM5%2FmYdcXPMW1HO4zeBEbsLZnvlByb72rapuHpO4oIQn4YyDu8bKws8F%0AwVuU%0A) 5. In the **Enable group mappings** section, click “Add” next to each role and select the corresponding group from your IdP in the dropdown. @@ -170,7 +170,7 @@ Verify you have enough seats purchased and available to add members to your org. 4. **For SCIM:** Click "Sync" to prompt an immediate sync, or wait for the automatic sync cycle: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312717421/c97fce49ad17d4660880a05fbaaf/59fbfa2a-1072-4662-8ca5-102970d5a795?expires=1787157900&signature=ee16e1df89e11ac34a74e18112cd0b4541cb00c3a4be2ea518ab4a6af4f4662a&req=diMmFM5%2FmoVdWPMW1HO4zZ9La1qsHM3L5hujYvMis4f%2B3jISMVi67fKqZlq%2F%0AUM5U%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312717421/c97fce49ad17d4660880a05fbaaf/59fbfa2a-1072-4662-8ca5-102970d5a795?expires=1787193900&signature=a83d5f2a65eb036b2258eb9010e239b7ade98631d4a40ecd2e5738d469e5c290&req=diMmFM5%2FmoVdWPMW1HO4zZ9La1qsEMnL5hujYvMis4fw7FQFFaisxVUvRIYF%0AMWBW%0A) ### I lost Admin/Owner access after enabling group mappings diff --git a/content/support/13163631-configuring-session-security-settings.md b/content/support/13163631-configuring-session-security-settings.md index f09b9b49c..b2dffb799 100644 --- a/content/support/13163631-configuring-session-security-settings.md +++ b/content/support/13163631-configuring-session-security-settings.md @@ -18,7 +18,7 @@ Session duration controls allow Enterprise and Console Admins to set a maximum s 5. Confirm your selection by clicking “Enable.” -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1888469436/1725e63ea1a2615948faecf4ec73/9bd276a1-7329-414d-87a1-d04dac93fff7?expires=1787157900&signature=abe67089144b30f3dbe9051613b806ad3576ab4d9e32d705719a2c0298968dc9&req=dSgvHs14lIVcX%2FMW1HO4zQNx6%2BUmRl1Zg%2F6XaftFnjynjUnZGnTG%2BIrFKjLv%0ADxhi0Om790CoYRIPIpc%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1888469436/1725e63ea1a2615948faecf4ec73/9bd276a1-7329-414d-87a1-d04dac93fff7?expires=1787193900&signature=df1f6182e345c0a40adbecf6adf4d86cfc0e485b22e8dba48d901b7ac72110ea&req=dSgvHs14lIVcX%2FMW1HO4zQNx6%2BUmSllZg%2F6XaftFnjx6%2FcjO%2BcGdb%2BLqB3Lw%0AT%2BqzFheoi0hwV7sM1O4%3D%0A) ### For Console Admins @@ -32,7 +32,7 @@ Session duration controls allow Enterprise and Console Admins to set a maximum s 5. Confirm your selection by clicking “Enable.” -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1888469435/7a766bbe02e61c7d8f05deb5b8f0/b0bda400-47c6-43dd-9907-131ebe180b36?expires=1787157900&signature=3ae8f67c41a10073bca03bbb85b6e222ff7fa33289dd7c4020524c984894dd8c&req=dSgvHs14lIVcXPMW1HO4zWzx2L43IngoXZ5D7eVpMtf7aFusZTiFwHVCAIHf%0Awa6zOsmAutC3B1rqJug%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1888469435/7a766bbe02e61c7d8f05deb5b8f0/b0bda400-47c6-43dd-9907-131ebe180b36?expires=1787193900&signature=32da18623ef905da880a3f6a4bbfd4489e6f6f26cb7073eb21aa099887d02aff&req=dSgvHs14lIVcXPMW1HO4zWzx2L43LnwoXZ5D7eVpMtd9B7aw5CeUPf5D3XVL%0APkdhmHAfV%2F2icINVESs%3D%0A) ### What happens after enabling shortened session length? @@ -50,7 +50,7 @@ You can change the session duration at any time by selecting a new value from th - Sessions scheduled to expire beyond the new duration will have their expiration shortened accordingly. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1888469437/46ac5bc55484ca01556d87a5ade7/b01a7651-ad65-4b32-93ff-16dbc9ca97c0?expires=1787157900&signature=5ebf2cce72b2e6f36fb55c85a2fe668186d44a68ddefc8b1a9bb8603baf45736&req=dSgvHs14lIVcXvMW1HO4zZ7mWs%2Ba4j6qA00cbyPOLDUrYIWCZgDxkWAycz5%2F%0Aw3shoZZpUXDKG8h5uSI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1888469437/46ac5bc55484ca01556d87a5ade7/b01a7651-ad65-4b32-93ff-16dbc9ca97c0?expires=1787193900&signature=c0f948ad2c59e3b7859af69123d1c65b99cae1273bf7693f6fe55458fbeeab46&req=dSgvHs14lIVcXvMW1HO4zZ7mWs%2Ba7jqqA00cbyPOLDXCv%2FUtX%2B7zqCYgR4d%2B%0A8San6y3Z9nsiKPZmWgU%3D%0A) ## Disabling session length settings diff --git a/content/support/13189465-log-in-to-your-claude-account.md b/content/support/13189465-log-in-to-your-claude-account.md index 3e7ea023f..72ae7cd7f 100644 --- a/content/support/13189465-log-in-to-your-claude-account.md +++ b/content/support/13189465-log-in-to-your-claude-account.md @@ -2,7 +2,7 @@ When you open Claude on a web browser ([claude.ai](http://claude.ai)), the desktop app, or a mobile app, you will see two different options for logging in to your Claude account. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1893216804/f2209c3ec6cf4fc2e803d13bbc9d/40520c9e-ff82-4a7c-adca-5a064fe18d8c?expires=1787157900&signature=cff09f55d51c7bf0ae5cc72271287864bbc42137f4ac0801a9072f0eeea7b864&req=dSguFct%2Fm4lfXfMW1HO4zXg5BoWN5hW9zWhrqpWiTMkmS9A6xttwqPCgwHTH%0ArjHNttR7h0ORqzyGNgo%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1893216804/f2209c3ec6cf4fc2e803d13bbc9d/40520c9e-ff82-4a7c-adca-5a064fe18d8c?expires=1787193000&signature=5f280732127dd8ca3b247b3c8a6ee4ae599fadc061aa184252f43ac97ce5a875&req=dSguFct%2Fm4lfXfMW1HO4zXg5BoWN6hG0zWhrqpWiTMlHh6JLdgQUGjIQ0JQH%0AO%2B7SKaLqGZuFYgTEfxY%3D%0A) ## Continue with Google diff --git a/content/support/13325567-account-management-faqs.md b/content/support/13325567-account-management-faqs.md index 73ea7f28f..187d8a66a 100644 --- a/content/support/13325567-account-management-faqs.md +++ b/content/support/13325567-account-management-faqs.md @@ -44,6 +44,6 @@ The email domain that was used to create your Team or Enterprise plan organizati Owners can remove domains by opening up the same modal and clicking the trash can icon to the right of the domain: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2053873852/1cbccea3b7067e03205f2ff8546b/CleanShot+2026-02-11+at+11_16_07%402x.png?expires=1787157900&signature=dcc73bd68e061d34f2cec042776b5d89291af090e81767c8801cc32748d39fcf&req=diAiFcF5nolaW%2FMW1HO4zUrhFuyZbA8TkeFUnrkrQZgHPI9U74Q58vsR7uOl%0Asw33sxE7a4xf2QtoVUs%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2053873852/1cbccea3b7067e03205f2ff8546b/CleanShot+2026-02-11+at+11_16_07%402x.png?expires=1787193900&signature=da8ce483f2bdb9f05441abf397e29efb6dc7e44d8e407d5ac8b9204b73c088e1&req=diAiFcF5nolaW%2FMW1HO4zUrhFuyZYAsTkeFUnrkrQZghtLdEKSRGXYXA9r3A%0AAHnvKXa7SgO6NlqzIfk%3D%0A) While the account creator must use a business email address, you can add public domains like @gmail.com, @yahoo.com, and @hotmail.com as allowed domains for other members of your organization. \ No newline at end of file diff --git a/content/support/13345190-get-started-with-claude-cowork.md b/content/support/13345190-get-started-with-claude-cowork.md index 50f106e4b..a57244486 100644 --- a/content/support/13345190-get-started-with-claude-cowork.md +++ b/content/support/13345190-get-started-with-claude-cowork.md @@ -178,7 +178,7 @@ To set global instructions: 3. Type your instructions in the text box and click "Save": -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2525926874/15324ac4155d7802272e8bdef04b/ec66cd09-a4db-4f1d-8f30-226c9d126333?expires=1787184000&signature=9529a95f39fe9f78106192711ec59c3fb9ae4a7e57150173a2c8c654b20a9d9a&req=diUlE8B8m4lYXfMW3nq%2BgcqgxG%2BD27fUb1GMqW%2FkK1chgZP9BieGa1m9iOda%0A6ccDHnIS3I4YHcwrj6LBdqUtjS0%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2525926874/15324ac4155d7802272e8bdef04b/ec66cd09-a4db-4f1d-8f30-226c9d126333?expires=1787193900&signature=e549097bf61b75d5de093026d80774ea7b653bb054cc1f3df04bc2978eb6f2fc&req=diUlE8B8m4lYXfMW1HO4zcDl6t%2FtP1K58iWjaktE942thCJzSXdp27cPYtYM%0AaUBHWq62BUaTunV2Dbw%3D%0A) ### Folder instructions diff --git a/content/support/13346458-customizing-your-console-appearance-settings.md b/content/support/13346458-customizing-your-console-appearance-settings.md index 407d3bde5..7c69baf1d 100644 --- a/content/support/13346458-customizing-your-console-appearance-settings.md +++ b/content/support/13346458-customizing-your-console-appearance-settings.md @@ -8,4 +8,4 @@ 3. Select from Light, System, or Dark under **Color mode**. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1922579101/ede30d38dca693c59f9c15d79e69/CleanShot+2026-01-08+at+15_45_20%402x.png?expires=1787157900&signature=b0342c7e19e703eb64ed915a0fab3082f816afdbc63801b01242ddb0c9008099&req=dSklFMx5lIBfWPMW1HO4zRpFC88FSBV%2FO9Kw38RlAYITR5px82Z3YuoRETl0%0AWQmoCXUU0n2Ax28Z0TY%3D%0A) \ No newline at end of file +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1922579101/ede30d38dca693c59f9c15d79e69/CleanShot+2026-01-08+at+15_45_20%402x.png?expires=1787193900&signature=f137d71faac8ced375224f8970590488402dc6cdd22005c2de092f2e90aa30bf&req=dSklFMx5lIBfWPMW1HO4zRpFC88FRBF%2FO9Kw38RlAYInR%2BiFwkvJVSZMVRbs%0A764Bnid%2BP7tleJS0swc%3D%0A) \ No newline at end of file diff --git a/content/support/13371040-log-in-to-your-console-account.md b/content/support/13371040-log-in-to-your-console-account.md index ed6b16b5d..2132dc69f 100644 --- a/content/support/13371040-log-in-to-your-console-account.md +++ b/content/support/13371040-log-in-to-your-console-account.md @@ -2,7 +2,7 @@ When you navigate to the **[Claude Console](https://platform.claude.com)**, you will see two different options for logging in to your Console account. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1935026646/d90d1613a3dbe763fef5abb96e3c/image.png?expires=1787157900&signature=bb0c457d0d68ad1b35b98c679c5bd31be6a78dcc5cd1497b22fb5c588fe68a92&req=dSkkE8l8m4dbX%2FMW1HO4zcrI547tpYcE8vUNcPt4%2B72k2V4zWyrKqTl%2B37Jn%0AW61qW3KNQJqPSFKweVU%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1935026646/d90d1613a3dbe763fef5abb96e3c/image.png?expires=1787193900&signature=39b5d093a57a33998b16d151feaa13c457e2f752db9cbf90e79d66845083d522&req=dSkkE8l8m4dbX%2FMW1HO4zcrI547tqYME8vUNcPt4%2B71er0FX9J54JekiXh%2Bq%0AseEKl7pRb1bH5qHZKxc%3D%0A) ## Continue with Google diff --git a/content/support/13641943-visual-and-interactive-content.md b/content/support/13641943-visual-and-interactive-content.md index 2e5b116a3..961c67030 100644 --- a/content/support/13641943-visual-and-interactive-content.md +++ b/content/support/13641943-visual-and-interactive-content.md @@ -18,7 +18,7 @@ Claude can show current weather conditions and forecasts when you ask about the Claude automatically displays temperatures in Fahrenheit for US locations and Celsius for everywhere else. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2040544927/3a9c695b24df387ecdd766ad308c/8be9f393-dcb0-4ff8-89e8-5fa47bedaa38?expires=1787157900&signature=0a971e51e44b66907a35dc0eed05fa4eb19e900116f4c150d162dc3f18a370cb&req=diAjFsx6mYhdXvMW1HO4zXlB7Tm70B%2BBdgndksVD5R05nhq00XAG7QFtlc%2Bf%0A1UW%2B7abkD5dqCNWomqk%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2040544927/3a9c695b24df387ecdd766ad308c/8be9f393-dcb0-4ff8-89e8-5fa47bedaa38?expires=1787193900&signature=67ac2b16d212a7232a9e680678a49cab73ff6dd75b8ccb0b4ddb9a9b49c19982&req=diAjFsx6mYhdXvMW1HO4zXlB7Tm73BuBdgndksVD5R2mDU6XunjbP1gCmrQ3%0AgP807KAJCxsBfJCKcJc%3D%0A) Weather is powered by Google Maps (). @@ -28,7 +28,7 @@ When you ask about recipes, Claude can display formatted recipe cards that are e **Note:** Visual recipe cards are available on web and desktop only. On mobile, Claude provides recipe information as text in the conversation. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2040544929/12f4c51eda7779d65d3ea2c7ab16/d0f4a314-cff8-421a-b401-10c2bf50374e?expires=1787157900&signature=ba3c392f1e0978992bea390ae6547b1086bbfb314c7e3829b500093aedbcc9a1&req=diAjFsx6mYhdUPMW1HO4zUQpe7cU11OerIPm%2FImZVg0cZtutz8RXdFReFjHK%0AcECDKdWn4a2gej08njY%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2040544929/12f4c51eda7779d65d3ea2c7ab16/d0f4a314-cff8-421a-b401-10c2bf50374e?expires=1787193900&signature=96deef941bdd5874fa4131508f144399e8b6d6cf0f0fa0d0ad674f6737717ad7&req=diAjFsx6mYhdUPMW1HO4zUQpe7cU21eerIPm%2FImZVg1CxxJDMKTuNu4Kd88t%0ALm7QuQ%2F9OeLtpMk7pbc%3D%0A) ### Custom visuals @@ -76,7 +76,7 @@ For example, if you ask Claude to help you plan a trip, it might ask you to: This content appears at the bottom of the chat. You can still type a response if you prefer. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2040544930/9ad066e137d11e4b559b0217e12d/9bf30d2d-1715-42b3-9da5-2a9298f41f08?expires=1787157900&signature=51005d643c39051811e7095d3dbc66bfc820dd686c431f91b2afa8dcba7f6a2d&req=diAjFsx6mYhcWfMW1HO4zWmF5%2FK%2FbBmrx4wz0C7CTAJei6bTJ3TvNzV6qTgn%0ARF6E8uib4s6F4%2BSV5sA%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2040544930/9ad066e137d11e4b559b0217e12d/9bf30d2d-1715-42b3-9da5-2a9298f41f08?expires=1787193900&signature=40d0974b97f6248995d3cc857f68bf103d50d3957869028294679453337288bf&req=diAjFsx6mYhcWfMW1HO4zWmF5%2FK%2FYB2rx4wz0C7CTAKBAr5QFXe9ZnmDdrpc%0Ah%2B49PhkmxkjUpVmxMgI%3D%0A) --- diff --git a/content/support/13756069-public-sector-faqs.md b/content/support/13756069-public-sector-faqs.md index 559579bb9..970915da1 100644 --- a/content/support/13756069-public-sector-faqs.md +++ b/content/support/13756069-public-sector-faqs.md @@ -6,7 +6,7 @@ Select your product based on both your technical/functional requirements, and also your compliance/security/deployment environment requirements. Here is a list of options: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2197717161/79965a24090029e9e58c727c3c24/pubsec-product-matrix_png+%281%29.jpg?expires=1787157900&signature=451cbedd06bf8a710eb3ef13b017c645a41e985ddf86a241d0132aebd9bffe4d&req=diEuEc5%2FmoBZWPMW1HO4zU94Ll4kGNo52WxtU42UVC2hq%2Fwb0hwuCiWUysBG%0AtQMP7migfDCz36vO%2FQU%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2197717161/79965a24090029e9e58c727c3c24/pubsec-product-matrix_png+%281%29.jpg?expires=1787193900&signature=a8ac911141bf9e9a8b0b0da994d8d9a125c8c4bf41800b2eaab62cc22b190689&req=diEuEc5%2FmoBZWPMW1HO4zU94Ll4kFN452WxtU42UVC3v7AWGEXD5w%2Buf%2Btuw%0ACO6MoNliZ3gSvPGV%2FoY%3D%0A) ### What is Claude for Government (C4G)? diff --git a/content/support/13837433-manage-plugins-for-your-organization.md b/content/support/13837433-manage-plugins-for-your-organization.md index a9d1e268d..cf9a0515f 100644 --- a/content/support/13837433-manage-plugins-for-your-organization.md +++ b/content/support/13837433-manage-plugins-for-your-organization.md @@ -106,7 +106,7 @@ Your personal GitHub token is verified to confirm you have access, then Cowork u An initial sync runs automatically when you connect a repository. After that, organization owners can opt-in to continued automatic updates per marketplace by going to **[Organization settings > Plugins](https://claude.ai/admin-settings/plugins)**, clicking the menu button in the upper right corner of the marketplace, then toggling "Sync automatically" on: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2193200015/a239033a9ab19fbd39f1a0d9edce/CleanShot+2026-03-23+at+11_41_31%402x.png?expires=1787157900&signature=1a0eb6071c7272a74e1ed450b7bfc54fa756f8b85626767a7e128c34d6bc3796&req=diEuFct%2BnYFeXPMW1HO4zUYv5tr4xHgdRDH%2FtUo5ov651cumhqeJJT%2B%2BI85C%0Adi8GZ%2BUfmEF0i22cVaE%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2193200015/a239033a9ab19fbd39f1a0d9edce/CleanShot+2026-03-23+at+11_41_31%402x.png?expires=1787193900&signature=ec0169c03086d7a184b83ace16174c6c652469382cde82d22c94c3623b659c78&req=diEuFct%2BnYFeXPMW1HO4zUYv5tr4yHwdRDH%2FtUo5ov7jGIU7kzS%2BJMlYExcR%0A6RjqNQ0L0eoIJNHW0TU%3D%0A) Enabling automatic sync creates a webhook on the connected repository. The person turning the toggle on must have admin-level access to that repository on GitHub. This is checked through their personal GitHub connection, which is separate from the Claude GitHub App installation. Without admin access, the page shows "Cannot access repository. Ensure the repository exists and the Claude GitHub App is installed," even when the App is installed correctly and manual updates work. diff --git a/content/support/13837440-use-plugins-in-claude.md b/content/support/13837440-use-plugins-in-claude.md index ef6ecba53..09b0b76b7 100644 --- a/content/support/13837440-use-plugins-in-claude.md +++ b/content/support/13837440-use-plugins-in-claude.md @@ -40,7 +40,7 @@ In Cowork, open the "Cowork" tab first, then open **Customize**. You can also upload a custom plugin file if you built one yourself or received one from a colleague. On Claude Desktop and in Cowork, plugins you add yourself are saved locally to your computer. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2100409211/fc01614dde1a616fa31ffaa9cb04/47bacf5b-a810-45b5-a468-9769f1a58ef8?expires=1787157900&signature=8000ef2abe651a73a6d56210dd16ba3a399582e254c9af128d5603e9364b9949&req=diEnFs1%2BlINeWPMW1HO4zZF3IhLcNvJcxakFVfq5WwwVw9QBpX7cB7MwQ0gh%0Ahe6CN0VlKATlmXmZ%2FDw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2100409211/fc01614dde1a616fa31ffaa9cb04/47bacf5b-a810-45b5-a468-9769f1a58ef8?expires=1787193900&signature=f27384004b84354b77f9d785a9c3302b99ac3302a711fca3fe89be47550d11fe&req=diEnFs1%2BlINeWPMW1HO4zZF3IhLcOvZcxakFVfq5WwzXa5wk4MgaMTLiEHUT%0AGy40w7Ssk3MxaVXuGaY%3D%0A) If you're on the Enterprise plan and your organization has skill scanning turned on, plugins are checked for malicious content when they're installed or updated. A plugin with malicious content is blocked, and one that may carry risk shows a caution banner. Learn more about **[skill and plugin scanning](https://support.claude.com/en/articles/15927065)**. @@ -50,7 +50,7 @@ If you're on the Enterprise plan and your organization has skill scanning turned Each plugin you install adds skills you can use while working with Claude. Type "/" or click the "+" button to see the available skills from your installed plugins, in chat and in Cowork. Click any skill to see its details. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2157396844/4a790e10f5b88df770783df1d7e9/image.png?expires=1787157900&signature=ac30c7ae7318c423fef9ff411f8aa2155af43f87438a28bdd1cba5664a30512c&req=diEiEcp3m4lbXfMW1HO4zf4NBPH9hkedmKUxugP2BQv7D%2FTSXep4MfrZkLGu%0AOx0qL3Slyg5jK7ohZ%2Fc%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2157396844/4a790e10f5b88df770783df1d7e9/image.png?expires=1787193900&signature=9da7e391991e1408a1ac533cd15e567defccf4c4dc1149786a7026f9b6fdc5a5&req=diEiEcp3m4lbXfMW1HO4zf4NBPH9ikOdmKUxugP2BQsip2A2KkRhSlmEAeUX%0ADFKFz5RCrxpG%2BmHeXu0%3D%0A) --- diff --git a/content/support/13854387-schedule-recurring-tasks-in-claude-cowork.md b/content/support/13854387-schedule-recurring-tasks-in-claude-cowork.md index e8e45ad2e..31661eb31 100644 --- a/content/support/13854387-schedule-recurring-tasks-in-claude-cowork.md +++ b/content/support/13854387-schedule-recurring-tasks-in-claude-cowork.md @@ -52,7 +52,7 @@ There are two ways to create a scheduled task: 6. You can explicitly confirm you want to schedule the task when prompted by Claude by clicking “Schedule": -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2104085399/4dda7e6f76026fd827db0b9323a9/f20635bf-15e7-4978-a213-5b9f67e9fb9a?expires=1787184000&signature=aea50382cbe37c85fa0194a073b4ed599bbf36a7cac8a1c14104b709716353f8&req=diEnEsl2mIJWUPMW3nq%2BgUR7lfEEQ4XJvX3PHMydoUMukCBAf7T24d8OY0nm%0AHPtBpRS0a6dQ%2FcL8JEWE3JP0L54%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2104085399/4dda7e6f76026fd827db0b9323a9/f20635bf-15e7-4978-a213-5b9f67e9fb9a?expires=1787193900&signature=f9b17e7b34a9f830ced323f6fc79a2d7014583a87172072d283a79aa6ca95ed2&req=diEnEsl2mIJWUPMW1HO4zeLJBkLl9umOPx%2FSrZI7l8wLJ0NPUbkFNG74DAkO%0ASXwE%0A) 7. Claude will create and schedule your task, and it will be added to the **Scheduled tasks** page. diff --git a/content/support/13930458-set-up-role-based-permissions-on-enterprise-plans.md b/content/support/13930458-set-up-role-based-permissions-on-enterprise-plans.md index 5794f0c2f..2bdd55a03 100644 --- a/content/support/13930458-set-up-role-based-permissions-on-enterprise-plans.md +++ b/content/support/13930458-set-up-role-based-permissions-on-enterprise-plans.md @@ -66,7 +66,7 @@ Create roles that delegate parts of administration without granting the Owner ro 4. For each team or department, decide which features they need access to. -![Image of the Organization settings page in Claude, with a box around the People section which contains three options: Members, Groups, and Roles.](https://downloads.intercomcdn.com/i/o/lupk8zyo/2484535492/d17b343f54f754bb3af73fe880a9/Org+settings+-+People.png?expires=1787157900&signature=645bb853818ced21c4a62e3d3f8a15e477a103e2b9ab5f1bf10b23239b7f6481&req=diQvEsx9mIVWW%2FMW1HO4zVA%2FMt2RKoqjvDbmWeIt%2FcRkTXswLmKKSV5mLan9%0AcCZJohPy3eve0t9vAZM%3D%0A) +![Image of the Organization settings page in Claude, with a box around the People section which contains three options: Members, Groups, and Roles.](https://downloads.intercomcdn.com/i/o/lupk8zyo/2484535492/d17b343f54f754bb3af73fe880a9/Org+settings+-+People.png?expires=1787193900&signature=9c9b6fa6e86ded0bb72c301857ba985b25fde88e51c88cf5868c2dc5b232bffc&req=diQvEsx9mIVWW%2FMW1HO4zVA%2FMt2RJo6jvDbmWeIt%2FcREY3CcqmgpxtDiTRR0%0A40rMLa%2BQ%2BmZyy5lfHJI%3D%0A) Remember: any feature you want to control per-group must be **enabled** at the organization level. If a feature is toggled off at the organization level, no custom role can grant access to it. @@ -84,7 +84,7 @@ Create your custom roles before enabling any features or migrating members. This 3. Name the role and toggle the appropriate capabilities on the **Capabilities** tab, or choose "All capabilities" or "All generally available" to grant everything at once: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2539844315/2e98adc9b24a95bf64b7ef759c94/a0c6bd31-327c-48b8-9ece-1b985eafccec?expires=1787157900&signature=00309abeeb8d39fe4b645d69cb7ae2e3e4fdd2a81a83599552901c2a0ea7e0d7&req=diUkH8F6mYJeXPMW1HO4zfzK2OTb494zJsssa0E%2FK2ZgxGnk%2FMKA2zLLXBrR%0AuCk7%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2539844315/2e98adc9b24a95bf64b7ef759c94/a0c6bd31-327c-48b8-9ece-1b985eafccec?expires=1787193900&signature=fd540d7be6e1f004a8de3af29d5ecedb04840cf522c5c9aae01cf993a0331eff&req=diUkH8F6mYJeXPMW1HO4zfzK2OTb79ozJsssa0E%2FK2ZNA8qN3OzaNykWU9%2Bg%0AS50V%0A) 4. On the **Permissions** tab, set admin permissions for the role. See **Step 3**. @@ -114,7 +114,7 @@ Set admin permissions on each role to delegate access to admin settings, like bi 3. Select the **Permissions** tab, between **Capabilities** and **Connectors**. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2484538453/66f52673b2d1fc7b0d4b48ed4ff6/fbf992ce-c4a1-402e-80cd-0c8449f916bd?expires=1787157900&signature=a094e6b8a4fc89beba5eecedaee2777c335251548f528cc1788a31d1785f266c&req=diQvEsx9lYVaWvMW1HO4za6MibWmWUWOJQR8u%2B9qQFlO%2F%2BpRci99A4zP70HM%0AlHTfBL8trcTaxEwaPk0%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2484538453/66f52673b2d1fc7b0d4b48ed4ff6/fbf992ce-c4a1-402e-80cd-0c8449f916bd?expires=1787193900&signature=8a5e449506c218074089bd9a5f846ea5d0efe0b78b2395247a32696edd515e68&req=diQvEsx9lYVaWvMW1HO4za6MibWmVUGOJQR8u%2B9qQFl3kx9qiTtlGBrwauRz%0A1O%2FQ7z7L%2FsJvekd3kD8%3D%0A) ### **Set admin permissions** @@ -154,7 +154,7 @@ Set connector permissions on each role to control which connectors, and which to The default settings for new roles are permissive. When creating or modifying a role, confirm the settings on each tab to avoid granting unintended permissions. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2484539079/2325428311fffccd6951d5f2dc46/e4326a16-d44b-4e5d-9ecd-5c3dbbc7651a?expires=1787157900&signature=a59dc5ba5c2a4da7f88f6bce93396baf99e223d4c02c645b73d8babf5d81a446&req=diQvEsx9lIFYUPMW1HO4zZGDXF6iDfF7HNJQDqL6ZaCbXHLgjNHbQmetvkeh%0ApNYFErqDs6ZqW4k2cTc%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2484539079/2325428311fffccd6951d5f2dc46/e4326a16-d44b-4e5d-9ecd-5c3dbbc7651a?expires=1787193900&signature=868192077a631ceea6f363d3b8c33d0774b22800e35771f300819a4adccf1c0b&req=diQvEsx9lIFYUPMW1HO4zZGDXF6iAfV7HNJQDqL6ZaDwX8ZgxwxcFomMeBr6%0AYEi7QfkWDfcNLQRpyhA%3D%0A) ### Set connector-level permissions @@ -170,7 +170,7 @@ The **Connectors** tab lists an **All connectors** row at the top, followed by e Choosing “Always allow,” “Needs approval,” or “Blocked” applies that level to every tool on the connector. The **All connectors** row works the same way one level up: it sets a baseline for every connector at once, including any connector you add later. Use it to set a role’s default, then override individual connectors. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2602605191/9a2f57e31f088a3400baa70f47fe/f9f866d7-9cf4-4f5c-9d98-0d6dd6672425?expires=1787157900&signature=6a8d622fcede8cfa83528d58627e739cc25a7b013fd45f06c319a4bd0a86ef28&req=diYnFM9%2BmIBWWPMW1HO4zSvbwjfymXwZFasHZ0kEvAvIjHzlSeF0BCbB1KGW%0Aq7h24l93hDGbk0X%2FIyw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2602605191/9a2f57e31f088a3400baa70f47fe/f9f866d7-9cf4-4f5c-9d98-0d6dd6672425?expires=1787193900&signature=418249e0b3b814bc26f892cb5863ab2382374957738029941e5bf4ee36e0ed1a&req=diYnFM9%2BmIBWWPMW1HO4zSvbwjfylXgZFasHZ0kEvAv615ZGa5R%2FP0CTz%2FKx%0ASstdAH0qSI3d%2BKxkGko%3D%0A) ### Set how members connect @@ -192,7 +192,7 @@ Set a connector to **Custom** to reveal its tools as individual rows. Each tool Per-tool permissions let a role reach part of a connector. For example, with Jira set to **Custom**, its `search_issues` tool set to “Needs approval,” and every other Jira tool set to “Blocked,” members with the role can search Jira but nothing else. Claude only sees the tools you’ve granted, so asking it to create a ticket returns “I don’t have a tool for that” rather than an error. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2484553274/3c0781dc9c7704a7b67d4858b88b/Screenshot+2026-06-17+at+4_28_45%E2%80%AFPM.png?expires=1787157900&signature=e6f038ae88b0512c79911783b33f0d0faa783354e24ef27e5396cd0e4a1f098a&req=diQvEsx7noNYXfMW1HO4zXcI%2BoBBAdhq1VjQ9K3ENRttXGTxboUMX66FXqog%0A8gk5NMy4DLnTNLcimnk%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2484553274/3c0781dc9c7704a7b67d4858b88b/Screenshot+2026-06-17+at+4_28_45%E2%80%AFPM.png?expires=1787193900&signature=d9227460254b87381d5f68182e4517fae7e3620fc271542267235256fc461f60&req=diQvEsx7noNYXfMW1HO4zXcI%2BoBBDdxq1VjQ9K3ENRvBXrShFL6Ytt%2Br%2FH9s%0A3G9cX8BGpRqvZg2pRHM%3D%0A) ### Review cross-role conflicts @@ -200,7 +200,7 @@ Because connector permissions are additive across roles, blocking a connector in If you have unsaved edits when you open a linked role, you’re asked to discard them first. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2484556183/b644bbfba5350ae2a460117f23e3/Screenshot+2026-06-17+at+4_31_03%E2%80%AFPM.png?expires=1787157900&signature=63b98ac6625cf8de512608f5ca9c7cd5a2508d8207a122bb2df85057a188cb32&req=diQvEsx7m4BXWvMW1HO4zX8ytuoE5NPeGc8KkqwXsZ7vn5vVGqoZNxjSSihr%0Ad0R7%2FpWF4iIsT6g4HiU%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2484556183/b644bbfba5350ae2a460117f23e3/Screenshot+2026-06-17+at+4_31_03%E2%80%AFPM.png?expires=1787193900&signature=5987f3ae25c5999a827e2e4673ceb17e38bd44260dc962e2b4c29745e1af1b64&req=diQvEsx7m4BXWvMW1HO4zX8ytuoE6NfeGc8KkqwXsZ5qsIygAZlAaCA0Dn3d%0A11navaExFeti719KoT4%3D%0A) ### Verify enforcement @@ -250,13 +250,13 @@ Verify model access after you've migrated members to "Custom" roles. See **Step 4. Assign each group to the custom roles you created in step 2. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2260371973/b503c99ef71d8a89b7aff606511b/b1afd593-3b23-4fa9-8b9b-ee6beaf74fd7?expires=1787157900&signature=a9c5f1df342d1a77597c2c0bb1a6720e8117773d5529ab9cdb00ae1c9bcfa128&req=diIhFsp5nIhYWvMW1HO4zdMu8Wd3Hw5jKwlCydrbfL6LCQrjTLnPTlJj8%2Fab%0A7dUsctJfTqHojCqbgxM%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2260371973/b503c99ef71d8a89b7aff606511b/b1afd593-3b23-4fa9-8b9b-ee6beaf74fd7?expires=1787193900&signature=f4863d909901c9c746c4ce92839283367f0fa40b440ae9a3c049dc168adff452&req=diIhFsp5nIhYWvMW1HO4zdMu8Wd3EwpjKwlCydrbfL61k1HL6EtqHsElbMzF%0ANZGdu2YDD%2BhnMZEt8kw%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2260372813/83ccc4784bdfc8600101bc42ec4b/6e7456ac-9887-4e04-b757-3972110fbdce?expires=1787157900&signature=ceca07e9f4b6615d7a1185c81a0eb9bea0e9ab05452452beda9cd9a553d08519&req=diIhFsp5n4leWvMW1HO4zQetnyRWYajxczQdKdGFNscB6IRKT0tsPgFYI8mC%0AQOi8iX5lI%2FhXJAGwg1w%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2260372813/83ccc4784bdfc8600101bc42ec4b/6e7456ac-9887-4e04-b757-3972110fbdce?expires=1787193900&signature=374563d8306ecdf79e93d625f4a924258156bcbb53677c3a52a1e426dfb0ec3d&req=diIhFsp5n4leWvMW1HO4zQetnyRWbazxczQdKdGFNsct2pXkO88poy%2F1lEa4%0AIRsKls8IeVUaE%2FNOkXg%3D%0A) If you use SCIM directory sync, you can sync groups from your identity provider instead of creating them manually. For details on SCIM group sync, see **[Manage groups and group spend limits on Enterprise plans](https://support.claude.com/en/articles/13799932-manage-groups-and-group-spend-limits-on-enterprise-plans)**. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2260374677/5f9d8febb8ae25153a94d0b827b9/c8314b27-96c1-4743-ae8b-25e511181837?expires=1787157900&signature=bb1c5710fa9df1668ecdc20b1a6275f70df6a82952a838175c97a2b0a9cab233&req=diIhFsp5mYdYXvMW1HO4zXzl64h07TyTKYkQn0Dd8NVl5docOZGgb9OWNKmu%0AlvVnU4oFQe4R6YeHZpc%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2260374677/5f9d8febb8ae25153a94d0b827b9/c8314b27-96c1-4743-ae8b-25e511181837?expires=1787193900&signature=2ea7fc00213dc851d949b32c725042bf5d7ef35f1520e1c9a7b8f3fc390f392f&req=diIhFsp5mYdYXvMW1HO4zXzl64h04TiTKYkQn0Dd8NVbumt2OiOW4Cl%2BVO77%0AcudvzcRLqVgiq4NxuNU%3D%0A) **Multiple organizations under the same parent organization:** Groups are managed at the parent organization level and propagate to all child organizations. You may see members from other organizations listed in a group—this doesn't mean they have access to your organization. Custom roles assigned to a group only grant capabilities to members who are part of your specific organization. @@ -298,7 +298,7 @@ Use this path only if your organization already enabled group mappings for role 3. Save your changes. Members in those IdP groups are migrated to "Custom" roles on the next sync. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2434934020/d154818947d8d84ebf1aec8d5462/image.png?expires=1787157900&signature=c9f825eb32aa8698a761ba1d5980f7ecb45e6c829d4707d63bd89348cd01b9da&req=diQkEsB9mYFdWfMW1HO4zQyCmEjiTEJhSnpHYy0fFQtjqTKoIfzrTatO2iOG%0AhyNtStYSKF70Z0NP%2Bgg%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2434934020/d154818947d8d84ebf1aec8d5462/image.png?expires=1787193900&signature=6435429f9e2513a4c1658e502b11c1710a27548ac7659f7c8c0446f25b71a91c&req=diQkEsB9mYFdWfMW1HO4zQyCmEjiQEZhSnpHYy0fFQvd2EnGBXVxVDqHj08d%0Azw%2BVxHuT125rbhSnuRE%3D%0A) Members in IdP groups mapped to "Custom" roles follow the permissions of the custom roles assigned to their groups in Claude. Members in IdP groups mapped to User follow the organization-level capability settings. If a member is in groups across both mappings, "Custom" roles take precedence. @@ -314,11 +314,11 @@ Use this path if your organization hasn’t enabled group mappings. 3. Use the bulk assignment tool in the Members table to change the selected members' role to "Custom." -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2260377969/ba3b7ba08518f0a50e2a84f82655/bdf1aea3-2fe7-4f3c-868b-cc35ae8b7d1d?expires=1787157900&signature=78f23dcb5cb1d0fd81f6b0877f472134a8f1bdf2eb11ef7e54d618c6cc81f736&req=diIhFsp5mohZUPMW1HO4zYFuwIYjgM6FlPaXg%2F0URIkSKnU%2FbkOtdAQFzQ%2BP%0AJ5BzDp2hHZQxXHA1qkY%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2260377969/ba3b7ba08518f0a50e2a84f82655/bdf1aea3-2fe7-4f3c-868b-cc35ae8b7d1d?expires=1787193900&signature=cb4a554680ac714b9458c31a1f1f2c19782363452203d19fe8d9aca9c984e860&req=diIhFsp5mohZUPMW1HO4zYFuwIYjjMqFlPaXg%2F0URImQgPeZE6QBec0dCv31%0AcaCerqJL8oau3jRqknQ%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2260378309/abe25b6478c721a2f965b35361b7/beff124a-0a44-4f7f-97f8-391ce6e8c55b?expires=1787157900&signature=c3b78f661de57a58762c79b7b71c297dd1338262b0977241f3eb0fdf12072686&req=diIhFsp5lYJfUPMW1HO4zRgyEF%2FdVu7fZ8KPhClFzQlKL%2BUF%2Fg%2BeQlzrmwIp%0AtNSUtLSb5b%2Ba1LlPDew%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2260378309/abe25b6478c721a2f965b35361b7/beff124a-0a44-4f7f-97f8-391ce6e8c55b?expires=1787193900&signature=b98d67e594439a73896704814b19bc7c99a6d8639074d3b0df1a53bbfe873c63&req=diIhFsp5lYJfUPMW1HO4zRgyEF%2FdWurfZ8KPhClFzQlSmFnlQrzl9RXAsXw1%0ATaDdqM6rSnK%2BcmJkcOU%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2484560173/7abf3438fa3d65afa03c4a99d4d4/Screenshot+2026-06-17+at+4_34_49%E2%80%AFPM.png?expires=1787157900&signature=951d9fb46057c4cfbd04cc8bf67e8fce0ca32fa9eb6c07dec91ce333173144b7&req=diQvEsx4nYBYWvMW1HO4zUXuwkl9LoRZiQnXWL6R1K8iTDaEP6JHnwtBLNFs%0AdQm%2BVlg%2FwBCXZ2%2FpUms%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2484560173/7abf3438fa3d65afa03c4a99d4d4/Screenshot+2026-06-17+at+4_34_49%E2%80%AFPM.png?expires=1787193900&signature=b04e85b076955427e724cf1e054f8e4c9b897d8c94794557196dc42f822cff2f&req=diQvEsx4nYBYWvMW1HO4zUXuwkl9IoBZiQnXWL6R1K%2BMSmHTeBQ%2F8dgtrsUS%0ASLrcaqOh0OrG%2BWDbK%2Fw%3D%0A) We recommend migrating a pilot group first—one team or department—and verifying their access is correct before expanding to the rest of the organization. @@ -354,9 +354,9 @@ Enabling a feature at the organization level doesn't mean everyone gets it—cus Navigate to the “Usage” page to assign a per-user monthly spend limit to any group. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2260386576/377ac052069ff5a35b3023f50d12/dface609-9d85-4ee1-8ed3-bfe019a2bd0a?expires=1787157900&signature=44ccb284d79a125572920af79e2d307346d865ffa4af0834e2a87af8d39997b9&req=diIhFsp2m4RYX%2FMW1HO4zfvdi5CeQAGDBMkPcsY1DF4IkuG%2FsPoi5Vj560%2Fu%0A7b7lZGA6BhQmfqdMviM%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2260386576/377ac052069ff5a35b3023f50d12/dface609-9d85-4ee1-8ed3-bfe019a2bd0a?expires=1787193900&signature=2e8c8f7464f08af66980dc25da8f429ed25746f1c9df3af205c8c686d3e80902&req=diIhFsp2m4RYX%2FMW1HO4zfvdi5CeTAWDBMkPcsY1DF7%2F5qZbX2LIcHOERvGE%0ATz2ZDyStYtdilO%2FTlJM%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2260386575/b9798bb7a2ab92024fa4d97f2ff4/7b2327e1-ab3f-41e5-8be0-77c0f35a4015?expires=1787157900&signature=06823dd9bf638d3591ae2bd7bb28add6605bac313f2760030ef99fefd5b71f5d&req=diIhFsp2m4RYXPMW1HO4zW55wNaYxVY4JuVz%2B3EZKJ5dEIJnYJNqXSWYgfz%2F%0Av00kUaqt7LVuftBji%2Bs%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2260386575/b9798bb7a2ab92024fa4d97f2ff4/7b2327e1-ab3f-41e5-8be0-77c0f35a4015?expires=1787193900&signature=18d6fd9f6888a6907cf879e8a3f2c2b04acbb68fc3a38a782354403f419ff349&req=diIhFsp2m4RYXPMW1HO4zW55wNaYyVI4JuVz%2B3EZKJ68GqSZ7kRHzrZvs9Hb%0AzA8GXh0mV4GeQXbRLYg%3D%0A) Note the following precedence rules: diff --git a/content/support/13947068-assign-tasks-from-anywhere-in-claude-cowork.md b/content/support/13947068-assign-tasks-from-anywhere-in-claude-cowork.md index d3ed36242..e2d1aa909 100644 --- a/content/support/13947068-assign-tasks-from-anywhere-in-claude-cowork.md +++ b/content/support/13947068-assign-tasks-from-anywhere-in-claude-cowork.md @@ -48,11 +48,11 @@ Follow these steps to get started: 5. You’ll land on a page describing the functionality. Click “Get started”: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2169954086/419674f781edb2977b93cce062b4/93b1893c-d79a-4eb6-b2f1-2fe3e043bd90?expires=1787157900&signature=ecd9774b68243e58dedfd57bc511dd1aaaf2cdeb385d5fe238e5d29083c46f99&req=diEhH8B7mYFXX%2FMW1HO4zSZP0pWKEAn2B32drIe5EDkE%2FjciPEFfh0FL3IXv%0AUjIS%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2169954086/419674f781edb2977b93cce062b4/93b1893c-d79a-4eb6-b2f1-2fe3e043bd90?expires=1787193900&signature=8a43dd44e00354554384343b41e930b504c488ae4aa4e2747260eb005f1e2afb&req=diEhH8B7mYFXX%2FMW1HO4zSZP0pWKHA32B32drIe5EDkKHLS60hp%2FJZZcI%2FaG%0ATF5D%0A) 6. On the next screen, you can give Claude access to your files and keep your computer awake by toggling those on: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2169955082/de4053ee0eab8fcb9263584bb171/d39b77da-1a69-4682-9fdb-7ed488f236b0?expires=1787157900&signature=18b8c137f92a4c2f9e289bb4fd0b6311110aabd8f2304f98f544333eb14e3cdd&req=diEhH8B7mIFXW%2FMW1HO4zaZWs92ZWAYXepuGRb1rD3Lbo1AY49W24bpdXXCp%0AsP1j%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2169955082/de4053ee0eab8fcb9263584bb171/d39b77da-1a69-4682-9fdb-7ed488f236b0?expires=1787193900&signature=bca02afcd172114344196ab88df9803afde2fc908045bda41ca800bad9b1005e&req=diEhH8B7mIFXW%2FMW1HO4zaZWs92ZVAIXepuGRb1rD3IbHXTyWjcLsuiUqbZI%0AvVqv%0A) 7. Click “Finish setup.” diff --git a/content/support/14116274-organize-your-tasks-with-projects-in-claude-cowork.md b/content/support/14116274-organize-your-tasks-with-projects-in-claude-cowork.md index 0cc3741e9..c953909ef 100644 --- a/content/support/14116274-organize-your-tasks-with-projects-in-claude-cowork.md +++ b/content/support/14116274-organize-your-tasks-with-projects-in-claude-cowork.md @@ -22,23 +22,23 @@ Cowork is available for paid plans (Pro, Max, Team, Enterprise) on: Find **Projects** in the left navigation panel and click the “+” button to see the three different ways to create a project: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2183720240/6f6ef438913391703598d86d606c/CleanShot+2026-03-20+at+09_11_43.png?expires=1787157900&signature=3fc5e4c1660571228fd637b613fc4320d3cc7fd4724465e22714686ac4c4ac1f&req=diEvFc58nYNbWfMW1HO4zcOgiwK71C98ZwSvwegvtgztfE2JjxJSI6%2BumUOR%0AsZq8JSjDirNrrohY7c8%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2183720240/6f6ef438913391703598d86d606c/CleanShot+2026-03-20+at+09_11_43.png?expires=1787193900&signature=e99b2566bbcf5235f1af210f163b3dfd81cb4048f1b504a45dec4ea27deae268&req=diEvFc58nYNbWfMW1HO4zcOgiwK72Ct8ZwSvwegvtgwh3KsPrX1y7U0vEgdj%0AvoSNvEyztH0zwFK%2FaIA%3D%0A) ### Start from scratch Selecting “Start from scratch” allows you to set up a new folder with instructions and files: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2177090014/07832b50003cf7fd3b4e9c7c448b/3385d9b8-c3e7-42b9-ae3f-4d213baa53a7?expires=1787157900&signature=a55848c65a8510600c0d5fa3b71329ad2ab1b905cec629712746d373e21f7b3e&req=diEgEcl3nYFeXfMW1HO4zZCoQ4pES3Kfvb0suCMAnj0Z2cc11Sk8vzOy7Joj%0AQyF5HcQDt2k0SVLFfbY%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2177090014/07832b50003cf7fd3b4e9c7c448b/3385d9b8-c3e7-42b9-ae3f-4d213baa53a7?expires=1787193900&signature=f5a66ede18fbb6f22bf56d03cdcea9f78f058c9c555915987790e195ff340000&req=diEgEcl3nYFeXfMW1HO4zZCoQ4pER3afvb0suCMAnj3gSFyzqWjCAtuT21fY%0AFgmh6IQv1kEbN8OYDHA%3D%0A) ### Import from a Claude project After selecting “Import from project,” you’ll see a “Search projects in Chat…” field: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2183717962/acdc11bcc825ae76a13f508365bc/CleanShot+2026-03-20+at+09_12_08.png?expires=1787157900&signature=12fbc2f8f5c976880bcfb1785e044e7fcb3132f827233d27ce6ccf5a34662297&req=diEvFc5%2FmohZW%2FMW1HO4zQQ7UGRcz58WjggUT7FIJz%2FczyL%2F99%2F1WBKQwhOT%0Acp83mycAhoJkY4TrX3M%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2183717962/acdc11bcc825ae76a13f508365bc/CleanShot+2026-03-20+at+09_12_08.png?expires=1787193900&signature=9bba822a21fc56a66ff604b5887f714623d8d4addcaf8fd8f6da5b46ad3cf6dd&req=diEvFc5%2FmohZW%2FMW1HO4zQQ7UGRcw5sWjggUT7FIJz9llL6uLULeWOV8K5BH%0APmQ0d4e6nZYxwYHaLHQ%3D%0A) Clicking into the field will display a drop-down showing your recent projects, but you can also use it to search all your projects. After you select a chat project (bulk upload is not supported), you can name the new Cowork project and choose where to save it on your computer: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2183727973/7a25430123d9e13e7c3cdd411f70/CleanShot+2026-03-20+at+09_13_41.png?expires=1787157900&signature=1e0c80581deead7e0fbde8e1b5f343ca30beefecbde99d7cc2e9f1a3697cf4e3&req=diEvFc58mohYWvMW1HO4zU%2FKAiRH%2BSTFI7f%2FdY0VL6j%2Be0wRfjMDtNJpwT4y%0AA%2BovMYPVjFEQRxR76I4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2183727973/7a25430123d9e13e7c3cdd411f70/CleanShot+2026-03-20+at+09_13_41.png?expires=1787193900&signature=dc2f7186bb13797cb71aaba7cda25a6ca8185339ac34573bedacc4ee278336be&req=diEvFc58mohYWvMW1HO4zU%2FKAiRH9SDFI7f%2FdY0VL6gQUiwBYevTIW%2Bj7nkR%0AKHOH8IfSTzQjQeMUKZU%3D%0A) Clicking “Create” will transfer the files and instructions from your existing Claude project and create a new Cowork project. @@ -46,11 +46,11 @@ Clicking “Create” will transfer the files and instructions from your existin If you select “Use an existing folder,” you’ll be prompted to pick a file to use as context for the new Cowork project: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2177087935/2f0052dae601d0b7fecdc029e1c3/2e3ca9e7-23b1-436e-bbdb-edcd31c41f15?expires=1787157900&signature=1b8716ae3ef1383d2d7b528ebb2fdb544d135fdef2e4c17b1e81b67930ea37e0&req=diEgEcl2mohcXPMW1HO4zejrnzHXECRWuv8e2Xj2xOUZy2KSKN1FpUYWxfpr%0AyUf8QVZ0U5t5U0gnn%2Fk%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2177087935/2f0052dae601d0b7fecdc029e1c3/2e3ca9e7-23b1-436e-bbdb-edcd31c41f15?expires=1787193900&signature=faab9c46e35aa0e07468aea1451270a962e692c266026d4c3a7fd97608582c6e&req=diEgEcl2mohcXPMW1HO4zejrnzHXHCBWuv8e2Xj2xOWEv0Vd6f5DFSivL0Ks%0A71rsxtkwBp3qKizt35Y%3D%0A) After selecting a folder, you can name the new Cowork project, choose where to save it on your computer, add instructions, and attach any additional files. Click “Create” to start using your new project: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2177087937/f59dbe3fc28448a9597ea097cb4d/96a59acb-4054-4b4b-a208-751f9711f535?expires=1787157900&signature=4aeb419a714e05a9953f8a46c5b5c293455cce650c76869ae4bea864d4b75a81&req=diEgEcl2mohcXvMW1HO4zUq4V%2BS1hqUzMfnqHouW6ML3ZohFfkr5MCwdjTK%2F%0ARCCWsnmO%2FPoK2Re%2FsGU%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2177087937/f59dbe3fc28448a9597ea097cb4d/96a59acb-4054-4b4b-a208-751f9711f535?expires=1787193900&signature=2a44f56d81471f6267be72609d19af5c85fc7d0676ab6e7adf9e3da7ccb37ed5&req=diEgEcl2mohcXvMW1HO4zUq4V%2BS1iqEzMfnqHouW6MKUX9%2FQZnVz8VHDpG%2BP%0ARtVFrCM2g0KkT2yPojI%3D%0A) --- diff --git a/content/support/14128542-let-claude-use-your-computer-in-cowork.md b/content/support/14128542-let-claude-use-your-computer-in-cowork.md index 695e7a247..26e0b7a34 100644 --- a/content/support/14128542-let-claude-use-your-computer-in-cowork.md +++ b/content/support/14128542-let-claude-use-your-computer-in-cowork.md @@ -40,7 +40,7 @@ If your work involves a physical machine, Claude keeps working while you step aw Claude asks for your permission before accessing each application. You’ll see a prompt and must approve before Claude can interact with that app. Some apps are off-limits by default. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2193297849/243cf7bd2386d92a253c2cec7d32/46cb6fcb-c0ee-4d1c-9974-9c1c1058c81c?expires=1787157900&signature=2083d33e3da739e3846a49471e35cb35be58ab6474caf42e42a12bcb869bebe4&req=diEuFct3molbUPMW1HO4za8%2BRnuDRieVOFMEfKzd96r%2B0zNSV7Xtg5khQ8F7%0ARVwPLz4xi%2FIKxGAWUSU%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2193297849/243cf7bd2386d92a253c2cec7d32/46cb6fcb-c0ee-4d1c-9974-9c1c1058c81c?expires=1787193900&signature=d9aa05e985a860c8d51546abc4ebfa26cc77e59f61e085a5da992a14c46c64b5&req=diEuFct3molbUPMW1HO4za8%2BRnuDSiOVOFMEfKzd96o8aBZNOmPoa7sSMFNo%0AVuvFR3pdcyTWl44jBGk%3D%0A) Claude is trained to avoid risky operations—like transferring funds, modifying or deleting files, or handling sensitive data—and to flag signs of prompt injection. However, these safeguards aren't perfect, and Claude may occasionally act outside these boundaries. @@ -128,7 +128,7 @@ To start using computer use: 3. Find the **Computer use** toggle and turn it on: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2193911341/630e6df3b08b27d1c7b4f1ca6a1f/image.png?expires=1787157900&signature=de6d79887b07590407c37fbc44d14ea33c8343af4f6fd9cbe2effc8ac8c8399e&req=diEuFcB%2FnIJbWPMW1HO4zR8GoUN9QE05jdPXX%2BaSOrGS5%2BhFWTNryMs3obyk%0AmX8t%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2193911341/630e6df3b08b27d1c7b4f1ca6a1f/image.png?expires=1787193900&signature=88ec03cfa2c524ad61fbfd146d7970234403396d6018763d4d2c65b29aa2829a&req=diEuFcB%2FnIJbWPMW1HO4zR8GoUN9TEk5jdPXX%2BaSOrHxq0om82tovEkohnFc%0AIq5Y%0A) 4. Open Cowork or Claude Code in the desktop app and start a session. diff --git a/content/support/14499648-how-scim-sync-works-for-enterprise-organizations.md b/content/support/14499648-how-scim-sync-works-for-enterprise-organizations.md index 8eba6edcf..7ccefdbda 100644 --- a/content/support/14499648-how-scim-sync-works-for-enterprise-organizations.md +++ b/content/support/14499648-how-scim-sync-works-for-enterprise-organizations.md @@ -50,7 +50,7 @@ You can trigger a manual sync from two places in your admin settings. 2. Click "Check for updates" under **SCIM sync**: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312613548/44cd5970ee3c3b2c7f8dcd592d71/image+%2824%29.png?expires=1787157900&signature=5fa8caaf551b444fd99c06d3e07a089dd5a3ad5c738ed8b6aafaecf28ee0c054&req=diMmFM9%2FnoRbUfMW1HO4zW4gbDKsMMq9rgfl7PnOiulIgS8xNbSldcrNkFAW%0A%2BL6n%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312613548/44cd5970ee3c3b2c7f8dcd592d71/image+%2824%29.png?expires=1787193900&signature=933c76361ec16d5f5100352ab28c0fc78b96feaa2aac60f0741847d7d0b94959&req=diMmFM9%2FnoRbUfMW1HO4zW4gbDKsPM69rgfl7PnOiumm1J8a2s2A2XS0N3cE%0AdwWi%0A) 3. Select whether to sync members, groups, or both. @@ -62,7 +62,7 @@ You can trigger a manual sync from two places in your admin settings. 3. Select whether to sync members, groups, or both: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312608119/e4b0ef4f309f3c4eac8311a6ef47/image.png?expires=1787157900&signature=9ac27958b7944e1fca04b6120b881065bca8eb82949de8d6515bed435c7efeda&req=diMmFM9%2BlYBeUPMW1HO4zX%2F4fr3xzjwW43OpyTHzM9TZAuGvmOnHLUMHQyJm%0A8O3t%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312608119/e4b0ef4f309f3c4eac8311a6ef47/image.png?expires=1787193900&signature=9fe4dc665f0b9e41070fd4cffe3fd9732c505db237b8ff5af6159c7943e94d58&req=diMmFM9%2BlYBeUPMW1HO4zX%2F4fr3xwjgW43OpyTHzM9RoP2Ao0mZbgQWPxKV7%0AcnWv%0A) **Note:** If you trigger a manual sync while background changes are processing, your organization takes the most recent change for each member or group. If multiple changes are queued for the same member or group, you may need to resync again to make sure everything applies correctly. diff --git a/content/support/14503613-sso-login.md b/content/support/14503613-sso-login.md index d5f60d1d8..1a4f0bc1f 100644 --- a/content/support/14503613-sso-login.md +++ b/content/support/14503613-sso-login.md @@ -47,9 +47,9 @@ Before configuring your Identity Provider (IdP), you must verify ownership of yo 3. Wait for the DNS propagation. Once the platform detects the record, the domain status will update to “**Verified**.” -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256015862/476131c3139aec4db01b96127544/10c7a165-8b26-4443-b064-9d659659c65e?expires=1787157900&signature=d5792eb4f0532f8b38b844438fa372c676dc322b1ba70d2bd427e37f86b9f112&req=diIiEMl%2FmIlZW%2FMW1HO4zdpfuC2JH1SG006zz1SmF9ULNkvsJS5c9ufnKQTV%0ALAKzgiMFHRvw9qnbn3Y%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256015862/476131c3139aec4db01b96127544/10c7a165-8b26-4443-b064-9d659659c65e?expires=1787193900&signature=0a2f81437a135486e95f2d41a6cd8c1b77eb014c8ab19ed39e2fddc4ccfec193&req=diIiEMl%2FmIlZW%2FMW1HO4zdpfuC2JE1CG006zz1SmF9VnB34MEh%2Bff69WPJcQ%0Aj78B6qkYhwIN9c8g27E%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256025910/a82e2de9382824fa9db7666f67c4/CleanShot%2B2026-04-09%2Bat%2B16_25_20-402x.png?expires=1787157900&signature=cd50fb73b8c3d9e7424c6e62d7d80e775e0e8e0daaa872e4dbabc5324a74818d&req=diIiEMl8mIheWfMW1HO4zV%2BGnR4%2BRrhOx57dwYq5DdKqCdX6K2%2BpGqsgZGhh%0ABRr8QYRZ36JZq7Y2XFY%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256025910/a82e2de9382824fa9db7666f67c4/CleanShot%2B2026-04-09%2Bat%2B16_25_20-402x.png?expires=1787193900&signature=299983418b756a56410852b6bc505f6911c734fbe9de01048c3731d81eea8627&req=diIiEMl8mIheWfMW1HO4zV%2BGnR4%2BSrxOx57dwYq5DdLwuGUE7KRyCqdF4iyD%0AaUkbHYU1Qnq%2FaZoKKm4%3D%0A) **Important:** Each domain can only have one identity provider. If multiple organizations share a single login domain, IT administrators from both organizations will be able to modify login settings. Contact **[Anthropic Support](https://claude.fedstart.com/support)** for assistance with multi-organization setups. For more details about multi-organization setups, see our **[SCIM provisioning guide](https://support.claude.com/en/articles/14503643-set-up-scim-in-claude-for-government)**. @@ -77,7 +77,7 @@ Once your SAML application is set up in your IdP, provide Anthropic with the det - Claims Information — Attribute mappings for user name and email. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256004522/a97b91092b393e93b2d7779f63e6/2db86a6d-1582-419e-925e-cbc914468fa1?expires=1787157900&signature=9436ffa984c413bb6e7306520eb063eb761c335e851d73a9e09e137ed1aa9042&req=diIiEMl%2BmYRdW%2FMW1HO4zQE9JrC3%2FxPybfNHh%2Fvd8OFflcwcCg%2BdG3XLQAYa%0AgDlTuh9B1W93IZmXE9Y%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256004522/a97b91092b393e93b2d7779f63e6/2db86a6d-1582-419e-925e-cbc914468fa1?expires=1787193900&signature=08cd1d4fffde78b84c22bb23655ed345d37a24df4fda046deb6d4b2f7c1fe71e&req=diIiEMl%2BmYRdW%2FMW1HO4zQE9JrC38xfybfNHh%2Fvd8OHlgqVDEO9lmmj1X%2FmL%0AeBmPNVQMiamaTc%2BLmYI%3D%0A) **Tip:** Using a metadata XML file: Most IdPs let you download a metadata.xml file. Upload it on the identity settings page to auto-fill the Signing Certificate, IdP Entity ID, and SSO URL. Some IdPs (like Entra ID) also include claims information in the metadata file; if present, the system will suggest field mappings automatically. diff --git a/content/support/14503643-set-up-scim-in-claude-for-government.md b/content/support/14503643-set-up-scim-in-claude-for-government.md index aff8328ec..504e93e00 100644 --- a/content/support/14503643-set-up-scim-in-claude-for-government.md +++ b/content/support/14503643-set-up-scim-in-claude-for-government.md @@ -41,7 +41,7 @@ With SCIM, login and provisioning are separate. Your IdP tells Anthropic who sho **Important**: Store this key securely. It cannot be retrieved after you leave the page. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256040196/c3b045028c4c2edef9172b6fb424/9a71258e-ae73-41e3-83a2-d24a240ac0ae?expires=1787157900&signature=dca4a0a6ba30f0d8c2615bfadc905ea103423ff0cd36a01d2f6dfc95410dc62e&req=diIiEMl6nYBWX%2FMW1HO4zSrRlasebDEdyIvvU1hav7PlEBy00IauNRmNTHm0%0AyYZXXHU63mHC1teEJzQ%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256040196/c3b045028c4c2edef9172b6fb424/9a71258e-ae73-41e3-83a2-d24a240ac0ae?expires=1787193900&signature=1afee3308d3863944e14a72ea2d93b298a7cfde5b8bb69a634668dcbf8750a20&req=diIiEMl6nYBWX%2FMW1HO4zSrRlaseYDUdyIvvU1hav7NtN%2FEGNJrVXby0jT38%0A1efeWMjECs1Ty9YG848%3D%0A) ### Step 2: Configure SCIM in your Identity Provider @@ -67,7 +67,7 @@ After enabling the integration in your IdP: **Warning**: When you fully enable SCIM provisioning, any users who were **not** synced via SCIM will be removed from the organization. Confirm that all expected users appear in the sync before proceeding. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256040198/da9188b8b968d5f900cc08e9ceb2/3814ab37-c3fa-4256-8d16-49c1e1b4c654?expires=1787157900&signature=aaa3eb5b55b6cc39c6dd22b60ed5d500dc3d448a2fe2256886021f7c5aba0fba&req=diIiEMl6nYBWUfMW1HO4zeLvMl9uT0vzoWupW8zJgMqSwA1SLWW6OwWKX2XD%0AC93OiVbPcZl3a8foSNc%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256040198/da9188b8b968d5f900cc08e9ceb2/3814ab37-c3fa-4256-8d16-49c1e1b4c654?expires=1787193900&signature=854232ab9a1098b29f90cac95d11fccea6e079b974ccc99e9dc53d3ba7e17895&req=diIiEMl6nYBWUfMW1HO4zeLvMl9uQ0%2FzoWupW8zJgMoiONFXzepny8%2FYjdly%0A9TikQB3QXcKEcuMVcDU%3D%0A) ### Step 4: Map groups to roles and seat tiers @@ -83,7 +83,7 @@ SCIM provisioning uses IdP groups to assign roles and seat tiers within Claude f 3. Save your mappings. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256056441/f7eb09bba549e9861fc81b961cc7/2760fa5b-87bb-491f-9354-ca3cd2bc4475?expires=1787157900&signature=25b93e730a395e1ac492edec0261920a43cca7669a8880e89d41c441ea4a3526&req=diIiEMl7m4VbWPMW1HO4zaWhsXQjt0ASh340B79BYGYug2RHxW8pWDPciBEP%0AtsYTOevPCy72hy0rI8w%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256056441/f7eb09bba549e9861fc81b961cc7/2760fa5b-87bb-491f-9354-ca3cd2bc4475?expires=1787193900&signature=3bb2081bb5369d1e174bd3d63c5693624626571b5d4528a57531f50301a5e5e0&req=diIiEMl7m4VbWPMW1HO4zaWhsXQju0QSh340B79BYGYZ%2BFSYGCKDwOAP1JQI%0AQsTxgi%2F2eNB5UBUIHpI%3D%0A) If you manage multiple organizations under a single parent (see below), each organization maintains its own role and seat tier mappings. Switch between organizations using the organization selector in the bottom-left corner of the page. diff --git a/content/support/14503775-mcp-web-search.md b/content/support/14503775-mcp-web-search.md index db0d88e0c..ab1373676 100644 --- a/content/support/14503775-mcp-web-search.md +++ b/content/support/14503775-mcp-web-search.md @@ -4,7 +4,7 @@ The Web Search connector gives Claude the ability to search the public internet For questions about web search in commercial Claude, see **[Enabling and using web search](https://support.claude.com/en/articles/10684626-enabling-and-using-web-search)**. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256120763/7652c6c669446113eae75f3c5977/9c74d57e-aaa2-4f1c-bfe4-2b9b87fd41ab?expires=1787157900&signature=91db140d40d0f400c19eccd5e557dfdfab28eb6527f4afa3d5c1eb95cae886fa&req=diIiEMh8nYZZWvMW1HO4zQvFLLVSiMPxM%2Fw5SJgC29FN%2Bdr%2B2klGB9QTJhC7%0Ak%2BunmlrSlWQeSsHuLj4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2256120763/7652c6c669446113eae75f3c5977/9c74d57e-aaa2-4f1c-bfe4-2b9b87fd41ab?expires=1787193900&signature=e0c5efb6c17426a64020464c83c5b735f713b64ffb09d9179baadd7c694b09c0&req=diIiEMh8nYZZWvMW1HO4zQvFLLVShMfxM%2Fw5SJgC29F5UIyXmUiUqJXhweNn%0AcZWAfOVTgUxZCy6Tv6M%3D%0A) ## How Web Search differs for Claude for Government diff --git a/content/support/14604397-set-up-your-design-system-in-claude-design.md b/content/support/14604397-set-up-your-design-system-in-claude-design.md index f95f2d159..1fbf5acc3 100644 --- a/content/support/14604397-set-up-your-design-system-in-claude-design.md +++ b/content/support/14604397-set-up-your-design-system-in-claude-design.md @@ -72,7 +72,7 @@ To validate your design system, create a test project and see if the output matc Once you’re satisfied with the design system quality, make sure the “Published” toggle is switched on. After publishing, any projects created from the Claude Design homescreen while in your organization will use your design system instead of the default. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2287527007/b1c46cb8dba4cd7e8bbea85fb0c3/2819c6cf-9ce1-4df5-84c8-feae0164bf2e?expires=1787157900&signature=8809743b69036ce6b67336b4416d1c7591602b4ae3cec20bb3e9ae25c1e395d3&req=diIvEcx8moFfXvMW1HO4zWNHF%2FWKCzweIQKNMXlu0T%2FCFOZreuEO5ozxTc5N%0AwAp%2Blv22zdEUtogPRy0%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2287527007/b1c46cb8dba4cd7e8bbea85fb0c3/2819c6cf-9ce1-4df5-84c8-feae0164bf2e?expires=1787193900&signature=0cdb4eb93810250b656532715e1502a3d75f1c20e7d31ecc2392ba3150ca59ce&req=diIvEcx8moFfXvMW1HO4zWNHF%2FWKBzgeIQKNMXlu0T9USFl4Rem9gx%2BPflRX%0A5Z2PxYlTuyRZgydlL2s%3D%0A) --- diff --git a/content/support/14604406-claude-design-admin-guide-for-team-and-enterprise-plans.md b/content/support/14604406-claude-design-admin-guide-for-team-and-enterprise-plans.md index 5992fab80..478f29ebe 100644 --- a/content/support/14604406-claude-design-admin-guide-for-team-and-enterprise-plans.md +++ b/content/support/14604406-claude-design-admin-guide-for-team-and-enterprise-plans.md @@ -18,7 +18,7 @@ Team and Enterprise plan admins can enable this organization-wide by following t 2. Find the **Claude Design** toggle under **Anthropic Labs** and switch it on. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2289240025/8a528b6cccc3ea1001c25953cb14/image.png?expires=1787157900&signature=c7b1b4fb9956faceb07b90b22ba12196414f22f9b48edc0262b33efb37c125a0&req=diIvH8t6nYFdXPMW1HO4zahp3eUJHOEsDIPtKBLQ9H%2FCcu5bqFl7BAqZUNmT%0AxjyFj2Bc%2BSVs6R%2FDfWA%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2289240025/8a528b6cccc3ea1001c25953cb14/image.png?expires=1787193900&signature=35ac044af0ac92812b53c4f123ad56a57cc06a7b62dc41579edff041ae410b74&req=diIvH8t6nYFdXPMW1HO4zahp3eUJEOUsDIPtKBLQ9H8sNe%2FuuJZ7kYJpJsNW%0ATbkAOdafQ93ltjpFyK0%3D%0A) --- diff --git a/content/support/14604416-get-started-with-claude-design.md b/content/support/14604416-get-started-with-claude-design.md index 4cc4666c8..51702f5e6 100644 --- a/content/support/14604416-get-started-with-claude-design.md +++ b/content/support/14604416-get-started-with-claude-design.md @@ -153,7 +153,7 @@ Use the “Export” button in the upper right corner when viewing your project - Send to Claude Code Web -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2287510952/553a03eec5cea7b9eff53b473552/6dc33363-38b1-444e-96bb-f8218b588173?expires=1787157900&signature=31ddfe98fde4cfb5e8d90f63cf04358db7c15dfe20c31c0563a4dabfe1f78c10&req=diIvEcx%2FnYhaW%2FMW1HO4zQFD4Stbnmp9nfz9ljnuyXSYDTYD2DbcCLH2XknN%0Ampmyc%2B43Xs0mWjN4L74%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2287510952/553a03eec5cea7b9eff53b473552/6dc33363-38b1-444e-96bb-f8218b588173?expires=1787193900&signature=c200bdf087b84c84fc893c5b49583eddf4c3af3e9b07790f42b9e39c38ccb046&req=diIvEcx%2FnYhaW%2FMW1HO4zQFD4Stbkm59nfz9ljnuyXT1Aggh4MFSEJmJo%2BQ4%0AC1mxUqKJWFnaNVjsiHQ%3D%0A) You can also share projects within your organization using a shareable link. Sharing options include view-only, comment, and edit access. diff --git a/content/support/14782391-claude-enterprise-consumption-guide.md b/content/support/14782391-claude-enterprise-consumption-guide.md index f2ade3d49..07f81f6b2 100644 --- a/content/support/14782391-claude-enterprise-consumption-guide.md +++ b/content/support/14782391-claude-enterprise-consumption-guide.md @@ -1,6 +1,6 @@ # Claude Enterprise consumption guide -Claude Enterprise gives your organization access to powerful AI across chat, Claude Code, and Claude Cowork. With that access comes the responsibility of managing consumption effectively—ensuring your team gets maximum value while keeping usage predictable and within budget. +Claude Enterprise gives your organization access to powerful AI across chat, Claude Code, Claude Cowork, Claude Design, and Claude in the tools your teams already use, including Microsoft 365, Chrome, and Slack. With that access comes the responsibility of managing consumption effectively—ensuring your team gets maximum value while keeping usage predictable and within budget. This guide walks Enterprise admins through the key levers available to control and optimize token consumption: setting spend caps, configuring role-based access controls, educating users, and choosing the right model and effort level for the right task. @@ -22,6 +22,8 @@ Admins who proactively configure spend limits and educate users can reduce waste | Claude Code | Higher intensity. Each coding session includes system prompts, file context, tool calls, and multi-turn reasoning—more tokens per session than chat. | | Claude Cowork | Higher intensity. Agentic workflows, multi-step task execution, and Skills generate significant intermediate token usage that may not be visible to end users. | +Other surfaces also draw on your organization's usage and appear as separate products in Analytics, the spend export, and the Analytics API: (a) Claude for M365 (Excel, PowerPoint, Word, Outlook add-ins), subject to the same org, group, and per-user spend limits and model restrictions; (b) Claude Design (beta), which bills from your organization's consumption at standard API rates with org, group, and per-user limits applying; (c) Claude in Chrome, whose side panel runs as a Claude Cowork session, so multi-step browsing tasks consume like other Cowork agentic work (manage under Organization settings > Cowork); (d) Claude Tag (Claude in Slack, beta), whose channel work bills to the organization's usage balance rather than to individual seats, so per-user and group limits don't cap it; set the Claude Tag spend limit (and optional per-channel limits) at **[claude.ai/admin-settings/usage/claude-tag](https://claude.ai/admin-settings/usage/claude-tag)**. DMs with Claude Tag bill to the sender's own seat. + **Admin tip: Set expectations with your team** Users running Claude Code or Cowork workflows may not realize how token-intensive their sessions are. A single Cowork task or Claude Code debug session can consume many more tokens than chat. Include this context in any user onboarding you send. @@ -40,7 +42,7 @@ Think about groups in terms of job function and use case, not organizational hie - Limit group proliferation. More than 8–10 groups becomes hard to manage. Start with 4–6 and split only if usage patterns clearly diverge. -- Use groups to gate access to high-intensity surfaces. For example: only members of the "Engineering" group can access Claude Code; other users see Chat and Cowork only. +- Use groups to gate access to high-intensity surfaces. For example: only members of the "Engineering" group can access Claude Code; other users see Chat and Cowork only. Access is granted by the custom roles you assign to each group, and it only takes effect for members whose organization role is set to Custom. Members left on the built-in User role keep everything enabled org-wide. Groups can be created manually or synced from your identity provider. See **[Set up role-based permissions on Enterprise plans](https://support.claude.com/en/articles/13930458-set-up-role-based-permissions-on-enterprise-plans)**. - Assign group-level spend caps as a starting point, then override at the user level for outliers (e.g., a non-technical PM who needs Claude Code for a specific project). @@ -52,7 +54,7 @@ Once groups are configured: - When a group consistently approaches its cap, investigate before automatically raising it—the right response might be model guidance (use Sonnet instead of Opus) rather than more budget. -- Consider assigning a "group owner" in each department who is responsible for reviewing usage and fielding questions from their team. This distributes the admin burden and puts someone with business context in the loop. Please note, this would entail providing these individuals admin rights, which may not be desired. +- Consider assigning a "group owner" in each department who is responsible for reviewing usage and fielding questions from their team. This distributes the admin burden and puts someone with business context in the loop. You don't need to make these people Owners or Admins: create a custom role that grants the Analytics (Can view) admin permission—and optionally Billing (Can view) so they can see the Usage page—and assign it to a small 'usage reviewers' group. Admin permissions only apply to members whose role is set to Custom, and Analytics view access is organization-wide rather than limited to their group. **Governance tip: Surface access as a first gate** @@ -98,21 +100,11 @@ User-level caps let you set consumption limits for individual accounts. These ar - Monitor individual usage reports monthly to identify outliers—both users consistently hitting their cap (may need more) and users consuming very little (may not be activated yet). -**Recommended starting points** - -| **User type** | **Code** | **Cowork** | **Chat** | -| --------------- | -------- | ---------- | -------- | -| Power (Top 10%) | $500 | $100 | $90 | -| Typical (Mean) | $215 | $40 | $30 | -| Light (Median) | $40 | $10 | $5 | - -**These figures are rough planning estimates. Actual consumption will vary based on your team's size, workflows, and usage patterns.* - --- ## Model selection guidance -One of the most impactful things an admin can do is set clear guidance for users on which model to use for which tasks. Model choice has a direct and significant impact on token consumption—Opus can consume several times more tokens than Sonnet for the same task. +One of the most impactful things an admin can do is set clear guidance for users on which model to use for which tasks. Model choice has a direct and significant impact on spend. Effort level is a second consumption lever. Users can choose how much thinking Claude applies to each response, and higher effort levels consume more tokens than lower ones. Encourage users to reserve Max effort for only the most demanding tasks and to use lower effort for routine tasks. @@ -125,7 +117,7 @@ Effort level is a second consumption lever. Users can choose how much thinking C | Claude Sonnet | Everyday tasks, writing, analysis, Q&A | Moderate | Default model for all users—set as your org-wide default (see below) | | Claude Haiku | Simple lookups, summaries, fast responses | Low | High-volume, lightweight automation tasks | -### Set your organization's default model (beta) +### Set your organization's default model Beyond guiding users toward the right model, you can set the model that new conversations start with for everyone in your org. This is one of the most direct consumption levers available—the default shapes what the majority of users run day to day. @@ -135,7 +127,7 @@ You have two options: - **Choose your own** — sets a specific model as the org default and holds it there until you change it. Use this when you want to standardize on a known model for consumption predictability (for example, defaulting to Sonnet rather than Opus). -This setting applies to chat and Cowork only. Claude Code model defaults are managed separately through managed settings. +This setting applies to new conversations in chat, Claude Cowork, Claude Code (CLI 2.1.199 or later), and Claude for Microsoft 365. If the selected model isn't available in a product, Anthropic's recommended default is used. If you also pin a model for Claude Code through managed settings, that setting takes precedence for the CLI and IDE. See **[Set a default model for your organization](https://support.claude.com/en/articles/15330088-set-a-default-model-for-your-organization)**. You can also set model defaults by role through Custom Roles, so different groups can start on different models—for example, defaulting your engineering group to one model and the rest of the org to another. This pairs naturally with the RBAC groups you've already configured (see Section 2). @@ -151,8 +143,6 @@ Beyond setting a default, you can restrict which models are available at all—a - **Custom role level:** for members on Custom roles, each role grants access to a *subset* of what's enabled at the org level. A role can't grant a model the org has disabled — the org setting is always the ceiling. -**Note:** Haiku models are always available to every member and can't be disabled, so there's always a fallback model. - If a member belongs to multiple groups with different custom roles, access is **additive** — they get every model any of their roles grants (as long as it's enabled org-wide). **Capping effort level by role** @@ -165,7 +155,7 @@ If model guidance (the "Sonnet is your default" messaging) isn't landing and you **Where this applies** -Model access and effort restrictions are enforced in chat (web, desktop, mobile), Claude Cowork, Office Agents, Claude Design, Claude Tag, and Claude Code (CLI 2.1.199+—earlier versions still show restricted options but requests using them are rejected). Claude in Chrome and Claude Security don't support this yet. +Model access and effort restrictions are enforced across most Claude products, including chat (web, desktop, mobile), Claude Cowork, and Claude Code (CLI 2.1.199 or later—earlier versions still show restricted options but requests using them are rejected). Claude in Chrome and Claude Security don't support this yet. For the current list of supported products, see **[Manage model access for your organization](https://support.claude.com/en/articles/15694740)**. **How to configure:** Organization settings → Roles → select a role → Models tab. Set model access, an optional effort cap per model, and an optional role-level default model. To manage configuration across the org, go to **Organization settings → Models**. More details in **[Manage model access for your organization](https://support.claude.com/en/articles/15694740)**. @@ -185,11 +175,11 @@ Model access and effort restrictions are enforced in chat (web, desktop, mobile) --- -## Using org preferences to shape user behavior +## Using organization instructions to shape user behavior -Org Preferences let admins inject standing guidance into every Claude conversation across your organization—effectively giving Claude a system prompt that reflects your team's norms, best practices, and guardrails. This is a high-leverage tool for shifting user behavior without adding friction, because the guidance shows up in-product at the moment of use rather than in documentation users have to go find. +Organization instructions let admins inject standing guidance into every Claude conversation across your organization—effectively giving Claude a system prompt that reflects your team's norms, best practices, and guardrails. This is a high-leverage tool for shifting user behavior without adding friction, because the guidance shows up in-product at the moment of use rather than in documentation users have to go find. -A few ways you can use Org Preferences to manage consumption and usage patterns: +A few ways you can use organization instructions to manage consumption and usage patterns: - **Nudge-against token-intensive output formats**. If you've noticed proliferation of a particular artifact type (e.g., HTML dashboards being shared in cross-functional threads where a simpler format would do), you can instruct Claude to confirm with the user before generating one. This adds a lightweight check without removing the capability entirely. @@ -203,7 +193,7 @@ A few ways you can use Org Preferences to manage consumption and usage patterns: ### Analytics page -The Analytics page within the user menu (**claude.ai/analytics**) is the fastest way to get a read on your org. It shows weekly active users, seat utilization, top connectors, total spend (MTD/QTD/YTD), spend by model, and a top-10 users-by-spend leaderboard. Product-specific views for Chat, Claude Code, Claude Design, and Cowork break down activity for each surface. **[Learn more](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans)**. +The Analytics page within the user menu (**claude.ai/analytics**) is the fastest way to get a read on your org. It shows weekly active users, seat utilization, top connectors, total spend (MTD/QTD/YTD), spend by model, and a top-10 users-by-spend leaderboard. Product-specific views for chat, Claude Code, Cowork, and Claude Design break down activity for each surface. **[Learn more](https://support.claude.com/en/articles/12883420-view-usage-analytics-for-team-and-enterprise-plans)**. ### Skills analytics and per-skill ROI @@ -221,7 +211,7 @@ The calculation currently happens outside the product, but the CSV export makes ### Spend report CSV export -If you need a one-off detailed breakdown, you can export a per-user, per-model spend report as a CSV from **Analytics → All Activity → Spend → Export Spend**. Choose MTD, last month, last 90 days, or a custom range up to 90 days back. The CSV includes user email, user ID, account UUID, product, model, request count, prompt and completion tokens, and net and gross spend in USD. +If you need a one-off detailed breakdown, you can export a per-user, per-model spend report as a CSV from the Analytics page: in the spend section ("How much is Claude costing?") on the Overview tab, click "Export spend report" and choose MTD, last month, last 90 days, or a custom range up to 90 days back. ### Analytics chat @@ -231,9 +221,9 @@ Use this when you have a specific question and don't want to navigate the dashbo ### Analytics API -For programmatic access, use the Claude Enterprise Analytics API. Pull a ranked list of users by tokens used or dollars spent, or look at usage and cost trends over time broken down by product, model, context window, or region. Each request is capped at 31 days wide, starting within the last 365 days, and no earlier than Jan 1, 2026. +For programmatic access, use the Claude Enterprise Analytics API. Pull a ranked list of users by tokens used or dollars spent, or look at usage and cost trends over time broken down by product, model, RBAC group, context window, region, or service tier (standard vs. fast). Grouping the cost report by RBAC group gives per-department spend for chargeback without exporting per-user rows. Each request is capped at 31 days wide, starting within the last 365 days, and no earlier than January 1, 2026. -Your Primary Owner can generate an admin API key. Data refreshes every four hours; for invoicing-grade totals, query dates 30+ days in the past so late events have time to reconcile. **[Learn more](https://platform.claude.com/docs/en/manage-claude/analytics-api)** and review the **[API reference guide](https://platform.claude.com/docs/en/api/admin/analytics)**. +Your Primary Owner can create a key with the read:analytics scope under Organization settings > API. Cost and usage data typically lands within about four hours (occasionally up to 24) and can be revised for up to 30 days, so query dates 30+ days in the past for invoicing-grade totals. Engagement endpoints such as users, skills, plugins, and connectors update daily with roughly a one-day lag. **[Learn more](https://platform.claude.com/docs/en/manage-claude/analytics-api)** and review the **[API reference guide](https://platform.claude.com/docs/en/api/admin/analytics)**. ### Per-user skills, plugin, and connector usage @@ -243,7 +233,7 @@ This is useful for the same per-skill ROI questions above, just broken down by i ### Admin API -For organizations managing limits across many groups, the **[Admin API](https://support.claude.com/en/articles/15330651-claude-enterprise-admin-api-reference-guide)** moves cost-control workflows into scripts — automating increase-request reviews, flagging members near their limits, and surfacing rapidly changing usage at scale. Learn more with our **[API docs](https://platform.claude.com/docs/en/manage-claude/spend-limits-api).** +For organizations managing limits across many groups, the **[Admin API](https://support.claude.com/en/articles/15330651-claude-enterprise-admin-api-reference-guide)** moves cost-control workflows into scripts — automating increase-request reviews, flagging members near their limits, and surfacing rapidly changing usage at scale. The API reads every member's effective limit and month-to-date spend and sets or clears per-user overrides. Group, seat-type, and org-level limits are still configured in Organization settings. The Admin API's user-management endpoints (currently in beta for Enterprise organizations) also let you create groups, add or remove members, and read your custom roles programmatically. See **[User management](https://platform.claude.com/docs/en/manage-claude/user-management)**. ### Spend-threshold alerts @@ -281,6 +271,12 @@ When you onboard users, share the following: **What happens when they hit a cap** -- If a user hits their individual cap, they can contact their group owner or the IT/admin team to request an increase. +- Users are notified in-product as they approach their spend limit and, once they hit it, can click "Request more usage" to send an increase request to admins without leaving Claude. Tell users who their approver is and your expected turnaround. + +- Nothing they've already produced is lost. The request that's already in flight completes, but further requests are blocked, so a multi-step Claude Code or Claude Cowork task may pause before it finishes. They can pick the work back up as soon as an admin raises the limit, or when limits reset at 00:00 UTC on the 1st of the month. + +**Resources to share with users** + +- **[Anthropic Academy](https://www.anthropic.com/learn)** -- They won't lose work in progress—Claude will complete the current turn before limiting further usage. \ No newline at end of file +- **[Change the model, effort, and thinking settings](https://support.claude.com/en/articles/8664678-change-the-model-effort-and-thinking-settings)** \ No newline at end of file diff --git a/content/support/15330088-set-a-default-model-for-your-organization.md b/content/support/15330088-set-a-default-model-for-your-organization.md index 29e9e30cb..683602b3d 100644 --- a/content/support/15330088-set-a-default-model-for-your-organization.md +++ b/content/support/15330088-set-a-default-model-for-your-organization.md @@ -46,7 +46,7 @@ The organization default applies to every member. To set it: 4. Click “Save changes.” -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514722139/d05c94072a41ea9090ecf386c53e/c32ee31d-954a-4551-a2da-91677fbd0b6f?expires=1787157900&signature=7825ca1618794deb1c375c5b3bd493130962ae9c8cec32fbd58894569dc0642a&req=diUmEs58n4BcUPMW1HO4zelOdzVBKE9OfdGVZ664dGFzQjacglw3Kr8AanFW%0AgbKb5y508Ex6gszejXY%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514722139/d05c94072a41ea9090ecf386c53e/c32ee31d-954a-4551-a2da-91677fbd0b6f?expires=1787193900&signature=0670049007cd47f9e12e748f0ef25f257ece79a507242c3b4061050b9851822b&req=diUmEs58n4BcUPMW1HO4zelOdzVBJEtOfdGVZ664dGHi5w4WaVNu8Y3H1yaF%0AvyEGpAiIhsbAirwM7EE%3D%0A) --- diff --git a/content/support/15694740-manage-model-access-for-your-organization.md b/content/support/15694740-manage-model-access-for-your-organization.md index c5d2ac46d..4f93c3ed3 100644 --- a/content/support/15694740-manage-model-access-for-your-organization.md +++ b/content/support/15694740-manage-model-access-for-your-organization.md @@ -42,9 +42,9 @@ The organization setting is the ceiling, so a role can’t grant access to a mod If any custom role uses the model you’re disabling as its default, you’ll be prompted to change that role’s default before the change can be saved. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514693921/02ea72756f5163f14e5d158516dc/69102088-cd86-498e-97aa-c8a6e0004419?expires=1787157900&signature=f70ddd3ecf3ff18415c3fa68516d82029f4683315267c8d8d0c9d93dbef1acf3&req=diUmEs93nohdWPMW1HO4zXlxEuC4UtZeQf5Pb7M2Q0upxzOw0WdIrvxolk1W%0AXF3S6GROtKMhZBPTlIc%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514693921/02ea72756f5163f14e5d158516dc/69102088-cd86-498e-97aa-c8a6e0004419?expires=1787193900&signature=faabc9e53e2cc57e10c4f6c3e4d3d51cacc331544ca3adc33b346a552414e6d3&req=diUmEs93nohdWPMW1HO4zXlxEuC4XtJeQf5Pb7M2Q0sj99TYYbCGRFYshg9d%0AnIfAMSVw5oba7lrkeec%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514693922/bfc5de6626eb19dca1d7caf818ca/c3cd8bb6-f86c-4d01-92da-6ae4ca966662?expires=1787157900&signature=e8a7f0cc6e2eb9819ee5d808205bc0d44e984599ab600a50a71ab347b374b66d&req=diUmEs93nohdW%2FMW1HO4zTqNsY7EQ19eAod9uc510lwPwX%2BxyHE%2BwN1h%2BpFB%0AeWSSGG1Nk2u3XjpRD9E%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514693922/bfc5de6626eb19dca1d7caf818ca/c3cd8bb6-f86c-4d01-92da-6ae4ca966662?expires=1787193900&signature=609cd33725e0ba285f2418b85a84fb939127f77bc68b14744f8bbbf8a1129417&req=diUmEs93nohdW%2FMW1HO4zTqNsY7ET1teAod9uc510ly0FYAPMv1nOuC9UEGY%0AC6ekbSzmD4lfy3OBXUc%3D%0A) --- @@ -62,7 +62,7 @@ If any custom role uses the model you’re disabling as its default, you’ll be Only models the role grants access to can be selected as that role’s default model. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514693923/880665a87dbd4776cf19d6063a37/29d30c6d-f9fc-408c-8c72-4320c6d88d14?expires=1787157900&signature=26be825ed93186b5540648b342fb2331f1c6792f4a9d8c4c4a49c4b2cb5d3fc0&req=diUmEs93nohdWvMW1HO4zYj9SfIC6Ia0XsqpNqvyFRLPOjxjTu2NjSBtGZMc%0AqQdh%2FV%2F1xuhUajnY7y8%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514693923/880665a87dbd4776cf19d6063a37/29d30c6d-f9fc-408c-8c72-4320c6d88d14?expires=1787193900&signature=404b40d60557cdcdd7ea5fd6138ea85afa63b383a03bb3614fc64af14f226479&req=diUmEs93nohdWvMW1HO4zYj9SfIC5IK0XsqpNqvyFRJqtkQafZ6T%2BIB5H3w3%0AmCQL6jrXfRmtGyYfocI%3D%0A) --- @@ -80,7 +80,7 @@ Effort limits determine how much computation members on a role can apply per res 5. Click "Save" to save your changes. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514693927/7a25673b3b075d72adb3cdc371e3/d2d7cd8d-a713-4e91-a706-f589ac46a9fe?expires=1787157900&signature=d03c7d8f95f202f587f4e84096cde262b4f25bcdab7897ecd6be324895d8a555&req=diUmEs93nohdXvMW1HO4ze1xBjS9dr4QDeA1RkowXUGFNe5yChhmI8tvoe2L%0AdX3NTGoKQPvAzb2j5hY%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2514693927/7a25673b3b075d72adb3cdc371e3/d2d7cd8d-a713-4e91-a706-f589ac46a9fe?expires=1787193900&signature=295fd7d39e4ca024a314574228b912a499dd158f407c091f04167b4ae077cfc3&req=diUmEs93nohdXvMW1HO4ze1xBjS9eroQDeA1RkowXUF8oywNSiRyOwtz9Mmh%0Afd7tktxYANBjGVilTkQ%3D%0A) Members on the role see only effort levels at or below the cap in their model menu. Note that available effort levels differ depending on the model, and some models don’t support effort level settings at all. For an explanation of each level, see **[Change the model, effort, and thinking settings](https://support.claude.com/en/articles/8664678)**. diff --git a/content/support/15936181-get-started-with-1password-for-claude.md b/content/support/15936181-get-started-with-1password-for-claude.md index 574d120c9..1807c4787 100644 --- a/content/support/15936181-get-started-with-1password-for-claude.md +++ b/content/support/15936181-get-started-with-1password-for-claude.md @@ -52,7 +52,7 @@ Once the requirements are in place, you can set up 1Password from a few places i 4. Toggle on **Password managers**: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2546126596/ba71ca47e2df21cec62c243831f8/5b1c67e1-607d-4c73-8f61-d1ceb081082a?expires=1787157900&signature=d4e463b3ee4168005486f3c277b64319043a8323658f03031b2f1c678e1d1647&req=diUjEMh8m4RWX%2FMW1HO4zU5lnmxvqMJqGkiu4hEpcPWWa6XWHukYIICpbFDB%0AMJaqKERynZqtWOjBbjE%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2546126596/ba71ca47e2df21cec62c243831f8/5b1c67e1-607d-4c73-8f61-d1ceb081082a?expires=1787193900&signature=b99a9a0af2e620f5bfa93186b5790cfea68e3afa30177c9e45de5f413b30aac5&req=diUjEMh8m4RWX%2FMW1HO4zU5lnmxvpMZqGkiu4hEpcPW6xeoFSw7gR29TNeuG%0AtKMPy6XqKm48346stHs%3D%0A) Once enabled, eligible users will see the discovery options above. Users still need to install and set up the required apps and extensions themselves. diff --git a/content/support/8114491-get-started-with-claude.md b/content/support/8114491-get-started-with-claude.md index 9c729c00d..c1c1667e8 100644 --- a/content/support/8114491-get-started-with-claude.md +++ b/content/support/8114491-get-started-with-claude.md @@ -36,7 +36,7 @@ You use **prompts** to communicate with Claude. The best approach is to speak to Type your prompt into the chat interface and click the submit button to start a conversation with Claude. You can click the "+" button in the lower left or type "/" to view additional options and commands: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1916208578/2cf2ea52f1f884084b57983a8805/image.png?expires=1787157900&signature=65f26b9258515a71f15d9c464323057f70e8bd1e069feb77d3b086534992ac6b&req=dSkmEMt%2BlYRYUfMW1HO4zV2J7SjLsYCI9crMELaMZPyGP%2FDa%2BQouNnNaFh5Z%0AT0wefDL76ZSYYXooHKY%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1916208578/2cf2ea52f1f884084b57983a8805/image.png?expires=1787193900&signature=05359d8177445ae4bb0a89054a3b230821d2a972888addbfbea645dc587f832b&req=dSkmEMt%2BlYRYUfMW1HO4zV2J7SjLvYSI9crMELaMZPx2vtFUoliHfR8Bcbsr%0AG2A5bkh4ilxDx1PyvFg%3D%0A) --- diff --git a/content/support/8230524-delete-or-rename-a-conversation.md b/content/support/8230524-delete-or-rename-a-conversation.md index 6da492ebb..886e49535 100644 --- a/content/support/8230524-delete-or-rename-a-conversation.md +++ b/content/support/8230524-delete-or-rename-a-conversation.md @@ -44,15 +44,15 @@ These steps apply to Claude for iOS, listed on the App Store as Claude by Anthro 4. If deleting, tap "Delete" again in the confirmation prompt. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599501318/75c28edc693efbe8befd21e4da64/d18a921a-df4b-4788-833c-12c966a32527?expires=1787157900&signature=781fa6986dcf7d42edea86627e0443be0d6a6a37c5d36b9ccaa1d68f0101c553&req=diUuH8x%2BnIJeUfMW1HO4zSc12albjWei1DBI29QsIlG5miZ7jrP8fcYzVBqr%0Ab98%2BcxZ5ZnpJp3skuYw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599501318/75c28edc693efbe8befd21e4da64/d18a921a-df4b-4788-833c-12c966a32527?expires=1787193900&signature=0add8100cf7a87a6cc84f5dd323b21491a54ea0dc7197c733fa6a8ad3f94d0cd&req=diUuH8x%2BnIJeUfMW1HO4zSc12albgWOi1DBI29QsIlG7XZIlVm2ymKlEJaCG%0AlhvWabUpOxVoJjdQDHY%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493852/2e58b92d18f307bb79ae30650f26/1bbe52f3-202b-4d5d-9f9a-eeda4d6952c3?expires=1787157900&signature=93c5f5d2189563e62771f8acce170864293bff092b0647f6ab5d65c12359cd9a&req=diUuH813nolaW%2FMW1HO4zTjXMuCNK8fsj7blKEDtUI1PI7BGKEd%2Bmh3dblli%0A8qovbdtTLIlB3m02roU%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493852/2e58b92d18f307bb79ae30650f26/1bbe52f3-202b-4d5d-9f9a-eeda4d6952c3?expires=1787193900&signature=d8851b1e6b5557e0eca23c64fd2d17f99a351f8488ecc56757c80dc95c90f55e&req=diUuH813nolaW%2FMW1HO4zTjXMuCNJ8Psj7blKEDtUI1d21l%2FOMiMajrrJ8nf%0AZZ6H%2FZz6t06FsXsLqJs%3D%0A) You can also delete the conversation you have open: tap the "⋯" button in the top right corner, tap "Delete," then confirm. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493848/997184c386d0e6fb0bd2d7c1f2b6/5d2bc394-25fc-4814-8c2a-2f54d004f83f?expires=1787157900&signature=a1943d934811d096b7d9c8668a01553560e17298a78b6a675ed41268560369b9&req=diUuH813nolbUfMW1HO4zVCIqp3OzttPzQl%2BKgU984wBaFqB4M3jJjNzuHaA%0AVdaiSBRP2zCC6YXm%2FY0%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493848/997184c386d0e6fb0bd2d7c1f2b6/5d2bc394-25fc-4814-8c2a-2f54d004f83f?expires=1787193900&signature=5c8b447c7bb45571d5e242abbf264fc59ab2eb2a5a9aff2a136e28bd1ad6e2c4&req=diUuH813nolbUfMW1HO4zVCIqp3Owt9PzQl%2BKgU984zo5Pca4K5uujFSKQmB%0Ap41lEjubvn9nyRUWw18%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493856/799041da9fa918e90068c5ebf5bd/2e8d5cee-c45a-41d7-a14b-486e50a37f88?expires=1787157900&signature=a92c95b922041b42ac05e3ed8ca116f1aa74525bc5e85b5829d155addb3457dc&req=diUuH813nolaX%2FMW1HO4zVCl4A%2Fz1GJEEDIU8RT6jk0fGDGld7gFnW6VMu0H%0AoCUkB%2FrLtyOIMH46Q3Q%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493856/799041da9fa918e90068c5ebf5bd/2e8d5cee-c45a-41d7-a14b-486e50a37f88?expires=1787193900&signature=16da1454c25d1e0206994620116deaab2bd1790378b82af50d2707d805fcd3ac&req=diUuH813nolaX%2FMW1HO4zVCl4A%2Fz2GZEEDIU8RT6jk17ZjrDfNHNf7SbXSj7%0AiWMz0Oa1joflqWQaaCQ%3D%0A) ## Delete or rename a conversation on Claude for Android @@ -66,9 +66,9 @@ These steps apply to the Claude for Android, listed on Google Play as Claude by 3. If deleting, tap "Delete" again in the confirmation prompt. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493850/a64e6561222d535f2f5bd03e71f0/5de429c2-d8ed-4e8a-89e8-a13ccaa49767?expires=1787157900&signature=171c13a8592c2664b1829d7922307ee2f9e2a772e5768e8a14add609fd187c20&req=diUuH813nolaWfMW1HO4zVTdd9Utx1d8rqtc0YNNUtLIP7E3UjXajgtg%2Faao%0AvsVbuA7z%2B%2BaO3mkQX8k%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493850/a64e6561222d535f2f5bd03e71f0/5de429c2-d8ed-4e8a-89e8-a13ccaa49767?expires=1787193900&signature=3432ca9a45721ea011124056cde2869ece822cc73e597233f3b55e10f86a5ba6&req=diUuH813nolaWfMW1HO4zVTdd9Uty1N8rqtc0YNNUtJQtCM6i72jFze3Pzff%0A8kACbZm9R5j%2FbwYQpXI%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493851/f21b39c60e88050d4b0745325f0d/0a8c0d08-dc53-4ef1-8d9f-2b995242c1f9?expires=1787157900&signature=c7295a0ed8175872c806b792042efd4d94cb32e0e9dd18bb1b9fe0412e90e0ce&req=diUuH813nolaWPMW1HO4zUYvw1IKpzlV%2FjekULCQNzUH0qwOykDPXeThaAQJ%0AMmxf5Ahc094xtBJyqiU%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493851/f21b39c60e88050d4b0745325f0d/0a8c0d08-dc53-4ef1-8d9f-2b995242c1f9?expires=1787193900&signature=ff9a698bb4a94736d9496ae706af509b79cb22cb9f07acefd0dac83e3c7c0b53&req=diUuH813nolaWPMW1HO4zUYvw1IKqz1V%2FjekULCQNzWb0Z8EISDsKA4S2rff%0AUEWRSr8N6O%2BiNyygKrY%3D%0A) **To delete multiple conversations at once:** @@ -78,9 +78,9 @@ These steps apply to the Claude for Android, listed on Google Play as Claude by 3. Tap the trash icon, then tap "Delete" in the confirmation prompt. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493849/3013a0ab921337b4544f7ffeffa6/e828ec14-fb52-4205-a840-707b6f2a848d?expires=1787157900&signature=8fb45e99d8d2083b6688e7660036966c159a375a5bffe051285658b0ef6e415c&req=diUuH813nolbUPMW1HO4zWGamMB1f4rW4AqhTnZa84X%2F6J1ohRZt%2BXpSGo14%0AVl8ri7FzIKowPGlAkwI%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493849/3013a0ab921337b4544f7ffeffa6/e828ec14-fb52-4205-a840-707b6f2a848d?expires=1787193900&signature=58eef38540a4048ff3003e0c9fd3c8393d475ea05e1d51f99737296296f79e68&req=diUuH813nolbUPMW1HO4zWGamMB1c47W4AqhTnZa84W25THEWXb%2BicnKJy%2FY%0AOXQHOSWzDNVgj00qGJ4%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493853/e2507f53cce8a26776a22a457b1a/bd79bb8a-b078-420f-a4e1-75590367aa80?expires=1787157900&signature=49b7a3fb3a36401cb0f8157c6481cdfcc1db7959d8c2953359b597be10f2e24e&req=diUuH813nolaWvMW1HO4zQTtExLwwUcxSBGfF3I2bRiFGOYTf2e5pIEE6QQ5%0Ag2J6mCMaIoN%2BKVIuy%2F4%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2599493853/e2507f53cce8a26776a22a457b1a/bd79bb8a-b078-420f-a4e1-75590367aa80?expires=1787193900&signature=c02f45c97aac5b8b70f9517c16e06a6a4ff077587472af6169fe5d56c7c722e5&req=diUuH813nolaWvMW1HO4zQTtExLwzUMxSBGfF3I2bRhtFqXn%2BS3eI9iUcZ0o%0AcW06Id6j7g0u7EiR7%2Bs%3D%0A) ## What happens when you delete a conversation diff --git a/content/support/8325618-paid-plan-billing-faqs.md b/content/support/8325618-paid-plan-billing-faqs.md index bd28cc5e5..e09e240a5 100644 --- a/content/support/8325618-paid-plan-billing-faqs.md +++ b/content/support/8325618-paid-plan-billing-faqs.md @@ -50,7 +50,7 @@ There's no separate option to remove a card, and updating to a new card replaces If you want to use a name other than the one tied to your payment method, check the "Use a different name on invoices" box when adding or updating your payment method in **[Settings > Billing](https://claude.ai/settings/billing)**. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1922141785/666191101c11030b05f03a668a74/image.png?expires=1787157900&signature=0f6275b9815e645c97e5cb89fa2fdcb3ce1b6203ce5623cb986cd0703bd70590&req=dSklFMh6nIZXXPMW1HO4zVXW8GqqbjTFQoNvNFTb5cd5VYqh6u9IVmqpM4WF%0AtOEnjx2kctz6Jjt%2F34c%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1922141785/666191101c11030b05f03a668a74/image.png?expires=1787193900&signature=264ef21299e2411946473f4dd2ccb1135348d0e28ada2a279fb7e8e8603d7cb2&req=dSklFMh6nIZXXPMW1HO4zVXW8GqqYjDFQoNvNFTb5cfyjF8k0eJMrvt5oCSi%0AleSOi1ul6c3XeAMA0FA%3D%0A) ## How can I edit a paid invoice? diff --git a/content/support/8606378-how-do-i-use-the-playground.md b/content/support/8606378-how-do-i-use-the-playground.md new file mode 100644 index 000000000..4bbd811e3 --- /dev/null +++ b/content/support/8606378-how-do-i-use-the-playground.md @@ -0,0 +1,107 @@ +# How do I use the playground? + +**Workbench is now the playground**. Playground enables developers to try out Claude models and API features directly in the Claude Console, but does not support saving prompt history or evaluating prompts. + +If you have saved data from **Workbench (legacy)** that you wish to export, you can do so until **September 1, 2026** in **[Console settings](https://platform.claude.com/settings/privacy)**. This data will no longer be recoverable after September 1, 2026. See **[How do I export my Workbench data from Console?](#h_ce935c603b)** for more. + +## What is the playground? + +The playground is built directly on the public **[Messages API](https://platform.claude.com/docs/en/build-with-claude/working-with-messages)**, so the request you build in the playground is the same request you will send in your code. + +Use it to: + +- Try a model or a new API feature before you write any code + +- Iterate on a prompt and inspect the full response + +- Learn how API requests and responses are structured + +- Export your work as a code snippet you can run in your own application + +Playground doesn't store your prompts or conversations on Anthropic's servers. Your current draft stays in your browser, and you can go to the “code" tab to keep a copy of any request. + +## Open the playground + +1. Log in to the **[Claude Console](https://platform.claude.com/)**. + +2. Select "Playground" in the navigation. + +3. If your organization uses workspaces, choose the workspace you want to work in. + +## Write and run a request + +1. Enter a user message in the prompt area. You can also add a system prompt to set instructions or context. + +2. Click "Run" to send the request. + +3. Review Claude's response, along with the token counts and usage shown for the request. + +4. Edit your prompt and run it again to keep iterating. + +Playground also includes example templates you can load and modify. + +## Choose a model and adjust settings + +Use the model selector to switch between Claude models, and open the model settings to adjust parameters like temperature and maximum output tokens. + +Running the same prompt with different models or settings is a quick way to see how the response changes. As you think about building your application with the Messages API, use the playground to understand the power of the models. + +## Use tools and structured outputs + +Add tool definitions to your request to test tool use, and use structured outputs to have Claude return data in a shape you define. Playground shows tool calls and tool results in the response, so you can see exactly how they're represented in the API. + +## View the raw request and response + +Playground can show the raw API request and response, including the full message structure, stop reason, and usage. This is the same shape your application sends and receives and is a practical way to try out the features of the Messages API. + +## Turn your work into code + +Click the "code" toggle to export your current request as a code snippet. The snippet reflects exactly what you've tested in the playground, so you can paste it into your project and run it with your own API key. + +Code examples in our documentation include an "Open in Playground" option, which loads the example into the playground so you can run and modify it. + +--- + +## How do I export my Workbench data from Console? + +1. Go to **[Claude Console](https://platform.claude.com/settings/privacy)**. + +2. In the **Export Workbench data** dialog, choose what to include alongside your prompts: + + 1. **Model completions** — saved responses from past runs + + 2. **Uploaded files** — images and PDFs attached to your prompts +​ +​**Note:** Including either may significantly increase the export size. + +Primary Owners or Admins also have the option to export data for their entire organization. + +3. Select "Export." Your data is packaged as JSON, and we'll email you a download link when it's ready. + +Export your data before **September 1, 2026**. It won't be accessible after this date. + +--- + +## Frequently asked questions + +### What happened to Workbench (legacy)? + +**Workbench (legacy) is now retired.** The playground replaces it for trying Claude models and API features in the Console. It does not support saving prompt history or evaluating prompts. + +### What's the difference between Workbench (legacy) and the playground? + +The playground is a simpler, stateless way to try Claude models and API features in the Console. The main differences is that it now: + +- It doesn't store your work on Anthropic's servers. Your current draft stays in your browser, and you can export any request as code. With Workbench (legacy) you were able to save prompts, prompt history, and run evals. + +- It is built directly on the public Messages API and shows the full request and response, so what you see matches what your code sends and receives. + +- Saved prompts, prompt versions, evals, and prompt sharing aren't part of the playground. Use the export function in the legacy version to download your data. + +### How do I get access to my existing data from Workbench (legacy)? + +You can no longer access this data directly in Console. You can export it as JSON in **[Claude Console](https://platform.claude.com/settings/privacy)** until September 1, 2026. After this date, it will no longer be recoverable. + +### Can I import my Workbench data into the playground? + +No. The playground doesn't save prompts or conversations, so there's nothing to import into. The export gives you a copy of your Workbench data so you can keep it or move it into your own tools. \ No newline at end of file diff --git a/content/support/8887527-customizing-your-appearance-settings.md b/content/support/8887527-customizing-your-appearance-settings.md index 39d45264d..c96d8abbb 100644 --- a/content/support/8887527-customizing-your-appearance-settings.md +++ b/content/support/8887527-customizing-your-appearance-settings.md @@ -8,7 +8,7 @@ 3. Select from Light, Match System, and Dark under **Color mode**. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1648260417/d478c757c7115ad58a12026d4caf/AD_4nXc__Qop4X9hknWGfGj_y_DCpLutLruhxIclJIfir0ilsgNMg7X8ksIVnqk1Oce5FKlGIOYu9CKbVsu8DqD7iIY2aC0ZfXMyFTeAdNq-Cao2mXcj_WUpNF0kM2HoYR_dEx6N_cuJow?expires=1787157900&signature=3ff58634a83eb3c2f0f339e73a0387ec978918de0531d09a7c3b1d6e6ea38cdc&req=dSYjHst4nYVeXvMW1HO4zc2jJ6U8hYztSBkgeTglJrr90CyxTtf6FD6I3%2FJe%0AyF1jVENUst8hwmz4tLs%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1648260417/d478c757c7115ad58a12026d4caf/AD_4nXc__Qop4X9hknWGfGj_y_DCpLutLruhxIclJIfir0ilsgNMg7X8ksIVnqk1Oce5FKlGIOYu9CKbVsu8DqD7iIY2aC0ZfXMyFTeAdNq-Cao2mXcj_WUpNF0kM2HoYR_dEx6N_cuJow?expires=1787193900&signature=8ce42cec441be55d83cde4483da4f73220d81f67dbd96513ffae99a613b1b331&req=dSYjHst4nYVeXvMW1HO4zc2jJ6U8iYjtSBkgeTglJrpSSONf3RtttD0EbRzP%0AIhcbjdZloT5%2FHBg7euk%3D%0A) ## How to change your font @@ -16,10 +16,10 @@ 2. Select from Default, Match System, and Dyslexic Friendly. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1648260416/7fc0803d44d8de40f8e6636b2eb6/AD_4nXf0UEDa1i2QmqlQtoB5BgpQ-FfZVzss_7wMVQdvkmEDSfoTxixnG0GSxC6qrOs21HdkXH-I2Yn_GHDAf8yjd6FJtoh9FadALozvIErFp9r8LychDGLPb7OpN1CN4PRcgVAYNCre?expires=1787157900&signature=54ae06256157995e619ccade6d3ff8a4cb7a7f4932a4033996063d6f36112155&req=dSYjHst4nYVeX%2FMW1HO4zc8962fkWHY1QtNFlF5%2FHEfUbMV1%2BltdUZDu%2Bi6%2B%0AHTL0HPHsxHndLrGy1y8%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1648260416/7fc0803d44d8de40f8e6636b2eb6/AD_4nXf0UEDa1i2QmqlQtoB5BgpQ-FfZVzss_7wMVQdvkmEDSfoTxixnG0GSxC6qrOs21HdkXH-I2Yn_GHDAf8yjd6FJtoh9FadALozvIErFp9r8LychDGLPb7OpN1CN4PRcgVAYNCre?expires=1787193900&signature=ab8de089650138d5ca92f1adc052b80f1f62a86d6aef5488c1a76548ed9e9260&req=dSYjHst4nYVeX%2FMW1HO4zc8962fkVHI1QtNFlF5%2FHEfJ9Z7E1MluMDzoN4Rh%0AJyVlb5IkKqrQqiCeGLs%3D%0A) ## Can I disable the sidebar? It's not currently possible to completely disable the sidebar. You can click the button on the top right of the sidebar to open or close it. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1941108004/5217903737ddd9bb62fe5d7a904c/CleanShot+2026-01-14+at+09_12_58.png?expires=1787157900&signature=6919142498e775af7a30268cc858adb38ca03f12a395b6cc4989ba62c60402e2&req=dSkjF8h%2BlYFfXfMW1HO4zUS%2BB1j3XHzmylfYa7uDb9mpvVqJ%2FeU1pBB7DUcb%0ARkTRxG7Vm0XAErWkk20%3D%0A) \ No newline at end of file +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1941108004/5217903737ddd9bb62fe5d7a904c/CleanShot+2026-01-14+at+09_12_58.png?expires=1787193900&signature=b40da0b3e650ce72919301ce71f0c0ff4d0a8fec032cf77705bae1249cea2b0a&req=dSkjF8h%2BlYFfXfMW1HO4zUS%2BB1j3UHjmylfYa7uDb9nxml85ngVWdtQK8V9r%0AkXez%2FeFIqhVnqI5O%2FZc%3D%0A) \ No newline at end of file diff --git a/content/support/8977456-how-do-i-pay-for-my-claude-api-usage.md b/content/support/8977456-how-do-i-pay-for-my-claude-api-usage.md index 40be8593a..ce225c672 100644 --- a/content/support/8977456-how-do-i-pay-for-my-claude-api-usage.md +++ b/content/support/8977456-how-do-i-pay-for-my-claude-api-usage.md @@ -1,25 +1,61 @@ # How do I pay for my Claude API usage? -Claude API and the playground usage is billed via prepaid "usage credits." Credits must be purchased prior to using the API, and your credits will be applied to your usage according to our current **[pricing](https://claude.com/pricing#api)**. These credits can be used for API access, the playground usage, and Claude Code. Failed requests are not charged, and you will only be billed for successful API calls and completed tasks. +This article explains how billing works for the Claude API, the playground, and Claude Code when you use them through a Claude Console account. Most organizations pay with prepaid usage credits. Organizations with an invoicing arrangement are billed monthly instead. -You can track credit usage in your **[Claude Console settings on the Billing page](https://platform.claude.com/settings/billing)**. If you run out of credits, you will no longer be able to call the API or use the playground. You can choose to set up an auto-reload that purchases additional credits when your balance falls below a set limit. +## Prepaid usage credits -To add usage credits and adjust your auto-reload settings, navigate to your Billing page. Click on the “Buy credits” button, and enter in the amount of credits you would like to purchase. After you’ve purchased your credits, they will be immediately available to you. +Claude API and playground usage is billed through prepaid usage credits. Buy credits before you use the API, and they're applied to your usage according to our current **[pricing](https://claude.com/pricing#api)**. Credits cover API access, playground usage, and Claude Code. -You can also view your organization's available credit balance in your **[Claude Console settings on the Billing page](https://platform.claude.com/settings/billing)**. +You're billed only for successful API calls and completed tasks. Failed requests aren't charged. -To adjust your auto-reload options, click on “Edit” in the auto-reload section. You can toggle auto-reload on or off here. If choosing to use auto-reload, you can set the minimum account balance, and the amount to reload to if your account reaches that minimum balance. +**Note:** If your client disconnects or times out in the middle of a request that was on track to succeed, that request is still charged. -Please note that purchased credits are subject to our **[Credit Terms](https://www.anthropic.com/legal/credit-terms)**. Credits expire one year from the purchase date, and this expiration date cannot be extended. Expired credits will appear in your **[Console billing settings](https://platform.claude.com/settings/billing)** under **Invoice history**. All credit purchases are non-refundable. +If you run out of credits, you can no longer call the API or use the playground until you add more. -Learn more about credit usage and how it relates to usage limits in our **[Claude API docs](https://platform.claude.com/docs/en/api/rate-limits)**. +## Buy credits -## How to update your Console payment method +1. Log in to the Console with an Admin or Billing role. -1. Log in to your Console account with an Admin or Billing role. +2. Navigate to **[Settings > Billing](https://platform.claude.com/settings/billing)**. + +3. Click "Buy credits." + +4. Enter the amount of credits you want to purchase and confirm. + +Purchased credits are available immediately. Your organization's available credit balance and credit usage are shown on the same **Billing** page. + +## Set up auto-reload + +Auto-reload purchases additional credits automatically when your balance falls below a threshold you set. + +1. On the **Billing** page, click "Edit" in the **Auto-reload** section. + +2. Toggle auto-reload on or off. + +3. If auto-reload is on, set the minimum balance that triggers a purchase and the amount to reload to. + +## Credit expiration and refunds + +Purchased credits are subject to our **[Credit Terms](https://www.anthropic.com/legal/credit-terms)**. Credits expire one year from the purchase date, and the expiration date can't be extended. Expired credits appear in your **Invoice history** on the Billing page. All credit purchases are non-refundable. + +Learn more about how credit usage relates to rate limits in the **[Claude API docs](https://platform.claude.com/docs/en/api/rate-limits)**. + +## Monthly invoicing + +Some organizations are billed monthly in arrears instead of buying credits upfront. This applies to Console organizations with an invoicing arrangement set up through our Sales team. + +On monthly invoicing, we aggregate your usage across API calls, Console usage, and any other services associated with your account, and bill it at our standard **[pay-as-you-go pricing](https://claude.com/pricing#api)**. At the end of each calendar month, you'll receive an invoice from Stripe. Enter your payment details in Stripe to pay it. + +You can view charges for the current billing period on the **[Billing](https://platform.claude.com/settings/billing)** page in your Console settings. + +If you need custom rate limits, monthly invoicing, or hands-on support, **[contact our Sales team](https://claude.com/contact-sales)**. + +## Update your Console payment method + +1. Log in to the Console with an Admin or Billing role. 2. Navigate to **[Settings > Billing](https://platform.claude.com/settings/billing)**. -3. Click the pencil icon next to your current payment method to update your card information. +3. Click the pencil icon next to your current payment method. 4. Enter your new card details in the **Update payment method** modal, then click "Update." \ No newline at end of file diff --git a/content/support/9028421-how-can-i-delete-my-claude-account.md b/content/support/9028421-how-can-i-delete-my-claude-account.md index 4e7ef6d4a..00f328506 100644 --- a/content/support/9028421-how-can-i-delete-my-claude-account.md +++ b/content/support/9028421-how-can-i-delete-my-claude-account.md @@ -1,23 +1,61 @@ -# How can I delete my Claude account? +# Delete your Claude account -Once you are logged in, click your initials or name in the lower left corner and select "Settings." Navigate to **[Settings > Account](https://claude.ai/settings/account)** and click the "Delete account" button: +This article shows you how to permanently delete your account on the web and in the Claude mobile apps, and explains what happens to your data when you do. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2274267534/e7064e2657b1bd20031ba40da11c/CleanShot+2026-04-14+at+09_48_08.png?expires=1787157900&signature=a4d99a734a11700598a0ede42b81987c481e1de354424308c9e7de9646fb8f03&req=diIgEst4moRcXfMW1HO4zeqzlXsPI4b1oVDupr7i4THid%2F3u6gHYDl4ejeqV%0A71mtClgO%2F1UIrsF5cm0%3D%0A) +**Important:** Deleting your account is permanent. You'll lose access to your conversations, projects, and other saved data, and you can't recover the account afterward. If you want to keep your data, export it on web or desktop before you delete. Learn more about **[exporting your Claude data](https://support.claude.com/en/articles/9450526-how-can-i-export-my-claude-data)**. -## Considerations for paid Claude accounts +## Before you delete a paid account -Before deleting Claude accounts with paid subscriptions (Pro or Max plans): +If you're on a Pro or Max plan: 1. Cancel your subscription from your **[Billing settings](https://claude.ai/settings/billing)**. 2. Wait until the end of your current subscription period. -3. Once the subscription lapses, proceed with account deletion. +3. Once the subscription lapses, delete your account using the steps below. -Click "Delete account" and follow the prompts. **Please note that deleting your account is permanent** and you will no longer have access to saved chats. If you wish to keep your data, we recommend exporting it before deletion by following the steps listed here: **[How can I export my Claude data?](https://support.claude.com/en/articles/9450526-how-can-i-export-my-claude-data)** +For detailed cancellation instructions, including for Claude for iOS and Android, see **[Cancel your Pro or Max subscription](https://support.claude.com/en/articles/8325617)**. -If you have multiple accounts associated with the same email address, you'll need to specify which accounts you want to delete when making your request. +## Delete your account on the web -There are some scenarios where you will need to **[contact our team](https://support.claude.com/en/articles/9015913-how-to-get-support)** to delete your account. If this is the case, it will be noted in your account: +1. Go to **[claude.ai](https://claude.ai/)** and click your initials or name in the lower left corner. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584796811/331afc5dc61eec6f72786155b782/Screenshot+2025-06-23+at+1_54_23%E2%80%AFPM.png?expires=1787157900&signature=90c1b8efca724ebd3f8563f72d12214cda5e01447bf0397b9f7d94dd017bf1de&req=dSUvEs53m4leWPMW1HO4zXW0qxIKHo1SVOsMorzl%2B%2FQugfoMMSY7K4mPZPd1%0AgZ5zTcQnRO1vpjW%2BDnA%3D%0A) \ No newline at end of file +2. Select "Settings," or navigate directly to **[Settings > Account](https://claude.ai/settings/account)**. + +3. Click "Delete account" and follow the prompts. + +## Delete your account on Claude for iOS + +These steps apply to Claude for iOS, listed on the App Store as Claude by Anthropic. + +1. Open the Claude app and tap "Settings." + +2. Find the **Account** section and tap "Profile." + +3. Tap "Delete account." + +4. Tap "Delete" to confirm. + +## Delete your account on Claude for Android + +These steps apply to Claude for Android, listed on Google Play as Claude by Anthropic. + +1. Open the Claude app and tap the menu button in the upper left corner. + +2. Tap your initials in the lower left corner. + +3. Tap "Profile." + +4. Under **Account Actions**, tap "Delete Account." + +5. Tap "I Understand" to confirm. + +## What happens when you delete your account + +When you delete your account, you’ll no longer have access to your conversations, projects, and account information. Learn more about **[how long Anthropic stores your data](https://privacy.claude.com/en/articles/10023548-how-long-do-you-store-my-data)**. + +## When you need to contact support + +In some scenarios you'll need to contact our team to delete your account. If this applies to you, it'll be noted in your account settings. Learn more about **[how to get support](https://support.claude.com/en/articles/9015913-how-to-get-support)**. + +If you have multiple accounts associated with the same email address, you'll need to specify which accounts you want to delete when you contact us. \ No newline at end of file diff --git a/content/support/9267400-move-your-personal-claude-account-to-a-team-or-enterprise-organization.md b/content/support/9267400-move-your-personal-claude-account-to-a-team-or-enterprise-organization.md index ada317cf9..5522d8ea6 100644 --- a/content/support/9267400-move-your-personal-claude-account-to-a-team-or-enterprise-organization.md +++ b/content/support/9267400-move-your-personal-claude-account-to-a-team-or-enterprise-organization.md @@ -126,7 +126,7 @@ For the full walkthrough of your options, deadlines, and what happens to your su You may have both a personal account and an organization account tied to the same email address. You can switch between them by clicking your initials or name in the lower left corner of the screen. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312193347/712f763fc290b2488c103849f20c/0c135a6f-3442-4ee1-9ab7-98673f03ef6e?expires=1787157900&signature=23d94ef1c1446edd6aaef82d9d61dc6c1c744ddc279e5eeb41bdddf519920b60&req=diMmFMh3noJbXvMW1HO4zXhPndc3zRhoufhmlOXMdYb5Yv4eDXUzVh6DwBhv%0AZvcU%2BdDrR0Mlj4%2BGYog%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2312193347/712f763fc290b2488c103849f20c/0c135a6f-3442-4ee1-9ab7-98673f03ef6e?expires=1787193900&signature=5a653878d3d6e24ae8c8f552aa60b6fae3d4b6b12700a64f9c8bba58363fae69&req=diMmFMh3noJbXvMW1HO4zXhPndc3wRxoufhmlOXMdYYJ7ou37txGTjwIHLfc%0AjtNPYPGxQcAtaT%2F7epc%3D%0A) A blue checkmark shows which account you're currently using. Click the other account to switch to it and access its separate conversations and projects. diff --git a/content/support/9519177-how-can-i-create-and-manage-projects.md b/content/support/9519177-how-can-i-create-and-manage-projects.md index 734522ac4..98c9cd8d0 100644 --- a/content/support/9519177-how-can-i-create-and-manage-projects.md +++ b/content/support/9519177-how-can-i-create-and-manage-projects.md @@ -104,19 +104,19 @@ Starring a project allows for quick access from your projects and chats list, vi You can move a standalone chat into a project by clicking on the dropdown arrow next to the chat name, then “Add to project”: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1784190248/0f19c8de18b494a27be252fdfaff/d4e7a5c5-25f5-4623-862b-c593d2dc0b39?expires=1787157900&signature=c1fcb62882be6fa1e961f695ff59cce07dde7985a91318b3eb9578be03a55c40&req=dScvEsh3nYNbUfMW1HO4zQABaWZtT6ccBSXNVFXQ%2FVHq7R2VpSa9CQqlrksd%0ALw4UXKU42zzkh54fe24%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1784190248/0f19c8de18b494a27be252fdfaff/d4e7a5c5-25f5-4623-862b-c593d2dc0b39?expires=1787313600&signature=21038e856624509c3059c18672683db9b3373252b7148845b7b1beed2a8cbc7d&req=dScvEsh3nYNbUfMW3nq%2BgXuLDiqq7DYwX%2FkvfZakkxFHN7pe5yPzUOfPxs%2Bi%0Aempr9qYCOgWcEe9HWJTERwCCkVw%3D%0A) Browse or search for the correct project in the **Move chat** modal that appears, then click on it to move the chat. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1784190951/34dc256ccd4c0cf74976f31062e6/55365cf2-059d-41b2-ac95-4b00c4389a76?expires=1787157900&signature=7f47c90bcd348b82a9720652a3ea4961e187f50c9581caec597f5af10236f52f&req=dScvEsh3nYhaWPMW1HO4zSMECiexzg4IgYbpTjViBxDKSorfe9BsDhlLCwiu%0AnLarr8rrWaAngt1CGX0%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1784190951/34dc256ccd4c0cf74976f31062e6/55365cf2-059d-41b2-ac95-4b00c4389a76?expires=1787313600&signature=da21a8b7fe0cda54897a8a2d36637dc219743e94b0cdd81dc79cd78c5e75629b&req=dScvEsh3nYhaWPMW3nq%2BgaHJV1YFlI4d9i2LKq4iewqRXR1ThzhwZaOLPRRE%0AqVT20of4OkRX62GjZh%2BOQA8MhGo%3D%0A) You can also remove chats from projects, or move them between projects, using the same dropdown menu within the chat: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1784185682/8625eac15b9fa452f148a6c47250/c53a1bc4-a991-4684-a789-5447ed789d35?expires=1787157900&signature=d146c1dad59f5877937ec98a7bc4b727570bf31a486ac1cfa30349e17c035b46&req=dScvEsh2mIdXW%2FMW1HO4zb6DuPAtC0IDS2r1%2FGRlqORsnrJZFXPC2sMMUcco%0AMUMo60I6ZkO8b%2B9OTcc%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1784185682/8625eac15b9fa452f148a6c47250/c53a1bc4-a991-4684-a789-5447ed789d35?expires=1787313600&signature=fce303f66a90c3b194e12cd86866ab10de52ae11f799a5345fbf8132e8c23d58&req=dScvEsh2mIdXW%2FMW3nq%2BgcRackgi6l%2BuCYxgXkUx%2BGGRLNbVnTSGUlRsuzeo%0ALnT4%2FqHf339r7MPftlt4zCAc%2Bk4%3D%0A) You can move chats into projects in bulk from **[Your chat history page](https://claude.ai/recents)**: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1784185685/bb960063204592db277a4ba62d8d/ebbf5c69-da79-4e56-9d87-f2a97a22fe67?expires=1787157900&signature=efe323019db248d59df51d7cd16bd3c56d1bea3b508e4d4f9502d37082c37d1f&req=dScvEsh2mIdXXPMW1HO4zbParUtI7P2quQSB0Ebsw9cWO8Mqe1Vtk3tLDZFX%0AY4z%2FCsiVml21Extl47k%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1784185685/bb960063204592db277a4ba62d8d/ebbf5c69-da79-4e56-9d87-f2a97a22fe67?expires=1787313600&signature=f8203a3fd0f4788d772eb3d8eddf34fad6ca40890ab7a9e93371e3788102c940&req=dScvEsh2mIdXXPMW3nq%2BgSoMxJ7JZGBGqgI3Kn7bRQI4il37aBTk6x0qcwqB%0AXHwpE26suY0KVtt0X9tc5z%2Flejs%3D%0A) Select the chats you want to move, then click the icon next to the number of selected chats to move them into your project. @@ -128,7 +128,7 @@ Memory from chat history is available for users on Pro, Max, Team, and Enterpris For Team and Enterprise plans using Claude’s memory, the ability to move chats into and out of projects allows you to manage what’s included in Claude’s memory. Each project has its own memory, kept separate from your non-project chats. For example, if you accidentally start an unrelated chat in a project and need to remove it from the project-specific memory summary, you can click “Remove from project” so it will be included in Claude’s non-project memory instead. -Refer to our article on chat search and memory for more information: **[What is Claude’s memory?](https://support.claude.com/en/articles/11817273-using-claude-s-chat-search-and-memory-to-build-on-previous-context#h_c1c0b33879)** +Refer to our article on chat search and memory for more information: **[What is Claude’s memory?](https://support.claude.com/en/articles/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context#h_82126ebcc9)** --- diff --git a/content/support/9519189-manage-project-visibility-and-sharing.md b/content/support/9519189-manage-project-visibility-and-sharing.md index a12d4f7ce..8c0b95cda 100644 --- a/content/support/9519189-manage-project-visibility-and-sharing.md +++ b/content/support/9519189-manage-project-visibility-and-sharing.md @@ -12,7 +12,7 @@ When creating a project on a Team or Enterprise plan, you can choose between two - **Private:** Only invited members can view and use the project. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370991/2b6b16e5deff094e073a5b4bb0ea/63197103-24c0-41e5-aebd-9b8f431837bb?expires=1787157900&signature=bbcbc5b716fdf014e50738ba6f86f1b4d17c096beff89fa6847cae26b8286c24&req=dScjFsp5nYhWWPMW1HO4zd3a2VslIYmuHK95%2FTFaPynpfDthOMHFYP2lKHRE%0ARVorORnaT3UhCfoDvkg%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370991/2b6b16e5deff094e073a5b4bb0ea/63197103-24c0-41e5-aebd-9b8f431837bb?expires=1787193900&signature=17e969649ddacca13674fc6688736e942fab0af44e6142e02486a272df35fa73&req=dScjFsp5nYhWWPMW1HO4zd3a2VslLY2uHK95%2FTFaPyl7S0XQIjWjcvydEf4e%0ABYv1x7wVc3g2HT%2FyME8%3D%0A) ## What are public projects? @@ -22,11 +22,11 @@ If you choose to share a project with the rest of your organization upon creatio Yes, you can switch the visibility of a project you created as public to private at any time by opening the project and clicking the “Share” button to the right of the project name: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370987/5d5db997e6b42e627ffa62fddf75/4823906b-9535-4a19-b89e-a1003f1e6e68?expires=1787157900&signature=7395da5f31d63cfb9150d75f57b37bf70bc4f85f5fbc88b2ceeab0da1bf0e08d&req=dScjFsp5nYhXXvMW1HO4zUiDoi72hAEgE8Kp5wh0MSDLRy4nk4DEXYK0fMRF%0AfsM%2FPyrJo56XCM2yFko%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370987/5d5db997e6b42e627ffa62fddf75/4823906b-9535-4a19-b89e-a1003f1e6e68?expires=1787193900&signature=720c3a15568ac519b4e3fa56a728d42d9cc355eac12d024d2766f555c4e0ffde&req=dScjFsp5nYhXXvMW1HO4zUiDoi72iAUgE8Kp5wh0MSCRs2bd9ae4ipA1DjYJ%0Aa524%2F2XEYtRS2tapWJU%3D%0A) Click “Everyone at [your organization]” under **General access** and select “Only people invited” to change the project from public to private: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370988/386407facbf3e73d2f5538623a18/69d8ffcd-e1ca-470f-a219-5b88704e41f2?expires=1787157900&signature=0f007571fd987a25fe509fffa04a2206757da688132ee230e39ed2d741258ac5&req=dScjFsp5nYhXUfMW1HO4zckCIfVjZyWtl3XeGelDRW1gwhXywpnJY55Ms4lr%0AXHYfeB%2BHOGC3CRA8iUk%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370988/386407facbf3e73d2f5538623a18/69d8ffcd-e1ca-470f-a219-5b88704e41f2?expires=1787193900&signature=3a28240abfadf5ef96204f6887d2e77c789e3fdf628d96db8fc2cdbee44284b7&req=dScjFsp5nYhXUfMW1HO4zckCIfVjayGtl3XeGelDRW2N%2Fd4OcjeKlfB6%2BgmS%0ArEN2mb07nJ0zOOWCYSI%3D%0A) ## What are private projects? @@ -36,11 +36,11 @@ Choosing “Only people invited” keeps your project private so that you are th Yes, you can switch the visibility of a project you created as private to public at any time by opening the project and clicking the “Share” button to the right of the project name: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370989/f829dcd8bdd88e944322f678323f/9d25eff1-6df3-40be-82eb-ba7fe09187e8?expires=1787157900&signature=fd901dafd3848dd5863a58b8fd447a33782459c77e168380148ae4c80c5527f2&req=dScjFsp5nYhXUPMW1HO4zaSEGlSdT78E2JrJefVtywk338oyrnTS0vveHNug%0AUjvceE1kv%2FVDqR%2FlcYY%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370989/f829dcd8bdd88e944322f678323f/9d25eff1-6df3-40be-82eb-ba7fe09187e8?expires=1787193900&signature=a7f55c4005ccbf838ee680e56350b17bc3b4e9f4900e6e2f082aa170918b72ee&req=dScjFsp5nYhXUPMW1HO4zaSEGlSdQ7sE2JrJefVtywn9b5Bmk9N096ue6EO5%0AYtA9a0RNBns54bxyAPQ%3D%0A) Click “Only people invited” under General access and select “Everyone at [your organization]” to change the project from private to public: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370990/d173fbc6f030780d30c6d7b8e204/7e47b9d1-89fe-4607-8b5b-f7b06e7ad0d6?expires=1787157900&signature=b3302bb8fe495ce6fce6ca8819a424ee6dd279f1ad2429cbc3a603988ca69865&req=dScjFsp5nYhWWfMW1HO4zT7Q08%2B6uAsfAmYRPrgMBZmk02%2BzosaZEbZSGW78%0AUsaDtmCCN6oCcmLdLOM%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1740370990/d173fbc6f030780d30c6d7b8e204/7e47b9d1-89fe-4607-8b5b-f7b06e7ad0d6?expires=1787193900&signature=3c19c40f96a851f7360622c92ae863280b39d84782e5178cd83701b5d35a00b7&req=dScjFsp5nYhWWfMW1HO4zT7Q08%2B6tA8fAmYRPrgMBZnCKJI6iQOVvBW%2FJFNV%0AgFfxx%2F0Be0X1FHjQdNw%3D%0A) ## Add and remove access to private projects diff --git a/content/support/9534590-cost-and-usage-reporting-in-the-claude-console.md b/content/support/9534590-cost-and-usage-reporting-in-the-claude-console.md index 3a6006a51..98018e098 100644 --- a/content/support/9534590-cost-and-usage-reporting-in-the-claude-console.md +++ b/content/support/9534590-cost-and-usage-reporting-in-the-claude-console.md @@ -8,7 +8,7 @@ The Claude Console provides detailed cost and usage reporting to help you effect Users with access to these reports can click into them on the left navigation menu on the Console: -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584654217/db0a977417e38e43639f060d96e0/image.png?expires=1787157900&signature=90d1bb10a2e4793f581e1b8f1df668f18f3d50f86a2a37024704c83b68b4a34c&req=dSUvEs97mYNeXvMW1HO4zYCWiSMZhMGTuqqBX2puyxQcXkA2cQf9H2Zyt8Lv%0AfTykkiT12NH7DD2PGw8%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584654217/db0a977417e38e43639f060d96e0/image.png?expires=1787193900&signature=bb504306b7300ea1f03836016b2f4e348ec23f6b6f1cc81ffc0926e3a4f6ecb5&req=dSUvEs97mYNeXvMW1HO4zYCWiSMZiMWTuqqBX2puyxTuvvF86gy7QXR43pLd%0AKqP%2Fb0OYuvbxC67VBuk%3D%0A) --- @@ -46,9 +46,9 @@ The [Usage page](https://platform.claude.com/usage) offers a detailed breakdown 6. Use the export button to download a CSV of the displayed data. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584664321/59b50eba0b61e0789f7055fcf9f4/image+%285%29.png?expires=1787157900&signature=33e5ffa28d00c49f0b8176277cbaca21aaaada38dce1e631e31b7228321ed5a2&req=dSUvEs94mYJdWPMW1HO4zQwER3QrJIhvqMITUZbanFBWOYqttSMyHGlFZUy8%0A2dj17VzoFaxLiSBVpNk%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584664321/59b50eba0b61e0789f7055fcf9f4/image+%285%29.png?expires=1787193900&signature=4ecaf40d5b6d19b2dfe5f6c808c90368fe69ef1d88c0e3adeb2f49e7bb85ed98&req=dSUvEs94mYJdWPMW1HO4zQwER3QrKIxvqMITUZbanFBlBhCc%2BsOW%2FelXQhaE%0AmSOADQpwUmNFUrMLDs0%3D%0A) -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584693386/aed472efe163abcbc14fa32f3699/rate+limited+requests.png?expires=1787157900&signature=f2826d1e676468f178c58b8975b59e92f354427084da8131b50601c64f918fef&req=dSUvEs93noJXX%2FMW1HO4zRxEwWxM41Zl21D6pckxWMZtTCac6KFnelxCaMgf%0Aev9numAGjdPhjJL2IuQ%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584693386/aed472efe163abcbc14fa32f3699/rate+limited+requests.png?expires=1787193900&signature=f9ec198be0042311c66d975f5e7f7a471cda41504e7d0879dd844a81ac41384d&req=dSUvEs93noJXX%2FMW1HO4zRxEwWxM71Jl21D6pckxWMZ0dBaR%2BaPyuB32IN35%0AUoxXr66UKvtT8DRJRhc%3D%0A) ### Rate Limit Use @@ -88,6 +88,6 @@ The [Cost page](https://platform.claude.com/cost) helps you understand your spen 5. Use the export button to download a CSV of the cost data. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584679401/4d0bc8ed08625e1adee414e77030/CleanShot+2025-06-23+at+08_54_40%402x.png?expires=1787157900&signature=b3d560bfca0d77607bbaa305ac92184c8573467cb6bc46dd48d4b737d358443a&req=dSUvEs95lIVfWPMW1HO4zUR%2Bh5vCVtdoCyIF5nuUsbyi7e4jRGf7Bfh6NXsh%0AhVzczGlASPrE%2BIM7jQM%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1584679401/4d0bc8ed08625e1adee414e77030/CleanShot+2025-06-23+at+08_54_40%402x.png?expires=1787193900&signature=1125ae2032f37b9c2baced9f929ac5380722d55f387f1fde0f9890bc0bc47fc2&req=dSUvEs95lIVfWPMW1HO4zUR%2Bh5vCWtNoCyIF5nuUsbzfDUf3SJb4%2FDSdvRpv%0AxCZAoIcsimgXYOEq7kA%3D%0A) **Note**: Currently, it's not possible to break down usage or cost by individual users. \ No newline at end of file diff --git a/content/support/9547008-publish-and-share-artifacts.md b/content/support/9547008-publish-and-share-artifacts.md index bbb041f71..888c6ead7 100644 --- a/content/support/9547008-publish-and-share-artifacts.md +++ b/content/support/9547008-publish-and-share-artifacts.md @@ -56,11 +56,11 @@ Publishing also adds the artifact to the **[Artifacts](https://claude.ai/artifac After publishing, you'll see a “Get embed code” button. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1951684960/0cd917c4455b31e86b70a97f8234/image.png?expires=1787157900&signature=9040b3843e06c6fb533240724b31fbcb1642c4279017daa3f02f5bda1383cc3a&req=dSkiF892mYhZWfMW1HO4zdcpD1FT4ASIR8xgMH3ra8jxzmuMleheJcSoUwTA%0Au4sVebJLigJzyjgdLaw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1951684960/0cd917c4455b31e86b70a97f8234/image.png?expires=1787193900&signature=9ef891c817d6e3d44a1a98d5c7ed8fb072ba8cf7dcd7c2ec891beba12622934b&req=dSkiF892mYhZWfMW1HO4zdcpD1FT7ACIR8xgMH3ra8jFaiLDDhIISWwtAa9L%0Albc794Pm%2BqSce3119Zg%3D%0A) Click it to open a modal with automatically generated code you can copy and paste to embed your artifact on another website. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1951685860/6bf1aa2c57d6ff95804797779e9c/image.png?expires=1787157900&signature=07bea5906a76e98d9881d65e474ac0d784e2c0d31eefaeec1f51054a93e5c8dd&req=dSkiF892mIlZWfMW1HO4zcqH796CzINkf3CUbx4Ru6V4%2FDH0BMRpM4NRQ9u8%0AeLn01FyTVX7kdQgK9Io%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1951685860/6bf1aa2c57d6ff95804797779e9c/image.png?expires=1787193900&signature=a334a55a1fb094c9238e1ef52e241afe39d69f64af8471187a22ca610e3c8726&req=dSkiF892mIlZWfMW1HO4zcqH796CwIdkf3CUbx4Ru6UjibBnWTu0C8fouhIA%0AG0ie1GZcE0CU3dk98g0%3D%0A) You must specify which websites can embed your artifact by entering URLs in the **Allowed domains** field, separated by commas. @@ -116,7 +116,7 @@ Artifacts created on Team or Enterprise accounts can only be shared within your 4. Click “Share & copy link” to make this version shareable. -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1951680160/d5a38784df4c6d0cc55eda339279/Screenshot%2B2025-10-28%2Bat%2B2_00_15-E2-80-AFPM.png?expires=1787157900&signature=bfce80883747301f6062029d76f79ad4fdbbe1cc3ba5752d11084e3a1a91ff9d&req=dSkiF892nYBZWfMW1HO4zbvYOlbkKH6aK6hAzMpXfmNnYapUJzYG9yZJnxAh%0AqZI2Up5jKMSZdsIsuq0%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1951680160/d5a38784df4c6d0cc55eda339279/Screenshot%2B2025-10-28%2Bat%2B2_00_15-E2-80-AFPM.png?expires=1787193900&signature=f373ec481fd16275816bed42a066ba502208c775dddc4d93f22ed5556a923e26&req=dSkiF892nYBZWfMW1HO4zbvYOlbkJHqaK6hAzMpXfmOsXDEVSObh%2FAAr9J6P%0AKKWJsb6mEwSXR0wnQ1A%3D%0A) ### Who can access shared artifacts @@ -138,7 +138,7 @@ When you share an artifact, viewers also gain access to any attachments and file 2. In the **Artifact shared** modal, click “Unshare.” -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1951676927/c66153a2c075c6a64404306aefd0/Screenshot%2B2025-10-28%2Bat%2B1_58_24-E2-80-AFPM.png?expires=1787157900&signature=0a3bea754b9ed4753fcc3edaada68c27be47f62c5e6e4a096711d2f8bceba439&req=dSkiF895m4hdXvMW1HO4zW9Ewg68%2FHO6gj8mTHivCKbEYPMvjC1DqEBt%2Bt9a%0AMWkVa0QyumMbB0jfp3k%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/1951676927/c66153a2c075c6a64404306aefd0/Screenshot%2B2025-10-28%2Bat%2B1_58_24-E2-80-AFPM.png?expires=1787193900&signature=5f6ee52eb64bd3eeb393f113aced62d2ddc563bb8e9f6eaccf8cf8a845319fb9&req=dSkiF895m4hdXvMW1HO4zW9Ewg688He6gj8mTHivCKZ%2BffypUVNqVarjz%2FF9%0AXYHURHdXjPgLGMAhwcA%3D%0A) --- diff --git a/content/support/9927533-disable-public-projects-for-your-organization.md b/content/support/9927533-disable-public-projects-for-your-organization.md index fd841a2b8..899430d79 100644 --- a/content/support/9927533-disable-public-projects-for-your-organization.md +++ b/content/support/9927533-disable-public-projects-for-your-organization.md @@ -10,7 +10,7 @@ Follow these steps: 2. Find **Public projects** and toggle it off -![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2053902291/8c39d1a79dedc97411eed54dec5c/CleanShot+2026-02-11+at+11_25_34%402x.png?expires=1787157900&signature=6818f8aa7c158a09909952801489f74ac9154ff6022ad5cc3abd330cfd56bb58&req=diAiFcB%2Bn4NWWPMW1HO4zfGib2ClbgdWYabJlVJ9VPzbVKL4MhgYMfdccRRY%0ABM8moDiEZadbRq6sihw%3D%0A) +![](https://downloads.intercomcdn.com/i/o/lupk8zyo/2053902291/8c39d1a79dedc97411eed54dec5c/CleanShot+2026-02-11+at+11_25_34%402x.png?expires=1787193900&signature=1c0f47f4d6a8181deac8b36fc8fc0a84bc6cc9c0c1d3b505af89af435516e856&req=diAiFcB%2Bn4NWWPMW1HO4zfGib2ClYgNWYabJlVJ9VPxfBPVa9WidHdO4ivG1%0AzVW8SlPjCVWlrEUHF20%3D%0A) ## How does disabling public projects work?