diff --git a/content/.metadata.json b/content/.metadata.json index b40bd9d4d..1d1927a8f 100644 --- a/content/.metadata.json +++ b/content/.metadata.json @@ -1,7 +1,7 @@ { "metadata": { "version": "2.0", - "fetch_date": "2026-10-23T15:31:13.790467Z", + "fetch_date": "2026-10-23T19:36:21.574451Z", "section": "all" }, "items": [ @@ -100,8 +100,8 @@ "url": "https://platform.claude.com/docs/en/build-with-claude/structured-outputs", "status": "success", "path": "en/build-with-claude/structured-outputs.md", - "sha256": "16a91ab7cfcdc7fb3ed9bf5c03c3babf85455bf17e06c69d5067951899b4d14a", - "size": 102614 + "sha256": "3cd62f7e1c6e8f85643427496488379efdf4cd1cbcd4749e2a6c5a89df85f70a", + "size": 102618 }, { "url": "https://platform.claude.com/docs/en/build-with-claude/citations", @@ -954,14 +954,14 @@ "url": "https://platform.claude.com/docs/en/manage-claude/admin-api", "status": "success", "path": "en/manage-claude/admin-api.md", - "sha256": "dd85234e1d703cdd49469ceef457395d216476b8ef1d6f944b8dbc343e1a95ad", - "size": 54362 + "sha256": "aae171cbcff0416ec5a6b8072365dd8df671af6a8974e22c0bab8a6a40a2f621", + "size": 54456 }, { "url": "https://platform.claude.com/docs/en/manage-claude/user-management", "status": "success", "path": "en/manage-claude/user-management.md", - "sha256": "0e80ddb405a0698c4aa6861ab3adb9b73d343576f3143af9596160b87f990561", + "sha256": "631cad1d657405ec438e1fa3ad540e427d2d811909f75ebfc5f1e10ef680cb6e", "size": 87449 }, { @@ -1003,8 +1003,8 @@ "url": "https://platform.claude.com/docs/en/manage-claude/admin-api-keys", "status": "success", "path": "en/manage-claude/admin-api-keys.md", - "sha256": "7c82b81b1ebed3164fb0103dd7e2c13387d66338bde624fc351cd16830c1f24c", - "size": 17684 + "sha256": "8b41441cad4a7789a9babc05dd5bb93d018395ec40582a52777bf3d834a0dd12", + "size": 18990 }, { "url": "https://platform.claude.com/docs/en/manage-claude/app-attest", @@ -1906,7 +1906,7 @@ "url": "https://platform.claude.com/docs/en/cli-sdks-libraries/overview", "status": "success", "path": "en/cli-sdks-libraries/overview.md", - "sha256": "5401d0d544d0a557fcfc83725f932e933260e88a5a657fc36238c689b783182d", + "sha256": "59cf39d76844939cc780947c34d0d67102e78dbf538a507a04f883d0c3fde077", "size": 5488 }, { @@ -2116,8 +2116,8 @@ "url": "https://platform.claude.com/docs/en/release-notes/overview", "status": "success", "path": "en/release-notes/overview.md", - "sha256": "86b5800f628df8378837bb051ddb9c4ce1ac6e07bcecc96653ec3da64a4721ce", - "size": 132811 + "sha256": "9254c03e98ba7b435f920bd473165e2b04afe562ce7d016fd8ac8a382fd479bb", + "size": 133503 }, { "url": "https://platform.claude.com/docs/en/api/completions", @@ -2875,6 +2875,13 @@ "sha256": "7db8b26ef256bb1f7a947e622ebeb163c1f23c2c08199297980f18c085963622", "size": 2810 }, + { + "url": "https://platform.claude.com/docs/en/api/organization/workspaces/service_accounts/update", + "status": "success", + "path": "en/api/organization/workspaces/service_accounts/update.md", + "sha256": "383d6c2822f5e2818f5e194705d27855f6bf1d2ebdd4c965f2c585a3861a3cbb", + "size": 3141 + }, { "url": "https://platform.claude.com/docs/en/api/organization/workspaces/service_accounts/remove", "status": "success", @@ -5738,19 +5745,26 @@ "sha256": "d62c034a78e4d90e8403ab74cb26357adb9504f1403a0ab917842b48931cabf9", "size": 80896 }, + { + "url": "https://platform.claude.com/docs/en/manage-claude/claude-tag-api", + "status": "success", + "path": "en/manage-claude/claude-tag-api.md", + "sha256": "6f94282876d780f3a1546eadf1a4a1ca81ee4d56e83cc56e5653929139459f33", + "size": 127220 + }, { "url": "https://code.claude.com/docs/en/overview", "status": "success", "path": "en/docs/claude-code/overview.md", - "sha256": "8e56d92da4fa511f438aab3745358a06a8448ed9ecfa209fe5430c0c2523fda1", - "size": 15632 + "sha256": "63bac852a9e361e49084a6cc8c89e5da964e308266204f0ce9f7b6afef8efcaf", + "size": 17104 }, { "url": "https://code.claude.com/docs/en/quickstart", "status": "success", "path": "en/docs/claude-code/quickstart.md", - "sha256": "0ed7a288bd94b6f11ce248185af4ad810814ff4dfdc8064581b96387cd3042b7", - "size": 12207 + "sha256": "6ff431f2f3b8ea48d3ffb3f1c80b21b32eb4c7f1545f09cad79b1b55b0f64c5e", + "size": 12805 }, { "url": "https://code.claude.com/docs/en/changelog", @@ -5763,1569 +5777,1569 @@ "url": "https://code.claude.com/docs/en/how-claude-code-works", "status": "success", "path": "en/docs/claude-code/how-claude-code-works.md", - "sha256": "13c590ed6c22718b45e849ddf037444f02d56e721152d144bbeecf1b872d7042", - "size": 18631 + "sha256": "0e27ec5df14be0571ab8a247a45ddecf28b67792706cde8fa5ab02fcbf2befa0", + "size": 19873 }, { "url": "https://code.claude.com/docs/en/features-overview", "status": "success", "path": "en/docs/claude-code/features-overview.md", - "sha256": "e1f0ae3d6465f43cc18b3fc1cdab43b4ca10455ddbe5917ef11d79d86b64ab82", - "size": 27348 + "sha256": "753436faa0a5105d8a89fd8b0ba37cbd160f665849f2a87d170f102719ddbc0b", + "size": 29096 }, { "url": "https://code.claude.com/docs/en/claude-directory", "status": "success", "path": "en/docs/claude-code/claude-directory.md", - "sha256": "dcdaaf756a9596854e03cd5c9a4d0952e9806215eabfe92cd6328b0a1265ffc8", - "size": 28637 + "sha256": "1af779e83e62b9017c7966b989e54beb160e9e742d9bf0c45935ad3ae2d82b14", + "size": 31144 }, { "url": "https://code.claude.com/docs/en/context-window", "status": "success", "path": "en/docs/claude-code/context-window.md", - "sha256": "f2cf7463cb14b4dc9607ee235b26267ed5cc6ca17ad7abd45fe83924130cdbd9", - "size": 8495 + "sha256": "bd0361d2013d6ff259bf127fd6b0c069ecbcb1c1331df0f23d10f658172ecb72", + "size": 9208 }, { "url": "https://code.claude.com/docs/en/prompt-caching", "status": "success", "path": "en/docs/claude-code/prompt-caching.md", - "sha256": "8797c8fd3ef463baaccb441ce1b33f3321b9301508b314a38d7c2860e2026f10", - "size": 42401 + "sha256": "dbc4fb385c4c03ecfda0b23926f2ad22662649fa3e2282f90c516c80bcaa540e", + "size": 44402 }, { "url": "https://code.claude.com/docs/en/memory", "status": "success", "path": "en/docs/claude-code/memory.md", - "sha256": "82d60341354924ee8658de0fcde297c2ac37b237dcc931aa4a83329b2c7bb6e7", - "size": 54043 + "sha256": "02632438e022b5fc70b470b02d59819d9739756c2666b5632734b4564a08a801", + "size": 55354 }, { "url": "https://code.claude.com/docs/en/sessions", "status": "success", "path": "en/docs/claude-code/sessions.md", - "sha256": "836bf25afc19ecc86ce68f8a9e87e38a692baa876cb5fdd281bf131cadce4999", - "size": 32576 + "sha256": "d5861713756f734bb93d8313be530f446f27971bd1c05b62bab33f4aa080431b", + "size": 34439 }, { "url": "https://code.claude.com/docs/en/common-workflows", "status": "success", "path": "en/docs/claude-code/common-workflows.md", - "sha256": "cf1ac263cebe964a65a688c4d64f59d922c4aab9b262923e71e03a8352716443", - "size": 18024 + "sha256": "5a5584f7189b674ac06146376ed0534b1325d7068e7eb41d912c3998c6d4e5cc", + "size": 18645 }, { "url": "https://code.claude.com/docs/en/prompt-library", "status": "success", "path": "en/docs/claude-code/prompt-library.md", - "sha256": "cc03a0e56d417fe4957691a56cdca3451caf90c97df8ee74994a6ee38c87747f", - "size": 4587 + "sha256": "3fc3d4e99f62b2d2d169e6e2677aeb3fd54c8c5bb91691f4de4ba31efbcb2a95", + "size": 4863 }, { "url": "https://code.claude.com/docs/en/best-practices", "status": "success", "path": "en/docs/claude-code/best-practices.md", - "sha256": "b225977e2892002cc91ff4dfe2d6a7e2324fd455aa6325c889cecb009ca76052", - "size": 36360 + "sha256": "f024b9d1610ab3c39c94a18efb0d3b505a8bf18f7735051481298402b2eab699", + "size": 37533 }, { "url": "https://code.claude.com/docs/en/platforms", "status": "success", "path": "en/docs/claude-code/platforms.md", - "sha256": "e84c9f6ff554455c05c02e6518c5431e58a7978f3b957e98ae0c1d7c80273037", - "size": 8939 + "sha256": "63e14476732c6f673ffc3364299d09bffda6443d8fdb58f8c1b0571dab34d18a", + "size": 10273 }, { "url": "https://code.claude.com/docs/en/remote-control", "status": "success", "path": "en/docs/claude-code/remote-control.md", - "sha256": "6b4a6dd7b8d0f8ec41fafe97b97b8fc4151cea4ff208611052f39ba26706bd41", - "size": 60461 + "sha256": "2a5ce1a713d1fa1a14451e7dd7631f6c8136523fe50dffed8d065f4c031769a2", + "size": 62531 }, { "url": "https://code.claude.com/docs/en/claude-projects", "status": "success", "path": "en/docs/claude-code/claude-projects.md", - "sha256": "8edeaad0cd905d7e8152188a0efb30f5e284d1f7010a2c613362092c1aa90d67", - "size": 60435 + "sha256": "8bb9be97e92f52715db825954a136c2ef25ec4d642a79bb2050c54a2161ac53b", + "size": 61815 }, { "url": "https://code.claude.com/docs/en/mobile", "status": "success", "path": "en/docs/claude-code/mobile.md", - "sha256": "61df74cdf9bd7601c1bcd0a55bcc87ea170cf1d866a57a9195e5b2fa4a60b35d", - "size": 8449 + "sha256": "c386b6a9f46807801900954582b25ab8af2e6e9197a25c8f44d218da44dd7383", + "size": 9047 }, { "url": "https://code.claude.com/docs/en/chrome", "status": "success", "path": "en/docs/claude-code/chrome.md", - "sha256": "3b6eebf88862aa214c13c0d46c800442351557a725d40ef69dc06a7881d1aa4b", - "size": 23400 + "sha256": "06e08b9fe52f9cd36dc117cee409138a0117aded8424077f54ee57e20a854761", + "size": 23952 }, { "url": "https://code.claude.com/docs/en/computer-use", "status": "success", "path": "en/docs/claude-code/computer-use.md", - "sha256": "5e2c13d1937dfc64f0a233e2d7e723a262930e14839f52b96b875104baa8e750", - "size": 11890 + "sha256": "69794f1b76c9e03879b4558f7f40177bdbdfb4fffc739c528013d39b0055a13e", + "size": 12143 }, { "url": "https://code.claude.com/docs/en/vs-code", "status": "success", "path": "en/docs/claude-code/vs-code.md", - "sha256": "064775372561ddb7e81eb463841b46cf55e58c92e805ad4ebf7c286578c77726", - "size": 94127 + "sha256": "53f9fabf7ade6ae0136c9e7a456e241aa1a9fb31a1193e5bc929768747b48ca7", + "size": 97025 }, { "url": "https://code.claude.com/docs/en/jetbrains", "status": "success", "path": "en/docs/claude-code/jetbrains.md", - "sha256": "d88de854e043d2c18dbdf74df9b251328bac637fa42b027cf0c0c2db762ffa06", - "size": 12406 + "sha256": "f4af835e8a33b2b0010d15fe84049e4a8daed48d6c21f50912855a668d9cfb35", + "size": 12659 }, { "url": "https://code.claude.com/docs/en/slack", "status": "success", "path": "en/docs/claude-code/slack.md", - "sha256": "62a801071c60135ffab1a65328cb5ea133e99dce0fa8216d82ab590fc3881baa", - "size": 15692 + "sha256": "9cd010a59115b4e86476cd9c97313d9b5874786d4db694a0ec9f89ae56a9b44d", + "size": 15830 }, { "url": "https://code.claude.com/docs/en/web-quickstart", "status": "success", "path": "en/docs/claude-code/web-quickstart.md", - "sha256": "c7342162d86506313e10449e7289965591d3fe350e555d71444537bc1ce5989c", - "size": 23992 + "sha256": "3868309039025ec7f78a28f087f1dc143b577c98512d8b0f3e7e5a9d38307248", + "size": 25096 }, { "url": "https://code.claude.com/docs/en/claude-code-on-the-web", "status": "success", "path": "en/docs/claude-code/claude-code-on-the-web.md", - "sha256": "d56e0396e3a7f7423c24131f2744223bcdc3c4100d6998898ac4950eae043b3b", - "size": 42987 + "sha256": "ba4ec2855030fb9fcde17563affac810656005570827e369aaaf81cdfdbd3779", + "size": 44873 }, { "url": "https://code.claude.com/docs/en/routines", "status": "success", "path": "en/docs/claude-code/routines.md", - "sha256": "d4a5a955e500cf1aee75e9b29ad0aaf7d1b97051bfce83947e698751b6f6f71c", - "size": 43518 + "sha256": "ade919df147c69b125bf6e2c6f87b913567702151473f7e4dee071cdb5d830cf", + "size": 44737 }, { "url": "https://code.claude.com/docs/en/desktop-quickstart", "status": "success", "path": "en/docs/claude-code/desktop-quickstart.md", - "sha256": "a528a3b1981dd03c5f2b5bd75d5e7da3680366da7199716a9f1617658be0322f", - "size": 10727 + "sha256": "6ca66807b60f40505bce01a26d683a59067898dc10aa7cd22f6acb672f0463eb", + "size": 11647 }, { "url": "https://code.claude.com/docs/en/desktop", "status": "success", "path": "en/docs/claude-code/desktop.md", - "sha256": "2f57a4c9de0e2348175f9bce7910f1d9cdb0e81b41c6daf87fbe50251f5f47c8", - "size": 169702 + "sha256": "421d358d5f41dcd3b001c3c9bd1c5000d383999aab909a12bb1dd3f8d0d8ec4e", + "size": 188418 }, { "url": "https://code.claude.com/docs/en/desktop-linux", "status": "success", "path": "en/docs/claude-code/desktop-linux.md", - "sha256": "3f81068f3a8b01c991060f70418f89c1dbf8cf8852858cf4129cc706af9067a1", - "size": 12685 + "sha256": "a58f8faaa3f3c6f9435600faf14ee2940158e0f225d9aba2270bdb528b12edf2", + "size": 12892 }, { "url": "https://code.claude.com/docs/en/desktop-wsl", "status": "success", "path": "en/docs/claude-code/desktop-wsl.md", - "sha256": "8b32e67e996035c357cfa8b71fa7ef425b6c69e4e4bbc0e10acc1738791463bf", - "size": 4038 + "sha256": "887bdabff86b2c629b88f60e10585116f7c137a5bbe4e0d9ef15191e388a9e1c", + "size": 4245 }, { "url": "https://code.claude.com/docs/en/desktop-scheduled-tasks", "status": "success", "path": "en/docs/claude-code/desktop-scheduled-tasks.md", - "sha256": "bf71be4e1063e650323c12b902cb6b1ba91406454fc0573a7b0ac867a1418046", - "size": 13875 + "sha256": "67a4ae6b458bcc850d10d2b0b2b1386be2a9025c175a1ea00dc42e6485a9cf7d", + "size": 14427 }, { "url": "https://code.claude.com/docs/en/desktop-ios-simulator", "status": "success", "path": "en/docs/claude-code/desktop-ios-simulator.md", - "sha256": "81c9b7686c2d947c5ab73e592153b36f0182f4bd7dfbbd648f4a4a020821d669", - "size": 12045 + "sha256": "ac8f01d9f816645ffb888b7b9b65968f0d856bed85845af750f5e9d37164f46f", + "size": 12321 }, { "url": "https://code.claude.com/docs/en/code-review-local", "status": "success", "path": "en/docs/claude-code/code-review-local.md", - "sha256": "b2ae438d8f60e156641342ac6387dda9c241c90ecf18ddf81602b05c4893686f", - "size": 13890 + "sha256": "35e2b596e26f2fdd34ea6920cc2f63246e9bfebc84e85db50b76f2c808f53cfd", + "size": 14644 }, { "url": "https://code.claude.com/docs/en/ultrareview", "status": "success", "path": "en/docs/claude-code/ultrareview.md", - "sha256": "09fe6be4e47a58ccbc9adf8720f945b577cbd4009e0dbde23f3925637372af8c", - "size": 19820 + "sha256": "ede773031b7203c1edc24473d4e46adeb72434e21bfddacd09779565f5f6cb18", + "size": 20142 }, { "url": "https://code.claude.com/docs/en/github-enterprise-server", "status": "success", "path": "en/docs/claude-code/github-enterprise-server.md", - "sha256": "80b7daa3492b3e58f8b4a41af7751b49dcf00df92144fa3e1bf25750cdb3bc8c", - "size": 20019 + "sha256": "7db747ba0735e8c8fa101a4761d55135485549c07ed426c0f5169c7d4727c2e8", + "size": 20594 }, { "url": "https://code.claude.com/docs/en/code-review", "status": "success", "path": "en/docs/claude-code/code-review.md", - "sha256": "86bca95cb8905fc7e79f0fbb7c60613f6adadc258213bdd44aef98482d92f58d", - "size": 9862 + "sha256": "b0360a11dad62ad8cb2e534d6e60fda87327abb68bfcb1fffca230ae67c6cf14", + "size": 10690 }, { "url": "https://code.claude.com/docs/en/code-review-setup", "status": "success", "path": "en/docs/claude-code/code-review-setup.md", - "sha256": "ff8896f99da635055b11d3af77a702ef780e1017ea3746d42f4e3cfde6e2505b", - "size": 13884 + "sha256": "7d5dac2e21d5d8815ec79cea854371bd1c6322d195bea602323959c580135336", + "size": 14459 }, { "url": "https://code.claude.com/docs/en/code-review-customize", "status": "success", "path": "en/docs/claude-code/code-review-customize.md", - "sha256": "b7185f630a82482435b7d953a3d7cdf2ca9ac28eb1a9d9e7f7d32024776140ca", - "size": 11440 + "sha256": "5720f8482766549c981d811c498e17d830ee4bda3904f1054a6a765707324d26", + "size": 11739 }, { "url": "https://code.claude.com/docs/en/code-review-pull-requests", "status": "success", "path": "en/docs/claude-code/code-review-pull-requests.md", - "sha256": "2791278b124a24a6cc8b94ce7d55284e55758dca8934d7889b84fa0b78ff52cb", - "size": 15168 + "sha256": "4885216bb19c7025043a5bf4c545e36e70b0cfb75b17c17ba059c99921c923c3", + "size": 15513 }, { "url": "https://code.claude.com/docs/en/code-review-costs", "status": "success", "path": "en/docs/claude-code/code-review-costs.md", - "sha256": "1867753b8ac4d937f241cd10ef85598be8677e4d4fa707cc09673836b391c5ff", - "size": 6038 + "sha256": "3ed70e71b5e0ff6d6f4586502723420be7ce4496c9d1becace1b789f9029e6e1", + "size": 6268 }, { "url": "https://code.claude.com/docs/en/code-review-troubleshooting", "status": "success", "path": "en/docs/claude-code/code-review-troubleshooting.md", - "sha256": "eabf1899c676b4d50ac1e3fb193aeacb12ed4469aee3b7ca709f77725ad4f15c", - "size": 10195 + "sha256": "e0775b42a4b45a9d8793a779a202054f1c9d1d05d7c5afb43dc0e89fa7604fc0", + "size": 10563 }, { "url": "https://code.claude.com/docs/en/security-guidance", "status": "success", "path": "en/docs/claude-code/security-guidance.md", - "sha256": "f8b9e2848d3faf73c08df3e47adf32964ffe49e1d6c20958fb1ff624bb1138c0", - "size": 18431 + "sha256": "1a559b48e86d222a073e1e2432c7076b1e324edead91c026b375fd1b4e06a540", + "size": 18937 }, { "url": "https://code.claude.com/docs/en/claude-security", "status": "success", "path": "en/docs/claude-code/claude-security.md", - "sha256": "1ce7fff0a9c1a58743280330570472dbfc6ed9bfde3a2a1dd49991ee8f0a624b", - "size": 15139 + "sha256": "491171bd3c0162e798849d133d623100eb9df49727269cf630ad1cfbe391aae9", + "size": 15898 }, { "url": "https://code.claude.com/docs/en/github-actions", "status": "success", "path": "en/docs/claude-code/github-actions.md", - "sha256": "3bbb71791ce22f1f289e098d964a3c93030612e14dce2fcbb225af95f52b9ade", - "size": 29044 + "sha256": "c0596fead65466e68b6a95e1b9c2ca4db746f9546e87e5f6b6e801f590895690", + "size": 29711 }, { "url": "https://code.claude.com/docs/en/github-actions-cloud-providers", "status": "success", "path": "en/docs/claude-code/github-actions-cloud-providers.md", - "sha256": "ae3c1e4132c1da013089fb49285c9d33d143e2857eb2fc42a7ca8b8a20be1652", - "size": 16840 + "sha256": "24dc4efe41c74664af466541c1865463b7769a0fa5799354ac205103b7c0ea8f", + "size": 17208 }, { "url": "https://code.claude.com/docs/en/gitlab-ci-cd", "status": "success", "path": "en/docs/claude-code/gitlab-ci-cd.md", - "sha256": "0ed3ad448d858596d1bfdad399bbf4c8a9a7732f54e6747a8c47193fbcfda6cc", - "size": 18633 + "sha256": "46583605c55881800a85f9a6991156bdd5d34fb68178806dc33daf7848126d02", + "size": 18679 }, { "url": "https://code.claude.com/docs/en/agents", "status": "success", "path": "en/docs/claude-code/agents.md", - "sha256": "7924e63babbe2f8140a8cc6859fbc6bfef3850d8142b9cba7b7fe1d002ebae1f", - "size": 8430 + "sha256": "094a1d43e84392dc4953a6cf06484afcfcaaaed09bbce34a484cd3a17e64149e", + "size": 9373 }, { "url": "https://code.claude.com/docs/en/sub-agents", "status": "success", "path": "en/docs/claude-code/sub-agents.md", - "sha256": "84b2646c513754ef5f33c6f5a0d7f59960021a65b5a09c35b9158fa116a73d5a", - "size": 111624 + "sha256": "d66f847bed2cd73de0a45f29bf9c8dff7782dc7b66dc63d8285176ae6a176cdb", + "size": 116355 }, { "url": "https://code.claude.com/docs/en/agent-view", "status": "success", "path": "en/docs/claude-code/agent-view.md", - "sha256": "d905aabd890842e4b2405457cbb206f12b78b1672fdab172356558b2d70f1b13", - "size": 143172 + "sha256": "5b22762ce2c0c2234f5ee6bb6a217007ddeaacaa503911cecf5300a81acb04c3", + "size": 147082 }, { "url": "https://code.claude.com/docs/en/agent-teams", "status": "success", "path": "en/docs/claude-code/agent-teams.md", - "sha256": "bb95174411522f7e79dc1f178e67ad6a3054c3d4ce4eaa5bce9ee2ff8abae50e", - "size": 40987 + "sha256": "9766ed58c3d0939c1ab20d174f8d6ff6eaa636bae43b4ff092614d5fe449f712", + "size": 42551 }, { "url": "https://code.claude.com/docs/en/cross-session-messaging", "status": "success", "path": "en/docs/claude-code/cross-session-messaging.md", - "sha256": "c725c4c16d5336e59f0e645a235d6f65e4d0e770098a8fa6fd345965fcec8ff2", - "size": 34880 + "sha256": "394edcc81b28bb90429a3c2877a4f39da9c2e10b58423f20e23fc011a0e04425", + "size": 36283 }, { "url": "https://code.claude.com/docs/en/workflows", "status": "success", "path": "en/docs/claude-code/workflows.md", - "sha256": "2437561cfc40347b985d645447b6612dadbe03204243cdd277e2b5cdf2098d56", - "size": 41655 + "sha256": "5e63974f147f3fa79a04dab384884929d1723f69d2cd9929e295e40f65be73aa", + "size": 43127 }, { "url": "https://code.claude.com/docs/en/worktrees", "status": "success", "path": "en/docs/claude-code/worktrees.md", - "sha256": "9cd5ba09cbb21237674c59bf16095924cf9f8f0e0efd5a1adff0585a2bb36936", - "size": 41336 + "sha256": "9c07a62bca75ec0604e4fd9413d38c51533594f55a33eabff9ace2c20cb0e6cc", + "size": 42601 }, { "url": "https://code.claude.com/docs/en/mcp-quickstart", "status": "success", "path": "en/docs/claude-code/mcp-quickstart.md", - "sha256": "b2934a70d9a39de6f64da7d84b3a87bf8f9126cc2427c9770822a7b32896a206", - "size": 24975 + "sha256": "5ebed5d45ace2e2b76a821534fa146b490032c5b1e66ad7fca0b6f291e906c47", + "size": 25527 }, { "url": "https://code.claude.com/docs/en/mcp", "status": "success", "path": "en/docs/claude-code/mcp.md", - "sha256": "f8df5bcff278cb6bb995a1316156deef019577047fcb559131279fade1c3804d", - "size": 130411 + "sha256": "46d1da4ad796ea77eb58034b166672b0dc3e15c36144f097ad0943e09f066f91", + "size": 150502 }, { "url": "https://code.claude.com/docs/en/skills", "status": "success", "path": "en/docs/claude-code/skills.md", - "sha256": "6b070e872dea28905a7ea7f45c4d5960f5bdf28cc73ac808799af6d50435ffbd", - "size": 114542 + "sha256": "acb1f1388ee96a516f707c42bac1e834b22df90081e5c2eccb90a2f76a5430f6", + "size": 118172 }, { "url": "https://code.claude.com/docs/en/artifacts", "status": "success", "path": "en/docs/claude-code/artifacts.md", - "sha256": "c4c5a87161f2632482a12a0e8450a6ff3f3db06358b7d621f89f3dc33602c3c5", - "size": 41798 + "sha256": "a48ba61f9ef97e86fac25ff00f23e431f912a7aafc0ab3d17b4cc7d761b17f26", + "size": 42925 }, { "url": "https://code.claude.com/docs/en/hooks-guide", "status": "success", "path": "en/docs/claude-code/hooks-guide.md", - "sha256": "004ded2fd87af2deee93d4ce7f47216a82b5e22fc76f345ea654eeb51b2bee3c", - "size": 62917 + "sha256": "14bcf3cd102f06c93f179123709b9179b8ed22c778274e16537aa3b27815b95d", + "size": 65493 }, { "url": "https://code.claude.com/docs/en/channels", "status": "success", "path": "en/docs/claude-code/channels.md", - "sha256": "7cd6d4da7498fdf03137d88fa27b13f898840f5cc8776a28a8156124b3eead8c", - "size": 22430 + "sha256": "a27bc20ea668370c462848dc42c260c922886083fb6a8dbad874ca09684fe60c", + "size": 22959 }, { "url": "https://code.claude.com/docs/en/scheduled-tasks", "status": "success", "path": "en/docs/claude-code/scheduled-tasks.md", - "sha256": "5784736e79039fbe0ae44f980091b8e3a01a46ac490526250b26618b97821504", - "size": 19327 + "sha256": "f44fdf60df04074d869d0792b1b7c012d5c9b00307763e4d7434340c4e0da903", + "size": 20109 }, { "url": "https://code.claude.com/docs/en/goal", "status": "success", "path": "en/docs/claude-code/goal.md", - "sha256": "624ff8c3ba0b2cd9b4db63b3bee12f8a1ca1bb754ae36bf4e6d46ba90a5b4d2c", - "size": 14976 + "sha256": "adb02ffd87590fc5c835e85817f4d30b3841c4486c7de918205b32432770f853", + "size": 15666 }, { "url": "https://code.claude.com/docs/en/headless", "status": "success", "path": "en/docs/claude-code/headless.md", - "sha256": "a46f96a50cb89703ee5d90e42cbfea0f9f0ca462c87490e1ecb5d0f229162a01", - "size": 34999 + "sha256": "ed2edc127790a5d3db14e1224887002e322880ff4e1bba92b121750c6ccfb05d", + "size": 37648 }, { "url": "https://code.claude.com/docs/en/deep-links", "status": "success", "path": "en/docs/claude-code/deep-links.md", - "sha256": "a25317f3fc095c353f0febbad563eaee6c0005b1ddcf3ee12f446d69e21e0f07", - "size": 13825 + "sha256": "680819f2dee985f114a5a5bb6eaf1d178755db080e4df6d59c2b3816d49c65f6", + "size": 13963 }, { "url": "https://code.claude.com/docs/en/large-codebases", "status": "success", "path": "en/docs/claude-code/large-codebases.md", - "sha256": "870eacc7cff99fd6593db39e5c648048dcfb36dcaa7701b78763f81c23e6319a", - "size": 34542 + "sha256": "d41576eed15d2393913d0b4dcd52e5a794920358b820237610967860cdc06f70", + "size": 35669 }, { "url": "https://code.claude.com/docs/en/troubleshoot-install", "status": "success", "path": "en/docs/claude-code/troubleshoot-install.md", - "sha256": "7c3570d574ad839d1e4110b3872e7f2853b0cb7f541b8fbb0082dd7a30718416", - "size": 75853 + "sha256": "10ab4b6ff094c5f7397aa354f6f9e3aa49db77676330a7fca6e3c6660cce4bb3", + "size": 76773 }, { "url": "https://code.claude.com/docs/en/troubleshooting", "status": "success", "path": "en/docs/claude-code/troubleshooting.md", - "sha256": "5b50db0218d34c080e1b0647e518200fe347535312a8eb0caffbbee8ab9fe19f", - "size": 15841 + "sha256": "88e8cf2316928bfac9c256d421468034ea5b0fa826e77b8698c5292e966e7339", + "size": 16669 }, { "url": "https://code.claude.com/docs/en/debug-your-config", "status": "success", "path": "en/docs/claude-code/debug-your-config.md", - "sha256": "3080b6dbb652e919a2431d32e4c77fc192cd2c7261e5e20535d4ce923ba9a982", - "size": 17417 + "sha256": "19ace878607abefca53d67d7e482de908a4a675f9bf85572d6041f1f9f7e0573", + "size": 18429 }, { "url": "https://code.claude.com/docs/en/errors", "status": "success", "path": "en/docs/claude-code/errors.md", - "sha256": "de4fd374f7bee1036bf21129a063bf939416b6ec912202b2de10c1fe8d2716fd", - "size": 559142 + "sha256": "439ba83f5bc1173d53ea0aee85a4caa86bd1e6d603445a85bc2e2e3a6c79116b", + "size": 579497 }, { "url": "https://code.claude.com/docs/en/plugins/overview", "status": "success", "path": "en/docs/claude-code/plugins/overview.md", - "sha256": "9f50044fa9a2c7c939f6e82cb2edb2a4c854f9fe814a528ae84098125436ee32", - "size": 13454 + "sha256": "39428797127e41b31bf72ff1030d94a005c207c38e0d7f2aea563568677c36e6", + "size": 14558 }, { "url": "https://code.claude.com/docs/en/plugins/install", "status": "success", "path": "en/docs/claude-code/plugins/install.md", - "sha256": "43f3cfa91e0ef5cafd8dd76e7952a47ad3d87d0af05d69cc52f7ffbe1607ea54", - "size": 31460 + "sha256": "dac1cff425abd374c83c197c030a80a3979ceabc59de5572b304d8aafc7f83a8", + "size": 32518 }, { "url": "https://code.claude.com/docs/en/plugins/anthropic-marketplaces", "status": "success", "path": "en/docs/claude-code/plugins/anthropic-marketplaces.md", - "sha256": "5988ebbf7233f41e6431735a1551a4c63f2a99006a823a2096a02c7bafd617d7", - "size": 8612 + "sha256": "7cddf8023c58c4e9ab182c8df25a8c89768f555ccbfefb92e75a3dcaa7eccc94", + "size": 9003 }, { "url": "https://code.claude.com/docs/en/plugins/code-intelligence", "status": "success", "path": "en/docs/claude-code/plugins/code-intelligence.md", - "sha256": "d5777b7f9e1a9722358bef951e71237b51afa4bd2a3816d676c61f5023acf596", - "size": 11572 + "sha256": "324e133b0f4f0fef5eef17de03d9a03475b7b95e9f7ea9a56b12b3317b4c3781", + "size": 11917 }, { "url": "https://code.claude.com/docs/en/plugins/security", "status": "success", "path": "en/docs/claude-code/plugins/security.md", - "sha256": "82f1c2781af99a010aa0045965abdc3d64e1d242fe48105388755a6330d0b4c5", - "size": 14002 + "sha256": "ae33fa661cc9b4a96a088fdfc2389f6c1ee7f9f827732ca61378a7d71b9de8ec", + "size": 14876 }, { "url": "https://code.claude.com/docs/en/plugins/create", "status": "success", "path": "en/docs/claude-code/plugins/create.md", - "sha256": "701342608e2d198998c7504590002535ebf14187d36b8aebbd282025c6f39361", - "size": 25225 + "sha256": "1f5f8da4feaf89c26374c2e2f232e16c52d97459e421e8108725e297899e2d75", + "size": 26214 }, { "url": "https://code.claude.com/docs/en/plugins/components", "status": "success", "path": "en/docs/claude-code/plugins/components.md", - "sha256": "2b5c47b750e4c09e97d8abb992a8e9b690d1ae7d63d477b458a363eb8a1beb0a", - "size": 38390 + "sha256": "786d53be6bd916b4a90f196843d3848170ceac5a46c8cba6b1507e94f3d282a8", + "size": 40023 }, { "url": "https://code.claude.com/docs/en/plugins/dependencies", "status": "success", "path": "en/docs/claude-code/plugins/dependencies.md", - "sha256": "ea38c560563a29b382a4bd04b0e5fc5848ecb07960eb5362766b262b4cf6c99f", - "size": 17171 + "sha256": "ffaa4bddfb56826e57ae437a438611ce0ef992abc12da8959590123cbff95051", + "size": 17562 }, { "url": "https://code.claude.com/docs/en/plugin-evals", "status": "success", "path": "en/docs/claude-code/plugin-evals.md", - "sha256": "550136f902ae81440c0fd5e296fad13659c9cc29058db1e7d7726868c334dbd9", - "size": 63350 + "sha256": "4505c07df2227cb7dd608b5a3e82ec4a76c61e6904889c73326ac1a1d5bc84aa", + "size": 63948 }, { "url": "https://code.claude.com/docs/en/plugins/publish", "status": "success", "path": "en/docs/claude-code/plugins/publish.md", - "sha256": "d4d6c3a72f5e76d3d574be48cd3c5e05850b93d8e29c3a68da2bce832c3af508", - "size": 16223 + "sha256": "222e3ce3c9359aae7b9209fe67d70c32b2f791bb5e189c123b23dc53cfafb0b2", + "size": 16959 }, { "url": "https://code.claude.com/docs/en/plugins/measure", "status": "success", "path": "en/docs/claude-code/plugins/measure.md", - "sha256": "d2a372c7cbbf618d0f069904fa1b1365887664ce7789b0e5c15a0ad468b698cf", - "size": 12822 + "sha256": "3a9e9eb30930b66d172286b4dd17b49e611cf016df7289357f1873975c2ab20f", + "size": 13466 }, { "url": "https://code.claude.com/docs/en/plugins/cli-hints", "status": "success", "path": "en/docs/claude-code/plugins/cli-hints.md", - "sha256": "d7360f54613d4598350193289c63ff9b7dd9659c7818205c6dac768003826c4b", - "size": 6683 + "sha256": "3ffe67731f851b2c1b3ed0bc4f4dcea4a1cdbccd675575840610e8f883c75c66", + "size": 6844 }, { "url": "https://code.claude.com/docs/en/plugins/mods/overview", "status": "success", "path": "en/docs/claude-code/plugins/mods/overview.md", - "sha256": "98a94688f1ffadbebba1a8f440bbb433b500318f4ddc09fd45d04d86501f36a8", - "size": 23748 + "sha256": "6bd81a0e8ffc9483565735845c440019cbdd30aa2479dd73c24b5d9c17d08173", + "size": 25404 }, { "url": "https://code.claude.com/docs/en/plugins/mods/create", "status": "success", "path": "en/docs/claude-code/plugins/mods/create.md", - "sha256": "61b944cb1c6d605bc0cc8d319effb7892af7b400d47394c8e0d4df6896b724d3", - "size": 23705 + "sha256": "c50f7af09c92d5d90cef1018af11c38cc44de7ea6ffab0d83c9348ff7a3dbd7c", + "size": 24648 }, { "url": "https://code.claude.com/docs/en/plugins/mods/reference", "status": "success", "path": "en/docs/claude-code/plugins/mods/reference.md", - "sha256": "646f0e9a6dbc8f596c176254976e2fc366620ddaeb68cbb9d3a72451d4efa260", - "size": 41299 + "sha256": "67d7904c54ee156a598757f1d22e6362ae69a94f96ee13d67728b150c01fe73c", + "size": 43737 }, { "url": "https://code.claude.com/docs/en/plugins/mods/interface", "status": "success", "path": "en/docs/claude-code/plugins/mods/interface.md", - "sha256": "f32361edb5895b89a416db4e397834eaa6960abdf84b1f1ad79124e7f89a5f12", - "size": 50712 + "sha256": "715e5e3f65cf1f5ce7a49aaa0a3f7e6784a71564fe1dacd70c09bb8ee5c14aee", + "size": 51724 }, { "url": "https://code.claude.com/docs/en/plugins/mods/gallery", "status": "success", "path": "en/docs/claude-code/plugins/mods/gallery.md", - "sha256": "a13b81ab266fea5746844c72bbaa099a81cfa232d60b9c83ba4186bb86cfa7a1", - "size": 18179 + "sha256": "a06f15ccc2a86f34e5600acbec67103aebb555bd2badcf5863061ced8dfe64c3", + "size": 18662 }, { "url": "https://code.claude.com/docs/en/plugins/mods/events", "status": "success", "path": "en/docs/claude-code/plugins/mods/events.md", - "sha256": "d6e4dd0db01dd51ece008a9c3dabd11c5ea00ec3b3df9bfde888d19aaa91e3d1", - "size": 29035 + "sha256": "17fb213580517a4a28e39f31d3327a2ff9f0727aeef5d5938ebe1940d23a7124", + "size": 30001 }, { "url": "https://code.claude.com/docs/en/plugins/mods/api", "status": "success", "path": "en/docs/claude-code/plugins/mods/api.md", - "sha256": "3c2b3b7cb6b0330471abc849fb0e43d93940d372aee048c66e0ef65bff611963", - "size": 33516 + "sha256": "3aeb3747155313b4644206c33076ca4d8fc75781a24cf86729adf73ab4e39743", + "size": 34666 }, { "url": "https://code.claude.com/docs/en/plugins/mods/test", "status": "success", "path": "en/docs/claude-code/plugins/mods/test.md", - "sha256": "a8ee8acc2f9074f01dc2bd1d1cca404ec8003ca2a519c680aacec311e808b948", - "size": 26213 + "sha256": "eea2ecd4b30406486dbfcde4b792840e8ed2fe01ac04dca29d9d88eba2992db6", + "size": 26903 }, { "url": "https://code.claude.com/docs/en/plugins/mods/troubleshoot", "status": "success", "path": "en/docs/claude-code/plugins/mods/troubleshoot.md", - "sha256": "d254f1d2ef947135a1cda6f90305f63b81e3fcefe9a2368ab094a4174bccfcad", - "size": 28538 + "sha256": "6d342fd66857e982d1754474d471afabc1ddddb806fda145e2e77f181b708e73", + "size": 29849 }, { "url": "https://code.claude.com/docs/en/plugins/create-marketplace", "status": "success", "path": "en/docs/claude-code/plugins/create-marketplace.md", - "sha256": "2bb74276dcfc81521e5f18b7eeac8d1eab37e64f4f3fe9cd7a81072c8038986f", - "size": 13915 + "sha256": "8375e712c31dcea2ba3c032862bb85a3983693edd2f874690d5c196f8c0f4a8a", + "size": 14444 }, { "url": "https://code.claude.com/docs/en/plugins/host-marketplace", "status": "success", "path": "en/docs/claude-code/plugins/host-marketplace.md", - "sha256": "d1ea6851e1cf2d9fc6b50ec252c768af6e2645b48a9844892df2eabd2b6c2fee", - "size": 38961 + "sha256": "3eccac1c5fbce214f32979784ce2133043b202e87254e3b6a8b4ea39524ecf5b", + "size": 40111 }, { "url": "https://code.claude.com/docs/en/plugins/relevance", "status": "success", "path": "en/docs/claude-code/plugins/relevance.md", - "sha256": "157d0059c72402e67f5adbb9bcac44f54c7cf97b09d5bde690e64f88a7801123", - "size": 12881 + "sha256": "60d477e348e6e15d10c3e521bfe8233e93f62658bdc7554af3a8efc21833ee13", + "size": 13111 }, { "url": "https://code.claude.com/docs/en/plugins/org", "status": "success", "path": "en/docs/claude-code/plugins/org.md", - "sha256": "70f187d269099ff5688decd33eb6569be0a9b83087608078a5480922b97c06c2", - "size": 40586 + "sha256": "07b76abaf196bb697a94d3c73fc3a332a975137ba0fc3d6f84baf00b40c56b36", + "size": 42173 }, { "url": "https://code.claude.com/docs/en/plugins/mods/admin", "status": "success", "path": "en/docs/claude-code/plugins/mods/admin.md", - "sha256": "5cd35b6925b629879bbebe36c9ee1988067baa851417430d70661d3895daaa2d", - "size": 36307 + "sha256": "f9472153d6fc856bb1717f016effceb566505cddda62e44f76c1d3a33c8e06a3", + "size": 37894 }, { "url": "https://code.claude.com/docs/en/plugins/troubleshooting", "status": "success", "path": "en/docs/claude-code/plugins/troubleshooting.md", - "sha256": "0e633b34789b941f5b9c6444f43a5d3218d95d8cadbd1ebf6eb8ebc813a204c8", - "size": 94928 + "sha256": "c85e06e0099ac2df8901cc4c494a736888bab9262b17863f485b9e68d7f13691", + "size": 97113 }, { "url": "https://code.claude.com/docs/en/plugins/loading", "status": "success", "path": "en/docs/claude-code/plugins/loading.md", - "sha256": "44311e95a0e8749c02c1455a4ed13f655bd3230aa7acbf1c6c0baae9cca79117", - "size": 42335 + "sha256": "b254d1372a3cd61f36e884d31002f09071425dc57d0a79aa1f250790e4c7881f", + "size": 43876 }, { "url": "https://code.claude.com/docs/en/plugins/manifest-reference", "status": "success", "path": "en/docs/claude-code/plugins/manifest-reference.md", - "sha256": "f2910dd6020f5448e5d8c9a8c3b5af7b31b7222d247c20b25f44a712b805916e", - "size": 42124 + "sha256": "3b72923e29d936fcb96146aae7b745e04486ac0367c5e3018739816f6cb85184", + "size": 43136 }, { "url": "https://code.claude.com/docs/en/plugins/marketplace-reference", "status": "success", "path": "en/docs/claude-code/plugins/marketplace-reference.md", - "sha256": "d7ad8984429685c57bf21ecbcfd5850dc8e07ebb65a132048a69f194a4533f28", - "size": 44503 + "sha256": "9f0d9195189e02ce43c613b9546027d36222857986383b42f505a4ae2110d772", + "size": 45837 }, { "url": "https://code.claude.com/docs/en/plugins/cli-reference", "status": "success", "path": "en/docs/claude-code/plugins/cli-reference.md", - "sha256": "7c95b6e8e4217e00e45179c8063e02c44ea66384480c747589e44fcffa3aa119", - "size": 62669 + "sha256": "ade052ad6c85314ec7825925396abf76cce5c9403f9effaaa919a734be6862e9", + "size": 64647 }, { "url": "https://code.claude.com/docs/en/admin-setup", "status": "success", "path": "en/docs/claude-code/admin-setup.md", - "sha256": "9bacaf09372216d2f796ed2cf6433e2f2ecf45743998e07f79f2147a50dc8a32", - "size": 27028 + "sha256": "1eb94b55abea016745430bfd650f1755c5aa9122d126a4047d258fc071672c71", + "size": 29328 }, { "url": "https://code.claude.com/docs/en/setup", "status": "success", "path": "en/docs/claude-code/setup.md", - "sha256": "c74e1b1ffe9e728b46d5de7508f8a6354c1e492d20872bf08bc732e98873c39d", - "size": 32755 + "sha256": "df57c9a56399c1be2a6d6732fe9ddcdb189cab7f78d203d68e83f495036e123f", + "size": 33721 }, { "url": "https://code.claude.com/docs/en/authentication", "status": "success", "path": "en/docs/claude-code/authentication.md", - "sha256": "0733d76246f951ea1bc0826d311a3eee57d340484b3f049437598db79713a97e", - "size": 32572 + "sha256": "2fac747fa977317f15bbd91155180398d3488643b94bdc2be2fdd0030e1e94d5", + "size": 34343 }, { "url": "https://code.claude.com/docs/en/managed-settings", "status": "success", "path": "en/docs/claude-code/managed-settings.md", - "sha256": "76c6c1c66f0e2b8584fc2d50100afd37dc5b40591447d60cbb80b8b71e84b967", - "size": 59810 + "sha256": "1f8f9170166c8f475ad2a87e08a8db9517f7f5518e91be2a9ef8519e8a3e622e", + "size": 63260 }, { "url": "https://code.claude.com/docs/en/server-managed-settings", "status": "success", "path": "en/docs/claude-code/server-managed-settings.md", - "sha256": "a2052e5fc039608d998342443caa7a195f2bb614651e0123cc6b708d3135a1b0", - "size": 45376 + "sha256": "cca39347ca01a1af91f36a87e58b2f13d3030f749e01404950012abfec1ccd43", + "size": 47354 }, { "url": "https://code.claude.com/docs/en/managed-mcp", "status": "success", "path": "en/docs/claude-code/managed-mcp.md", - "sha256": "7c7cf88c5ca0545aa7205423ded89ae8656e20ca41ad9208cf675356db3308b8", - "size": 45433 + "sha256": "fff3b7777287ea7a8ba4769f8f807e3da62b65a79d454cee7762204fabe29459", + "size": 46928 }, { "url": "https://code.claude.com/docs/en/auto-mode-config", "status": "success", "path": "en/docs/claude-code/auto-mode-config.md", - "sha256": "98e77b9fd59c2aaca8c103cd08b3aa7fac0aa234b58c4052ff57e0f8e7136d05", - "size": 32151 + "sha256": "8a540674a790152f0537ae66652b67677a1c83431da7baa3b9e24df3af0ebd28", + "size": 33094 }, { "url": "https://code.claude.com/docs/en/third-party-integrations", "status": "success", "path": "en/docs/claude-code/third-party-integrations.md", - "sha256": "1fa0bb8adbacc8672795d35ad7b48a61e3b7cc198a6a42cdf3ad6c6b4bfb0825", - "size": 11400 + "sha256": "89c448905df6e70ef085ec34ad86c76488a5d0d8089943ca33867a3c36bb90a2", + "size": 12067 }, { "url": "https://code.claude.com/docs/en/feature-availability", "status": "success", "path": "en/docs/claude-code/feature-availability.md", - "sha256": "1e8f0ee76e3b1c9792538006af4e70b24f1599b6d1f3720f21bda9bb72c0123c", - "size": 21737 + "sha256": "f747c45b3d614ab543a02c86298925ac544746c9c8feb5972dc2c5142f04ef2a", + "size": 25072 }, { "url": "https://code.claude.com/docs/en/amazon-bedrock", "status": "success", "path": "en/docs/claude-code/amazon-bedrock.md", - "sha256": "2bef286a55cb3733ef49294982b44bbc18fd39f2df995edd09a204d1fb7f0f7f", - "size": 46302 + "sha256": "f463b27513e3b0ba24a6aa61941ab8d593c373578127355e859ebeece38a2bae", + "size": 47268 }, { "url": "https://code.claude.com/docs/en/claude-platform-on-aws", "status": "success", "path": "en/docs/claude-code/claude-platform-on-aws.md", - "sha256": "cbf285a818edf1da53f18e8df67d3ad0fe94cb980773f9fe9a676e7f8a6aa4ef", - "size": 12138 + "sha256": "27eea85c44af09e417a558e28f37a19978fa3f79d7c6da6f85e82769ef4262c9", + "size": 12414 }, { "url": "https://code.claude.com/docs/en/google-vertex-ai", "status": "success", "path": "en/docs/claude-code/google-vertex-ai.md", - "sha256": "8c862de55e88cd643b6132668560da1dbba3d6b34b30865306e460acd33c13f2", - "size": 21719 + "sha256": "11debaf216c0cc14e189f13829f07531338b69af438d2e358387609831ca1cd8", + "size": 22225 }, { "url": "https://code.claude.com/docs/en/microsoft-foundry", "status": "success", "path": "en/docs/claude-code/microsoft-foundry.md", - "sha256": "f1c2e6b2af16a7f829959dafad6e8c28ef74819f7b1563b57526d3e822627d59", - "size": 10163 + "sha256": "b902c86c29fcb7ca2ca11408d5b394cb3912b4f7d6050d8626bf50d46144e5b1", + "size": 10347 }, { "url": "https://code.claude.com/docs/en/network-config", "status": "success", "path": "en/docs/claude-code/network-config.md", - "sha256": "44d0ade0ee3adeca536745126498f6189179f70d2d8d47b7b6b76558586a8e8c", - "size": 32856 + "sha256": "7644c49bc32233fa798ce796fd0388a8457d553bac6ed2427329a92001f4465d", + "size": 34788 }, { "url": "https://code.claude.com/docs/en/corporate-launcher", "status": "success", "path": "en/docs/claude-code/corporate-launcher.md", - "sha256": "7b1719b6ca946fe9452e6a73a7055371b05a1deab5b285bad6ba2e09ecfc9270", - "size": 14801 + "sha256": "7362c01bcf8c279dd5af7c896a7c733e2a94ee2f984cd92763986a4830e11439", + "size": 15238 }, { "url": "https://code.claude.com/docs/en/devcontainer", "status": "success", "path": "en/docs/claude-code/devcontainer.md", - "sha256": "a2fe229fd05177ab3f5f57efc80546a6fa5e30b3f7fadfa6abe3a46d0252add9", - "size": 17717 + "sha256": "004d441e6b81aa54b329e060dc3a05dc1fe4766fce705c46053ba4e3850dda8c", + "size": 18476 }, { "url": "https://code.claude.com/docs/en/gateways", "status": "success", "path": "en/docs/claude-code/gateways.md", - "sha256": "c04b398981676dcb7927d841bb7c9869f7a3954514efc5b74a11fcc6545d9b87", - "size": 9217 + "sha256": "6ebbe127f656bc8233cd913299c49f6a6f17019bb9a70ed9f58b1ee5437ea94e", + "size": 9769 }, { "url": "https://code.claude.com/docs/en/claude-apps-gateway", "status": "success", "path": "en/docs/claude-code/claude-apps-gateway.md", - "sha256": "19e2f2495da82a69a88f9136c03018b88fb72c4c1c16d41cf04cf6daa8530b9d", - "size": 60298 + "sha256": "2661b44b59919124a99459f34e51aac73b5e38f14add593bd329caad8bf22c25", + "size": 62575 }, { "url": "https://code.claude.com/docs/en/claude-apps-gateway-config", "status": "success", "path": "en/docs/claude-code/claude-apps-gateway-config.md", - "sha256": "80a14a1b8b9f119c359704785f5ebbf0fd15d6da65f5b31a1ea3f4d981773871", - "size": 137941 + "sha256": "f01ad43addfd75d691be1bb095de21629fa0895c0c84250466d05ab5ba4bb5c4", + "size": 140218 }, { "url": "https://code.claude.com/docs/en/claude-apps-gateway-spend-limits", "status": "success", "path": "en/docs/claude-code/claude-apps-gateway-spend-limits.md", - "sha256": "d586b1b619c94932ab3106fb9e60964ac21b1e8dea51781c28e63edf92d022a5", - "size": 16451 + "sha256": "592a42461e19a795b29b9007933ef58e647e4d9c5298e11968f3b73009db0f59", + "size": 16934 }, { "url": "https://code.claude.com/docs/en/claude-apps-gateway-deploy", "status": "success", "path": "en/docs/claude-code/claude-apps-gateway-deploy.md", - "sha256": "68831d8214f9356914f600fa713a103566db39653e1f14b5349714ef7c85b9b7", - "size": 74259 + "sha256": "369303302cfd4ed4a8c0b6bdf107db98a0ff26bf1d7c77c281fdf0107ae0cde3", + "size": 76582 }, { "url": "https://code.claude.com/docs/en/claude-apps-gateway-on-aws", "status": "success", "path": "en/docs/claude-code/claude-apps-gateway-on-aws.md", - "sha256": "dd293fed42dba6829dda9c26a707449b91f5f531e41dd3e649b1453e1d50274f", - "size": 50882 + "sha256": "48e11606e69f844b8fd8d06f1db6764bab88d4659090bb7913580149a9d95a84", + "size": 51802 }, { "url": "https://code.claude.com/docs/en/claude-apps-gateway-on-gcp", "status": "success", "path": "en/docs/claude-code/claude-apps-gateway-on-gcp.md", - "sha256": "7756d16ad9ee14f819ee0fae3d686ff99bbe3056392e26f519144af492f3119c", - "size": 21782 + "sha256": "3d9475e64949fc16e75eb10f536a43ea12d54cbdbcf2712cf61d228ef5aff6f9", + "size": 22242 }, { "url": "https://code.claude.com/docs/en/llm-gateway", "status": "success", "path": "en/docs/claude-code/llm-gateway.md", - "sha256": "bafb23108b2dc41b9cd9c9b8f57577ee816954cab31374f93e3aa3aa3888fdf6", - "size": 7162 + "sha256": "8dd7626286a658e2fa69903555f1e542f1719fc7506b4f892f0600a2b4fbd9c1", + "size": 7714 }, { "url": "https://code.claude.com/docs/en/llm-gateway-connect", "status": "success", "path": "en/docs/claude-code/llm-gateway-connect.md", - "sha256": "36abf9564df5cd4ea08381d527cfb7b12d45d3f670e3d9f3014c417e4aa6b49f", - "size": 44713 + "sha256": "27aef76484d6fddd9415a6b7c042fb3cd146d5ea566326d46e72de40d879e46f", + "size": 46254 }, { "url": "https://code.claude.com/docs/en/llm-gateway-rollout", "status": "success", "path": "en/docs/claude-code/llm-gateway-rollout.md", - "sha256": "d438be77d2db46bf06aa80fc2644369773ff615015ffe0f9ace624a739383476", - "size": 29572 + "sha256": "fbf3667144c3c1791c88052b82deca88548fe9202b4261ba13f2e441a3edec80", + "size": 30975 }, { "url": "https://code.claude.com/docs/en/llm-gateway-protocol", "status": "success", "path": "en/docs/claude-code/llm-gateway-protocol.md", - "sha256": "e6ac49c8b623c3a01f6d6ef5acc59d2d7455a7f00bb78c0acb568f51e68ec6d1", - "size": 47942 + "sha256": "8c6e0a25a2c9b68a136f9819606b3ec1d335c25f22307f5169fb59e402da30fa", + "size": 49828 }, { "url": "https://code.claude.com/docs/en/monitoring-usage", "status": "success", "path": "en/docs/claude-code/monitoring-usage.md", - "sha256": "0e42ac27160f846a34ab3af5356692a9f20eb2ece99d02db48681065f7373164", - "size": 166596 + "sha256": "3dceb23478eb5ad0099bf68203e019679dca8b029b6296077ee14822346c0a7f", + "size": 170575 }, { "url": "https://code.claude.com/docs/en/costs", "status": "success", "path": "en/docs/claude-code/costs.md", - "sha256": "bafec70dcb34f9c71e718a188d3a83311d760190b4ed0d14d2f435b23d06f418", - "size": 44813 + "sha256": "68019dc152b77e4cea6f08ed39b2fb90ed91c12209825c90815ad53235528c08", + "size": 46745 }, { "url": "https://code.claude.com/docs/en/analytics", "status": "success", "path": "en/docs/claude-code/analytics.md", - "sha256": "0c6a963ff78c5053d15267f0647bcd3c751f90472dc050632f43b4dfc18db6a8", - "size": 11914 + "sha256": "17c37a237f885d1e29112ae4a6e521ebff938fa78cfa7c649bed5660a189d38f", + "size": 12075 }, { "url": "https://code.claude.com/docs/en/security", "status": "success", "path": "en/docs/claude-code/security.md", - "sha256": "c4fc8683541ed5c3e3799d6b4eec1fc2b4151da5bd105a5bf281d06060569130", - "size": 14473 + "sha256": "3d516a197892dc41847431f83ee8bb1357fd819fca3f0c1426c6e095d135586f", + "size": 15462 }, { "url": "https://code.claude.com/docs/en/data-usage", "status": "success", "path": "en/docs/claude-code/data-usage.md", - "sha256": "0315ad86483d15484eed2e474460ed98f35ca01b48701e09fe85651842b18963", - "size": 18145 + "sha256": "ed77a844203fcf1d2dd07d38313530f88530820c6ecce29b047d23d3f50ce256", + "size": 18789 }, { "url": "https://code.claude.com/docs/en/zero-data-retention", "status": "success", "path": "en/docs/claude-code/zero-data-retention.md", - "sha256": "9d5a1956f8068a5016e5f7dc01ceeef142100a3134563bd23926fbe4d18d4b70", - "size": 8147 + "sha256": "fbbcdfda7c88d4cd3a9ab6449e85016d9e03ef89beffae52b15fb55a57c67fd1", + "size": 8377 }, { "url": "https://code.claude.com/docs/en/hipaa-setup", "status": "success", "path": "en/docs/claude-code/hipaa-setup.md", - "sha256": "dc2dd8fe4735920df9173480b54994620e01fd56fba4eace971bc7c1332145f0", - "size": 21720 + "sha256": "168e965bcca4d986fce6eb6aba66f27d6e329872c6d9a665988d6e7ef7086145", + "size": 22594 }, { "url": "https://code.claude.com/docs/en/communications-kit", "status": "success", "path": "en/docs/claude-code/communications-kit.md", - "sha256": "8ba520a60fea2b6652d1e7a07b89767ad1ab16552a1cea2c7851b0e64b0c115f", - "size": 21111 + "sha256": "369353810717ea8085897ca627819a04c2c9418f32d68bb13e551753016d08cd", + "size": 21364 }, { "url": "https://code.claude.com/docs/en/champion-kit", "status": "success", "path": "en/docs/claude-code/champion-kit.md", - "sha256": "4367928967401f52bbf1523508aa1adfa5a7932ceeb950eb5723d65ab17faa87", - "size": 16149 + "sha256": "f82f58eda6f38c81c2299a657cad0a1c515bcbd560b73bdbcde18309be5cd5b6", + "size": 16517 }, { "url": "https://code.claude.com/docs/en/settings", "status": "success", "path": "en/docs/claude-code/settings.md", - "sha256": "df255caa05a7c40c1806810cb587233a3a4f83dc2ea997b0f3d89a5c49071f04", - "size": 42013 + "sha256": "0b062367ed54712ecd9e1a3d6b5d67e4eedc860e01962202176ce5e48f1915dc", + "size": 44773 }, { "url": "https://code.claude.com/docs/en/settings-reference", "status": "success", "path": "en/docs/claude-code/settings-reference.md", - "sha256": "111f95f7d1b75102fe61f73eb824a5955bf0bfa458e12f4d00e601a041e34a32", - "size": 414094 + "sha256": "d359aa89b2adba5cdf14d3e2f57f51d57629cfec56732bffcb4e1b586589fc2c", + "size": 437384 }, { "url": "https://code.claude.com/docs/en/settings-example", "status": "success", "path": "en/docs/claude-code/settings-example.md", - "sha256": "64134f0fd6b4ab20aba8dd03e97ca9c58cde991f88fa5378c40638955195a1f3", - "size": 14343 + "sha256": "98b0b72460144cd186b57bf312286cb2a53e8bc7d6dc7a24c90b9a423eeabe61", + "size": 14711 }, { "url": "https://code.claude.com/docs/en/permissions", "status": "success", "path": "en/docs/claude-code/permissions.md", - "sha256": "7356bcda68adb0c6cfa974945740f10a8ffb2fbd0b24c453457c9a03c852c1d3", - "size": 87039 + "sha256": "c161181cf0bb4989c68a81c89e4f5a8e59bcd689ae62f7d51af1b32949a9a335", + "size": 90880 }, { "url": "https://code.claude.com/docs/en/permission-modes", "status": "success", "path": "en/docs/claude-code/permission-modes.md", - "sha256": "a1b89e0f9482cbb79d97d0590746af2382520854fa92ebd956f9809de6ef563f", - "size": 101322 + "sha256": "17c8302bf5ee6e9481cb1fdff1f69325babbf880fa324a02565f0a944475643e", + "size": 106175 }, { "url": "https://code.claude.com/docs/en/auto-mode-classifier-billing", "status": "success", "path": "en/docs/claude-code/auto-mode-classifier-billing.md", - "sha256": "6da8d8b56353a594dcf53554477f8f971f4083b27cd5693bdebf8c1251def895", - "size": 6499 + "sha256": "00f53a660026caf86e122565e52e8a80400a5b204ac31d470260c93073a47b9b", + "size": 6798 }, { "url": "https://code.claude.com/docs/en/sandboxing", "status": "success", "path": "en/docs/claude-code/sandboxing.md", - "sha256": "e3856ae876a4ede9d79e75c0d0a151b7b1a867e1e1df7f794f20ffa13891da0a", - "size": 99342 + "sha256": "fc1b2dbb7cf8546c9212c9565f0be0827a898f7d03e1ad603a6f5bca183215ac", + "size": 103114 }, { "url": "https://code.claude.com/docs/en/sandbox-environments", "status": "success", "path": "en/docs/claude-code/sandbox-environments.md", - "sha256": "fa2c75138e378b808262ce947aa24525e4dc51b4f389ada7a2c7eb148f2dd54a", - "size": 18269 + "sha256": "d610c8694dd53d0f9e2de5a51b90475514960575c7366cf13f43367fa545edf9", + "size": 19189 }, { "url": "https://code.claude.com/docs/en/cloud-environments", "status": "success", "path": "en/docs/claude-code/cloud-environments.md", - "sha256": "6b20079e8e38fe3a6bb2439dfcb5fbae06fd04c1399e27b9f5b273f4e9fcc61a", - "size": 64082 + "sha256": "51d5be1ded0518c1423877743b6c4f53db7409cd2cc2b37629a3de9fedb6707e", + "size": 66129 }, { "url": "https://code.claude.com/docs/en/self-hosted-environments", "status": "success", "path": "en/docs/claude-code/self-hosted-environments.md", - "sha256": "ecba3671e825aba83bf3c8a8253441c77bc84dc607ab579b532afa7095dff66e", - "size": 19925 + "sha256": "583b13cb76e652503040e238bc23e9a81035c6ce76742c722cb4304654bed863", + "size": 21029 }, { "url": "https://code.claude.com/docs/en/self-hosted-environments-quickstart", "status": "success", "path": "en/docs/claude-code/self-hosted-environments-quickstart.md", - "sha256": "f4288b497cb95cfb0260c4f879533be4568cc97a47569b36c9f7b27beb48cd85", - "size": 15404 + "sha256": "2463dedcfea04c720b2a7b1224ffaf9f502bb3368b4c9704f6fc72b5461e105b", + "size": 16094 }, { "url": "https://code.claude.com/docs/en/self-hosted-environments-deploy", "status": "success", "path": "en/docs/claude-code/self-hosted-environments-deploy.md", - "sha256": "d7e325408f13db51cb3d0d6e7806a8c2604f6d0c3b777a0ccfb9bf2c92c76e3d", - "size": 99859 + "sha256": "f731e29130d469a0e15283a2196b4d4d4261895ea59bca74bdff98ec4ff20c53", + "size": 102596 }, { "url": "https://code.claude.com/docs/en/self-hosted-environments-configuration", "status": "success", "path": "en/docs/claude-code/self-hosted-environments-configuration.md", - "sha256": "3d50637fa4fb2a53728e883ee0a19a142b24aaba7f5ea03af0d0c2213cc486e3", - "size": 85545 + "sha256": "136b34059dbb645b226b4ae6bfc4a568a5382605d1d9213348a36d94cfd0ed12", + "size": 88305 }, { "url": "https://code.claude.com/docs/en/self-hosted-environments-testing", "status": "success", "path": "en/docs/claude-code/self-hosted-environments-testing.md", - "sha256": "cbeedd3e296673bf29cc2a8be66ca8f5ddc7d789e39fb8ad8126d42ffcbba5db", - "size": 16464 + "sha256": "e20fc4e36f1875e4b67417f57b3094ea51dbd02a9b44cbec2e291cc2945586b4", + "size": 16786 }, { "url": "https://code.claude.com/docs/en/self-hosted-environments-reference", "status": "success", "path": "en/docs/claude-code/self-hosted-environments-reference.md", - "sha256": "e11a27e0933e8fd5867f9329d5c61168083e0859182c2ea0e0ed5829f32a0ea6", - "size": 49738 + "sha256": "931aac4ba62ccf91935ca1352febc01402693d09d9dc975b4a00ba3041544c73", + "size": 50888 }, { "url": "https://code.claude.com/docs/en/self-hosted-environments-identity", "status": "success", "path": "en/docs/claude-code/self-hosted-environments-identity.md", - "sha256": "b6909f5a4c41237ed56f8e561c6e75c304b6e5cb9c4071988ca79f97803b6c03", - "size": 18323 + "sha256": "6ac7f2e818fad0e262090485bfd4bf790a661056788236d71a23343ec6db7e97", + "size": 18737 }, { "url": "https://code.claude.com/docs/en/model-config", "status": "success", "path": "en/docs/claude-code/model-config.md", - "sha256": "2b625d2fa6a17edbaf4c2aa4c4697aaabbe3d17d4d867451110835cf87155c3a", - "size": 121317 + "sha256": "8588cd62b893b3ac21c956e7cd979f32ba3380185be3714446aa0476df0da804", + "size": 125779 }, { "url": "https://code.claude.com/docs/en/fast-mode", "status": "success", "path": "en/docs/claude-code/fast-mode.md", - "sha256": "933c7dc626ac2b75cd3fda0ffae6a431b18bb9dcbb15881778428fcb600c3831", - "size": 20796 + "sha256": "78f92b24b84c18fbc5bec23cef0e3dd9bc0ae89eea858370ab6f317aa18cb066", + "size": 21532 }, { "url": "https://code.claude.com/docs/en/advisor", "status": "success", "path": "en/docs/claude-code/advisor.md", - "sha256": "37908050b71d00302387ecae526935ed634c0fb88137510cbb35aaef114e5b9a", - "size": 17201 + "sha256": "9de698b2d1d172fd775331704c4b5569a564b48edbb1e26e3bc5c097cac0dcaa", + "size": 17891 }, { "url": "https://code.claude.com/docs/en/output-styles", "status": "success", "path": "en/docs/claude-code/output-styles.md", - "sha256": "116451d9d4e64f98239e3be17f8018c717b0629bfe7639bed797b0239c225a91", - "size": 16538 + "sha256": "c96fd3a3359969b7fdb0d2479527eb712e2192a4b64d96cd956ae45945e523a5", + "size": 17159 }, { "url": "https://code.claude.com/docs/en/terminal-config", "status": "success", "path": "en/docs/claude-code/terminal-config.md", - "sha256": "baf432491585915d4bfbe35bfea537451849a2616b45858e8457873ee4d8232f", - "size": 25536 + "sha256": "2fbc85c440ada3cf559080ea8832589f806d11526c6fb36cd4ef20958dc19713", + "size": 26548 }, { "url": "https://code.claude.com/docs/en/fullscreen", "status": "success", "path": "en/docs/claude-code/fullscreen.md", - "sha256": "fccaf60a20124198185f413fbd1e35e573928379c3710cf8b112ed2bff74f272", - "size": 31104 + "sha256": "6c67c375fb8bc2dea3a4f9547a87e0416f04edcb42de38a9a920e8949026c4d1", + "size": 31955 }, { "url": "https://code.claude.com/docs/en/accessibility", "status": "success", "path": "en/docs/claude-code/accessibility.md", - "sha256": "16d344beee81df0d3c9c39abdecfa068915f04f73d788ba2292a54b05d5227fb", - "size": 13048 + "sha256": "24846a9497c1ff6276449938b60945f268852a01fff396a66f64d3e9722e14fa", + "size": 13715 }, { "url": "https://code.claude.com/docs/en/voice-dictation", "status": "success", "path": "en/docs/claude-code/voice-dictation.md", - "sha256": "6f2fa57c268e0113581e44f56e42bc268e02e4a9130f1f2b2a5a046df765c768", - "size": 18679 + "sha256": "dd7d3113d5f7c2c085f985c8ca94ead2f7606839fc724f4692c451e8fb36ed70", + "size": 19093 }, { "url": "https://code.claude.com/docs/en/statusline", "status": "success", "path": "en/docs/claude-code/statusline.md", - "sha256": "78c048e8072e040a69ab17a12c5090d1d5961278cf9295dc4fc526cd52cdc544", - "size": 65308 + "sha256": "ae281440ad99e518a74a6d44da7038f17ad45217dba5ee9fe58815bc386913b3", + "size": 66090 }, { "url": "https://code.claude.com/docs/en/keybindings", "status": "success", "path": "en/docs/claude-code/keybindings.md", - "sha256": "25c83c92203b2d2a9b4540c4cdc5ed3dcffc27da8455603f611bc144aeca5056", - "size": 39308 + "sha256": "184123817496b0976e0fb48588a521eb97d9e588bcd39b07d4e832cf852756fe", + "size": 40343 }, { "url": "https://code.claude.com/docs/en/cli-reference", "status": "success", "path": "en/docs/claude-code/cli-reference.md", - "sha256": "bd5644a7251c1551c05186e1d542cd20109444645e4ab5c01d7ee33e3befa030", - "size": 48250 + "sha256": "9a68c8f3c42d6b42031f6b3080f9a6c32e86aac6fb3f2ffb1aaae1abeb3d4f07", + "size": 51769 }, { "url": "https://code.claude.com/docs/en/commands", "status": "success", "path": "en/docs/claude-code/commands.md", - "sha256": "80164a5bc0d09cd44fef9d2d99d152a4fefae04adace1cdfba55d7448db7ed52", - "size": 54225 + "sha256": "88c29422eaa030363a3fcb75ab0a9aeac53e905658c34895e047cdd22c5aaa9f", + "size": 58871 }, { "url": "https://code.claude.com/docs/en/env-vars", "status": "success", "path": "en/docs/claude-code/env-vars.md", - "sha256": "de0105bc8071105b482c92cf8712e79d7a2df61d72eeee484421afafd43e17e3", - "size": 172302 + "sha256": "103e5e521a7f0893b65f93fd4184e1b06220a54b51bb3b6ad1070d24706a97d7", + "size": 185475 }, { "url": "https://code.claude.com/docs/en/tools-reference", "status": "success", "path": "en/docs/claude-code/tools-reference.md", - "sha256": "e975af6ddb1a7ef7818ff719221ab01ba6db4e24f5c7510db5b3726f07cc789f", - "size": 82639 + "sha256": "d158073c779eacf2eb93319067ee924295cc103b967ab37cf42347a138e4883a", + "size": 87573 }, { "url": "https://code.claude.com/docs/en/interactive-mode", "status": "success", "path": "en/docs/claude-code/interactive-mode.md", - "sha256": "a6104caaaae03cbd16a49d2f202fa884eaa1a8f809cf2b49b2b73a6956ffef71", - "size": 74639 + "sha256": "69a20c07fa8cc7c5c3e9700f2b1916625d4f085ed9c612c8e882b09774a7f4bf", + "size": 77891 }, { "url": "https://code.claude.com/docs/en/checkpointing", "status": "success", "path": "en/docs/claude-code/checkpointing.md", - "sha256": "c94d922b3b2aaa63ddcfa89212fb3bbd733e30fdffc63dd914f427272d6274a4", - "size": 9413 + "sha256": "20e9f3c3edd19c8eb9924af36e79505b9c1a6f0a2d6952bc319b05a30a5eaeec", + "size": 9712 }, { "url": "https://code.claude.com/docs/en/hooks", "status": "success", "path": "en/docs/claude-code/hooks.md", - "sha256": "c6ef9d211e8c4dc870add6302c47971f5fec316888993143011716f78b9862d8", - "size": 274129 + "sha256": "47ffc799070326108bbd3811db73d26f9a4cd68168078095d923a2ba710fdd8a", + "size": 279626 }, { "url": "https://code.claude.com/docs/en/channels-reference", "status": "success", "path": "en/docs/claude-code/channels-reference.md", - "sha256": "8cae8624275eb1760cb601430f988d574ae71f836f3cc9ee6bdfe40d14ec999f", - "size": 44718 + "sha256": "1bfaa7d49a51772d6b0a2eefb31ac92582ee2199bdd70da564d61278ece96c6b", + "size": 45063 }, { "url": "https://code.claude.com/docs/en/glossary", "status": "success", "path": "en/docs/claude-code/glossary.md", - "sha256": "8ff46b8da555b33eb7a82c9962d2c95853c6c57ae1059e72dd59eeae4c66a166", - "size": 28423 + "sha256": "109ca94cf31213552a032c5b5e689af5d3e28c55565195249068b7ff2d591021", + "size": 30263 }, { "url": "https://code.claude.com/docs/en/agent-sdk/overview", "status": "success", "path": "en/docs/claude-code/agent-sdk/overview.md", - "sha256": "0e09406630258a3e306684b4869707297ab992261b2055e78d551e1238bb889d", - "size": 6899 + "sha256": "6bf994e5897cbf228f19e17b177036fe23cdbd02b790944f72a090f07e80258d", + "size": 7382 }, { "url": "https://code.claude.com/docs/en/agent-sdk/quickstart", "status": "success", "path": "en/docs/claude-code/agent-sdk/quickstart.md", - "sha256": "085f0d2fabd0005f54d134daa11a336ca0e9afab872fb5f25f8907a46c02c1e0", - "size": 14544 + "sha256": "316c90f46dc6ab7abe321e6d9cc6b33dec73046ee362eff1147bdb27cd8e1deb", + "size": 15050 }, { "url": "https://code.claude.com/docs/en/agent-sdk/migration-guide", "status": "success", "path": "en/docs/claude-code/agent-sdk/migration-guide.md", - "sha256": "6736b88f7b5eb07cd3874937891405c4bc4989a2f587e2c52b5f05f35ac9f2cb", - "size": 6909 + "sha256": "68ba58d76121042cb53262a27c8ed7e6f8a1f7713474806742c23b2e85a8da27", + "size": 7093 }, { "url": "https://code.claude.com/docs/en/agent-sdk/troubleshooting", "status": "success", "path": "en/docs/claude-code/agent-sdk/troubleshooting.md", - "sha256": "401a37ad3f6629097be288d5893e1f2b8eb48c6d733776813402afe6967730ab", - "size": 13359 + "sha256": "75c8372f86eaaa636f2d40336e526caaaf07bb668e9cab7eb4ecbdc779bbef12", + "size": 13727 }, { "url": "https://code.claude.com/docs/en/agent-sdk/configuration", "status": "success", "path": "en/docs/claude-code/agent-sdk/configuration.md", - "sha256": "a0272be651fd4419dc42e2cce7bf14d99e7115c528f13a0c0a333ccf8bc88a34", - "size": 17431 + "sha256": "a458b10c67704d202d7dac1f9a280c71b576cba761f1d29a1468a55616108c4d", + "size": 18604 }, { "url": "https://code.claude.com/docs/en/agent-sdk/examples", "status": "success", "path": "en/docs/claude-code/agent-sdk/examples.md", - "sha256": "60b4697816f29c3a11ace4f364655dc9ff2ac21d51464ab4eda12b23d8ddebfd", - "size": 2180 + "sha256": "59fd222b1ed054bab4164c16bf796ce8a12361f088eeaf455f851b07aaae34ef", + "size": 2203 }, { "url": "https://code.claude.com/docs/en/agent-sdk/agent-loop", "status": "success", "path": "en/docs/claude-code/agent-sdk/agent-loop.md", - "sha256": "184ab45608f5543a2df9167f6010def0df17f1839ed28d379d1808792e4c2ebc", - "size": 39912 + "sha256": "16d9ca1ff07eff36538a2fd65dc3c6775c0536a90eb6071b72c1ca24a84fda55", + "size": 41637 }, { "url": "https://code.claude.com/docs/en/agent-sdk/claude-code-features", "status": "success", "path": "en/docs/claude-code/agent-sdk/claude-code-features.md", - "sha256": "7739f8b611b6414f66d1cb19d9933ce036633438a2b615bdd69aa056714c04ba", - "size": 19879 + "sha256": "853607de24218eac839698efe2a3f29da889fb14b6760279dcc29e7ee0f66a70", + "size": 20799 }, { "url": "https://code.claude.com/docs/en/agent-sdk/sessions", "status": "success", "path": "en/docs/claude-code/agent-sdk/sessions.md", - "sha256": "fedc141f9e2b6469359d73a2d964dc5d4871c2f856928a5082eedee38c912952", - "size": 21921 + "sha256": "456f033eff0db40bef3d41724e8ee7260cd156256727d73859c4ee108c7e35d8", + "size": 22703 }, { "url": "https://code.claude.com/docs/en/agent-sdk/session-storage", "status": "success", "path": "en/docs/claude-code/agent-sdk/session-storage.md", - "sha256": "15453c7cdaf6a949c535abcf835d00bf11ed04ba1ac200e7288da85f81d9231c", - "size": 23156 + "sha256": "b2a5ad497f498a6f6f3fdb2e97ecc4bc13c6812f67403902ea14244736b86ecd", + "size": 23662 }, { "url": "https://code.claude.com/docs/en/agent-sdk/streaming-vs-single-mode", "status": "success", "path": "en/docs/claude-code/agent-sdk/streaming-vs-single-mode.md", - "sha256": "93a76ab14ce72de6c0657b2338d88e8001bfbb7477d43d1eed1b6c7160d680c3", - "size": 9147 + "sha256": "34ed5851eab41e13cfa48cbc5cf21ca226016d8f3b25e999dce2db014bff4cc6", + "size": 9193 }, { "url": "https://code.claude.com/docs/en/agent-sdk/user-input", "status": "success", "path": "en/docs/claude-code/agent-sdk/user-input.md", - "sha256": "86d1f7b151ec467668e453bcd08aa16587fcd846b3a2f13d9ace205994d43129", - "size": 34616 + "sha256": "30115ac899f3a4b3e02e1625121852734d334f817e59cba3957cf1cd4ea2038a", + "size": 35145 }, { "url": "https://code.claude.com/docs/en/agent-sdk/streaming-output", "status": "success", "path": "en/docs/claude-code/agent-sdk/streaming-output.md", - "sha256": "ccd1a1cd9377817d99e700c5f059ac051f20e995267f9c9635eeba98da34e5d5", - "size": 14477 + "sha256": "2af154d13f639c4f73d7da5cf59a3daffa4c892ce9cafd5579635ccf472d2695", + "size": 14707 }, { "url": "https://code.claude.com/docs/en/agent-sdk/structured-outputs", "status": "success", "path": "en/docs/claude-code/agent-sdk/structured-outputs.md", - "sha256": "db53ebbc1e2f237e69172fd7a5b516fee58ab1cab7f2f89999960a56465f9488", - "size": 21409 + "sha256": "d85e294d567d82d9aa38b4671d3bbbc8488baab6974257128e4334434fff7645", + "size": 21524 }, { "url": "https://code.claude.com/docs/en/agent-sdk/custom-tools", "status": "success", "path": "en/docs/claude-code/agent-sdk/custom-tools.md", - "sha256": "18e0127ac262f08cb1cdd53380863b129a8b627f81947c8b43a6062445bb3a33", - "size": 37329 + "sha256": "eb83ee6bcaadc731375d8610e6eb4dac300969c5b70f0fa9497173fbd7fcac61", + "size": 37950 }, { "url": "https://code.claude.com/docs/en/agent-sdk/mcp", "status": "success", "path": "en/docs/claude-code/agent-sdk/mcp.md", - "sha256": "5d4653485dfa0f0e0fd9a4caec2744e01fa53a02e0965b895339cc53ac085a81", - "size": 39127 + "sha256": "354ad14a1d3466c5846639cc7dbac8d409556fe5a719f3dc8f500b2209246fb2", + "size": 40139 }, { "url": "https://code.claude.com/docs/en/agent-sdk/tool-search", "status": "success", "path": "en/docs/claude-code/agent-sdk/tool-search.md", - "sha256": "f8943a568acf7cb831e708183fb2f892812dc382bcc75d25a317d72993265cf3", - "size": 11233 + "sha256": "53192262923b7b10fe3d4ebcd036e818b6389d51f1e5e491e6febaf5ee31f153", + "size": 11578 }, { "url": "https://code.claude.com/docs/en/agent-sdk/subagents", "status": "success", "path": "en/docs/claude-code/agent-sdk/subagents.md", - "sha256": "5b7aa6c66705f223744ac58acd69b7629d4ccd23c56655678c975b22f9711315", - "size": 41461 + "sha256": "9db0458e43e56fd472b94af95e6eb9c1b00052a250eb91bc540da930b77cc4cd", + "size": 42519 }, { "url": "https://code.claude.com/docs/en/agent-sdk/modifying-system-prompts", "status": "success", "path": "en/docs/claude-code/agent-sdk/modifying-system-prompts.md", - "sha256": "c184636bffb435008d36e2e498d86bb281f0d5c9dc22c469b3505e799ac017ef", - "size": 35142 + "sha256": "a1a6a3fdf42fa223838d970c780e1bfeda7710839e5b7fe2451a8b6927d7d25d", + "size": 36131 }, { "url": "https://code.claude.com/docs/en/agent-sdk/skills", "status": "success", "path": "en/docs/claude-code/agent-sdk/skills.md", - "sha256": "7ead81d04287103db41535be053bc0b328e32199cc0797e71c920c458a169108", - "size": 27452 + "sha256": "ac62c2dff61ef07bb778e5d115060e22f3f061fa3eca402be9b886946f01e5a2", + "size": 28395 }, { "url": "https://code.claude.com/docs/en/agent-sdk/plugins", "status": "success", "path": "en/docs/claude-code/agent-sdk/plugins.md", - "sha256": "bd5623711a1f53dc22f221eca59300e46600468999989d42bf0e4f3018ab8573", - "size": 11780 + "sha256": "53399f6bfef95f37119a001a0041cf4eb66db74e67b2537be2cd41cf9c04ede5", + "size": 11964 }, { "url": "https://code.claude.com/docs/en/agent-sdk/permissions", "status": "success", "path": "en/docs/claude-code/agent-sdk/permissions.md", - "sha256": "7d2474a2bdd38bf73475348dd44a0b772eda2a8c04f461f843ad1a79be7dd799", - "size": 26271 + "sha256": "5c881c55e5ea3e3a3f7f65c03f58731e67f8fb8aa360b7c6d4202f134e9867cc", + "size": 27973 }, { "url": "https://code.claude.com/docs/en/agent-sdk/hooks", "status": "success", "path": "en/docs/claude-code/agent-sdk/hooks.md", - "sha256": "7c519636cf1013f7bd993eb330b3ea0be4a1d0ab061d41bda47fc9b3babed9ec", - "size": 44672 + "sha256": "cb989402cb14b1ac8ca85ffdb3edd7093c1a08a9ff0ce3207caa4f0b59f842c8", + "size": 45845 }, { "url": "https://code.claude.com/docs/en/agent-sdk/file-checkpointing", "status": "success", "path": "en/docs/claude-code/agent-sdk/file-checkpointing.md", - "sha256": "420925c24eb015ff5f25311d03ccbc8628d8ea88ee086e7b6f58f40b08983734", - "size": 27133 + "sha256": "92184e8a01e18f2f17d86fa0343b5b7b7f34140f7e988a101dcca9bcc8959f73", + "size": 27455 }, { "url": "https://code.claude.com/docs/en/agent-sdk/cost-tracking", "status": "success", "path": "en/docs/claude-code/agent-sdk/cost-tracking.md", - "sha256": "de67edbee9e201ddaa293a0f1394f23886cb371dd84c29caf7abfa9941a07c05", - "size": 26572 + "sha256": "b01f78de868bf230af56931cfeedea5df6a1d0c859c254bf8734c36501ddeb5b", + "size": 27423 }, { "url": "https://code.claude.com/docs/en/agent-sdk/observability", "status": "success", "path": "en/docs/claude-code/agent-sdk/observability.md", - "sha256": "145e45ad87e94734e2912aa5af2d07cdafd40adac4b9fcdce3d40d0be0726235", - "size": 18151 + "sha256": "25f4d3da6a3a46c19b9a31c52505bf61b741f3b47c96d5b241156aecc15301db", + "size": 18634 }, { "url": "https://code.claude.com/docs/en/agent-sdk/todo-tracking", "status": "success", "path": "en/docs/claude-code/agent-sdk/todo-tracking.md", - "sha256": "1e70524324d28793f98e0f61f6ec84d19cc593c7b81e493b827fccbebc905512", - "size": 18798 + "sha256": "2d25f3fe661522b672736b7102166a7c5cdf137a591270c9349986f76fc9cdb1", + "size": 19097 }, { "url": "https://code.claude.com/docs/en/agent-sdk/hosting", "status": "success", "path": "en/docs/claude-code/agent-sdk/hosting.md", - "sha256": "92781e5af435a034352a00894fb4204eef7ac9740fa8a4148807f7ac9de00790", - "size": 23665 + "sha256": "6d2566c1b91bdfb60fd1bb7b71439ab8a8e2ce22c6bd3d5e41e0a00003897c14", + "size": 24424 }, { "url": "https://code.claude.com/docs/en/agent-sdk/secure-deployment", "status": "success", "path": "en/docs/claude-code/agent-sdk/secure-deployment.md", - "sha256": "349370c2abba1e2ebe9e7cc6de5782baacf93a57294cec80abface3ada0847fc", - "size": 21412 + "sha256": "e384fdd59a4ba17711478aa66d74fdb157deb1494d7d9b49bf1a5998aaf0879f", + "size": 21619 }, { "url": "https://code.claude.com/docs/en/agent-sdk/typescript", "status": "success", "path": "en/docs/claude-code/agent-sdk/typescript.md", - "sha256": "2314c1c9ad7661e9c3b2906faefed540897c97c7c867a4236e0c61013288d59a", - "size": 297413 + "sha256": "018d7961aae1aa9cc3f9965f3a1a8442ad4909301d25ab83d0ccdb471c14c3f6", + "size": 302450 }, { "url": "https://code.claude.com/docs/en/agent-sdk/typescript-v2-preview", "status": "success", "path": "en/docs/claude-code/agent-sdk/typescript-v2-preview.md", - "sha256": "c14e08ac255e2e060d8e04f7d15faaa896b8663366f0b9bcfd47dbb585c4c589", - "size": 12324 + "sha256": "85c0e2f72d5e22d75c0d5e93e66f1262306de4b835fdaaab6ea6f667d9b15d82", + "size": 12462 }, { "url": "https://code.claude.com/docs/en/agent-sdk/python", "status": "success", "path": "en/docs/claude-code/agent-sdk/python.md", - "sha256": "c097b9afd14beefe02e61e69ebb0e26cb87076b1c68507f3ca161164b012078d", - "size": 161462 + "sha256": "07e7f86d113835dc2e9adce61e476ccf1efc601f4fced5ed5ad10686032ad740", + "size": 163693 }, { "url": "https://code.claude.com/docs/en/whats-new/index", "status": "success", "path": "en/docs/claude-code/whats-new/index.md", - "sha256": "8762c5e58b5ce832909b73640857ccccb73b1d85c407edee02cb622376a89d3d", - "size": 14422 + "sha256": "783a0b3d58dd48edf222a77dc5dcd52557ec18e6b738474f4ed47934b96966a5", + "size": 14997 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w37", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w37.md", - "sha256": "1166c43e2b38b78df8442d933f1c38304cd345202586a31fde5b827a8698a848", - "size": 4626 + "sha256": "db96f4caa10308fa675e5e0af61d50dae7ad656ac4cb1c178495670fe5cb149f", + "size": 4925 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w36", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w36.md", - "sha256": "4e1e5599049ae77cb350c72873bc0fdf8d0721ab0a27cb6dae23d5b0b5fad107", - "size": 6468 + "sha256": "8cd44cde6016294cd4d8c4b4eecab2e6f8efedb6b5560f298964742d270b2078", + "size": 6974 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w35", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w35.md", - "sha256": "a75549c6bc73dd2df0702bf37a2d603fe566bff3c5a25a8fa97093889f2a097c", - "size": 6321 + "sha256": "d8ff37f32c5da0e18f11d88e702de6a0ddff563e41de4664864c1d0f71ab4683", + "size": 6689 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w34", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w34.md", - "sha256": "d69fa5596624eb8b9772a61d97afa96c4cefb056000cf247a2f5c94539590aa8", - "size": 6193 + "sha256": "738e0ed5bd823822b6c9b2721cd1c7eb6cdebab180274f85eb67f5336ca4f337", + "size": 6561 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w33", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w33.md", - "sha256": "b70454aaf6974c752f3905f688fedb7cf50016ec6a39dfee800fdb009a0ceef6", - "size": 5595 + "sha256": "c244b04265b9b9f34e9536ef3778ffbada49e0865fbd1280b4d4d141d3042470", + "size": 5963 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w32", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w32.md", - "sha256": "4ab4983381dbf2a1a82083bf3041c2029aab93fa99e9e907c50d29b3fed87e4b", - "size": 6608 + "sha256": "79ab9188dbb824d71dd66d19e019ee15bea6e325847de7dc072320fe87ead935", + "size": 6976 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w30", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w30.md", - "sha256": "0ba542b55eb8bf0fabd15cf97465ebe7914b5d42225d6dd226226944dc5e1d8f", - "size": 5168 + "sha256": "e045a0ada6dfe54fd8ad2cfb50c42399dffcf64c0c9f72ad16b4938629dcd466", + "size": 5444 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w29", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w29.md", - "sha256": "4d583d83cafd1fa42907812db9b20ce8626d7b9c3d1644eb2ed836f63bbe1b32", - "size": 4121 + "sha256": "7e4c7e7afa05cae71f9c003b498d937c79ec9233c0cdac2e62d81afb118985f7", + "size": 4282 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w28", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w28.md", - "sha256": "a140f98c5ca4e4ad9987f752f4dfc1ea0ba51f4e149caca1dfa8718388e9d9a1", - "size": 3106 + "sha256": "68a42a8dcd04f494bfea73ce7bc095ccef6fb0dd6edaf671d69da327d17064bf", + "size": 3198 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w27", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w27.md", - "sha256": "e933bb993999e2f8c80888e322588c2c86055d207e3894ae73144bb24bc36add", - "size": 4750 + "sha256": "deb070b5a5d43dd05acecf875c77d963b536c878aa47ca07f417af8df9282278", + "size": 4957 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w26", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w26.md", - "sha256": "6b44bbfc90a742eb63a73315bfcba46af640a0744d68e5ea63743a0754cdf055", - "size": 3245 + "sha256": "a590f78a3d8a12f2340ab39e43022af61eb9c90104ebd75c7f56bccc9e969885", + "size": 3337 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w25", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w25.md", - "sha256": "bf1ac2bcfc58048da7b1db8c8a8a4f40f4c036de5e7c44e3043c1be81c13aa4a", - "size": 3797 + "sha256": "0d764a626db8e2855e632e37fa1b8abbdef4b1f63f9c1bc103d4d203c9bcc0f0", + "size": 3912 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w24", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w24.md", - "sha256": "be810d38b7858303bc32feebd5cb33027fbb9ea753fefe53133c7a312b026b47", - "size": 3760 + "sha256": "d10c924c0c80f70d2c7fed570293d62726d6113501de53886fa42b2371db4e95", + "size": 3898 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w23", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w23.md", - "sha256": "20b499176b25cf0e53cbadef8dc96eb3c1ec9658220f126c067181b480ba8ba1", - "size": 4554 + "sha256": "f011ca8d44110be6e10ceb79cf4c9b3b28cd5ce889d33fad9d0ffb9a623eed56", + "size": 4738 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w22", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w22.md", - "sha256": "cc04e09084bf128e8e8184df10f974b0bed2b213a92b7f562145fc64e341f11d", - "size": 5106 + "sha256": "ab1ac269d68e79ad437bc38973adb2fe693fd5e21a93ae4637215d841dbb58de", + "size": 5244 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w21", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w21.md", - "sha256": "649a29c98138a89a93ec01987b779293b18599a8674ccf5d74b534f12199f654", - "size": 3289 + "sha256": "6e5826cf338fa5f68a97d73afea04a8c8d456e6f75ed6734f6e2180639f1269f", + "size": 3404 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w20", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w20.md", - "sha256": "02e013241f025a45a2251a71ac19e139f4feb001d13d3275bdbbf79ccd698e35", - "size": 4837 + "sha256": "77fc81e1ebd952d913527ce298cb60a6afb0b0bebfa0f90595f5f9690019c845", + "size": 4952 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w19", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w19.md", - "sha256": "ca43acf163bd580318750d53587cdc4a9abd4e50b6d2a7a67ebda01b3e21daec", - "size": 3429 + "sha256": "83887648f971a02707094897959aaecc8cec68f456f11859f3fb09e96cdd6e5c", + "size": 3521 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w18", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w18.md", - "sha256": "48cd2c9a1011efdcbcc9a158f93ce4e16ec54f8a54f8cb8a845dd68c3fbe9990", - "size": 4621 + "sha256": "d85f8611ddf7f2b08140356eab5b90d58e235b1b710f013309f808e7fb1dccfa", + "size": 4782 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w17", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w17.md", - "sha256": "8a4400b71117befb4ec8dc4c0e526ba8cab3f319f420643542ff127ab5009a5f", - "size": 4921 + "sha256": "b4b3bca9f13cc9ac1c627b07d820fb37054fd6e650b512ad197b0a0d1865d8ef", + "size": 5243 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w16", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w16.md", - "sha256": "1edfa4cf13c077c4da0f2227c32b6cccf2739b42ee30c8001e2762f35d0286aa", - "size": 6058 + "sha256": "9aa831f6babb9b37636ca50036f69bd63597175ee88644b8cca0c90db7879dc1", + "size": 6311 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w15", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w15.md", - "sha256": "b1b87974c646b813186dde670f01c2d072293d6ed56e39b16c727df0ac1a72c3", - "size": 5165 + "sha256": "fe046e667e970468aa05b990d44d63ec44a731ee6ce272438f25baf38e49b92e", + "size": 5349 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w14", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w14.md", - "sha256": "e024a1f41ff07a9bc91e0a906eb69bbc3b02216bf2844354a573d937e8c38e9c", - "size": 5360 + "sha256": "3164c9dcbde6fd84e58dcb801ce96a1b7fc73872337eeea491f5ae9fe36b95fe", + "size": 5521 }, { "url": "https://code.claude.com/docs/en/whats-new/2026-w13", "status": "success", "path": "en/docs/claude-code/whats-new/2026-w13.md", - "sha256": "725e4d23508d86d1cc4ff02af94d12fbccfdc1d5117a634f83b0642785dfa68f", - "size": 5137 + "sha256": "cee080e16e3009aa260022aa49d79d115a537299898c4628148d60a6b3e0b9a5", + "size": 5321 }, { "url": "https://code.claude.com/docs/en/legal-and-compliance", "status": "success", "path": "en/docs/claude-code/legal-and-compliance.md", - "sha256": "c9ac3e99c53f4e1a2015cf9d7227ea8778ab34549d79cd91aed3daea5aaec4d4", - "size": 7021 + "sha256": "d82ad7efd1e17aa773f39c9885adbf5d48f162022ed6b92c1004b9e28a5e2f6f", + "size": 7113 }, { "url": "https://modelcontextprotocol.io/community/antitrust", @@ -7338,64 +7352,64 @@ "url": "https://modelcontextprotocol.io/community/charter-template", "status": "success", "path": "mcp/community/charter-template.md", - "sha256": "d62f58b1288eda20f451b35c3cf6ab974795e1ec9843b1d8a2481b74766221ca", - "size": 5962 + "sha256": "a330869fbcebd326e63ddd31e99585f52c14cd588eef551407006dfb30d08d55", + "size": 5993 }, { "url": "https://modelcontextprotocol.io/community/communication", "status": "success", "path": "mcp/community/communication.md", - "sha256": "774c774cf5989519a6402280e7648873410dadfe7b2b282847734550f53ccd8a", - "size": 5481 + "sha256": "8b939eb16817d3454b9e7e8031fc1612f8020136a8cf872271a95049467df0b2", + "size": 5574 }, { "url": "https://modelcontextprotocol.io/community/contributing", "status": "success", "path": "mcp/community/contributing.md", - "sha256": "7d30b6fff9c30a77d033972286f373024546a5ab3657d18a52e695b1e087fce2", - "size": 21298 + "sha256": "de4bcdb59d7863881384cdcc2feeca3854b4b766194796ee8a62c51473382b26", + "size": 21825 }, { "url": "https://modelcontextprotocol.io/community/contributor-ladder", "status": "success", "path": "mcp/community/contributor-ladder.md", - "sha256": "961aa4e713c897a9e0cfcc3a1f1746a24b59aa4f9a9780f619289b902ea190eb", - "size": 18252 + "sha256": "ca6fb379b7fe5502ab144df971739c8cf721b3d03f5791465ea754527ea605d2", + "size": 18469 }, { "url": "https://modelcontextprotocol.io/community/design-principles", "status": "success", "path": "mcp/community/design-principles.md", - "sha256": "cd97f1d3f5b17fa1e9b9ae8cf9dad930bef2a207f752ee440ba8afa52404c8ae", - "size": 4082 + "sha256": "30f614e746ab361bd4f12a991ff28a904463be2c38a3220406a5e66c9d40b429", + "size": 4268 }, { "url": "https://modelcontextprotocol.io/community/feature-lifecycle", "status": "success", "path": "mcp/community/feature-lifecycle.md", - "sha256": "2223a056e228f85f9020bb6c6ffe927e053213942d145dc9b4f8a09866a0ce87", - "size": 8453 + "sha256": "3f3371911512591e61d80d8e1bf07ac6a93df4e930d1379d24b78034349e74ee", + "size": 8794 }, { "url": "https://modelcontextprotocol.io/community/governance", "status": "success", "path": "mcp/community/governance.md", - "sha256": "851f95ace2049c4a28fef9a442d931307f25a89ff24066a5729d1073062463fe", - "size": 9007 + "sha256": "211dfca9e66bf1a8277e9cbab166af2b08fa94153c53004aa1478e2a287ddc60", + "size": 9255 }, { "url": "https://modelcontextprotocol.io/community/interest-groups/agents", "status": "success", "path": "mcp/community/interest-groups/agents.md", - "sha256": "b7350d0faf8a9c2b12a87fc01e3a9d74d5df150956ed1b6bbe8d6b57c7776bd1", - "size": 4600 + "sha256": "787ed6b1a1f3c654fb66ce5afa72da3adbaa2014e93c8e19a5df77cbe793f512", + "size": 4662 }, { "url": "https://modelcontextprotocol.io/community/interest-groups/auth", "status": "success", "path": "mcp/community/interest-groups/auth.md", - "sha256": "6671aa0c0272a845ebd91ea9aa668a06375455fd6be833da585313f2567097ba", - "size": 11659 + "sha256": "98255c7472d24ad904d41f0e3550a7ebf0752c82db76836e1caf4536650710e3", + "size": 12093 }, { "url": "https://modelcontextprotocol.io/community/interest-groups/enterprise", @@ -7408,36 +7422,36 @@ "url": "https://modelcontextprotocol.io/community/interest-groups/enterprise-managed-authorization", "status": "success", "path": "mcp/community/interest-groups/enterprise-managed-authorization.md", - "sha256": "fc966b0ebdbd79cd900124a58a2b5d2585cdd957a19c4c38fdd773d6d1c3e165", - "size": 5697 + "sha256": "f261b7a2335b6b9b802ba79245c93e3b743fab9382bea2b390d7127013a1cac3", + "size": 5945 }, { "url": "https://modelcontextprotocol.io/community/interest-groups/financial-services", "status": "success", "path": "mcp/community/interest-groups/financial-services.md", - "sha256": "00f559408f56dda66ab9caf6c745cc80eb50e2bcef7554571766dc1db56a6e9f", - "size": 6533 + "sha256": "4a9c02a07692521be1a2d813cd8d43c58679510a28e5cee2f8851408e2597ce7", + "size": 6843 }, { "url": "https://modelcontextprotocol.io/community/interest-groups/scientific-computing", "status": "success", "path": "mcp/community/interest-groups/scientific-computing.md", - "sha256": "f928d2706a85ae8501bdbd91595ef6c21af3c450967690bf5f48daf364bf33c3", - "size": 4614 + "sha256": "d0172d6b9dd4aa5ae580062a227666f8428f6c6ec05c907188beaa3ebf189d17", + "size": 4831 }, { "url": "https://modelcontextprotocol.io/community/interest-groups/security", "status": "success", "path": "mcp/community/interest-groups/security.md", - "sha256": "e33df7a19be31fb0c2fead933b7d1c92867a17b4ba45e1004b6310775c8c340e", - "size": 6991 + "sha256": "8a7ab6dd81051f82ee0f2d790c9192c7e50899e86aa1c8dc8e5413f7e1f8ebd9", + "size": 7425 }, { "url": "https://modelcontextprotocol.io/community/interest-groups/tool-annotations", "status": "success", "path": "mcp/community/interest-groups/tool-annotations.md", - "sha256": "32194ff278af5bc68875d4e2e8d4aa3cf0889981cf87a23fb0f875b74b2c6c60", - "size": 6242 + "sha256": "cff1e129d61e5999c7219f1c067a1f08075aedba88b64c7a8f3439f3b5f3d927", + "size": 6273 }, { "url": "https://modelcontextprotocol.io/community/sdk-tiers", @@ -7450,15 +7464,15 @@ "url": "https://modelcontextprotocol.io/community/security", "status": "success", "path": "mcp/community/security.md", - "sha256": "21b7aa6687a69418ed6afde3defba79f7e1ab48fe699da183f5424055f5d4f04", - "size": 3791 + "sha256": "f68c49ce673f89001b5963526e7dcc80bf597f08bc079238b333ed8fe809810f", + "size": 3822 }, { "url": "https://modelcontextprotocol.io/community/sep-guidelines", "status": "success", "path": "mcp/community/sep-guidelines.md", - "sha256": "808d88ef5e89f373b1b838b8f6d253494984247e99dc758e88c057918a1d04cd", - "size": 15831 + "sha256": "d0304f230c274340c3e8a6d5c4e455acd90354386dee48af9c9863208adf1b1c", + "size": 16265 }, { "url": "https://modelcontextprotocol.io/community/working-groups/file-uploads", @@ -7471,22 +7485,22 @@ "url": "https://modelcontextprotocol.io/community/working-groups/filesystems", "status": "success", "path": "mcp/community/working-groups/filesystems.md", - "sha256": "68aeff469361965453c0627e2ab52ace3297afc0312e015c39d1ad2770676ea8", - "size": 6067 + "sha256": "04aa6d4d13a53039a8813a9968dfdc99d26354fb7752a53d68cf283a5556365a", + "size": 6160 }, { "url": "https://modelcontextprotocol.io/community/working-groups/governance", "status": "success", "path": "mcp/community/working-groups/governance.md", - "sha256": "650897d42c96189e1a0d8ba0f36d1558dede6b613c7b23e3da83416a91eab0bf", - "size": 13392 + "sha256": "fb261e3d7ad7841d64fba719d3ccd1a0b0fc7887c511f5a2852935439a200040", + "size": 13640 }, { "url": "https://modelcontextprotocol.io/community/working-groups/infrastructure", "status": "success", "path": "mcp/community/working-groups/infrastructure.md", - "sha256": "349ae54e6f6dc6146ae6c7077363bbf4ea80f57b2b3d1c187dc0c73f3f9b8a78", - "size": 7623 + "sha256": "052a5046db8138dbdae143c1de60ba80cb590b14f52f3225608645b620ac34fb", + "size": 7654 }, { "url": "https://modelcontextprotocol.io/community/working-groups/inspector-v2", @@ -7499,15 +7513,15 @@ "url": "https://modelcontextprotocol.io/community/working-groups/interceptors", "status": "success", "path": "mcp/community/working-groups/interceptors.md", - "sha256": "18dff1249a0de7585bf867e45d485036b855684ebae5d9cc3e3889051c2f5ae1", - "size": 5866 + "sha256": "eb7ad2fd21807bbf15f45431d08a03dbdfe7157a55cef8f3378070f0d56550ac", + "size": 5897 }, { "url": "https://modelcontextprotocol.io/community/working-groups/progressive-disclosure", "status": "success", "path": "mcp/community/working-groups/progressive-disclosure.md", - "sha256": "63a9f183ed12b6c4915c6b30d136635cb88e8e5f668309ad55f4b34a107b0131", - "size": 8019 + "sha256": "a687f84515ef0b7474c8244d203af48222716c7cbcc8d5744abe44ab54e2d3e8", + "size": 8205 }, { "url": "https://modelcontextprotocol.io/community/working-groups/registry", @@ -7520,8 +7534,8 @@ "url": "https://modelcontextprotocol.io/community/working-groups/sdk", "status": "success", "path": "mcp/community/working-groups/sdk.md", - "sha256": "57bb8c9dd725ab9e45e0ac1e54f1e1e406d028727966d481195f40daeee5512c", - "size": 5578 + "sha256": "d7adc6223308d5082826797f59a412d67d63b74dd9a2c3b94bd6db1cad654d88", + "size": 5702 }, { "url": "https://modelcontextprotocol.io/community/working-groups/server-card", @@ -7534,92 +7548,92 @@ "url": "https://modelcontextprotocol.io/community/working-groups/skills-over-mcp", "status": "success", "path": "mcp/community/working-groups/skills-over-mcp.md", - "sha256": "32ce8c34ecdc1b889f9f295330fcc7099a0525a3c7f1074a1e8c18784908322d", - "size": 9185 + "sha256": "d25b70f80028bfdbe38e8a98c25d961709f246725ae80335dcb83f4dd6b60fa3", + "size": 9464 }, { "url": "https://modelcontextprotocol.io/community/working-groups/tasks-events", "status": "success", "path": "mcp/community/working-groups/tasks-events.md", - "sha256": "e1602faee3aa48b98ab4c9621c349600361cb41289d2a3eb541a46d8ba244aab", - "size": 6003 + "sha256": "59b82a72544d7fbe91abb4b1d0ae8c6f6c9c3b6b8bd079b9258f9b90ae01f115", + "size": 6096 }, { "url": "https://modelcontextprotocol.io/community/working-groups/transports", "status": "success", "path": "mcp/community/working-groups/transports.md", - "sha256": "abbbc85dc44363b25409b4329f05ccf474e5f61e1ef3454dfe79cd899eb37a04", - "size": 7583 + "sha256": "b54bd7e1e1e49f2a6b48f2c6921a1b91a0adeba015c818a444dfe417c26a7c98", + "size": 7769 }, { "url": "https://modelcontextprotocol.io/community/working-interest-groups", "status": "success", "path": "mcp/community/working-interest-groups.md", - "sha256": "e123500167bd1d41f62c0ae57fdc0182270e7144938d39f4a058e73155324b61", - "size": 15391 + "sha256": "1a36d4304c9bb639636a12188700bba62b50685a1462338ccbd156037f941aeb", + "size": 15546 }, { "url": "https://modelcontextprotocol.io/development/roadmap", "status": "success", "path": "mcp/development/roadmap.md", - "sha256": "3881d0390e7ac127818f35df89b64de17484690d5040a42b1b67f423145130d6", - "size": 11729 + "sha256": "ec5d2d323920e0057300e0c49553fc6cc3bb3c7f7a3485d8c29f972f8875482d", + "size": 12566 }, { "url": "https://modelcontextprotocol.io/docs/2024-11-05/develop/build-client", "status": "success", "path": "mcp/docs/2024-11-05/develop/build-client.md", - "sha256": "2382571bc3d404bd43153ee4bc9df8f2638f9dc6659911c2fc5863f01bbdbd32", - "size": 71270 + "sha256": "dd034b1ec53c9022fe9e601a5f6b67500821829a1f15a2db3e69fda481686995", + "size": 71332 }, { "url": "https://modelcontextprotocol.io/docs/2024-11-05/develop/build-server", "status": "success", "path": "mcp/docs/2024-11-05/develop/build-server.md", - "sha256": "10439a1fe40bd0f4e421d17b6bdbd10d04f50320b79ab5edc35da90b1137377a", - "size": 86049 + "sha256": "bfcaa124736ad4437b9a93d023bd7c394f3853f543bcefeff6d821852e2894a8", + "size": 86576 }, { "url": "https://modelcontextprotocol.io/docs/2024-11-05/develop/build-with-agent-skills", "status": "success", "path": "mcp/docs/2024-11-05/develop/build-with-agent-skills.md", - "sha256": "1b5dfd9ed63c9b87afed18391e8e7d10285ecf8df567374233db503445252c25", - "size": 4506 + "sha256": "485f68f73dd2ae1d79596275e34effc16cbc6ac613d70161aea283aa95dca963", + "size": 4692 }, { "url": "https://modelcontextprotocol.io/docs/2024-11-05/develop/clients/client-best-practices", "status": "success", "path": "mcp/docs/2024-11-05/develop/clients/client-best-practices.md", - "sha256": "5472ec011c77be2eb9a004c8945f38261f0451af463f340cfc6593f067d487f6", - "size": 18751 + "sha256": "7e883d397c7024217a8cf09423edf3321dc8b9ddc4a752c0df57547408d38aa0", + "size": 18844 }, { "url": "https://modelcontextprotocol.io/docs/2024-11-05/develop/connect-local-servers", "status": "success", "path": "mcp/docs/2024-11-05/develop/connect-local-servers.md", - "sha256": "96d4ead751782246ce3a527bf06fdf0ce4426107233e0cead1b63db4f8481fda", - "size": 12155 + "sha256": "42d2eabd196e47d1745a8bab3d0c7753743048058563c9cfa3f87bb80470e1a5", + "size": 12279 }, { "url": "https://modelcontextprotocol.io/docs/2024-11-05/develop/connect-remote-servers", "status": "success", "path": "mcp/docs/2024-11-05/develop/connect-remote-servers.md", - "sha256": "e63a80062014247a8b914e719101b57eccedfeeaaae72a14cc04611fe50ce051", - "size": 8359 + "sha256": "a8c9fc8f3d99b32e4cd2416a94964517715f54afe6668c3dc42d3cc680765aa1", + "size": 8483 }, { "url": "https://modelcontextprotocol.io/docs/2024-11-05/getting-started/intro", "status": "success", "path": "mcp/docs/2024-11-05/getting-started/intro.md", - "sha256": "1d509b8a6b923b1e46020e7481273ba28ffedfcb61ff1d86c11a70ccc5823001", - "size": 3211 + "sha256": "28c9dfeaab21b191700dd0d5f490100bdf842693005305103d8a6e3e5c838966", + "size": 3397 }, { "url": "https://modelcontextprotocol.io/docs/2024-11-05/learn/architecture", "status": "success", "path": "mcp/docs/2024-11-05/learn/architecture.md", - "sha256": "6a27f7355ae84a4e4f757eee6e9b4f6208c594df93315109b8ebe2082a44cd2c", - "size": 24003 + "sha256": "d3502c7522b930566c8971979d29b0ee5ba88d1ccb83763407f938db84968150", + "size": 24158 }, { "url": "https://modelcontextprotocol.io/docs/2024-11-05/learn/client-concepts", @@ -7639,99 +7653,99 @@ "url": "https://modelcontextprotocol.io/docs/2024-11-05/learn/versioning", "status": "success", "path": "mcp/docs/2024-11-05/learn/versioning.md", - "sha256": "80a11621d76ac0056036eff376301d1bd0274388ae0d5e5e4e0ad8af95a8e367", - "size": 2099 + "sha256": "1f8823ce93d50681a72d29f80a1b5145f394fbdf68c865e4d196c9e357d7afed", + "size": 2223 }, { "url": "https://modelcontextprotocol.io/docs/2024-11-05/sdk", "status": "success", "path": "mcp/docs/2024-11-05/sdk.md", - "sha256": "15519fa29aa8ec392f55699a29a7e9644f6b906a105710578a227533b8e2f64c", - "size": 2860 + "sha256": "8de54ef9e3bbae1ec51391f93de76696261d5a2c631926f1adc32d231c669140", + "size": 2984 }, { "url": "https://modelcontextprotocol.io/docs/2024-11-05/tools/debugging", "status": "success", "path": "mcp/docs/2024-11-05/tools/debugging.md", - "sha256": "cc38bfaed058b4a7a9e96af224902b2bfa71b041df6775f8c0e3141bd4fb4c16", - "size": 9731 + "sha256": "39ffdd878e4a546a60660ac324530a7048b6a880233c1933903816e7664241fd", + "size": 10475 }, { "url": "https://modelcontextprotocol.io/docs/2024-11-05/tools/inspector", "status": "success", "path": "mcp/docs/2024-11-05/tools/inspector.md", - "sha256": "1e26bba4e00b821fd535535fe20a18d523f03a6361894818c13f422aa0a3e320", - "size": 3855 + "sha256": "b739062ebc395f8b6f5fa0b2d522b235b80517df7fd059339364432ec16d08ad", + "size": 3948 }, { "url": "https://modelcontextprotocol.io/docs/2024-11-05/tutorials/security/authorization", "status": "success", "path": "mcp/docs/2024-11-05/tutorials/security/authorization.md", - "sha256": "8d9faa3622b191e3e7521916e2a4f0825f19dd276c84e313b0a381097adaa5e5", - "size": 43907 + "sha256": "9d6191d1051686cbd6f64d8685eb99fd4dbb3de1ae9ce83a9581e1fa2f189dc5", + "size": 44124 }, { "url": "https://modelcontextprotocol.io/docs/2024-11-05/tutorials/security/security_best_practices", "status": "success", "path": "mcp/docs/2024-11-05/tutorials/security/security_best_practices.md", - "sha256": "0365e59563d758c73e0b4e00d2413ad5953a2f96e18a216b9fd67667c1d3882e", - "size": 37005 + "sha256": "c2de480be6a18a053d7022353578f5e5c125eae0c49c012d1c624126d11e87cc", + "size": 37098 }, { "url": "https://modelcontextprotocol.io/docs/2025-03-26/develop/build-client", "status": "success", "path": "mcp/docs/2025-03-26/develop/build-client.md", - "sha256": "e7e4e970a61dd8853163b15b6d3cfa7648048e0fd1c7f3586e4ecc495aa0f06b", - "size": 71270 + "sha256": "77c25c487f381d461c437617a003c7001c34c4c02f47eed1076a8246e0632be5", + "size": 71332 }, { "url": "https://modelcontextprotocol.io/docs/2025-03-26/develop/build-server", "status": "success", "path": "mcp/docs/2025-03-26/develop/build-server.md", - "sha256": "2012ad758983e1b742922ea12525b50a1a380c8b979bfdcf63fba03f205b236c", - "size": 86049 + "sha256": "591c8e8fdc8466607a9320a95c53f9aba21efa53cc47441c7ff2edcfaa7b5cd9", + "size": 86576 }, { "url": "https://modelcontextprotocol.io/docs/2025-03-26/develop/build-with-agent-skills", "status": "success", "path": "mcp/docs/2025-03-26/develop/build-with-agent-skills.md", - "sha256": "f09cde2c7db6e72bc5d22d08cfa7276d4065ed21757725d2ed066941fa65d018", - "size": 4510 + "sha256": "87731426c5bde9f2789bf9c973cd5bfe2820882037e6c9ca4611649de859f494", + "size": 4696 }, { "url": "https://modelcontextprotocol.io/docs/2025-03-26/develop/clients/client-best-practices", "status": "success", "path": "mcp/docs/2025-03-26/develop/clients/client-best-practices.md", - "sha256": "a2193d64306c3d35b5450ba461747fa7c30cdc7cdcb6b15e9660b25b40ec0e8e", - "size": 18751 + "sha256": "a4d3df536d4de61b82776962844add96e0a3d59299bab5e55607bb010f917c6c", + "size": 18844 }, { "url": "https://modelcontextprotocol.io/docs/2025-03-26/develop/connect-local-servers", "status": "success", "path": "mcp/docs/2025-03-26/develop/connect-local-servers.md", - "sha256": "0f3a95479f8e2f6c906299cc318fddde98a1279297f16c7e4dc349c141c35bcc", - "size": 12155 + "sha256": "4365145b6ec69b1efdb6bc771d3458d3d273dcf85971c89fcfaf360f7f36b3a6", + "size": 12279 }, { "url": "https://modelcontextprotocol.io/docs/2025-03-26/develop/connect-remote-servers", "status": "success", "path": "mcp/docs/2025-03-26/develop/connect-remote-servers.md", - "sha256": "b35de561763ce9230e53d48c842f2ff1eb67e6757c37970c22fe215d3221b08c", - "size": 8359 + "sha256": "3045ba7ff9666254543638696747940050c3df56f98603cd4e05dda8d8646e06", + "size": 8483 }, { "url": "https://modelcontextprotocol.io/docs/2025-03-26/getting-started/intro", "status": "success", "path": "mcp/docs/2025-03-26/getting-started/intro.md", - "sha256": "d585ffb37ba90c4aa72027208438863f71725b06f96d22bd5abef011e4740130", - "size": 3211 + "sha256": "16d780e2d096b16521227aa8101b46f3def96b9c77ef0ab47c3272c20211410f", + "size": 3397 }, { "url": "https://modelcontextprotocol.io/docs/2025-03-26/learn/architecture", "status": "success", "path": "mcp/docs/2025-03-26/learn/architecture.md", - "sha256": "aed4abf1aba7a3f7b75c662dc29e1a1b23acc53f992ee4d273cc1398afe73c06", - "size": 24152 + "sha256": "2562e972771aaa875f377c875dfd84ce458dff80cd9a3a9d6bb75f6366778490", + "size": 24307 }, { "url": "https://modelcontextprotocol.io/docs/2025-03-26/learn/client-concepts", @@ -7751,99 +7765,99 @@ "url": "https://modelcontextprotocol.io/docs/2025-03-26/learn/versioning", "status": "success", "path": "mcp/docs/2025-03-26/learn/versioning.md", - "sha256": "47405133f49388ce0a1087fd6d9376fbaa464afea53387325c222d19309e337a", - "size": 2099 + "sha256": "1f9dd750772142b27f88d64828ba6c717e88dc9760486469909b6a7dd29b66ec", + "size": 2223 }, { "url": "https://modelcontextprotocol.io/docs/2025-03-26/sdk", "status": "success", "path": "mcp/docs/2025-03-26/sdk.md", - "sha256": "aaf16a07729dc549bc1a873b878c59d66c87e547c7f0a0380b764da6c5383a2d", - "size": 2860 + "sha256": "7bbf8e5b9f73df6a708f248b52c8861a2d5f5c6d31a32fe7e0c14c50dbf6be10", + "size": 2984 }, { "url": "https://modelcontextprotocol.io/docs/2025-03-26/tools/debugging", "status": "success", "path": "mcp/docs/2025-03-26/tools/debugging.md", - "sha256": "17b57a4cd765c89662a1da4cbcd5d8ca1a609d648938a67aedf0fa2bc959449c", - "size": 9829 + "sha256": "0101d9563293b99a698c35a2f483f8d082896518b124e114cfe334602c92024e", + "size": 10604 }, { "url": "https://modelcontextprotocol.io/docs/2025-03-26/tools/inspector", "status": "success", "path": "mcp/docs/2025-03-26/tools/inspector.md", - "sha256": "031ccd823b2d624c4ae87e553dc8ff16daf72ac4becca7d9c23089ee77bf27e4", - "size": 3855 + "sha256": "ee29564a4fced0d64ee37f2d34a3ff8db72f81fa088b8bfbf104d729d4df7c0f", + "size": 3948 }, { "url": "https://modelcontextprotocol.io/docs/2025-03-26/tutorials/security/authorization", "status": "success", "path": "mcp/docs/2025-03-26/tutorials/security/authorization.md", - "sha256": "029ba0a0a5b317c5d0eb5f5fccfc4ae9c55611446a878f3b5f5c58e9cec4faf1", - "size": 43907 + "sha256": "af01b46e63a3b40bb7772a614dd85d7af0a9991ad6aaad1e3116d110cc65f343", + "size": 44124 }, { "url": "https://modelcontextprotocol.io/docs/2025-03-26/tutorials/security/security_best_practices", "status": "success", "path": "mcp/docs/2025-03-26/tutorials/security/security_best_practices.md", - "sha256": "a3b80d298f131fbc00fd1c5cf7e4759bfb5331366e797756d7e8dcf5b00cf571", - "size": 37336 + "sha256": "1eaa55a5d8b12256e78bb7e44bed917fa6ad5b7adf8dd1a781b7ddcf4e21d191", + "size": 37460 }, { "url": "https://modelcontextprotocol.io/docs/2025-06-18/develop/build-client", "status": "success", "path": "mcp/docs/2025-06-18/develop/build-client.md", - "sha256": "e35add3f6b1988d2bb614665d120286c2d14faf75ab0aea4a9d05f8d28e6d135", - "size": 71270 + "sha256": "1eef1dee61df41848565122ddb09d56d884029c7bed8f813bdff4c7d6c358919", + "size": 71332 }, { "url": "https://modelcontextprotocol.io/docs/2025-06-18/develop/build-server", "status": "success", "path": "mcp/docs/2025-06-18/develop/build-server.md", - "sha256": "451870af20568b59ea75b79454b6ff1c7daed8a6c58c2ef7f9ad36eaa06ad841", - "size": 86049 + "sha256": "eacff3baf066396e5671d722a7bbc21c9a13c3b061ce0bb46d9851eb6ca5d48f", + "size": 86576 }, { "url": "https://modelcontextprotocol.io/docs/2025-06-18/develop/build-with-agent-skills", "status": "success", "path": "mcp/docs/2025-06-18/develop/build-with-agent-skills.md", - "sha256": "a7f7dcc63a8f2edd0686b932ee0aeb7aaf5b00059eb49a40e634ba0970ff4f97", - "size": 4665 + "sha256": "e96c9d530cc0ed6650210a808536e529648133a9812088b14bd79cbeb0fe6a73", + "size": 4913 }, { "url": "https://modelcontextprotocol.io/docs/2025-06-18/develop/clients/client-best-practices", "status": "success", "path": "mcp/docs/2025-06-18/develop/clients/client-best-practices.md", - "sha256": "6dc8b096fcff575ecd728f34269fa45cd0dc03d81d459a68355165f89ed7d305", - "size": 18882 + "sha256": "01a041cfd96564bcda0aa134ec8379cd6f8edc8e5c698db52a947987973206fb", + "size": 19006 }, { "url": "https://modelcontextprotocol.io/docs/2025-06-18/develop/connect-local-servers", "status": "success", "path": "mcp/docs/2025-06-18/develop/connect-local-servers.md", - "sha256": "5db85e00f9511c47c4e49207b7e544b676131b386bfe6e6277a722e6822f4bba", - "size": 12155 + "sha256": "8feec7a1a7ed69411e5f8c28856f5f6b109770abb929f408baf5d2e8ca0dd4c1", + "size": 12279 }, { "url": "https://modelcontextprotocol.io/docs/2025-06-18/develop/connect-remote-servers", "status": "success", "path": "mcp/docs/2025-06-18/develop/connect-remote-servers.md", - "sha256": "d950ed97462dcb33c1560f0525ce03942336d69e5306f97612e204f54ca90b5a", - "size": 8359 + "sha256": "e24faaa67dec05e41c2c11be0283be8aef618964c2220e251338306ebb0e191c", + "size": 8483 }, { "url": "https://modelcontextprotocol.io/docs/2025-06-18/getting-started/intro", "status": "success", "path": "mcp/docs/2025-06-18/getting-started/intro.md", - "sha256": "ae38db7a99d9dc592d22fbedccc47c6dbf1461d4fd0f30d909e16f1cfa5f33bb", - "size": 3211 + "sha256": "a760edd2c13be64e532fdcfbf5a6c89fd9c38588f9b3f6df59f21d2fa6edb8fa", + "size": 3397 }, { "url": "https://modelcontextprotocol.io/docs/2025-06-18/learn/architecture", "status": "success", "path": "mcp/docs/2025-06-18/learn/architecture.md", - "sha256": "24226ebd0f28ffc5aba4ae85ea2359b68452dbdb1884d10d6aa79b31263ce130", - "size": 24478 + "sha256": "076d74e47ee15c40da3d03ca054c7b2476be31ea3a074a93e8431f8d80b0343d", + "size": 24633 }, { "url": "https://modelcontextprotocol.io/docs/2025-06-18/learn/client-concepts", @@ -7863,99 +7877,99 @@ "url": "https://modelcontextprotocol.io/docs/2025-06-18/learn/versioning", "status": "success", "path": "mcp/docs/2025-06-18/learn/versioning.md", - "sha256": "6de62f889126358cf17ed041ebd118312fb48cad112da10d42c705337878c896", - "size": 2099 + "sha256": "4a7e6d85c77bfdd2a8267c9c6f04c8e2f5f1d797046f40f81dfde5619dbbbeb8", + "size": 2223 }, { "url": "https://modelcontextprotocol.io/docs/2025-06-18/sdk", "status": "success", "path": "mcp/docs/2025-06-18/sdk.md", - "sha256": "f05f5926fe1b6336359942c2281c4d6f72dd8f340fdf34f667d52793e852eb75", - "size": 2860 + "sha256": "c14486766fca53cc3e2be000fd95fc879eb318107f8f3fdbdcd712f36d234432", + "size": 2984 }, { "url": "https://modelcontextprotocol.io/docs/2025-06-18/tools/debugging", "status": "success", "path": "mcp/docs/2025-06-18/tools/debugging.md", - "sha256": "2be40e2f1b1ea522660273d94b0ecfa12114e4cf8b05dd90baf5f479792b2d62", - "size": 9898 + "sha256": "c330b422a4b649cf7a8e915599d251f258da3495bfcf8cca54358d833936c725", + "size": 10704 }, { "url": "https://modelcontextprotocol.io/docs/2025-06-18/tools/inspector", "status": "success", "path": "mcp/docs/2025-06-18/tools/inspector.md", - "sha256": "72ca710e7a7275f44d8b2d27e5f643c7d93b24bdac16177e0f2caaee9a7e3c60", - "size": 3855 + "sha256": "80efcf70def1242feaeaccac265f86b1936cf20af69dc1247c551b27d749fa1f", + "size": 3948 }, { "url": "https://modelcontextprotocol.io/docs/2025-06-18/tutorials/security/authorization", "status": "success", "path": "mcp/docs/2025-06-18/tutorials/security/authorization.md", - "sha256": "ddea0d6b70c97c4db8a00f680f172061f16d6626cbd99579b2e35fabd2350025", - "size": 43907 + "sha256": "466f8b78710c14de38f4d9a9cfb21ed22a138a21154f86fc2318aa59ed38cc85", + "size": 44124 }, { "url": "https://modelcontextprotocol.io/docs/2025-06-18/tutorials/security/security_best_practices", "status": "success", "path": "mcp/docs/2025-06-18/tutorials/security/security_best_practices.md", - "sha256": "c67e69dfdcd702a3c2c654941beeaa57fb17a50168a088f76df59823c56ced19", - "size": 37336 + "sha256": "510cdac49b73684855634101f4b18e9172ddbafa45e22ef6a254e01164467667", + "size": 37460 }, { "url": "https://modelcontextprotocol.io/docs/2025-11-25/develop/build-client", "status": "success", "path": "mcp/docs/2025-11-25/develop/build-client.md", - "sha256": "3116db4c53a1a57f06b1b788f537c637c466853a25ef9e056d626dab8b868808", - "size": 71766 + "sha256": "32e50a79ece415aff57595ad7473be2f72f919af080eeafa63ef2232153cc415", + "size": 71890 }, { "url": "https://modelcontextprotocol.io/docs/2025-11-25/develop/build-server", "status": "success", "path": "mcp/docs/2025-11-25/develop/build-server.md", - "sha256": "d7f599712b7fbf40a63f31316ef2043aa9d1219bb480f3c1b82335e4fd74ed90", - "size": 86049 + "sha256": "8fa809a274d751ae7d08f5be995c7bbc54e11b5dd302f674fbcc08786e47f577", + "size": 86576 }, { "url": "https://modelcontextprotocol.io/docs/2025-11-25/develop/build-with-agent-skills", "status": "success", "path": "mcp/docs/2025-11-25/develop/build-with-agent-skills.md", - "sha256": "5c91f91e6b085040f3e3e47b44aec94e5287800773aef4bb33be83f91ad822ba", - "size": 4665 + "sha256": "a229bcc1748b8deef5059ddd053e115193afb7bf7c94661eb3cb114f6ba07429", + "size": 4913 }, { "url": "https://modelcontextprotocol.io/docs/2025-11-25/develop/clients/client-best-practices", "status": "success", "path": "mcp/docs/2025-11-25/develop/clients/client-best-practices.md", - "sha256": "8c47f556a528b5e3b990acafe3f3549f42b0b2550a34a2fd3cbdd26c7031a232", - "size": 18882 + "sha256": "91ba33b7f19240228e748a4f3732dcc64f664a2fe556652f7635d322c53fe0e4", + "size": 19006 }, { "url": "https://modelcontextprotocol.io/docs/2025-11-25/develop/connect-local-servers", "status": "success", "path": "mcp/docs/2025-11-25/develop/connect-local-servers.md", - "sha256": "a1a6fa9860962e1c1e93abd2ba03cff595725d08dee6fa52b40def1d38ca900f", - "size": 12155 + "sha256": "71af16923c952295c0770338e8e227b8374016b1018e91d1c0c485ae773f56f9", + "size": 12279 }, { "url": "https://modelcontextprotocol.io/docs/2025-11-25/develop/connect-remote-servers", "status": "success", "path": "mcp/docs/2025-11-25/develop/connect-remote-servers.md", - "sha256": "24529d379b24cf4ab5488f4de44f33b400d67798a8c3d201c9d0b147ca2477c5", - "size": 8359 + "sha256": "7a5f83d904d11fefc8aa3efe7bff92f2d65a44c6f2508629f798d7fee9af643b", + "size": 8483 }, { "url": "https://modelcontextprotocol.io/docs/2025-11-25/getting-started/intro", "status": "success", "path": "mcp/docs/2025-11-25/getting-started/intro.md", - "sha256": "c5a438a4cfe5ac185871ac15400e2d7586c498350f1cfc7ee4e3313718f8f4e1", - "size": 3211 + "sha256": "a26a54e60a2fd506e9e391a20ea4cf23249ac20d029dd170180770f97deeecec", + "size": 3397 }, { "url": "https://modelcontextprotocol.io/docs/2025-11-25/learn/architecture", "status": "success", "path": "mcp/docs/2025-11-25/learn/architecture.md", - "sha256": "ea4d1b430e593cba82e16daca0bae6b22b46375fd3876f9bd42a5301d0fab574", - "size": 24478 + "sha256": "47a9bbf5e3a373566fc4979aed0a12bee2ddcc7df454f28a2d58720f9a716d47", + "size": 24633 }, { "url": "https://modelcontextprotocol.io/docs/2025-11-25/learn/client-concepts", @@ -7975,407 +7989,407 @@ "url": "https://modelcontextprotocol.io/docs/2025-11-25/learn/versioning", "status": "success", "path": "mcp/docs/2025-11-25/learn/versioning.md", - "sha256": "95297fc448a0be67a88bbfe6fe4c354672d5b491d4de09d09ff53a4acbb3674f", - "size": 2099 + "sha256": "7eafe7f1c411ffd2c07bcf290f5150090e80aeb04422938ffb963a2c5d11301f", + "size": 2223 }, { "url": "https://modelcontextprotocol.io/docs/2025-11-25/sdk", "status": "success", "path": "mcp/docs/2025-11-25/sdk.md", - "sha256": "1f5ab26be7ea192d3fc16300bc39735f8147f60badc250b01b03e40c955af064", - "size": 2860 + "sha256": "a92f9bfa89907afd69521be9e6b06f042a16c8b5e33b3a09dd445e67b16cf4c8", + "size": 2984 }, { "url": "https://modelcontextprotocol.io/docs/2025-11-25/tools/debugging", "status": "success", "path": "mcp/docs/2025-11-25/tools/debugging.md", - "sha256": "007bf842b92d140d3403bf9c73702bda4fe29aa20a29888abe282a9fdde500a7", - "size": 9898 + "sha256": "0d445edc1c34cc8c13b1ac02d96a7435ab778385853fd99cffafc1324463ed3a", + "size": 10704 }, { "url": "https://modelcontextprotocol.io/docs/2025-11-25/tools/inspector", "status": "success", "path": "mcp/docs/2025-11-25/tools/inspector.md", - "sha256": "3ea59ac9a96a75789d158bc323d18a4d1648797f736b9ddaeeb644b2e40fc9c3", - "size": 3855 + "sha256": "ffa88cc3bd719c5fa7f68f0d33b7f6a3a065313139dafb953b2e50ccd95ece99", + "size": 3948 }, { "url": "https://modelcontextprotocol.io/docs/2025-11-25/tutorials/security/authorization", "status": "success", "path": "mcp/docs/2025-11-25/tutorials/security/authorization.md", - "sha256": "e7d71cc34fc68acd92fce9f057337954411e8ac3c7aa6c31b1dd1ba7e0143043", - "size": 43907 + "sha256": "d616675fd7687797f73855b73ae577b7c3e8ee85bdafffd146f38110de729d67", + "size": 44124 }, { "url": "https://modelcontextprotocol.io/docs/2025-11-25/tutorials/security/security_best_practices", "status": "success", "path": "mcp/docs/2025-11-25/tutorials/security/security_best_practices.md", - "sha256": "c92097cc06b6f9cda0c5102fdcc055d8b099428d96d3910728427109ff827375", - "size": 37336 + "sha256": "91fe938394ce86939b94c36e5040e42baa3a481725d2a900ba53bb5d833962f1", + "size": 37460 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/develop/build-client", "status": "success", "path": "mcp/docs/2026-07-28/develop/build-client.md", - "sha256": "e353243e056a3cfc6b8af68f9843518b125f8382e6bc0c5af53036e34d2981bd", - "size": 72591 + "sha256": "7a9195b9304dd317478e8e6fe968019fbeb44516e991482311483849b4ba4dfa", + "size": 72715 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/develop/build-server", "status": "success", "path": "mcp/docs/2026-07-28/develop/build-server.md", - "sha256": "723b90772a8f6bd8a14cdef89b70f6940acfed3aeb116a2ff9c7eebfc1cd3ff4", - "size": 87079 + "sha256": "5ee48e9d103aa9f4577a5906fa001debd3966fd5e02d42df899009e8c31bd440", + "size": 87451 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/develop/build-with-agent-skills", "status": "success", "path": "mcp/docs/2026-07-28/develop/build-with-agent-skills.md", - "sha256": "c21680f99593bb2ed776aab1755b203108cf670edd63e7868e756273cc2b740a", - "size": 4665 + "sha256": "119d648e69f6ba34202ce7bad18a7bb637793ba1620a611156b51eeb829b2b26", + "size": 4913 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/develop/clients/client-best-practices", "status": "success", "path": "mcp/docs/2026-07-28/develop/clients/client-best-practices.md", - "sha256": "0c197767390e2aa9a3bdc8f0d382416f1c82df429090cb835e7f79fdbd19c91b", - "size": 19308 + "sha256": "9c24cd40b608dc95a1804abb454428f920d854dd66a41a348ac08e195263b836", + "size": 19463 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/develop/connect-local-servers", "status": "success", "path": "mcp/docs/2026-07-28/develop/connect-local-servers.md", - "sha256": "2d1359d906727b8fe50d9d6bb6d480096c3701cbc4e7ec9f42636ae0e6d76b30", - "size": 12251 + "sha256": "afbb9ffc12e3e9d143b6faf55fbbaa0ada3fcbf3e709eff96d6bfcc9df3bd3e3", + "size": 12375 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/develop/connect-remote-servers", "status": "success", "path": "mcp/docs/2026-07-28/develop/connect-remote-servers.md", - "sha256": "5bf94645993a0ff1fff44c645f8588f1141735ad4c3aa3ed48761d8db480cb16", - "size": 9206 + "sha256": "be0d574ad5d56f210c0cfc3696e4c65e640709917aaf8d9dd7b12b5f61deef24", + "size": 9330 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/getting-started/intro", "status": "success", "path": "mcp/docs/2026-07-28/getting-started/intro.md", - "sha256": "941ece5b81ad8d64ed1f762e8e9cb1664aed8fcd48e57edc75afe22b72af8a6d", - "size": 3211 + "sha256": "942d56e3e0f9a7c67f4add19723682838564ee347782faab33c5b61eaa4ab65b", + "size": 3397 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/learn/architecture", "status": "success", "path": "mcp/docs/2026-07-28/learn/architecture.md", - "sha256": "ba0f56a7be91e726ee1f5e954af56d1d09a614210568d75dbf761b423e95ee74", - "size": 31035 + "sha256": "c28e5ef3dd7c4d9195c91cfded6e1e28056dbbedc23a2460a03cec17a94ac1e6", + "size": 31562 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/learn/client-concepts", "status": "success", "path": "mcp/docs/2026-07-28/learn/client-concepts.md", - "sha256": "9b6ba5d599cacf3227a0a815a6917603f9764bb7d3c3d7dcaece710f0ed293e7", - "size": 17061 + "sha256": "4336a93b9770b0d1a2b9c8e72271ee98be8764583c037edbab7a15c57fb5bb46", + "size": 17247 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/learn/server-concepts", "status": "success", "path": "mcp/docs/2026-07-28/learn/server-concepts.md", - "sha256": "b212835ae02d0080942538eaf9b9cb2ff687916c5af79941cbd4d47c0dfcb842", - "size": 13783 + "sha256": "a5d06f7921a49e5f56380d8bc3a408d71748d4d03680c6dc2e7de71bcf10ac18", + "size": 13814 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/learn/versioning", "status": "success", "path": "mcp/docs/2026-07-28/learn/versioning.md", - "sha256": "100d76a335e86e5e82d792dba18c7eaab156d53a45d1079b732f1e919f4fac1d", - "size": 3233 + "sha256": "c1bf1d0efcdca337d348524ab2a15650e418f5b5425007e5a4777311fca76862", + "size": 3512 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/sdk", "status": "success", "path": "mcp/docs/2026-07-28/sdk.md", - "sha256": "4061e71106efee998d362624379c6e21c8e3d3e57c42800f9edbc79d6be7925f", - "size": 2860 + "sha256": "7f3db558719592ef73bce70117cbde79dc3570ce81c120779eb79d3fcd337a36", + "size": 2984 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/tools/debugging", "status": "success", "path": "mcp/docs/2026-07-28/tools/debugging.md", - "sha256": "083c548012914dfabbe5f31e161bf9a35fd072b8fc82d8a38b2e725df5cc077e", - "size": 10698 + "sha256": "c600df2d7e0014c141baef8269a1c9619ea5663415540d279eb046fad336285d", + "size": 11442 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/tools/inspector", "status": "success", "path": "mcp/docs/2026-07-28/tools/inspector.md", - "sha256": "517065c1e0091661d528ca812ba2b5bbef02aa6fd36667cf376c1e291a2724ac", - "size": 7266 + "sha256": "783d04ba9c4fee78ecfda2321299cfbe39658db20416b428c084230bc0db53ef", + "size": 7824 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/tools/inspector/authorization", "status": "success", "path": "mcp/docs/2026-07-28/tools/inspector/authorization.md", - "sha256": "5cbe5dc20f1a89f51724def4b6ca83390f01da427a950adf7a6a23d379757995", - "size": 11307 + "sha256": "34a6d246c6847f20cd6dccda461d5840b5763fb5e4e02ab9e715f67430521920", + "size": 11648 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/tools/inspector/cli", "status": "success", "path": "mcp/docs/2026-07-28/tools/inspector/cli.md", - "sha256": "6aaac7f0b7aa0dce6e81df654bf5710d159de878da9f18c203516d3e3b76caed", - "size": 13733 + "sha256": "d63c55d87d46383de0dd78a55bfbed96a80157214296771d1b8bf67f46275081", + "size": 13950 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/tools/inspector/configuration", "status": "success", "path": "mcp/docs/2026-07-28/tools/inspector/configuration.md", - "sha256": "ba9e2de21d2add4b9e9eab067756d301c3de0b8608ae6f9e68f5b2d66ce07e72", - "size": 20811 + "sha256": "bb6b3dbb8b4b789057f720ef144673db81ee590ab255ce373ab123041b8cfa63", + "size": 21152 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/tools/inspector/mcpdo", "status": "success", "path": "mcp/docs/2026-07-28/tools/inspector/mcpdo.md", - "sha256": "41c1a13306b7b62b51fce635de4ade97723ffae941a14b829bd15f0226024c0f", - "size": 12096 + "sha256": "c363c3b2847c2d8910583d72e551935eb5a97857bbcf028c982e148450b62021", + "size": 12282 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/tools/inspector/protocol-eras", "status": "success", "path": "mcp/docs/2026-07-28/tools/inspector/protocol-eras.md", - "sha256": "26812a62d17c86914e91f4e997348281c53e2f3047b39bdf72885009ff64a38f", - "size": 17136 + "sha256": "31cb522d48c08eaec8db5b774864eaf6903bd240b3dc3e2b0353c766fa28b272", + "size": 17384 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/tools/inspector/recipes", "status": "success", "path": "mcp/docs/2026-07-28/tools/inspector/recipes.md", - "sha256": "a8d39321ebee612f26e38292fdc8c516a55aabbd5a61fa0d4f068bab49094141", - "size": 17176 + "sha256": "3a098fec0b15cf52b15876b8485b18d715ce513255d46e149e108092f4ae1899", + "size": 17641 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/tools/inspector/security", "status": "success", "path": "mcp/docs/2026-07-28/tools/inspector/security.md", - "sha256": "8252f04ba8e11a4e08cb6ab53251f57508bdf3ad2a498acbb2b4c03526202cb7", - "size": 16605 + "sha256": "9d2bc018a335e9633b4495b11e06298c9d8fe1dcab97a60d987c0908788c678a", + "size": 16791 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/tools/inspector/tui", "status": "success", "path": "mcp/docs/2026-07-28/tools/inspector/tui.md", - "sha256": "9fa868991776d1cd3e7a85e4f11a06d988204dcf301be7ad30d24d3d9bfe97cf", - "size": 7111 + "sha256": "00feb679b5fcf6c9bae6038ad9bb6c98de21b03abd70c31c46b617c0bb96957d", + "size": 7390 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/tools/inspector/web", "status": "success", "path": "mcp/docs/2026-07-28/tools/inspector/web.md", - "sha256": "c21c4a6350d1b59450b3c04b13d8ce9b752b52c0f5946aa27866120346b61b58", - "size": 14633 + "sha256": "4021fef8b137e22cb70227a1d2861bef20f53bd12fe08292e4b322842f02de55", + "size": 15160 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/tutorials/security/authorization", "status": "success", "path": "mcp/docs/2026-07-28/tutorials/security/authorization.md", - "sha256": "f14b3a4b7f7c17f9e8a0ada3a88f64ef63a72c1a123e84e39aae292aff079d10", - "size": 47381 + "sha256": "857187d0a1db2e01b79ce13deaebed83ded6a240b6b6f4b5c07a7deb0e4aaedb", + "size": 47598 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/tutorials/security/local-server-security", "status": "success", "path": "mcp/docs/2026-07-28/tutorials/security/local-server-security.md", - "sha256": "45b34232727be99e64c0777f9ae6c333c7c0318ef7333f00e6c30402fab5a0b0", - "size": 22353 + "sha256": "7cbd8980395b20350d3c37f1ed2a3f543415a8408b1be466614da8fe40948111", + "size": 22632 }, { "url": "https://modelcontextprotocol.io/docs/2026-07-28/tutorials/security/security_best_practices", "status": "success", "path": "mcp/docs/2026-07-28/tutorials/security/security_best_practices.md", - "sha256": "6d6c2023d80e4202ac85d4178ae8bce33b5bf4f51ece8c632f79db7a11cd9f07", - "size": 42854 + "sha256": "a4e609750d560228d58be46f1c974b65a408d4d799c22600ec09bf52be40ecd7", + "size": 43257 }, { "url": "https://modelcontextprotocol.io/docs/draft/develop/build-client", "status": "success", "path": "mcp/docs/draft/develop/build-client.md", - "sha256": "fb667d2a0953bac7eabc041e79b5f49ba0458813150983eb2f266b0935705015", - "size": 72569 + "sha256": "67b1a02630b5d137e4b7dc452a29bb1fc894860fd98251b54bc55cb9be74cf06", + "size": 72693 }, { "url": "https://modelcontextprotocol.io/docs/draft/develop/build-server", "status": "success", "path": "mcp/docs/draft/develop/build-server.md", - "sha256": "dffc5a8b9488af265eab0c5c8eb161c187a637ae1781688ceb15ae7ab2c5567c", - "size": 87024 + "sha256": "2bc612cc35878249d80a00ce6298ea7db3c8005ca4d5fa9139aefaf00974077e", + "size": 87396 }, { "url": "https://modelcontextprotocol.io/docs/draft/develop/build-with-agent-skills", "status": "success", "path": "mcp/docs/draft/develop/build-with-agent-skills.md", - "sha256": "29b3e6568c8dfc3844bcde3fce3236f2e166a79f22b00c10febc8cd17ba11e71", - "size": 4635 + "sha256": "b6eaefdecc234e819a4a1a34aa47252887f04ed4b6bab1aa6e01e8bd011eb335", + "size": 4883 }, { "url": "https://modelcontextprotocol.io/docs/draft/develop/clients/client-best-practices", "status": "success", "path": "mcp/docs/draft/develop/clients/client-best-practices.md", - "sha256": "09b922e9c9ec2ebcae422c51fb728ebbbc2093bdf9ac357b4a1e6be952a0f477", - "size": 19283 + "sha256": "2d29e02fc316b4dba92d595788a452a028f954b4db072ba9fca1d20059fb0107", + "size": 19438 }, { "url": "https://modelcontextprotocol.io/docs/draft/develop/connect-local-servers", "status": "success", "path": "mcp/docs/draft/develop/connect-local-servers.md", - "sha256": "5199efcdb7afafc2afb4590c673288b450c332e7e286826833a708eb2b14e30f", - "size": 12231 + "sha256": "7525c0ec905b274b5ad9e90123dff843cbe3914bb760b4dc83c483e258f9a99f", + "size": 12355 }, { "url": "https://modelcontextprotocol.io/docs/draft/develop/connect-remote-servers", "status": "success", "path": "mcp/docs/draft/develop/connect-remote-servers.md", - "sha256": "6e5ff45c4ec9d88bc17ac2032399b404cfbf68822ac870cecd5862ce0a798531", - "size": 9186 + "sha256": "f36e145c545b12de7c8aea44378f1ddc036cd2071ae03d0314c799658fb4b11e", + "size": 9310 }, { "url": "https://modelcontextprotocol.io/docs/draft/getting-started/intro", "status": "success", "path": "mcp/docs/draft/getting-started/intro.md", - "sha256": "fc820eef1e527f7527b3e78979aaeca3ae39d9af073e36de9564ee54c848c5bd", - "size": 3191 + "sha256": "8abfcf408db0d4b60af0e7589893a1fc339e0d18d2f02684dcff4ff3dcb76c3b", + "size": 3377 }, { "url": "https://modelcontextprotocol.io/docs/draft/learn/architecture", "status": "success", "path": "mcp/docs/draft/learn/architecture.md", - "sha256": "27931f1506209dfecafd2e33686231502e0deee94f4a0596389928460840bc75", - "size": 30960 + "sha256": "51c832bfb72d38740ddb43e2216e7b50ff74d841d35e51b721eaaa17463b864a", + "size": 31487 }, { "url": "https://modelcontextprotocol.io/docs/draft/learn/client-concepts", "status": "success", "path": "mcp/docs/draft/learn/client-concepts.md", - "sha256": "a20ed2b5ec98cc92349b6f175a0ecbcd9ba94cfd95ff348c6691dce3c1b0e8cc", - "size": 17031 + "sha256": "5ee78743749409b855b700d00bdd941dc5275cb74c6218eceac7987ed3c9027f", + "size": 17217 }, { "url": "https://modelcontextprotocol.io/docs/draft/learn/server-concepts", "status": "success", "path": "mcp/docs/draft/learn/server-concepts.md", - "sha256": "d3cb3d5169c48bfa604ce4819f383d1a1f8672df75c66b696ea8157763543d36", - "size": 13778 + "sha256": "6d7135a2b07cf333e17f45d2bda5134c06fa8248a5ec40d2d8a52e9a3bfc3e08", + "size": 13809 }, { "url": "https://modelcontextprotocol.io/docs/draft/learn/versioning", "status": "success", "path": "mcp/docs/draft/learn/versioning.md", - "sha256": "64da771933e06e09e2f233130a2fa3bd8e5d5caddd29ce6193338af1aeee03de", - "size": 3203 + "sha256": "35605848cc2a1587aa9384e080072deb7f6471665ae09376f75f8d0db908ec91", + "size": 3482 }, { "url": "https://modelcontextprotocol.io/docs/draft/sdk", "status": "success", "path": "mcp/docs/draft/sdk.md", - "sha256": "caeb51ff05356e1a76a4195da837cb4bb5eedf69645e5c50267bb6a86f2112cc", - "size": 2850 + "sha256": "d973b6d1d74b53ab2484b43b270e48eef504e605035ff0ac6b2e25579eebdbaa", + "size": 2974 }, { "url": "https://modelcontextprotocol.io/docs/draft/tools/debugging", "status": "success", "path": "mcp/docs/draft/tools/debugging.md", - "sha256": "925816fdaae57b8331029bcdb073595f047b257132afddfffedc3beee9e849da", - "size": 10603 + "sha256": "f5d94c5c21dc5af2fb91459d4f9829d3cad241cbae46f9b0a21e0aafab0488df", + "size": 11347 }, { "url": "https://modelcontextprotocol.io/docs/draft/tools/inspector", "status": "success", "path": "mcp/docs/draft/tools/inspector.md", - "sha256": "becd9022e99a8f5684c736a5c7ae2c5da24cd3b3e37d8046953f61f3b16a8bdd", - "size": 7176 + "sha256": "4d2bc01b3575af865891c04c9e0e3125151c4d9f46f22fbf6e6f95bd5a468738", + "size": 7734 }, { "url": "https://modelcontextprotocol.io/docs/draft/tools/inspector/authorization", "status": "success", "path": "mcp/docs/draft/tools/inspector/authorization.md", - "sha256": "4e0e9ebd505ae3c0754da4dcd63c1217917a90b3e30e504d383694df941d09d3", - "size": 11277 + "sha256": "a27e1c9383e3fcab44f1eca34d08a544fefa5288286d4b7080c5de559becfe5b", + "size": 11618 }, { "url": "https://modelcontextprotocol.io/docs/draft/tools/inspector/cli", "status": "success", "path": "mcp/docs/draft/tools/inspector/cli.md", - "sha256": "54cd01e64ed98a02c8a68466004400a3be727c0aae912ca09da8dcae52e5dcf1", - "size": 13708 + "sha256": "fdcf5950937a92d5dd5547974936a2e56ee1ca6cd32b2b3e101eb7f92a4c1ed6", + "size": 13925 }, { "url": "https://modelcontextprotocol.io/docs/draft/tools/inspector/configuration", "status": "success", "path": "mcp/docs/draft/tools/inspector/configuration.md", - "sha256": "f4ce2f9be82c335d8a53ce6aa9086ab9a2b01afc5baf405c43f47528c3d489e1", - "size": 20756 + "sha256": "a3787a8c664e1fe0e7bab8de1804c42b5d0d383977c9de39dad5ad4125ca7d8e", + "size": 21097 }, { "url": "https://modelcontextprotocol.io/docs/draft/tools/inspector/mcpdo", "status": "success", "path": "mcp/docs/draft/tools/inspector/mcpdo.md", - "sha256": "d4be9cf7d9969285b390d381d74cc487c148af79b6041a87e271ba6eb9ecf379", - "size": 12066 + "sha256": "db93ec4d0ff887d536ec449fc26504a31dff6b42c1f3727b8c4132f2bb0f389e", + "size": 12252 }, { "url": "https://modelcontextprotocol.io/docs/draft/tools/inspector/protocol-eras", "status": "success", "path": "mcp/docs/draft/tools/inspector/protocol-eras.md", - "sha256": "26812a62d17c86914e91f4e997348281c53e2f3047b39bdf72885009ff64a38f", - "size": 17136 + "sha256": "31cb522d48c08eaec8db5b774864eaf6903bd240b3dc3e2b0353c766fa28b272", + "size": 17384 }, { "url": "https://modelcontextprotocol.io/docs/draft/tools/inspector/recipes", "status": "success", "path": "mcp/docs/draft/tools/inspector/recipes.md", - "sha256": "e12c83e9739ac6cb874443905abdbb51fe7c848fd13cc671c2538c4c7da0e946", - "size": 17111 + "sha256": "55078809661ac9743d014513dbc373c87f00ac37ceabce1dca23f59019f09a62", + "size": 17576 }, { "url": "https://modelcontextprotocol.io/docs/draft/tools/inspector/security", "status": "success", "path": "mcp/docs/draft/tools/inspector/security.md", - "sha256": "a8d974567a19db6f44e04207446163466cfd1d0ca441e0494106e0dd61aaf4f3", - "size": 16575 + "sha256": "41b4c38e76f84e04ed8820b1f51636d833fdd86671be99b81bb87ef93ed14156", + "size": 16761 }, { "url": "https://modelcontextprotocol.io/docs/draft/tools/inspector/tui", "status": "success", "path": "mcp/docs/draft/tools/inspector/tui.md", - "sha256": "951344a4fa3d940cadf1f27ca034060847a7e4d0ced275f295fca501b86ee1d4", - "size": 7076 + "sha256": "5a1c85f70de7370b2f843d429e78b03850fc1a9b6aed86969a9d82566e00ca94", + "size": 7355 }, { "url": "https://modelcontextprotocol.io/docs/draft/tools/inspector/web", "status": "success", "path": "mcp/docs/draft/tools/inspector/web.md", - "sha256": "d40b4d69ce6a248c2928a784ab125226215787271e602c0e54f2b9c0f6eab6a6", - "size": 14553 + "sha256": "b4ffa9e774032f500c063e313b0a54422a50321d3b27e2caa0ec36777d3d67a6", + "size": 15080 }, { "url": "https://modelcontextprotocol.io/docs/draft/tutorials/security/authorization", "status": "success", "path": "mcp/docs/draft/tutorials/security/authorization.md", - "sha256": "18bdede019e08697694a13b3e4dc8309929384d90036ba31f5731cdfb7d28d82", - "size": 45727 + "sha256": "2b7757318a8e38606275bbd321abb52b1420865931522e4cfe5a18693002a212", + "size": 45944 }, { "url": "https://modelcontextprotocol.io/docs/draft/tutorials/security/local-server-security", "status": "success", "path": "mcp/docs/draft/tutorials/security/local-server-security.md", - "sha256": "b39fe81dc9b39afd99f33ea6cd47edcf26712760218b3c34a8f127cf08e88b17", - "size": 22318 + "sha256": "b9e8048f2d7d9e3d6275982765efc3b9f14156370f256087406e7a7b7aca4c2a", + "size": 22597 }, { "url": "https://modelcontextprotocol.io/docs/draft/tutorials/security/security_best_practices", "status": "success", "path": "mcp/docs/draft/tutorials/security/security_best_practices.md", - "sha256": "a6981016438d68ff25ffd6eb035bc9f18f54db8510b4481bfa940dd3a8f1344b", - "size": 42809 + "sha256": "ed2119fbb2afd40e62ad260d44a30a428865d28cc1543627711b93e6ad5fb2ad", + "size": 43212 }, { "url": "https://modelcontextprotocol.io/examples", @@ -8388,71 +8402,71 @@ "url": "https://modelcontextprotocol.io/extensions/apps/build", "status": "success", "path": "mcp/extensions/apps/build.md", - "sha256": "c0a1848b9591a0f13d226b09a53591ad886f6d9d9e6b32fa45a6f30319a83a5b", - "size": 17244 + "sha256": "1602425b775938d4a3ab74e3ce6b50cf43ae7f66c31ce1de6c006380378e6834", + "size": 17306 }, { "url": "https://modelcontextprotocol.io/extensions/apps/overview", "status": "success", "path": "mcp/extensions/apps/overview.md", - "sha256": "f7d697338f9768131d91bfd8b248acc61b848fbbc2ec85e7fcda6457e8ffce9b", - "size": 12803 + "sha256": "5c1d70733c9e1962ee45825aca76a89ff21b79ceec4260ccde3ce2c99d91743f", + "size": 12896 }, { "url": "https://modelcontextprotocol.io/extensions/auth/enterprise-managed-authorization", "status": "success", "path": "mcp/extensions/auth/enterprise-managed-authorization.md", - "sha256": "5f71b74d6b41f89e9bf99826e09c81beadbd4b9462272051a72d425bb7eae4fb", - "size": 8666 + "sha256": "a449a3143e3f077153139c33f9ff852543af905d9bfbe6639dafeecfd296dc01", + "size": 8759 }, { "url": "https://modelcontextprotocol.io/extensions/auth/oauth-client-credentials", "status": "success", "path": "mcp/extensions/auth/oauth-client-credentials.md", - "sha256": "df3e226d9bfbf9aa6a8ed42be78ca09e3324155f06bbf6ad054774bbf98f018b", - "size": 12118 + "sha256": "88467514511271ac20bb8a7b2e5491fa11f6fe39af66aae14ee1521ea323549d", + "size": 12149 }, { "url": "https://modelcontextprotocol.io/extensions/auth/overview", "status": "success", "path": "mcp/extensions/auth/overview.md", - "sha256": "b160279318ba7cd540af71b2b3c356def8cc1c76a5bb84a22d7032af03a10c10", - "size": 3635 + "sha256": "fc147de55a6e58d694b421e814336b9c3c575b1078af775490e691d9f5250638", + "size": 3976 }, { "url": "https://modelcontextprotocol.io/extensions/client-matrix", "status": "success", "path": "mcp/extensions/client-matrix.md", - "sha256": "28e7e087e9c9d94d254d6a791480c9cbd595724563315aa9260623b235132b63", - "size": 4073 + "sha256": "00d2e63f2af2a049d3933cd7b9b0a993e87e6ebbe62cb553b96432211f0fee60", + "size": 4445 }, { "url": "https://modelcontextprotocol.io/extensions/overview", "status": "success", "path": "mcp/extensions/overview.md", - "sha256": "7087488d6871f6a2e342945eca41a2f82ae2427d7c3099605180aab921fd92fd", - "size": 8693 + "sha256": "97d6a1469a257bfff87bb251d4f88d3e6b32e621c789e712f755679b8b3aa188", + "size": 9127 }, { "url": "https://modelcontextprotocol.io/extensions/skills/overview", "status": "success", "path": "mcp/extensions/skills/overview.md", - "sha256": "f1d359c8a3e2079673fb5299482f45be1dab4facd6304ca0e1a76a0292d47472", - "size": 15688 + "sha256": "5c0bcaa5749b66125f43fd8b1797099718a0425284655ab598433f818c0b9f6c", + "size": 15998 }, { "url": "https://modelcontextprotocol.io/extensions/tasks/overview", "status": "success", "path": "mcp/extensions/tasks/overview.md", - "sha256": "8c52f2301c3c7864684f0de34305de58e3a7dc3d63a5596667c29f0cf1c2695b", - "size": 9477 + "sha256": "8ba965ed87fac4d9c62a5c02b338e879a3a81653604a3bfc0f4a623f81aca877", + "size": 9601 }, { "url": "https://modelcontextprotocol.io/registry/about", "status": "success", "path": "mcp/registry/about.md", - "sha256": "2f98bd2eb871d26d1dfb1435d127068b0dce73b5ca1f4b79501e516b6e8a7dde", - "size": 6748 + "sha256": "e4fa7808708658607795e145a98bc01de21b3f71da0d188ce0c2575b6e80dd54", + "size": 6872 }, { "url": "https://modelcontextprotocol.io/registry/authentication", @@ -8472,8 +8486,8 @@ "url": "https://modelcontextprotocol.io/registry/github-actions", "status": "success", "path": "mcp/registry/github-actions.md", - "sha256": "b12ab242d41589521a5f36233398677d693112ca5cee6a8a3fb119971eeb2f4a", - "size": 6976 + "sha256": "aeb8739cd20b51ba27479582560300eacc5cba0f15976dc210d89aeca696b388", + "size": 7007 }, { "url": "https://modelcontextprotocol.io/registry/moderation-policy", @@ -8493,22 +8507,22 @@ "url": "https://modelcontextprotocol.io/registry/quickstart", "status": "success", "path": "mcp/registry/quickstart.md", - "sha256": "6ceac849d830f098528761d139e3411697945b389bb805bff3eaa2e29b59102b", - "size": 9809 + "sha256": "4e2d797bfdce6f2d6e74dd1ba2852733b5c3ba4292caf29aceed502581709102", + "size": 9995 }, { "url": "https://modelcontextprotocol.io/registry/registry-aggregators", "status": "success", "path": "mcp/registry/registry-aggregators.md", - "sha256": "86a9bc475a4606fc739af33c689a9260f7c430b401b2d43034b8ea8d2b8abd39", - "size": 5007 + "sha256": "4a74d2aa954504c77bae449829a7fd304db26ffa2f302aae436d187a30b4e9bf", + "size": 5038 }, { "url": "https://modelcontextprotocol.io/registry/remote-servers", "status": "success", "path": "mcp/registry/remote-servers.md", - "sha256": "67d188c1e65ad0c5c35ee17fbc61852293dbacdcf069870093ce0091de6a0aed", - "size": 5411 + "sha256": "3b5c2b6fe79592ab07f89ab1543d940e0b69e9006e771a665e0cad9c50353c3a", + "size": 5442 }, { "url": "https://modelcontextprotocol.io/registry/terms-of-service", @@ -8528,330 +8542,330 @@ "url": "https://modelcontextprotocol.io/seps/1024-mcp-client-security-requirements-for-local-server-", "status": "success", "path": "mcp/seps/1024-mcp-client-security-requirements-for-local-server-.md", - "sha256": "863515470af47e2fbc3b7349567ddcae98a08b077eb3fd453275806cc064d245", - "size": 5925 + "sha256": "1adbade421d756756f5596faac6d00b00acdc336b8e05da864dcce75c030a57f", + "size": 5956 }, { "url": "https://modelcontextprotocol.io/seps/1034--support-default-values-for-all-primitive-types-in", "status": "success", "path": "mcp/seps/1034--support-default-values-for-all-primitive-types-in.md", - "sha256": "20803d497f432f9c2a98df3060699816be5ac9a6fada0845a5709f8ea0e5ca8d", - "size": 5908 + "sha256": "e7d6a6dd21519b70e86ffa181e871aa579ded67566f684683de1840ed98005bc", + "size": 5939 }, { "url": "https://modelcontextprotocol.io/seps/1036-url-mode-elicitation-for-secure-out-of-band-intera", "status": "success", "path": "mcp/seps/1036-url-mode-elicitation-for-secure-out-of-band-intera.md", - "sha256": "82c2da5f9225ac68263ed4971e7af0da6a9178ecd466581624e8decb614abbfa", - "size": 15694 + "sha256": "fe89867b816bbca02c449bbe2414d70da512464d74b2c5a04d64c4dc81acf391", + "size": 15725 }, { "url": "https://modelcontextprotocol.io/seps/1046-support-oauth-client-credentials-flow-in-authoriza", "status": "success", "path": "mcp/seps/1046-support-oauth-client-credentials-flow-in-authoriza.md", - "sha256": "f14bb5c3f8305caf7bba57d714e5e9b929e5bb1a51655c495ddf03de31a8d686", - "size": 3708 + "sha256": "3102a7086d7c1b00b9fa0f53a95096a0c3c4ca9e81c28e5565d9198e691c03d0", + "size": 3739 }, { "url": "https://modelcontextprotocol.io/seps/1302-formalize-working-groups-and-interest-groups-in-mc", "status": "success", "path": "mcp/seps/1302-formalize-working-groups-and-interest-groups-in-mc.md", - "sha256": "d2853028b6677558b62627c19b8ca3f148b216bc9cef9c29df304ae2340ccb34", - "size": 16398 + "sha256": "7054ba0447dfa132fd48f4bc0f573abba2968a2b91dd1d3dacb38b785d1c2bcd", + "size": 16429 }, { "url": "https://modelcontextprotocol.io/seps/1303-input-validation-errors-as-tool-execution-errors", "status": "success", "path": "mcp/seps/1303-input-validation-errors-as-tool-execution-errors.md", - "sha256": "2f6a79102ac9ca6d4db6d3a1d4a483d7a2702221cc33b76f35468895ac112068", - "size": 7066 + "sha256": "395db3dda6ef9f55cef7f650dc8ecf542e8f12ad719e8b8037a8f6b2f2d9ede3", + "size": 7097 }, { "url": "https://modelcontextprotocol.io/seps/1319-decouple-request-payload-from-rpc-methods-definiti", "status": "success", "path": "mcp/seps/1319-decouple-request-payload-from-rpc-methods-definiti.md", - "sha256": "07b21164605ce60e96c23a7e1e81f0b2ca8f381624244205b1c7012ea907b494", - "size": 5783 + "sha256": "70ae611e997bc9ff76c2a5a9a9b3dca46f98755991e3aadec8cd88470043b7d6", + "size": 5814 }, { "url": "https://modelcontextprotocol.io/seps/1330-elicitation-enum-schema-improvements-and-standards", "status": "success", "path": "mcp/seps/1330-elicitation-enum-schema-improvements-and-standards.md", - "sha256": "527563acbc3e5cea1f01cc265635c8e29188efab4de066d17151e30357a6481c", - "size": 16518 + "sha256": "fc9b651bdbcd0cc26f38f8e5db065679899f42e84f8b3e825392c0be613808f8", + "size": 16549 }, { "url": "https://modelcontextprotocol.io/seps/1577--sampling-with-tools", "status": "success", "path": "mcp/seps/1577--sampling-with-tools.md", - "sha256": "056bece2e68279ec94aa7ab912b7a96dd565c785ac4ce2eab5fc2f0e2dbb5c17", - "size": 19272 + "sha256": "d2ff49954b65be4aa18fb1b9178cc46e6e92cb3a0f0b58166e581873b1de5a7b", + "size": 19303 }, { "url": "https://modelcontextprotocol.io/seps/1613-establish-json-schema-2020-12-as-default-dialect-f", "status": "success", "path": "mcp/seps/1613-establish-json-schema-2020-12-as-default-dialect-f.md", - "sha256": "8b1c30b65acee5c5b100ad3e09bc83af42487bace3763bda569cb59487b905cf", - "size": 7613 + "sha256": "dce6ef00ee253476728268012f7c72294eadae3099c92256ac14408f144ad205", + "size": 7644 }, { "url": "https://modelcontextprotocol.io/seps/1686-tasks", "status": "success", "path": "mcp/seps/1686-tasks.md", - "sha256": "d7ea1c3f48605918cc3718ddf48c5af26a0192713e0f29d6e335e0fb0208b77f", - "size": 64883 + "sha256": "957890897244b3b93ad748480aea7eaaed78479f3bdf82ddc4932fb1a68109f4", + "size": 64945 }, { "url": "https://modelcontextprotocol.io/seps/1699-support-sse-polling-via-server-side-disconnect", "status": "success", "path": "mcp/seps/1699-support-sse-polling-via-server-side-disconnect.md", - "sha256": "e5d2cc9bb8ae053d5f9bddf477d6e04d4341a3412b65e18b281c7075b75727f3", - "size": 4150 + "sha256": "499d3e27e3d709cac7139f4e4d5a903913824e0c7b06a2a272849fb0743fd562", + "size": 4181 }, { "url": "https://modelcontextprotocol.io/seps/1730-sdks-tiering-system", "status": "success", "path": "mcp/seps/1730-sdks-tiering-system.md", - "sha256": "1ba455ed3166aa361415b86c2ec9133c50966ceeb3631657e3cf194e96ce391f", - "size": 10231 + "sha256": "8136c9fef3da54da6ade956f0d70e579af3c4d8fdc3cbae4b28b261511da644a", + "size": 10262 }, { "url": "https://modelcontextprotocol.io/seps/1850-pr-based-sep-workflow", "status": "success", "path": "mcp/seps/1850-pr-based-sep-workflow.md", - "sha256": "942c709f4c072b4ac1cca827bc2df5349fd8bc3d9c1341c5f44eda8123d9511d", - "size": 8995 + "sha256": "43ca04cc01ddbc8b4a3f516b0769d51bdc70234edfa72adb1cd52148eb73513f", + "size": 9026 }, { "url": "https://modelcontextprotocol.io/seps/1865-mcp-apps-interactive-user-interfaces-for-mcp", "status": "success", "path": "mcp/seps/1865-mcp-apps-interactive-user-interfaces-for-mcp.md", - "sha256": "a66ba92a2fbb2cab15acfc1cb2d466458c979650345ee659a52ebd42c41086c8", - "size": 8319 + "sha256": "1672d57d099b77d7924158290958d79412fa38c40eda2bbdc3f44b062cd9c80f", + "size": 8350 }, { "url": "https://modelcontextprotocol.io/seps/2085-governance-succession-and-amendment", "status": "success", "path": "mcp/seps/2085-governance-succession-and-amendment.md", - "sha256": "9fb7174d532ec88bf9486e20ee2d58d6c8222231f5f9556786b588eace64e0f8", - "size": 6644 + "sha256": "75656cb956b88902e77b74f9e53814fae138802cd58d5fd71775dc47b22c5ff6", + "size": 6675 }, { "url": "https://modelcontextprotocol.io/seps/2106-json-schema-2020-12", "status": "success", "path": "mcp/seps/2106-json-schema-2020-12.md", - "sha256": "6bf08b83bdbf164f22027a1b3d2ec30a91a088370c54ba054e12ec5208420a08", - "size": 19015 + "sha256": "42a8204653303cf3dae27432cd4070be2f7a2ef03c9f1dc1b3c75b38d029b4d6", + "size": 19046 }, { "url": "https://modelcontextprotocol.io/seps/2127-mcp-server-cards", "status": "success", "path": "mcp/seps/2127-mcp-server-cards.md", - "sha256": "281c39b7d0030c57119c177ad1fb848a277f7b953132cc96b863dd06145aebca", - "size": 17683 + "sha256": "53d5a2aedf14ab0f6348259df565242b7fc485b506c8c0011874d14666b64a00", + "size": 17869 }, { "url": "https://modelcontextprotocol.io/seps/2133-extensions", "status": "success", "path": "mcp/seps/2133-extensions.md", - "sha256": "7ec88ab3f54ccd2febe0759eaced20c0cfcde7837b36be13f4cba83f118cf375", - "size": 19658 + "sha256": "3b568d371fe960fd40f90bd833838971fa4e4410dc9d7c8c3d44de5b5137157f", + "size": 19689 }, { "url": "https://modelcontextprotocol.io/seps/2148-contributor-ladder", "status": "success", "path": "mcp/seps/2148-contributor-ladder.md", - "sha256": "8cedb3970d8ab7fa4b3832d7a2879c44a96e3b8a8c81e6daaa477bd07a7a543a", - "size": 25023 + "sha256": "83268c75d6d1861a7f00d940fdeb25427dfb020188651968280d7c94771d9330", + "size": 25147 }, { "url": "https://modelcontextprotocol.io/seps/2149-working-group-charter-template", "status": "success", "path": "mcp/seps/2149-working-group-charter-template.md", - "sha256": "c0dc82824009d24f7ec9a4a945d1dbea65d99154c238ac7b13fc2e288a8b9bdb", - "size": 22997 + "sha256": "27f0f34ec810f48fb0e280b1cce254f5d86a2e6c58a337cc94417598a3c60f40", + "size": 23152 }, { "url": "https://modelcontextprotocol.io/seps/2164-resource-not-found-error", "status": "success", "path": "mcp/seps/2164-resource-not-found-error.md", - "sha256": "bb2a4cf0b732ff46fcf56067aa8d3807999fab4418b667bc0ffe595dbb91246c", - "size": 6182 + "sha256": "5b6e1ce8858b9a385db6e5a4b6d1819e3601276acc1b3a497c52d61718e4f613", + "size": 6213 }, { "url": "https://modelcontextprotocol.io/seps/2207-oidc-refresh-token-guidance", "status": "success", "path": "mcp/seps/2207-oidc-refresh-token-guidance.md", - "sha256": "c63aff7183356e0ff249b4f41abf00fed390c00bf8f11b914ae4a104b2bd4c6b", - "size": 9388 + "sha256": "66af3277754f9f26af5dfcad96009cca517f4b93e5b316d7b67fdec49779bdf7", + "size": 9419 }, { "url": "https://modelcontextprotocol.io/seps/2243-http-standardization", "status": "success", "path": "mcp/seps/2243-http-standardization.md", - "sha256": "08ffc4edf19d687227787c5a58abdaeb0111179f8c174b748a777d8caee676e6", - "size": 40265 + "sha256": "14574a924406e82475a993cec21e7a8a5a191013d73abec036769e413c7724a8", + "size": 40296 }, { "url": "https://modelcontextprotocol.io/seps/2260-Require-Server-requests-to-be-associated-with-Client-requests", "status": "success", "path": "mcp/seps/2260-Require-Server-requests-to-be-associated-with-Client-requests.md", - "sha256": "4a75281f29108b00decec290053b838c2f0574ff6ef031f388b3f8055246ab73", - "size": 13232 + "sha256": "e2d8bb840e1ddc7939a0cc9746dfb7ea8624e88b57a14c3e15eaaff93d15d339", + "size": 13263 }, { "url": "https://modelcontextprotocol.io/seps/2322-MRTR", "status": "success", "path": "mcp/seps/2322-MRTR.md", - "sha256": "19c117857ef5513eae56d9bcdb761302ff17b9afba40b7ac667174a9b478bcf9", - "size": 53134 + "sha256": "ee8f7f001b2d3f7a96ac1dff24a6a0bacaef580ef150925b32ba46553fffffa1", + "size": 53165 }, { "url": "https://modelcontextprotocol.io/seps/2468-recommend-issuer-claim-for-auth", "status": "success", "path": "mcp/seps/2468-recommend-issuer-claim-for-auth.md", - "sha256": "2776fe43ded373647c6bb47719992e6c480d7d85605a86d4bd02d90f7a12bfb3", - "size": 7745 + "sha256": "46de31160b09e2895bfde0b3f9ce2893669921370425ea8b16e536f0ae88290e", + "size": 7807 }, { "url": "https://modelcontextprotocol.io/seps/2484-conformance-tests-required-for-final-seps", "status": "success", "path": "mcp/seps/2484-conformance-tests-required-for-final-seps.md", - "sha256": "9ea8f4774a23b275fedb9a6c69b646a513ea5cb89ee3ab0af9ff288761a79782", - "size": 15142 + "sha256": "df65d72f0b0274194dca262141e496dd47b67d2614495b1a22fd303e6ff86ba1", + "size": 15173 }, { "url": "https://modelcontextprotocol.io/seps/2549-TTL-for-list-results", "status": "success", "path": "mcp/seps/2549-TTL-for-list-results.md", - "sha256": "9954941ee776fd7cff43f79065acd030e41c0f14881ddb64634245b125c3d932", - "size": 13942 + "sha256": "6a3ea083542576b6534203130e98ae89cd4e8328e76c1258e21064e2f5421db8", + "size": 13973 }, { "url": "https://modelcontextprotocol.io/seps/2567-sessionless-mcp", "status": "success", "path": "mcp/seps/2567-sessionless-mcp.md", - "sha256": "9e5035a20b09e8b52c32ddccb7e97d26a7b6cbe83cf9924f9d2f0a66dae973c4", - "size": 35108 + "sha256": "178d94c9786107dffae2e2e67511c92c35ceda001ef00071b5442282fe7e21f5", + "size": 35139 }, { "url": "https://modelcontextprotocol.io/seps/2575-stateless-mcp", "status": "success", "path": "mcp/seps/2575-stateless-mcp.md", - "sha256": "cfba6ae5ef33d7431cad5373d7d94f15c776a5c2a6f5415045a2b033746af0ba", - "size": 36341 + "sha256": "c6e08bc3b74d723253553c04eccea55f1a177952aae88f310cd8fa9ac24560fc", + "size": 36372 }, { "url": "https://modelcontextprotocol.io/seps/2577-deprecate-roots-sampling-and-logging", "status": "success", "path": "mcp/seps/2577-deprecate-roots-sampling-and-logging.md", - "sha256": "5bf2e3436f3c4eda8d2721dc0e24803444216177e39d69abb36aa4fc6a77249c", - "size": 13340 + "sha256": "8bad1a2999e9c9c4752b263e3241e241c8abc6ecd620fac19831dc8469d099f3", + "size": 13371 }, { "url": "https://modelcontextprotocol.io/seps/2596-spec-feature-lifecycle-and-deprecation", "status": "success", "path": "mcp/seps/2596-spec-feature-lifecycle-and-deprecation.md", - "sha256": "d654b925c7f03278a70a709900b21a3cab244c68138ebb1b9d978a43f3de854a", - "size": 25799 + "sha256": "cc50162d2fa78a20783f5bc6d6e10569aac8d546005f188bfa2b23f7b86a9468", + "size": 25830 }, { "url": "https://modelcontextprotocol.io/seps/2640-skills-extension", "status": "success", "path": "mcp/seps/2640-skills-extension.md", - "sha256": "d653308e20f9c1f304120ebbe18f626259efff2c7ba8bfed3b04bbb242d86d53", - "size": 65622 + "sha256": "72e16488444b887e90db1fc0530d882991ec4951cb1724fa59c7090c188ab14a", + "size": 65653 }, { "url": "https://modelcontextprotocol.io/seps/2663-tasks-extension", "status": "success", "path": "mcp/seps/2663-tasks-extension.md", - "sha256": "5780b45eb38710608ddb05a10c9455ebbcc8563a575cedb55bec3d1b54d9d009", - "size": 51078 + "sha256": "6e6c8775ed77b6be2f87344b6e94577583d0a29c07d6998ec23a8ecbd761b9b3", + "size": 51636 }, { "url": "https://modelcontextprotocol.io/seps/414-request-meta", "status": "success", "path": "mcp/seps/414-request-meta.md", - "sha256": "5ff7b90b03167e27ad2d69aecb3ad9acb5352f779492314305b4a66a4c14beb3", - "size": 5176 + "sha256": "393a2a470a2248623ec05d7c9c32d855176cade1cf950a3e51f2e7ae06c04418", + "size": 5207 }, { "url": "https://modelcontextprotocol.io/seps/932-model-context-protocol-governance", "status": "success", "path": "mcp/seps/932-model-context-protocol-governance.md", - "sha256": "617b9835ac4c4b5334756c7b54da8504a92b31114906e0b31290be5d1c412715", - "size": 4262 + "sha256": "ff1a1875f9e930f03adca722e8a1fc735b29dc4bca85ffec283c67bffec935e4", + "size": 4293 }, { "url": "https://modelcontextprotocol.io/seps/973-expose-additional-metadata-for-implementations-res", "status": "success", "path": "mcp/seps/973-expose-additional-metadata-for-implementations-res.md", - "sha256": "651308ac0c4ff522429ec56a3874f66e97dc2f43e3655dc691eee47be09503e5", - "size": 6525 + "sha256": "a8c1d63e62f26fe6a3c96e7fe6ea09ea21223a6b0f1b42d8b53659faeee50e18", + "size": 6556 }, { "url": "https://modelcontextprotocol.io/seps/985-align-oauth-20-protected-resource-metadata-with-rf", "status": "success", "path": "mcp/seps/985-align-oauth-20-protected-resource-metadata-with-rf.md", - "sha256": "9fd391943e811b1d2714948412954d9140ab98064b5f1bfceb28516e12bc56c7", - "size": 5832 + "sha256": "a2e8ecbdba3fc42e023b23223e2df9cad424bdbb50a440924fcee52899bc5c96", + "size": 5863 }, { "url": "https://modelcontextprotocol.io/seps/986-specify-format-for-tool-names", "status": "success", "path": "mcp/seps/986-specify-format-for-tool-names.md", - "sha256": "0b5fb718854189c8da4b3eaec5ffd4262eba34b2af55edbeff769b55f5c4f918", - "size": 4139 + "sha256": "85ba75d0666d2e253e074dedab20c25219c3031cac4d946c0f61c0f18c5f84c6", + "size": 4170 }, { "url": "https://modelcontextprotocol.io/seps/990-enable-enterprise-idp-policy-controls-during-mcp-o", "status": "success", "path": "mcp/seps/990-enable-enterprise-idp-policy-controls-during-mcp-o.md", - "sha256": "34ebf1b8100e5ef9299ecc4d971fd69c5d0893978eeff7524d3a2eb9dfd27cde", - "size": 3164 + "sha256": "3b06bb6bde521430e240f3ab9ae6c7aa4018e00839721b0388cce691a924722f", + "size": 3195 }, { "url": "https://modelcontextprotocol.io/seps/991-enable-url-based-client-registration-using-oauth-c", "status": "success", "path": "mcp/seps/991-enable-url-based-client-registration-using-oauth-c.md", - "sha256": "ed10f136997fe6c8720cc2c7b0c5d82994d6040f602eb01837a7c5accaf5fe38", - "size": 16894 + "sha256": "b59d56e2face2f070e36b5c0ff25474d2ff188c1818d8df74e6304d7aee3718a", + "size": 16925 }, { "url": "https://modelcontextprotocol.io/seps/994-shared-communication-practicesguidelines", "status": "success", "path": "mcp/seps/994-shared-communication-practicesguidelines.md", - "sha256": "99ebaf53d9c9f72d5accfd58b8a8742f26e6d0fe6d5cf361aaa29790c80a618a", - "size": 4249 + "sha256": "7eb2bf5b103e37ebc2241772107994334ec2a75b2fcac8bbfac7bd6a69748cf1", + "size": 4280 }, { "url": "https://modelcontextprotocol.io/seps", "status": "success", "path": "mcp/seps.md", - "sha256": "fd722943ad676e910cdf05196d169782adead37e3e23951d718c8ea964055245", - "size": 7711 + "sha256": "6897ee43bd21cdf49060dae6cd853d30a9b2e9ea8ea9f4068028d6a29c86f5bb", + "size": 9106 }, { "url": "https://modelcontextprotocol.io/specification/2024-11-05/architecture", "status": "success", "path": "mcp/specification/2024-11-05/architecture.md", - "sha256": "6436acf344d3324714b31715a218a6f3de26b2bcadf0105b43407650dde5d2c9", - "size": 6355 + "sha256": "1177fe4cfdd70f4626c30ad3f64ae9708187201e836e4b68b8c196b62ce601af", + "size": 6417 }, { "url": "https://modelcontextprotocol.io/specification/2024-11-05/basic", "status": "success", "path": "mcp/specification/2024-11-05/basic.md", - "sha256": "3ee84c400f4ab39f7079e7b1e50556f7261995ba9e1d54b341977ec6c4f1bb82", - "size": 3116 + "sha256": "f2f3a17532be2c4d14bcd7addb69a13e91e4e125389fc8f9974fb474ced477d3", + "size": 3302 }, { "url": "https://modelcontextprotocol.io/specification/2024-11-05/basic/lifecycle", "status": "success", "path": "mcp/specification/2024-11-05/basic/lifecycle.md", - "sha256": "9a304fc61227d1300c4d4c40084e509f16005015ba8c1242c253991c540bd5bb", - "size": 6577 + "sha256": "7e99a9978503877c7db27219ce647f5952810a125aa40bb9baee828a55b3091b", + "size": 6918 }, { "url": "https://modelcontextprotocol.io/specification/2024-11-05/basic/messages", @@ -8892,50 +8906,50 @@ "url": "https://modelcontextprotocol.io/specification/2024-11-05/client/roots", "status": "success", "path": "mcp/specification/2024-11-05/client/roots.md", - "sha256": "f2884dea685e3978eec1c847b7c434d2ccb43d0cce275cf85da059a1fd87b106", - "size": 4377 + "sha256": "ca82735469c99a8c33540cc1f9fd8268b5802092e2cb65e843720f5ff4724e31", + "size": 4408 }, { "url": "https://modelcontextprotocol.io/specification/2024-11-05/client/sampling", "status": "success", "path": "mcp/specification/2024-11-05/client/sampling.md", - "sha256": "ced262952b7973e968056a9ad9f3c37c41cbfd558b7166edd935910f91a325ac", - "size": 6032 + "sha256": "e318e7b955795fb46853e1933dac62883eff51d0b0af028140ef4e9ffb3d2836", + "size": 6063 }, { "url": "https://modelcontextprotocol.io/specification/2024-11-05", "status": "success", "path": "mcp/specification/2024-11-05.md", - "sha256": "0aad851359d00659559f62450aae82aa65859239c9f19b259aa554213907aacf", - "size": 5008 + "sha256": "b17ea821dbb8a1c8fe001b0c43fd08d5703ce89f5c839564e65cdcf2f5183f44", + "size": 5163 }, { "url": "https://modelcontextprotocol.io/specification/2024-11-05/server", "status": "success", "path": "mcp/specification/2024-11-05/server.md", - "sha256": "12f2825335e022ba918c16e927476175e0e1da121c2d90237945bc0c98ea3574", - "size": 1378 + "sha256": "b3017c129648dfd9338bbb742753d9e3d41d9c002ab5b4e2af747ec348b33d38", + "size": 1471 }, { "url": "https://modelcontextprotocol.io/specification/2024-11-05/server/prompts", "status": "success", "path": "mcp/specification/2024-11-05/server/prompts.md", - "sha256": "47517270b08a923b45841e0494adcc71c601c3481fd7aeed53b1ef871151dd0d", - "size": 6307 + "sha256": "01dcb26bc1111a789d61895781acc1a58149597e189360143a0dae5caf4c3a18", + "size": 6400 }, { "url": "https://modelcontextprotocol.io/specification/2024-11-05/server/resources", "status": "success", "path": "mcp/specification/2024-11-05/server/resources.md", - "sha256": "413ed37ccc6aca43a72dd6bb1c2b9fbef1020b8f5b6e1e895108e491e03368b0", - "size": 8270 + "sha256": "ca3797e227665016266e1697345190f3343c83d2161962a00a46c15dd6a6a624", + "size": 8363 }, { "url": "https://modelcontextprotocol.io/specification/2024-11-05/server/tools", "status": "success", "path": "mcp/specification/2024-11-05/server/tools.md", - "sha256": "a443074557683c04a640ebb28f9de30a4cbeefb5f9ff342da89e77482672222e", - "size": 6108 + "sha256": "1c2a221fa6cae643d374e80fb7d2974db3b1946d189f547ce2a11e3c23030073", + "size": 6170 }, { "url": "https://modelcontextprotocol.io/specification/2024-11-05/server/utilities/completion", @@ -8962,8 +8976,8 @@ "url": "https://modelcontextprotocol.io/specification/2025-03-26/architecture", "status": "success", "path": "mcp/specification/2025-03-26/architecture.md", - "sha256": "f07c8d528db658a335f475d40b81bcaabb01237632423684153e10196b4ad4a5", - "size": 5915 + "sha256": "46e0eab39703d806133462bf7022b8ed4ae22db7f5d4bd76e323e01c0e2385c2", + "size": 5977 }, { "url": "https://modelcontextprotocol.io/specification/2025-03-26/basic/authorization", @@ -8976,22 +8990,22 @@ "url": "https://modelcontextprotocol.io/specification/2025-03-26/basic", "status": "success", "path": "mcp/specification/2025-03-26/basic.md", - "sha256": "138987819bd489570784e908819070fb6dfc8993cdf44140ca8dcc0c08e8d654", - "size": 4189 + "sha256": "a6dfceb3776e11a61016cc70ff188c2ba94ad3ffd9a6aa54623b7c9cea17011b", + "size": 4220 }, { "url": "https://modelcontextprotocol.io/specification/2025-03-26/basic/lifecycle", "status": "success", "path": "mcp/specification/2025-03-26/basic/lifecycle.md", - "sha256": "d96452d754806ff00572548f938c8c50483c88364697786753341a710ee3e307", - "size": 7824 + "sha256": "6d7ea51c39e8f6d9a3d90181afd18cf3996e0c7b88f3bde9664770c7c8d9500f", + "size": 8258 }, { "url": "https://modelcontextprotocol.io/specification/2025-03-26/basic/transports", "status": "success", "path": "mcp/specification/2025-03-26/basic/transports.md", - "sha256": "2b085fbb2574a2bb5dead848b06b9348178a4cef2e3c56699cbc7616c7e31a83", - "size": 13981 + "sha256": "064ee54f66a5a295b241f1c6cca15c79872d8482a89842d10a6107466c36c62e", + "size": 14074 }, { "url": "https://modelcontextprotocol.io/specification/2025-03-26/basic/utilities/cancellation", @@ -9018,57 +9032,57 @@ "url": "https://modelcontextprotocol.io/specification/2025-03-26/changelog", "status": "success", "path": "mcp/specification/2025-03-26/changelog.md", - "sha256": "bc9b62f38a34d8facf5efd2a643cd0f6d10a232825b027e7e830854962dfb219", - "size": 1848 + "sha256": "bdcc947b7310df423afb0deb3c6afcd5316b854dae3c6a6560dc99ecf99276a8", + "size": 1941 }, { "url": "https://modelcontextprotocol.io/specification/2025-03-26/client/roots", "status": "success", "path": "mcp/specification/2025-03-26/client/roots.md", - "sha256": "c04f16b97218c46cabaecc08e3f1102428b48665e0523753a4860f506dae0bc8", - "size": 4377 + "sha256": "e533b13ed8f1a075699b672010b5a1ea11c90fc4488be27523016e1f5ecee7c0", + "size": 4408 }, { "url": "https://modelcontextprotocol.io/specification/2025-03-26/client/sampling", "status": "success", "path": "mcp/specification/2025-03-26/client/sampling.md", - "sha256": "589b3619941ea6f680e272bf8eb9239fbf5e7973f836c904b5416589771157c4", - "size": 6174 + "sha256": "aea4383f3c3638db0a65c188a76156edb2b5548e709331350d3343d7912c9474", + "size": 6205 }, { "url": "https://modelcontextprotocol.io/specification/2025-03-26", "status": "success", "path": "mcp/specification/2025-03-26.md", - "sha256": "9af9d02faee90aa6d973faeba8ca02c97717cc4d3024d6d4c2487cc1a7ee1038", - "size": 5159 + "sha256": "0cdb5e8fcade2224f5252fd5fd2b65d651e717d0c8d3f067f2bf94637de52d56", + "size": 5314 }, { "url": "https://modelcontextprotocol.io/specification/2025-03-26/server", "status": "success", "path": "mcp/specification/2025-03-26/server.md", - "sha256": "a8688233f498750741647be15de4200c399db66e1218779906cf88ae8a17f953", - "size": 1378 + "sha256": "6d4b4ab3fc74a21e9ce58c9da96e86dc5517dead8b4a9e26c4d60e56370bb030", + "size": 1471 }, { "url": "https://modelcontextprotocol.io/specification/2025-03-26/server/prompts", "status": "success", "path": "mcp/specification/2025-03-26/server/prompts.md", - "sha256": "e6436c6eff0fbd68f2f64668a0e6925451bb771a9bfc30a6a1d8bced261ba39c", - "size": 6646 + "sha256": "6862120ea968ae6edd9589ec40f5a7660f328f6f438cd697830821689a01cd90", + "size": 6739 }, { "url": "https://modelcontextprotocol.io/specification/2025-03-26/server/resources", "status": "success", "path": "mcp/specification/2025-03-26/server/resources.md", - "sha256": "a137c79839f082cd600b3aeaf45aed470501596c1c8d06172ff61ed9e08ff738", - "size": 8456 + "sha256": "4d5bed6952824612e06a1279d67c55130637115a22df5f174daa72a99c3f6756", + "size": 8549 }, { "url": "https://modelcontextprotocol.io/specification/2025-03-26/server/tools", "status": "success", "path": "mcp/specification/2025-03-26/server/tools.md", - "sha256": "6d1ff8ead2767ba940dd864bfcf96b0e2799f0bc4339f94b15b6a1ebef3865f8", - "size": 6455 + "sha256": "cad9932f28e92d316510bec0648eb28dc4d39cc08e9a37baa41375f141faf153", + "size": 6517 }, { "url": "https://modelcontextprotocol.io/specification/2025-03-26/server/utilities/completion", @@ -9095,36 +9109,36 @@ "url": "https://modelcontextprotocol.io/specification/2025-06-18/architecture", "status": "success", "path": "mcp/specification/2025-06-18/architecture.md", - "sha256": "4fea7407d905fe9c478b9772343be9fd2bc6c2b18c3dfbf0bd5b3dbce54b7d77", - "size": 5915 + "sha256": "9137c060780716759e8986de0f95684901242aabe3d0b9965945196bd36f91bc", + "size": 5977 }, { "url": "https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization", "status": "success", "path": "mcp/specification/2025-06-18/basic/authorization.md", - "sha256": "c4bd7c53955dda7dedac071d0d1788e91d92a6b82b0b594326ae02e8ac3e3205", - "size": 20694 + "sha256": "95727f0319783bbbabc5b35fb0d854a5d29fc96500867162447e45fab8e39cd8", + "size": 20818 }, { "url": "https://modelcontextprotocol.io/specification/2025-06-18/basic", "status": "success", "path": "mcp/specification/2025-06-18/basic.md", - "sha256": "c317d49fcd538eb75c12f1958eb417a9c52e967df11ac388b2bcaacaf9a56ebe", - "size": 5374 + "sha256": "c32d2ceee6e162423c4d0e8cccaa2e4ddd4eb367b36473ee9ad7232da3720fdd", + "size": 5405 }, { "url": "https://modelcontextprotocol.io/specification/2025-06-18/basic/lifecycle", "status": "success", "path": "mcp/specification/2025-06-18/basic/lifecycle.md", - "sha256": "459e02e516e531379c22c28f3e8440a760568225541e97d648ca482141e44191", - "size": 8045 + "sha256": "20f3fe0b90931fbf8bfa46d45547f76f728f164e1e634d4251bd735a39ce5868", + "size": 8541 }, { "url": "https://modelcontextprotocol.io/specification/2025-06-18/basic/transports", "status": "success", "path": "mcp/specification/2025-06-18/basic/transports.md", - "sha256": "32a4e9e784fbd146eb0a5d0b9aea181bd337062d16ef298413eb14e9ab323c90", - "size": 14133 + "sha256": "ef3adb3c16d935f7e7d7e0278c4656e08091f4ad4f00b7afc038f6ec1b695660", + "size": 14257 }, { "url": "https://modelcontextprotocol.io/specification/2025-06-18/basic/utilities/cancellation", @@ -9151,71 +9165,71 @@ "url": "https://modelcontextprotocol.io/specification/2025-06-18/changelog", "status": "success", "path": "mcp/specification/2025-06-18/changelog.md", - "sha256": "ad963d04b93b03515fe90b101a3706d3829306556f30b8433d395ca49751ef6e", - "size": 3304 + "sha256": "aeea71132d5e5318b0b20ab9c3998f01873e8a1da99a3975d9bf4e1cb375354a", + "size": 3614 }, { "url": "https://modelcontextprotocol.io/specification/2025-06-18/client/elicitation", "status": "success", "path": "mcp/specification/2025-06-18/client/elicitation.md", - "sha256": "36c5edbb0821b16a124c6991d6cf920d4cccd952571a6f1d08ea50f4221a7227", - "size": 7884 + "sha256": "8544edc9417f9ef8837cd911317d075be0a607423e550b8ec48a15a80c9bbe21", + "size": 7915 }, { "url": "https://modelcontextprotocol.io/specification/2025-06-18/client/roots", "status": "success", "path": "mcp/specification/2025-06-18/client/roots.md", - "sha256": "4cb24a6291517be2cf326c021425445102d463b633452654c0f49cf461f61fd1", - "size": 4377 + "sha256": "d48be697a9674f152abf2ce6597c6b5ffbdd5f3122e2bf4fa5f2d2b4651761b3", + "size": 4408 }, { "url": "https://modelcontextprotocol.io/specification/2025-06-18/client/sampling", "status": "success", "path": "mcp/specification/2025-06-18/client/sampling.md", - "sha256": "06aa3e9eecf6faaf1a30a2e43e91f25fa430a7ee4b0ee530f8d0c53f254d638d", - "size": 6174 + "sha256": "672f1a45b567cac020fd9cb8e4c433359eb195af8f89ed3875dc95b55f1de5d4", + "size": 6205 }, { "url": "https://modelcontextprotocol.io/specification/2025-06-18", "status": "success", "path": "mcp/specification/2025-06-18.md", - "sha256": "b6e00a728a5e5cafd4cc0c2c14fbb73901d0386d710f8ee604bab9cd914cab5a", - "size": 5331 + "sha256": "d861d5a0bd2151031b299216007204a228e3d64a4965529ddcb7a2257d517659", + "size": 5486 }, { "url": "https://modelcontextprotocol.io/specification/2025-06-18/schema", "status": "success", "path": "mcp/specification/2025-06-18/schema.md", - "sha256": "a3df25b955db1c43a2222731fd69d10b20220933f41fc8f75a97972654ae0091", - "size": 76120 + "sha256": "d165c73b368b1028d1a008527d14ca88ae892237a03787161bdf23d7cd1347d5", + "size": 77174 }, { "url": "https://modelcontextprotocol.io/specification/2025-06-18/server", "status": "success", "path": "mcp/specification/2025-06-18/server.md", - "sha256": "d151286780a838ae72c24993b04e278454996badfe2ee88fff5a61bcf4e8696a", - "size": 1378 + "sha256": "d83eada9bc63514342b226fc0a3c938ffe976c036d71cedf0d79bf645e8e5207", + "size": 1471 }, { "url": "https://modelcontextprotocol.io/specification/2025-06-18/server/prompts", "status": "success", "path": "mcp/specification/2025-06-18/server/prompts.md", - "sha256": "c48133bcaa0a6cc418f96b87eb56cadcecf445dcb7bd0b7cee902d606204f08c", - "size": 6971 + "sha256": "8102bbdb999bfdc81d80618fed83631327479ab19bf3672bf1a3591c8a69cff0", + "size": 7095 }, { "url": "https://modelcontextprotocol.io/specification/2025-06-18/server/resources", "status": "success", "path": "mcp/specification/2025-06-18/server/resources.md", - "sha256": "cf99b7c7ce48acf94272b2a7ee933bf9e2926d817b4de5c386bd7e22a34d26d9", - "size": 10010 + "sha256": "189ac8e246bbfd3a1d7395f537cf8af0069752fe9022bd260bb3244828c9b85b", + "size": 10103 }, { "url": "https://modelcontextprotocol.io/specification/2025-06-18/server/tools", "status": "success", "path": "mcp/specification/2025-06-18/server/tools.md", - "sha256": "6904130767eb6ed17140836c7cb72f3250483bba6cec2d6579d9c6aafb968894", - "size": 10856 + "sha256": "37aa02e889c6b2120c2b50785590c7fb9dff5ddba48b57ab9da1a54f8056eafb", + "size": 11073 }, { "url": "https://modelcontextprotocol.io/specification/2025-06-18/server/utilities/completion", @@ -9242,43 +9256,43 @@ "url": "https://modelcontextprotocol.io/specification/2025-11-25/architecture", "status": "success", "path": "mcp/specification/2025-11-25/architecture.md", - "sha256": "46a3b62f24ba7d7e652038ab11ebc0666a31d9481d39b038a90241212d464702", - "size": 5915 + "sha256": "1acbcd7d357f2e02330767e6e28704903c813d4beb7494afd979b0bdd7774fcc", + "size": 5977 }, { "url": "https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization", "status": "success", "path": "mcp/specification/2025-11-25/basic/authorization.md", - "sha256": "6aae08980774d941321407be336a3adef003910b5a8dabd13663ed62baa4a34d", - "size": 41479 + "sha256": "deb62f8dd69b406de6138d0bcf6604c4653d94d249b69ea31be253241017bad4", + "size": 41634 }, { "url": "https://modelcontextprotocol.io/specification/2025-11-25/basic", "status": "success", "path": "mcp/specification/2025-11-25/basic.md", - "sha256": "fb96e5c9f54f27a778b7e96ffc08c17bee7b88961c860bb4e913758bb5b768c7", - "size": 11172 + "sha256": "9e79c701a130b10c51d2495b7fa4477d8392a7705caac5b96e7dc7cf056f6ed8", + "size": 11327 }, { "url": "https://modelcontextprotocol.io/specification/2025-11-25/basic/lifecycle", "status": "success", "path": "mcp/specification/2025-11-25/basic/lifecycle.md", - "sha256": "cddeb468302ab0b83609701a9c029cc47f4cca259265e309d65f216d6eaf135e", - "size": 9231 + "sha256": "06926121e173ff0b355b2d70e4e6df6d18b72bc7b8e5c1ac686fccb92b0053fd", + "size": 9789 }, { "url": "https://modelcontextprotocol.io/specification/2025-11-25/basic/transports", "status": "success", "path": "mcp/specification/2025-11-25/basic/transports.md", - "sha256": "09fcfd0691155fc93a7b99616d8e1338740e55a2e767388d03a5ac6bed1db582", - "size": 16166 + "sha256": "ae9bb7be00604a66a8f70f439ef028eced174bce4a5cb0f6fc11bbeaa625afcc", + "size": 16321 }, { "url": "https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/cancellation", "status": "success", "path": "mcp/specification/2025-11-25/basic/utilities/cancellation.md", - "sha256": "9c800a72e06cbe8a1cb69ec104f1599b9b55fb22909ca36b373263897f465369", - "size": 2927 + "sha256": "c8418d3799f8dbbae1a401f63e3f56b869ac8075a417bb98d8faf738874defbd", + "size": 2958 }, { "url": "https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/ping", @@ -9291,85 +9305,85 @@ "url": "https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/progress", "status": "success", "path": "mcp/specification/2025-11-25/basic/utilities/progress.md", - "sha256": "8d12cdf86daf44321fa57cac2f826f7344c1068cc1e127849a2d72ac2f4d42cf", - "size": 3306 + "sha256": "f907fb0a84c24a2a80d535b12d7629566698b27a930fffa0d6c07382199dc2c8", + "size": 3337 }, { "url": "https://modelcontextprotocol.io/specification/2025-11-25/basic/utilities/tasks", "status": "success", "path": "mcp/specification/2025-11-25/basic/utilities/tasks.md", - "sha256": "61ad9f781182efa701b0c00ef16ae1a1a36a13ddb479e08bda29c247c2dc8d08", - "size": 36088 + "sha256": "116980e0efc950168ca48a55be9a1c0eaf554ecfce2eb37e25295c834bbf45c2", + "size": 36429 }, { "url": "https://modelcontextprotocol.io/specification/2025-11-25/changelog", "status": "success", "path": "mcp/specification/2025-11-25/changelog.md", - "sha256": "b1c4f72f5bf8155a2fbdedc8a83e9ceb388af2a97de8bcba43b2bc7790848cb9", - "size": 5410 + "sha256": "e5d10d2f65dcbfe97e1f8b801818adc5d55450da99d1011a6db104c9c15edca9", + "size": 5503 }, { "url": "https://modelcontextprotocol.io/specification/2025-11-25/client/elicitation", "status": "success", "path": "mcp/specification/2025-11-25/client/elicitation.md", - "sha256": "8b794d3b9126c86f38f687daf81a76733fde9968aeae639c36e12f45c978bb42", - "size": 30749 + "sha256": "7b804769cced8c260b4729e1298553d2a268b5c6a783431b1d5be1a5f81acb56", + "size": 31090 }, { "url": "https://modelcontextprotocol.io/specification/2025-11-25/client/roots", "status": "success", "path": "mcp/specification/2025-11-25/client/roots.md", - "sha256": "bbdaadc7ef152a86d4adee76d99603ca27da125e8e607f26169aff021b3e7fcd", - "size": 4377 + "sha256": "8379e00c28d1a3e5cf38ecc7c5e436c84e4ff0489233f11e172fadfd88b81159", + "size": 4408 }, { "url": "https://modelcontextprotocol.io/specification/2025-11-25/client/sampling", "status": "success", "path": "mcp/specification/2025-11-25/client/sampling.md", - "sha256": "65e5a04d1cd861d0c291774f04d0ece99debf59129a651d668f02d7eb92e59cb", - "size": 17917 + "sha256": "d6a02dd3090bde16c4ca07cc102a0a2e3f811df2850cc9fce969401f8b9b7d62", + "size": 17948 }, { "url": "https://modelcontextprotocol.io/specification/2025-11-25", "status": "success", "path": "mcp/specification/2025-11-25.md", - "sha256": "1dc52e78d1fb4c81ca64857a343d4cc5c3384d2167191ec748a6f660b0774dc8", - "size": 5331 + "sha256": "a04f14729f553e24e355faf52d49115c01adcd00e90ae2b95172abe6af736b75", + "size": 5486 }, { "url": "https://modelcontextprotocol.io/specification/2025-11-25/schema", "status": "success", "path": "mcp/specification/2025-11-25/schema.md", - "sha256": "5ab7cfcd5ea05c7491637e76122362cc4416201ea0c81482f6747f59343f1691", - "size": 130800 + "sha256": "7403ebdd1de59453da486181c39af850e656136073c3792129ff77c9687ba939", + "size": 132226 }, { "url": "https://modelcontextprotocol.io/specification/2025-11-25/server", "status": "success", "path": "mcp/specification/2025-11-25/server.md", - "sha256": "49c73a9e800c1d2e76e39d4c04b73a2312f1184debabb5ab7dc1ad4d31be144c", - "size": 1378 + "sha256": "4277df105574530c4b47326ac7f7b3c1947265f02baf205640929ff6ab4c9621", + "size": 1471 }, { "url": "https://modelcontextprotocol.io/specification/2025-11-25/server/prompts", "status": "success", "path": "mcp/specification/2025-11-25/server/prompts.md", - "sha256": "a08e08cf3b96cc1ce55a4c4aca4c3e1d903e90e90f8e0b4481e3436b3aeb4932", - "size": 7219 + "sha256": "37f406c977dad37dbc6190c6b6b94d0c99bfe5c9c264d8315d9f09da5b5eba5d", + "size": 7343 }, { "url": "https://modelcontextprotocol.io/specification/2025-11-25/server/resources", "status": "success", "path": "mcp/specification/2025-11-25/server/resources.md", - "sha256": "19491a05a161203e40c812803c6fed185716cd76198bb27ab4e3eaa4f53926a1", - "size": 10248 + "sha256": "51cddd451da7e6040d74da3fb477a81b7148dd0221cd928290e0aa0007143d53", + "size": 10310 }, { "url": "https://modelcontextprotocol.io/specification/2025-11-25/server/tools", "status": "success", "path": "mcp/specification/2025-11-25/server/tools.md", - "sha256": "c8d5f0a1f10b042a350a68ae7f143dd9ef248bdd33b91dcfd8a682808192132f", - "size": 14069 + "sha256": "eaa5f81eb03941e72bbc28eedd5771a51993cf4457d685bbd9bb53b94ea6166c", + "size": 14410 }, { "url": "https://modelcontextprotocol.io/specification/2025-11-25/server/utilities/completion", @@ -9396,64 +9410,64 @@ "url": "https://modelcontextprotocol.io/specification/2026-07-28/architecture", "status": "success", "path": "mcp/specification/2026-07-28/architecture.md", - "sha256": "4b5bc3e144f620eab01ba731e60385bcf523eaff77994d70f8fc38bc97b6a476", - "size": 6363 + "sha256": "dcfd70abfa4b2c5985198d8c120ddb155c9bee304746a5d2344997f907ca1f04", + "size": 6487 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization/authorization-server-discovery", "status": "success", "path": "mcp/specification/2026-07-28/basic/authorization/authorization-server-discovery.md", - "sha256": "75c7b8c9756fec279798693a218ad85757b751ec10358b942dc9a628ef502950", - "size": 8124 + "sha256": "f36d3290ba947feeb44a2afe264ec88f50925e47315f001e04a6a6302362f5b7", + "size": 8186 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization/client-registration", "status": "success", "path": "mcp/specification/2026-07-28/basic/authorization/client-registration.md", - "sha256": "49e86785892503b781478ce62e40286afc52e694a7cd3b8635c6eebec9e31d83", - "size": 10192 + "sha256": "b08bcf79c6d88f274dd4c40260fd4cf9b7edbbb1f275161c1fed562b06e9b048", + "size": 10254 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization", "status": "success", "path": "mcp/specification/2026-07-28/basic/authorization.md", - "sha256": "4f4a865bb385917f7874cfc44e4bbb530b5dfc95b1c79930ddbe6ab86414ebf2", - "size": 25169 + "sha256": "59bc8d07ef88538e4d4e539ca1c846c3ae3162e7911dc29453495cddeac18444", + "size": 25510 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/authorization/security-considerations", "status": "success", "path": "mcp/specification/2026-07-28/basic/authorization/security-considerations.md", - "sha256": "d237dc1bd01970a8756e288c8fc8e1b6649beb003d1688d14922e4d3de332753", - "size": 10073 + "sha256": "aaaf857cba5342ea6d6468b5aadb29077e8d38775318d6b2d1059f8d727e4eba", + "size": 10290 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/basic", "status": "success", "path": "mcp/specification/2026-07-28/basic.md", - "sha256": "189c46fea04484823de45c49ccf7f223127f217acca632b19c4232b8a8ffbdfc", - "size": 24006 + "sha256": "90b7d93acd7e8b79f8480130ced333908fe412948ec74b16d3ff932e631e4886", + "size": 24750 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/patterns/cancellation", "status": "success", "path": "mcp/specification/2026-07-28/basic/patterns/cancellation.md", - "sha256": "99951fee076fabccf90d6187808d35a351b55d669b243eb13caccf6ce72e216b", - "size": 4596 + "sha256": "1bffe7f8f1b17362e97f3f44b98e1781ca7639a6ab6a4547f8ac874760cc5f92", + "size": 4658 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/patterns", "status": "success", "path": "mcp/specification/2026-07-28/basic/patterns.md", - "sha256": "d9d592acf5282e79b44413b307b8b0547d2516f1586a8c40eaa7701d473b0d1f", - "size": 3141 + "sha256": "81b20b6cedb3a030353a00d7003645b0d9b9bb4d03aa2d050c19a40db9d1962f", + "size": 3358 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/patterns/mrtr", "status": "success", "path": "mcp/specification/2026-07-28/basic/patterns/mrtr.md", - "sha256": "5f8487eeeaa13c2d5baddb0aa3cc0b7bdddfe2ffe52a3209483dde821a08589d", - "size": 13315 + "sha256": "30abb42d799d1446bf632228a64dc69edaa2088f8981ea3df6e84bad69d22960", + "size": 13873 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/patterns/progress", @@ -9466,211 +9480,211 @@ "url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/patterns/subscriptions", "status": "success", "path": "mcp/specification/2026-07-28/basic/patterns/subscriptions.md", - "sha256": "fba6a2ed16bbd8aefb190dc1205935091539480abf6fcbe797d9f135c8f4fde2", - "size": 6100 + "sha256": "a3e81e777bbef20d1885c274095557059125c685697abde14bfad6db570fa1e7", + "size": 6131 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/transports", "status": "success", "path": "mcp/specification/2026-07-28/basic/transports.md", - "sha256": "6d658ec0c2311dd17841d8fedcdec5e26fa9416797486bce9eee1745f1191ab3", - "size": 4222 + "sha256": "29c58292b0c32b680cb5cd9941948568666c5cabe82f9201d88401e7fcb857f9", + "size": 4532 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/transports/stdio", "status": "success", "path": "mcp/specification/2026-07-28/basic/transports/stdio.md", - "sha256": "2f713f746f09ab7c70ad754f5e0261a0240805d645688f645141f979a71a95e7", - "size": 7345 + "sha256": "5bcdc2e5ed677a3015d002685de79e436327f6d6a77577dcb20720b22b96e5f2", + "size": 7655 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/transports/streamable-http", "status": "success", "path": "mcp/specification/2026-07-28/basic/transports/streamable-http.md", - "sha256": "a631f93cbf4d8240c33cc66f798220080f70e30f3b58ab927b89d3d0d00f7b82", - "size": 30412 + "sha256": "94dfcaf09285c9d8398c9ee0277b440f6d3051b182266c46c9b4e55864665288", + "size": 31063 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/basic/versioning", "status": "success", "path": "mcp/specification/2026-07-28/basic/versioning.md", - "sha256": "23bb5bd1c6dad763b7d9b069345c6b9b604b1bfaa7c4dc50f0df6aacf1ad58cd", - "size": 8391 + "sha256": "41fff387e09db6ce368347f96cd0b965fd43ceaa1d5f148c69ce52b5989d83b7", + "size": 8763 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/changelog", "status": "success", "path": "mcp/specification/2026-07-28/changelog.md", - "sha256": "72ddf6d246fb183da12352e1bb0bfc71de62f7705e2ea75bc9297b73146f21a3", - "size": 11888 + "sha256": "280533e289ca1a638973b06f6f4d8a8aff735a3c3fe594ffb32696d63de530f6", + "size": 12229 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/client/elicitation", "status": "success", "path": "mcp/specification/2026-07-28/client/elicitation.md", - "sha256": "0d0d32874b7d15610446e02c5804e9ccf15ceaa8d952c1c563ad2ff78f420780", - "size": 28335 + "sha256": "240eb8a4cd68812991e45e7da446f900602906e6e43c6ca24fa3233238d4e932", + "size": 28738 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/client/roots", "status": "success", "path": "mcp/specification/2026-07-28/client/roots.md", - "sha256": "2fe381ef18f244029c076f3d244dd92fa968510656f213d5b77deb8fb89639df", - "size": 4681 + "sha256": "4b104d35fe3a81273eccdc829d2d4089779994355a791dc8bb68cbceb5bda706", + "size": 4774 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/client/sampling", "status": "success", "path": "mcp/specification/2026-07-28/client/sampling.md", - "sha256": "bca7c76df3b387754dcece7b8972e6d176ca3eaab7563500e63a6ae9ef172317", - "size": 22187 + "sha256": "c1972a1461eeec42cf6108e773018b2895c5f3aa2de1bdfcda2efbcaefbe8d6c", + "size": 22342 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/deprecated", "status": "success", "path": "mcp/specification/2026-07-28/deprecated.md", - "sha256": "b9389d84ea8eafebc5d144e44f030395dda35fd62e1f6934523fe20fcf286e73", - "size": 3529 + "sha256": "c12c3cb7d6b8a30cd4df8ea8162a819df071a42745da6d20165e8fdf94b28baa", + "size": 3839 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28", "status": "success", "path": "mcp/specification/2026-07-28.md", - "sha256": "30f5af9c3a1252979acdab385a2b56db8a90643700e64c974b55b100fb1bbcb4", - "size": 5618 + "sha256": "4e994ee3fc5eda69b48312bbc948e42efd5b3f3d61fea65854b4f2df9635581f", + "size": 5897 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/schema", "status": "success", "path": "mcp/specification/2026-07-28/schema.md", - "sha256": "6daa817b8e9fec97ff86197dca32dbca8fdf4ec13df01aa9d1251630e2360c11", - "size": 214138 + "sha256": "9ce5f303af42dd168b117c0faef2b7b832c69dc309780ac59a288543e6e19ceb", + "size": 214262 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/server/discover", "status": "success", "path": "mcp/specification/2026-07-28/server/discover.md", - "sha256": "0015e9776cc8b75948b4630d143dafa2f80801c258b8ad3d28788675729d7c7d", - "size": 3807 + "sha256": "4fbffd86a2045f45086bab84adeebb2706d5ee48af4ff644c90facbff4bde5a1", + "size": 3962 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/server", "status": "success", "path": "mcp/specification/2026-07-28/server.md", - "sha256": "b029c17377f5aa8e05c96fd033f11e390f6cbf8e402fde640dff581e81ebf80a", - "size": 1378 + "sha256": "289f6e845d86f26bc77952eb2ffb6ccf9208f2a6146027bafabb3ef4f2c8fea8", + "size": 1471 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/server/prompts", "status": "success", "path": "mcp/specification/2026-07-28/server/prompts.md", - "sha256": "ec0186ec6b8310b5c375b2dfd5560813352ea18536e0ad67d80ceb2036c9d8d2", - "size": 9916 + "sha256": "f815ac6387f4e0f606db471d116007d000d3e52045268189eab1047053d3f812", + "size": 10257 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/server/resources", "status": "success", "path": "mcp/specification/2026-07-28/server/resources.md", - "sha256": "3dc57db5a1ae4831ddb120a1f46fa19ae4fc6a8ef43605fee8219e3b56d3a787", - "size": 13432 + "sha256": "07da86abf4d8818c526b125b905a86fe6817e0dfbbce0cf22e025f5a96f8c947", + "size": 13773 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/server/tools", "status": "success", "path": "mcp/specification/2026-07-28/server/tools.md", - "sha256": "67b61d5837f6980de42e23cda4ee24421b51102d6c04a65e33d8d917c0dd6673", - "size": 24317 + "sha256": "c7ede7971a6c1a809c6226cc89dddd2d2bccd4f52e68579261def371f7316ee1", + "size": 24875 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/server/utilities/caching", "status": "success", "path": "mcp/specification/2026-07-28/server/utilities/caching.md", - "sha256": "8fb4b9e02f93fb51c74a498c0c1ba166c83475e2e8405c42dfbd3eecb5733ce7", - "size": 8452 + "sha256": "2a6a066857821b3a51057f30e228bf64eda24cfb335f04be0e9c6654f6e328dd", + "size": 8545 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/server/utilities/completion", "status": "success", "path": "mcp/specification/2026-07-28/server/utilities/completion.md", - "sha256": "537769d43ff663ba5ddf1d597833905fae5b0bb23200216e2d94d6a3054ade2e", - "size": 5350 + "sha256": "d02a84031013a2147ee430e8ae9fd49ec65f18843827dcf7d50b172bdfae341f", + "size": 5381 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/server/utilities/logging", "status": "success", "path": "mcp/specification/2026-07-28/server/utilities/logging.md", - "sha256": "950b617a73af52e9840683722ce7208a6c14a66752dc1c426ec728a200b408fc", - "size": 4427 + "sha256": "8bd14924ec0bae7cacad6c1ecd783c03fff6018dbcd38ac2230de8c3eb91f8c7", + "size": 4520 }, { "url": "https://modelcontextprotocol.io/specification/2026-07-28/server/utilities/pagination", "status": "success", "path": "mcp/specification/2026-07-28/server/utilities/pagination.md", - "sha256": "579b4fab27cfaae836b2fff0343cf237ba5763c56971bb624a9d27f1a860dd05", - "size": 3166 + "sha256": "ac5c57603b3a56dd12196527ba1d3da78eba2db99a9c6f8326c8a24eaefbedd9", + "size": 3197 }, { "url": "https://modelcontextprotocol.io/specification/draft/architecture", "status": "success", "path": "mcp/specification/draft/architecture.md", - "sha256": "b1518314b2ff55990fc3c88d86f0489dd49361dbb766bca11fa5e4813e05735e", - "size": 6343 + "sha256": "31fcce4bc585c01c1bfe1fe0a4ddcfddfbf8e9c9ef90fec739f1f75fca22108a", + "size": 6467 }, { "url": "https://modelcontextprotocol.io/specification/draft/basic/authorization/authorization-server-discovery", "status": "success", "path": "mcp/specification/draft/basic/authorization/authorization-server-discovery.md", - "sha256": "9507a3852adfcb6c961f5634010f4f1a483b35627caa2399482a77e8114ac491", - "size": 8114 + "sha256": "11f7c92c04c0fb0c515905ce718e4ad1064ba719e61ba73a1d2f0e0af9bbdcef", + "size": 8176 }, { "url": "https://modelcontextprotocol.io/specification/draft/basic/authorization/client-registration", "status": "success", "path": "mcp/specification/draft/basic/authorization/client-registration.md", - "sha256": "8941eda90561a206b8f8df2671126ed9d5f69f908c4d3e6076d0e5d59e74ac4f", - "size": 10178 + "sha256": "4bb40584e9666c794abe0412d79aa65f153db62374ab4527de9d99d9af6eab75", + "size": 10240 }, { "url": "https://modelcontextprotocol.io/specification/draft/basic/authorization", "status": "success", "path": "mcp/specification/draft/basic/authorization.md", - "sha256": "4047968af3a9eb7f41ba6c30a6e3c4ced7872fcf90c0cf7e17f24e63cc58ddf7", - "size": 25114 + "sha256": "7de8c56e5b44cc34659e0d8c1a9bf0ca915d8dbaa649af1d47e0260132ff08f5", + "size": 25455 }, { "url": "https://modelcontextprotocol.io/specification/draft/basic/authorization/security-considerations", "status": "success", "path": "mcp/specification/draft/basic/authorization/security-considerations.md", - "sha256": "07bed5cbcbb752d0e91785a2952d8466ac57b1bbef6b102f6da6623f4caaf5c2", - "size": 10038 + "sha256": "9b6e8a5eb56ec847d974bd920f917fe9e0a81468bd4c435ce9400f30ab85b515", + "size": 10255 }, { "url": "https://modelcontextprotocol.io/specification/draft/basic", "status": "success", "path": "mcp/specification/draft/basic.md", - "sha256": "cee6b5a5cd10868ca48bd2e2fb2ee7b453a6c3a64005837f41873d8e06562123", - "size": 23888 + "sha256": "bdaceb7c8f29246f0b691cdd3bdfe5e068e306df54c8b9a20de96ae1dd6c5ef0", + "size": 24632 }, { "url": "https://modelcontextprotocol.io/specification/draft/basic/patterns/cancellation", "status": "success", "path": "mcp/specification/draft/basic/patterns/cancellation.md", - "sha256": "983311380088c6e75327773628e57cc462b073546aec0e4b07d71e93b4f190ad", - "size": 4586 + "sha256": "6f3022b53fd8ff7766b91a4545e6bce00d03f3a20559fad029e3e6bd12f1a814", + "size": 4648 }, { "url": "https://modelcontextprotocol.io/specification/draft/basic/patterns", "status": "success", "path": "mcp/specification/draft/basic/patterns.md", - "sha256": "0ba160bbed2754318116c2b3cf55ee9a20df412718cd8ed1975396d2c910e985", - "size": 3106 + "sha256": "66ba89021b592d3a7dd7b35eefdb3e0970d4947c12fceb51bc5f70d998ee8d81", + "size": 3323 }, { "url": "https://modelcontextprotocol.io/specification/draft/basic/patterns/mrtr", "status": "success", "path": "mcp/specification/draft/basic/patterns/mrtr.md", - "sha256": "582ddbb875064453eba04763af6d7ea8ff780be972c0b35f875c7d3efeb718b9", - "size": 13225 + "sha256": "1280dcbc71169410fe5c3fe144b15168253a3f8f5d46d01d744f2f83b29f0e4e", + "size": 13783 }, { "url": "https://modelcontextprotocol.io/specification/draft/basic/patterns/progress", @@ -9683,36 +9697,36 @@ "url": "https://modelcontextprotocol.io/specification/draft/basic/patterns/subscriptions", "status": "success", "path": "mcp/specification/draft/basic/patterns/subscriptions.md", - "sha256": "cabd12a5927c8043a515536feeb9ddc847a9a6694d781c138f4c8c56e5b63c1f", - "size": 6095 + "sha256": "739a6aa2445959d574dfec88cd0c6750b7ef5c6be583c53ef7d4396e3e611d15", + "size": 6126 }, { "url": "https://modelcontextprotocol.io/specification/draft/basic/transports", "status": "success", "path": "mcp/specification/draft/basic/transports.md", - "sha256": "25ea014ffcc5ac1b12ba379887203c3a5158c8a82e2d372946d7dc9916b11648", - "size": 4172 + "sha256": "4aec56ed8c8d4034c600f13bf536789965477e646065cbb518959fc8959d8bda", + "size": 4482 }, { "url": "https://modelcontextprotocol.io/specification/draft/basic/transports/stdio", "status": "success", "path": "mcp/specification/draft/basic/transports/stdio.md", - "sha256": "569fc850042a84b883aeef062fd815af7fd577279393e87b95588179c81bffd2", - "size": 7295 + "sha256": "24148dea0f34689ce00e22815de8e5351272afbfe4a0707be449630db9203140", + "size": 7605 }, { "url": "https://modelcontextprotocol.io/specification/draft/basic/transports/streamable-http", "status": "success", "path": "mcp/specification/draft/basic/transports/streamable-http.md", - "sha256": "95801c5f05a6ac6ddc9dd6319d7125c2f5efdeec98ea926b008b09a1f750f994", - "size": 30398 + "sha256": "eba6c56f9dcea1bb36d8341e1b91d06cf58efa2ca0c2e902028ec23d890c4dea", + "size": 31049 }, { "url": "https://modelcontextprotocol.io/specification/draft/basic/versioning", "status": "success", "path": "mcp/specification/draft/basic/versioning.md", - "sha256": "ff7757cebaea2a8df235ff4605611fdfe46fea19a5ca3ba012948d1781690224", - "size": 8346 + "sha256": "746301600809de1a36136530ec5f11cf1a0da3bd811a5f8d22c8ae2f15e7ab44", + "size": 8718 }, { "url": "https://modelcontextprotocol.io/specification/draft/changelog", @@ -9725,106 +9739,106 @@ "url": "https://modelcontextprotocol.io/specification/draft/client/elicitation", "status": "success", "path": "mcp/specification/draft/client/elicitation.md", - "sha256": "78c93c94c4e6cf5d869c8c91783888a40ab850030d83818fa047424d5fcd061a", - "size": 28270 + "sha256": "ac3fcd7591a1c22cb1cf5987c4c4b32398099943d0a6d2c14fcaac8b474b1362", + "size": 28673 }, { "url": "https://modelcontextprotocol.io/specification/draft/client/roots", "status": "success", "path": "mcp/specification/draft/client/roots.md", - "sha256": "2b540c03e7adf527733b5b54b1a26480f5d1ede81691d6c9398e644592b8d6f7", - "size": 4671 + "sha256": "372d5dc3b5f574c89ebea5e42ed41de5cde932a8e082ca252901ecf579816684", + "size": 4764 }, { "url": "https://modelcontextprotocol.io/specification/draft/client/sampling", "status": "success", "path": "mcp/specification/draft/client/sampling.md", - "sha256": "bce8b040cdb05eb84362c29b5295effacc000d65568b4ab0c374ceb5156792d8", - "size": 22172 + "sha256": "b5de851f4e23062c465c994db088a7172e5529d5b729b86410853b0ed9330c70", + "size": 22327 }, { "url": "https://modelcontextprotocol.io/specification/draft/deprecated", "status": "success", "path": "mcp/specification/draft/deprecated.md", - "sha256": "d0ed4f289445c754f26ce311c4eea3581f725a2acee9cc9aaf2081a54f134a27", - "size": 3494 + "sha256": "e282f124915f88c1aaf1d4fb9eaba45e42df9d925171b209018a5a26e16daa4f", + "size": 3804 }, { "url": "https://modelcontextprotocol.io/specification/draft", "status": "success", "path": "mcp/specification/draft.md", - "sha256": "6b1c9d64952b051452df9d3982db6edf45835456380753c751c754c612a14506", - "size": 5593 + "sha256": "f7aa332cf326b07fcc7868044a3ab4d576b2061eb79fd7ad66ac0f7f42f2a102", + "size": 5872 }, { "url": "https://modelcontextprotocol.io/specification/draft/schema", "status": "success", "path": "mcp/specification/draft/schema.md", - "sha256": "e8e35c70148d7b4841456ef94b8f78e2d462a4769af1b795c456ed4d7b7d9f5f", - "size": 214118 + "sha256": "16a4b03dd8c2a7f4c58937a9797a8e143422052acb494697b5353a275629e1a8", + "size": 214242 }, { "url": "https://modelcontextprotocol.io/specification/draft/server/discover", "status": "success", "path": "mcp/specification/draft/server/discover.md", - "sha256": "7ddda7048d7d3e5647c15545118b738094ecbe72ff75923e033727a0ca9a9304", - "size": 3782 + "sha256": "840d8c60a3f14038205231e47cd1817ca80887aeb8001ea3c7eac6ed698f60b7", + "size": 3937 }, { "url": "https://modelcontextprotocol.io/specification/draft/server", "status": "success", "path": "mcp/specification/draft/server.md", - "sha256": "1c3ee7a944bad1d65a52efadc8bcf7f27c1d7a5094e110999eeebbc4dea26724", - "size": 1363 + "sha256": "115c34a65f839af05f3faa1c632c0b59dab28badb031f46c53d6b3690a67da96", + "size": 1456 }, { "url": "https://modelcontextprotocol.io/specification/draft/server/prompts", "status": "success", "path": "mcp/specification/draft/server/prompts.md", - "sha256": "c8559a4c262f744433a29d9b4718fb0d0b5567c7d3f3729f90dd7eb502db845d", - "size": 9856 + "sha256": "e170e1ff2447b5de0b63fdbeaa90279f475ac25d3fee61eb4b05161a82a49adb", + "size": 10197 }, { "url": "https://modelcontextprotocol.io/specification/draft/server/resources", "status": "success", "path": "mcp/specification/draft/server/resources.md", - "sha256": "ba697a18929bc59bc081e734c324834d53d2f6520ed811eb4117c4eb9eb2a065", - "size": 13372 + "sha256": "416d2a059e77c90059fec1424e9a1c5a2053f249625463daaf7d8516c18bf74a", + "size": 13713 }, { "url": "https://modelcontextprotocol.io/specification/draft/server/tools", "status": "success", "path": "mcp/specification/draft/server/tools.md", - "sha256": "d4e3f436d5d49e3bf19b138342679c239e5a0cbaf5b1462c1991355c524e85c8", - "size": 24227 + "sha256": "4c4dedbbd180d5c88c4bb4be1daad0b4e62350f9604bbc0499b7677e5193d624", + "size": 24785 }, { "url": "https://modelcontextprotocol.io/specification/draft/server/utilities/caching", "status": "success", "path": "mcp/specification/draft/server/utilities/caching.md", - "sha256": "f509ab16859720127f0ea02f5de3d9635c5ae9fc412a998476497d2988ca77f8", - "size": 8437 + "sha256": "5480acea3c573278a00a68c53cc603652830c8208a2830a9894e8bb65c5ec3a7", + "size": 8530 }, { "url": "https://modelcontextprotocol.io/specification/draft/server/utilities/completion", "status": "success", "path": "mcp/specification/draft/server/utilities/completion.md", - "sha256": "792ee42254bb4689c4ae43639aa026aef1695519891166143fbbb4618942bcfc", - "size": 5345 + "sha256": "d8a4d84d6e0c388f35388d05eb44174a4ee4ca1132328c8b72d7b962f2d8b822", + "size": 5376 }, { "url": "https://modelcontextprotocol.io/specification/draft/server/utilities/logging", "status": "success", "path": "mcp/specification/draft/server/utilities/logging.md", - "sha256": "0f3e80297b6eec7ef948cc32de38a293297c1d5efc96c60994dc6aad39627603", - "size": 4417 + "sha256": "23c5cbda661c7671a0af67b25d56a9bd2a25b5d2daaac0850905ea401944a975", + "size": 4510 }, { "url": "https://modelcontextprotocol.io/specification/draft/server/utilities/pagination", "status": "success", "path": "mcp/specification/draft/server/utilities/pagination.md", - "sha256": "8186502c116b5745a7bb28df308543610df9ad7aeabec0cf6b2185163174b445", - "size": 3161 + "sha256": "bbaac619579fac49905cbaeefc4bd3c1d2fac9d7cb7cae6fd34b664465482f1b", + "size": 3192 }, { "url": "https://support.claude.com/en/articles/7996845-what-are-some-things-i-can-use-claude-for", @@ -9907,8 +9921,8 @@ "url": "https://support.claude.com/en/articles/8114491-get-started-with-claude", "status": "success", "path": "support/8114491-get-started-with-claude.md", - "sha256": "f9c159191ebe81212016baa27989e7cfa52831742a4a175fee768a6777a90c46", - "size": 5209 + "sha256": "68b34a4fac216a13a30cf87570a78f7446b9540207deef38941cbfd9a0f7171b", + "size": 5203 }, { "url": "https://support.claude.com/en/articles/8114494-how-up-to-date-is-claude-s-training-data", @@ -9984,8 +9998,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": "ea70297d57d8317b9ee57fd1eb7debda40d853b381165087811c43dd0e227b0b", - "size": 5877 + "sha256": "7d61363ff130b388102b821fd83d230cac7b641ee2046fe958d3145cefb90a1e", + "size": 5879 }, { "url": "https://support.claude.com/en/articles/8241126-upload-files-to-claude", @@ -10054,8 +10068,8 @@ "url": "https://support.claude.com/en/articles/8325618-paid-plan-billing-faqs", "status": "success", "path": "support/8325618-paid-plan-billing-faqs.md", - "sha256": "e3d9f034c003c464a26b072a95e9349b9732f50b043a7d50d9cc4f3e6424ee74", - "size": 4951 + "sha256": "4f0fe309adef03433cb60b47567a1017eb8074939a0652a133ceb65d7f99aef2", + "size": 4959 }, { "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", @@ -10117,8 +10131,8 @@ "url": "https://support.claude.com/en/articles/8887527-customizing-your-appearance-settings", "status": "success", "path": "support/8887527-customizing-your-appearance-settings.md", - "sha256": "29626173e379d0b13276f7e55c7c9aa2fa15f09754589e547e53acbad9ee29a5", - "size": 1874 + "sha256": "12172bd588c39bea73a1378638eee3b6bccb576d3c487c1b171e1fbb7f71d01d", + "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", @@ -10292,8 +10306,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": "1c3a35accd893e02d3f79c6377a090c21a7f06117b7087856aa1a882f0bc18a1", - "size": 10270 + "sha256": "0a9216fca606f0eb6c42643baefe3c423826e8f339008b2c2a0e3fda259c3fc0", + "size": 10264 }, { "url": "https://support.claude.com/en/articles/9301722-updates-to-our-acceptable-use-policy-now-usage-policy-consumer-terms-of-service-and-privacy-policy", @@ -10334,8 +10348,8 @@ "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": "750b6d324104c972cafccea72ace41a72f19538182c2571b0c8744342eca8f60", - "size": 9203 + "sha256": "231cf1f742306fcdfa57eb67098e7c3db2f23ff316b72f9683548adb4f2254bf", + "size": 9205 }, { "url": "https://support.claude.com/en/articles/9519189-manage-project-visibility-and-sharing", @@ -10586,8 +10600,8 @@ "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": "9387d4c0cd0b26857fd9453272b75e533e320aa73a47f660a32f06b58a60f01f", - "size": 2498 + "sha256": "b8911b7be6f384079145095e7ec9a30e4319525537a282deeb688aa05d5fc87d", + "size": 2492 }, { "url": "https://support.claude.com/en/articles/10366376-how-can-i-delete-my-claude-console-account", @@ -10635,8 +10649,8 @@ "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": "ce09866d232a17772ad343108ee4dcdb1a95e8ad26f855f554a81738887ec69c", - "size": 1040 + "sha256": "899fb13fb5504d49f722755ff5be0be20dd58b64b338f5ebd8356bf98348b396", + "size": 1034 }, { "url": "https://support.claude.com/en/articles/10504853-manage-user-feedback-settings-on-claude-console", @@ -10656,8 +10670,8 @@ "url": "https://support.claude.com/en/articles/10593882-share-and-unshare-chats", "status": "success", "path": "support/10593882-share-and-unshare-chats.md", - "sha256": "c212e79390fff6fe80ecbb28c0a95603078d05cadeb973f567640c48e186530e", - "size": 4010 + "sha256": "7758d8c4efcbdc4b7d7dc66d1fd904ee9c7afefae1a2e08d2d215188e2337a98", + "size": 4020 }, { "url": "https://support.claude.com/en/articles/10684626-enable-and-use-web-search", @@ -10684,8 +10698,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": "55ee597b5aa07a91012724a9645df665b652e55963ccb1d3f71f537df0631f4b", - "size": 8398 + "sha256": "ea6d4d0ee1a6fca5ca3b413582f981c61b7d20e18bffcd1e636ccf1d957b8def", + "size": 8396 }, { "url": "https://support.claude.com/en/articles/11049741-what-is-the-max-plan", @@ -10719,7 +10733,7 @@ "url": "https://support.claude.com/en/articles/11101966-use-voice-mode", "status": "success", "path": "support/11101966-use-voice-mode.md", - "sha256": "26846f2aad66b7777b7fc2591dad922d39ef54a9630e108a0dc5bc2bbc500e0f", + "sha256": "1c73bf8931c2f12937229fb251e2c9b4b6fb6fefe4a64a43dd38109ece596fe1", "size": 10557 }, { @@ -10852,8 +10866,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": "77b258b2bf72bbb71d4388ceaca1512ee2dc3af98a5991b8a29d71163fcfe1b8", - "size": 2748 + "sha256": "f3bcdc489fd92f66f1d3dd59cb07592e3e7e35403a465f96d8e6d5ff8e24d236", + "size": 2756 }, { "url": "https://support.claude.com/en/articles/11732894-who-owns-and-manages-the-data-of-my-claude-for-education-account", @@ -10866,14 +10880,14 @@ "url": "https://support.claude.com/en/articles/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context", "status": "success", "path": "support/11817273-use-claude-s-chat-search-and-memory-to-build-on-previous-context.md", - "sha256": "a6aa7601093b59e88e3aa33c3faa1c44d19cd9985f0736f6052124eb08545281", - "size": 28678 + "sha256": "928f3e0462d55a5253b8ba2ee6016b96d60deafe89ee06b6900abb7a5fcbc124", + "size": 28668 }, { "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": "0466c258adf7b8bd9fde13378c2b470634ef840a67283d4781034f54c1bfe204", + "sha256": "c03b383ad6178cae73b824eddcb599ded08009024fe0712f3d4dcc743b304370", "size": 816 }, { @@ -10908,8 +10922,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": "e5bf8d8969c5b7e01670ac2f4084b0d481535cd865817fb3d46e75f6ed987d5b", - "size": 13995 + "sha256": "29ea1a9f58c9cb4abab300b11396eed4f24d6199a3d8d2ffad369ffc760f8280", + "size": 13991 }, { "url": "https://support.claude.com/en/articles/11932705-automated-security-reviews-in-claude-code", @@ -10943,15 +10957,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": "3c3fdff7168a2bccea552f512235baebf7afd63013e62bd2dacfe7d0631e2c9c", + "sha256": "6e75ecc134ab13d74d7cc289ea81abbbea8f580567ddab6d05c4b17db544c6c6", "size": 9707 }, { "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": "f50ba1d811b461569406178e208bcd3b6708592030f4352d2f442d1d962c4094", - "size": 14853 + "sha256": "2aff3c6f91d861fd0357565c5533ae61c307eb4b78555744bdb71cdd6ef552c3", + "size": 14855 }, { "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", @@ -10964,8 +10978,8 @@ "url": "https://support.claude.com/en/articles/12083917-change-your-team-plan-from-monthly-to-annual-billing", "status": "success", "path": "support/12083917-change-your-team-plan-from-monthly-to-annual-billing.md", - "sha256": "af21d34f3c94dd9e965f744c3f0866a85b3d9d4e8525b53ff8ccb053d800bbe1", - "size": 1394 + "sha256": "2c1313e46885678685b67bc5530208a7b6aacee3a0cf99f1f6f07b059a334c3e", + "size": 1396 }, { "url": "https://support.claude.com/en/articles/12109679-creating-a-new-account-after-deletion", @@ -10978,8 +10992,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": "42848ad13cf8f9cd8ea985bdf1f506380646df45656e350ac9259a9342ab6817", - "size": 17960 + "sha256": "b5e1e57f1b8e9c6e0a9aae196c0a581ecd4dbb2d7a1984b22213fdadb8083550", + "size": 17964 }, { "url": "https://support.claude.com/en/articles/12119250-model-safety-bug-bounty-program", @@ -11006,22 +11020,22 @@ "url": "https://support.claude.com/en/articles/12157520-claude-code-usage-analytics", "status": "success", "path": "support/12157520-claude-code-usage-analytics.md", - "sha256": "865c662b245773ef5373fbd2cb400e8ea56c5c520f055752016452d23b82f0ad", - "size": 6370 + "sha256": "78678d5a3517b200fa599a7e9b0ed0ccd08363085a295b19142ae850515e1845", + "size": 6368 }, { "url": "https://support.claude.com/en/articles/12260368-use-incognito-chats", "status": "success", "path": "support/12260368-use-incognito-chats.md", - "sha256": "4268739d6eac266f6e8accb49dbcfd0a9102c1ceb169e8dae4efe90028abee07", - "size": 4372 + "sha256": "f2a949a73c6b08cb06d98818ffdd7fe9f25f17c50ced1ad5cdb060aa97f79993", + "size": 4374 }, { "url": "https://support.claude.com/en/articles/12293051-use-claude-in-xcode", "status": "success", "path": "support/12293051-use-claude-in-xcode.md", - "sha256": "2efe37d2c89d6c7cc74bb19abb35c7c180a485e346694d668d1c39a757bbc894", - "size": 1907 + "sha256": "bacd49ab245211e42b3210d9b48bfd651ee19a1276bb9ae89270775c2fa7c7d3", + "size": 1905 }, { "url": "https://support.claude.com/en/articles/12304248-manage-api-key-environment-variables-in-claude-code", @@ -11062,15 +11076,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": "7aab0c70254c1d5cf5b15911f77bb2931a70787eeec6e4ba3f05c41448af119e", - "size": 7972 + "sha256": "878bac31eeb47f77b1b723e3c726c7f55345260e9e5b82ff1e9580d8418595f0", + "size": 7978 }, { "url": "https://support.claude.com/en/articles/12466728-troubleshoot-claude-error-messages", "status": "success", "path": "support/12466728-troubleshoot-claude-error-messages.md", - "sha256": "ff29088fd947d722d2d6ba92a25d2a9d8cbf181c5f38a40aa953abba5724128f", - "size": 5143 + "sha256": "b30b73a77f0b46a8c441df2dfbb71b8b69618bea23c24fffbbeb2fdd1f70fd6e", + "size": 5145 }, { "url": "https://support.claude.com/en/articles/12489464-use-enterprise-search", @@ -11090,8 +11104,8 @@ "url": "https://support.claude.com/en/articles/12512180-use-skills-in-claude", "status": "success", "path": "support/12512180-use-skills-in-claude.md", - "sha256": "95bcf8ce2bce4d4ce99b9f86c91f91616e0a7ad7740220bd2b2beda9f10d25a6", - "size": 19146 + "sha256": "39658a0cf8f4cbc10c6af1615422824118bfd4db79a27a96f41411d2edde6039", + "size": 19148 }, { "url": "https://support.claude.com/en/articles/12512198-how-to-create-custom-skills", @@ -11111,8 +11125,8 @@ "url": "https://support.claude.com/en/articles/12592343-enabling-and-using-the-desktop-extension-allowlist", "status": "success", "path": "support/12592343-enabling-and-using-the-desktop-extension-allowlist.md", - "sha256": "136937052ae730a4cb4a26d4ccc814c04adec2338feae9d6b5098e64b4abfcf8", - "size": 5718 + "sha256": "7a2a63e09a430bb2f2e2b676446bca623b354eb351caa4c2cc4255a575f17400", + "size": 5710 }, { "url": "https://support.claude.com/en/articles/12611117-deploy-claude-desktop-for-macos", @@ -11125,8 +11139,8 @@ "url": "https://support.claude.com/en/articles/12618689-use-claude-code-in-the-cloud", "status": "success", "path": "support/12618689-use-claude-code-in-the-cloud.md", - "sha256": "aaa8e9268b8240012a45c2b0c676d6dbe72c7a4a50fdb1bf40faf823702b50a7", - "size": 11062 + "sha256": "486cfcfc41268e6c8ff37093da1e33ca04c99044198133d122fe1bf30f0671dc", + "size": 11060 }, { "url": "https://support.claude.com/en/articles/12622667-enterprise-configuration-for-claude-desktop", @@ -11146,7 +11160,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": "7faa8d0e247676824a0f6930703cd013ac531e4fa544cfd5fdb957f854630a57", + "sha256": "a81a7b83b8270a2f7051697b864009374d8bf24a784d733537dfed29bb7d1c33", "size": 5972 }, { @@ -11181,8 +11195,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": "bc280a3b3d31e987b87bd1981c6acc1e13fce08f2d37922eae10b722ec4aa1e6", - "size": 15095 + "sha256": "dbd1e5956edcaadf7c28c1a4b50d0a9e5f9e59f8f333fd2338bb68829876476c", + "size": 15099 }, { "url": "https://support.claude.com/en/articles/12902405-claude-in-chrome-troubleshooting", @@ -11202,8 +11216,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": "7311c8c83dff437d2e91f419e2a753113556415b656fb7ba8bc11fe6161a50ec", - "size": 9200 + "sha256": "a7e41f5b8891ef283a0d7e0d1ff757198b1214117ffbc797ec12c93ebad739a0", + "size": 9196 }, { "url": "https://support.claude.com/en/articles/12938627-how-to-gift-a-claude-subscription", @@ -11230,8 +11244,8 @@ "url": "https://support.claude.com/en/articles/12997503-team-plan-billing-faqs", "status": "success", "path": "support/12997503-team-plan-billing-faqs.md", - "sha256": "6092d95b37929909349873a8dd6a915eeb8220f114fe8e53fbc862445bc6afa4", - "size": 5413 + "sha256": "70583032ff29c5bcfa2af698a8c44115903d211d761f767f63206a33bd2cde65", + "size": 5415 }, { "url": "https://support.claude.com/en/articles/13015708-access-the-compliance-api", @@ -11279,15 +11293,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": "87de8b8b45df71e11821fa15cd98044ba3c66085ca6b714fd089bdf5f5aa72d6", - "size": 13639 + "sha256": "6490a6cf30a768fde07d68ba1619e7e4f5b3bfca2915dd51a4a21417721e37ca", + "size": 13641 }, { "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": "08ab697e853579f52f33e0815cf07232eb743b485004d696ca38f6e0331281e5", - "size": 22527 + "sha256": "7080a382d087bc34e841042dfd18b644a7224ebb89e329cd62d315e572a274be", + "size": 22529 }, { "url": "https://support.claude.com/en/articles/13133750-manage-members-on-team-and-enterprise-plans", @@ -11314,8 +11328,8 @@ "url": "https://support.claude.com/en/articles/13163631-configuring-session-security-settings", "status": "success", "path": "support/13163631-configuring-session-security-settings.md", - "sha256": "e0e2b3ff708c6aa0f1e5d5e073210644dba89e469652e49a711fa27b14f0295f", - "size": 3699 + "sha256": "08774ebc9ef5bde3a4e14a7dac22c048a3ee4d3587a8f40c2b06d1a3ee6aed06", + "size": 3703 }, { "url": "https://support.claude.com/en/articles/13171706-crisis-helpline-support-in-claude", @@ -11328,7 +11342,7 @@ "url": "https://support.claude.com/en/articles/13189465-log-in-to-your-claude-account", "status": "success", "path": "support/13189465-log-in-to-your-claude-account.md", - "sha256": "83f761981391581062146f2ac313c545a544442487c899cafe639d449fe63eee", + "sha256": "339da379ddd17f7b797145189605d3d448652e27d79978adbe9d19c589105b4d", "size": 7037 }, { @@ -11356,15 +11370,15 @@ "url": "https://support.claude.com/en/articles/13325567-account-management-faqs", "status": "success", "path": "support/13325567-account-management-faqs.md", - "sha256": "b282c6eddcb497b8fbf791cde81d7e05041d2a3df0ed23e852ff44bd03010e5f", - "size": 2642 + "sha256": "949b081172d5980c720f16be7b4ed3c82361cc61cc29b2b9d55e990e628666e5", + "size": 2634 }, { "url": "https://support.claude.com/en/articles/13345190-get-started-with-claude-cowork", "status": "success", "path": "support/13345190-get-started-with-claude-cowork.md", - "sha256": "b367a35b58fdb5b33d86afab1362eae8eca1cb747a0122bc38dd4ca32d673929", - "size": 23033 + "sha256": "967948de70305f6f30f8fe23e97f1d36b7966940f50c480350268fb6dbe2a51e", + "size": 22029 }, { "url": "https://support.claude.com/en/articles/13346458-customize-your-console-appearance-settings", @@ -11377,21 +11391,21 @@ "url": "https://support.claude.com/en/articles/13346720-export-your-organization-s-data", "status": "success", "path": "support/13346720-export-your-organization-s-data.md", - "sha256": "9599ed3e060b1a3bb75cf97ed5b5b10bcd21801e5b001f106a2f529c3dfde37e", - "size": 2872 + "sha256": "989facba8fecafb69edfda90c3b5510f48ec26f507ba54c18955a54cec566398", + "size": 3137 }, { "url": "https://support.claude.com/en/articles/13364135-use-claude-cowork-safely", "status": "success", "path": "support/13364135-use-claude-cowork-safely.md", - "sha256": "9ca4d5c35f0befe32060e3418328e47b91e692bc7f093a9b30012a55cfb0b40c", - "size": 17953 + "sha256": "4be274e1761414d8e290a098e72f16bfebc43e2a41204948645484b383beb16c", + "size": 17392 }, { "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": "53081a88ea621e840274d6b991c910e228632bc6d19e7cf55882db7d60354e1d", + "sha256": "bd3a978262b24916311efd7047a22ca1bf417abc61404c1cd17ef69b0a68256c", "size": 4613 }, { @@ -11433,8 +11447,8 @@ "url": "https://support.claude.com/en/articles/13455879-use-claude-cowork-on-team-and-enterprise-plans", "status": "success", "path": "support/13455879-use-claude-cowork-on-team-and-enterprise-plans.md", - "sha256": "0ef4b033cd9fae8812747cefc791dbccbf3c8911623b80d1a48043cca789873d", - "size": 14768 + "sha256": "2e75d9f32b7c87dc670908d509e2e483e6bd1f1679a32c11591935cb77fbaae7", + "size": 13817 }, { "url": "https://support.claude.com/en/articles/13566435-find-and-join-a-team-or-enterprise-organization", @@ -11447,7 +11461,7 @@ "url": "https://support.claude.com/en/articles/13641943-visual-and-interactive-content", "status": "success", "path": "support/13641943-visual-and-interactive-content.md", - "sha256": "2a69c378e8f8811942e5dce4888dc338ebb9a7415d4dbc88a3f4cdb7a2d42b63", + "sha256": "28a3235c28586d8b453b22b4b62c48af1cc52bb17755f97da65ca0cd1260cfe1", "size": 6511 }, { @@ -11503,15 +11517,15 @@ "url": "https://support.claude.com/en/articles/13837440-use-plugins-in-claude", "status": "success", "path": "support/13837440-use-plugins-in-claude.md", - "sha256": "fbf7b36a242bb881c5b321149ea1a5d74b0c5397480ed75845cb8a9d0d53ebb6", - "size": 15187 + "sha256": "6e91279ea5b25403e565f99616d05379df1fb07161013f4f2170732514f81162", + "size": 15189 }, { "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": "12cadae22a05910782e66b164b07a9c181e893dd2454b791ce50ad4fab1aae66", - "size": 6004 + "sha256": "77868cc4e5f1a0f994ae06784c9fa2742f2973e43d8d1d2e18106e1aa59b7084", + "size": 5586 }, { "url": "https://support.claude.com/en/articles/13917817-google-workspace-sso-scim-email-mismatch", @@ -11601,8 +11615,8 @@ "url": "https://support.claude.com/en/articles/13947068-assign-tasks-from-anywhere-in-claude-cowork", "status": "success", "path": "support/13947068-assign-tasks-from-anywhere-in-claude-cowork.md", - "sha256": "98d0f06e6ad7cd4539728a1fb99f64dd23122154890248cde2bcdb88df01d051", - "size": 9458 + "sha256": "4cde92517b3965378c022c1c24be542e29981c92ccc65db341b63cf7c5faa9b6", + "size": 9456 }, { "url": "https://support.claude.com/en/articles/13979539-custom-visuals-in-chat-and-cowork", @@ -11622,15 +11636,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": "f4b3813dcdc8d3529a080282054121178fa995e3685069e254452eef176ca75b", - "size": 8387 + "sha256": "445fa09d82418487bd000f7e3812a51d395465c180fa28c07962f9bd1ede2a4e", + "size": 8446 }, { "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": "754f4405efb38dc435adbe1f283faf3aa50f4e432ee6c2078b00200772d71c25", - "size": 9674 + "sha256": "d014ce8eca90cb63500c3e6b415db0a1b465f3534350c0abd2b60dafe1988652", + "size": 9685 }, { "url": "https://support.claude.com/en/articles/14128775-claude-code-on-console-to-enterprise-migration", @@ -11678,21 +11692,21 @@ "url": "https://support.claude.com/en/articles/14477985-monitor-claude-cowork-activity-with-opentelemetry", "status": "success", "path": "support/14477985-monitor-claude-cowork-activity-with-opentelemetry.md", - "sha256": "51608fe678a363b0c1dfe65944ee668e184876362413f4a38cfc715bd5c29598", - "size": 7105 + "sha256": "fcf1f3bbcd3eba40dfb86358da5fd292f1715c3e2cb16287f589853d21d88620", + "size": 7116 }, { "url": "https://support.claude.com/en/articles/14479288-claude-cowork-architecture-overview", "status": "success", "path": "support/14479288-claude-cowork-architecture-overview.md", - "sha256": "364372d230759bc77228a3072e1ef902ec82147b43365b2c1b4c02a7ec1f3cce", - "size": 8862 + "sha256": "72a2d5de3aa729ef08216de5ffab66bdc9873f22e40ddbb53e3396a46e7fe136", + "size": 8897 }, { "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": "ecca65d84dcb524d6df7a373caf14a884a9c41479971201a908573ea5d7f255b", + "sha256": "34ed9b2d74dc1377f907cccc50417cdcfcc27a1641e38e08ca5c34e5b0ee7395", "size": 7674 }, { @@ -11832,8 +11846,8 @@ "url": "https://support.claude.com/en/articles/14729249-use-live-artifacts-in-claude-cowork", "status": "success", "path": "support/14729249-use-live-artifacts-in-claude-cowork.md", - "sha256": "2a9fd8b2fc7dfcb02e8d5d715935ebc924bf1e8543f8dcfe3a1ec72f0fd4d93a", - "size": 2879 + "sha256": "ee5dbe2bb92d7cc6c6cde1915df5e41a56395073002dff66940af1424941cb42", + "size": 2890 }, { "url": "https://support.claude.com/en/articles/14729294-open-claude-desktop-with-a-link", @@ -11916,8 +11930,8 @@ "url": "https://support.claude.com/en/articles/15330088-set-a-default-model-for-your-organization", "status": "success", "path": "support/15330088-set-a-default-model-for-your-organization.md", - "sha256": "2cbcab0c58f8a2ce41fa93edb81de883f166a2e95e7370e65fc80fe7a990a5c1", - "size": 11315 + "sha256": "3b80f64e1a02da3002e356ba7fb3e8b7c99836e5e703fe674dfc362b34a9cec5", + "size": 11309 }, { "url": "https://support.claude.com/en/articles/15330651-claude-enterprise-admin-api-reference-guide", @@ -11986,8 +12000,8 @@ "url": "https://support.claude.com/en/articles/15520349-use-claude-cowork-on-web-desktop-and-mobile", "status": "success", "path": "support/15520349-use-claude-cowork-on-web-desktop-and-mobile.md", - "sha256": "ecda0bd55f63f4f5aec08f80c61bd544c958e922b98e470ef66411e7fef9ba85", - "size": 11231 + "sha256": "31cdf59536b2492ba4dfa2fd12964233fde4d8d7390203248931a64dc6cfe1a5", + "size": 10883 }, { "url": "https://support.claude.com/en/articles/15537633-authorize-mcp-connectors-for-your-entire-organization", @@ -12028,8 +12042,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": "64f4f536d6b44e8d0dc402815b0734a65c6aafbf1c36dab7b9025bb58128acd6", - "size": 10334 + "sha256": "dde03bd868ed82c7be4d4a07186e801685e3686b617c2229fca1ce367d90d75a", + "size": 10338 }, { "url": "https://support.claude.com/en/articles/15707726-using-claude-for-legal-work-privilege-confidentiality-and-how-to-think-about-configuration", @@ -12063,8 +12077,8 @@ "url": "https://support.claude.com/en/articles/15936181-get-started-with-1password-for-claude", "status": "success", "path": "support/15936181-get-started-with-1password-for-claude.md", - "sha256": "71d4656d62fdb395d487e00aa6a3a688fee59c7566e5de24210f2a1edfebdbdd", - "size": 5058 + "sha256": "662649733b2e618eda63044ed0687e0847eeb4e8ded21f490fb874992756fb87", + "size": 5062 }, { "url": "https://support.claude.com/en/articles/16049681-why-claude-switched-models-in-your-conversation-with-opus-5-or-opus-5-5", @@ -12105,15 +12119,15 @@ "url": "https://support.claude.com/en/articles/16607400-use-the-built-in-browser-in-claude-cowork", "status": "success", "path": "support/16607400-use-the-built-in-browser-in-claude-cowork.md", - "sha256": "a805658babaf12f28343d266bca06149624ce9340f4361a4905f73f0af28e39b", - "size": 6404 + "sha256": "c6b818ebf6824033baa49c160bd6f5a25506e1420d28f208b36e703a19ee3f5d", + "size": 6397 }, { "url": "https://support.claude.com/en/articles/16607638-understanding-your-pro-or-max-plan-invoices", "status": "success", "path": "support/16607638-understanding-your-pro-or-max-plan-invoices.md", - "sha256": "9f2a4acae2de824ff0d0964982197105d34933bcdbf84b927207f8ee0d361f00", - "size": 5834 + "sha256": "2652936919d1e918f9636462f050c219a342835152d88a60e60cb9c575468edb", + "size": 5832 }, { "url": "https://support.claude.com/en/articles/16607668-understanding-your-team-plan-invoices", @@ -12140,8 +12154,8 @@ "url": "https://support.claude.com/en/articles/16635803-set-up-browser-use-in-claude-cowork-for-team-and-enterprise-plans", "status": "success", "path": "support/16635803-set-up-browser-use-in-claude-cowork-for-team-and-enterprise-plans.md", - "sha256": "f245a30ac4ff2208a838b66f7e64ba5109c9d93762aefe1020a8f8989dee1df8", - "size": 5695 + "sha256": "6d1c16d1aad4b0310e0cf0b2b4e9f25104be4fd8c8fd13d0e0859abcb9caba59", + "size": 5706 }, { "url": "https://support.claude.com/en/articles/16761192-preserved-thinking-changing-how-the-messages-api-handles-thinking-blocks-to-protect-against-distillation", @@ -12154,8 +12168,8 @@ "url": "https://support.claude.com/en/articles/16761823-claude-cowork-and-chat-are-one-claude", "status": "success", "path": "support/16761823-claude-cowork-and-chat-are-one-claude.md", - "sha256": "907ff1aa249a8c8a9183041bc852b574104a2d6a5fefbc4bf6c4ac424f6336f7", - "size": 10280 + "sha256": "089d704f952d4a8412ea3c65570f8941cbb55a3a00a99300e7c1b4e2f90bf443", + "size": 10293 }, { "url": "https://support.claude.com/en/articles/16762437-public-links-for-shared-chats", @@ -12196,8 +12210,8 @@ "url": "https://support.claude.com/en/articles/16893491-get-started-with-smart-reports", "status": "success", "path": "support/16893491-get-started-with-smart-reports.md", - "sha256": "a910accbbf3f6f8b90d4cb66e09e3d378851fab2d852c988ddf846d931064a84", - "size": 15957 + "sha256": "5dfc38d4dd72ac6eed723ea768a28fc11d8014ab2ad51129adeffd36bcb617d0", + "size": 15959 }, { "url": "https://support.claude.com/en/articles/16923645-get-started-with-claude-docs", @@ -12217,8 +12231,8 @@ "url": "https://support.claude.com/en/articles/16951679-use-claude-in-google-docs-sheets-and-slides", "status": "success", "path": "support/16951679-use-claude-in-google-docs-sheets-and-slides.md", - "sha256": "77dc707c3eebb71ef29343274101ccc1e4a4bfb67fe53070c64684285a492c27", - "size": 21894 + "sha256": "cb2fce9858ce89a40a82cbaee837fce82d42ea3825f9d189fa0387260bc1c7f8", + "size": 21892 }, { "url": "https://support.claude.com/en/articles/16952184-set-up-salesforce-in-claude-for-your-organization", @@ -12245,7 +12259,7 @@ "url": "https://support.claude.com/en/articles/17005973-manage-pooled-group-budgets-on-enterprise-plans", "status": "success", "path": "support/17005973-manage-pooled-group-budgets-on-enterprise-plans.md", - "sha256": "09505b79e6c0138d176f691a2fd2be6a353b8a90c9c8d89778c355d4893cd83b", + "sha256": "2c95a09c56a50de28cd43215ced8f140b015dd996221106352dde0a1771e920f", "size": 6980 }, { @@ -12294,8 +12308,8 @@ "url": "https://support.claude.com/en/articles/17203415-set-up-claude-for-intune", "status": "success", "path": "support/17203415-set-up-claude-for-intune.md", - "sha256": "6dda3dfb2beb3cda1dda149b34c716332faadb2bfee2cb1ad2fe1d764ae8cc9e", - "size": 11377 + "sha256": "d0d5fd092373ae40376650d5d56a6de647e46fdf2c72b2fe0b8d7d930330638e", + "size": 11365 }, { "url": "https://support.claude.com/en/articles/17318731-use-claude-code-local-mode-and-claude-cowork-local-mode-on-a-hipaa-ready-enterprise-plan", @@ -12304,6 +12318,13 @@ "sha256": "05d3a6eb825889a59162a23c3b0d47f2925b8737fe61929ea3219eeddf43d148", "size": 20149 }, + { + "url": "https://support.claude.com/en/articles/17440474-move-from-standalone-claude-design-to-claude", + "status": "success", + "path": "support/17440474-move-from-standalone-claude-design-to-claude.md", + "sha256": "fa9427b456d6375623cce235b9aca34a72681936d8ee6b76f8470dac71edc6af", + "size": 15566 + }, { "url": "https://support.claude.com/en/articles/17444146-claude-haiku-4-5-is-leaving-the-model-selector", "status": "success", @@ -12315,8 +12336,8 @@ "url": "https://support.claude.com/en/articles/17444462-set-up-and-manage-the-new-unified-claude-experience-for-your-enterprise-organization", "status": "success", "path": "support/17444462-set-up-and-manage-the-new-unified-claude-experience-for-your-enterprise-organization.md", - "sha256": "2aa0798b515082fa278a5e8633c2a942524d39e3c748e56863c4aacd5cdcad6a", - "size": 23039 + "sha256": "64b49d01ad317035499e87151b6f6fe2d74bcdcad603570bd6bec1dca50a33ae", + "size": 24663 }, { "url": "https://support.claude.com/en/articles/17454700-get-started-with-claude-dashboards", @@ -12371,36 +12392,36 @@ "url": "https://claude.com/docs/build/overview", "status": "success", "path": "claude/build/overview.md", - "sha256": "46189faa547e059e58fe255c926a0e3ac1d0a25d840a1834ff1146205e8872d8", - "size": 9211 + "sha256": "f62f5fb42d5cec8bc3471cea90ef53512cc1f8e8a661cb6f3de1a423f04cf77c", + "size": 9805 }, { "url": "https://claude.com/docs/claude-science/admin-controls", "status": "success", "path": "claude/claude-science/admin-controls.md", - "sha256": "6b39b9043a9b90dfd68ab64ebf5358d118b59b80f52f44f64387807bfa3f0383", - "size": 54521 + "sha256": "51943afe077c16ea41ba448c417a0ab0cffec87e4c154ca415ce9c3cb6f88ee6", + "size": 55277 }, { "url": "https://claude.com/docs/claude-science/artifacts", "status": "success", "path": "claude/claude-science/artifacts.md", - "sha256": "602698d6a28a3aa08a2a2471a5812c056a164d530f756041e768f755e729f0dd", - "size": 3527 + "sha256": "75821d0a674f0ba29a43e7897e84e00e1b2273b8bf3522fd0ab0c84fb2272967", + "size": 3545 }, { "url": "https://claude.com/docs/claude-science/auto-mode", "status": "success", "path": "claude/claude-science/auto-mode.md", - "sha256": "f84b570704c7ff73c7a308069769a247efce54c573cd67666d8a549a4fb226e1", - "size": 3735 + "sha256": "d8c22cfdadd93544cba715c42e713cc2ffc0e361c9ef3239d815233f2b3aa894", + "size": 3789 }, { "url": "https://claude.com/docs/claude-science/changelog", "status": "success", "path": "claude/claude-science/changelog.md", - "sha256": "276663859880a06b04f95164eaa58cdcb28baa622e38934e3ec58fbdb63f49e3", - "size": 25146 + "sha256": "04a514a039e1323fb8412a6d169067382aafff6f6a9c208ccf775d0e3fda1ba6", + "size": 25218 }, { "url": "https://claude.com/docs/claude-science/cloud-storage", @@ -12413,155 +12434,155 @@ "url": "https://claude.com/docs/claude-science/command-line-settings", "status": "success", "path": "claude/claude-science/command-line-settings.md", - "sha256": "5d2212aa652a5ca509c242ab50b2108852a384e2d6c095163478de764c9dc518", - "size": 11288 + "sha256": "cfbca2be5239223367727ee87b3931779db99a8036b5d116de55894e7df4014d", + "size": 11468 }, { "url": "https://claude.com/docs/claude-science/comments", "status": "success", "path": "claude/claude-science/comments.md", - "sha256": "0e1287a9f8e4e8888560168407ae50cb939fb6bed1072fb64593820e878386f7", - "size": 2708 + "sha256": "9a45c96fd836ab8b6772d28da3036b49041bff2adabed876cd3742ee73eda6ba", + "size": 2726 }, { "url": "https://claude.com/docs/claude-science/compute-providers", "status": "success", "path": "claude/claude-science/compute-providers.md", - "sha256": "c891c3a364fcdcb1c951221e06fcbeb29335f584924bfcbd97df58f6638bbd6d", - "size": 5101 + "sha256": "006accac8a646c53000785ed30789457d13ace709fa9c46e364a3572cc860957", + "size": 5155 }, { "url": "https://claude.com/docs/claude-science/configuration-file-reference", "status": "success", "path": "claude/claude-science/configuration-file-reference.md", - "sha256": "1744ad1090413cdf280a6597c1a01e6bfb8c47aa7fef855967037514709b488b", - "size": 10797 + "sha256": "ada4c16a2d56ea417f3456c230315ecaae58f23f244ef2a5d5dff1d5b39d55e0", + "size": 10977 }, { "url": "https://claude.com/docs/claude-science/connectors-and-skills", "status": "success", "path": "claude/claude-science/connectors-and-skills.md", - "sha256": "e6be9950e5b5e4a73300427e710f3b889aa25b2d0b3d2c0db881cd7fe3e790c0", - "size": 8588 + "sha256": "b2b6d0153f43647ad8c90f8d47067890c79016869ea021be6e53a4a9dedd3ea3", + "size": 8750 }, { "url": "https://claude.com/docs/claude-science/core-concepts", "status": "success", "path": "claude/claude-science/core-concepts.md", - "sha256": "d0fece89f6441916a196c097a6d2f0ad457eea42145a0fe1ead821bb51eab27a", - "size": 5445 + "sha256": "903f069c4e21a95c4b1c9161c6d779b5b71ef66d679ef7cf4965a206f82f1dce", + "size": 5535 }, { "url": "https://claude.com/docs/claude-science/corporate-networks", "status": "success", "path": "claude/claude-science/corporate-networks.md", - "sha256": "4883d027e37d54c6b3d0e146820d4864d7ff42f3a90a5c26e68fc7e4308d21b3", - "size": 39371 + "sha256": "60129346e65d406bbca00cdb9a4b8e369699dd93b1eb44cf59645830a640a594", + "size": 39587 }, { "url": "https://claude.com/docs/claude-science/custom-connectors", "status": "success", "path": "claude/claude-science/custom-connectors.md", - "sha256": "752b5ff66e9c5ac4641dd9ebf3f338cf891ca8ac1b15f237d716faf63a32e1c0", - "size": 2307 + "sha256": "a7b6775b5282ce6e9af6c05a681d1588ec6548b48934da6a1cc7556469bddf77", + "size": 2325 }, { "url": "https://claude.com/docs/claude-science/enable-claude-science", "status": "success", "path": "claude/claude-science/enable-claude-science.md", - "sha256": "c8a95e208295b929f93463cf67f0d6730868a970d463eb1f416e379a311d1550", - "size": 10579 + "sha256": "4869cc5f7b7f4871e81170b1d19b751f49349ae7cf9acad8e236d00ae7da63d1", + "size": 10723 }, { "url": "https://claude.com/docs/claude-science/example-gallery", "status": "success", "path": "claude/claude-science/example-gallery.md", - "sha256": "065a3552dc5f074d83a6ca6d15cf4bcb3a1915e43e10be805b7248c62a901808", - "size": 1625 + "sha256": "3603174ed0b790b7403bbbdadd1c4923fb8536703fe8f63fd50769a4777940fe", + "size": 1805 }, { "url": "https://claude.com/docs/claude-science/example-gallery/bio-drift", "status": "success", "path": "claude/claude-science/example-gallery/bio-drift.md", - "sha256": "d1303c4954d63e8790b277eda6337db7639fd4a9aa63a222b7542fa11ab56713", - "size": 3152 + "sha256": "c9ca7b5a1bc40ab4730c44e1205b7395e8f7871a9359a3c6fc136bc5ca4bf5ee", + "size": 3188 }, { "url": "https://claude.com/docs/claude-science/example-gallery/chem-titration", "status": "success", "path": "claude/claude-science/example-gallery/chem-titration.md", - "sha256": "9e5df50696b2e9b88ae127cdd6bd14804426214bca34a1340f7a6030370ec729", - "size": 2904 + "sha256": "9d46eea132fb89e2658c939f9805eb0dea7ad4bb3807aef17f683e53977a34f0", + "size": 2940 }, { "url": "https://claude.com/docs/claude-science/example-gallery/clin-km", "status": "success", "path": "claude/claude-science/example-gallery/clin-km.md", - "sha256": "fa3da344174137f77695f67c42b0839919b58a44c7803b9eccefe4159ded2948", - "size": 2978 + "sha256": "ec1341fbabc967a88d2e714e7928dc182a5c3a1036ddf25d125557530acddd2d", + "size": 3014 }, { "url": "https://claude.com/docs/claude-science/example-gallery/cs-pagerank-tiny", "status": "success", "path": "claude/claude-science/example-gallery/cs-pagerank-tiny.md", - "sha256": "1f20175c071a72c72c76699e371c0ecd0817502816811bb5c279d2c4fb479791", - "size": 3447 + "sha256": "f09fe294dc0155144cca6db1a4257f7e910ea0dfd52577ea541d158c4246b8d7", + "size": 3483 }, { "url": "https://claude.com/docs/claude-science/example-gallery/eng-beam", "status": "success", "path": "claude/claude-science/example-gallery/eng-beam.md", - "sha256": "a5d190d69639a748b9e3240c37764e315909211b0eb6ef77d144356006248652", - "size": 2480 + "sha256": "53d288afaddd8b71e3b521751e80986fc9f72048286a24d38203e34d6d889a5c", + "size": 2516 }, { "url": "https://claude.com/docs/claude-science/example-gallery/mat-xrd", "status": "success", "path": "claude/claude-science/example-gallery/mat-xrd.md", - "sha256": "8cb2d9e3df6050d60be8457806a7d77eb127606c066c0843e9673537eb481289", - "size": 2403 + "sha256": "48020c1d8b09ff1208ed7c561f3a00f303fe312abeef3f447da5611bb5e5cd4c", + "size": 2439 }, { "url": "https://claude.com/docs/claude-science/example-gallery/math-ulam", "status": "success", "path": "claude/claude-science/example-gallery/math-ulam.md", - "sha256": "f3785d082136655932d33a81cce11b3208d7596fc042053c0178f3a16401d9e5", - "size": 3362 + "sha256": "9412ff2c8b2f23f16ec10922d39675f03bd041e1b62c6dd7a4bc850edbbea3ad", + "size": 3398 }, { "url": "https://claude.com/docs/claude-science/example-gallery/phys-doubleslit", "status": "success", "path": "claude/claude-science/example-gallery/phys-doubleslit.md", - "sha256": "7ecbd3b4d1a646d0c8a6d039b5913358ad1dcb13b15981fe2d16d6664b1b0aa1", - "size": 3083 + "sha256": "df25001071e013aa1b01ff9562caa95e750a2f39552fe52c6194f1676e609128", + "size": 3119 }, { "url": "https://claude.com/docs/claude-science/example-gallery/soc-schelling-small", "status": "success", "path": "claude/claude-science/example-gallery/soc-schelling-small.md", - "sha256": "6c62bb71542d918b94a6b53e0ecc8a9e3be5087e0545f298ffe7f84b903b86cb", - "size": 3527 + "sha256": "854eb9f943f6adab34b545383ad2a9d519539dd99a11f33cf08ab34c42db73e1", + "size": 3563 }, { "url": "https://claude.com/docs/claude-science/get-started", "status": "success", "path": "claude/claude-science/get-started.md", - "sha256": "520a387cb2401d9cdeab2c8552bd8b2805921f3ccacca45ac05e5048d34881a5", - "size": 21969 + "sha256": "be5498f045f1404e939cb0ef2fff66b17fb1a00de6c7c6d4d49d68a7aa28ddfb", + "size": 22275 }, { "url": "https://claude.com/docs/claude-science/glossary", "status": "success", "path": "claude/claude-science/glossary.md", - "sha256": "0a75658ef26a97444f5d66832c8590625d20c2a23f11d731b01a310c7229d25a", - "size": 4121 + "sha256": "34f637f383e4a0dfceeef63f85807b820e8009e5f07f43cc77219b58eb146711", + "size": 4211 }, { "url": "https://claude.com/docs/claude-science/how-claude-science-works-with-your-data", "status": "success", "path": "claude/claude-science/how-claude-science-works-with-your-data.md", - "sha256": "842afee1e3166774cd8dbbfd92725c6780ed14ec9e91d4c2ea9fe901327ee673", - "size": 11505 + "sha256": "753fe1662576c7131da8f85c2de6e0329564839f1bbd972368031dcd7c10a833", + "size": 11739 }, { "url": "https://claude.com/docs/claude-science/legal-and-compliance", @@ -12581,57 +12602,57 @@ "url": "https://claude.com/docs/claude-science/mac-app-window", "status": "success", "path": "claude/claude-science/mac-app-window.md", - "sha256": "b6a9d876a4628c299ee080f80a9af10c4efeb40ae1544c41ac33ad002f9ffa2d", - "size": 3260 + "sha256": "27a7b40bbd7b6df7c5b5cb7e329dcab6d88e36d9a30a4adccd1d3bd941f94626", + "size": 3296 }, { "url": "https://claude.com/docs/claude-science/manage-on-devices", "status": "success", "path": "claude/claude-science/manage-on-devices.md", - "sha256": "49b706e0291d27ea60f8f2732cbe87c9f53e98aa2d55deaf286602b6e878e69d", - "size": 10955 + "sha256": "d16594bcd4009519c652186bfbbd4db71b5cfc76421b4cd37cd0a99b93ede1ef", + "size": 11063 }, { "url": "https://claude.com/docs/claude-science/monitor-usage", "status": "success", "path": "claude/claude-science/monitor-usage.md", - "sha256": "652968aed6ae23f2f1c1ea97ffd3b9f3e877faf1afadacf01022d431df5d4a0f", - "size": 1785 + "sha256": "bebee9303d55412f3c32c7a2df896597ef3f6079c6b4a21e0ced775ee9b8d3e7", + "size": 1803 }, { "url": "https://claude.com/docs/claude-science/multiple-computers", "status": "success", "path": "claude/claude-science/multiple-computers.md", - "sha256": "498a00f2083f7e39153c72eaa01a55c61b5fb013288efbc6423bb2a407f5d445", - "size": 4159 + "sha256": "7c56980a233a7bf4107a1ab6df6a4dc84d5c67aa3dac8a128bcf481142c86b09", + "size": 4213 }, { "url": "https://claude.com/docs/claude-science/network-requirements", "status": "success", "path": "claude/claude-science/network-requirements.md", - "sha256": "86cf89d5ea53556d888c8d85967d22fa53c3bf49cca3a30a487e8d27df36b87e", - "size": 13697 + "sha256": "1e975c4bb6dd00b912a4145830d3a0fa5320bf35361687bae387d59a09593693", + "size": 13823 }, { "url": "https://claude.com/docs/claude-science/overview", "status": "success", "path": "claude/claude-science/overview.md", - "sha256": "7f053e8745a6487ad52499c92bd2d1869bf8482b1fc6a3aee06b9da4d1c88295", - "size": 7543 + "sha256": "8db71e4f3cd4184f7669725d985990c16966a333b6cb77e9d4f9785f908dd971", + "size": 7777 }, { "url": "https://claude.com/docs/claude-science/remote-compute-clusters", "status": "success", "path": "claude/claude-science/remote-compute-clusters.md", - "sha256": "bf3bade120c1515631ee5aa215ce99c53b67f3a1f53668074c3084f6ed10f9e4", - "size": 3365 + "sha256": "3650e04b6bc9f2bcff3c08c05d6518cbc30103d9f0bab8275ba5a60d67c19c04", + "size": 3383 }, { "url": "https://claude.com/docs/claude-science/run-on-remote-linux-server", "status": "success", "path": "claude/claude-science/run-on-remote-linux-server.md", - "sha256": "7d3639af40f6abace2f5a5db99beb1925bdb28220b83fc525248e6d5a31b25f3", - "size": 12584 + "sha256": "56cbc5ab68a2b3f364a8b3e434891a264a551f6a2eba0ccac4f8ddb7a90b0cc0", + "size": 12728 }, { "url": "https://claude.com/docs/claude-science/safeguards", @@ -12651,827 +12672,827 @@ "url": "https://claude.com/docs/claude-science/tools-and-environments", "status": "success", "path": "claude/claude-science/tools-and-environments.md", - "sha256": "6803b4dcad3bf9a73f0389cdcd8666c535fc9e85f15da1e7eeedf915167faa78", - "size": 6947 + "sha256": "818d0cc3f84da47eaf9d216f7a92bb68778f4dd6c57a924be0f8c8473c46c0e2", + "size": 7019 }, { "url": "https://claude.com/docs/claude-science/troubleshooting", "status": "success", "path": "claude/claude-science/troubleshooting.md", - "sha256": "10409d4b0bb0202fcfd9f8bc2c98d54652f05494240ddfd2653e29db69169e42", - "size": 10482 + "sha256": "f83cb9f2204feb0744e6162ef2e11e956ad74e0198eb72a196cdf53c4ab9bc7c", + "size": 10680 }, { "url": "https://claude.com/docs/claude-science/update-claude-science", "status": "success", "path": "claude/claude-science/update-claude-science.md", - "sha256": "8a0811ce1bd7a6ae79486aa6fd76221c3ffe88313e26799f699edf2677320939", - "size": 6246 + "sha256": "a005912eb58677bf2b69d6d2c7e181f7d213a7dee2bdf404d7148bd441ff6e7b", + "size": 6282 }, { "url": "https://claude.com/docs/claude-tag/admins/add-connections", "status": "success", "path": "claude/claude-tag/admins/add-connections.md", - "sha256": "26d983ec029c60811948d4804cb68d75665b8a949cfcb4d3aa8130bdfc0d5460", - "size": 37890 + "sha256": "bd6d7d2ad5efdc013683a9650224b33d02d811f0ab471554b2807b22fc8b8aee", + "size": 38790 }, { "url": "https://claude.com/docs/claude-tag/admins/attach-to-scope", "status": "success", "path": "claude/claude-tag/admins/attach-to-scope.md", - "sha256": "9345efa9c2519d8b5a0ea4e95e0cad3b06a647b0d89178e981d702c908badee4", - "size": 23242 + "sha256": "7b9397935fadb327cd9cd05956fd6faa510913f7df3ebe5ac12e84bec6ba8de4", + "size": 23800 }, { "url": "https://claude.com/docs/claude-tag/admins/attribute-costs", "status": "success", "path": "claude/claude-tag/admins/attribute-costs.md", - "sha256": "b35918ba4e96c3aca27ba0980758537af1b416ef20f78ed42ffba562d59af7d0", - "size": 4820 + "sha256": "885f839e6cdf524358bc4ba53dc660b060fb7f8dece1f9084bee64c7ca887ab3", + "size": 4892 }, { "url": "https://claude.com/docs/claude-tag/admins/audit", "status": "success", "path": "claude/claude-tag/admins/audit.md", - "sha256": "a9b93501ee93ddc0e2942b7bd00e714e6d69c97217b6dd483584abe845944e31", - "size": 4516 + "sha256": "eab11967ac221e45b333a2de7c8564985e25fe3175b0d3259b9500359ad618c1", + "size": 4624 }, { "url": "https://claude.com/docs/claude-tag/admins/configure-github", "status": "success", "path": "claude/claude-tag/admins/configure-github.md", - "sha256": "8af1f40a4f359ed9d5179e45bebdb2aeefa1ee1887774a18197102e01ce304ac", - "size": 17411 + "sha256": "6aed9ccd8124169cb08fa7dc6fb265ccad59578958216f80b41d028db6b1904b", + "size": 17663 }, { "url": "https://claude.com/docs/claude-tag/admins/configure-gitlab", "status": "success", "path": "claude/claude-tag/admins/configure-gitlab.md", - "sha256": "53486043036b3a58c444d37055907ec3b57bbb70737b8a98779a26ffc6630b36", - "size": 7174 + "sha256": "96440b6bdc006d144ade916c80974a61001a341821df89b82cb4c972f5fe4d8f", + "size": 7354 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/amplitude", "status": "success", "path": "claude/claude-tag/admins/connections/amplitude.md", - "sha256": "ae2fb27e67cd340fe6f3efd8ec20be588fd3b884721811fddb24230349c2d2d6", - "size": 11973 + "sha256": "32a412764464dc5d867aa906a22095de8083102fa9d593cab3f1ffa12a35bd06", + "size": 12081 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/asana", "status": "success", "path": "claude/claude-tag/admins/connections/asana.md", - "sha256": "512cf781c095373bf891c45ebeea9b983bbdbb1c055d32abf6c820e9ea7376c1", - "size": 2978 + "sha256": "4fc7655b69a20a71d4490742aa93782f7ad9a9b3e7dd3564d92e0ae4280dc853", + "size": 3050 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/atlassian", "status": "success", "path": "claude/claude-tag/admins/connections/atlassian.md", - "sha256": "445d6bebe2d2375fad0199206e22d84a6bda233277a5fe0e610850e56d6172bf", - "size": 6360 + "sha256": "6f39c5af576211dc7ecd72dfc8cef4dffc3d6f61af1b611a91d137d086874db0", + "size": 6468 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/bigquery", "status": "success", "path": "claude/claude-tag/admins/connections/bigquery.md", - "sha256": "cc69ae4c6efdd413e6a75f7629ea06a027125a8964cad250b9ebb34a1d16002d", - "size": 6380 + "sha256": "82a6166a952c27b5acb1021edfa1b2bf41c362f0d88e2ccbaeb80c2780ef462a", + "size": 6488 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/custom", "status": "success", "path": "claude/claude-tag/admins/connections/custom.md", - "sha256": "976ab87a0334c2d9081c1ca70c9753ceb94f495dfdd41c8b5326f6d0fbe143ca", - "size": 13445 + "sha256": "7fee5b1a41a56c59d16f2a71eca7815cf89d54c10a9d626213fb9c41fbecd62b", + "size": 13805 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/datadog", "status": "success", "path": "claude/claude-tag/admins/connections/datadog.md", - "sha256": "8ddcc6d0c5b94803646aef4a5cf6bd0f32513d084daf27d488c59e6e3f777cf4", - "size": 4535 + "sha256": "839344bd916197a9782a37a90eca4daf5a5a640335c84429440f28f771112c88", + "size": 4625 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/gitlab", "status": "success", "path": "claude/claude-tag/admins/connections/gitlab.md", - "sha256": "90d853ddedd3333a6de3a360d36be0640a743dce53e6b25eb712237a3a7962f4", - "size": 4544 + "sha256": "63faf661101a8e96dbe868aaccea8a46327433bd3faee034db330bdc6994465e", + "size": 4724 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/gong", "status": "success", "path": "claude/claude-tag/admins/connections/gong.md", - "sha256": "f0be8edc46b19147f070e80e2a2f1cff0774fc5b678587d31ea94fe3798cf0d8", - "size": 3138 + "sha256": "006ac63b8008b5c94b3f8406ac68abd6b37dcae0c0a7237fb9b1f5e9b632485d", + "size": 3210 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/google", "status": "success", "path": "claude/claude-tag/admins/connections/google.md", - "sha256": "60f313b59c4caf77d1b17a13ae32fbaa70beb11fcedc648291fb6c986200032f", - "size": 6006 + "sha256": "1df5d115d991ba50a3b754591798901e7e4f05505815c33676701e2a6e45f884", + "size": 6114 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/hubspot", "status": "success", "path": "claude/claude-tag/admins/connections/hubspot.md", - "sha256": "c508813cb96fe9fb1892b5406ad164eb89d4b799ae0affbe282b3f502076a365", - "size": 2984 + "sha256": "4a7801c5f427775cbbe4dce19298d0d040b90daa6f9d4b4adde777002a4a7414", + "size": 3056 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/linear", "status": "success", "path": "claude/claude-tag/admins/connections/linear.md", - "sha256": "b04be86b74e667fa54663ae0d706597bf3d048b64a024fd5e60cd19d1a7b5b22", - "size": 3039 + "sha256": "75f1eed222ff41ebe16681a4c87fc876ea64c7baf2ec72f37478d2f5ade40bd0", + "size": 3111 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/notion", "status": "success", "path": "claude/claude-tag/admins/connections/notion.md", - "sha256": "c165a4ff26afc754867004d528765441f5fb31770381e31c9511b93e9759cbc0", - "size": 2916 + "sha256": "798ac7f8dc3511699893d0f0187233057c4846f6ada89aa38c462a093c4f6eef", + "size": 2988 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/overview", "status": "success", "path": "claude/claude-tag/admins/connections/overview.md", - "sha256": "409962de7145c5e8bd7a1322e39c0206528b00333269362daa02b205da400f73", - "size": 4724 + "sha256": "4e97f9ad30bd80685283806cc33d0e1e917fc594923cbaf0159dcab1374ed0db", + "size": 5174 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/pagerduty", "status": "success", "path": "claude/claude-tag/admins/connections/pagerduty.md", - "sha256": "e9fa72d0bcac261a57b779a23ed1330cbfdef7efb39bf4c995ce5bb4deb83cf5", - "size": 3304 + "sha256": "bb9e67ca57d12bf7752ad117a8c48d1c88e651e1d6348f04c4fa1c9d5c5a3c8a", + "size": 3394 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/salesforce", "status": "success", "path": "claude/claude-tag/admins/connections/salesforce.md", - "sha256": "6f7d760fd562add0f79868af5fe52dd808a3d89823b5d43c31c2e62462e373cc", - "size": 3632 + "sha256": "521e78586b3753e2997b621162fd74043079b2ee4beded5d7494e440f892be00", + "size": 3686 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/sentry", "status": "success", "path": "claude/claude-tag/admins/connections/sentry.md", - "sha256": "a1dbb2ef6d071f0a1b1b9439b1a6a1180d6b4903c95011a43042fc945059e6f6", - "size": 3087 + "sha256": "c6282dcde6adbbeef8cd8fde496c9554f9e6e0cf503004425f4d1f23636fa618", + "size": 3159 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/snowflake", "status": "success", "path": "claude/claude-tag/admins/connections/snowflake.md", - "sha256": "b566c7559ff554c4619aa910d635f4e62abcc31cede2c081f54791856e30d34d", - "size": 3570 + "sha256": "fe358a1e0e4b0ac2a405c0bc9ecb0278b708127ff8a7dd40e2aef3be3df2f022", + "size": 3642 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/stripe", "status": "success", "path": "claude/claude-tag/admins/connections/stripe.md", - "sha256": "f8a3577204d18d9ab3246b9b0af0ca25e4101db739afff7a6a0b6bc9ca57e0e4", - "size": 2741 + "sha256": "62e6f7b199f970f38ac33caa92d061dcffd545edc0be2f77ad0aec57ccca8d09", + "size": 2795 }, { "url": "https://claude.com/docs/claude-tag/admins/connections/vercel", "status": "success", "path": "claude/claude-tag/admins/connections/vercel.md", - "sha256": "8456c69b0121c61bb1684d931b2c6b222b57bc82b3ccf8754ba819868e1ae3ee", - "size": 2616 + "sha256": "60155a6f0795fd0cdcdf04632bf9f6fa83c79fe1d10f0f8385269461a3c4f728", + "size": 2670 }, { "url": "https://claude.com/docs/claude-tag/admins/customize", "status": "success", "path": "claude/claude-tag/admins/customize.md", - "sha256": "cdc4550edd16fc3d356a996c6bde2d3d3a8d32629692d636ddd6672207f7bf5c", - "size": 24353 + "sha256": "8def6301d2186e171d9f03397967374017ab94f6afe0611b0f10808775282e74", + "size": 25379 }, { "url": "https://claude.com/docs/claude-tag/admins/federated-access/authorization-server", "status": "success", "path": "claude/claude-tag/admins/federated-access/authorization-server.md", - "sha256": "8697f85934ede58edb7c94ac5f7b12acb6c707c3435787e1d8dd0b06d887cb58", - "size": 19493 + "sha256": "1e4c1af068783b68f047011e959f0aeff9b87481fd6775753a2792fddca6b944", + "size": 19925 }, { "url": "https://claude.com/docs/claude-tag/admins/federated-access/aws", "status": "success", "path": "claude/claude-tag/admins/federated-access/aws.md", - "sha256": "98f2572828e4774f16c6965ac2000011bb19a8995f1efdc67fff1ba31ab74924", - "size": 15795 + "sha256": "4cabd7675bc3687349403b4d31cf0619a9cc391f4d4982c6d266f71697a19c5e", + "size": 16209 }, { "url": "https://claude.com/docs/claude-tag/admins/federated-access/connect-a-gateway", "status": "success", "path": "claude/claude-tag/admins/federated-access/connect-a-gateway.md", - "sha256": "04e7501b0dfaa741e54a6fc495bdf73a0d663dcd0b5f7f23e3bd9b67c205ac8c", - "size": 14505 + "sha256": "a19df7b00ef96db2d0e68c8c77a75aa10530341e3a460c12dd5b3d42b96ff954", + "size": 14811 }, { "url": "https://claude.com/docs/claude-tag/admins/federated-access/gcp", "status": "success", "path": "claude/claude-tag/admins/federated-access/gcp.md", - "sha256": "7498f0349df09bf3d2b975e7146522a86fefc27783de4897a5f6f7dd88d8165a", - "size": 18921 + "sha256": "90c4e8766544e2ae928e9fd08ed5c078e2efd0e66f7c6361bc306678b97b53c1", + "size": 19335 }, { "url": "https://claude.com/docs/claude-tag/admins/federated-access/limits", "status": "success", "path": "claude/claude-tag/admins/federated-access/limits.md", - "sha256": "300cc7f42dfd477bf043f4aef7992418f257f295bba5ad6490d77049a66b6e68", - "size": 12498 + "sha256": "15d8d9124e670ba9d6c7bb2f235d2270243c67a4ce7caaba5e858c7eb6c31d74", + "size": 12732 }, { "url": "https://claude.com/docs/claude-tag/admins/federated-access/overview", "status": "success", "path": "claude/claude-tag/admins/federated-access/overview.md", - "sha256": "52d6ac3003ec3233cfd3de0d862f9d0033ba4e6566d1a97d8616c7a460def723", - "size": 12007 + "sha256": "842f64d24b0491c191d9be78a060c50c270e74be020cbdb3e9a2d395a26de90c", + "size": 12385 }, { "url": "https://claude.com/docs/claude-tag/admins/federated-access/token-reference", "status": "success", "path": "claude/claude-tag/admins/federated-access/token-reference.md", - "sha256": "a69f86a60997683c99b098ea1dc30b3174d83be6d72383af9f2f43dc03318d03", - "size": 13105 + "sha256": "c95052fa63408e3eb7a4845976f3893fff8edf8f26c7985551afc578e939e32f", + "size": 13285 }, { "url": "https://claude.com/docs/claude-tag/admins/federated-access/troubleshooting", "status": "success", "path": "claude/claude-tag/admins/federated-access/troubleshooting.md", - "sha256": "5e722ee9bf980e4b490835b5949f0f653e70525650d10b8271a130f887aef766", - "size": 42864 + "sha256": "b2d71b63e7db397964684ba4e0434b8cc4b9c40aa92744a2b2eb00725396e7ca", + "size": 43296 }, { "url": "https://claude.com/docs/claude-tag/admins/for-slack-admins", "status": "success", "path": "claude/claude-tag/admins/for-slack-admins.md", - "sha256": "b89b5dc5395562ba4d4c5365696776aecac5fd258d242f0f59c02e169e492f43", - "size": 6447 + "sha256": "7014716699d84f70aa94c616ed73f94a0275f1b8dfad98bae00f1f9b54831e67", + "size": 6627 }, { "url": "https://claude.com/docs/claude-tag/admins/healthcare", "status": "success", "path": "claude/claude-tag/admins/healthcare.md", - "sha256": "8035624fb3545e90ddfc2423dd2faeb206d771f18420ece006d70aadcf326fce", - "size": 14223 + "sha256": "f177ec201e30c35162daaecf85473005b1d56d0b4a1b3d81250567df5b292653", + "size": 14655 }, { "url": "https://claude.com/docs/claude-tag/admins/managed-by", "status": "success", "path": "claude/claude-tag/admins/managed-by.md", - "sha256": "cf178b982c50efa6ccb00b05e0f2b1f57777b5ad0538ea227fb60a6b649559ee", - "size": 19764 + "sha256": "caaf3fbbf216b4fb20edbaf8caae8510b6687c864059a9dac52f6355735ca0c3", + "size": 20214 }, { "url": "https://claude.com/docs/claude-tag/admins/migrate-from-earlier", "status": "success", "path": "claude/claude-tag/admins/migrate-from-earlier.md", - "sha256": "cb5c7a0172b76ea5f2d5f510a3ae99b1dfa479705016f14e3c430ecc4aed037a", - "size": 8695 + "sha256": "85e26e231aa6d3db5e6f03bc61e1c7b501999d48ae53bb68501b6e0ea0213118", + "size": 8965 }, { "url": "https://claude.com/docs/claude-tag/admins/network-requirements", "status": "success", "path": "claude/claude-tag/admins/network-requirements.md", - "sha256": "13f0e577a5450d97f2b65f94b4151d2e845650675f488b769b813357a5559806", - "size": 3924 + "sha256": "db0391ee29037e71b189c7b0d0b434426cdc9e33ee91a4864e132d5ec0e41c80", + "size": 4104 }, { "url": "https://claude.com/docs/claude-tag/admins/restrict-access", "status": "success", "path": "claude/claude-tag/admins/restrict-access.md", - "sha256": "925e9d20a099a59ce2c31491de40dcb37d5709f33437c11583612e2f1952b1db", - "size": 68104 + "sha256": "9764215c4dd5bdabfd09df962cafa98dd35064709cbf3846e222fbcf1266ec7d", + "size": 69400 }, { "url": "https://claude.com/docs/claude-tag/admins/set-spend-limit", "status": "success", "path": "claude/claude-tag/admins/set-spend-limit.md", - "sha256": "8d85dbc51744c76856bf6b5b1f0fd52ea2837eb4e31e6bc130340e704eadb72a", - "size": 9645 + "sha256": "7f3db50e946e65602c1a3f6093dfe9e0b2b8d85a2fac5abf9d5b80062ba95c0d", + "size": 9897 }, { "url": "https://claude.com/docs/claude-tag/admins/setup-oncall", "status": "success", "path": "claude/claude-tag/admins/setup-oncall.md", - "sha256": "2607f748cadc5ebf1aff2799bde07208947fa7be6a7d801063501ff4d9b76b71", - "size": 6595 + "sha256": "1ba676fd49ce69c0ee76fcd2fbb5353ebd9016a6be976ab84088549465bcc17a", + "size": 6847 }, { "url": "https://claude.com/docs/claude-tag/admins/setup-overview", "status": "success", "path": "claude/claude-tag/admins/setup-overview.md", - "sha256": "e35a36b34678a912ec6ca327576516669dbe8612fb5177e42dc85b404788fdd2", - "size": 24947 + "sha256": "9ca439bd0e1f30f3af58558d47c75732aa95647f4eca014a4d181627420bc199", + "size": 25757 }, { "url": "https://claude.com/docs/claude-tag/admins/skills-repo", "status": "success", "path": "claude/claude-tag/admins/skills-repo.md", - "sha256": "94cbf7e20aebf67326dbb1baaf438b02ff5c1b0c05bffae3e744afb8b61245ff", - "size": 8067 + "sha256": "66fcbbdd029aa1cd6edddebe8af256d6d1126fbd21178a842a4ecdce2ccbca01", + "size": 8265 }, { "url": "https://claude.com/docs/claude-tag/admins/troubleshooting", "status": "success", "path": "claude/claude-tag/admins/troubleshooting.md", - "sha256": "24ae622a0af647a7679f00f7a3a62440f84b9bdf1cd06f7efc368902a8d91e8a", - "size": 64835 + "sha256": "4d99de1af6212c4b6493f78f14348646370b80407879287d32fae99233db3f5e", + "size": 65825 }, { "url": "https://claude.com/docs/claude-tag/admins/workspaces", "status": "success", "path": "claude/claude-tag/admins/workspaces.md", - "sha256": "ebf817b9fc3532e642d3120b83ac1d0791ea2cfb7dfca2d44b5ec814345e0823", - "size": 17238 + "sha256": "c4ca32e193e85892e31d8b6567bb47a2002314ce839eeda9c020443e20d7f791", + "size": 17544 }, { "url": "https://claude.com/docs/claude-tag/concepts/agent-identity", "status": "success", "path": "claude/claude-tag/concepts/agent-identity.md", - "sha256": "d0316a090bc7e6db14036505efd91f818cd8adaaddd5c61977571c08df40abfe", - "size": 15904 + "sha256": "ef9efbe25cb0c480ef82aedf4217d9543cfad90994d443ee5f77af7ae6fdb5ed", + "size": 16354 }, { "url": "https://claude.com/docs/claude-tag/concepts/data-lifecycle", "status": "success", "path": "claude/claude-tag/concepts/data-lifecycle.md", - "sha256": "46c991347a1fbfbb6e7270ed9fa9ae4d5d10ffcdb3b59ae41985f98fa9ec012a", - "size": 17401 + "sha256": "abbe6f15a942abf97f5d9e1cd942cde8c868c074fdffa8f1c2dbcc6d0cd22799", + "size": 17761 }, { "url": "https://claude.com/docs/claude-tag/concepts/for-claude-code-users", "status": "success", "path": "claude/claude-tag/concepts/for-claude-code-users.md", - "sha256": "794b29ea3a6deceecf3c17b66a56c9e4bd146ad0d8cf7452d86196fe934ab777", - "size": 10313 + "sha256": "86e59bac8a79b5160c11fd566657b71c553dadf6dcfd620569af5ef22fb26a6e", + "size": 10925 }, { "url": "https://claude.com/docs/claude-tag/concepts/glossary", "status": "success", "path": "claude/claude-tag/concepts/glossary.md", - "sha256": "af0c88a6942d549813eb75f535ddf005709eaba5b97f887913100b643577c084", - "size": 8527 + "sha256": "c4463171f7c70638cd0e61da66387bb05e9eef848447c2776403697fcc0d0f00", + "size": 8905 }, { "url": "https://claude.com/docs/claude-tag/concepts/how-it-works", "status": "success", "path": "claude/claude-tag/concepts/how-it-works.md", - "sha256": "6760a2e672111411daae135213eec0f086925c19f69ad8dc4d0959c49be47094", - "size": 29585 + "sha256": "15a8e0dcec9f918211c32335d1d043f32af60c767cde9cd43c1864a7d4c8968c", + "size": 30161 }, { "url": "https://claude.com/docs/claude-tag/concepts/personal-connectors", "status": "success", "path": "claude/claude-tag/concepts/personal-connectors.md", - "sha256": "edbc0a81610af65ec7f611fe13d88e3d3fdb66e9961de654c77600a315d1d4b2", - "size": 10765 + "sha256": "4dc46c67df1536c96cdc7a64711dc1c4f791429345ea3d988e4b2a1df340a9b0", + "size": 10963 }, { "url": "https://claude.com/docs/claude-tag/concepts/security-and-data", "status": "success", "path": "claude/claude-tag/concepts/security-and-data.md", - "sha256": "127e568cf3dc2afd46f1d2fde836433fffcc941a8d878825acc2122998943dac", - "size": 18108 + "sha256": "080af0be8e82e161fd87e294ccab124ee2cb00f47dc08d9f9e2814869c5d7c61", + "size": 18828 }, { "url": "https://claude.com/docs/claude-tag/concepts/settings-map", "status": "success", "path": "claude/claude-tag/concepts/settings-map.md", - "sha256": "27f201d3166eefa90442bc1b029b2766a2bc564b0768a9286b10f8ce6f920706", - "size": 11566 + "sha256": "e14c50df29cc8f36a4e6f3dd30735b9bb255f04554b457c27e9394f1a9dc16ab", + "size": 12160 }, { "url": "https://claude.com/docs/claude-tag/overview", "status": "success", "path": "claude/claude-tag/overview.md", - "sha256": "c7060cfc73667752608110a93ed675c8d034a1daa680a0509a6cdaa330f45e01", - "size": 12340 + "sha256": "f2d195a04875357d3065a84afecdc12b257346a785e23578cc3394abdaa4adfb", + "size": 13132 }, { "url": "https://claude.com/docs/claude-tag/users/commands", "status": "success", "path": "claude/claude-tag/users/commands.md", - "sha256": "b09cbf5b0b67b6f187e593930ee2b4cbf1e9a58d641017dbcabc3d705f7df9f5", - "size": 14083 + "sha256": "12bc68f638bf10decc66bae518787622fcf54d74232373a9836413e43bfbadb2", + "size": 14335 }, { "url": "https://claude.com/docs/claude-tag/users/getting-started", "status": "success", "path": "claude/claude-tag/users/getting-started.md", - "sha256": "ec9c91d3fcf6beb17d36a9c45cb648b9235cf7d83afacfa0325470cfbdeb5837", - "size": 11694 + "sha256": "99aeda5b4eb64603bfb161b23582f0bf623cc38a176e0e2b570275e5ac886e1c", + "size": 12108 }, { "url": "https://claude.com/docs/claude-tag/users/good-habits", "status": "success", "path": "claude/claude-tag/users/good-habits.md", - "sha256": "3d37f0228bb90b4a97b6c5105f0cc01f2b610dc976e2be906b2f322bb8f26cf8", - "size": 20476 + "sha256": "b3c28c0089e458ca398a3d4ff74c35411ff20ec1f9af881a2448b390561c69f5", + "size": 21052 }, { "url": "https://claude.com/docs/claude-tag/users/group-dms", "status": "success", "path": "claude/claude-tag/users/group-dms.md", - "sha256": "287879c12c2a83b2ee7ac81e233ea2f4bd4de07fd14f7fdf3d8c611575ace4d7", - "size": 7922 + "sha256": "30b88e5dd5cd7616261d54e5b96a4de09329d52c716997210bb643d2ef4540fe", + "size": 8264 }, { "url": "https://claude.com/docs/claude-tag/users/memory", "status": "success", "path": "claude/claude-tag/users/memory.md", - "sha256": "e5031c8bf3359dc139fc65fb56edad42db32cb8690660f7a70ef671a2b8f2f71", - "size": 5652 + "sha256": "2ee4f71480f803470d148e61e987811cbb3e940338c366c6208f34dd3ed92ed2", + "size": 5760 }, { "url": "https://claude.com/docs/claude-tag/users/models", "status": "success", "path": "claude/claude-tag/users/models.md", - "sha256": "bca7e0a7f822bb8c0f2ebd1fa3690d0b4993737bc9342187bddb9b8f90153486", - "size": 6916 + "sha256": "dcf3d6933361e7b7bcc5c4ce98669f7c3284d3ca62b6805125e12650d94c1510", + "size": 7078 }, { "url": "https://claude.com/docs/claude-tag/users/proactivity", "status": "success", "path": "claude/claude-tag/users/proactivity.md", - "sha256": "e036d9f53947fa66d0183127289eff1d385a7775c7066f49d2758d50644259d3", - "size": 9872 + "sha256": "6cc6dff53b21ec11ec76abdd530e5a98c06f6b5cb74845ff07a68148de6debdf", + "size": 10142 }, { "url": "https://claude.com/docs/claude-tag/users/prompt-library", "status": "success", "path": "claude/claude-tag/users/prompt-library.md", - "sha256": "2db37789dcb299b4299d3d3bc5bd48a20800887407a432523d8afe108da9c100", - "size": 10346 + "sha256": "aa0e83137fcf8b1ca48c9bff9c5578bd18b62e59c7859ae93318a9837e3ad28c", + "size": 10688 }, { "url": "https://claude.com/docs/claude-tag/users/troubleshooting", "status": "success", "path": "claude/claude-tag/users/troubleshooting.md", - "sha256": "3706768dccde4556fe3a13ac141216ca3e22fc7d64e4a29ac2c162529d8a279e", - "size": 46436 + "sha256": "a9c1a0732e4d9e62ded9139a4e2e55fbaa51bc033acb69680c89d8a5df4ce6a6", + "size": 47264 }, { "url": "https://claude.com/docs/claude-tag/users/use-cases", "status": "success", "path": "claude/claude-tag/users/use-cases.md", - "sha256": "e34056004e19d86c9c1bfdad73767a153f6519e25d6a3648751707a5fb8e33de", - "size": 5775 + "sha256": "d354ba83459ff65fc7325ec10b1d090b02df079d3d55a27c2318dc1802ee66eb", + "size": 6243 }, { "url": "https://claude.com/docs/claude-tag/users/use-cases/answer-data-questions", "status": "success", "path": "claude/claude-tag/users/use-cases/answer-data-questions.md", - "sha256": "5c1fb38eb328b1ffd0237b9f1713aa72fc30b2df8d740a326fd8556d0583fca8", - "size": 3181 + "sha256": "50d5efce01be9447938a637134174249cc25b3080f5d6ea2c77b3967bc39c861", + "size": 3253 }, { "url": "https://claude.com/docs/claude-tag/users/use-cases/catch-up", "status": "success", "path": "claude/claude-tag/users/use-cases/catch-up.md", - "sha256": "e3e365f405f1897e92026bd14f7e9e90cf5c79d1134624c9aacd921f3140e1cf", - "size": 2440 + "sha256": "e42276a64dbc415d2adce46f36103b68b3e3ff83a194bfe3adb7667a9d646a3d", + "size": 2512 }, { "url": "https://claude.com/docs/claude-tag/users/use-cases/create-artifacts", "status": "success", "path": "claude/claude-tag/users/use-cases/create-artifacts.md", - "sha256": "978fafe779a30227a433713e5fd606e4f173a2e5d8913b3c05944cd7f4b88096", - "size": 4947 + "sha256": "101e832a796cc9cf6107fc04944bd3dd0c0be23d0627e89116c403e5d85d93c4", + "size": 5019 }, { "url": "https://claude.com/docs/claude-tag/users/use-cases/find-answers", "status": "success", "path": "claude/claude-tag/users/use-cases/find-answers.md", - "sha256": "098c69c3090b2af0583865835b440556afd16cdaae3a61e7befc4ccbfb0c1c06", - "size": 2822 + "sha256": "95f4f11fb5abac56a2d4981d5fa7887c0de8cac155736f87eafe8a55e510bf52", + "size": 2894 }, { "url": "https://claude.com/docs/claude-tag/users/use-cases/fix-bugs", "status": "success", "path": "claude/claude-tag/users/use-cases/fix-bugs.md", - "sha256": "9386a63ea62798b6b2a4ed3e8ac2ec975ccdc0ec2793db7760653f46b49b119f", - "size": 4990 + "sha256": "eab5b55257d9a5571e60cdb11188a789a90a56cfb87fa9e585b51de9229ec60f", + "size": 5116 }, { "url": "https://claude.com/docs/claude-tag/users/use-cases/marketing-team", "status": "success", "path": "claude/claude-tag/users/use-cases/marketing-team.md", - "sha256": "b5c3b8e79d52e4409ed6f68ab62345d0f0399a850a7fdf60cfd0fa6274dbb31e", - "size": 7376 + "sha256": "5578929b5a3f20dd25455acad845ae9cc040702aa122edf1ef73fed57d926311", + "size": 7556 }, { "url": "https://claude.com/docs/claude-tag/users/use-cases/pull-deal-state", "status": "success", "path": "claude/claude-tag/users/use-cases/pull-deal-state.md", - "sha256": "0d167aaf26d45678fc3dec6736008a317c302e9b2a6ca36eb70bac6509745132", - "size": 3194 + "sha256": "8311ad494bd85f160fb2da1fd38650a1e80a7de788e7c1936ec4c480a74d2f0b", + "size": 3266 }, { "url": "https://claude.com/docs/claude-tag/users/use-cases/review-documents", "status": "success", "path": "claude/claude-tag/users/use-cases/review-documents.md", - "sha256": "41ffabcd2577b44c9f29b3ae3a90bbdab21bb3b9b193d438c94554da47f3cba4", - "size": 4767 + "sha256": "ba0fe2b2aea16bd8bfb4f7332f6e559f4de2a99cd920fda12c5680c28e32a727", + "size": 4875 }, { "url": "https://claude.com/docs/claude-tag/users/use-cases/track-projects", "status": "success", "path": "claude/claude-tag/users/use-cases/track-projects.md", - "sha256": "7a8538911c95feeea9d97e4f85650f5177b0ea62673292e82e4ae6ca55488929", - "size": 3595 + "sha256": "4756bbfb4e777170b5325cbb1eb14e2175c9fff0c657880b3620b38b8f214e9c", + "size": 3685 }, { "url": "https://claude.com/docs/claude-tag/users/use-cases/triage-requests", "status": "success", "path": "claude/claude-tag/users/use-cases/triage-requests.md", - "sha256": "34dba844d52e1299db0c725bcbc0a12c164c67948828acb649006e60b3cce112", - "size": 6261 + "sha256": "9f5afd26911cb61a969395da2544ce0dd6649e1a0b7521a8b53f071a070afdef", + "size": 6459 }, { "url": "https://claude.com/docs/claude-tag/users/use-cases/watch-monitors", "status": "success", "path": "claude/claude-tag/users/use-cases/watch-monitors.md", - "sha256": "48c6b2f0a4eb0bb3182f7431f221bbdd34776815cb55ad4bf034f9ea82a8bb11", - "size": 3887 + "sha256": "1fbd1d74152f3e16ffd0e67224e0a047d066bdb7e768b64ef4403b6afe31410d", + "size": 3977 }, { "url": "https://claude.com/docs/claude-tag/users/use-cases/work-with-github", "status": "success", "path": "claude/claude-tag/users/use-cases/work-with-github.md", - "sha256": "bb72f0fa6ea0d95edbbee52a2e67711f678e191e7e195da5e412ee93e0ac3c06", - "size": 10044 + "sha256": "54fa7eaaf6575a87111eb1dd493ec7d20866896df3b63cc9257b8408877a1c3f", + "size": 10278 }, { "url": "https://claude.com/docs/claude-tag/users/use-cases/your-own-channel", "status": "success", "path": "claude/claude-tag/users/use-cases/your-own-channel.md", - "sha256": "433ee899a622e5531fd03bf1d6c714d4ff38fd373d4f29cdbb36326ae8d6027d", - "size": 9215 + "sha256": "6435f1b5e4057f6661a60cfe076fde09d95a218c426aaad0e038070b1cbb1a70", + "size": 9413 }, { "url": "https://claude.com/docs/claude-tag/users/when-claude-responds", "status": "success", "path": "claude/claude-tag/users/when-claude-responds.md", - "sha256": "9a98759941bb10174521fe2d71df8309b2a206c779f50c8601246628a3be30d1", - "size": 17247 + "sha256": "1988dddf3a3b1a41ef4eae1ae8a8259f8da9c50b747684ad004c1712a9a9604b", + "size": 17715 }, { "url": "https://claude.com/docs/connectors/building/after-publishing", "status": "success", "path": "claude/connectors/building/after-publishing.md", - "sha256": "c98f969c2b2e2c3a847624f9aabe090bd34d7dee89b709687aa4ad999753274c", - "size": 5827 + "sha256": "883d3181b8b8caf23bc3c047cf3e4c47acb4d000c5cb46ed848a6e43b9424dd9", + "size": 5971 }, { "url": "https://claude.com/docs/connectors/building/authentication", "status": "success", "path": "claude/connectors/building/authentication.md", - "sha256": "780679ac24c14905bab12b5ca5e217e26ff97d126e658f697fb79c5ec0cd02fc", - "size": 29712 + "sha256": "c0c6e4df158fca535258fedfccc42dd886edbb629e18acf7f6a6a0a274d94190", + "size": 30036 }, { "url": "https://claude.com/docs/connectors/building/directory-vs-custom", "status": "success", "path": "claude/connectors/building/directory-vs-custom.md", - "sha256": "3d583d09290862aaee2132137b2a6b78374eba671fb754febf7a073ba3c3d0cb", - "size": 6549 + "sha256": "0bffb3e5c98b7914397ff2fa07a1a2a1d8d71c86c720a74b05ba4ef4452b7b0c", + "size": 6693 }, { "url": "https://claude.com/docs/connectors/building/enterprise-managed-auth", "status": "success", "path": "claude/connectors/building/enterprise-managed-auth.md", - "sha256": "914eb88c800138b9c70bd49bfb4b471b5f9728777e9997e1fd93e6cd9f8d5ea4", - "size": 15186 + "sha256": "aa6ee44c27c4b438c6dd64c869782c8b1a8520903369e1c7243e7b90b7c5f7e8", + "size": 15384 }, { "url": "https://claude.com/docs/connectors/building", "status": "success", "path": "claude/connectors/building.md", - "sha256": "38d26ee2902a72c2b805907253c099258bf06d50e9dc9097ba660a2c1c58ef8e", - "size": 9556 + "sha256": "3b191c03a974caf867939e4cb59d2c9c78c7c7ddfcf694b8b251ce2d59b70f5d", + "size": 9934 }, { "url": "https://claude.com/docs/connectors/building/lazy-authentication", "status": "success", "path": "claude/connectors/building/lazy-authentication.md", - "sha256": "73e62b86ad55a98282706d4d9676ccd4b21d47f29ec56a05852794450685461d", - "size": 22177 + "sha256": "ec8153ef9f3cb00ab2659b936973d67500b2eaac9f4de2bea34e5e45190712be", + "size": 22303 }, { "url": "https://claude.com/docs/connectors/building/managing-your-listing", "status": "success", "path": "claude/connectors/building/managing-your-listing.md", - "sha256": "a6e9cd39fe935e531cefff92931ed81c73faa72a393a77e7e68a01135b348252", - "size": 8458 + "sha256": "f947b716119c080303e85f8cfa02f557e8b2b3a8c7cbd426d81ea3c2800460a3", + "size": 8620 }, { "url": "https://claude.com/docs/connectors/building/mcp", "status": "success", "path": "claude/connectors/building/mcp.md", - "sha256": "12d7aa2866ec7cb3d0846166e0101b3139070c31d6b7c5d6cc740beee22ea174", - "size": 3863 + "sha256": "d50ecc2ba1207d12620c3434d9227e3112b0bf866e361e5bfb93ca241afb4a00", + "size": 3971 }, { "url": "https://claude.com/docs/connectors/building/mcp-apps/design-guidelines", "status": "success", "path": "claude/connectors/building/mcp-apps/design-guidelines.md", - "sha256": "c48718cf6992e280a4e19193587c353b412d8cd619293c8ad6eddc0a694d6ddc", - "size": 23434 + "sha256": "3ec937445cc6499a66ec5a87c35750571451fdf7dbec2fd4443ec81e1b9a5a96", + "size": 23524 }, { "url": "https://claude.com/docs/connectors/building/mcp-apps/external-links", "status": "success", "path": "claude/connectors/building/mcp-apps/external-links.md", - "sha256": "ec10cc8bd5ebc9d04515c0bb834bedbe0809b752bca03ae471f40fcf16203339", - "size": 4877 + "sha256": "8734d3eb79c2f12b701f1204e8222cdc3618116ad4db7ebbf2e005f26436897c", + "size": 4967 }, { "url": "https://claude.com/docs/connectors/building/mcp-apps/getting-started", "status": "success", "path": "claude/connectors/building/mcp-apps/getting-started.md", - "sha256": "b43905d134e7aaf473484e1b8d99cc9e3005cc585efa0fdf4edf559e3c847c94", - "size": 8399 + "sha256": "7e17481f92e279c01e66472ec21d46e7fd0b48259c52dbde986e2a273c0def52", + "size": 8507 }, { "url": "https://claude.com/docs/connectors/building/mcp-apps/instance-supersession", "status": "success", "path": "claude/connectors/building/mcp-apps/instance-supersession.md", - "sha256": "dcd02ebc688947c91d6a66cd36ffc5aa9ea6faec295895d31a06fefb198485b9", - "size": 15239 + "sha256": "f2a4d1f70b470f7e30246fcbd52360066ada3fc1dc70a3ae1e7085a4e234e2f5", + "size": 15275 }, { "url": "https://claude.com/docs/connectors/building/mcp-apps/quickstart", "status": "success", "path": "claude/connectors/building/mcp-apps/quickstart.md", - "sha256": "978701559146e3908c35b2edb51dbbcdd70a3df768962dfe4c70836d4303c8e4", - "size": 19301 + "sha256": "26f84ce594043c2858882662d748c7134e80d574606fbac414b5274f1780f8e7", + "size": 19553 }, { "url": "https://claude.com/docs/connectors/building/mcp-apps/transparent-theming", "status": "success", "path": "claude/connectors/building/mcp-apps/transparent-theming.md", - "sha256": "ca74051066f7793777609a631d812a788f7a071fb79722cd90c1bc704d4409e7", - "size": 9980 + "sha256": "c4939073c9b2fa116331d3aa89b6bebf5613408292b7501d2443717ae32b61f3", + "size": 10070 }, { "url": "https://claude.com/docs/connectors/building/mcp-apps/troubleshooting", "status": "success", "path": "claude/connectors/building/mcp-apps/troubleshooting.md", - "sha256": "c956f5fca73c7f5c78ff4cfea09d82925b88d3dbbc66b6ff32f227ef3f6a7cb5", - "size": 8754 + "sha256": "fb19e49b228ed432d6c937e1efe77e1786f720f039821ad1efd04b08431d1367", + "size": 8844 }, { "url": "https://claude.com/docs/connectors/building/mcpb", "status": "success", "path": "claude/connectors/building/mcpb.md", - "sha256": "7c6988b8e7383a190d6f127ded49ece80fbfdc86b6ee50212e4502db68cecb05", - "size": 10285 + "sha256": "54d34b644e716e0a8e79b97dedc4ba9ff21f44949dd9100c5e0daab341e20999", + "size": 10393 }, { "url": "https://claude.com/docs/connectors/building/quickstart", "status": "success", "path": "claude/connectors/building/quickstart.md", - "sha256": "3a18f353c152ead2fdbadeafc21a2c9089322722f125fc9e0f24bb7035c117a1", - "size": 14504 + "sha256": "c645c3440fed37fc2d48472c615abeafec3992d7fecca976224d99262f46e06a", + "size": 14720 }, { "url": "https://claude.com/docs/connectors/building/review-criteria", "status": "success", "path": "claude/connectors/building/review-criteria.md", - "sha256": "a22367b226883a47d49a7103469aac40bee1b76864d2d7831fd100797dfd9457", - "size": 7107 + "sha256": "0b8f3952f6ac777fa17a1773be0fdbd5ed2e0e1914f4464093ea11298c49fca0", + "size": 7251 }, { "url": "https://claude.com/docs/connectors/building/submission", "status": "success", "path": "claude/connectors/building/submission.md", - "sha256": "171e184153145c6a6aeed2254b0361671e445fd973b1370e05e0b56dd073d14c", - "size": 14462 + "sha256": "81a8058b886d57ae1350d95cf45d34f549a8eef56e8c9bf135a2fbdcbd617c03", + "size": 14912 }, { "url": "https://claude.com/docs/connectors/building/testing", "status": "success", "path": "claude/connectors/building/testing.md", - "sha256": "3a20b6864b1396495a0d39154374a701813caccb876e286bef359a0e545a8c61", - "size": 7011 + "sha256": "88cccc9ac3ea71b48eb5b881c8e1bc30b5caea55efa272c4b1b314a3da770380", + "size": 7191 }, { "url": "https://claude.com/docs/connectors/building/troubleshooting", "status": "success", "path": "claude/connectors/building/troubleshooting.md", - "sha256": "2afd5d2a3bdd23fa5ab38da52efc7771345c325990475488f932f113471c0a84", - "size": 19859 + "sha256": "ad6d89c0e63d452f497dcf7af8588e9b23d460eccae0013fe5b63b21b3d665a9", + "size": 20057 }, { "url": "https://claude.com/docs/connectors/building/what-to-build", "status": "success", "path": "claude/connectors/building/what-to-build.md", - "sha256": "221cd95fd65ec9b4d2608de8c0782a642354b577fd971981c1f1aa4e12c5e5ca", - "size": 6780 + "sha256": "7c6a6cd5562e3ab530b5e909598a26ed3a7a4ece05d9dfc9ade56f6e85c1280f", + "size": 7050 }, { "url": "https://claude.com/docs/connectors/custom/add-unlisted", "status": "success", "path": "claude/connectors/custom/add-unlisted.md", - "sha256": "280a627fbb3ce9c8c32d94a3aa7d21c197f587a30dba645580b9de6b1b5fb923", - "size": 14288 + "sha256": "e30de9a670b044785c36ea36764427720e62510e4670986eb760b8025fa7d9de", + "size": 14468 }, { "url": "https://claude.com/docs/connectors/directory", "status": "success", "path": "claude/connectors/directory.md", - "sha256": "f794bc498bac701741cf57ecf4029afec76b7ea020805c83d2e73061d145b682", - "size": 5654 + "sha256": "8a67f1208e290fd29e97f81d888be3a5cd9d001d90a28f35c4b14aa0362141a9", + "size": 5816 }, { "url": "https://claude.com/docs/connectors/getting-started", "status": "success", "path": "claude/connectors/getting-started.md", - "sha256": "1d56512159915f8ad2547f21842e905186e292ebe01c9772a1955bef46f68612", - "size": 8014 + "sha256": "66f14a402fa858dea288c9d68c2364ebf8a6f8170af645303e06e143c61135a9", + "size": 8194 }, { "url": "https://claude.com/docs/connectors/github", "status": "success", "path": "claude/connectors/github.md", - "sha256": "c6c7bda14d740d04567a39b3df4869a3e5ff22362877788fa81a9b4522115702", - "size": 7620 + "sha256": "e0768388590f54627a46622bd57c1f53eebfe98ac871910698eab7ddc59585c1", + "size": 7656 }, { "url": "https://claude.com/docs/connectors/google/calendar", "status": "success", "path": "claude/connectors/google/calendar.md", - "sha256": "395c9addcc445ba6c42bf8e1f1dc4aac6b5bdd2d7d08b29ccbf5d99327c7092f", - "size": 3733 + "sha256": "8c971afda9361d28255eaee050efc329771d686547f4337d2bc048ecf8552f82", + "size": 3841 }, { "url": "https://claude.com/docs/connectors/google/drive", "status": "success", "path": "claude/connectors/google/drive.md", - "sha256": "b0f9b60b7b1cc23b8f1ca2418eb82c246bb1a75423ed126e63b1799fb1c6d201", - "size": 6755 + "sha256": "d504da00c68b519465da0e0de93460e7eded68da21c3eff4913cb9f8011de351", + "size": 6899 }, { "url": "https://claude.com/docs/connectors/google/gmail", "status": "success", "path": "claude/connectors/google/gmail.md", - "sha256": "287903641caadf333a408916b53a4627f4f8e03ad4f1665fc02cf95684ef9cbf", - "size": 3723 + "sha256": "5097ccae9ea0612e34abe067dd26e7fff6c4645958d0aee9036d7ea78b7a71e7", + "size": 3831 }, { "url": "https://claude.com/docs/connectors/mcp-tunnels/oauth", "status": "success", "path": "claude/connectors/mcp-tunnels/oauth.md", - "sha256": "73e9b77321c5f2d122d4d2625728265588f04c0bf48efe25d05e20918415d837", - "size": 8586 + "sha256": "affc9c04db8e29172a5830a3893fbbb68a25c79bf34207c699d480ba7007c1c6", + "size": 8676 }, { "url": "https://claude.com/docs/connectors/mcp-tunnels/overview", "status": "success", "path": "claude/connectors/mcp-tunnels/overview.md", - "sha256": "c04c24be5bb3d4151ff3be0633ed0c47ae46fc4cff2bc9e1f93d5a8a940a68fd", - "size": 9591 + "sha256": "6b06e455ce520070a9d72ad7d577417f077253cd5f6caa343c87f63c568b7422", + "size": 9735 }, { "url": "https://claude.com/docs/connectors/mcp-tunnels/setup", "status": "success", "path": "claude/connectors/mcp-tunnels/setup.md", - "sha256": "afcd091d38afa8c92872bb499e36509df196587b966a2e26f0240887533361d2", - "size": 19705 + "sha256": "ea3ef7676ddfa0be900f89e9e9590add35da9822eb443a7c27da83ce90b280c7", + "size": 19849 }, { "url": "https://claude.com/docs/connectors/mcp-tunnels/troubleshooting", "status": "success", "path": "claude/connectors/mcp-tunnels/troubleshooting.md", - "sha256": "92847d286eec011e74191c029633f6fb6bafc05a9d353958f7446b6bf8df7197", - "size": 11154 + "sha256": "a3a5d6d2c4a5f9b3903d231a3bbcd0e2fd76312d9646802aed56fd402d8a0959", + "size": 11316 }, { "url": "https://claude.com/docs/connectors/microsoft/365", "status": "success", "path": "claude/connectors/microsoft/365.md", - "sha256": "e26892051119948d58e90a215d9dff40ddc1259e67dd51e3a0e15c8270322ef7", - "size": 11819 + "sha256": "292228853bf30143ec65688d94435f6a9b5f71057ae9913d703c5bf62d6ee2b3", + "size": 11891 }, { "url": "https://claude.com/docs/connectors/slack", "status": "success", "path": "claude/connectors/slack.md", - "sha256": "7d7aee692e96f3e5911786c9a01a44fe7bdd3404f10777713c539178363bb25c", - "size": 6293 + "sha256": "628d75894a97a02be5b6ab99a1f21de8d6976e69834ace9034bb0073d39faac6", + "size": 6383 }, { "url": "https://claude.com/docs/connectors/verification", "status": "success", "path": "claude/connectors/verification.md", - "sha256": "1f0828e08b642c1a20b17c6aff67640b7e8f503eac36769fc1a65d13cbd0d60c", - "size": 4973 + "sha256": "160926fa96d451d1055dbcdd13c47063a78afd7670e38d48b0a669a8766054a1", + "size": 5135 }, { "url": "https://claude.com/docs/cowork/changelog", @@ -13484,78 +13505,78 @@ "url": "https://claude.com/docs/cowork/guide/dispatch", "status": "success", "path": "claude/cowork/guide/dispatch.md", - "sha256": "8d9ae1f0e3963b83cf4975d1c8f933d42afc94f4afe3b86a0cffab12b2661072", - "size": 4430 + "sha256": "7566241657bfde78c4e7cfaec6ea6b60099d6a7f1c00ea8f037719ea99b0d985", + "size": 4484 }, { "url": "https://claude.com/docs/cowork/guide/plugins", "status": "success", "path": "claude/cowork/guide/plugins.md", - "sha256": "6ac91b04d128b44072322cff054c5b5831157db89e3c7d78a444ea732cbb62bd", - "size": 5441 + "sha256": "8ecce01045507bee22b2d86b61030a343e27f34faca67e12293babd46347b6b7", + "size": 5603 }, { "url": "https://claude.com/docs/cowork/guide/projects", "status": "success", "path": "claude/cowork/guide/projects.md", - "sha256": "2effcb27585a241781dedd762664125d3bc9d315f2f0a7560541a79d0ebc7b2e", - "size": 4010 + "sha256": "a82aeddc53016cf0f4ac281ab6ddbeee694b07d0fb992def6dbc436f4e9fda0c", + "size": 4082 }, { "url": "https://claude.com/docs/cowork/hipaa-setup", "status": "success", "path": "claude/cowork/hipaa-setup.md", - "sha256": "7972dbfa1735633a95c52865609a4f108e60193c33ba639774d390a39faa32b7", - "size": 24871 + "sha256": "81b8251bff5463605dbdcba8e6773667281c3c82f9a1c34d3c4e3dd9efcb332c", + "size": 25141 }, { "url": "https://claude.com/docs/cowork/monitoring", "status": "success", "path": "claude/cowork/monitoring.md", - "sha256": "d41ff81dbb39990ea7cc7fa436318c876b9edd554f4a806a36a6720f8c6035de", - "size": 14475 + "sha256": "b2d7283b82c5d5f95b6f2636ea9d0c67171dc1fafbfb7d9144e8d263b5a23705", + "size": 14691 }, { "url": "https://claude.com/docs/cowork/overview", "status": "success", "path": "claude/cowork/overview.md", - "sha256": "2ef76e0dfda2092a74aee29bb302d046038960387d19165a2f62cad5057e6dcd", - "size": 2093 + "sha256": "0514b0f68c804bbaac69c19d497e3bab9d06cf2af0c2ba6b117ddb6043d70db5", + "size": 2165 }, { "url": "https://claude.com/docs/directory/publish", "status": "success", "path": "claude/directory/publish.md", - "sha256": "05fbe03e9aada49e85e659491aedc194b4cf8b6eb433ac922dcba7bba8dbc7f3", - "size": 11251 + "sha256": "eb7cf73cb12bf6e72807334a4aba403224ead7129ba6022a3a67972c4b0cb3a9", + "size": 11665 }, { "url": "https://claude.com/docs/directory/submission-status", "status": "success", "path": "claude/directory/submission-status.md", - "sha256": "781104c746b400ba6d0270eb118f50c5b5f446e7d0720988aea6dd1ef24427d2", - "size": 6768 + "sha256": "ac0178c8e2b91e3ba690256230dc2b12059a95aaecafbf176a97bcc8d0f9477c", + "size": 6948 }, { "url": "https://claude.com/docs/extend/overview", "status": "success", "path": "claude/extend/overview.md", - "sha256": "205d6c71318f48382a81e128a3685cfd5836e8eca22b5a30878ae9b78f3e9088", - "size": 5485 + "sha256": "f144d00aea3219e7a4578a0a55b9bd69986e8d9d24658abe1e17dbe0f3e7ea61", + "size": 5809 }, { "url": "https://claude.com/docs/government/account/overview", "status": "success", "path": "claude/government/account/overview.md", - "sha256": "a4e309a16ac9ddb2a7e05150febf36822ac0f96f63bfafdbcadd9fcdd9435ef2", - "size": 5222 + "sha256": "97118512888f5aa20b8874ce40947601bc4c39c071e7188cd7bcf2b37f0e87e8", + "size": 5294 }, { "url": "https://claude.com/docs/government/account/profile", "status": "success", "path": "claude/government/account/profile.md", - "sha256": "a7a93335060b9eafe13b134b81fe4a9ac68965c75702b44f350467465b9dce7a", - "size": 5006 + "sha256": "d653116777cc57df1420b2fcbdfaba89f37cde3304556ca67193d4b29a59f481", + "size": 5042 }, { "url": "https://claude.com/docs/government/account/sessions", @@ -13582,211 +13603,211 @@ "url": "https://claude.com/docs/government/config/overview", "status": "success", "path": "claude/government/config/overview.md", - "sha256": "605d468e4fd8aa65b186285ae5c13ad161d3bb15ac9866d515087faabe60e955", - "size": 16680 + "sha256": "b2c3e40d25100f0a5d2ebd3eb38b9d877ddcac7c80bed354dc0fec23f8ced0dc", + "size": 16914 }, { "url": "https://claude.com/docs/government/config/plugins-and-connectors", "status": "success", "path": "claude/government/config/plugins-and-connectors.md", - "sha256": "f0bbae81bc82b574ecf64ac268be32a8aa2d8a462d8453ba1359fe2e099db985", - "size": 11855 + "sha256": "3fe2de0aaf78e653d15d894ef60a4241d947357177971b184b430962d4e84dd9", + "size": 12089 }, { "url": "https://claude.com/docs/government/config/settings", "status": "success", "path": "claude/government/config/settings.md", - "sha256": "5c761532de3ac069949ba9280d5da4a9b1c5729ece2719ba8c518b6b3e3be7e4", - "size": 24890 + "sha256": "902de1fe33cf121f96dbc7a2354c18e3a8b15e0addb6c1469dd514a7a4688797", + "size": 25574 }, { "url": "https://claude.com/docs/government/connectors/microsoft-365", "status": "success", "path": "claude/government/connectors/microsoft-365.md", - "sha256": "1d94cd31f23f35050d61f89d43820a0b871acadedf5cdc4b4f5b5f02a8a6af64", - "size": 22331 + "sha256": "11aced2d5e7a123817cf18a86dd58d0fd0268b24d4bc5e711402785999b85879", + "size": 22421 }, { "url": "https://claude.com/docs/government/connectors/overview", "status": "success", "path": "claude/government/connectors/overview.md", - "sha256": "982b666f489b84ab6870cb3cc6b815cf154d2baa10f231fad45add2007f63ebe", - "size": 12001 + "sha256": "057ab4aa2a3c0d453d727fb79802b6fbf1ad3aa27bb63a048ab806cfa50f4534", + "size": 12109 }, { "url": "https://claude.com/docs/government/deploy-claude-code/configure", "status": "success", "path": "claude/government/deploy-claude-code/configure.md", - "sha256": "f69577597e4ae398d1b8a92637fd564ff4fa0d0fa7f8c6d95ff48f00d2f2f42b", - "size": 19950 + "sha256": "fbc4462aaa2193d4b7ccb0111fd603c1d127b43d34e11cb778f1d711ca8da85e", + "size": 20274 }, { "url": "https://claude.com/docs/government/deploy-desktop/configure", "status": "success", "path": "claude/government/deploy-desktop/configure.md", - "sha256": "696b215dd89333c803b7de4d09f20e5e1f1ae94c59e840a9bd492c1206215a16", - "size": 44302 + "sha256": "9debc72223312c869b30eb3da6f653b028095380ec85d2cc65435c2a3d157222", + "size": 45094 }, { "url": "https://claude.com/docs/government/deploy-desktop/windows-checklist", "status": "success", "path": "claude/government/deploy-desktop/windows-checklist.md", - "sha256": "24c74bf3c561d0a4037b83352c4274af736491050ed69993d7867c0c885bbcc7", - "size": 13385 + "sha256": "9728346384a4fa9572b6b167aa1eb7c57825ab444bbc6de8621d9c2932b67a45", + "size": 13781 }, { "url": "https://claude.com/docs/government/deploy-microsoft-365/configure", "status": "success", "path": "claude/government/deploy-microsoft-365/configure.md", - "sha256": "84e8d32f86f7f189c6c33a1b3c85c84a1a36cb486d2612ef6bbbfa4b3c90c265", - "size": 11356 + "sha256": "12517cf617d6eca330e1c6ba1966b30ed3946dbaff81234b24dfff66f3ac648b", + "size": 11590 }, { "url": "https://claude.com/docs/government/desktop/import", "status": "success", "path": "claude/government/desktop/import.md", - "sha256": "fc49bd6fbfcdd6a06153401829b1324c7f12f0ef88f7e637556c50d82ba20cb2", - "size": 9680 + "sha256": "ecd1436fe7b1afbab0f6b05528e12d19a4acf473a6acea680ef9dd136134dd93", + "size": 9752 }, { "url": "https://claude.com/docs/government/desktop/models", "status": "success", "path": "claude/government/desktop/models.md", - "sha256": "e9a19ec032154e05798a9468a940778161f990d45c68fd982ab29c7bcfee089c", - "size": 2785 + "sha256": "b0917f4d0d66a5cc654f9f0e35f885d19b747a41c2e95c6e25365c304d28ae70", + "size": 2839 }, { "url": "https://claude.com/docs/government/desktop/plugins", "status": "success", "path": "claude/government/desktop/plugins.md", - "sha256": "c7ca375f795b402948b01047fd0721892369aa467042aaff45a72278eb595824", - "size": 5573 + "sha256": "25290f151317df291c5c4fa64223017e3323e900107a337e73179d10d1965a9c", + "size": 5591 }, { "url": "https://claude.com/docs/government/desktop/skills", "status": "success", "path": "claude/government/desktop/skills.md", - "sha256": "6e0fcd531d6117d301e15da482c33edf1c17d3d15b43b79194e0e92709ec8aca", - "size": 6304 + "sha256": "1131b4dc8409015391bf381c850a71abf5504f87ade29ea95a107af178fbc2bd", + "size": 6466 }, { "url": "https://claude.com/docs/government/desktop/video-walkthroughs", "status": "success", "path": "claude/government/desktop/video-walkthroughs.md", - "sha256": "9e48cefbacd5c33340551be0e9dfd8cbf3e812563cfb1d48679e782368ab12f0", - "size": 12230 + "sha256": "0ff712c93f002c5a3f027ec56bc63c61e1a3f2250fc95144bfa97505b0461a68", + "size": 12222 }, { "url": "https://claude.com/docs/government/moving-from-web", "status": "success", "path": "claude/government/moving-from-web.md", - "sha256": "07b635b5c5841a91bdc2de8f7d29cde4ee4e3eba7c7a17c6514c97ff851ef032", - "size": 6396 + "sha256": "aca9bb6011c99d4afa9e6baa674dfc69b3652e3f0e7e8300c88367ba73da2cbb", + "size": 6882 }, { "url": "https://claude.com/docs/government/org-admin/analytics", "status": "success", "path": "claude/government/org-admin/analytics.md", - "sha256": "23c8e18ca89a0a01206132f3804d569d7124a3e59e483f2be55622aaa967dfcd", - "size": 8972 + "sha256": "3ad61c98aee38f641ee23eb4de7671e06419b9ca87ad59dac6422235926f2b4e", + "size": 9044 }, { "url": "https://claude.com/docs/government/org-admin/billing", "status": "success", "path": "claude/government/org-admin/billing.md", - "sha256": "8002e4a808eea21195d669592e7fe1222feee61ee386eeccfc5334150f180f1a", - "size": 4263 + "sha256": "6af1034ab4a08e6538b513bc748ec78958e6fcf5dd7af337c010d81a419bc34b", + "size": 4317 }, { "url": "https://claude.com/docs/government/org-admin/compliance-api", "status": "success", "path": "claude/government/org-admin/compliance-api.md", - "sha256": "8d476e21f2ad8ae91efd1555b8249e1cf154ca5ef372beb1583333c65b8cb323", - "size": 10786 + "sha256": "da52672853445bf113d81cb87256abec5fbbc5dbbc9c7e0cecf20d6bcf16d41c", + "size": 10858 }, { "url": "https://claude.com/docs/government/org-admin/configuration", "status": "success", "path": "claude/government/org-admin/configuration.md", - "sha256": "67ea4dc8cafb1ef188360812dba4990366a76d93763aac5ef7d9f3b98d1c3e6c", - "size": 2878 + "sha256": "5e65356b7dbf223e390d7b5d26ea85abc41810a418f36fbb09258c62f2c3900d", + "size": 3022 }, { "url": "https://claude.com/docs/government/org-admin/overview", "status": "success", "path": "claude/government/org-admin/overview.md", - "sha256": "0b1fd13bb7a029f9ab439e1e2818d2570fed48bc33719c37dc3a585a50211bba", - "size": 8605 + "sha256": "3dc40fbc84c3749d3f92c7fbe0103887d85ae655e784bee141dbf3d2fd3e2938", + "size": 8821 }, { "url": "https://claude.com/docs/government/org-admin/provisioning", "status": "success", "path": "claude/government/org-admin/provisioning.md", - "sha256": "22cea9ff4eb0bedeb417f45eecd1a3613b13a7ca71237c46146cdc40b9b2b3d2", - "size": 5461 + "sha256": "adb7bac2c9c5770422ba7b2d0421442aa93beccbd5af9c94b2492c434bc3458c", + "size": 5605 }, { "url": "https://claude.com/docs/government/org-admin/readiness", "status": "success", "path": "claude/government/org-admin/readiness.md", - "sha256": "7e39777f7ed5be9e3e9dcf933ba16e1314dea78c81e04993615f348873807572", - "size": 6456 + "sha256": "4ee3c4a5f70ab26a84f20c8b0933eecb10169b6988c99ca7c27bfaa15d6b6d8d", + "size": 6528 }, { "url": "https://claude.com/docs/government/org-admin/seat-tiers", "status": "success", "path": "claude/government/org-admin/seat-tiers.md", - "sha256": "3a1c53d9e3e10c957225ae8e8851ee35786adf2d87461dc08ecf889fc4a24a01", - "size": 6970 + "sha256": "b965eef9c75be85cb1cda0913be79cf13492b988711fb0e218e4a8121c54aed5", + "size": 7042 }, { "url": "https://claude.com/docs/government/org-admin/seats", "status": "success", "path": "claude/government/org-admin/seats.md", - "sha256": "4248be6a6c5c68918579195c099b26f657932905f9b3a363655b14651b888f16", - "size": 5915 + "sha256": "565b7312255750d351c0e35f3cd9100d84d386713051d646e3ea13e4e54af318", + "size": 6077 }, { "url": "https://claude.com/docs/government/org-admin/setup-wizard", "status": "success", "path": "claude/government/org-admin/setup-wizard.md", - "sha256": "5f2858e10ae2018c370fae5a2e500df771d131de1fc16f0fa3f74af3fb22c541", - "size": 6495 + "sha256": "95e0a7738cae94c7b87b3b07255a1c9f7828bd76916086271f99deda4602593b", + "size": 6567 }, { "url": "https://claude.com/docs/government/org-admin/users", "status": "success", "path": "claude/government/org-admin/users.md", - "sha256": "79fec9bd9a0ed9622c1c2ed519757f504181196ea97b05d054affc8c06e94866", - "size": 8031 + "sha256": "b97accf13a55eb3c9271eee9f4b550c59eaca7b2c64135813c69f9da8c7a99b7", + "size": 8103 }, { "url": "https://claude.com/docs/government/overview", "status": "success", "path": "claude/government/overview.md", - "sha256": "ad37c9a9b2d15b735f372998377c4fae1f767650b0003463fb8e95a9731945b8", - "size": 10715 + "sha256": "efe462ccaf7f1ff97f812d401222d3a9e5a3f2a7493f275c446b245c594a0720", + "size": 10913 }, { "url": "https://claude.com/docs/government/security/security-and-data-handling", "status": "success", "path": "claude/government/security/security-and-data-handling.md", - "sha256": "d3c3205272f7367d61866874ce20df71c4a3c0bb1f52ce6514de6a34ba9a8746", - "size": 44446 + "sha256": "41185ef6f5639d04272aba48624baac3af851497925a8be5ac3a1269443b9512", + "size": 45940 }, { "url": "https://claude.com/docs/government/tenant-admin/admins", "status": "success", "path": "claude/government/tenant-admin/admins.md", - "sha256": "0baada35ceb8e7f054de819b9bf5143d02381a32af8e5f6d71ea750db3754b4d", - "size": 3486 + "sha256": "7773466285a9c5b380df18c39ed41aa0cb8cee61ef8f28882b36eb0ef306b6c1", + "size": 3504 }, { "url": "https://claude.com/docs/government/tenant-admin/configuration", "status": "success", "path": "claude/government/tenant-admin/configuration.md", - "sha256": "5a8959e51c323b81fc940aa730b020fe6f7acd6aa321e539a601d606d093867b", - "size": 2628 + "sha256": "22701ba94ac75345a6b64ecd7c41649f5bb024f773b223f2b4b988da0f58b573", + "size": 2754 }, { "url": "https://claude.com/docs/government/tenant-admin/credits", @@ -13799,92 +13820,92 @@ "url": "https://claude.com/docs/government/tenant-admin/identity-and-access", "status": "success", "path": "claude/government/tenant-admin/identity-and-access.md", - "sha256": "e19348d892faf062bc6b20d464dd4041889b551d9a3fd4932da66e5bcd65e408", - "size": 24211 + "sha256": "b711e9dff9c39410a3f2d218609efaf08e12144c717ccbfcb9ed26454091f30f", + "size": 24319 }, { "url": "https://claude.com/docs/government/tenant-admin/organizations", "status": "success", "path": "claude/government/tenant-admin/organizations.md", - "sha256": "8474259f14fc39b6dfc6f0ece81d38065d72a31fd9f605d7a2dc32dc40a71192", - "size": 5760 + "sha256": "4333132da64305421ccc48bc39e1d91267b42479c9d2bee028d57e0daa0c251e", + "size": 5904 }, { "url": "https://claude.com/docs/government/tenant-admin/overview", "status": "success", "path": "claude/government/tenant-admin/overview.md", - "sha256": "efa9d41e5cfef15f92a374483d8097844bb67efb9bd78978c65899875d38f6ee", - "size": 6756 + "sha256": "d0bf46aae0d07a696e224b75e57c2ec31dee629413d4b696ffc22f03fa4856a6", + "size": 7116 }, { "url": "https://claude.com/docs/government/tenant-admin/readiness", "status": "success", "path": "claude/government/tenant-admin/readiness.md", - "sha256": "c737c4081c7b3edcbddf2ffa44d2b89bacc6be1725df477829d7f59ce65f236d", - "size": 6365 + "sha256": "e4bf5ab49aaea49041f22fe6df46538bc156ff3910bf51fa525dfba9a32a42a0", + "size": 6473 }, { "url": "https://claude.com/docs/government/tenant-admin/seats", "status": "success", "path": "claude/government/tenant-admin/seats.md", - "sha256": "1f23ca512e1e8dc524946db6993e87aa280a86981515136d88efc0fd8fdf90d7", - "size": 5538 + "sha256": "096bc5d20a0f187aa6a97f214e8823c5b8f53bc466ff984012e90937ad1fd921", + "size": 5556 }, { "url": "https://claude.com/docs/government/tenant-admin/setup-wizard", "status": "success", "path": "claude/government/tenant-admin/setup-wizard.md", - "sha256": "d20619037df1b7b85d66aca0cac0785bf1777f8f9aabf45b21508d8cbced7cc8", - "size": 14732 + "sha256": "8bba1f95a8b6fdafeade17bfe0647c288f56a5b3f78ad8d22b85d51b30ce66f0", + "size": 14912 }, { "url": "https://claude.com/docs/government/tenant-admin/tenant-restrictions", "status": "success", "path": "claude/government/tenant-admin/tenant-restrictions.md", - "sha256": "556432a1886f4e14237b897c46a5ac9e11dedb4ba1ff454f64344013f27cf98a", - "size": 7998 + "sha256": "5eccc2c90282886b69a27b3e569516d077cd0fb75331141114bb606b6ddad916", + "size": 8016 }, { "url": "https://claude.com/docs/government/video-walkthroughs", "status": "success", "path": "claude/government/video-walkthroughs.md", - "sha256": "9ec44bd02591c024ef7d3efe6fb97db38a4705ca813f9b1f6556eca2ea8fadfc", - "size": 23624 + "sha256": "f708667e72e64f096d63a14ea9957f24e2e2e62d3efc71386b0d3129dddce869", + "size": 23894 }, { "url": "https://claude.com/docs/office-agents/connectors-and-skills", "status": "success", "path": "claude/office-agents/connectors-and-skills.md", - "sha256": "693b00575a3eed4e9ca96f7f7aaa46436f13830e57f08c1438df31ecff0261d8", - "size": 2452 + "sha256": "fff41953290c054af6cf037cb85d4b15d6c395b221571cb5b4818e3961d4d848", + "size": 2542 }, { "url": "https://claude.com/docs/office-agents/data-storage", "status": "success", "path": "claude/office-agents/data-storage.md", - "sha256": "19c7c577719206a24567c92b101f69ea0498aacbbb8b75ff5c53393612912a9c", - "size": 30208 + "sha256": "8cf88c1caa01ca6b79f73a1d1596f1f9798a2de5d73c3808b69e9db52bb604f0", + "size": 30352 }, { "url": "https://claude.com/docs/office-agents/dictation", "status": "success", "path": "claude/office-agents/dictation.md", - "sha256": "fae829e7ecf0c2e4d04a3d826136e8646a58ced50287776efd13b6d86f84e7a1", - "size": 2455 + "sha256": "40f6c6816c722f3e5c09a53d33cad97885d3836cd50e2c9f1ac0e848e44b82ce", + "size": 2473 }, { "url": "https://claude.com/docs/office-agents/enterprise-readiness", "status": "success", "path": "claude/office-agents/enterprise-readiness.md", - "sha256": "588ac0ca72398d585b41820c1d92370ece554d7fa24f077909722fb80ce69009", - "size": 5615 + "sha256": "58c2783600586f3bd80aade3522564e857f998ba60300390423ca2130ad1c2a8", + "size": 5759 }, { "url": "https://claude.com/docs/office-agents/excel", "status": "success", "path": "claude/office-agents/excel.md", - "sha256": "a6debd096fb3811a6e6e1a5cc7f772646042eaee8a2b3b020b17ced90cda3afb", - "size": 11073 + "sha256": "aab80cb0c43c7689f49b69331e3dcc6ac687100a414cb0037577e19dd3708812", + "size": 11181 }, { "url": "https://claude.com/docs/office-agents/fsi-plugins", @@ -13897,519 +13918,519 @@ "url": "https://claude.com/docs/office-agents/opentelemetry", "status": "success", "path": "claude/office-agents/opentelemetry.md", - "sha256": "b51d15820df0372a57040895a443850edaee47469fbd6386114204939e894dec", - "size": 16636 + "sha256": "6acdc94945af01fddeff117dab11aa8ad8ed2ca396fee1bfad53f7e30fb66231", + "size": 16672 }, { "url": "https://claude.com/docs/office-agents/outlook", "status": "success", "path": "claude/office-agents/outlook.md", - "sha256": "2402686803cdd8460192fe82ae195c631533b8ea90ccf30855c6a92268964ef5", - "size": 20586 + "sha256": "1e5df44f455cfec6f17f5955b47d078949b778244a4ffa2534102e02f9406ad6", + "size": 20748 }, { "url": "https://claude.com/docs/office-agents/overview", "status": "success", "path": "claude/office-agents/overview.md", - "sha256": "79a11d62fa2598a66d466a140823705326d011f7a2cdf1b36a4be36e9776aabc", - "size": 2398 + "sha256": "8d6e7be5c70881bc5a41aaebcaada9233071c4f3965db87140946a1da71817b4", + "size": 2596 }, { "url": "https://claude.com/docs/office-agents/performance", "status": "success", "path": "claude/office-agents/performance.md", - "sha256": "d71a8e3e0df5b8495f66f7fe92cf64483d5d50815de62926815f7ff94282459a", - "size": 23060 + "sha256": "51a5ea94e2cec96c1dd89ec74b11623c9667e6d6d4cde09588a9993b337b44cd", + "size": 23096 }, { "url": "https://claude.com/docs/office-agents/powerpoint", "status": "success", "path": "claude/office-agents/powerpoint.md", - "sha256": "e5c9e4ddb863095816172dc4881470fdfebf690895339a5a59b8ba8622eded16", - "size": 13094 + "sha256": "85195a47b425f311214c0460e472f380c029d2359417b80404734f1b2b0293c8", + "size": 13184 }, { "url": "https://claude.com/docs/office-agents/third-party-platforms", "status": "success", "path": "claude/office-agents/third-party-platforms.md", - "sha256": "cc33afae808004bd3f62bc07f365c1a76eb2e7f08c6ec47e97eeecb3fe28fce7", - "size": 56530 + "sha256": "29234e1f812bd60144f5a864185b333cc6f5a1af9a55e48f5129c8590c2b6b08", + "size": 56656 }, { "url": "https://claude.com/docs/office-agents/word", "status": "success", "path": "claude/office-agents/word.md", - "sha256": "5f1e7249460787acc5eb59d48046bd006ae513c84e0eba4767a9da1c68a852c1", - "size": 16004 + "sha256": "dd188eb4e00f7524c92dc874487b958ac92d94ee74bdfbeb012bc33db9606678", + "size": 16094 }, { "url": "https://claude.com/docs/office-agents/work-across-apps", "status": "success", "path": "claude/office-agents/work-across-apps.md", - "sha256": "24465137e84320a08593e4fa9856fa85eb0bfa40a1b0736f9ccbe4700e87cf34", - "size": 5914 + "sha256": "e50621db0f939a5698c2efe85e019a234ed906eb789ad1bf3d41082228d4025f", + "size": 5986 }, { "url": "https://claude.com/docs/plugins/admin", "status": "success", "path": "claude/plugins/admin.md", - "sha256": "20e8127050991d32ef0283ff4c50d3aa7ffa903a3811ada300cce993d74fcb23", - "size": 25770 + "sha256": "a5f7ec35a79f77d6d1fe09bf23b3d6342796c814568a804e3aab16b77da7154b", + "size": 26004 }, { "url": "https://claude.com/docs/plugins/build", "status": "success", "path": "claude/plugins/build.md", - "sha256": "0d3a672369839b3a3ccc4b3d3d7de44473aab822a31f29608a305194bacff773", - "size": 18031 + "sha256": "83350cbea618c2ea361aef8335e686c5bb9726e9dc1a0471254b8cc8e699ac4e", + "size": 18319 }, { "url": "https://claude.com/docs/plugins/create-with-claude", "status": "success", "path": "claude/plugins/create-with-claude.md", - "sha256": "f9e52ae922a0a1372dc54d218c490e44d286729db18061395d43e93d201cb046", - "size": 6624 + "sha256": "afbeb2c229a23079066ce10f363070a33c1064340684d01935b2730667ac97f8", + "size": 6840 }, { "url": "https://claude.com/docs/plugins/org-rollout", "status": "success", "path": "claude/plugins/org-rollout.md", - "sha256": "8612ede6d22908fecd4f081b93ec595c4eb90c84473ba9c7722f07d8b5f02bfb", - "size": 7766 + "sha256": "6c895838568a3581b69d3e023c61d432bb046703fb15834c1fc01f327dcd0e16", + "size": 7964 }, { "url": "https://claude.com/docs/plugins/org-sync", "status": "success", "path": "claude/plugins/org-sync.md", - "sha256": "573826d5eff2d56828403dc0f6ddb70da4fb05a7fc28ff3002d48562294e6851", - "size": 8796 + "sha256": "f389c27f2e624b89404db2b4137179ef2f898d42da1f3bea206e7b770cc7889a", + "size": 8868 }, { "url": "https://claude.com/docs/plugins/overview", "status": "success", "path": "claude/plugins/overview.md", - "sha256": "e8a554a29eeb3789671be555eb33566ee44599634b0c4418095240b2e41e84dc", - "size": 14790 + "sha256": "a046b608c338ba93a857d8e94c7e993c771a6a92f17c314ef50ecfde81f6aaf1", + "size": 15222 }, { "url": "https://claude.com/docs/plugins/platform-support", "status": "success", "path": "claude/plugins/platform-support.md", - "sha256": "ce273821e8a911913f23c3efa65c877d5d17c13ddbdeadb9e274d14220d7c6d5", - "size": 6862 + "sha256": "9d6a275cd8044710d8a5e4203b52997ff60879ef2b980d79556d0107c158f097", + "size": 7114 }, { "url": "https://claude.com/docs/plugins/pre-submission-checklist", "status": "success", "path": "claude/plugins/pre-submission-checklist.md", - "sha256": "6378e9712c9ac8dca263414ee7f0acb7926375c931216f27a9e2a0c44e756099", - "size": 21709 + "sha256": "f38ea1739d8e9dee3350ee442b1986a72fdb08b0a86a86f001839e4c777b3462", + "size": 21889 }, { "url": "https://claude.com/docs/plugins/quickstart", "status": "success", "path": "claude/plugins/quickstart.md", - "sha256": "d5dc2b4f8cef18d1ca5348c10e7ace16eb40b6d9e7a369807af170bfac85ab40", - "size": 11255 + "sha256": "07a5853135131c37b87de01642e1fb36a8f5fb489de4939003ed4f1a44705bef", + "size": 11579 }, { "url": "https://claude.com/docs/plugins/share", "status": "success", "path": "claude/plugins/share.md", - "sha256": "57b62325fbdba305858cadfa6a20cef3a4d1d3566e1123f88d1b8abada5640a6", - "size": 8776 + "sha256": "46bb377b9bd35069b149a1cd576cf63a22830b5691bfdb6e043e1204c0eeca97", + "size": 8992 }, { "url": "https://claude.com/docs/plugins/submit", "status": "success", "path": "claude/plugins/submit.md", - "sha256": "fc2a74504d9957dec84582cf896fa41e29dc38f5b49d33f514ee9f537199b47c", - "size": 19285 + "sha256": "70fdf19ae917b2283bad5ba78a2a6fbe191c07a4311db0cf815c9066ac2858d2", + "size": 19663 }, { "url": "https://claude.com/docs/skills/how-to", "status": "success", "path": "claude/skills/how-to.md", - "sha256": "3693e1632e3f3863b91d70fa03262f2ac48a8f0ab144449871f16614255c847d", - "size": 20688 + "sha256": "c48e950709b4774882d9b81cc76a9225731a828ea8ff4c4f69b3f74483e1eb91", + "size": 20814 }, { "url": "https://claude.com/docs/skills/overview", "status": "success", "path": "claude/skills/overview.md", - "sha256": "76f8836a79bb2994c73788f78a3dde376ad8a575d5c0fdc96639565cc05ca471", - "size": 5091 + "sha256": "93ec2bacf9acd0fcc2ef5948a8485c353132932021d17f6b31d0794ff50e3124", + "size": 5217 }, { "url": "https://claude.com/docs/third-party/claude-desktop/admin-console", "status": "success", "path": "claude/third-party/claude-desktop/admin-console.md", - "sha256": "2c57dcaa00468f6d4eadfc779a67f0f2c0eec472948bdb224053d67a90617c75", - "size": 72195 + "sha256": "0de81502eb0f732431506fa6d6d535cf0034b84e2b2099b72f2cd660dd6a7728", + "size": 73659 }, { "url": "https://claude.com/docs/third-party/claude-desktop/bedrock", "status": "success", "path": "claude/third-party/claude-desktop/bedrock.md", - "sha256": "59a9f5080f7ed32202031d5e214a62e2017587237281045c38e6f183361601cb", - "size": 25665 + "sha256": "fae2ab3880ae01d5160321888ccf1e9d50272ce3dac548c6bda3a3abe063ac4e", + "size": 25986 }, { "url": "https://claude.com/docs/third-party/claude-desktop/bootstrap", "status": "success", "path": "claude/third-party/claude-desktop/bootstrap.md", - "sha256": "d66773969ac8a8ab962730a0a19178f2fe3b3ca4efbceb436820898ec93b6090", - "size": 42723 + "sha256": "3f91004779f7249ad164d987537770c44fd3647874a8a5b3b35a9f1b07ece552", + "size": 43833 }, { "url": "https://claude.com/docs/third-party/claude-desktop/browser", "status": "success", "path": "claude/third-party/claude-desktop/browser.md", - "sha256": "ea02c4363f712ea6c982b4dd21bcf401e5a0117d6f349422454820aaff4edeee", - "size": 10728 + "sha256": "78f3f690582ef2b6bd31f2161c2bd016f041babfdd40045fdb2876672c410591", + "size": 11165 }, { "url": "https://claude.com/docs/third-party/claude-desktop/built-in-connectors", "status": "success", "path": "claude/third-party/claude-desktop/built-in-connectors.md", - "sha256": "ca454f88b4932b96584e2bbde881516e3972acf1893296e8b3c9b16b52282fc4", - "size": 3662 + "sha256": "da77539eea11a8ed76685209ac32d2e4349f40c31145a8169a4f49cd01fdd2c9", + "size": 3752 }, { "url": "https://claude.com/docs/third-party/claude-desktop/chat", "status": "success", "path": "claude/third-party/claude-desktop/chat.md", - "sha256": "4085bafb972890bf7759e738aaf11778b95df2f12538ee82d847e04c0f85cf40", - "size": 15303 + "sha256": "9e648cc82f5f142b427ab0d39d940a7cc93be683cc77052fb7b73fb2906e5fb6", + "size": 15771 }, { "url": "https://claude.com/docs/third-party/claude-desktop/claude-api", "status": "success", "path": "claude/third-party/claude-desktop/claude-api.md", - "sha256": "285d8c63bae345122e90c965004061ed31045aa249cb84b762aa4c8c7c3118ce", - "size": 3270 + "sha256": "47c6e9914e08c0ef26875735a26846606ecda0f22b61bbfef2af8ed4f40c1887", + "size": 3378 }, { "url": "https://claude.com/docs/third-party/claude-desktop/code", "status": "success", "path": "claude/third-party/claude-desktop/code.md", - "sha256": "6bb46ec506e75d2081c30b8b8bf51e65206c03eceec7d7ab938fa49b991fdb2d", - "size": 19345 + "sha256": "c5dea6fd9d6742ac8504bca3f8d8979d6634ccfabc7725d733dc444d6045d086", + "size": 21446 }, { "url": "https://claude.com/docs/third-party/claude-desktop/configuration", "status": "success", "path": "claude/third-party/claude-desktop/configuration.md", - "sha256": "6611eabc35dbcd9dbb5a6952e3b421501227daf8525f45c49effabe1a0802a09", - "size": 298552 + "sha256": "3330a21d625a8ae136102461e3402ca6b1d15e2e67af44f09b29ae53c7fec08b", + "size": 299221 }, { "url": "https://claude.com/docs/third-party/claude-desktop/configuration-changelog", "status": "success", "path": "claude/third-party/claude-desktop/configuration-changelog.md", - "sha256": "789f64f9e8a2578bc8aa08906e8c4c2e6a3d7832e062ab62a00dc635639afd19", - "size": 63538 + "sha256": "9da592e2bf5666c563b6f5ef4132752261325df1d8db06d6c6250277e7bf62e7", + "size": 65104 }, { "url": "https://claude.com/docs/third-party/claude-desktop/configuration-format", "status": "success", "path": "claude/third-party/claude-desktop/configuration-format.md", - "sha256": "1691f16628f1473831850ffd477827fd234d70be94d91b062354c7cd8a91d59a", - "size": 21217 + "sha256": "74a7ec53d57d9142e9adbd062e7542e0faa77360152119a4e62a270baed914f9", + "size": 22045 }, { "url": "https://claude.com/docs/third-party/claude-desktop/connectors-box", "status": "success", "path": "claude/third-party/claude-desktop/connectors-box.md", - "sha256": "dfd8342eab6a2cdaddf643e84b3ab4312a42ce5a254e5910c4900c4d64615cf5", - "size": 4278 + "sha256": "1e7b448b8417d9462bf9eb4b7b2ee1421c37968fce5ff0e1042b3809b04538ec", + "size": 4350 }, { "url": "https://claude.com/docs/third-party/claude-desktop/connectors-github", "status": "success", "path": "claude/third-party/claude-desktop/connectors-github.md", - "sha256": "14155b090d249938cf0f58b420c1a219203f4bfb187e467a54f036fb436b92b3", - "size": 9277 + "sha256": "383cf8621517f1482a93266a9d2a05b00175e335e062247945c224b1f345faf3", + "size": 9414 }, { "url": "https://claude.com/docs/third-party/claude-desktop/connectors-google-cloud", "status": "success", "path": "claude/third-party/claude-desktop/connectors-google-cloud.md", - "sha256": "4af04dacc9f1ae1d1ef1f78ea17f5748196ef811f32ff888265eb2edae77d3a8", - "size": 6132 + "sha256": "e0564a11d8c24d027fc702f34dec603876daaf05bf63d8522fe78f44e89fb43d", + "size": 6204 }, { "url": "https://claude.com/docs/third-party/claude-desktop/connectors-m365", "status": "success", "path": "claude/third-party/claude-desktop/connectors-m365.md", - "sha256": "d48e7b59f9685559abd4e40e0e4ced02090061f991bdf8c26d5d83305a99d5f3", - "size": 45406 + "sha256": "3b88a1302abb9c17048b6b4b4a75d94e0bd94e0bfabbdd03799d024ed62950a7", + "size": 45700 }, { "url": "https://claude.com/docs/third-party/claude-desktop/connectors-salesforce", "status": "success", "path": "claude/third-party/claude-desktop/connectors-salesforce.md", - "sha256": "932370dcda1d001ab5e3517f1f66c4f33337576bf578793287785876a5f9ff7d", - "size": 6112 + "sha256": "e9d9dff8bb357b81d37cf3ef8a97fc2e5ee09889326ba54551985f756f926e65", + "size": 6238 }, { "url": "https://claude.com/docs/third-party/claude-desktop/credential-helper", "status": "success", "path": "claude/third-party/claude-desktop/credential-helper.md", - "sha256": "a7dc2e49bf0f061937a8f63763434f89b293c07983bb5db0029b2056f59da2e5", - "size": 8239 + "sha256": "2d9f2c27812d351556881a1db9dd1361674b471a5181dcf7f8b8a6f07ac0a8b4", + "size": 8455 }, { "url": "https://claude.com/docs/third-party/claude-desktop/data-storage", "status": "success", "path": "claude/third-party/claude-desktop/data-storage.md", - "sha256": "afaca0c609be39e3211cdf9a087506f511606b3903e186d6061756986636c314", - "size": 20659 + "sha256": "b8b048d5046294f7cc29ee178fd3f647810b07b4828919f46609521316fc6684", + "size": 21136 }, { "url": "https://claude.com/docs/third-party/claude-desktop/entra-broker", "status": "success", "path": "claude/third-party/claude-desktop/entra-broker.md", - "sha256": "e106f2924a4f43608618d69bf4ff0fe51b91b9f55618a3aec8a1795ad1fe0be9", - "size": 9054 + "sha256": "523ad1398fd9eddd057d1bae000b83c9d6d45ed3d14e8b3a078a181db3dc646f", + "size": 9216 }, { "url": "https://claude.com/docs/third-party/claude-desktop/extensions", "status": "success", "path": "claude/third-party/claude-desktop/extensions.md", - "sha256": "e7c5d88500162c550b1b1a21e5bb71faaaaa22ea7b0e4157dabb7c497b22befd", - "size": 47886 + "sha256": "a043920cc56a7bfa77118ccdd3a6ab6ef2da19117a99612d296fcbf276fe52d1", + "size": 50408 }, { "url": "https://claude.com/docs/third-party/claude-desktop/feature-matrix", "status": "success", "path": "claude/third-party/claude-desktop/feature-matrix.md", - "sha256": "203ed72454d0c2dab4bed32959e2359b4aec263b0866908025a02b26a0a66549", - "size": 7866 + "sha256": "feaf59e7705e8f16a09ca30faac7065c2a4b2c776cb19ad85e8e97e0f498f331", + "size": 8766 }, { "url": "https://claude.com/docs/third-party/claude-desktop/foundry", "status": "success", "path": "claude/third-party/claude-desktop/foundry.md", - "sha256": "0559e06b55bd66c4814d06678e01f62b8ef02d54efa406412dd91e5ae7419b8b", - "size": 22783 + "sha256": "8effd05d96365a19058dee8f973b6bcf1d9a5ba80ba10ff1bb77941648bf9f0a", + "size": 23253 }, { "url": "https://claude.com/docs/third-party/claude-desktop/gateway", "status": "success", "path": "claude/third-party/claude-desktop/gateway.md", - "sha256": "e58ddebad4b489b14c0f3b9f32bf775e6b8057d28d4fd5679a9580b9b571b0b8", - "size": 58226 + "sha256": "f675b23525f1ca5fff52f35732bfd3a3ebf2c1032dc5046a1815f7f5d39f58c9", + "size": 58588 }, { "url": "https://claude.com/docs/third-party/claude-desktop/import", "status": "success", "path": "claude/third-party/claude-desktop/import.md", - "sha256": "636f166ae839ae7ef3a5e63e289a630f25eb10f2e2c13f0ca9ff2893840608c9", - "size": 18681 + "sha256": "0a948e4d65a4e972c21f5fedb8c286862295e8befde76117462fe57057fc7120", + "size": 18871 }, { "url": "https://claude.com/docs/third-party/claude-desktop/in-app-configuration", "status": "success", "path": "claude/third-party/claude-desktop/in-app-configuration.md", - "sha256": "aef42e1862693b77bcd6ec8341b419a77771f48959fd377836d009e87fe836e3", - "size": 3752 + "sha256": "6baba4edd1b75527001246fad78ff97591b358e3c2fb55ff347000af03b797d7", + "size": 3860 }, { "url": "https://claude.com/docs/third-party/claude-desktop/installation", "status": "success", "path": "claude/third-party/claude-desktop/installation.md", - "sha256": "3380e3bbc42fe713975a079c205c21f9dc32c3ca0fbeea3f95c41c82ebb374b5", - "size": 32719 + "sha256": "eb57f283416fbed08c8caddeefc6df974dd98f4f9c6e7a9d5008d09dafc485df", + "size": 33596 }, { "url": "https://claude.com/docs/third-party/claude-desktop/legal", "status": "success", "path": "claude/third-party/claude-desktop/legal.md", - "sha256": "40121a0cdf39e3463b0e1138d520803f1cc4b974558ab82199010970c317fcce", - "size": 6472 + "sha256": "2a15d757f8402608c534c8b669aaf58f044cebdb7723d609cdc1b83972173911", + "size": 6598 }, { "url": "https://claude.com/docs/third-party/claude-desktop/local-access", "status": "success", "path": "claude/third-party/claude-desktop/local-access.md", - "sha256": "5738c51baa07cd4b89913514f5cedb756b501b267e62a618c7802986d3dbf44d", - "size": 6503 + "sha256": "85b13ca6df3058281276a5057a86f76b1b102e08ba79d3de005e2e8ba6955a52", + "size": 6665 }, { "url": "https://claude.com/docs/third-party/claude-desktop/mantle", "status": "success", "path": "claude/third-party/claude-desktop/mantle.md", - "sha256": "4080189c98b27e9e129f65c70b343e3c506148d0df061c1117f0f2826ff4a631", - "size": 10288 + "sha256": "82952df869f8edee1f07932afa0f60fe8f9c6da57353e96093bbd6ca5871e123", + "size": 10483 }, { "url": "https://claude.com/docs/third-party/claude-desktop/mcp-sign-in", "status": "success", "path": "claude/third-party/claude-desktop/mcp-sign-in.md", - "sha256": "a497a672e052fb0b69f8b6daa6bd801bd698dc8eda31761a4a18668a73be84ce", - "size": 10834 + "sha256": "36496a6c05f4b631329bd53b98ba300940e76652df4339cec0cba6ca846e5ef7", + "size": 11140 }, { "url": "https://claude.com/docs/third-party/claude-desktop/mdm", "status": "success", "path": "claude/third-party/claude-desktop/mdm.md", - "sha256": "529a7961b2bdef08ca636ff6e32425613a9b577a650d16f73029eee0a5ba523d", - "size": 15473 + "sha256": "f7a495662d5ecd50d82c8e6d7f4a3046ccf8d37dd41a5de9e3c094088ddc93be", + "size": 16073 }, { "url": "https://claude.com/docs/third-party/claude-desktop/models", "status": "success", "path": "claude/third-party/claude-desktop/models.md", - "sha256": "dc99b9dd013414c76b20a05f99822d2c2c096b3c9f9e7f4f6294cdcbe0c08d48", - "size": 8539 + "sha256": "e0374488b1af3d3cf0b3c4025cd898f58ced49e09382c86eb0840f7510369afb", + "size": 8809 }, { "url": "https://claude.com/docs/third-party/claude-desktop/move-to-claude-enterprise", "status": "success", "path": "claude/third-party/claude-desktop/move-to-claude-enterprise.md", - "sha256": "6e8cc766a24555f2754531bfc94663a24a66ee06ea786ce4d5f3ce0f14b9b0b7", - "size": 9762 + "sha256": "0589bd2d77c1608faea5ae9ad817828ac25414323708c705e6fc273c918ccf28", + "size": 9924 }, { "url": "https://claude.com/docs/third-party/claude-desktop/network-proxy", "status": "success", "path": "claude/third-party/claude-desktop/network-proxy.md", - "sha256": "e7fd00cf676949e0ed38459cb99365273eb798aebe21012a368d104d10366811", - "size": 25898 + "sha256": "ce66a8dff01a11b92f2adf5b7c4fc0a5ebb48b7f4ce387c0c16b53398f48bcc4", + "size": 26649 }, { "url": "https://claude.com/docs/third-party/claude-desktop/overview", "status": "success", "path": "claude/third-party/claude-desktop/overview.md", - "sha256": "28198eb247ae82f994a0349b548a6baac4ea164a512bb72fb3813b2ba5723180", - "size": 13564 + "sha256": "dfbdef5a8fdf950c7e70d266d78f119f2d3bca53e22c0748353af695b16dc049", + "size": 13969 }, { "url": "https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions", "status": "success", "path": "claude/third-party/claude-desktop/ssh-remote-sessions.md", - "sha256": "541f8790eb7b1bf69df803e4e2c10ff6fcfc1ddf4943136c625ebe20eee41c0b", - "size": 69300 + "sha256": "ba942203d3a3a7af3d15b1d83190f25d81d902ff2f8ec889fbb7a418bd225ffd", + "size": 70398 }, { "url": "https://claude.com/docs/third-party/claude-desktop/telemetry", "status": "success", "path": "claude/third-party/claude-desktop/telemetry.md", - "sha256": "792c8c59b4b94ab027742572fd94eaa2259b8afc50a99540c2010c797d96a37d", - "size": 35541 + "sha256": "6ee5debd26e11e8d6379db9f3acee80da870d74f91307941119cd0fc0dd941a7", + "size": 37163 }, { "url": "https://claude.com/docs/third-party/claude-desktop/unified-claude", "status": "success", "path": "claude/third-party/claude-desktop/unified-claude.md", - "sha256": "ed5c68bae50a443ab5b6dcd3988997bd8678ac7bb956a040a2a352231c7a1563", - "size": 3368 + "sha256": "200e5f268620c673e6bc6c47a1333e4f382de3dfe4f3f73d6264ae9a6bcd99f0", + "size": 3530 }, { "url": "https://claude.com/docs/third-party/claude-desktop/vertex", "status": "success", "path": "claude/third-party/claude-desktop/vertex.md", - "sha256": "c5d6c8a76eee8470abbd7a449e79ed7ca08b4f65f11dabc1a0442836c81219f4", - "size": 33598 + "sha256": "306e947ded53b04df60e302def561d53e9328a6f74b8d7b7663b223d5e8645f1", + "size": 33811 }, { "url": "https://claude.com/docs/third-party/claude-desktop/web-tools", "status": "success", "path": "claude/third-party/claude-desktop/web-tools.md", - "sha256": "6f1b207151b59ca1bfbd8d12ce8677555bcc11e635f4bcf0e64023d2f04aa83c", - "size": 18267 + "sha256": "93b2044406a1287a70cd5b6bfbfd6ad1bcd9a363bf90ba81da034f056a9c7c76", + "size": 18575 }, { "url": "https://code.claude.com/docs/en/slash-commands", "status": "success", "path": "en/docs/claude-code/slash-commands.md", - "sha256": "6b070e872dea28905a7ea7f45c4d5960f5bdf28cc73ac808799af6d50435ffbd", - "size": 114542 + "sha256": "acb1f1388ee96a516f707c42bac1e834b22df90081e5c2eccb90a2f76a5430f6", + "size": 118172 }, { "url": "https://code.claude.com/docs/en/ultraplan", "status": "success", "path": "en/docs/claude-code/ultraplan.md", - "sha256": "a9a4cef087a857ed4b392c2a5cd0bfcfdab1f2fcdfecad65a36e2c1ca9a9fd3a", - "size": 1056 + "sha256": "b66c0940e5addcbd0c57adad502e0704ff4b4caac75627bc4bf469cd9d504248", + "size": 1102 }, { "url": "https://code.claude.com/docs/en/plugin-dependencies", "status": "success", "path": "en/docs/claude-code/plugin-dependencies.md", - "sha256": "ea38c560563a29b382a4bd04b0e5fc5848ecb07960eb5362766b262b4cf6c99f", - "size": 17171 + "sha256": "ffaa4bddfb56826e57ae437a438611ce0ef992abc12da8959590123cbff95051", + "size": 17562 }, { "url": "https://code.claude.com/docs/en/plugins", "status": "success", "path": "en/docs/claude-code/plugins.md", - "sha256": "9f50044fa9a2c7c939f6e82cb2edb2a4c854f9fe814a528ae84098125436ee32", - "size": 13454 + "sha256": "39428797127e41b31bf72ff1030d94a005c207c38e0d7f2aea563568677c36e6", + "size": 14558 }, { "url": "https://code.claude.com/docs/en/iam", "status": "success", "path": "en/docs/claude-code/iam.md", - "sha256": "0733d76246f951ea1bc0826d311a3eee57d340484b3f049437598db79713a97e", - "size": 32572 + "sha256": "2fac747fa977317f15bbd91155180398d3488643b94bdc2be2fdd0030e1e94d5", + "size": 34343 }, { "url": "https://code.claude.com/docs/en/desktop-changelog", "status": "success", "path": "en/docs/claude-code/desktop-changelog.md", - "sha256": "2f57a4c9de0e2348175f9bce7910f1d9cdb0e81b41c6daf87fbe50251f5f47c8", - "size": 169702 + "sha256": "421d358d5f41dcd3b001c3c9bd1c5000d383999aab909a12bb1dd3f8d0d8ec4e", + "size": 188418 }, { "url": "https://code.claude.com/docs/en/plugin-relevance", "status": "success", "path": "en/docs/claude-code/plugin-relevance.md", - "sha256": "157d0059c72402e67f5adbb9bcac44f54c7cf97b09d5bde690e64f88a7801123", - "size": 12881 + "sha256": "60d477e348e6e15d10c3e521bfe8233e93f62658bdc7554af3a8efc21833ee13", + "size": 13111 }, { "url": "https://code.claude.com/docs/en/discover-plugins", "status": "success", "path": "en/docs/claude-code/discover-plugins.md", - "sha256": "43f3cfa91e0ef5cafd8dd76e7952a47ad3d87d0af05d69cc52f7ffbe1607ea54", - "size": 31460 + "sha256": "dac1cff425abd374c83c197c030a80a3979ceabc59de5572b304d8aafc7f83a8", + "size": 32518 }, { "url": "https://code.claude.com/docs/en/plugin-marketplaces", "status": "success", "path": "en/docs/claude-code/plugin-marketplaces.md", - "sha256": "2bb74276dcfc81521e5f18b7eeac8d1eab37e64f4f3fe9cd7a81072c8038986f", - "size": 13915 + "sha256": "8375e712c31dcea2ba3c032862bb85a3983693edd2f874690d5c196f8c0f4a8a", + "size": 14444 }, { "url": "https://code.claude.com/docs/en/plugins-reference", "status": "success", "path": "en/docs/claude-code/plugins-reference.md", - "sha256": "f2910dd6020f5448e5d8c9a8c3b5af7b31b7222d247c20b25f44a712b805916e", - "size": 42124 + "sha256": "3b72923e29d936fcb96146aae7b745e04486ac0367c5e3018739816f6cb85184", + "size": 43136 }, { "url": "https://code.claude.com/docs/en/plugin-hints", "status": "success", "path": "en/docs/claude-code/plugin-hints.md", - "sha256": "d7360f54613d4598350193289c63ff9b7dd9659c7818205c6dac768003826c4b", - "size": 6683 + "sha256": "3ffe67731f851b2c1b3ed0bc4f4dcea4a1cdbccd675575840610e8f883c75c66", + "size": 6844 }, { "url": "https://code.claude.com/docs/en/web-scheduled-tasks", "status": "success", "path": "en/docs/claude-code/web-scheduled-tasks.md", - "sha256": "d4a5a955e500cf1aee75e9b29ad0aaf7d1b97051bfce83947e698751b6f6f71c", - "size": 43518 + "sha256": "ade919df147c69b125bf6e2c6f87b913567702151473f7e4dee071cdb5d830cf", + "size": 44737 }, { "url": "https://code.claude.com/docs/en/agent-sdk/slash-commands", "status": "success", "path": "en/docs/claude-code/agent-sdk/slash-commands.md", - "sha256": "7ead81d04287103db41535be053bc0b328e32199cc0797e71c920c458a169108", - "size": 27452 + "sha256": "ac62c2dff61ef07bb778e5d115060e22f3f061fa3eca402be9b886946f01e5a2", + "size": 28395 }, { "url": "https://platform.claude.com/docs/en/api/cli/beta", @@ -25461,7 +25482,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": "26006b8c9591c8d82c3111eb31c100ecc98d6ade10ce0d08a53a7396a5cc9cb9", + "sha256": "a0992dd1db3b77cff3688b09442bc145ff6f8b9d9960869cc570a7e939483227", "size": 190732 }, { @@ -29749,21 +29770,12 @@ "size": 170 } ], - "failures": [ - { - "url": "https://platform.claude.com/docs/en/api/organization/workspaces/service_accounts/update", - "error": "HTTP 520" - } - ], + "failures": [], "dead": [ { "url": "https://code.claude.com/docs/en/claude-tag", "reason": "moved -> https://claude.com/docs/claude-tag/overview" }, - { - "url": "https://support.claude.com/en/articles/17440474-migrate-from-standalone-claude-design-to-claude", - "reason": "moved -> https://support.claude.com/en/articles/17440474-move-from-standalone-claude-design-to-claude" - }, { "url": "https://platform.claude.com/docs/en/agent-sdk/stop-reasons", "reason": "moved -> https://code.claude.com/docs/en/agent-sdk" @@ -30888,6 +30900,10 @@ "url": "https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude-opus-and-sonnet", "reason": "moved -> https://support.claude.com/en/articles/14604842-cyber-verification-program" }, + { + "url": "https://support.claude.com/en/articles/17440474-migrate-from-standalone-claude-design-to-claude", + "reason": "moved -> https://support.claude.com/en/articles/17440474-move-from-standalone-claude-design-to-claude" + }, { "url": "https://support.claude.com/en/articles/12650343-use-claude-for-excel", "reason": "moved -> https://claude.com/docs/office-agents/excel" @@ -30958,10 +30974,10 @@ } ], "summary": { - "total": 4550, - "downloaded": 4249, + "total": 4552, + "downloaded": 4252, "skipped": 0, - "failed": 1, + "failed": 0, "dead": 300, "success_rate": 100.0 } diff --git a/content/claude/build/overview.md b/content/claude/build/overview.md index a7c34b622..9ab0fbf3b 100644 --- a/content/claude/build/overview.md +++ b/content/claude/build/overview.md @@ -6,54 +6,54 @@ > Build a plugin people use inside Claude: an MCP connector to your product, skills for your workflows, optional MCP Apps UI, and a listing in the directory. -To bring your product or workflow into Claude, you build a [plugin](/docs/plugins/build.md): a package people add once and then use on claude.ai, in the desktop and mobile apps, in Cowork, and in Claude Code. A plugin packages whatever your integration needs, in any combination, and a plugin with only one of these pieces is complete: +To bring your product or workflow into Claude, you build a [plugin](https://claude.com/docs/plugins/build.md): a package people add once and then use on claude.ai, in the desktop and mobile apps, in Cowork, and in Claude Code. A plugin packages whatever your integration needs, in any combination, and a plugin with only one of these pieces is complete: -* **[An MCP connector](/docs/connectors/building/index.md)**: include one when Claude needs to reach your product or data. It points at an MCP server that you build and host -* **[Skills](/docs/skills/how-to.md)**: include them to teach Claude your workflows, such as the sequence of steps, the defaults, and what good output looks like -* **[An MCP App](/docs/connectors/building/mcp-apps/getting-started.md)**: include one when you want the connector to show interactive UI in the conversation -* **Commands and agents**: include named actions, or specialists Claude can delegate to, which [Plugin structure and testing](/docs/plugins/build.md) covers +* **[An MCP connector](https://claude.com/docs/connectors/building/index.md)**: include one when Claude needs to reach your product or data. It points at an MCP server that you build and host +* **[Skills](https://claude.com/docs/skills/how-to.md)**: include them to teach Claude your workflows, such as the sequence of steps, the defaults, and what good output looks like +* **[An MCP App](https://claude.com/docs/connectors/building/mcp-apps/getting-started.md)**: include one when you want the connector to show interactive UI in the conversation +* **Commands and agents**: include named actions, or specialists Claude can delegate to, which [Plugin structure and testing](https://claude.com/docs/plugins/build.md) covers -When the plugin is ready, you can [submit it](/docs/directory/publish.md) to Anthropic's directory at [claude.ai/directory](https://claude.ai/directory), the catalog inside Claude where people find and add plugins and connectors, so that anyone on a paid plan can add it. Anthropic checks each submission before it's listed, and there's no partner program to apply to first. +When the plugin is ready, you can [submit it](https://claude.com/docs/directory/publish.md) to Anthropic's directory at [claude.ai/directory](https://claude.ai/directory), the catalog inside Claude where people find and add plugins and connectors, so that anyone on a paid plan can add it. Anthropic checks each submission before it's listed, and there's no partner program to apply to first. ## Choose a starting page -> **[Build a plugin](/docs/plugins/build.md)** +> **[Build a plugin](https://claude.com/docs/plugins/build.md)** > > Lay out the plugin folder and manifest, write the skills, reference your MCP server, and test the plugin in Claude. -> **[Write skills](/docs/skills/how-to.md)** +> **[Write skills](https://claude.com/docs/skills/how-to.md)** > > Teach Claude your workflows: the SKILL.md frontmatter, the instructions, reference files, and scripts. -> **[Build an MCP server](/docs/connectors/building/index.md)** +> **[Build an MCP server](https://claude.com/docs/connectors/building/index.md)** > > Give the plugin access to your product or data: implement the server, set up authentication for Claude's clients, and test it. -> **[Add interactive UI](/docs/connectors/building/mcp-apps/getting-started.md)** +> **[Add interactive UI](https://claude.com/docs/connectors/building/mcp-apps/getting-started.md)** > > Have your MCP server show interactive components in the conversation with MCP Apps. Optional. -> **[Submit your plugin or MCP server](/docs/directory/publish.md)** +> **[Submit your plugin or MCP server](https://claude.com/docs/directory/publish.md)** > > List it in Anthropic's directory so anyone can add it: who can submit, what review involves, and the developer portal steps. Submit your MCP server as a connector too, even when your plugin references it. > [!NOTE] > -> * If you want to connect a tool or install a plugin for yourself, see the [Customize Claude](/docs/extend/overview.md) tab -> * If you're not sure whether your plugin needs an MCP server at all, see [Decide what to include in your plugin](/docs/connectors/building/what-to-build.md) -> * If you're distributing only inside your organization, see [Roll out a plugin to your whole organization](/docs/plugins/org-rollout.md) +> * If you want to connect a tool or install a plugin for yourself, see the [Customize Claude](https://claude.com/docs/extend/overview.md) tab +> * If you're not sure whether your plugin needs an MCP server at all, see [Decide what to include in your plugin](https://claude.com/docs/connectors/building/what-to-build.md) +> * If you're distributing only inside your organization, see [Roll out a plugin to your whole organization](https://claude.com/docs/plugins/org-rollout.md) > * If you're building only for Claude Code's terminal and IDE users, see the [Claude Code plugin docs](https://code.claude.com/docs/en/plugins/create), which cover what that surface alone supports ## Steps to build and publish a plugin Building and publishing a plugin follows these steps in order: -1. **Lay out the plugin**: create the folder and manifest and reference any MCP server it uses. Start with [Build your first plugin](/docs/plugins/quickstart.md) if you haven't made one before, or [Plugin structure and testing](/docs/plugins/build.md) for the full layout. Chat, Cowork, and Claude Code each load different parts of a plugin, so check [Plugin feature support across platforms](/docs/plugins/platform-support.md) before you commit to a design. -2. **Write the skills**: teach Claude your workflows in `SKILL.md` files inside the plugin. [Create a skill](/docs/skills/how-to.md) covers the frontmatter, the instructions, reference files, and scripts -3. **Build the MCP server**: if the plugin needs to reach your product or data, implement the server, get authentication right for Claude's clients, and test it against Claude. Start with [Build an MCP server for Claude](/docs/connectors/building/index.md), or with [Build your first MCP server for Claude](/docs/connectors/building/quickstart.md) if you haven't written one before. A local server can also be packaged as a [desktop extension](/docs/connectors/building/mcpb.md). -4. **Add interactive UI**: if you want your server to show interactive components in the conversation, build them with [MCP Apps](/docs/connectors/building/mcp-apps/getting-started.md). This step is optional. -5. **Test it**: try the plugin in Claude before you publish it. [Test the plugin on each surface](/docs/plugins/build.md#test-the-plugin-on-each-surface) covers claude.ai, Cowork, and Claude Code, and [Test your MCP server](/docs/connectors/building/testing.md) covers adding your server as a custom connector -6. **Publish**: submit the plugin to the directory, submit its MCP server as a connector, and maintain the listing. Start with [Publish to the directory](/docs/directory/publish.md). +1. **Lay out the plugin**: create the folder and manifest and reference any MCP server it uses. Start with [Build your first plugin](https://claude.com/docs/plugins/quickstart.md) if you haven't made one before, or [Plugin structure and testing](https://claude.com/docs/plugins/build.md) for the full layout. Chat, Cowork, and Claude Code each load different parts of a plugin, so check [Plugin feature support across platforms](https://claude.com/docs/plugins/platform-support.md) before you commit to a design. +2. **Write the skills**: teach Claude your workflows in `SKILL.md` files inside the plugin. [Create a skill](https://claude.com/docs/skills/how-to.md) covers the frontmatter, the instructions, reference files, and scripts +3. **Build the MCP server**: if the plugin needs to reach your product or data, implement the server, get authentication right for Claude's clients, and test it against Claude. Start with [Build an MCP server for Claude](https://claude.com/docs/connectors/building/index.md), or with [Build your first MCP server for Claude](https://claude.com/docs/connectors/building/quickstart.md) if you haven't written one before. A local server can also be packaged as a [desktop extension](https://claude.com/docs/connectors/building/mcpb.md). +4. **Add interactive UI**: if you want your server to show interactive components in the conversation, build them with [MCP Apps](https://claude.com/docs/connectors/building/mcp-apps/getting-started.md). This step is optional. +5. **Test it**: try the plugin in Claude before you publish it. [Test the plugin on each surface](https://claude.com/docs/plugins/build.md#test-the-plugin-on-each-surface) covers claude.ai, Cowork, and Claude Code, and [Test your MCP server](https://claude.com/docs/connectors/building/testing.md) covers adding your server as a custom connector +6. **Publish**: submit the plugin to the directory, submit its MCP server as a connector, and maintain the listing. Start with [Publish to the directory](https://claude.com/docs/directory/publish.md). 7. **Measure**: after people have it, [see whether they use it](#measure-usage-of-what-you-built). ### Tools that help you build and check a plugin @@ -64,21 +64,21 @@ Most of the tooling for building and checking a plugin lives in [Claude Code](ht * **[`claude --plugin-dir`](https://code.claude.com/docs/en/plugins/create#load-a-directory-or-archive-for-one-session)**: start Claude Code with your plugin loaded from a local folder, so you can try its skills and commands before it's in a repository * **[`claude plugin eval`](https://code.claude.com/docs/en/plugin-evals)**: run eval cases you write and compare Claude's results with and without your plugin. Each run is a real model call that counts against your plan's usage or your API bill * **[`/skill-doctor`](https://code.claude.com/docs/en/skills#find-unused-skills)**: in a Claude Code session, see what each installed skill costs in context and how often Claude has invoked it -* **[`skill-creator`](/docs/skills/how-to#measure-whether-the-skill-improves-the-output)**: a skill from Anthropic that drafts a skill with you and runs it on test prompts; available in claude.ai and Claude Code +* **[`skill-creator`](https://claude.com/docs/skills/how-to#measure-whether-the-skill-improves-the-output)**: a skill from Anthropic that drafts a skill with you and runs it on test prompts; available in claude.ai and Claude Code * **[`plugin-dev`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/plugin-dev)** and **[`mcp-server-dev`](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/mcp-server-dev)**: plugins Anthropic publishes for Claude Code whose skills walk Claude through building a plugin or an MCP server with you ## Measure usage of what you built Usage figures for a directory listing are in the developer portal, and figures for a plugin you distribute yourself or inside your organization are in Claude Code or in **Customize**. Each of these pages covers one case: -* **A plugin listed in the directory**: [How a published plugin is used](/docs/connectors/building/after-publishing.md#track-published-plugin-usage) covers installs, versions, how often each skill and MCP server runs, and error rates -* **A connector listed in the directory**: [Manage your directory listing](/docs/connectors/building/managing-your-listing.md#server-health-and-usage-metrics) covers the dashboard's server health, usage by product and by tool, and error breakdown +* **A plugin listed in the directory**: [How a published plugin is used](https://claude.com/docs/connectors/building/after-publishing.md#track-published-plugin-usage) covers installs, versions, how often each skill and MCP server runs, and error rates +* **A connector listed in the directory**: [Manage your directory listing](https://claude.com/docs/connectors/building/managing-your-listing.md#server-health-and-usage-metrics) covers the dashboard's server health, usage by product and by tool, and error breakdown * **A plugin you rolled out to your organization's Claude Code users**: [Measure and evaluate plugins](https://code.claude.com/docs/en/plugins/measure) covers what a plugin costs in context, whether it's used, and the OpenTelemetry events that answer organization-wide questions -* **A plugin or skill used inside your organization on claude.ai**: [How a plugin is used in your organization](/docs/plugins/overview.md#track-plugin-usage-in-your-organization) covers the adoption and activity figures on its page in **Customize** +* **A plugin or skill used inside your organization on claude.ai**: [How a plugin is used in your organization](https://claude.com/docs/plugins/overview.md#track-plugin-usage-in-your-organization) covers the adoption and activity figures on its page in **Customize** ## Next steps -* [Build your first plugin](/docs/plugins/quickstart.md): build a small example plugin, test it, and push it to GitHub, ready to submit your own -* [Plugin structure and testing](/docs/plugins/build.md): the folder layout, manifest, skills, MCP server reference, and testing -* [Build an MCP server for Claude](/docs/connectors/building/index.md): implement the server, authentication, and testing against Claude -* [Decide what to include in your plugin](/docs/connectors/building/what-to-build.md): decide whether your plugin needs an MCP server, commands, agents, or UI +* [Build your first plugin](https://claude.com/docs/plugins/quickstart.md): build a small example plugin, test it, and push it to GitHub, ready to submit your own +* [Plugin structure and testing](https://claude.com/docs/plugins/build.md): the folder layout, manifest, skills, MCP server reference, and testing +* [Build an MCP server for Claude](https://claude.com/docs/connectors/building/index.md): implement the server, authentication, and testing against Claude +* [Decide what to include in your plugin](https://claude.com/docs/connectors/building/what-to-build.md): decide whether your plugin needs an MCP server, commands, agents, or UI diff --git a/content/claude/claude-science/admin-controls.md b/content/claude/claude-science/admin-controls.md index b4d4a7250..613f5fb6c 100644 --- a/content/claude/claude-science/admin-controls.md +++ b/content/claude/claude-science/admin-controls.md @@ -10,7 +10,7 @@ Members sign in to Claude Science with their Claude account, so your identity an ## Organization settings -The [**Organization settings** > **Claude Science**](https://claude.ai/admin-settings/claude-science) page in claude.ai holds the controls that apply to every member of your Team or Enterprise organization who uses the app. An Owner or Primary Owner turns Claude Science on or off there (see [Enable Claude Science](/docs/claude-science/enable-claude-science.md)), and the other controls unlock once Claude Science is on. On the [Claude Team plan for scientists](https://claude.com/programs/team-plan-for-scientists), Claude Science starts on. On Enterprise plans, you can also limit some of the controls to certain custom roles (see [Capabilities in custom roles](#capabilities-in-custom-roles)). Each section below covers one control: what it governs, its default, and what changes for members when you turn it off. +The [**Organization settings** > **Claude Science**](https://claude.ai/admin-settings/claude-science) page in claude.ai holds the controls that apply to every member of your Team or Enterprise organization who uses the app. An Owner or Primary Owner turns Claude Science on or off there (see [Enable Claude Science](https://claude.com/docs/claude-science/enable-claude-science.md)), and the other controls unlock once Claude Science is on. On the [Claude Team plan for scientists](https://claude.com/programs/team-plan-for-scientists), Claude Science starts on. On Enterprise plans, you can also limit some of the controls to certain custom roles (see [Capabilities in custom roles](#capabilities-in-custom-roles)). Each section below covers one control: what it governs, its default, and what changes for members when you turn it off. ### Defaults by plan @@ -36,7 +36,7 @@ Each control starts at a default that depends on your plan and on whether HIPAA Changes you save reach each member's running app within a few minutes and apply on the member's next turn or request. An app that is closed picks up your changes when it next starts, and an app that can't reach claude.ai keeps applying the last settings it received. -The settings apply to members running version 0.1.41 or later of the Claude Science app; the auto mode switch needs a later version (see [Auto mode](#auto-mode)). A member still on an earlier version isn't governed by these settings until the member updates (see [Required updates](/docs/claude-science/manage-on-devices.md#required-updates)). For Team and Enterprise organizations, Claude Science enforces a minimum version of 0.1.41. A member on an older version sees a notice that the version is no longer supported, with an **Update now** button. If the update doesn't complete after a second try, [Update Claude Science](/docs/claude-science/update-claude-science.md) has the member's next steps for each kind of install; projects and settings on the computer are kept. +The settings apply to members running version 0.1.41 or later of the Claude Science app; the auto mode switch needs a later version (see [Auto mode](#auto-mode)). A member still on an earlier version isn't governed by these settings until the member updates (see [Required updates](https://claude.com/docs/claude-science/manage-on-devices.md#required-updates)). For Team and Enterprise organizations, Claude Science enforces a minimum version of 0.1.41. A member on an older version sees a notice that the version is no longer supported, with an **Update now** button. If the update doesn't complete after a second try, [Update Claude Science](https://claude.com/docs/claude-science/update-claude-science.md) has the member's next steps for each kind of install; projects and settings on the computer are kept. Each member's app also has to reach claude.ai regularly to confirm these settings. If an app can't reach claude.ai for 72 hours, it pauses memory, custom connectors, SSH hosts, Modal, model endpoints, adding custom skills, and accessing previously saved Claude Science work until it reconnects, and keeps applying the network allowlist, package mirror, and Featured connector and skill choices it last received. @@ -64,7 +64,7 @@ The control on the **Claude Science** page is the upper limit, and roles narrow * **Control on, built-in role**: members whose role is User, Admin, Owner, or Primary Owner can use the feature, because custom roles affect only members whose role is set to **Custom**. On Team plans, which don't have custom roles, that's every member. * **Control on, custom roles**: a member whose role is set to **Custom** can use the feature only if at least one of their custom roles has the capability turned on. -Turning on the **Claude Science** capability in a role also turns on the seven under it, and you can then turn off the ones that role shouldn't have. Any capability whose control your organization can't turn on stays off. Turning the **Claude Science** capability off turns them all off. A role whose **Capability access** setting is **All capabilities** already includes all seven. A role set to **All generally available** gets them when you turn on its **Claude Science** capability (see [Who gets access after you enable](/docs/claude-science/enable-claude-science.md#who-gets-access-after-you-enable)). +Turning on the **Claude Science** capability in a role also turns on the seven under it, and you can then turn off the ones that role shouldn't have. Any capability whose control your organization can't turn on stays off. Turning the **Claude Science** capability off turns them all off. A role whose **Capability access** setting is **All capabilities** already includes all seven. A role set to **All generally available** gets them when you turn on its **Claude Science** capability (see [Who gets access after you enable](https://claude.com/docs/claude-science/enable-claude-science.md#who-gets-access-after-you-enable)). > [!NOTE] > @@ -76,7 +76,7 @@ The network allowlist, the package mirror, Modal workspaces, and the switches fo ### Featured connectors and skills -Featured connectors and Featured skills come with Claude Science, and admins can control whether they are enabled or disabled for your members (see [Connectors and skills](/docs/claude-science/connectors-and-skills.md)). The **Featured connectors** and **Featured skills** sections list them with one switch per item, so you can choose which ones members can use. Every item is on by default for Team and Enterprise organizations. In an organization with HIPAA compliance enabled, every Featured connector and skill starts disabled; turn on the ones you have reviewed. +Featured connectors and Featured skills come with Claude Science, and admins can control whether they are enabled or disabled for your members (see [Connectors and skills](https://claude.com/docs/claude-science/connectors-and-skills.md)). The **Featured connectors** and **Featured skills** sections list them with one switch per item, so you can choose which ones members can use. Every item is on by default for Team and Enterprise organizations. In an organization with HIPAA compliance enabled, every Featured connector and skill starts disabled; turn on the ones you have reviewed. Each section shows how many items are enabled. Expand it to see the list, and select an item to see its tools or instructions, author, license, and third-party terms. @@ -88,11 +88,11 @@ When you turn a connector or skill off, Claude can no longer use it for any memb Members can still turn off, in their own app, any item you leave on. The app remembers each member's choice, so it applies again if you turn an item off and later back on. Turning a Featured skill off doesn't stop a member from writing a skill of their own; whether members can add their own skills is governed by [Custom skills](#custom-skills). -When you turn Claude Science on, the [**Turn on Claude Science** dialog](/docs/claude-science/enable-claude-science.md#turn-on-claude-science) notes: "By continuing, you represent that your team has the necessary rights to access these resources and you authorize Claude to do so on their behalf. You can review terms in Settings." +When you turn Claude Science on, the [**Turn on Claude Science** dialog](https://claude.com/docs/claude-science/enable-claude-science.md#turn-on-claude-science) notes: "By continuing, you represent that your team has the necessary rights to access these resources and you authorize Claude to do so on their behalf. You can review terms in Settings." ### Connectors you add in claude.ai -Connectors you add for your organization in claude.ai also work in Claude Science. Every connector on **Organization settings > Connectors**, whether you added it from the [Connectors Directory](/docs/connectors/directory.md) or by its web address (a custom connector), shows up in the Claude Science app under **Settings > Connectors** for the members who can use it. If you remove one in claude.ai, it disappears from the app too. +Connectors you add for your organization in claude.ai also work in Claude Science. Every connector on **Organization settings > Connectors**, whether you added it from the [Connectors Directory](https://claude.com/docs/connectors/directory.md) or by its web address (a custom connector), shows up in the Claude Science app under **Settings > Connectors** for the members who can use it. If you remove one in claude.ai, it disappears from the app too. If a connector needs a sign-in, each member signs in with their own account; the app opens claude.ai for them to do it. Connector permissions in Enterprise custom roles apply the same way; see [Connectors](#connectors) under How other admin settings apply to Claude Science. @@ -100,7 +100,7 @@ Two kinds of connectors are controlled on **Organization settings > Claude Scien ### Custom connectors -Custom connectors are Model Context Protocol (MCP) servers a member adds under **Settings** > **Connectors** in the Claude Science app, either a remote server at an HTTPS URL or a local command on their computer (see [Custom connectors](/docs/claude-science/custom-connectors.md)). The **Allow custom connectors** switch decides whether members can add and use them. It's on by default for Team organizations and off by default for Enterprise organizations. Organizations with HIPAA compliance enabled can't turn it on. +Custom connectors are Model Context Protocol (MCP) servers a member adds under **Settings** > **Connectors** in the Claude Science app, either a remote server at an HTTPS URL or a local command on their computer (see [Custom connectors](https://claude.com/docs/claude-science/custom-connectors.md)). The **Allow custom connectors** switch decides whether members can add and use them. It's on by default for Team organizations and off by default for Enterprise organizations. Organizations with HIPAA compliance enabled can't turn it on. When the switch is off, members can't add, change, or authorize custom connectors, and Claude no longer sees the custom connectors members may have added earlier. Those connectors stay listed in the member's settings, grayed, with a note that custom connectors are disabled by your admin. Featured connectors and the connectors you add on **Organization settings > Connectors** aren't affected by this switch. @@ -108,13 +108,13 @@ When the switch is off, members can't add, change, or authorize custom connector Connectors are built on an open standard called the Model Context Protocol (MCP). When your organization needs a connector it doesn't have yet, what to do depends on where the data lives: -* **Your own systems and data**, such as an internal database or lab system: have your developers build a connector for it, then add its web address for everyone under **Organization settings > Connectors > Add > Custom** (see [Add a connector by URL](/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url)). Claude connects to it from Anthropic's servers, so it must be reachable from the internet. For a system that isn't, Enterprise organizations can request an MCP tunnel, a secure link from their own network to Anthropic (in research preview; see [MCP tunnels](/docs/connectors/mcp-tunnels/overview)). -* **Another company's product**: the company that makes the product usually builds and runs its connector, not Anthropic. Check the [Connectors Directory](/docs/connectors/directory.md) first. If the company offers a connector that isn't listed there, add its web address under **Organization settings > Connectors > Add > Custom**; a connector doesn't need to be in the directory to work (see [Connector verification](/docs/connectors/verification.md)). If the company doesn't offer one, ask them to build one. They can [submit it to the Connectors Directory](/docs/connectors/building/submission.md) for review; if Anthropic accepts it, any Claude user can find it there. -* **Public scientific databases and tools**: Claude may not need a connector at all. Code that Claude runs on members' computers can reach any site on Claude Science's list of allowed sites, so adding the site to that list is often enough. By default, members allow a new site themselves when Claude asks. If you turn on **Manage network allowlist** on **Organization settings > Claude Science**, you add sites for them under **Custom domains** instead (see [Network allowlist](#network-allowlist)). If a connector would still help, look for one in the [Connectors Directory](/docs/connectors/directory.md) and add it on **Organization settings > Connectors**. +* **Your own systems and data**, such as an internal database or lab system: have your developers build a connector for it, then add its web address for everyone under **Organization settings > Connectors > Add > Custom** (see [Add a connector by URL](https://claude.com/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url)). Claude connects to it from Anthropic's servers, so it must be reachable from the internet. For a system that isn't, Enterprise organizations can request an MCP tunnel, a secure link from their own network to Anthropic (in research preview; see [MCP tunnels](https://claude.com/docs/connectors/mcp-tunnels/overview)). +* **Another company's product**: the company that makes the product usually builds and runs its connector, not Anthropic. Check the [Connectors Directory](https://claude.com/docs/connectors/directory.md) first. If the company offers a connector that isn't listed there, add its web address under **Organization settings > Connectors > Add > Custom**; a connector doesn't need to be in the directory to work (see [Connector verification](https://claude.com/docs/connectors/verification.md)). If the company doesn't offer one, ask them to build one. They can [submit it to the Connectors Directory](https://claude.com/docs/connectors/building/submission.md) for review; if Anthropic accepts it, any Claude user can find it there. +* **Public scientific databases and tools**: Claude may not need a connector at all. Code that Claude runs on members' computers can reach any site on Claude Science's list of allowed sites, so adding the site to that list is often enough. By default, members allow a new site themselves when Claude asks. If you turn on **Manage network allowlist** on **Organization settings > Claude Science**, you add sites for them under **Custom domains** instead (see [Network allowlist](#network-allowlist)). If a connector would still help, look for one in the [Connectors Directory](https://claude.com/docs/connectors/directory.md) and add it on **Organization settings > Connectors**. ### Custom skills -Skills are instructions, sometimes with helper code, that Claude loads when a task calls for them (see [Skills](/docs/claude-science/connectors-and-skills.md#skills)). Members add their own by writing one, uploading one, importing one from a public GitHub repository (or a private repo if a [GitHub credential](/docs/claude-science/connectors-and-skills.md#skills) is stored), or asking Claude to create one from a session. The **Allow custom skills** switch decides whether members can add skills of their own, including creating one from the Claude Science app so it's also available to them in claude.ai. It's on by default for Team and Enterprise organizations, including those with HIPAA compliance enabled. +Skills are instructions, sometimes with helper code, that Claude loads when a task calls for them (see [Skills](https://claude.com/docs/claude-science/connectors-and-skills.md#skills)). Members add their own by writing one, uploading one, importing one from a public GitHub repository (or a private repo if a [GitHub credential](https://claude.com/docs/claude-science/connectors-and-skills.md#skills) is stored), or asking Claude to create one from a session. The **Allow custom skills** switch decides whether members can add skills of their own, including creating one from the Claude Science app so it's also available to them in claude.ai. It's on by default for Team and Enterprise organizations, including those with HIPAA compliance enabled. When the switch is off, members can't add new skills of their own or publish them, and the app notes that custom skills are disabled by your admin. Skills a member added earlier still work and can still be edited, and Featured skills aren't affected. Custom skills are how members teach Claude their own workflows and analysis pipelines, so Anthropic recommends leaving this switch on. @@ -130,25 +130,25 @@ Skills from claude.ai are the ones you add on the **Plugins & skills** page, the Without one of these options, no skills from claude.ai and none of your organization's plugins reach that member's app. To give the member one, turn it on in the **Capabilities** tab of one of their custom roles (see [Capabilities in custom roles](#capabilities-in-custom-roles)). If your organization keeps **Cloud code execution and file creation** off, the **Chat** and **Code execution and file creation** option has no effect. Choose **Claude Code**, or **Cowork** if Cowork is turned on for your organization. -To let members manage their own skills, host them in a GitHub repository. Put one `skills//SKILL.md` folder per skill in the repository and share the link. Members import them in the Claude Science app under **Settings** > **Skills** > **Add skill** > **Import from GitHub**. Claude Science records the commit each skill came from. When the repository has new commits, **Check for updates…** flags the skills whose files differ from its latest commit; each member chooses when to import again (see [Update skills imported from GitHub](/docs/claude-science/connectors-and-skills.md#update-skills-imported-from-github)). Private repositories work after a member adds a GitHub token in the Claude Science app under **Settings** > **Credentials**. +To let members manage their own skills, host them in a GitHub repository. Put one `skills//SKILL.md` folder per skill in the repository and share the link. Members import them in the Claude Science app under **Settings** > **Skills** > **Add skill** > **Import from GitHub**. Claude Science records the commit each skill came from. When the repository has new commits, **Check for updates…** flags the skills whose files differ from its latest commit; each member chooses when to import again (see [Update skills imported from GitHub](https://claude.com/docs/claude-science/connectors-and-skills.md#update-skills-imported-from-github)). Private repositories work after a member adds a GitHub token in the Claude Science app under **Settings** > **Credentials**. To stop members from adding their own skills, turn off the **Allow custom skills** switch on the **Organization settings** > **Claude Science** page (see [Custom skills](#custom-skills)). ### Previously saved Claude Science work -A member who used Claude Science under another sign-in on the same computer (for example, a personal plan before joining your organization) can access the projects, sessions, and artifacts from that sign-in and move it into the app's folder for your organization on that computer (see [Access work from another sign-in on your computer](/docs/claude-science/multiple-computers.md#access-work-from-another-sign-in-on-your-computer)). The **Allow members to access Claude Science work previously saved on their computer** switch decides whether the app offers this access. It's on by default for Team organizations and off by default for Enterprise organizations, and organizations with HIPAA compliance enabled can't turn it on. +A member who used Claude Science under another sign-in on the same computer (for example, a personal plan before joining your organization) can access the projects, sessions, and artifacts from that sign-in and move it into the app's folder for your organization on that computer (see [Access work from another sign-in on your computer](https://claude.com/docs/claude-science/multiple-computers.md#access-work-from-another-sign-in-on-your-computer)). The **Allow members to access Claude Science work previously saved on their computer** switch decides whether the app offers this access. It's on by default for Team organizations and off by default for Enterprise organizations, and organizations with HIPAA compliance enabled can't turn it on. The access happens on the member's computer and uploads nothing. Claude Science work the app accesses will follow your organization's settings from then on. Content your organization doesn't allow isn't copied or moved and stays in its original folder, and credentials such as API keys and connector sign-ins are never copied or moved. When the switch is off, the app doesn't offer the access, and its **Access previously saved Claude Science work on this computer** setting is grayed out with a note that it's off for your organization. ### Network allowlist -When Claude runs code for a member, that code can reach only the domains on the analysis sandbox's network allowlist: the package hosts, the scientific databases behind the Featured connectors, and hosts the member approved. See [Sandbox](/docs/claude-science/core-concepts.md#sandbox) and the domain tables in [Network requirements](/docs/claude-science/network-requirements.md#analysis-sandbox-domains). +When Claude runs code for a member, that code can reach only the domains on the analysis sandbox's network allowlist: the package hosts, the scientific databases behind the Featured connectors, and hosts the member approved. See [Sandbox](https://claude.com/docs/claude-science/core-concepts.md#sandbox) and the domain tables in [Network requirements](https://claude.com/docs/claude-science/network-requirements.md#analysis-sandbox-domains). By default, each member manages that list on their own computer. The **Manage network allowlist** switch transfers control of the list from members to you. While it's on, every member's app uses the organization's list instead of the member's own, and members see the list in their **Network** settings read-only, apart from domains they have blocked themselves, with a note that the domain allowlist is controlled by their admin. It's off by default for Team and Enterprise organizations, and on for organizations with HIPAA compliance enabled, which can't turn it off. Turning the switch on sets aside what members allowed themselves, including the domains a deployed configuration file adds with its `[sandbox.network]` keys; those settings are kept and apply again when you turn the switch off. Domains the file denies stay denied. -Your list is enforced by the app's sandbox (see [Sandbox](/docs/claude-science/core-concepts.md#sandbox)). On a computer where the sandbox is turned off or can't start, the app pauses new sessions and messages and tells the member the computer doesn't meet the organization's security requirements, until the member restarts the app with the sandbox on or you turn the switch off. Turning the switch off keeps your saved list, which applies again the next time you turn it on. +Your list is enforced by the app's sandbox (see [Sandbox](https://claude.com/docs/claude-science/core-concepts.md#sandbox)). On a computer where the sandbox is turned off or can't start, the app pauses new sessions and messages and tells the member the computer doesn't meet the organization's security requirements, until the member restarts the app with the sandbox on or you turn the switch off. Turning the switch off keeps your saved list, which applies again the next time you turn it on. With the switch on, **Claude Science domains** shows the Featured domains in the same groups as the app, such as **Package management**, **Literature & citations**, and **NCBI / NIH**, with one switch per domain. A group switch turns all of its domains on or off. Below it, **Custom domains** adds your own. The rules for an entry are: @@ -160,7 +160,7 @@ With the switch on, **Claude Science domains** shows the Featured domains in the Until you change the list, members use Claude Science's Featured list, including domains added in later versions of Claude Science. Once you change it, the list is saved exactly as you left it, so a domain added in a later version stays off until you turn it on. **Reset** returns to the Featured list and removes your custom domains, for all members. -You can also turn off the **Package management** domains (PyPI, conda, CRAN and Bioconductor, npm, and GitHub), with limits. The PyPI and conda domains can be turned off only while the [organization package mirror](#organization-package-mirror) covers them. Turning the CRAN and Bioconductor, npm, or GitHub domains off means members can't install packages from them, and the page asks you to confirm. The domains the sandbox always blocks (see [Network requirements](/docs/claude-science/network-requirements.md#domains-the-sandbox-always-blocks)) stay blocked whichever list is in force. +You can also turn off the **Package management** domains (PyPI, conda, CRAN and Bioconductor, npm, and GitHub), with limits. The PyPI and conda domains can be turned off only while the [organization package mirror](#organization-package-mirror) covers them. Turning the CRAN and Bioconductor, npm, or GitHub domains off means members can't install packages from them, and the page asks you to confirm. The domains the sandbox always blocks (see [Network requirements](https://claude.com/docs/claude-science/network-requirements.md#domains-the-sandbox-always-blocks)) stay blocked whichever list is in force. The allowlist governs the network connections of code Claude runs in the sandbox on the member's computer, the local-command connectors that run inside it, and, while you manage it, the [model endpoints](#scientific-model-endpoints) members connect by host name. Jobs on SSH hosts use the host's own network, so the allowlist doesn't apply to them, and the [**Allow members to connect SSH hosts**](#ssh-hosts) switch is the control for those. @@ -168,7 +168,7 @@ Modal jobs run in Modal's cloud. While you manage the list, a member's Modal job ### Organization package mirror -Analysis environments install Python and conda packages from the public hosts unless a mirror is set. Members or IT can set a mirror per computer under **Settings** > **Network** > **Package mirror** or in the [configuration file](/docs/claude-science/configuration-file-reference.md#package-download-keys). See [Point package installs at an internal mirror](/docs/claude-science/corporate-networks.md#point-package-installs-at-an-internal-mirror) for the mirror layout and credentials. +Analysis environments install Python and conda packages from the public hosts unless a mirror is set. Members or IT can set a mirror per computer under **Settings** > **Network** > **Package mirror** or in the [configuration file](https://claude.com/docs/claude-science/configuration-file-reference.md#package-download-keys). See [Point package installs at an internal mirror](https://claude.com/docs/claude-science/corporate-networks.md#point-package-installs-at-an-internal-mirror) for the mirror layout and credentials. The **Organization package mirror** section sets the same two addresses once for every member: a **Conda channel URL** and a **Python package index URL (PyPI)**. The section applies whether or not you manage the [network allowlist](#network-allowlist), and there is no organization mirror by default. @@ -176,11 +176,11 @@ Addresses must start with `https://`, name a host rather than an IP address (an An organization mirror takes precedence over a mirror a member set in Settings or in their configuration file. The member's values are kept but not used, and their Settings show that the package mirror is controlled by their admin. The mirror host is allowed automatically and the public hosts it replaces are removed from the allowlist, as for a member-set mirror. While you manage the network allowlist, those hosts stay removed even if they are switched on in your list. -Mirror credentials stay with each member. A member signs in to your mirror once per mirror host under **Settings > Network > Package mirror > Mirror credentials**, unless you [deploy the credential as a file](/docs/claude-science/corporate-networks.md#deploy-the-mirror-credential-as-a-file), and the organization settings never store a credential. +Mirror credentials stay with each member. A member signs in to your mirror once per mirror host under **Settings > Network > Package mirror > Mirror credentials**, unless you [deploy the credential as a file](https://claude.com/docs/claude-science/corporate-networks.md#deploy-the-mirror-credential-as-a-file), and the organization settings never store a credential. ### SSH hosts -Members can register a machine they reach over SSH, such as a lab workstation or an HPC login node, so Claude can run jobs on it (see [Remote compute clusters](/docs/claude-science/remote-compute-clusters.md)). The **Allow members to connect SSH hosts** switch decides whether they can. It's on by default for Team and Enterprise organizations, and off by default for organizations with HIPAA compliance enabled, which can turn it on. On Enterprise plans, you can also limit SSH hosts to certain custom roles with the **Connect to SSH hosts** capability (see [Capabilities in custom roles](#capabilities-in-custom-roles)). +Members can register a machine they reach over SSH, such as a lab workstation or an HPC login node, so Claude can run jobs on it (see [Remote compute clusters](https://claude.com/docs/claude-science/remote-compute-clusters.md)). The **Allow members to connect SSH hosts** switch decides whether they can. It's on by default for Team and Enterprise organizations, and off by default for organizations with HIPAA compliance enabled, which can turn it on. On Enterprise plans, you can also limit SSH hosts to certain custom roles with the **Connect to SSH hosts** capability (see [Capabilities in custom roles](#capabilities-in-custom-roles)). When the switch is off, members can't add SSH hosts, and hosts they added earlier are kept but refuse new commands and file transfers; the app shows that SSH host setup is disabled by your admin. A job that is already running can still be stopped and its results collected. @@ -188,7 +188,7 @@ Jobs on an SSH host run outside the sandbox, as the member's own user on that ma ### Modal -[Modal](https://modal.com/) is a third-party cloud computing service. Members can connect a Modal account they own so Claude can run jobs that need a GPU or more memory than their computer has. Modal bills that account directly, and Anthropic never sees a payment method (see [Compute providers](/docs/claude-science/compute-providers.md#connecting-modal)). The **Allow members to connect to Modal** switch decides whether members can connect Modal in the Claude Science app in **Settings** > **Compute**. It's on by default for Team organizations, off by default for Enterprise organizations, and off by default for organizations with HIPAA compliance enabled, which can turn it on. +[Modal](https://modal.com/) is a third-party cloud computing service. Members can connect a Modal account they own so Claude can run jobs that need a GPU or more memory than their computer has. Modal bills that account directly, and Anthropic never sees a payment method (see [Compute providers](https://claude.com/docs/claude-science/compute-providers.md#connecting-modal)). The **Allow members to connect to Modal** switch decides whether members can connect Modal in the Claude Science app in **Settings** > **Compute**. It's on by default for Team organizations, off by default for Enterprise organizations, and off by default for organizations with HIPAA compliance enabled, which can turn it on. When the switch is off, members can't set up Modal or start new Modal jobs, and the app shows that Modal setup is disabled by your admin. A job that is already running can still be stopped, and the member's Modal settings are kept. @@ -200,7 +200,7 @@ Modal jobs run in Modal's cloud, not on the member's computer. There is no spend ### Scientific model endpoints -Members can connect a scientific model server, such as NVIDIA BioNeMo NIM, that Claude calls directly from analyses (see [Scientific model endpoints](/docs/claude-science/compute-providers.md#scientific-model-endpoints)). The **Show scientific model endpoint providers on the Compute tab** switch decides whether members can connect the providers listed on the app's **Compute** tab. It's on by default for Team and Enterprise organizations, and off by default for organizations with HIPAA compliance enabled, which can turn it on. +Members can connect a scientific model server, such as NVIDIA BioNeMo NIM, that Claude calls directly from analyses (see [Scientific model endpoints](https://claude.com/docs/claude-science/compute-providers.md#scientific-model-endpoints)). The **Show scientific model endpoint providers on the Compute tab** switch decides whether members can connect the providers listed on the app's **Compute** tab. It's on by default for Team and Enterprise organizations, and off by default for organizations with HIPAA compliance enabled, which can turn it on. When the switch is off, members can't connect these providers or use the endpoints they set up earlier, and the app shows that scientific model endpoint setup is disabled by your admin; the settings they entered are kept. The switch governs third-party model endpoints only and has no effect on which Claude models members can use. @@ -208,15 +208,15 @@ While members manage their own network allowlist, an endpoint a member connected ### Memory -Memory lets Claude save short facts about a member, their projects, and their files across sessions, stored in the app's local database on the member's computer (see [Memory](/docs/claude-science/core-concepts.md#memory)). Each member chooses whether their own memory is on, during first-time setup or later in **Settings** > **Memory**. The **Turn on memory for your team** switch decides whether members can use memory at all. It's on by default for Team and Enterprise organizations, and off by default for organizations with HIPAA compliance enabled, which can turn it on. +Memory lets Claude save short facts about a member, their projects, and their files across sessions, stored in the app's local database on the member's computer (see [Memory](https://claude.com/docs/claude-science/core-concepts.md#memory)). Each member chooses whether their own memory is on, during first-time setup or later in **Settings** > **Memory**. The **Turn on memory for your team** switch decides whether members can use memory at all. It's on by default for Team and Enterprise organizations, and off by default for organizations with HIPAA compliance enabled, which can turn it on. When the switch is off, memory is off for every member, whatever they chose in their own settings; Claude neither recalls nor saves facts, first-time setup skips its memory step, and the **Memory** setting shows that memory is disabled by your admin. Facts a member saved earlier stay on their computer, the member can still review and delete them, and Claude uses them again if you turn the switch back on. -When Claude recalls saved facts for a session, those facts are sent to Anthropic as part of that session's conversation and handled like the rest of the conversation (see [How Claude Science works with your data](/docs/claude-science/how-claude-science-works-with-your-data.md)). The **Capabilities** > **Memory** setting in claude.ai **Organization settings** doesn't control memory in Claude Science. In a custom role, the **Memory** row under **Claude Science** is the capability for the app's memory, and the **Memory** row under **Chat** is for claude.ai chat (see [Capabilities in custom roles](#capabilities-in-custom-roles)). +When Claude recalls saved facts for a session, those facts are sent to Anthropic as part of that session's conversation and handled like the rest of the conversation (see [How Claude Science works with your data](https://claude.com/docs/claude-science/how-claude-science-works-with-your-data.md)). The **Capabilities** > **Memory** setting in claude.ai **Organization settings** doesn't control memory in Claude Science. In a custom role, the **Memory** row under **Claude Science** is the capability for the app's memory, and the **Memory** row under **Chat** is for claude.ai chat (see [Capabilities in custom roles](#capabilities-in-custom-roles)). ### Auto mode -With auto mode, an automated safety check approves a member's code and connector requests that look safe, so the member answers fewer permission cards in the Claude Science app (see [Auto mode](/docs/claude-science/auto-mode.md)). The **Allow members to use auto mode** switch decides whether members can use auto mode at all in Claude Science. It's on by default for Team organizations and off by default for Enterprise organizations. While the switch is on, auto mode starts on for members who can use it, and each member can turn it off in the Claude Science app. While the switch is off, members get a permission card for each request that needs one, as they do without auto mode, and the auto mode toggle in the Claude Science app's **Settings > Permissions** is grayed out. The switch applies to members whose app is recent enough to support it. +With auto mode, an automated safety check approves a member's code and connector requests that look safe, so the member answers fewer permission cards in the Claude Science app (see [Auto mode](https://claude.com/docs/claude-science/auto-mode.md)). The **Allow members to use auto mode** switch decides whether members can use auto mode at all in Claude Science. It's on by default for Team organizations and off by default for Enterprise organizations. While the switch is on, auto mode starts on for members who can use it, and each member can turn it off in the Claude Science app. While the switch is off, members get a permission card for each request that needs one, as they do without auto mode, and the auto mode toggle in the Claude Science app's **Settings > Permissions** is grayed out. The switch applies to members whose app is recent enough to support it. ## How other admin settings apply to Claude Science @@ -247,13 +247,13 @@ The status column in each table shows one of four values: | Setting in claude.ai | Status for Claude Science | Note | | - | - | - | -| Claude Science > Enable for your organization | Supported in Claude Science | Off by default for Team and Enterprise, and on by default for the Claude Team plan for scientists. An Owner or Primary Owner turns it on or off under **Organization settings** > **Claude Science** (see [Enable Claude Science](/docs/claude-science/enable-claude-science.md)). Assigning seats doesn't turn it on. | -| Data and privacy > Rate chats | Supported in Claude Science | When you turn this off, the app hides the **Send feedback** link on the [**Chat paused**](/docs/claude-science/safeguards.md#when-safeguards-flag-a-message) card. If your organization uses customer-managed encryption keys (CMEK), you can't turn this setting on and the app doesn't show that link. | +| Claude Science > Enable for your organization | Supported in Claude Science | Off by default for Team and Enterprise, and on by default for the Claude Team plan for scientists. An Owner or Primary Owner turns it on or off under **Organization settings** > **Claude Science** (see [Enable Claude Science](https://claude.com/docs/claude-science/enable-claude-science.md)). Assigning seats doesn't turn it on. | +| Data and privacy > Rate chats | Supported in Claude Science | When you turn this off, the app hides the **Send feedback** link on the [**Chat paused**](https://claude.com/docs/claude-science/safeguards.md#when-safeguards-flag-a-message) card. If your organization uses customer-managed encryption keys (CMEK), you can't turn this setting on and the app doesn't show that link. | | Organization and access > Organization instructions | Supported in Claude Science | Anthropic adds your organization instructions to the app's requests to Claude, as it does for claude.ai chat, so members don't need to update the app for a change to apply. | | Plugins & skills > skills you add for your organization, and the Policy tab | Supported in Claude Science | The **Skills** switch in the **Policy** tab has to be on for Claude Science to get your organization's plugins and to get skills from claude.ai. Skills from claude.ai include the ones you add for your organization. A member whose role is set to **Custom** also needs one of the capability options listed under [Organization skills](#organization-skills). **User-created skills**, on the same tab, decides whether a member can publish a skill from the app to their own claude.ai account. Publishing one also needs **Cloud code execution and file creation** to be on (see its row under [Capability toggles](#capability-toggles)). The skills that come with the app and the skills members add in it are controlled on the **Claude Science** page: one switch per Featured skill, and **Allow custom skills** for skills members add themselves (see [Featured connectors and skills](#featured-connectors-and-skills) and [Custom skills](#custom-skills)). | | Capabilities > Web search | Not applicable in Claude Science | This setting governs claude.ai chat. Claude Science can search the web regardless of it, and the **Claude Science** page has no switch for web search. | | Capabilities > Cloud code execution and file creation | Partially supported in Claude Science | This setting governs the code sandbox Anthropic hosts for claude.ai chat. Running code on the member's computer, or on compute the member connects, is the core of Claude Science and can't be turned off; you govern what that code can reach with the [network allowlist](#network-allowlist), [SSH hosts](#ssh-hosts), and [Modal](#modal) controls. In the app, a member needs this setting turned on to publish a skill to their claude.ai account or to delete a published one. For a member whose role is set to **Custom**, this setting is also part of one capability option for getting skills from claude.ai and your organization's plugins (see [Organization skills](#organization-skills)). | -| Capabilities > Allow network egress and Domain allowlist | Supported in Claude Science | These settings govern the hosted sandbox for claude.ai chat. Claude Science's sandbox has its own allowlist: manage it for the whole organization with the **Manage network allowlist** switch on the **Claude Science** page (see [Network allowlist](#network-allowlist)), or leave it off and let members manage their own. Administrators can also extend a member's list per device with the sandbox network keys in the [configuration file reference](/docs/claude-science/configuration-file-reference.md). | +| Capabilities > Allow network egress and Domain allowlist | Supported in Claude Science | These settings govern the hosted sandbox for claude.ai chat. Claude Science's sandbox has its own allowlist: manage it for the whole organization with the **Manage network allowlist** switch on the **Claude Science** page (see [Network allowlist](#network-allowlist)), or leave it off and let members manage their own. Administrators can also extend a member's list per device with the sandbox network keys in the [configuration file reference](https://claude.com/docs/claude-science/configuration-file-reference.md). | | Data and privacy > Location metadata | Not applicable in Claude Science | Claude Science doesn't send location data with requests to Claude, so there is nothing for this setting to govern. | | Capabilities > Memory (Enable memory for your team) | Supported in Claude Science | This setting governs memory in claude.ai chat. Claude Science keeps a separate memory on each member's computer, which you turn on or off with the **Turn on memory for your team** switch on the **Claude Science** page (see [Memory](#memory)). On Enterprise plans, a custom role's **Memory** capability under **Claude Science** can limit it to certain roles (see [Capabilities in custom roles](#capabilities-in-custom-roles)). | | Settings for claude.ai projects (Public projects, Retention period for projects) | Not applicable in Claude Science | Claude Science doesn't use claude.ai projects. Its projects are folders on the member's computer. | @@ -273,31 +273,31 @@ The status column in each table shows one of four values: | Setting in claude.ai | Status for Claude Science | Note | | - | - | - | -| Data and privacy > Encryption keys (customer-managed keys) | Supported in Claude Science | The content Anthropic stores from Claude Science (model-call logs, skills members publish, and, where the Compliance API is enabled, session transcripts) is encrypted under your key. Data stored on the member's computer isn't hosted by Anthropic, and work members send to their own SSH hosts, Modal account, or scientific model endpoints doesn't pass through Anthropic, so neither is under your key. In organizations that use customer-managed encryption keys, the app also hides the **Send feedback** link on the [**Chat paused**](/docs/claude-science/safeguards.md#when-safeguards-flag-a-message) card. See [Customer-managed encryption keys](/docs/claude-science/how-claude-science-works-with-your-data.md#customer-managed-encryption-keys). | +| Data and privacy > Encryption keys (customer-managed keys) | Supported in Claude Science | The content Anthropic stores from Claude Science (model-call logs, skills members publish, and, where the Compliance API is enabled, session transcripts) is encrypted under your key. Data stored on the member's computer isn't hosted by Anthropic, and work members send to their own SSH hosts, Modal account, or scientific model endpoints doesn't pass through Anthropic, so neither is under your key. In organizations that use customer-managed encryption keys, the app also hides the **Send feedback** link on the [**Chat paused**](https://claude.com/docs/claude-science/safeguards.md#when-safeguards-flag-a-message) card. See [Customer-managed encryption keys](https://claude.com/docs/claude-science/how-claude-science-works-with-your-data.md#customer-managed-encryption-keys). | | Data and privacy > Data residency (US-only inference), or the regional processing terms in your contract | Supported in Claude Science | Governs where Anthropic processes Claude Science requests to Claude, as for your other Claude products. It doesn't cover code that runs on the member's computer, SSH hosts, or Modal account (the same boundary as Claude Code). | | Data and privacy > HIPAA Compliance | Not applicable in Claude Science | Organizations with HIPAA compliance enabled can turn Claude Science on, but its use isn't covered under your BAA and members must keep protected health information out of it. These organizations start from stricter defaults, listed under [Defaults by plan](#defaults-by-plan). | -| Data and privacy > Retention period for chats and projects (Enterprise) | Partially supported in Claude Science | The window doesn't reach data stored on members' computers. For Enterprise organizations with the Compliance API enabled, Anthropic keeps each Claude Science session transcript it captures for the window in effect at the time of capture, or for 6 years when no window is set. See [How Claude Science works with your data](/docs/claude-science/how-claude-science-works-with-your-data.md) for what Anthropic keeps and for how long. | +| Data and privacy > Retention period for chats and projects (Enterprise) | Partially supported in Claude Science | The window doesn't reach data stored on members' computers. For Enterprise organizations with the Compliance API enabled, Anthropic keeps each Claude Science session transcript it captures for the window in effect at the time of capture, or for 6 years when no window is set. See [How Claude Science works with your data](https://claude.com/docs/claude-science/how-claude-science-works-with-your-data.md) for what Anthropic keeps and for how long. | ### Audit and compliance | Setting in claude.ai | Status for Claude Science | Note | | - | - | - | | Data and privacy > Export audit logs | Not available in Claude Science | Claude Science doesn't write events to the audit log. For Enterprise organizations with the Compliance API enabled, changes to your Claude Science organization settings are recorded in its Activity Feed instead. | -| Data and privacy > Compliance API | Supported in Claude Science | Enterprise plans only. The [Compliance API](https://platform.claude.com/docs/en/manage-claude/compliance-api) returns read-only transcripts of members' Claude Science sessions (this coverage is in beta) and records changes to your Claude Science organization settings in its Activity Feed. Sessions in organizations with HIPAA compliance enabled aren't captured. See [Compliance API coverage](/docs/claude-science/how-claude-science-works-with-your-data.md#compliance-api-coverage). | +| Data and privacy > Compliance API | Supported in Claude Science | Enterprise plans only. The [Compliance API](https://platform.claude.com/docs/en/manage-claude/compliance-api) returns read-only transcripts of members' Claude Science sessions (this coverage is in beta) and records changes to your Claude Science organization settings in its Activity Feed. Sessions in organizations with HIPAA compliance enabled aren't captured. See [Compliance API coverage](https://claude.com/docs/claude-science/how-claude-science-works-with-your-data.md#compliance-api-coverage). | | Data and privacy > Export data | Not available in Claude Science | The organization export doesn't include Claude Science conversations and files, which are stored on members' computers (the same as Claude Code). | ### Usage, models, and billing | Setting in claude.ai | Status for Claude Science | Note | | - | - | - | -| Usage > Extra usage and Spend limits | Supported in Claude Science | Claude Science usage counts the same way as Claude Code and Cowork usage. See [Plans and usage](/docs/claude-science/overview.md#plans-and-usage). | +| Usage > Extra usage and Spend limits | Supported in Claude Science | Claude Science usage counts the same way as Claude Code and Cowork usage. See [Plans and usage](https://claude.com/docs/claude-science/overview.md#plans-and-usage). | | Billing | Supported in Claude Science | Claude Science uses the same seat as the rest of claude.ai, so there is nothing separate to purchase. | | Models > Model access and Default model (Enterprise) | Supported in Claude Science | Claude Science follows your **Models** page. Turning a model off, for the whole organization or for a custom role, removes it from those members' model picker in the app within a few minutes, and requests for that model are refused. Your **Default model** setting applies in the app as it does in claude.ai. Team plans don't have the **Models** page. | -| Analytics (from the user menu) | Supported in Claude Science | Analytics has a **Claude Science** tab with adoption and session metrics, and the spend charts on the **Overview** tab can be filtered to Claude Science (see [Monitor usage](/docs/claude-science/monitor-usage.md)). | +| Analytics (from the user menu) | Supported in Claude Science | Analytics has a **Claude Science** tab with adoption and session metrics, and the spend charts on the **Overview** tab can be filtered to Claude Science (see [Monitor usage](https://claude.com/docs/claude-science/monitor-usage.md)). | ### Offboarding and local data | Setting in claude.ai | Status for Claude Science | Note | | - | - | - | -| Removing a member (local data) | Not available in Claude Science | Removing a member ends their access to Claude Science but doesn't delete data already on their computer. Use your device management software for that (see [Manage on devices](/docs/claude-science/manage-on-devices.md)). | -| Deleting local data | Not available in Claude Science | When a member deletes Claude Science data on their computer, nothing Anthropic holds is deleted: the model-call logs and, where captured, Compliance API session transcripts remain until their own retention periods end (see [How Claude Science works with your data](/docs/claude-science/how-claude-science-works-with-your-data.md)). | +| Removing a member (local data) | Not available in Claude Science | Removing a member ends their access to Claude Science but doesn't delete data already on their computer. Use your device management software for that (see [Manage on devices](https://claude.com/docs/claude-science/manage-on-devices.md)). | +| Deleting local data | Not available in Claude Science | When a member deletes Claude Science data on their computer, nothing Anthropic holds is deleted: the model-call logs and, where captured, Compliance API session transcripts remain until their own retention periods end (see [How Claude Science works with your data](https://claude.com/docs/claude-science/how-claude-science-works-with-your-data.md)). | diff --git a/content/claude/claude-science/artifacts.md b/content/claude/claude-science/artifacts.md index 674e09d86..e290a35fd 100644 --- a/content/claude/claude-science/artifacts.md +++ b/content/claude/claude-science/artifacts.md @@ -34,7 +34,7 @@ Every artifact version records how it was made. Open **Provenance** from an arti * **Code**: a reproducible script, downloadable as a script or notebook. * **Execution Log**: every command that ran. * **Environment**: the environment name, language version, and every installed package with its version. -* **Review**: findings from [the reviewer](/docs/claude-science/the-reviewer.md). +* **Review**: findings from [the reviewer](https://claude.com/docs/claude-science/the-reviewer.md). The **Execution Log** is the authoritative record of what ran. If the **Code** tab and the log disagree, trust the log. diff --git a/content/claude/claude-science/auto-mode.md b/content/claude/claude-science/auto-mode.md index 07464647a..8fa282f82 100644 --- a/content/claude/claude-science/auto-mode.md +++ b/content/claude/claude-science/auto-mode.md @@ -6,7 +6,7 @@ > Auto mode in Claude Science lets a safety check approve code and connector calls. -Auto mode in Claude Science lets Claude run code and call connectors without routine [permission cards](/docs/claude-science/core-concepts.md#permission-cards). A separate safety check reviews code, and the connector calls that would otherwise ask you, before they run. It approves the ones that look safe and holds anything that escalates beyond your request, is destructive or hard to undo, or appears driven by hostile content Claude read. Anything the check holds or can't check still shows you the card. Allow or deny the request as you would with auto mode off. +Auto mode in Claude Science lets Claude run code and call connectors without routine [permission cards](https://claude.com/docs/claude-science/core-concepts.md#permission-cards). A separate safety check reviews code, and the connector calls that would otherwise ask you, before they run. It approves the ones that look safe and holds anything that escalates beyond your request, is destructive or hard to undo, or appears driven by hostile content Claude read. Anything the check holds or can't check still shows you the card. Allow or deny the request as you would with auto mode off. > [!WARNING] > @@ -25,8 +25,8 @@ The **Auto mode on for new sessions** toggle also decides for sessions that don' Auto mode in Claude Science is available only when all of these requirements are met: -* **Sandbox**: the [sandbox](/docs/claude-science/core-concepts.md#sandbox) is on. With the sandbox off, auto mode approves nothing. -* **Organization**: on Team and Enterprise plans, your organization's admin allows it (see [Auto mode in Admin controls](/docs/claude-science/admin-controls.md#auto-mode)). +* **Sandbox**: the [sandbox](https://claude.com/docs/claude-science/core-concepts.md#sandbox) is on. With the sandbox off, auto mode approves nothing. +* **Organization**: on Team and Enterprise plans, your organization's admin allows it (see [Auto mode in Admin controls](https://claude.com/docs/claude-science/admin-controls.md#auto-mode)). * **Availability**: Anthropic has made auto mode available to you in Claude Science. If the toggle is missing or grayed out, one of these requirements is unmet. diff --git a/content/claude/claude-science/changelog.md b/content/claude/claude-science/changelog.md index 219d4dfb5..22e01e51c 100644 --- a/content/claude/claude-science/changelog.md +++ b/content/claude/claude-science/changelog.md @@ -16,7 +16,7 @@ October 21, 2026 October 21, 2026 -* A new **Trouble updating?** link opens [Update Claude Science](/docs/claude-science/update-claude-science.md), a help page with other ways to update. It shows in **Settings > General > About**, in the **Update required** box, and on the "Update available" notice while an update downloads or after one fails +* A new **Trouble updating?** link opens [Update Claude Science](https://claude.com/docs/claude-science/update-claude-science.md), a help page with other ways to update. It shows in **Settings > General > About**, in the **Update required** box, and on the "Update available" notice while an update downloads or after one fails * Cloud storage in Settings now works with Google Cloud Storage HMAC keys on computers where no AWS region is set * Mac: if `config.toml` has `auto_update = false` under `[update]`, Claude Science in its own window no longer checks for updates in the background. You can still check with **Claude Science > Check for App Updates…** in the menu bar * Linux: fixed updates from 0.1.66 or earlier failing with "restart aborted" when Claude Science was started by typing only `claude-science` @@ -79,7 +79,7 @@ October 13, 2026 * A GitHub token you paste in **Settings > Credentials** now stays after a restart, instead of switching back to the token found on your computer; if yours switched back, paste it again * Linux: fixed Featured connectors that run on your computer sometimes failing to start right after your first sign-in * Linux: Claude Science now needs bubblewrap and socat installed for the whole system, from your distribution's packages or by an administrator. If yours came from conda, Homebrew, or a folder in your home directory, the app refuses to start and its message says what to do -* Windows: Claude Science is now signed with a renewed certificate from the same publisher, Anthropic, PBC. If your IT team allows the app by certificate thumbprint, add the new SHA-1 thumbprint `60C2D9C51F09822FFF4F194DE9EEDB67451292D1` and keep the previous one, both listed under [Windows signing certificate](/docs/claude-science/manage-on-devices.md#windows-signing-certificate) +* Windows: Claude Science is now signed with a renewed certificate from the same publisher, Anthropic, PBC. If your IT team allows the app by certificate thumbprint, add the new SHA-1 thumbprint `60C2D9C51F09822FFF4F194DE9EEDB67451292D1` and keep the previous one, both listed under [Windows signing certificate](https://claude.com/docs/claude-science/manage-on-devices.md#windows-signing-certificate) * Security hardening of the analysis sandbox on Mac, Windows, and Linux * Various bug fixes and security improvements @@ -196,7 +196,7 @@ September 17, 2026 September 16, 2026 -* If your organization is in Anthropic's Life Sciences Verification Program (beta), you can now [choose a use case](/docs/claude-science/safeguards.md#choose-a-use-case) for your sessions +* If your organization is in Anthropic's Life Sciences Verification Program (beta), you can now [choose a use case](https://claude.com/docs/claude-science/safeguards.md#choose-a-use-case) for your sessions * Saved credentials now reach Claude's code only when it asks for them and you approve. They're no longer present in every cell * Access Claude Science work saved on your computer from other sign-ins, from Home or Settings. Admins control it on Team and Enterprise plans * Claude can send you a short message, such as a link to a file, while it keeps working on a task @@ -221,7 +221,7 @@ September 14, 2026 September 10, 2026 -* Claude Science is now available for Windows: download it from [claude.com/product/claude-science](https://claude.com/product/claude-science), and see [Get started](/docs/claude-science/get-started.md) for setup +* Claude Science is now available for Windows: download it from [claude.com/product/claude-science](https://claude.com/product/claude-science), and see [Get started](https://claude.com/docs/claude-science/get-started.md) for setup * Various bug fixes and improvements **0.1.43** diff --git a/content/claude/claude-science/command-line-settings.md b/content/claude/claude-science/command-line-settings.md index d9d33a6fa..bd84d3fe0 100644 --- a/content/claude/claude-science/command-line-settings.md +++ b/content/claude/claude-science/command-line-settings.md @@ -56,7 +56,7 @@ These two work on every command. On Windows, `~` in the defaults below is your u When serve starts, it prints a line of the form `Web UI → http://localhost:/?nonce=...`. The nonce is a one-time password: it signs one browser tab in and then expires, about three minutes after it is printed. The signed-in tab stays signed in until you restart the program.\ You never need to keep a link. claude-science open mints a fresh one and opens it in your browser whenever you want to sign in again. -The app listens on 127.0.0.1 unless you change `--host`, so it is reachable only from the machine it runs on. For a machine you reach over SSH, first forward two ports from your computer, the web app port and the preview port (by default the web app port plus one), as [Run on a remote Linux server](/docs/claude-science/run-on-remote-linux-server.md#forward-the-ports-from-your-computer) shows. Then run claude-science url on that machine and open the link it prints in your own browser. +The app listens on 127.0.0.1 unless you change `--host`, so it is reachable only from the machine it runs on. For a machine you reach over SSH, first forward two ports from your computer, the web app port and the preview port (by default the web app port plus one), as [Run on a remote Linux server](https://claude.com/docs/claude-science/run-on-remote-linux-server.md#forward-the-ports-from-your-computer) shows. Then run claude-science url on that machine and open the link it prints in your own browser. ## Flags for serve @@ -78,34 +78,34 @@ The app listens on 127.0.0.1 unless you change `--host`, so it is reachable only > [!WARNING] > -> * `--dangerously-no-sandbox` turns the [sandbox](/docs/claude-science/core-concepts.md#sandbox) off. On macOS and Linux, the code Claude runs then has full read and write access to your home directory and unrestricted network access. On Windows, code cells do not run at all while the flag is set. -> * `--dangerously-skip-approvals` approves [permission cards](/docs/claude-science/core-concepts.md#permission-cards) for you without showing them, until you restart without the flag. That includes Claude's requests to run code, reach network hosts, open folders, and use connector tools. Cards still show for a connector tool you set to [**Ask each time**](/docs/claude-science/custom-connectors.md) and for requests only you can answer, such as entering an SSH password, permanently deleting artifacts, or spending usage credits. On Linux, the card for a folder too large to check for credential files also still shows. Questions Claude asks you still appear. +> * `--dangerously-no-sandbox` turns the [sandbox](https://claude.com/docs/claude-science/core-concepts.md#sandbox) off. On macOS and Linux, the code Claude runs then has full read and write access to your home directory and unrestricted network access. On Windows, code cells do not run at all while the flag is set. +> * `--dangerously-skip-approvals` approves [permission cards](https://claude.com/docs/claude-science/core-concepts.md#permission-cards) for you without showing them, until you restart without the flag. That includes Claude's requests to run code, reach network hosts, open folders, and use connector tools. Cards still show for a connector tool you set to [**Ask each time**](https://claude.com/docs/claude-science/custom-connectors.md) and for requests only you can answer, such as entering an SSH password, permanently deleting artifacts, or spending usage credits. On Linux, the card for a folder too large to check for credential files also still shows. Questions Claude asks you still appear. > > These flags are acceptable only on a machine that is already isolated, such as a container or a disposable virtual machine. Never use them with data or prompts that came from someone else, because Claude may follow instructions hidden in them. Neither belongs in everyday use. -If your organization [manages the network allowlist](/docs/claude-science/admin-controls.md#network-allowlist), the app ignores `--dangerously-no-sandbox` and keeps the sandbox on. If the app learns of that setting only after it has started without the sandbox, it pauses new sessions and messages until you restart it. +If your organization [manages the network allowlist](https://claude.com/docs/claude-science/admin-controls.md#network-allowlist), the app ignores `--dangerously-no-sandbox` and keeps the sandbox on. If the app learns of that setting only after it has started without the sandbox, it pauses new sessions and messages until you restart it. ## Environment variables -`DO_NOT_TRACK`, set to any value other than `0` or `false`, turns usage analytics and error reports off. It is the same switch as `disable_telemetry = true` in the configuration file. `GITHUB_TOKEN` (or `GH_TOKEN`) is optional and is used only against `api.github.com`, to lift the rate limit when you install a skill from a GitHub repository. Claude Science also reads the standard proxy variables (`HTTPS_PROXY`, `HTTP_PROXY`, `NO_PROXY`, and `ALL_PROXY`); see [Use Claude Science on a corporate network](/docs/claude-science/corporate-networks.md#connect-through-an-outbound-proxy). The proxy address variables are the one case where the environment overrides the configuration file, and `NO_PROXY` is merged with the `no_proxy` key rather than replacing it. Every other setting belongs in the configuration file. +`DO_NOT_TRACK`, set to any value other than `0` or `false`, turns usage analytics and error reports off. It is the same switch as `disable_telemetry = true` in the configuration file. `GITHUB_TOKEN` (or `GH_TOKEN`) is optional and is used only against `api.github.com`, to lift the rate limit when you install a skill from a GitHub repository. Claude Science also reads the standard proxy variables (`HTTPS_PROXY`, `HTTP_PROXY`, `NO_PROXY`, and `ALL_PROXY`); see [Use Claude Science on a corporate network](https://claude.com/docs/claude-science/corporate-networks.md#connect-through-an-outbound-proxy). The proxy address variables are the one case where the environment overrides the configuration file, and `NO_PROXY` is merged with the `no_proxy` key rather than replacing it. Every other setting belongs in the configuration file. An app started from the macOS Dock or Finder, or from the Windows Start menu, does not see variables exported in a terminal. * **macOS**: the app reads the `env` file in the data directory (by default `~/.claude-science/env`) when it starts. It applies only a fixed list of variables from the file, which includes `DO_NOT_TRACK` and the proxy variables but not `GITHUB_TOKEN` or `GH_TOKEN`. Put `DO_NOT_TRACK` or a proxy variable there as a `KEY=VALUE` line, then quit and reopen the app. Add a GitHub token under **Settings > Credentials** instead, and delete its line from the file. Before version 0.1.56, the file could set any variable. * **Windows**: set the variable as a user environment variable, then quit and reopen the app. -See [How the environment variables reach the app](/docs/claude-science/corporate-networks.md#how-the-environment-variables-reach-the-app). +See [How the environment variables reach the app](https://claude.com/docs/claude-science/corporate-networks.md#how-the-environment-variables-reach-the-app). ## See also -> **[Run on a remote Linux server](/docs/claude-science/run-on-remote-linux-server.md)** +> **[Run on a remote Linux server](https://claude.com/docs/claude-science/run-on-remote-linux-server.md)** > > Install Claude Science on a server and use it from your own browser through an SSH tunnel. -> **[Configuration file reference](/docs/claude-science/configuration-file-reference.md)** +> **[Configuration file reference](https://claude.com/docs/claude-science/configuration-file-reference.md)** > > Find the `config.toml` file and set its network-related keys. -> **[Remote compute clusters](/docs/claude-science/remote-compute-clusters.md)** +> **[Remote compute clusters](https://claude.com/docs/claude-science/remote-compute-clusters.md)** > > Connect an SSH host and run jobs on it. diff --git a/content/claude/claude-science/comments.md b/content/claude/claude-science/comments.md index d028dc44e..7c23d970e 100644 --- a/content/claude/claude-science/comments.md +++ b/content/claude/claude-science/comments.md @@ -10,7 +10,7 @@ In Claude Science, comments let you pin notes to specific parts of an artifact i > [!NOTE] > -> This page covers comments on [artifacts in the Claude Science app](/docs/claude-science/artifacts.md). For artifacts in a claude.ai chat, see [What are artifacts and how do I use them?](https://support.claude.com/en/articles/17153992-what-are-artifacts-and-how-do-i-use-them) in the help center. +> This page covers comments on [artifacts in the Claude Science app](https://claude.com/docs/claude-science/artifacts.md). For artifacts in a claude.ai chat, see [What are artifacts and how do I use them?](https://support.claude.com/en/articles/17153992-what-are-artifacts-and-how-do-i-use-them) in the help center. ## Leaving a comment diff --git a/content/claude/claude-science/compute-providers.md b/content/claude/claude-science/compute-providers.md index cd7c0b6d9..2455eae63 100644 --- a/content/claude/claude-science/compute-providers.md +++ b/content/claude/claude-science/compute-providers.md @@ -14,9 +14,9 @@ In Settings > Compute > **Cloud providers**, click Connect on the Modal card. If ### Workspace restrictions set by your organization -On Team and Enterprise plans, your organization's admin can limit Modal to specific workspaces. When Claude uses your Modal token, the app checks the workspace that Modal reports for that token, not the label in your `~/.modal.toml`. If that workspace isn't on your organization's list, the app tells you that this Modal workspace is not allowed by your admin, and Claude can't run jobs there until you connect a token from an allowed workspace. Your admin can also turn Modal on or off for the organization (see [Modal](/docs/claude-science/admin-controls.md#modal)). +On Team and Enterprise plans, your organization's admin can limit Modal to specific workspaces. When Claude uses your Modal token, the app checks the workspace that Modal reports for that token, not the label in your `~/.modal.toml`. If that workspace isn't on your organization's list, the app tells you that this Modal workspace is not allowed by your admin, and Claude can't run jobs there until you connect a token from an allowed workspace. Your admin can also turn Modal on or off for the organization (see [Modal](https://claude.com/docs/claude-science/admin-controls.md#modal)). -If your organization manages the network allowlist, set **Network restrictions** on the Modal page under **Settings** > **Compute** to **Allowlist** or **No network** before you run jobs. Jobs from a Modal setup with unrestricted network access are refused while your organization manages the list (see [Network allowlist](/docs/claude-science/admin-controls.md#network-allowlist)). +If your organization manages the network allowlist, set **Network restrictions** on the Modal page under **Settings** > **Compute** to **Allowlist** or **No network** before you run jobs. Jobs from a Modal setup with unrestricted network access are refused while your organization manages the list (see [Network allowlist](https://claude.com/docs/claude-science/admin-controls.md#network-allowlist)). ## Running cloud jobs @@ -42,7 +42,7 @@ Claude derives a container image from the environment a job needs and builds it Claude Science can connect to a model server (hosted, or a container you run) that serves a scientific model over HTTP, and call it directly from analyses. -On Team and Enterprise plans, your organization's admin can turn off scientific model endpoints for the organization. When your admin turns them off, you can't connect these providers or use endpoints you set up earlier, and the settings you entered are kept. Turning them off doesn't change which Claude models you can use (see [Scientific model endpoints](/docs/claude-science/admin-controls.md#scientific-model-endpoints)). If your organization manages the network allowlist, an endpoint at a public or internal host name works only while that list includes the host. +On Team and Enterprise plans, your organization's admin can turn off scientific model endpoints for the organization. When your admin turns them off, you can't connect these providers or use endpoints you set up earlier, and the settings you entered are kept. Turning them off doesn't change which Claude models you can use (see [Scientific model endpoints](https://claude.com/docs/claude-science/admin-controls.md#scientific-model-endpoints)). If your organization manages the network allowlist, an endpoint at a public or internal host name works only while that list includes the host. ### NVIDIA BioNeMo NIM diff --git a/content/claude/claude-science/configuration-file-reference.md b/content/claude/claude-science/configuration-file-reference.md index 3abd53779..5957d02e9 100644 --- a/content/claude/claude-science/configuration-file-reference.md +++ b/content/claude/claude-science/configuration-file-reference.md @@ -12,7 +12,7 @@ On Windows, save the file as UTF-8 and write Windows paths inside it in single q ## Network configuration -The network-related keys, grouped by the TOML table each belongs to. For the package-mirror keys (`[conda] channel_mirror`, `pip_index_url`, and `ca_bundle`) and the proxy key (`[network] proxy`), a value set in the file takes precedence over the matching Settings control, which then shows as managed by your organization so a member cannot override it. The `[sandbox.network]` lists are additive instead: they add to the member-managed lists under **Settings** > **Network** and lock nothing. On Team and Enterprise plans, two settings made for the whole organization under **Organization settings** > **Claude Science** sit above both the file and the Settings page. An [organization package mirror](/docs/claude-science/admin-controls.md#organization-package-mirror) takes precedence over the mirror keys, and while the organization manages the [network allowlist](/docs/claude-science/admin-controls.md#network-allowlist), the file's `allowed_domains` are set aside and its `denied_domains` still apply. The `[network] ca_bundle`, `no_proxy`, and `mcp_x509_strict` keys and `[conda] allow_insecure_mirror` have no in-app control. +The network-related keys, grouped by the TOML table each belongs to. For the package-mirror keys (`[conda] channel_mirror`, `pip_index_url`, and `ca_bundle`) and the proxy key (`[network] proxy`), a value set in the file takes precedence over the matching Settings control, which then shows as managed by your organization so a member cannot override it. The `[sandbox.network]` lists are additive instead: they add to the member-managed lists under **Settings** > **Network** and lock nothing. On Team and Enterprise plans, two settings made for the whole organization under **Organization settings** > **Claude Science** sit above both the file and the Settings page. An [organization package mirror](https://claude.com/docs/claude-science/admin-controls.md#organization-package-mirror) takes precedence over the mirror keys, and while the organization manages the [network allowlist](https://claude.com/docs/claude-science/admin-controls.md#network-allowlist), the file's `allowed_domains` are set aside and its `denied_domains` still apply. The `[network] ca_bundle`, `no_proxy`, and `mcp_x509_strict` keys and `[conda] allow_insecure_mirror` have no in-app control. ### App connection keys @@ -20,9 +20,9 @@ The `[network]` table configures the app's own connections. | Key | Type | Default | Effect | | - | - | - | - | -| `proxy` | string (URL) | unset | The outbound proxy for the app's HTTP and HTTPS connections, for example `http://proxy.example.corp:8080`. Supply Basic-authentication credentials in the address. An `https://` (TLS-to-proxy) address applies to the app's own connections only; sandboxed package downloads connect directly when the proxy is `https://`, so prefer `http://`. A proxy variable in the app's environment (including `ALL_PROXY`) takes precedence over this key, which takes precedence over the Settings proxy field and the proxy detected from macOS or Windows system settings. On a Mac where Claude Science opens in its own window, the app's own updates use the proxy in macOS network settings instead (see [Proxy and certificates for updates in the Mac app window](/docs/claude-science/corporate-networks.md#proxy-and-certificates-for-updates-in-the-mac-app-window)). | +| `proxy` | string (URL) | unset | The outbound proxy for the app's HTTP and HTTPS connections, for example `http://proxy.example.corp:8080`. Supply Basic-authentication credentials in the address. An `https://` (TLS-to-proxy) address applies to the app's own connections only; sandboxed package downloads connect directly when the proxy is `https://`, so prefer `http://`. A proxy variable in the app's environment (including `ALL_PROXY`) takes precedence over this key, which takes precedence over the Settings proxy field and the proxy detected from macOS or Windows system settings. On a Mac where Claude Science opens in its own window, the app's own updates use the proxy in macOS network settings instead (see [Proxy and certificates for updates in the Mac app window](https://claude.com/docs/claude-science/corporate-networks.md#proxy-and-certificates-for-updates-in-the-mac-app-window)). | | `no_proxy` | string (comma-separated) | unset | Hosts that bypass the proxy, as exact hostnames or domain suffixes in one comma-separated string, for example `".example.corp,registry.example.corp"`. Combined with the `NO_PROXY` environment variable and, when the macOS or Windows system settings supply the proxy address, the system's bypass list. Loopback addresses always bypass the proxy. | -| `ca_bundle` | string (absolute path) | unset | PEM file added to the app's default TLS trust for sign-in, the Claude API, Anthropic-hosted connectors, update checks, and [cloud storage](/docs/claude-science/cloud-storage.md) access from Settings (Amazon S3, S3-compatible stores, Azure Blob Storage, and Google Cloud Storage); use it for a corporate root behind TLS inspection. It covers the app's own connections only, while package downloads use `[conda] ca_bundle`. On a Mac where Claude Science opens in its own window, the app's own updates use the certificates that macOS trusts instead of this file. The value must be an absolute path outside the app's data directory (`~/.claude-science`), temporary directories, and any directory you have granted Claude write access to; a system location such as `/etc/claude-science/corporate-ca.pem`, or a folder under `C:\ProgramData` on Windows, is recommended. The file must exist, parse as a PEM bundle, and contain no private key; a failing value is ignored with a warning. On Windows, when this key and `[conda] ca_bundle` are both unset, the roots in the computer's Trusted Root Certification Authorities store are trusted automatically instead. | +| `ca_bundle` | string (absolute path) | unset | PEM file added to the app's default TLS trust for sign-in, the Claude API, Anthropic-hosted connectors, update checks, and [cloud storage](https://claude.com/docs/claude-science/cloud-storage.md) access from Settings (Amazon S3, S3-compatible stores, Azure Blob Storage, and Google Cloud Storage); use it for a corporate root behind TLS inspection. It covers the app's own connections only, while package downloads use `[conda] ca_bundle`. On a Mac where Claude Science opens in its own window, the app's own updates use the certificates that macOS trusts instead of this file. The value must be an absolute path outside the app's data directory (`~/.claude-science`), temporary directories, and any directory you have granted Claude write access to; a system location such as `/etc/claude-science/corporate-ca.pem`, or a folder under `C:\ProgramData` on Windows, is recommended. The file must exist, parse as a PEM bundle, and contain no private key; a failing value is ignored with a warning. On Windows, when this key and `[conda] ca_bundle` are both unset, the roots in the computer's Trusted Root Certification Authorities store are trusted automatically instead. | | `mcp_x509_strict` | `"auto"`, `"relaxed"`, or `"strict"` | `"auto"` | How strictly local connectors check a corporate certificate's profile. With `"auto"`, Claude Science relaxes the strict check when it detects TLS inspection from a configured `[network] ca_bundle`. Connectors pick up a change at their next relaunch. | ### Package download keys @@ -31,7 +31,7 @@ The `[conda]` table configures where analysis environments fetch packages from a | Key | Type | Default | Effect | | - | - | - | - | -| `channel_mirror` | string (URL) | unset | Base URL of an internal conda mirror. Channel names resolve beneath it, so `/conda-forge/noarch/repodata.json` must return the conda-forge index. Setting it removes the public conda hosts from the sandbox allowlist and admits the mirror host, which environment builds contact directly from the workstation, not through an outbound proxy. Must be `https://` on port 443 or 8443 (an `http://` URL is accepted only when `allow_insecure_mirror` is set), by DNS name, with no embedded credentials. A deployed value these rules reject prevents the app from starting. An [organization package mirror](/docs/claude-science/admin-controls.md#organization-package-mirror) set under **Organization settings** > **Claude Science** takes precedence over this key. | +| `channel_mirror` | string (URL) | unset | Base URL of an internal conda mirror. Channel names resolve beneath it, so `/conda-forge/noarch/repodata.json` must return the conda-forge index. Setting it removes the public conda hosts from the sandbox allowlist and admits the mirror host, which environment builds contact directly from the workstation, not through an outbound proxy. Must be `https://` on port 443 or 8443 (an `http://` URL is accepted only when `allow_insecure_mirror` is set), by DNS name, with no embedded credentials. A deployed value these rules reject prevents the app from starting. An [organization package mirror](https://claude.com/docs/claude-science/admin-controls.md#organization-package-mirror) set under **Organization settings** > **Claude Science** takes precedence over this key. | | `pip_index_url` | string (URL) | unset | A PEP 503 simple index for Python packages, for example an Artifactory or Nexus PyPI remote ending in `/simple`. Setting it removes the public Python hosts from the sandbox allowlist. Same URL rules as `channel_mirror`, including the startup failure on an invalid value, and the same precedence of an organization package mirror. | | `ca_bundle` | string (absolute path) | unset | A complete PEM bundle (public roots plus your corporate roots) that package downloads verify against, replacing the default trust list; in this release the bundle alone may not be sufficient for pip, which verifies against the operating system's trust store. On macOS and Linux this key affects package downloads only, and it never fixes sign-in; behind TLS inspection, set `[network] ca_bundle` as well. When unset, Linux uses your distribution's system certificate bundle. On Windows, package downloads verify against the Windows certificate store and do not read this key; leave it unset there unless you need a custom bundle, because a file set on Windows becomes the complete certificate list that code inside sessions trusts and turns off the app's automatic use of the Windows certificate store. Same path rules as `[network] ca_bundle`. | | `allow_insecure_mirror` | boolean | `false` | Allows `http://` mirror URLs in this file (the Settings page accepts `https://` only). Off by default because a plaintext mirror lets an on-path attacker substitute packages. | @@ -44,7 +44,7 @@ The `[sandbox.network]` table adjusts the network allowlist the analysis sandbox | Key | Type | Default | Effect | | - | - | - | - | | `enabled` | boolean | `true` | When `false`, code Claude runs has no network access: package installs and data fetches inside the analysis fail, while the app's own connections are unaffected. This is a no-network mode, not a way to skip the allowlist. | -| `allowed_domains` | array of strings | `[]` | Domains added to the built-in allowlist, as exact hostnames or wildcards such as `*.example.org`. While the organization manages the [network allowlist](/docs/claude-science/admin-controls.md#network-allowlist) under **Organization settings** > **Claude Science**, these domains are set aside and the organization's list applies. | +| `allowed_domains` | array of strings | `[]` | Domains added to the built-in allowlist, as exact hostnames or wildcards such as `*.example.org`. While the organization manages the [network allowlist](https://claude.com/docs/claude-science/admin-controls.md#network-allowlist) under **Organization settings** > **Claude Science**, these domains are set aside and the organization's list applies. | | `denied_domains` | array of strings | `[]` | Domains added to the built-in denylist. A denied domain is blocked even if it also appears on the allowlist, and the built-in denylist entries cannot be removed. | ## Web search and upload keys @@ -64,7 +64,7 @@ chunked_upload_threshold_bytes = 4194304 ## Related resources -* [Use Claude Science on a corporate network](/docs/claude-science/corporate-networks.md): how to apply these keys for a proxy, TLS inspection, or an internal mirror -* [Network requirements](/docs/claude-science/network-requirements.md): the built-in allowlist and denylist these keys adjust -* [Manage Claude Science on devices](/docs/claude-science/manage-on-devices.md): deploying `config.toml` with device management -* [Command line settings](/docs/claude-science/command-line-settings.md): the `--config` and `--data-dir` flags +* [Use Claude Science on a corporate network](https://claude.com/docs/claude-science/corporate-networks.md): how to apply these keys for a proxy, TLS inspection, or an internal mirror +* [Network requirements](https://claude.com/docs/claude-science/network-requirements.md): the built-in allowlist and denylist these keys adjust +* [Manage Claude Science on devices](https://claude.com/docs/claude-science/manage-on-devices.md): deploying `config.toml` with device management +* [Command line settings](https://claude.com/docs/claude-science/command-line-settings.md): the `--config` and `--data-dir` flags diff --git a/content/claude/claude-science/connectors-and-skills.md b/content/claude/claude-science/connectors-and-skills.md index a199e5dc6..a5b18a7a9 100644 --- a/content/claude/claude-science/connectors-and-skills.md +++ b/content/claude/claude-science/connectors-and-skills.md @@ -10,7 +10,7 @@ Connectors give Claude access to external data sources during an analysis. Skill ## Featured connectors -Claude Science includes Featured connectors to public research databases, most of them in the life sciences. They're on by default and can be turned off individually in **Settings > Connectors**. On Team and Enterprise plans, your organization can also turn individual Featured connectors off for everyone, and in organizations with HIPAA compliance enabled they start off until an admin turns them on. A connector your organization has off stays listed, grayed, and Claude can't use it (see [Featured connectors and skills](/docs/claude-science/admin-controls.md#featured-connectors-and-skills)). Featured connectors are read-only and don't require an account or key, except that the Literature Graph needs a free OpenAlex API key to search OpenAlex (see [Available credentials](/docs/claude-science/literature-access.md#available-credentials)). Some underlying databases have non-commercial or attribution terms; review each source's license for your use case. +Claude Science includes Featured connectors to public research databases, most of them in the life sciences. They're on by default and can be turned off individually in **Settings > Connectors**. On Team and Enterprise plans, your organization can also turn individual Featured connectors off for everyone, and in organizations with HIPAA compliance enabled they start off until an admin turns them on. A connector your organization has off stays listed, grayed, and Claude can't use it (see [Featured connectors and skills](https://claude.com/docs/claude-science/admin-controls.md#featured-connectors-and-skills)). Featured connectors are read-only and don't require an account or key, except that the Literature Graph needs a free OpenAlex API key to search OpenAlex (see [Available credentials](https://claude.com/docs/claude-science/literature-access.md#available-credentials)). Some underlying databases have non-commercial or attribution terms; review each source's license for your use case. | Connector | Sources | | - | - | @@ -49,12 +49,12 @@ Connectors you've added in claude.ai, and ones your organization has added for y If what you need still isn't there, try these: -* **Ask Claude first.** Many public databases and tools work without a connector, because the code Claude runs can reach websites directly. The first time Claude needs a new site, a permission card asks you to allow it. If your organization manages the list of allowed sites, ask an admin to add it. See [Sandbox](/docs/claude-science/core-concepts.md#sandbox). +* **Ask Claude first.** Many public databases and tools work without a connector, because the code Claude runs can reach websites directly. The first time Claude needs a new site, a permission card asks you to allow it. If your organization manages the list of allowed sites, ask an admin to add it. See [Sandbox](https://claude.com/docs/claude-science/core-concepts.md#sandbox). * **Add one from the Connectors Directory.** Go to **Settings > Connectors > Add connector > Browse Connectors Directory**, which opens the directory in claude.ai. On Pro and Max plans, add the connector there and it appears in Claude Science. On Team and Enterprise plans, you may be able to add it yourself; if not, an admin can add it for your organization. On a Team plan, select **Request** on the connector's listing to ask your admins. -* **Add one yourself.** If the tool's maker gives you a web address for its connector (sometimes called an MCP server URL), go to **Settings > Connectors > Add connector > Remote URL** and paste it in. If the maker gives you a command to run instead, choose **Local command** and enter it there. On Team and Enterprise plans, this works only if your organization allows custom connectors. See [Custom connectors](/docs/claude-science/custom-connectors.md). -* **Ask the tool's maker.** If no connector exists yet, ask them to build one and [submit it to the Connectors Directory](/docs/connectors/building/submission.md). +* **Add one yourself.** If the tool's maker gives you a web address for its connector (sometimes called an MCP server URL), go to **Settings > Connectors > Add connector > Remote URL** and paste it in. If the maker gives you a command to run instead, choose **Local command** and enter it there. On Team and Enterprise plans, this works only if your organization allows custom connectors. See [Custom connectors](https://claude.com/docs/claude-science/custom-connectors.md). +* **Ask the tool's maker.** If no connector exists yet, ask them to build one and [submit it to the Connectors Directory](https://claude.com/docs/connectors/building/submission.md). -Admins can find the full set of options in [Add a connector your organization needs](/docs/claude-science/admin-controls.md#add-a-connector-your-organization-needs). +Admins can find the full set of options in [Add a connector your organization needs](https://claude.com/docs/claude-science/admin-controls.md#add-a-connector-your-organization-needs). ## Skills @@ -64,11 +64,11 @@ The AlphaFold2, Boltz-2, Chai-1, and OpenFold3 skills can build sequence alignme Claude loads a skill automatically when the work calls for it. Type **/** in the composer to open the skill picker and insert one explicitly. On Team and Enterprise plans, your organization can turn individual Featured skills off; a skill it has off stays listed, grayed, and Claude doesn't load it. -**Add skill** lets you create your own via **Chat with Claude**, **Write from scratch**, **Upload a skill**, or **Import from GitHub**. You can also ask Claude to distill a workflow from an existing session into a skill. On Team and Enterprise plans, adding skills of your own is available only if your organization allows custom skills; skills you added earlier keep working either way (see [Custom skills](/docs/claude-science/admin-controls.md#custom-skills)). +**Add skill** lets you create your own via **Chat with Claude**, **Write from scratch**, **Upload a skill**, or **Import from GitHub**. You can also ask Claude to distill a workflow from an existing session into a skill. On Team and Enterprise plans, adding skills of your own is available only if your organization allows custom skills; skills you added earlier keep working either way (see [Custom skills](https://claude.com/docs/claude-science/admin-controls.md#custom-skills)). **Import from GitHub** works with private repositories too, once you add a GitHub token under **Settings > Credentials**. An import has two 100 MB limits, one on the repository's download from GitHub and one on the combined size of its skill folders. -Your admin can also add skills for your organization from claude.ai. See [Organization skills](/docs/claude-science/admin-controls.md#organization-skills). +Your admin can also add skills for your organization from claude.ai. See [Organization skills](https://claude.com/docs/claude-science/admin-controls.md#organization-skills). ### Update skills imported from GitHub @@ -76,4 +76,4 @@ Skills you import from GitHub don't update automatically, and Claude Science doe If the repository no longer offers a skill you imported, Claude Science says so, and your copy stays and keeps working. -On Team and Enterprise plans, you can update imported skills only if your organization allows custom skills (see [Custom skills](/docs/claude-science/admin-controls.md#custom-skills)). +On Team and Enterprise plans, you can update imported skills only if your organization allows custom skills (see [Custom skills](https://claude.com/docs/claude-science/admin-controls.md#custom-skills)). diff --git a/content/claude/claude-science/core-concepts.md b/content/claude/claude-science/core-concepts.md index 968c83f8d..88b194d92 100644 --- a/content/claude/claude-science/core-concepts.md +++ b/content/claude/claude-science/core-concepts.md @@ -14,7 +14,7 @@ A session is one conversation thread. Each session has its own workspace folder ## Files stay on your computer -Claude reads and writes files in place, in the folders you grant. Anthropic doesn't host or store your files; file content that Claude reads to answer a prompt is sent to Anthropic as part of the conversation, and Anthropic retains it as [How Claude Science works with your data](/docs/claude-science/how-claude-science-works-with-your-data.md) describes. If you sign in to Claude Science on a different computer, your files, artifacts, and conversation history don't follow you there. See [Use Claude Science on more than one computer](/docs/claude-science/multiple-computers.md) for what your account does carry between computers. +Claude reads and writes files in place, in the folders you grant. Anthropic doesn't host or store your files; file content that Claude reads to answer a prompt is sent to Anthropic as part of the conversation, and Anthropic retains it as [How Claude Science works with your data](https://claude.com/docs/claude-science/how-claude-science-works-with-your-data.md) describes. If you sign in to Claude Science on a different computer, your files, artifacts, and conversation history don't follow you there. See [Use Claude Science on more than one computer](https://claude.com/docs/claude-science/multiple-computers.md) for what your account does carry between computers. The one exception to working in place is **Attach files** in the composer: attached files are copied into the application's local data folder so they stay with the conversation. @@ -38,7 +38,7 @@ A permission card appears in the conversation each time Claude needs a new kind All standing grants are listed in Settings > Permissions and can be revoked there. -On Linux, a uv, conda, mamba, or pixi environment in a folder you've granted **Read & write** can still be read-only to Claude. See [Environments in granted folders](/docs/claude-science/tools-and-environments.md#environments-in-granted-folders). +On Linux, a uv, conda, mamba, or pixi environment in a folder you've granted **Read & write** can still be read-only to Claude. See [Environments in granted folders](https://claude.com/docs/claude-science/tools-and-environments.md#environments-in-granted-folders). ## Plans @@ -58,7 +58,7 @@ Memory lets Claude save short facts about you, your projects, and your files acr Saved facts are stored in the app's local database on your computer; they aren't synced to Anthropic. The Memory settings page lists every saved fact. You can edit, delete, add, or clear facts there. A per-session toggle in the session settings menu turns memory off for that session only. -Facts Claude recalls for a session are sent to Anthropic as part of that session's conversation, and Anthropic retains them as [How Claude Science works with your data](/docs/claude-science/how-claude-science-works-with-your-data.md) describes. On Team and Enterprise plans, your organization's admin can turn memory off for the organization. Memory is then off for you whatever you chose, and your saved facts stay on your computer, where you can still review and delete them (see [Memory](/docs/claude-science/admin-controls.md#memory) in the admin controls). +Facts Claude recalls for a session are sent to Anthropic as part of that session's conversation, and Anthropic retains them as [How Claude Science works with your data](https://claude.com/docs/claude-science/how-claude-science-works-with-your-data.md) describes. On Team and Enterprise plans, your organization's admin can turn memory off for the organization. Memory is then off for you whatever you chose, and your saved facts stay on your computer, where you can still review and delete them (see [Memory](https://claude.com/docs/claude-science/admin-controls.md#memory) in the admin controls). ## Composer shortcuts diff --git a/content/claude/claude-science/corporate-networks.md b/content/claude/claude-science/corporate-networks.md index ee42c0aee..3299d9ca3 100644 --- a/content/claude/claude-science/corporate-networks.md +++ b/content/claude/claude-science/corporate-networks.md @@ -6,7 +6,7 @@ > How to run Claude Science behind an outbound proxy, a TLS-inspecting proxy, an internal package mirror, and an egress firewall, with the settings your network team needs for each. -Claude Science runs on each member's computer and connects out for sign-in, the Claude API, and package and research hosts, usually through controls your IT organization manages on a corporate network. This page shows the administrator who runs those controls how to point Claude Science at an internal package mirror, configure an outbound proxy and TLS inspection, and hand the firewall team the [network requirements](/docs/claude-science/network-requirements.md) it needs. +Claude Science runs on each member's computer and connects out for sign-in, the Claude API, and package and research hosts, usually through controls your IT organization manages on a corporate network. This page shows the administrator who runs those controls how to point Claude Science at an internal package mirror, configure an outbound proxy and TLS inspection, and hand the firewall team the [network requirements](https://claude.com/docs/claude-science/network-requirements.md) it needs. Claude Science makes three kinds of outbound connections, each passing through a different part of your network policy: @@ -17,11 +17,11 @@ Claude Science makes three kinds of outbound connections, each passing through a ## Setup at a glance 1. Check the [support table](#what-works-on-a-corporate-network) for your operating systems and network shape. -2. Hand the [network requirements](/docs/claude-science/network-requirements.md) page to the team that manages your proxy or firewall allowlist. +2. Hand the [network requirements](https://claude.com/docs/claude-science/network-requirements.md) page to the team that manages your proxy or firewall allowlist. 3. [Point package installs at your internal mirror](#point-package-installs-at-an-internal-mirror) if the public package hosts are blocked, and deploy the mirror credential. 4. [Connect through an outbound proxy](#connect-through-an-outbound-proxy) if your network uses one. 5. If your proxy inspects TLS, [deploy your corporate root certificate](#work-behind-tls-inspection) as two bundles: one for the app, and a differently built one for package downloads. -6. [Deploy the settings with device management](/docs/claude-science/manage-on-devices.md#deploy-configuration-with-device-management) rather than by hand. +6. [Deploy the settings with device management](https://claude.com/docs/claude-science/manage-on-devices.md#deploy-configuration-with-device-management) rather than by hand. 7. If sign-in or a first build fails, match the error against [Troubleshooting](#troubleshooting-corporate-network-errors). ## What works on a corporate network @@ -43,9 +43,9 @@ Claude Science makes three kinds of outbound connections, each passing through a ## Point package installs at an internal mirror -When your network blocks the public package hosts (`conda.anaconda.org`, `repo.anaconda.com`, `pypi.org`), point Claude Science at your internal artifact repository instead, and every environment build fetches packages through it. You can set the mirror in three places: once for the whole organization under **Organization settings** > **Claude Science** > **Organization package mirror**, for a fleet with the `[conda] channel_mirror` and `pip_index_url` keys in a [deployed `config.toml`](/docs/claude-science/manage-on-devices#deploy-configuration-with-device-management), or for a single machine under **Settings** > **Network** > **Package mirror**, where the same two settings are called the conda channel mirror and the pip index URL. The steps below use the Settings page, the quickest way to test a mirror URL before you deploy it. +When your network blocks the public package hosts (`conda.anaconda.org`, `repo.anaconda.com`, `pypi.org`), point Claude Science at your internal artifact repository instead, and every environment build fetches packages through it. You can set the mirror in three places: once for the whole organization under **Organization settings** > **Claude Science** > **Organization package mirror**, for a fleet with the `[conda] channel_mirror` and `pip_index_url` keys in a [deployed `config.toml`](https://claude.com/docs/claude-science/manage-on-devices#deploy-configuration-with-device-management), or for a single machine under **Settings** > **Network** > **Package mirror**, where the same two settings are called the conda channel mirror and the pip index URL. The steps below use the Settings page, the quickest way to test a mirror URL before you deploy it. -The organization setting takes a conda channel URL and a Python package index (PyPI) URL, which apply to every member whether or not the organization manages the network allowlist. They take precedence over a mirror set in a member's configuration file or Settings; the member's values are kept but not used, and their Settings show the package mirror as controlled by their admin. The same URL rules apply as below, and an address that breaks those rules is ignored for that registry rather than stopping the app. Members still sign in to the mirror themselves, once for each mirror host (see [Mirror credentials](#mirror-credentials)), unless you [deploy the credential as a file](#deploy-the-mirror-credential-as-a-file). The mirror removes the public hosts it replaces for every member. See [Organization package mirror](/docs/claude-science/admin-controls.md#organization-package-mirror). +The organization setting takes a conda channel URL and a Python package index (PyPI) URL, which apply to every member whether or not the organization manages the network allowlist. They take precedence over a mirror set in a member's configuration file or Settings; the member's values are kept but not used, and their Settings show the package mirror as controlled by their admin. The same URL rules apply as below, and an address that breaks those rules is ignored for that registry rather than stopping the app. Members still sign in to the mirror themselves, once for each mirror host (see [Mirror credentials](#mirror-credentials)), unless you [deploy the credential as a file](#deploy-the-mirror-credential-as-a-file). The mirror removes the public hosts it replaces for every member. See [Organization package mirror](https://claude.com/docs/claude-science/admin-controls.md#organization-package-mirror). Set both a conda channel mirror and a pip index: analysis environments are built from conda packages, so a pip index alone leaves the first build stuck trying to reach the public conda host. @@ -137,7 +137,7 @@ Mirrors that redirect package files to path-style object-storage URLs (such as ` Claude Science reads its proxy configuration once at startup, so restart it after a change. The first source that sets a proxy address wins: 1. The standard proxy variables in its own process environment: `HTTPS_PROXY`, `HTTP_PROXY`, and `NO_PROXY` (lowercase spellings also work). `ALL_PROXY` fills in for either proxy variable that is unset, an empty variable counts as unset, and `NO_PROXY="*"` sends all traffic directly. -2. The `[network] proxy` key in `config.toml`, the form to [deploy with device management](/docs/claude-science/manage-on-devices.md#deploy-configuration-with-device-management). +2. The `[network] proxy` key in `config.toml`, the form to [deploy with device management](https://claude.com/docs/claude-science/manage-on-devices.md#deploy-configuration-with-device-management). 3. The proxy field under **Settings** > **Network**, where a member can paste a proxy address by hand. It takes effect at the next restart, and when `config.toml` sets the proxy, the field shows as managed by your organization so members cannot override it. 4. On macOS and Windows, the proxy configured in the operating system's settings, which Claude Science detects automatically: an explicit web proxy in macOS network settings, or the proxy server in Windows proxy settings. @@ -155,7 +155,7 @@ Claude Science always bypasses the proxy for loopback addresses (`localhost`, `1 ### Proxy settings in the configuration file -For a fleet, set `[network] proxy` and `no_proxy` in `config.toml`; both keys and their formats are in the [configuration file reference](/docs/claude-science/configuration-file-reference.md#app-connection-keys). +For a fleet, set `[network] proxy` and `no_proxy` in `config.toml`; both keys and their formats are in the [configuration file reference](https://claude.com/docs/claude-science/configuration-file-reference.md#app-connection-keys). ### System proxy settings on macOS and Windows @@ -175,7 +175,7 @@ How the variables reach the app depends on the operating system: * On macOS, the Claude Science app reads a file named `env` in its data folder (`~/.claude-science/env` unless you moved the data folder) when it launches. The file holds `KEY=VALUE` lines (`export KEY=VALUE` also works). Put the three proxy variables there, then quit and reopen the app; an app started from the Dock or Finder does not see variables exported in a terminal. The file's `NO_PROXY` entries merge with the other sources rather than replacing them. - The app applies only a fixed list of variables from this file, which includes the proxy variables and `DO_NOT_TRACK`, and skips any other line with a warning in `~/.claude-science/logs/app.log`. When Claude Science opens in its own window on a Mac, the warning goes to `~/Library/Application Support/Claude Science/logs/host-local.log` instead. A `GITHUB_TOKEN` line, for example, is skipped, so add the token under **Settings > Credentials** (see [Environment variables](/docs/claude-science/command-line-settings.md#environment-variables)). Before version 0.1.56, the file could set any variable. + The app applies only a fixed list of variables from this file, which includes the proxy variables and `DO_NOT_TRACK`, and skips any other line with a warning in `~/.claude-science/logs/app.log`. When Claude Science opens in its own window on a Mac, the warning goes to `~/Library/Application Support/Claude Science/logs/host-local.log` instead. A `GITHUB_TOKEN` line, for example, is skipped, so add the token under **Settings > Credentials** (see [Environment variables](https://claude.com/docs/claude-science/command-line-settings.md#environment-variables)). Before version 0.1.56, the file could set any variable. * On Windows, the app reads the variables from the user's environment when it starts, so set them as user environment variables, then quit Claude Science from its notification-area icon and open it again; variables typed into an open Command Prompt or PowerShell window do not reach an app started from the Start menu. Because Claude Science already follows Windows proxy settings, most PCs need no variables, and `[network] proxy` in `config.toml` is the form to deploy. * On Linux, export the variables in the shell or service unit that starts `claude-science serve`. The `env` file is read only by the macOS app. @@ -195,7 +195,7 @@ Two settings carry the corporate root and behave differently. Set the one that m ### Corporate root for app connections -The `[network] ca_bundle` key in `config.toml` points at a PEM file whose certificates Claude Science adds to its default trust for sign-in, the Claude API, Anthropic-hosted connectors, update checks, and [cloud storage](/docs/claude-science/cloud-storage.md) access from Settings. On a Mac where Claude Science opens in its own window, the app's own updates use the certificates that macOS trusts instead (see [Proxy and certificates for updates in the Mac app window](#proxy-and-certificates-for-updates-in-the-mac-app-window)). For cloud storage, the corporate root applies to Amazon S3 and S3-compatible connections, to Azure Blob Storage connections, and to Google Cloud Storage connections. The public roots stay in place, so the file holds only your corporate root. The path rules are in the [configuration file reference](/docs/claude-science/configuration-file-reference.md#app-connection-keys). A failing value is ignored with a warning rather than stopping the app, so a sign-in error behind inspection usually means the bundle did not load, and the app re-reads the bundle every few minutes (about every 30 minutes on Windows), so a corrected file takes effect without a restart. When you deploy a `config.toml`, deploy the bundle files alongside it. +The `[network] ca_bundle` key in `config.toml` points at a PEM file whose certificates Claude Science adds to its default trust for sign-in, the Claude API, Anthropic-hosted connectors, update checks, and [cloud storage](https://claude.com/docs/claude-science/cloud-storage.md) access from Settings. On a Mac where Claude Science opens in its own window, the app's own updates use the certificates that macOS trusts instead (see [Proxy and certificates for updates in the Mac app window](#proxy-and-certificates-for-updates-in-the-mac-app-window)). For cloud storage, the corporate root applies to Amazon S3 and S3-compatible connections, to Azure Blob Storage connections, and to Google Cloud Storage connections. The public roots stay in place, so the file holds only your corporate root. The path rules are in the [configuration file reference](https://claude.com/docs/claude-science/configuration-file-reference.md#app-connection-keys). A failing value is ignored with a warning rather than stopping the app, so a sign-in error behind inspection usually means the bundle did not load, and the app re-reads the bundle every few minutes (about every 30 minutes on Windows), so a corrected file takes effect without a restart. When you deploy a `config.toml`, deploy the bundle files alongside it. On Windows, when neither `[network] ca_bundle` nor `[conda] ca_bundle` (the **CA bundle path** field in **Settings**) is set, Claude Science automatically trusts the root certificates installed for the whole computer (the computer's **Trusted Root Certification Authorities** store, not the current user's) and rechecks that store about every 30 minutes, so a PC whose device management already installs your corporate root there needs no setting. Claude Science reads that store with Windows PowerShell, so on PCs where Windows PowerShell is blocked or restricted for users, set `[network] ca_bundle` for the app's own connections and `[conda] ca_bundle` for code inside sessions instead of relying on the store. If you do set `[network] ca_bundle` on Windows, the file is used instead of the store; write its path in single quotes, for example `'C:\ProgramData\corp\corporate-ca.pem'`, because a backslash inside double quotes is a TOML escape and a file that fails to parse stops Claude Science from starting. @@ -212,7 +212,7 @@ pip verifies package downloads against the operating system's trust store, and i ca_bundle = "/etc/claude-science/complete-bundle.pem" ``` -The same path rules apply as for `[network] ca_bundle`; the [configuration file reference](/docs/claude-science/configuration-file-reference.md#package-download-keys) lists them. +The same path rules apply as for `[network] ca_bundle`; the [configuration file reference](https://claude.com/docs/claude-science/configuration-file-reference.md#package-download-keys) lists them. > [!WARNING] > @@ -260,7 +260,7 @@ When the check does sign in, a `401` means the token is wrong or expired. On a p When a `.netrc` file you deployed (see [Deploy the mirror credential as a file](#deploy-the-mirror-credential-as-a-file)) doesn't work, find the case that matches: * **An environment build fails with `401` or `403`**: check the file's name, contents, permissions, and token (see [HTTP 401 or 403 during an environment build](#http-401-or-403-during-an-environment-build)). On Windows, Claude Science doesn't use a file it can't open or whose keywords or characters it doesn't accept, and Python package installs then don't sign in with it. In a terminal, `claude-science logs` says why. -* **Your mirror's request log shows nothing**: if your network also allows the public package hosts, setup can use them before the organization's mirror address arrives. In that case, set the mirror in `config.toml` (see [Configuration file reference](/docs/claude-science/configuration-file-reference.md)) on another machine where Claude Science has never run, before the install, and repeat the test. +* **Your mirror's request log shows nothing**: if your network also allows the public package hosts, setup can use them before the organization's mirror address arrives. In that case, set the mirror in `config.toml` (see [Configuration file reference](https://claude.com/docs/claude-science/configuration-file-reference.md)) on another machine where Claude Science has never run, before the install, and repeat the test. * **The file reached a machine while a credential was still saved**: have the member select **Remove** under **Settings > Network > Package mirror > Mirror credentials**, then deploy the file again, because removing can empty it. On Windows, have the member then quit Claude Science from its notification-area icon and open it again. ### Green check, then nothing provides the package diff --git a/content/claude/claude-science/custom-connectors.md b/content/claude/claude-science/custom-connectors.md index ba0cd42fa..49386cccc 100644 --- a/content/claude/claude-science/custom-connectors.md +++ b/content/claude/claude-science/custom-connectors.md @@ -10,7 +10,7 @@ In **Settings > Connectors** > **Add connector**, choose **Remote** or **Local c Remote servers that need login take you through the provider's sign-in page. -On Team and Enterprise plans, you can add and use custom connectors only if your organization allows them. When it doesn't, the **Remote** and **Local command** options under **Add connector** are grayed with a note that custom connectors are disabled by your admin. Custom connectors you added earlier stay listed and grayed, Claude can't use them, and they work again if your organization turns custom connectors back on. See [Custom connectors](/docs/claude-science/admin-controls.md#custom-connectors) in the admin controls. +On Team and Enterprise plans, you can add and use custom connectors only if your organization allows them. When it doesn't, the **Remote** and **Local command** options under **Add connector** are grayed with a note that custom connectors are disabled by your admin. Custom connectors you added earlier stay listed and grayed, Claude can't use them, and they work again if your organization turns custom connectors back on. See [Custom connectors](https://claude.com/docs/claude-science/admin-controls.md#custom-connectors) in the admin controls. Every tool from a custom connector starts as **Not set**, and Claude asks before using it. On the connector's page, set individual tools to **Always allow**, **Ask each time**, or **Block** under **Tools**, or turn on Skip approvals for the whole connector. diff --git a/content/claude/claude-science/enable-claude-science.md b/content/claude/claude-science/enable-claude-science.md index 83aa60eac..f69e373e2 100644 --- a/content/claude/claude-science/enable-claude-science.md +++ b/content/claude/claude-science/enable-claude-science.md @@ -6,7 +6,7 @@ > Claude Science is a desktop app for scientific research. -Claude Science is a desktop app for scientific research. It's off by default for Team and Enterprise organizations, and on by default for organizations on the [Claude Team plan for scientists](https://claude.com/programs/team-plan-for-scientists). Turning it on in **Organization settings** > **Claude Science** opens a short dialog that covers who gets access and which connectors to turn on. You can change any of it later on the same page, which also holds the other [organization settings](/docs/claude-science/admin-controls.md#organization-settings) for Claude Science: which connectors, skills, compute, network access, and memory members can use, and whether members can access previously saved Claude Science work. +Claude Science is a desktop app for scientific research. It's off by default for Team and Enterprise organizations, and on by default for organizations on the [Claude Team plan for scientists](https://claude.com/programs/team-plan-for-scientists). Turning it on in **Organization settings** > **Claude Science** opens a short dialog that covers who gets access and which connectors to turn on. You can change any of it later on the same page, which also holds the other [organization settings](https://claude.com/docs/claude-science/admin-controls.md#organization-settings) for Claude Science: which connectors, skills, compute, network access, and memory members can use, and whether members can access previously saved Claude Science work. ## Availability @@ -20,7 +20,7 @@ Claude Science is in beta. | Pro and Max | On; no admin action needed | | Free | Not available | -On the Claude Team plan for scientists, members can [download Claude Science](https://claude.com/product/claude-science) and sign in with their claude.ai account without any admin action. An Owner or Primary Owner can [turn Claude Science off](#turn-off-claude-science) or change the other [organization settings](/docs/claude-science/admin-controls.md#organization-settings) at any time in [**Organization settings > Claude Science**](https://claude.ai/admin-settings/claude-science). The **PubMed**, **Clinical Trials**, **ChEMBL**, and **bioRxiv** connectors aren't added to your organization automatically (see [Set up connectors](#set-up-connectors)). +On the Claude Team plan for scientists, members can [download Claude Science](https://claude.com/product/claude-science) and sign in with their claude.ai account without any admin action. An Owner or Primary Owner can [turn Claude Science off](#turn-off-claude-science) or change the other [organization settings](https://claude.com/docs/claude-science/admin-controls.md#organization-settings) at any time in [**Organization settings > Claude Science**](https://claude.ai/admin-settings/claude-science). The **PubMed**, **Clinical Trials**, **ChEMBL**, and **bioRxiv** connectors aren't added to your organization automatically (see [Set up connectors](#set-up-connectors)). If your organization has HIPAA compliance enabled, Claude Science app access is off by default, whatever your plan. You can turn it on, but usage isn't covered under your Business Associate Agreement (BAA) and the app shouldn't be used with protected health information (PHI). These organizations also start with stricter organization settings (see [HIPAA organizations](#hipaa-organizations)). @@ -29,7 +29,7 @@ If your organization has HIPAA compliance enabled, Claude Science app access is Go to **Organization settings** > **Claude Science**.\ Turn on the **Enable for your organization** toggle. The **Turn on Claude Science** dialog opens.\ Complete each step of the dialog, described below, then select **Turn on Claude Science**. Nothing is saved until you do.\ -Review the [organization settings](/docs/claude-science/admin-controls.md#organization-settings) below the toggle, which unlock once Claude Science is on.\ +Review the [organization settings](https://claude.com/docs/claude-science/admin-controls.md#organization-settings) below the toggle, which unlock once Claude Science is on.\ Members with access can [download Claude Science](https://claude.com/product/claude-science) and sign in with their claude.ai account. You need an Owner or Primary Owner role to turn Claude Science on or off. If you have the Admin role, you can add members and assign seats, but you can't turn on Claude Science. Ask an Owner or Primary Owner to turn it on. @@ -42,11 +42,11 @@ This step shows who gets access once Claude Science is on. On Team plans, everyo Turn on the tools and data sources your team will use in Claude Science. You can change all of it later. -Under **Featured connectors**, the **Claude Science local connectors** row covers the connectors that are built by Anthropic, ship with the app, and run on each member's computer. Expand it to turn individual connectors on or off for the whole organization; you can change this later under [Featured connectors and skills](/docs/claude-science/admin-controls.md#featured-connectors-and-skills), and members can also turn individual local connectors off for themselves in the app. The **PubMed**, **Clinical Trials**, **ChEMBL**, and **bioRxiv** rows are connectors Anthropic hosts. They start selected, and turning Claude Science on adds the selected ones to **Organization settings** > **Connectors** for your organization, which makes them available to members in Claude Science and in claude.ai. +Under **Featured connectors**, the **Claude Science local connectors** row covers the connectors that are built by Anthropic, ship with the app, and run on each member's computer. Expand it to turn individual connectors on or off for the whole organization; you can change this later under [Featured connectors and skills](https://claude.com/docs/claude-science/admin-controls.md#featured-connectors-and-skills), and members can also turn individual local connectors off for themselves in the app. The **PubMed**, **Clinical Trials**, **ChEMBL**, and **bioRxiv** rows are connectors Anthropic hosts. They start selected, and turning Claude Science on adds the selected ones to **Organization settings** > **Connectors** for your organization, which makes them available to members in Claude Science and in claude.ai. Under **From the Claude connector directory**, you can select additional life-sciences connectors, which are added to your organization the same way. -On the Claude Team plan for scientists, Claude Science is on without the **Turn on Claude Science** dialog, so the **PubMed**, **Clinical Trials**, **ChEMBL**, and **bioRxiv** connectors aren't added to your organization automatically. To add them, go to [**Organization settings > Claude Science**](https://claude.ai/admin-settings/claude-science) and turn on their switches under **Featured connectors** (see [Featured connectors and skills](/docs/claude-science/admin-controls.md#featured-connectors-and-skills)). +On the Claude Team plan for scientists, Claude Science is on without the **Turn on Claude Science** dialog, so the **PubMed**, **Clinical Trials**, **ChEMBL**, and **bioRxiv** connectors aren't added to your organization automatically. To add them, go to [**Organization settings > Claude Science**](https://claude.ai/admin-settings/claude-science) and turn on their switches under **Featured connectors** (see [Featured connectors and skills](https://claude.com/docs/claude-science/admin-controls.md#featured-connectors-and-skills)). The **PubMed**, **Clinical Trials**, **ChEMBL**, and **bioRxiv** rows and the directory list are read-only if your organization has HIPAA compliance enabled or your role can't add connectors for the organization; add those connectors from **Organization settings** > **Connectors** after enabling. The switches for the local connectors still work, and in an organization with HIPAA compliance enabled they start off so you can turn on the ones you have reviewed. @@ -62,7 +62,7 @@ A custom role whose **Capability access** setting is **All capabilities** alread This is the same pattern as other Claude apps you enable per organization. -In a custom role, the **Claude Science** capability has seven capabilities under it, one for each feature you can limit by role, such as SSH hosts, Modal, and memory. Turning on the **Claude Science** capability turns these on too, and you can then turn off the ones that role shouldn't have (see [Capabilities in custom roles](/docs/claude-science/admin-controls.md#capabilities-in-custom-roles)). Any that goes with an organization setting you can't turn on stays off. +In a custom role, the **Claude Science** capability has seven capabilities under it, one for each feature you can limit by role, such as SSH hosts, Modal, and memory. Turning on the **Claude Science** capability turns these on too, and you can then turn off the ones that role shouldn't have (see [Capabilities in custom roles](https://claude.com/docs/claude-science/admin-controls.md#capabilities-in-custom-roles)). Any that goes with an organization setting you can't turn on stays off. ## What members see @@ -76,8 +76,8 @@ Members who belong to more than one organization on claude.ai, such as a persona Organizations with HIPAA compliance enabled can turn on Claude Science during the beta, but usage isn't covered under your BAA, so keep protected health information out of it. The **Turn on Claude Science** dialog opens with a step that says so. In its connectors step the local connectors start off, and you can turn on the ones you have reviewed. The Anthropic-hosted and directory connectors in that step are read-only because the dialog's quick-enable path doesn't include the per-connector HIPAA attestation, so add those from **Organization settings** > **Connectors** instead, where the attestation is required. -These organizations also start with stricter organization settings. Featured connectors and skills, SSH hosts, Modal, model endpoints, and memory are off until you turn them on (including for members who were already using them), custom connectors and access to previously saved Claude Science work can't be turned on, and the organization always manages the network allowlist. See [Defaults by plan](/docs/claude-science/admin-controls.md#defaults-by-plan). +These organizations also start with stricter organization settings. Featured connectors and skills, SSH hosts, Modal, model endpoints, and memory are off until you turn them on (including for members who were already using them), custom connectors and access to previously saved Claude Science work can't be turned on, and the organization always manages the network allowlist. See [Defaults by plan](https://claude.com/docs/claude-science/admin-controls.md#defaults-by-plan). ## Turn off Claude Science -Go to **Organization settings** > **Claude Science** and turn off the **Enable for your organization** toggle. Members can no longer sign in to the app, and members who are already signed in lose access within a few minutes. The app stops accepting new messages and shows a notice that Claude Science isn't available for their account. The other settings on the page keep their values and apply again when you turn Claude Science back on. Data already on members' computers stays there; see [How Claude Science works with your data](/docs/claude-science/how-claude-science-works-with-your-data.md) for details. +Go to **Organization settings** > **Claude Science** and turn off the **Enable for your organization** toggle. Members can no longer sign in to the app, and members who are already signed in lose access within a few minutes. The app stops accepting new messages and shows a notice that Claude Science isn't available for their account. The other settings on the page keep their values and apply again when you turn Claude Science back on. Data already on members' computers stays there; see [How Claude Science works with your data](https://claude.com/docs/claude-science/how-claude-science-works-with-your-data.md) for details. diff --git a/content/claude/claude-science/example-gallery.md b/content/claude/claude-science/example-gallery.md index 3a4f74740..05e458748 100644 --- a/content/claude/claude-science/example-gallery.md +++ b/content/claude/claude-science/example-gallery.md @@ -6,22 +6,22 @@ > Browse nine example prompts from nine fields of science, each the start of a complete analysis in Claude Science. -Copy an example's prompt into a new session in [Claude Science](/docs/claude-science/overview.md) and compare your result with its reference analysis. +Copy an example's prompt into a new session in [Claude Science](https://claude.com/docs/claude-science/overview.md) and compare your result with its reference analysis. -> **[Genetic drift in a bottle: Buri's 107 fruit-fly populations](/docs/claude-science/example-gallery/bio-drift.md)** +> **[Genetic drift in a bottle: Buri's 107 fruit-fly populations](https://claude.com/docs/claude-science/example-gallery/bio-drift.md)** -> **[A titration curve from the full equilibrium: which indicator finds the equivalence point?](/docs/claude-science/example-gallery/chem-titration.md)** +> **[A titration curve from the full equilibrium: which indicator finds the equivalence point?](https://claude.com/docs/claude-science/example-gallery/chem-titration.md)** -> **[A first Kaplan–Meier curve: the 1963 leukemia trial of 6-MP](/docs/claude-science/example-gallery/clin-km.md)** +> **[A first Kaplan–Meier curve: the 1963 leukemia trial of 6-MP](https://claude.com/docs/claude-science/example-gallery/clin-km.md)** -> **[PageRank on a web of 11 pages: why 1 good link beats 6 weak ones](/docs/claude-science/example-gallery/cs-pagerank-tiny.md)** +> **[PageRank on a web of 11 pages: why 1 good link beats 6 weak ones](https://claude.com/docs/claude-science/example-gallery/cs-pagerank-tiny.md)** -> **[A first finite-element model: a clamped steel ruler bends and vibrates](/docs/claude-science/example-gallery/eng-beam.md)** +> **[A first finite-element model: a clamped steel ruler bends and vibrates](https://claude.com/docs/claude-science/example-gallery/eng-beam.md)** -> **[A first X-ray diffraction pattern: why silicon shows 6 peaks and salt 9](/docs/claude-science/example-gallery/mat-xrd.md)** +> **[A first X-ray diffraction pattern: why silicon shows 6 peaks and salt 9](https://claude.com/docs/claude-science/example-gallery/mat-xrd.md)** -> **[The Ulam spiral: are the primes' diagonal streaks real?](/docs/claude-science/example-gallery/math-ulam.md)** +> **[The Ulam spiral: are the primes' diagonal streaks real?](https://claude.com/docs/claude-science/example-gallery/math-ulam.md)** -> **[The double slit, one electron at a time](/docs/claude-science/example-gallery/phys-doubleslit.md)** +> **[The double slit, one electron at a time](https://claude.com/docs/claude-science/example-gallery/phys-doubleslit.md)** -> **[Schelling's segregation model: ask for 30% same-color neighbors, end up with 75%](/docs/claude-science/example-gallery/soc-schelling-small.md)** +> **[Schelling's segregation model: ask for 30% same-color neighbors, end up with 75%](https://claude.com/docs/claude-science/example-gallery/soc-schelling-small.md)** diff --git a/content/claude/claude-science/example-gallery/bio-drift.md b/content/claude/claude-science/example-gallery/bio-drift.md index 1d8ba2433..554104a82 100644 --- a/content/claude/claude-science/example-gallery/bio-drift.md +++ b/content/claude/claude-science/example-gallery/bio-drift.md @@ -12,7 +12,7 @@ The numbers in your session might differ from this picture and from the summary ## Prompt -Copy the prompt and paste it into a new session in [Claude Science](/docs/claude-science/overview.md). By default, Claude asks with a [permission card](/docs/claude-science/core-concepts.md#permission-cards) before it runs code or installs packages. +Copy the prompt and paste it into a new session in [Claude Science](https://claude.com/docs/claude-science/overview.md). By default, Claude asks with a [permission card](https://claude.com/docs/claude-science/core-concepts.md#permission-cards) before it runs code or installs packages. ```text Prompt wrap theme={null} In a 1956 paper, Peter Buri described keeping 107 bottles of fruit flies for 19 generations, restarting each bottle every generation with 8 males and 8 females picked at random. Every founder carried one copy each of two neutral eye-color alleles, bw and bw75, so bw75 started at a frequency of 0.5 in every bottle. diff --git a/content/claude/claude-science/example-gallery/chem-titration.md b/content/claude/claude-science/example-gallery/chem-titration.md index e9032d632..a6cec306b 100644 --- a/content/claude/claude-science/example-gallery/chem-titration.md +++ b/content/claude/claude-science/example-gallery/chem-titration.md @@ -12,7 +12,7 @@ The numbers in your session might differ from this picture and from the summary ## Prompt -Copy the prompt and paste it into a new session in [Claude Science](/docs/claude-science/overview.md). By default, Claude asks with a [permission card](/docs/claude-science/core-concepts.md#permission-cards) before it runs code or installs packages. +Copy the prompt and paste it into a new session in [Claude Science](https://claude.com/docs/claude-science/overview.md). By default, Claude asks with a [permission card](https://claude.com/docs/claude-science/core-concepts.md#permission-cards) before it runs code or installs packages. ```text Prompt wrap theme={null} I'm titrating 25.0 mL of 0.100 M acetic acid (pKa 4.76) with 0.100 M NaOH. Compute the pH after each addition of base, from 0 to 50 mL, by solving the full equilibrium (mass balance, charge balance, Kw = 1.0 × 10⁻¹⁴) without the usual shortcuts (no Henderson–Hasselbalch, no 'x is small'), using concentrations, at 25 °C. Plot the titration curve and mark the starting point, the half-equivalence point and the equivalence point. Show that the acid alone sets the start, pH = pKa half-way, and acetate acting as a weak base sets the equivalence point. diff --git a/content/claude/claude-science/example-gallery/clin-km.md b/content/claude/claude-science/example-gallery/clin-km.md index a72c46fba..8c243c3a1 100644 --- a/content/claude/claude-science/example-gallery/clin-km.md +++ b/content/claude/claude-science/example-gallery/clin-km.md @@ -12,7 +12,7 @@ The numbers in your session might differ from this picture and from the summary ## Prompt -Copy the prompt and paste it into a new session in [Claude Science](/docs/claude-science/overview.md). By default, Claude asks with a [permission card](/docs/claude-science/core-concepts.md#permission-cards) before it runs code or installs packages. +Copy the prompt and paste it into a new session in [Claude Science](https://claude.com/docs/claude-science/overview.md). By default, Claude asks with a [permission card](https://claude.com/docs/claude-science/core-concepts.md#permission-cards) before it runs code or installs packages. ```text Prompt wrap theme={null} In 1963 Freireich and colleagues published an early randomized, placebo-controlled trial of a chemotherapy drug: 42 patients under 20 with acute leukemia in remission got either 6-mercaptopurine (6-MP) or a placebo, and were followed until they relapsed or the trial was stopped, which happened early, once 6-MP was clearly ahead. These are the weeks each patient stayed in remission. A + means the patient was still in remission when the trial was stopped. diff --git a/content/claude/claude-science/example-gallery/cs-pagerank-tiny.md b/content/claude/claude-science/example-gallery/cs-pagerank-tiny.md index fb6df0f4f..61f3919c5 100644 --- a/content/claude/claude-science/example-gallery/cs-pagerank-tiny.md +++ b/content/claude/claude-science/example-gallery/cs-pagerank-tiny.md @@ -12,7 +12,7 @@ The numbers in your session might differ from this picture and from the summary ## Prompt -Copy the prompt and paste it into a new session in [Claude Science](/docs/claude-science/overview.md). By default, Claude asks with a [permission card](/docs/claude-science/core-concepts.md#permission-cards) before it runs code or installs packages. +Copy the prompt and paste it into a new session in [Claude Science](https://claude.com/docs/claude-science/overview.md). By default, Claude asks with a [permission card](https://claude.com/docs/claude-science/core-concepts.md#permission-cards) before it runs code or installs packages. ```text Prompt wrap theme={null} PageRank is the idea that launched Google (Brin & Page, 1998): a page matters if pages that matter link to it. Here is a tiny web of 11 pages, A to K, where B→C means that page B links to page C: diff --git a/content/claude/claude-science/example-gallery/eng-beam.md b/content/claude/claude-science/example-gallery/eng-beam.md index a5a58080e..c0fe14e3b 100644 --- a/content/claude/claude-science/example-gallery/eng-beam.md +++ b/content/claude/claude-science/example-gallery/eng-beam.md @@ -12,7 +12,7 @@ The numbers in your session might differ from this picture and from the summary ## Prompt -Copy the prompt and paste it into a new session in [Claude Science](/docs/claude-science/overview.md). By default, Claude asks with a [permission card](/docs/claude-science/core-concepts.md#permission-cards) before it runs code or installs packages. +Copy the prompt and paste it into a new session in [Claude Science](https://claude.com/docs/claude-science/overview.md). By default, Claude asks with a [permission card](https://claude.com/docs/claude-science/core-concepts.md#permission-cards) before it runs code or installs packages. ```text Prompt wrap theme={null} I'm learning the finite-element method. Model a steel ruler clamped at one end: length 300 mm, width 25 mm, thickness 3 mm, E = 200 GPa, density 7850 kg/m³. Split it into 4 standard 2-node beam elements (cubic shape functions, consistent mass matrix) and write the matrices yourself with numpy. First hang 1 N (about 100 g) on the free end: beam theory says the tip drops PL³/(3EI) = 0.800 mm. Check that you get it, and draw the bent ruler over the theory curve. Then let the ruler vibrate: plot its first 3 mode shapes, each labeled with its frequency. Theory gives 27.18, 170.33 and 476.93 Hz; finite-element frequencies land slightly above and get closer with more elements, so show that in a small table for 2, 4, 8 and 16 elements. Give each frequency to 2 decimals, and its error in % worked out from the unrounded frequencies. Explain each step as you would to an undergraduate. diff --git a/content/claude/claude-science/example-gallery/mat-xrd.md b/content/claude/claude-science/example-gallery/mat-xrd.md index d8ba1fc06..e147d797d 100644 --- a/content/claude/claude-science/example-gallery/mat-xrd.md +++ b/content/claude/claude-science/example-gallery/mat-xrd.md @@ -12,7 +12,7 @@ The numbers in your session might differ from this picture and from the summary ## Prompt -Copy the prompt and paste it into a new session in [Claude Science](/docs/claude-science/overview.md). By default, Claude asks with a [permission card](/docs/claude-science/core-concepts.md#permission-cards) before it runs code or installs packages. +Copy the prompt and paste it into a new session in [Claude Science](https://claude.com/docs/claude-science/overview.md). By default, Claude asks with a [permission card](https://claude.com/docs/claude-science/core-concepts.md#permission-cards) before it runs code or installs packages. ```text Prompt wrap theme={null} X-ray diffraction is how we know where the atoms sit in a crystal. Simulate the powder diffraction patterns of silicon (diamond structure, a = 5.4311 Å) and rock salt (NaCl, a = 5.6402 Å) with pymatgen, for copper Kα₁ X-rays (wavelength="CuKa1", λ = 1.54056 Å) and angles 2θ up to 90°. Nothing needs downloading. Label every peak with its Miller indices hkl, and check each angle by hand with Bragg's law, λ = 2d sin θ, where d = a/√(h²+k²+l²). Both crystals share a face-centered cubic lattice, which allows 9 reflections in this range, yet silicon shows only 6: show that its 2-atom basis cancels 200, 222 and 420. In salt the all-odd peaks (111, 311, 331) are weak because Na and Cl scatter out of phase: show that too. Leave out other salts and what-ifs such as Na and Cl scattering equally, and round every number once, from its full-precision value. Put both patterns in 1 figure. Explain each step as you would to an undergraduate. diff --git a/content/claude/claude-science/example-gallery/math-ulam.md b/content/claude/claude-science/example-gallery/math-ulam.md index 596d0f463..2be84fe6b 100644 --- a/content/claude/claude-science/example-gallery/math-ulam.md +++ b/content/claude/claude-science/example-gallery/math-ulam.md @@ -12,7 +12,7 @@ The numbers in your session might differ from this picture and from the summary ## Prompt -Copy the prompt and paste it into a new session in [Claude Science](/docs/claude-science/overview.md). By default, Claude asks with a [permission card](/docs/claude-science/core-concepts.md#permission-cards) before it runs code or installs packages. +Copy the prompt and paste it into a new session in [Claude Science](https://claude.com/docs/claude-science/overview.md). By default, Claude asks with a [permission card](https://claude.com/docs/claude-science/core-concepts.md#permission-cards) before it runs code or installs packages. ```text Prompt wrap theme={null} In 1963 the mathematician Stanisław Ulam, doodling during a long and boring talk, wrote the whole numbers in a square spiral and circled the primes. Recreate his picture. Find all primes up to 40,401 (= 201 × 201) with a sieve of Eratosthenes, and check that 1,229 of them are below 10,000. Write 1, 2, 3, … in a square spiral starting from the center, and mark the primes. diff --git a/content/claude/claude-science/example-gallery/phys-doubleslit.md b/content/claude/claude-science/example-gallery/phys-doubleslit.md index a7e29af37..68bd4014f 100644 --- a/content/claude/claude-science/example-gallery/phys-doubleslit.md +++ b/content/claude/claude-science/example-gallery/phys-doubleslit.md @@ -12,7 +12,7 @@ The numbers in your session might differ from this picture and from the summary ## Prompt -Copy the prompt and paste it into a new session in [Claude Science](/docs/claude-science/overview.md). By default, Claude asks with a [permission card](/docs/claude-science/core-concepts.md#permission-cards) before it runs code or installs packages. +Copy the prompt and paste it into a new session in [Claude Science](https://claude.com/docs/claude-science/overview.md). By default, Claude asks with a [permission card](https://claude.com/docs/claude-science/core-concepts.md#permission-cards) before it runs code or installs packages. ```text Prompt wrap theme={null} In 1989 Akira Tonomura's team at Hitachi sent electrons one at a time past an electron biprism, the electron version of a double slit, and filmed an interference pattern building up dot by dot. Recreate that with an ideal double slit. Say nothing else about the 1989 experiment. diff --git a/content/claude/claude-science/example-gallery/soc-schelling-small.md b/content/claude/claude-science/example-gallery/soc-schelling-small.md index b036698c7..e91f13e96 100644 --- a/content/claude/claude-science/example-gallery/soc-schelling-small.md +++ b/content/claude/claude-science/example-gallery/soc-schelling-small.md @@ -12,7 +12,7 @@ The numbers in your session might differ from this picture and from the summary ## Prompt -Copy the prompt and paste it into a new session in [Claude Science](/docs/claude-science/overview.md). By default, Claude asks with a [permission card](/docs/claude-science/core-concepts.md#permission-cards) before it runs code or installs packages. +Copy the prompt and paste it into a new session in [Claude Science](https://claude.com/docs/claude-science/overview.md). By default, Claude asks with a [permission card](https://claude.com/docs/claude-science/core-concepts.md#permission-cards) before it runs code or installs packages. ```text Prompt wrap theme={null} In 1971 the economist Thomas Schelling showed, with chips on a checkerboard, that a city can segregate sharply even when nobody asks for more than an even mix. Recreate the textbook computer version, which segregates at even milder demands. Fill a 50 × 50 grid at random with 1,125 blue and 1,125 orange households, leaving 250 cells empty. A household is content if at least 30 % of its occupied neighboring cells (the 8 around it, fewer at the edges) hold its own color. With 8 occupied neighbors, that means at least 3 of its own color, so it accepts 5 of the other. Each discontent household moves to a random empty cell; repeat until everyone is content. Show the grid before and after and measure the average share of like-colored neighbors: it starts near 50 %. Where does it end? How many points is that above the random board, and how many above the 30 % they asked for? diff --git a/content/claude/claude-science/get-started.md b/content/claude/claude-science/get-started.md index d5a82014a..24ce17965 100644 --- a/content/claude/claude-science/get-started.md +++ b/content/claude/claude-science/get-started.md @@ -6,7 +6,7 @@ > Install Claude Science on macOS, Windows, or Linux, sign in with your Claude account, and run your first analysis. -Install Claude Science on your computer, sign in with your Claude account, and run your first analysis. You need a Claude Pro, Max, Team, or Enterprise plan. The [Claude Team plan for scientists](https://claude.com/programs/team-plan-for-scientists) has Claude Science on by default. On other Team and Enterprise plans, an Owner must [turn Claude Science on](/docs/claude-science/enable-claude-science.md) first. For what each plan includes and how usage works, see [Plans and usage](/docs/claude-science/overview.md#plans-and-usage). +Install Claude Science on your computer, sign in with your Claude account, and run your first analysis. You need a Claude Pro, Max, Team, or Enterprise plan. The [Claude Team plan for scientists](https://claude.com/programs/team-plan-for-scientists) has Claude Science on by default. On other Team and Enterprise plans, an Owner must [turn Claude Science on](https://claude.com/docs/claude-science/enable-claude-science.md) first. For what each plan includes and how usage works, see [Plans and usage](https://claude.com/docs/claude-science/overview.md#plans-and-usage). ## Install @@ -14,7 +14,7 @@ Install Claude Science on your computer, sign in with your Claude account, and r Download the installer from [claude.com/product/claude-science](https://claude.com/product/claude-science) and double-click to install. On first launch, the app sets up its runtime and starter Python and R environments, which takes a few minutes, then opens a new tab in your default browser. If no browser tab appears, click **Claude Science** in the Dock. -**Updates.** Installing an update from inside Claude Science can switch it from a browser tab to its own window. See [Claude Science in its own window on macOS](/docs/claude-science/mac-app-window.md). +**Updates.** Installing an update from inside Claude Science can switch it from a browser tab to its own window. See [Claude Science in its own window on macOS](https://claude.com/docs/claude-science/mac-app-window.md). * **If it opens in a browser tab**: Claude Science checks for updates in the background and shows **Update available** when one is ready. Choose **Restart to update** to install it. * **If it opens in its own window**: Claude Science downloads updates by itself and installs them when you quit. To check for an update right away, choose **Claude Science > Check for App Updates…** in the menu bar. @@ -27,17 +27,17 @@ Download the installer from [claude.com/product/claude-science](https://claude.c **Notification-area icon.** Closing the window leaves Claude Science running, with an icon in the notification area of the taskbar. Click the icon to reopen the window, or choose **Quit Claude Science** from the icon's menu to stop the app. -**Updates.** Claude Science checks for updates in the background and shows **Update available** when one is ready; choose **Restart to update** to install it. Administrators who distribute the app themselves can turn the background check off with `auto_update = false` under `[update]` in `config.toml` (see [Manage Claude Science on devices](/docs/claude-science/manage-on-devices.md#deploy-configuration-with-device-management)). To update Claude Science yourself instead, open a newer installer, which upgrades the installed copy in place and keeps your data. +**Updates.** Claude Science checks for updates in the background and shows **Update available** when one is ready; choose **Restart to update** to install it. Administrators who distribute the app themselves can turn the background check off with `auto_update = false` under `[update]` in `config.toml` (see [Manage Claude Science on devices](https://claude.com/docs/claude-science/manage-on-devices.md#deploy-configuration-with-device-management)). To update Claude Science yourself instead, open a newer installer, which upgrades the installed copy in place and keeps your data. **Uninstall.** To remove the app, follow the Windows steps in [Uninstall Claude Science](#uninstall-claude-science). -**Corporate networks.** Claude Science follows the proxy configured in Windows proxy settings and trusts corporate root certificates installed for the whole computer, so most managed PCs need no Claude Science configuration. See [Use Claude Science on a corporate network](/docs/claude-science/corporate-networks.md). +**Corporate networks.** Claude Science follows the proxy configured in Windows proxy settings and trusts corporate root certificates installed for the whole computer, so most managed PCs need no Claude Science configuration. See [Use Claude Science on a corporate network](https://claude.com/docs/claude-science/corporate-networks.md). **Differences on Windows:** * Claude runs shell commands with PowerShell. Command Prompt scripts, git inside cells, and folder changes in PowerShell need the one-time Windows permission. * Only folders on local NTFS or ReFS drives can be granted, not network shares, mapped network drives, FAT or exFAT drives (many USB sticks and memory cards), or a whole drive such as `D:\`. Copy such files to a local folder or attach them in the chat. -* [Custom connectors](/docs/claude-science/custom-connectors.md) that run a local command start with `npx`, `node`, `python`, or the full path of a program. Connectors launched through `npm` or a `.cmd`, `.bat`, or `.ps1` file aren't supported. +* [Custom connectors](https://claude.com/docs/claude-science/custom-connectors.md) that run a local command start with `npx`, `node`, `python`, or the full path of a program. Connectors launched through `npm` or a `.cmd`, `.bat`, or `.ps1` file aren't supported. * The **Model endpoints** section of **Settings** > **Compute** (NVIDIA BioNeMo NIM) isn't available. **Linux version under WSL.** To use Claude Science from a Linux environment on your Windows computer, run the Linux command-line version under Windows Subsystem for Linux (WSL 2, not WSL 1) with Ubuntu 24.04 or later. The Windows app itself doesn't need WSL. Inside the Ubuntu terminal, follow the install steps in the Linux tab, then start Claude Science with `claude-science serve --port 8765 --no-browser` and open the printed link, which starts with `http://127.0.0.1:8765`, in a Windows browser. Projects you create there stay in WSL, and the Windows app keeps its own. @@ -52,7 +52,7 @@ If Claude Science under WSL shows one of these errors or problems, use the match **Linux** -Install the sandbox dependencies, then run the installer. The sandbox needs bubblewrap 0.8.0 or later and socat, and installing them takes administrator (root or `sudo`) access; if you don't have it, ask your system administrator to install them, or see [Run Claude Science without administrator access](/docs/claude-science/run-on-remote-linux-server.md#run-claude-science-without-administrator-access). +Install the sandbox dependencies, then run the installer. The sandbox needs bubblewrap 0.8.0 or later and socat, and installing them takes administrator (root or `sudo`) access; if you don't have it, ask your system administrator to install them, or see [Run Claude Science without administrator access](https://claude.com/docs/claude-science/run-on-remote-linux-server.md#run-claude-science-without-administrator-access). * Ubuntu or Debian: `sudo apt-get update && sudo apt-get install -y curl bubblewrap socat` * Fedora or RHEL: `sudo dnf install -y curl bubblewrap socat` @@ -68,13 +68,13 @@ curl -fsSL https://claude.ai/install-claude-science.sh | bash claude-science serve ``` -First launch prints a local URL right away, then continues setting up its starter Python and R environments. To run Claude Science on a remote server and use it from your computer, see [Run on a remote Linux server](/docs/claude-science/run-on-remote-linux-server.md). +First launch prints a local URL right away, then continues setting up its starter Python and R environments. To run Claude Science on a remote server and use it from your computer, see [Run on a remote Linux server](https://claude.com/docs/claude-science/run-on-remote-linux-server.md). -To update Claude Science later, or when it asks you to update, see [Update Claude Science](/docs/claude-science/update-claude-science.md). +To update Claude Science later, or when it asks you to update, see [Update Claude Science](https://claude.com/docs/claude-science/update-claude-science.md). > [!NOTE] > -> Claude Science is a local application, not a website, so there's no public URL to visit. On Windows it opens in its own window, and on Linux it opens in a browser tab. On a Mac it opens in a browser tab, or in its own window once an update has switched it over (see [Claude Science in its own window on macOS](/docs/claude-science/mac-app-window.md)). Open it from the application itself: Claude Science in Applications or the Dock on macOS, the Start menu on Windows, or the `claude-science` command on Linux. On a remote server, the sign-in link reaches your browser through an SSH tunnel; see [Run on a remote Linux server](/docs/claude-science/run-on-remote-linux-server.md). +> Claude Science is a local application, not a website, so there's no public URL to visit. On Windows it opens in its own window, and on Linux it opens in a browser tab. On a Mac it opens in a browser tab, or in its own window once an update has switched it over (see [Claude Science in its own window on macOS](https://claude.com/docs/claude-science/mac-app-window.md)). Open it from the application itself: Claude Science in Applications or the Dock on macOS, the Start menu on Windows, or the `claude-science` command on Linux. On a remote server, the sign-in link reaches your browser through an SSH tunnel; see [Run on a remote Linux server](https://claude.com/docs/claude-science/run-on-remote-linux-server.md). ## Sign in and complete setup @@ -173,9 +173,9 @@ To reinstall, follow [Install](#install) again. Installing doesn't replace an ex * Nothing opened on macOS, or no browser tab appeared on Linux: on macOS, click **Claude Science** in the Dock, or open it from the **Applications** folder. On Linux, copy the printed URL into a browser on the same machine, or run `claude-science url` to print a fresh one. * On macOS, some of Claude's tools can't start and the error mentions the Xcode license, usually right after an Xcode update: macOS won't run the Python that comes with Apple's developer tools until the license is accepted. Open Xcode and agree to the license with an administrator account, or run `sudo xcodebuild -license accept` in Terminal, then ask Claude to try again. * A Claude Science message on Windows says the app was not installed because the file could not be confirmed: the copy you opened still runs but isn't installed. Download the installer again from [claude.com/product/claude-science](https://claude.com/product/claude-science) and open the new file. If the message persists, the PC could not verify the publisher's signature, so ask your IT team. -* The Windows app reports that it couldn't set up the app window engine: the first launch downloads that engine from `downloads.claude.ai`, and this usually means the app couldn't reach it. Check the internet connection, and on a corporate network ask IT to allow that domain (see [Network requirements](/docs/claude-science/network-requirements.md)). -* On Linux, the installer stops with `The download service may be unreachable, or not yet available in your region`: the installer couldn't get the latest version from `storage.googleapis.com`. Check the internet connection, and on a corporate network ask IT to allow that domain (see [Network requirements](/docs/claude-science/network-requirements.md#app-connections)). Claude Science is available where Anthropic offers claude.ai. See [Supported countries and regions](https://www.anthropic.com/supported-countries). -* On Linux, the installer stops with `was NOT installed` and says the copy you already had `was left as it is`: Claude Science was already installed, so the installer first tried to check that the new version starts on this computer. The check didn't succeed, so nothing was replaced. The message and the lines under it say why and, where there is a fix, what to do. If they point to the [configuration file](/docs/claude-science/configuration-file-reference.md), `~/.claude-science/config.toml`, fix what they report in that file, then run the installer again from the Linux tab of [Install](#install). Otherwise, keep using the copy you already had. +* The Windows app reports that it couldn't set up the app window engine: the first launch downloads that engine from `downloads.claude.ai`, and this usually means the app couldn't reach it. Check the internet connection, and on a corporate network ask IT to allow that domain (see [Network requirements](https://claude.com/docs/claude-science/network-requirements.md)). +* On Linux, the installer stops with `The download service may be unreachable, or not yet available in your region`: the installer couldn't get the latest version from `storage.googleapis.com`. Check the internet connection, and on a corporate network ask IT to allow that domain (see [Network requirements](https://claude.com/docs/claude-science/network-requirements.md#app-connections)). Claude Science is available where Anthropic offers claude.ai. See [Supported countries and regions](https://www.anthropic.com/supported-countries). +* On Linux, the installer stops with `was NOT installed` and says the copy you already had `was left as it is`: Claude Science was already installed, so the installer first tried to check that the new version starts on this computer. The check didn't succeed, so nothing was replaced. The message and the lines under it say why and, where there is a fix, what to do. If they point to the [configuration file](https://claude.com/docs/claude-science/configuration-file-reference.md), `~/.claude-science/config.toml`, fix what they report in that file, then run the installer again from the Linux tab of [Install](#install). Otherwise, keep using the copy you already had. * On Linux, the shell reports `command not found` for `claude-science`: `~/.local/bin` isn't on your PATH. Add the PATH line that the installer printed to your shell profile, then open a new terminal. * On Linux, `claude-science serve` stops with a `Sandbox unavailable:` message that mentions `bwrap was found on PATH at`, `is not where Claude Science runs it from`, `(PATH is not searched)`, or `is deliberately not used`: version 0.1.61 prints these messages, because it needs bubblewrap and socat installed for the whole system. If you updated to it from inside the app, the "Update available" notice shows "restart aborted" instead of these messages. Version 0.1.62 withdraws that requirement. Run `claude-science update` in a terminal, then start Claude Science again. * On Linux, `claude-science serve` stops with `Sandbox unavailable: bwrap not found on PATH`: bubblewrap isn't installed, or isn't on your PATH. Install bubblewrap and socat with the command for your distribution in the Linux tab of [Install](#install). @@ -183,7 +183,7 @@ To reinstall, follow [Install](#install) again. Installing doesn't replace an ex * On Linux, `claude-science serve` stops with `Sandbox unavailable: bwrap cannot create unprivileged user namespaces`: the kernel or an AppArmor profile blocks the sandbox from creating user namespaces. The rest of the message names the settings to check on Ubuntu, Debian, and other distributions, and changing them takes administrator (`sudo`) access. * On Linux, an error says `socat is required for Linux sandbox networking but was not found in PATH`: socat isn't installed, or isn't on your PATH. Install socat with the command for your distribution in the Linux tab of [Install](#install). * On Linux, a line starting `[sandbox]` says `no usable socat command was found on this computer`, in the terminal where `claude-science serve` runs or in the output of `claude-science logs`: Claude Science started, but the sandbox has no network access. The sandbox runs socat only from system folders such as `/usr/bin`, and doesn't use a copy from conda, Homebrew, or a folder in your home directory. Code that Claude runs can't reach the internet, and environment setup can fail with `Package downloads are being blocked by network policy` even when your network blocks nothing. Install socat with the command for your distribution in the Linux tab of [Install](#install), or if you don't have administrator access, ask your system administrator to install it for the whole system. -* Projects from another computer don't appear: by design, Claude Science keeps your work on the computer where it's installed, so each computer starts with its own projects. Your earlier projects are still on the other computer. See [Use Claude Science on more than one computer](/docs/claude-science/multiple-computers.md). -* Projects you created under another sign-in on this computer don't appear automatically, for example, after you move from a personal plan to your organization's Team plan: your earlier projects are still in that sign-in's folder. Select the **Review** button on the banner at the top of the home screen, or select **Review** next to **Access previously saved Claude Science work on this computer** under **Settings** > **General** > **Account**, to access them. On Team and Enterprise plans, if there's no banner and the setting is grayed out, your admin controls it. See [Access work from another sign-in on your computer](/docs/claude-science/multiple-computers.md#access-work-from-another-sign-in-on-your-computer). -* Sign-in stops at claude.ai: your account is on the Free plan (upgrade required), the redirect couldn't return (in a browser tab or in the Windows app, use **Paste code instead**), or your Team or Enterprise organization hasn't [enabled Claude Science](/docs/claude-science/enable-claude-science.md) yet. +* Projects from another computer don't appear: by design, Claude Science keeps your work on the computer where it's installed, so each computer starts with its own projects. Your earlier projects are still on the other computer. See [Use Claude Science on more than one computer](https://claude.com/docs/claude-science/multiple-computers.md). +* Projects you created under another sign-in on this computer don't appear automatically, for example, after you move from a personal plan to your organization's Team plan: your earlier projects are still in that sign-in's folder. Select the **Review** button on the banner at the top of the home screen, or select **Review** next to **Access previously saved Claude Science work on this computer** under **Settings** > **General** > **Account**, to access them. On Team and Enterprise plans, if there's no banner and the setting is grayed out, your admin controls it. See [Access work from another sign-in on your computer](https://claude.com/docs/claude-science/multiple-computers.md#access-work-from-another-sign-in-on-your-computer). +* Sign-in stops at claude.ai: your account is on the Free plan (upgrade required), the redirect couldn't return (in a browser tab or in the Windows app, use **Paste code instead**), or your Team or Enterprise organization hasn't [enabled Claude Science](https://claude.com/docs/claude-science/enable-claude-science.md) yet. * After you paste a code, Claude Science says the code wasn't recognized or was issued for an earlier sign-in attempt: select **Open on web** again, approve access, and paste the whole new code. If it says `PKCE state missing or expired` instead, select **Back** and follow the steps in [Sign in and complete setup](#sign-in-and-complete-setup) again. diff --git a/content/claude/claude-science/glossary.md b/content/claude/claude-science/glossary.md index 0f8c0afc2..92a49e7db 100644 --- a/content/claude/claude-science/glossary.md +++ b/content/claude/claude-science/glossary.md @@ -8,19 +8,19 @@ One-sentence definitions for the terms you meet in Claude Science, from artifact to workspace. -**[Artifact](/docs/claude-science/artifacts.md)**: any file Claude makes and saves for you, listed in its session's Files view. +**[Artifact](https://claude.com/docs/claude-science/artifacts.md)**: any file Claude makes and saves for you, listed in its session's Files view. **Cell**: one block of code Claude runs in a kernel; the cell, its output, and the environment it ran in are recorded in the session's Notebook. **Cloud provider**: your own account at a cloud service where Claude can start jobs; you pay that provider directly. -**[Comment](/docs/claude-science/comments.md)**: a note you pin to part of an artifact by selecting it; Claude reads pending comments as instructions on its next turn. +**[Comment](https://claude.com/docs/claude-science/comments.md)**: a note you pin to part of an artifact by selecting it; Claude reads pending comments as instructions on its next turn. **Connector**: an outside data source or tool wired into Claude over MCP; Claude Science includes a featured set, you can access partner connectors from the Connectors Directory, and you can add your own under Settings > Connectors. **Data directory**: the `~/.claude-science` folder on your computer holding the database, artifacts, session workspaces, and logs. -**[Environment](/docs/claude-science/tools-and-environments.md)**: a named set of installed packages (conda) that a kernel runs in, reused across sessions. +**[Environment](https://claude.com/docs/claude-science/tools-and-environments.md)**: a named set of installed packages (conda) that a kernel runs in, reused across sessions. **Execution log**: the slice of a session's Notebook cells that produced a given artifact version, shown as a tab in its Provenance pane. @@ -36,7 +36,7 @@ One-sentence definitions for the terms you meet in Claude Science, from artifact **Provenance (the artifact record)**: the panel behind every artifact version showing the code, cells, conversation, environment, and findings that produced it. -**[Reviewer](/docs/claude-science/the-reviewer.md)**: the independent agent that re-examines Claude's claims and artifacts at checkpoints, recording each issue it raises as a finding on the artifact's Review tab; on some plans it runs in the background automatically. +**[Reviewer](https://claude.com/docs/claude-science/the-reviewer.md)**: the independent agent that re-examines Claude's claims and artifacts at checkpoints, recording each issue it raises as a finding on the artifact's Review tab; on some plans it runs in the background automatically. **Sandbox**: the isolated environment all of Claude's code runs in; reaching outside it needs your approval. @@ -50,7 +50,7 @@ One-sentence definitions for the terms you meet in Claude Science, from artifact **SSH host**: a remote machine (server, cluster node, or a job submission host) added by its SSH name, that Claude can run jobs on, or dispatch jobs from. -**[Use case](/docs/claude-science/safeguards.md#choose-a-use-case)**: a research purpose that Anthropic has approved for your organization under the Life Sciences Verification Program (beta); if you have more than one, you choose which one a session uses. +**[Use case](https://claude.com/docs/claude-science/safeguards.md#choose-a-use-case)**: a research purpose that Anthropic has approved for your organization under the Life Sciences Verification Program (beta); if you have more than one, you choose which one a session uses. **Version**: one immutable save of an artifact; saving again adds a new version on top instead of overwriting. diff --git a/content/claude/claude-science/how-claude-science-works-with-your-data.md b/content/claude/claude-science/how-claude-science-works-with-your-data.md index ccd8d9f23..fe23f1a33 100644 --- a/content/claude/claude-science/how-claude-science-works-with-your-data.md +++ b/content/claude/claude-science/how-claude-science-works-with-your-data.md @@ -12,28 +12,28 @@ Claude Science is client-side software that your organization installs and runs On Team and Enterprise plans the [Commercial Terms of Service](https://www.anthropic.com/legal/commercial-terms) apply. Under them Anthropic "may not train models on Customer Content from Services," and, as between the parties and to the extent permitted by applicable law, your organization "retains all rights to its Inputs" and "owns its Outputs," including the analyses, code, and results your researchers produce with Claude Science. Anthropic may use content to improve its models only when your organization otherwise expressly chooses to allow it (see [Is my data used for model training?](https://privacy.claude.com/en/articles/7996868-is-my-data-used-for-model-training)). Safety feedback a member sends when Claude's safeguards pause a chat goes to Anthropic for future improvements to its safety systems. To turn off the ability for your researchers to provide feedback, an Owner can turn off the **Rate chats** toggle under **Organization settings** > **Data and privacy**. -On Pro and Max plans the [Consumer Terms of Service](https://www.anthropic.com/legal/consumer-terms), [Anthropic Privacy Policy](https://www.anthropic.com/legal/privacy), and your Claude privacy settings in the Settings panel apply (see [Legal and compliance](/docs/claude-science/legal-and-compliance.md)). +On Pro and Max plans the [Consumer Terms of Service](https://www.anthropic.com/legal/consumer-terms), [Anthropic Privacy Policy](https://www.anthropic.com/legal/privacy), and your Claude privacy settings in the Settings panel apply (see [Legal and compliance](https://claude.com/docs/claude-science/legal-and-compliance.md)). ## Where Claude Science data lives | Where | What | | - | - | -| The computer running Claude Science | Conversation history, project files and artifacts, saved memory, most settings, and stored credentials, in a local folder Anthropic doesn't host or sync (see [Manage Claude Science on devices](/docs/claude-science/manage-on-devices.md)) | +| The computer running Claude Science | Conversation history, project files and artifacts, saved memory, most settings, and stored credentials, in a local folder Anthropic doesn't host or sync (see [Manage Claude Science on devices](https://claude.com/docs/claude-science/manage-on-devices.md)) | | Anthropic | The items listed under [What Anthropic receives](#what-anthropic-receives) | -| Services your organization or members connect | Jobs, files, and queries sent to your SSH hosts, your Modal account, scientific model endpoints, cloud storage, and the external services that local (Featured and custom) connectors, sandboxed code, and remote jobs call, directly from the computer or your own compute and without passing through Anthropic (see [Admin controls](/docs/claude-science/admin-controls.md#organization-settings)) | +| Services your organization or members connect | Jobs, files, and queries sent to your SSH hosts, your Modal account, scientific model endpoints, cloud storage, and the external services that local (Featured and custom) connectors, sandboxed code, and remote jobs call, directly from the computer or your own compute and without passing through Anthropic (see [Admin controls](https://claude.com/docs/claude-science/admin-controls.md#organization-settings)) | Sign-in tokens and the credentials members store for compute and cloud storage are encrypted on the computer, and the rest of the local folder relies on operating-system permissions, so apply your full-disk encryption and device management policies to it. ## What Anthropic receives -The app sends the following to Anthropic, over TLS and signed in with the member's Claude account (see [Network requirements](/docs/claude-science/network-requirements.md#app-connections) for the domains): +The app sends the following to Anthropic, over TLS and signed in with the member's Claude account (see [Network requirements](https://claude.com/docs/claude-science/network-requirements.md#app-connections) for the domains): * **Requests to Claude** every time Claude responds, carrying the conversation so far, including the member's prompts, the contents of files Claude has read (PDFs included), code and command output, connector results, images Claude is shown, and recalled memory facts. Anthropic keeps these as model-call logs (see [What Anthropic keeps and for how long](#what-anthropic-keeps-and-for-how-long)). * **Web search queries**, run by Anthropic's web search service through a third-party search provider listed among [Anthropic's subprocessors](https://www.anthropic.com/subprocessors). * **Dictation audio**, streamed to Anthropic's speech-to-text service only while a member dictates. If the app can't use that service while Claude Science is open in a browser such as Chrome or Edge, it falls back to the browser's built-in speech recognition, and that browser's vendor then processes the audio. -* **Safety feedback**, only when a member sends it from the [**Chat paused** card](/docs/claude-science/safeguards.md#when-safeguards-flag-a-message) that appears when Claude's safeguards pause a chat, consisting of the member's optional comment and a copy of that conversation (members are reminded before submission) with known credential formats and email addresses redacted. It goes to Anthropic for future improvements to its safety systems. Not accepted from organizations with HIPAA compliance or customer-managed encryption keys. +* **Safety feedback**, only when a member sends it from the [**Chat paused** card](https://claude.com/docs/claude-science/safeguards.md#when-safeguards-flag-a-message) that appears when Claude's safeguards pause a chat, consisting of the member's optional comment and a copy of that conversation (members are reminded before submission) with known credential formats and email addresses redacted. It goes to Anthropic for future improvements to its safety systems. Not accepted from organizations with HIPAA compliance or customer-managed encryption keys. * **Custom skills a member publishes**, stored with the member's claude.ai skills. -* **Usage telemetry and error reports**, which carry app, device, and timing data, plus account and organization identifiers on telemetry events, but no conversation content, file contents, or file names (see [Telemetry](/docs/claude-science/manage-on-devices.md#telemetry) for the device setting that turns them, and feedback, off). +* **Usage telemetry and error reports**, which carry app, device, and timing data, plus account and organization identifiers on telemetry events, but no conversation content, file contents, or file names (see [Telemetry](https://claude.com/docs/claude-science/manage-on-devices.md#telemetry) for the device setting that turns them, and feedback, off). * **Calls to connectors Anthropic hosts** from your claude.ai connector directory, which pass through Anthropic's connector service as in claude.ai, plus routine account, settings, and update traffic. ## What Anthropic keeps and for how long @@ -48,11 +48,11 @@ Human review of model-call logs, published skills, or Compliance API transcripts ## Controls available to your organization -* **Organization settings** for connectors, skills, the sandbox network allowlist, SSH hosts, Modal, model endpoints, memory, and access to previously saved Claude Science work (see [Admin controls](/docs/claude-science/admin-controls.md)). There is no organization setting for web search, dictation, or telemetry. +* **Organization settings** for connectors, skills, the sandbox network allowlist, SSH hosts, Modal, model endpoints, memory, and access to previously saved Claude Science work (see [Admin controls](https://claude.com/docs/claude-science/admin-controls.md)). There is no organization setting for web search, dictation, or telemetry. * **US-only inference** (usage-based Enterprise plans) runs model inference for Claude Science requests in the United States, as for your other Claude apps (see [Enable US-only inference](https://support.claude.com/en/articles/15422948-enable-us-only-inference-for-your-organization)). -* **Device configuration** turns off telemetry, error reports, and feedback and relocates the local data folder (see [Manage Claude Science on devices](/docs/claude-science/manage-on-devices.md)). -* **Running Claude Science next to your data**, on a Linux server or virtual machine you control, keeps datasets on your infrastructure, apart from what Claude reads into the conversation, while Claude's inference runs on Anthropic's service (see [Run on a remote Linux server](/docs/claude-science/run-on-remote-linux-server.md)). -* **Usage analytics** show adoption and session metrics without conversation content (see [Monitor usage](/docs/claude-science/monitor-usage.md)). +* **Device configuration** turns off telemetry, error reports, and feedback and relocates the local data folder (see [Manage Claude Science on devices](https://claude.com/docs/claude-science/manage-on-devices.md)). +* **Running Claude Science next to your data**, on a Linux server or virtual machine you control, keeps datasets on your infrastructure, apart from what Claude reads into the conversation, while Claude's inference runs on Anthropic's service (see [Run on a remote Linux server](https://claude.com/docs/claude-science/run-on-remote-linux-server.md)). +* **Usage analytics** show adoption and session metrics without conversation content (see [Monitor usage](https://claude.com/docs/claude-science/monitor-usage.md)). ## Compliance API coverage @@ -64,12 +64,12 @@ Organizations that use [customer-managed encryption keys (CMEK)](https://platfor The app's conversation history, files, artifacts, and memory are stored on the member's computer and aren't hosted by Anthropic; of these, only what the app sends to Claude reaches Anthropic, where your key covers it as this section describes. Work members send to their own SSH hosts, Modal account, or scientific model endpoints goes directly there, not through Anthropic, and isn't under your key or any Anthropic-managed key, so review those providers' data handling. You can turn these connections off under **Organization settings** > **Claude Science**. -In organizations with CMEK enabled, the app hides the **Send feedback** link on the [**Chat paused**](/docs/claude-science/safeguards.md#when-safeguards-flag-a-message) card. +In organizations with CMEK enabled, the app hides the **Send feedback** link on the [**Chat paused**](https://claude.com/docs/claude-science/safeguards.md#when-safeguards-flag-a-message) card. ## What isn't available for Claude Science -Zero data retention (a Claude Code zero-data-retention arrangement covers Claude Code sessions, not Claude Science), Enterprise Frontier Safeguards, coverage under Anthropic's Business Associate Agreement (keep protected health information out of Claude Science), and inference through a third-party cloud platform or your own cloud tenancy aren't available for Claude Science. See [Admin controls](/docs/claude-science/admin-controls.md#how-other-admin-settings-apply-to-claude-science) for how the other claude.ai admin settings apply to the app. +Zero data retention (a Claude Code zero-data-retention arrangement covers Claude Code sessions, not Claude Science), Enterprise Frontier Safeguards, coverage under Anthropic's Business Associate Agreement (keep protected health information out of Claude Science), and inference through a third-party cloud platform or your own cloud tenancy aren't available for Claude Science. See [Admin controls](https://claude.com/docs/claude-science/admin-controls.md#how-other-admin-settings-apply-to-claude-science) for how the other claude.ai admin settings apply to the app. ## Related resources -[Commercial Terms of Service](https://www.anthropic.com/legal/commercial-terms), [Data Processing Addendum](https://www.anthropic.com/legal/data-processing-addendum), [subprocessor list](https://www.anthropic.com/subprocessors), [Usage Policy](https://www.anthropic.com/legal/aup), the [Anthropic Trust Center](https://trust.anthropic.com) for certifications and security documentation, and [Admin controls](/docs/claude-science/admin-controls.md). +[Commercial Terms of Service](https://www.anthropic.com/legal/commercial-terms), [Data Processing Addendum](https://www.anthropic.com/legal/data-processing-addendum), [subprocessor list](https://www.anthropic.com/subprocessors), [Usage Policy](https://www.anthropic.com/legal/aup), the [Anthropic Trust Center](https://trust.anthropic.com) for certifications and security documentation, and [Admin controls](https://claude.com/docs/claude-science/admin-controls.md). diff --git a/content/claude/claude-science/mac-app-window.md b/content/claude/claude-science/mac-app-window.md index 185505424..a13f3b414 100644 --- a/content/claude/claude-science/mac-app-window.md +++ b/content/claude/claude-science/mac-app-window.md @@ -10,7 +10,7 @@ On a Mac, Claude Science can now run as its own app, in its own window, rather t > [!NOTE] > -> To manage Claude Science on your organization's Macs, see [Manage Claude Science on devices](/docs/claude-science/manage-on-devices.md#macs-where-claude-science-opens-in-its-own-window). +> To manage Claude Science on your organization's Macs, see [Manage Claude Science on devices](https://claude.com/docs/claude-science/manage-on-devices.md#macs-where-claude-science-opens-in-its-own-window). ## What changes when Claude Science switches to its own window @@ -27,6 +27,6 @@ macOS asks again for some [permissions](#macos-permissions-for-claude-science), ## macOS permissions for Claude Science -macOS treats Claude Science in its own window as a different app from the browser version, so macOS asks again for some permissions, such as access to your Documents or Desktop folder. Dictation needs microphone access. If dictation doesn't work, see [Dictation](/docs/claude-science/troubleshooting.md#dictation) in Troubleshoot Claude Science. +macOS treats Claude Science in its own window as a different app from the browser version, so macOS asks again for some permissions, such as access to your Documents or Desktop folder. Dictation needs microphone access. If dictation doesn't work, see [Dictation](https://claude.com/docs/claude-science/troubleshooting.md#dictation) in Troubleshoot Claude Science. Access you turned on yourself, such as Full Disk Access, doesn't carry over from the browser version. To turn it on again, go to **System Settings > Privacy & Security**, choose the kind of access, and turn on the **Claude Science** toggle. If **Claude Science** isn't listed, click the add button (+) and choose **Claude Science** in the **Applications** folder. Do the same if a **Claude Science** entry is already on but Claude Science still can't reach your files, because that entry can be the browser version's. diff --git a/content/claude/claude-science/manage-on-devices.md b/content/claude/claude-science/manage-on-devices.md index 9350ccd40..1015b1ec7 100644 --- a/content/claude/claude-science/manage-on-devices.md +++ b/content/claude/claude-science/manage-on-devices.md @@ -22,11 +22,11 @@ On Windows and macOS, the program is in these places: * **Windows**: the program itself installs per user to `%LOCALAPPDATA%\Programs\ClaudeScience` and registers under the signed-in user's **Settings** > **Apps** > **Installed apps** rather than machine-wide. The app also writes launch logs and state to `%LOCALAPPDATA%\ClaudeScience` and keeps a sandbox state folder under `%LOCALAPPDATA%`, and it unpacks components it runs, such as the app window engine and the sandbox launcher, under the data folder, so allow-listing by path needs both the program folder and the data folder. Uninstalling removes the program and sandbox state; `claude-science uninstall --purge` also removes the data and state folders. * **macOS**: the app is **Claude Science** in the **Applications** folder, or in the **Applications** folder inside the member's home folder. When Claude Science opens in a browser tab, it runs its program from a copy at `~/.claude-science/bin/claude-science`. When it opens in its own window, it runs the program from inside the app. In its own window, Claude Science also keeps window settings, logs, and the window's page storage, which includes unsent message drafts, in `~/Library/Application Support/Claude Science` (see [Macs where Claude Science opens in its own window](#macs-where-claude-science-opens-in-its-own-window)). -Your endpoint tooling governs these folders the same way it governs any other local application data. Anthropic doesn't host a copy of these folders, so Custom Data Retention and Org Data Export don't reach them. [How Claude Science works with your data](/docs/claude-science/how-claude-science-works-with-your-data.md) covers what Anthropic does receive from the app, including the session transcripts available to Enterprise organizations with the Compliance API enabled. +Your endpoint tooling governs these folders the same way it governs any other local application data. Anthropic doesn't host a copy of these folders, so Custom Data Retention and Org Data Export don't reach them. [How Claude Science works with your data](https://claude.com/docs/claude-science/how-claude-science-works-with-your-data.md) covers what Anthropic does receive from the app, including the session transcripts available to Enterprise organizations with the Compliance API enabled. ## Deploy configuration with device management -To set configuration keys organization-wide, deploy the per-member config.toml (at the path given under [Where the app stores data](#where-the-app-stores-data)) through your MDM or endpoint tool. Claude Science doesn't read its settings from a system-level managed-preferences file or registry policy keys, so there's no native MDM configuration channel on any operating system. Deploying the per-member config.toml is the supported approach. The sandbox network allowlist and the package mirror can instead be set once for every member under **Organization settings** > **Claude Science** (see [Organization settings](/docs/claude-science/admin-controls.md#organization-settings)). The keys most relevant to admins are: +To set configuration keys organization-wide, deploy the per-member config.toml (at the path given under [Where the app stores data](#where-the-app-stores-data)) through your MDM or endpoint tool. Claude Science doesn't read its settings from a system-level managed-preferences file or registry policy keys, so there's no native MDM configuration channel on any operating system. Deploying the per-member config.toml is the supported approach. The sandbox network allowlist and the package mirror can instead be set once for every member under **Organization settings** > **Claude Science** (see [Organization settings](https://claude.com/docs/claude-science/admin-controls.md#organization-settings)). The keys most relevant to admins are: | Key | Effect | | - | - | @@ -35,7 +35,7 @@ To set configuration keys organization-wide, deploy the per-member config.toml ( | `auto_update = false` under `[update]` | Turns off the background check for updates; pair with your own distribution channel. On a Mac where Claude Science opens in its own window, the key requires version 0.1.69 or later. A member can still check for and install an update from inside Claude Science. | | `enabled = false` under `[sandbox.network]` | Blocks network access from the app's local code-execution sandbox. The similarly named `network_isolated` key under `[sandbox]` doesn't control this. | -The [configuration file reference](/docs/claude-science/configuration-file-reference.md) documents the network-related keys and their defaults, and [Use Claude Science on a corporate network](/docs/claude-science/corporate-networks.md) covers the proxy, TLS-inspection, and mirror settings. +The [configuration file reference](https://claude.com/docs/claude-science/configuration-file-reference.md) documents the network-related keys and their defaults, and [Use Claude Science on a corporate network](https://claude.com/docs/claude-science/corporate-networks.md) covers the proxy, TLS-inspection, and mirror settings. ## Macs where Claude Science opens in its own window @@ -48,7 +48,7 @@ Claude Science in a browser tab and in its own window get updates in different w | What differs | In a browser tab | In its own window | | - | - | - | | Updates | Checks in the background and shows **Update available** | Downloads updates by itself and installs them when the app quits | -| Connections for updates | Use the app's proxy settings | Use the proxy in macOS network settings and the certificates that macOS trusts (see [Proxy and certificates for updates in the Mac app window](/docs/claude-science/corporate-networks.md#proxy-and-certificates-for-updates-in-the-mac-app-window)) | +| Connections for updates | Use the app's proxy settings | Use the proxy in macOS network settings and the certificates that macOS trusts (see [Proxy and certificates for updates in the Mac app window](https://claude.com/docs/claude-science/corporate-networks.md#proxy-and-certificates-for-updates-in-the-mac-app-window)) | If the member's account can't write to the app or its folder, Claude Science in its own window doesn't check for updates in the background. The member can still choose **Claude Science > Check for App Updates…**, and macOS then asks for an administrator's password to install the update. @@ -63,7 +63,7 @@ When the app runs into an error, it also sends an error report to the error-repo To turn telemetry and error reports off on managed devices, use either of: Set disable\_telemetry = true in config.toml (deployable through MDM).\ -Set the DO\_NOT\_TRACK environment variable (for example to 1) where the app reads it at launch. See [How the environment variables reach the app](/docs/claude-science/corporate-networks.md#how-the-environment-variables-reach-the-app). +Set the DO\_NOT\_TRACK environment variable (for example to 1) where the app reads it at launch. See [How the environment variables reach the app](https://claude.com/docs/claude-science/corporate-networks.md#how-the-environment-variables-reach-the-app). Both are device-level settings. There's no per-member or per-organization telemetry toggle in Organization settings. diff --git a/content/claude/claude-science/monitor-usage.md b/content/claude/claude-science/monitor-usage.md index 6626a10cd..a974fdc6b 100644 --- a/content/claude/claude-science/monitor-usage.md +++ b/content/claude/claude-science/monitor-usage.md @@ -6,7 +6,7 @@ > Claude Science uses the same seat as the rest of claude.ai. Track its adoption and usage in Analytics and through the Admin API. -Claude Science uses the same seat as the rest of claude.ai, and its usage counts the same way as Claude Code and Cowork usage (see [Plans and usage](/docs/claude-science/overview.md#plans-and-usage)). You can track adoption in Analytics and through the Admin API. +Claude Science uses the same seat as the rest of claude.ai, and its usage counts the same way as Claude Code and Cowork usage (see [Plans and usage](https://claude.com/docs/claude-science/overview.md#plans-and-usage)). You can track adoption in Analytics and through the Admin API. ## Analytics diff --git a/content/claude/claude-science/multiple-computers.md b/content/claude/claude-science/multiple-computers.md index 9f839f287..562af7e5a 100644 --- a/content/claude/claude-science/multiple-computers.md +++ b/content/claude/claude-science/multiple-computers.md @@ -10,16 +10,16 @@ Claude Science runs on your own computer by design, and your projects, artifacts ## Your work stays on your computer -Anthropic doesn't sync your projects, artifacts, or conversation history to your Claude account, so there's no cloud copy for you to browse or sync from another computer. Claude reads and writes your files in place, in the folders you grant, and your work sits alongside them on your computer, where your own backup tools can cover it like any other application data. Your prompts, Claude's responses, and the file content Claude reads to answer them still go to Anthropic as part of each conversation, and Anthropic retains them as [How Claude Science works with your data](/docs/claude-science/how-claude-science-works-with-your-data.md) describes. +Anthropic doesn't sync your projects, artifacts, or conversation history to your Claude account, so there's no cloud copy for you to browse or sync from another computer. Claude reads and writes your files in place, in the folders you grant, and your work sits alongside them on your computer, where your own backup tools can cover it like any other application data. Your prompts, Claude's responses, and the file content Claude reads to answer them still go to Anthropic as part of each conversation, and Anthropic retains them as [How Claude Science works with your data](https://claude.com/docs/claude-science/how-claude-science-works-with-your-data.md) describes. You can install Claude Science on more than one computer and sign in to each with the same Claude account. Your account carries your plan and usage limits to every computer. Skills from your organization, along with any you published from the app, also reappear when you sign in on another computer (to the same organization, if your account belongs to more than one). Memory, most settings, and the connectors you added in the app stay with each computer. Because the only copy is on your computer, include the app's data folder in your regular backups. In the app, **Settings > Storage > Data location** shows where the folder is. -To take a single result to another computer, choose **Download** from the artifact's menu. A file saved with **Export session** is for technical support and troubleshooting, and can't be loaded into Claude Science on another computer. To reach the same projects from several computers instead, you can install Claude Science once on a Linux server you control and connect to it through an SSH tunnel from the browser on each computer. See [Run on a remote Linux server](/docs/claude-science/run-on-remote-linux-server.md). +To take a single result to another computer, choose **Download** from the artifact's menu. A file saved with **Export session** is for technical support and troubleshooting, and can't be loaded into Claude Science on another computer. To reach the same projects from several computers instead, you can install Claude Science once on a Linux server you control and connect to it through an SSH tunnel from the browser on each computer. See [Run on a remote Linux server](https://claude.com/docs/claude-science/run-on-remote-linux-server.md). ## Access work from another sign-in on your computer Claude Science keeps the work from each sign-in in its own folder on your computer. When you sign in to a different organization or personal account on that computer (for example, a Team plan after a personal plan), a banner at the top of the home screen offers access to the earlier work. Select the **Review** button on the banner, select the folders to access, choose the **Copy** option (the original folder keeps the work too) or the **Move** option (what's accessed is then removed from the original folder), and select the **Copy** or **Move** button. To access later instead, select **Review** next to **Access previously saved Claude Science work on this computer** under **Settings** > **General** > **Account**. -The access happens entirely on your computer and uploads nothing. Credentials such as API keys and connector sign-ins aren't copied or moved and stay in their original folder. On Team and Enterprise plans, your admin controls whether the app offers this access (it's off by default on Enterprise plans). Content your organization doesn't allow, such as memory, isn't copied or moved and stays in its original folder (see [Previously saved Claude Science work](/docs/claude-science/admin-controls.md#previously-saved-claude-science-work)). +The access happens entirely on your computer and uploads nothing. Credentials such as API keys and connector sign-ins aren't copied or moved and stay in their original folder. On Team and Enterprise plans, your admin controls whether the app offers this access (it's off by default on Enterprise plans). Content your organization doesn't allow, such as memory, isn't copied or moved and stays in its original folder (see [Previously saved Claude Science work](https://claude.com/docs/claude-science/admin-controls.md#previously-saved-claude-science-work)). diff --git a/content/claude/claude-science/network-requirements.md b/content/claude/claude-science/network-requirements.md index f4c696e35..989c8fac1 100644 --- a/content/claude/claude-science/network-requirements.md +++ b/content/claude/claude-science/network-requirements.md @@ -10,7 +10,7 @@ Claude Science connects to a small, fixed set of domains for sign-in, the Claude Connections are outbound-only and almost entirely HTTPS on TCP 443 (an internal package mirror may use 8443). The app's own domains are fixed, apart from open-access full-text downloads (covered below); the analysis-sandbox domains are a built-in allowlist that members adjust during onboarding or under **Settings** > **Network**, or that the organization manages for every member (see [Analysis sandbox domains](#analysis-sandbox-domains)). -The domains fall into three groups: the app's own connections every member needs, the analysis sandbox's package and research domains, and the domains the member's browser loads. For the proxy and TLS-inspection settings, see [Use Claude Science on a corporate network](/docs/claude-science/corporate-networks.md). +The domains fall into three groups: the app's own connections every member needs, the analysis sandbox's package and research domains, and the domains the member's browser loads. For the proxy and TLS-inspection settings, see [Use Claude Science on a corporate network](https://claude.com/docs/claude-science/corporate-networks.md). ## App connections @@ -27,7 +27,7 @@ Every Claude Science install makes these connections, which travel through the m | `downloads.claude.ai` | On Windows, at first launch and when an update changes it | The app window engine, the component that displays the app window | | `api.github.com`, `codeload.github.com` | When members import skills from a GitHub repository | Fetching the skill repository's contents | -Custom connectors and remote compute that members add reach whatever hosts they are configured with, so allow those case by case. Installs with telemetry turned off (see [Telemetry](/docs/claude-science/manage-on-devices.md#telemetry)) send no error reports, and blocking `o1158394.ingest.us.sentry.io` affects only error reporting, not the rest of the app. +Custom connectors and remote compute that members add reach whatever hosts they are configured with, so allow those case by case. Installs with telemetry turned off (see [Telemetry](https://claude.com/docs/claude-science/manage-on-devices.md#telemetry)) send no error reports, and blocking `o1158394.ingest.us.sentry.io` affects only error reporting, not the rest of the app. ### Full-text and literature retrieval @@ -46,7 +46,7 @@ When Claude searches the scientific literature or retrieves full text, the app i When Claude runs code, its network access passes through a local filtering proxy that allows only the domains on the sandbox's built-in allowlist, grouped by purpose below. By default, each member manages the list on their own computer. Members can turn off any group except package management, during onboarding or under **Settings > Network**, and add allowed domains of their own in Settings, one at a time or by pasting a list. An administrator can also use the per-device configuration file, whose `[sandbox.network]` keys add allowed or denied domains, or disable sandbox networking entirely. -An organization can instead manage the list for every member from **Organization settings** > **Claude Science**, with one switch per domain and custom domains of its own. Members then see their **Network** settings read-only, and the domains a member or a configuration file added are set aside while the organization manages the list. See [Network allowlist](/docs/claude-science/admin-controls.md#network-allowlist) for what the organization's list covers and how changes reach members. +An organization can instead manage the list for every member from **Organization settings** > **Claude Science**, with one switch per domain and custom domains of its own. Members then see their **Network** settings read-only, and the domains a member or a configuration file added are set aside while the organization manages the list. See [Network allowlist](https://claude.com/docs/claude-science/admin-controls.md#network-allowlist) for what the organization's list covers and how changes reach members. ### Package management domains @@ -62,7 +62,7 @@ These domains supply Python, R, and system packages when Claude builds an analys Claude Science itself does not require GitHub; the package manager ships inside the app. The GitHub domains are used only when a package Claude installs is published as a GitHub release or a member imports a skill from a GitHub repository, and blocking them fails only those operations. -When you configure a conda channel mirror, Claude Science removes only the conda hosts (`conda.anaconda.org`, `repo.anaconda.com`, `anaconda.org`, `*.anaconda.org`) from the allowlist, and a Python index mirror removes only `pypi.org`, `*.pypi.org`, and `files.pythonhosted.org`. The `*.conda.io`, CRAN and Bioconductor, npm, and GitHub rows stay. A removed host is reachable again if a member re-adds it under **Settings** > **Network** or an administrator lists it in `[sandbox.network] allowed_domains`, which takes precedence over the removal. Environment builds contact the mirror host directly from the workstation, not through the outbound proxy, so it must be reachable directly (over your VPN or internal network if the mirror is internal, HTTPS on TCP 443 or 8443). A proxy allowlist entry alone does not make the mirror reachable for builds, and build-time mirror traffic will not appear in your proxy logs. See [Point package installs at an internal mirror](/docs/claude-science/corporate-networks.md#point-package-installs-at-an-internal-mirror). +When you configure a conda channel mirror, Claude Science removes only the conda hosts (`conda.anaconda.org`, `repo.anaconda.com`, `anaconda.org`, `*.anaconda.org`) from the allowlist, and a Python index mirror removes only `pypi.org`, `*.pypi.org`, and `files.pythonhosted.org`. The `*.conda.io`, CRAN and Bioconductor, npm, and GitHub rows stay. A removed host is reachable again if a member re-adds it under **Settings** > **Network** or an administrator lists it in `[sandbox.network] allowed_domains`, which takes precedence over the removal. Environment builds contact the mirror host directly from the workstation, not through the outbound proxy, so it must be reachable directly (over your VPN or internal network if the mirror is internal, HTTPS on TCP 443 or 8443). A proxy allowlist entry alone does not make the mirror reachable for builds, and build-time mirror traffic will not appear in your proxy logs. See [Point package installs at an internal mirror](https://claude.com/docs/claude-science/corporate-networks.md#point-package-installs-at-an-internal-mirror). An organization package mirror set under **Organization settings** > **Claude Science** removes the same hosts for every member and is admitted the same way. When the organization manages the allowlist, the removed hosts stay unreachable even if they are switched on in the organization's list, and a member's own mirror host is reachable only if the organization's list includes it. @@ -114,6 +114,6 @@ If your policy blocks these domains, sign-in pages fail to load or interactive p ## Related resources -* [Use Claude Science on a corporate network](/docs/claude-science/corporate-networks.md): proxy, TLS-inspection, and package-mirror settings -* [Configuration file reference](/docs/claude-science/configuration-file-reference.md): the network keys in the configuration file -* [Manage Claude Science on devices](/docs/claude-science/manage-on-devices.md): deploying the configuration file with device management +* [Use Claude Science on a corporate network](https://claude.com/docs/claude-science/corporate-networks.md): proxy, TLS-inspection, and package-mirror settings +* [Configuration file reference](https://claude.com/docs/claude-science/configuration-file-reference.md): the network keys in the configuration file +* [Manage Claude Science on devices](https://claude.com/docs/claude-science/manage-on-devices.md): deploying the configuration file with device management diff --git a/content/claude/claude-science/overview.md b/content/claude/claude-science/overview.md index 94de58718..115184a03 100644 --- a/content/claude/claude-science/overview.md +++ b/content/claude/claude-science/overview.md @@ -6,7 +6,7 @@ > Anthropic's AI workbench for rigorous science. -Claude Science is a desktop application that pairs Claude with an analysis environment on your computer. Available in beta on macOS, Windows, and Linux. You install it separately from the Claude desktop app; see [Get started](/docs/claude-science/get-started.md#install) for the installers. +Claude Science is a desktop application that pairs Claude with an analysis environment on your computer. Available in beta on macOS, Windows, and Linux. You install it separately from the Claude desktop app; see [Get started](https://claude.com/docs/claude-science/get-started.md#install) for the installers. You describe a research task or analysis in plain language; Claude writes and runs Python, R, or shell code in a sandbox, reads the folders you grant it, pulls data from scientific databases through connectors, and saves results as versioned artifacts with a full provenance record. A background reviewer can check Claude's claims against the work that was actually run. @@ -18,19 +18,19 @@ Your files stay on your computer, and code runs in a sandbox. You approve each n ## Use Claude Science outside the life sciences -Claude Science isn't limited to the life sciences. Besides biology, chemistry, and clinical and medical research, it supports computer science and machine learning, engineering, materials science, mathematics, physics, the social sciences, and other fields. Claude Science is for anyone who works through the loop of scientific discovery: generating hypotheses, reviewing literature, designing experiments, running long and complex data analyses, and turning the results into reproducible figures and findings. Claude writes and runs code and [installs the packages](/docs/claude-science/tools-and-environments.md#installing-packages) an analysis needs. +Claude Science isn't limited to the life sciences. Besides biology, chemistry, and clinical and medical research, it supports computer science and machine learning, engineering, materials science, mathematics, physics, the social sciences, and other fields. Claude Science is for anyone who works through the loop of scientific discovery: generating hypotheses, reviewing literature, designing experiments, running long and complex data analyses, and turning the results into reproducible figures and findings. Claude writes and runs code and [installs the packages](https://claude.com/docs/claude-science/tools-and-environments.md#installing-packages) an analysis needs. In any field, Claude Science also gives you these tools: -* **Remote compute.** For long-running or heavy analyses, Claude can run jobs on [a workstation or Slurm cluster you reach over SSH](/docs/claude-science/remote-compute-clusters.md), or on cloud GPUs through [your own Modal account](/docs/claude-science/compute-providers.md). On Team and Enterprise plans, your organization's admin decides whether you can use SSH hosts and Modal. -* **Credentials.** Store credentials for [licensed literature](/docs/claude-science/literature-access.md), [cloud storage](/docs/claude-science/cloud-storage.md), and other APIs in **Settings > Credentials**, where they're encrypted on your computer. -* **Review.** [The reviewer](/docs/claude-science/the-reviewer.md) can check Claude's claims against the work that actually ran, and you can add review criteria for your own field in **Settings > Specialists > Reviewer**. +* **Remote compute.** For long-running or heavy analyses, Claude can run jobs on [a workstation or Slurm cluster you reach over SSH](https://claude.com/docs/claude-science/remote-compute-clusters.md), or on cloud GPUs through [your own Modal account](https://claude.com/docs/claude-science/compute-providers.md). On Team and Enterprise plans, your organization's admin decides whether you can use SSH hosts and Modal. +* **Credentials.** Store credentials for [licensed literature](https://claude.com/docs/claude-science/literature-access.md), [cloud storage](https://claude.com/docs/claude-science/cloud-storage.md), and other APIs in **Settings > Credentials**, where they're encrypted on your computer. +* **Review.** [The reviewer](https://claude.com/docs/claude-science/the-reviewer.md) can check Claude's claims against the work that actually ran, and you can add review criteria for your own field in **Settings > Specialists > Reviewer**. -Researchers in the life sciences also get specialized [Featured connectors](/docs/claude-science/connectors-and-skills.md#featured-connectors) to databases in their fields, and skills for specific models, such as AlphaFold2 for protein structure. Other Featured connectors and skills work in any field: for example, the Literature Graph and Research Resources connectors search scholarly literature and funding opportunities, and the literature review skill helps Claude find, verify, and synthesize papers. To give Claude a data source or method from your own field, see [When the connector you need isn't listed](/docs/claude-science/connectors-and-skills.md#when-the-connector-you-need-isn%E2%80%99t-listed) and [Skills](/docs/claude-science/connectors-and-skills.md#skills). +Researchers in the life sciences also get specialized [Featured connectors](https://claude.com/docs/claude-science/connectors-and-skills.md#featured-connectors) to databases in their fields, and skills for specific models, such as AlphaFold2 for protein structure. Other Featured connectors and skills work in any field: for example, the Literature Graph and Research Resources connectors search scholarly literature and funding opportunities, and the literature review skill helps Claude find, verify, and synthesize papers. To give Claude a data source or method from your own field, see [When the connector you need isn't listed](https://claude.com/docs/claude-science/connectors-and-skills.md#when-the-connector-you-need-isn%E2%80%99t-listed) and [Skills](https://claude.com/docs/claude-science/connectors-and-skills.md#skills). ## Requirements -* A Claude account on a Pro, Max, Team, or Enterprise plan. The [Claude Team plan for scientists](https://claude.com/programs/team-plan-for-scientists) has Claude Science on by default. On other Team and Enterprise plans, an Owner must [enable Claude Science for the organization](/docs/claude-science/enable-claude-science.md) first. +* A Claude account on a Pro, Max, Team, or Enterprise plan. The [Claude Team plan for scientists](https://claude.com/programs/team-plan-for-scientists) has Claude Science on by default. On other Team and Enterprise plans, an Owner must [enable Claude Science for the organization](https://claude.com/docs/claude-science/enable-claude-science.md) first. * A country or region where Anthropic offers claude.ai. See [Supported countries and regions](https://www.anthropic.com/supported-countries). * macOS 13 or later (Apple silicon or Intel), Windows 11 (x64), or Linux x64 on a glibc-based distribution. * About 5 GB of free disk space for the runtime and starter environments. @@ -38,7 +38,7 @@ Researchers in the life sciences also get specialized [Featured connectors](/doc ## Plans and usage -Claude Science is included in Pro, Max, Team, and Enterprise plans, with nothing separate to buy. Team and Enterprise Owners control whether Claude Science is available to their members through [an admin setting](/docs/claude-science/enable-claude-science.md). Claude Science isn't available on the Free plan. Scientists at academic and nonprofit research institutions can also get it through the discounted [Claude Team plan for scientists](https://claude.com/programs/team-plan-for-scientists). +Claude Science is included in Pro, Max, Team, and Enterprise plans, with nothing separate to buy. Team and Enterprise Owners control whether Claude Science is available to their members through [an admin setting](https://claude.com/docs/claude-science/enable-claude-science.md). Claude Science isn't available on the Free plan. Scientists at academic and nonprofit research institutions can also get it through the discounted [Claude Team plan for scientists](https://claude.com/programs/team-plan-for-scientists). Your Claude Science usage counts toward the same usage limits as the rest of your Claude plan, including Claude Code and Cowork. In Claude Science, **Settings > Usage** shows how much you've used and when each limit resets. @@ -46,7 +46,7 @@ You pay more than your plan's price only in these cases: * **Usage credits and extra usage.** On Pro and Max plans, you can turn on usage credits under **Settings > Usage** in Claude Science to keep working past your limits, and set a monthly spend limit there. Team plans call the same option extra usage, and your admin turns it on. In Claude Science it appears as **Usage credits**, but only Pro and Max plans can change it there. On Team and Enterprise plans, your admin sets spend limits. Some models need usage credits on some plans, and [Claude pricing](https://claude.com/pricing) lists which models each plan includes. * **Usage-based Enterprise plans.** Instead of fixed usage limits, your organization pays for usage on top of the seat price, within the spend limits your admin sets. -* **Services you connect with your own account.** Services such as [Modal](/docs/claude-science/compute-providers.md) bill you directly. Anthropic doesn't bill for them. +* **Services you connect with your own account.** Services such as [Modal](https://claude.com/docs/claude-science/compute-providers.md) bill you directly. Anthropic doesn't bill for them. ### When you reach a usage limit diff --git a/content/claude/claude-science/remote-compute-clusters.md b/content/claude/claude-science/remote-compute-clusters.md index 5c85dcb3d..72c117126 100644 --- a/content/claude/claude-science/remote-compute-clusters.md +++ b/content/claude/claude-science/remote-compute-clusters.md @@ -8,7 +8,7 @@ Connect a machine you can reach over SSH (a lab workstation or an HPC login node) so Claude can run jobs on it. Use it to connect to a remote workstation with a GPU, or your existing HPC cluster. Claude Science uses your existing `~/.ssh/config`, authenticates with your key or `ssh-agent`, and installs nothing on the host itself. -On Team and Enterprise plans, your organization can turn SSH hosts off. When it has, **Add SSH host** isn't available, hosts you added earlier stay listed but refuse new commands and file transfers, and a job that's already running can still be stopped and its results collected (see [SSH hosts](/docs/claude-science/admin-controls.md#ssh-hosts) in the admin controls). +On Team and Enterprise plans, your organization can turn SSH hosts off. When it has, **Add SSH host** isn't available, hosts you added earlier stay listed but refuse new commands and file transfers, and a job that's already running can still be stopped and its results collected (see [SSH hosts](https://claude.com/docs/claude-science/admin-controls.md#ssh-hosts) in the admin controls). ## Adding a host diff --git a/content/claude/claude-science/run-on-remote-linux-server.md b/content/claude/claude-science/run-on-remote-linux-server.md index 48408d15b..0a1dfbe6f 100644 --- a/content/claude/claude-science/run-on-remote-linux-server.md +++ b/content/claude/claude-science/run-on-remote-linux-server.md @@ -10,15 +10,15 @@ Claude Science runs on a remote Linux server (a cloud VM or a lab machine) the s > [!NOTE] > -> This page covers running all of Claude Science on a remote machine. To keep Claude Science on your own computer and have it run jobs on a machine you reach over SSH, see [Remote compute clusters](/docs/claude-science/remote-compute-clusters.md). +> This page covers running all of Claude Science on a remote machine. To keep Claude Science on your own computer and have it run jobs on a machine you reach over SSH, see [Remote compute clusters](https://claude.com/docs/claude-science/remote-compute-clusters.md). -The server needs x64 Linux on a glibc-based distribution (arm64 and musl-based distributions such as Alpine aren't supported), about 10 GB of free disk space, and the system packages below. Your Claude account needs a Pro, Max, Team, or Enterprise plan; see [Requirements](/docs/claude-science/overview.md#requirements). +The server needs x64 Linux on a glibc-based distribution (arm64 and musl-based distributions such as Alpine aren't supported), about 10 GB of free disk space, and the system packages below. Your Claude account needs a Pro, Max, Team, or Enterprise plan; see [Requirements](https://claude.com/docs/claude-science/overview.md#requirements). ## Install dependencies Claude runs code inside a sandbox, and the sandbox needs two system packages: bubblewrap and socat. Installing them takes administrator (`sudo`) access. Without it, see [Run Claude Science without administrator access](#run-claude-science-without-administrator-access). -On Fedora, RHEL, or Arch, use the command for your distribution from the Linux tab of [Install](/docs/claude-science/get-started.md#install). On Ubuntu or Debian, run: +On Fedora, RHEL, or Arch, use the command for your distribution from the Linux tab of [Install](https://claude.com/docs/claude-science/get-started.md#install). On Ubuntu or Debian, run: ```bash theme={null} sudo apt-get update && sudo apt-get install -y curl bubblewrap socat @@ -33,7 +33,7 @@ sudo apt-get update && sudo apt-get install -y curl bubblewrap socat If you don't have administrator (root or `sudo`) access to a shared server or cluster, choose one of these: * **Ask the server's administrator** to set up what the sandbox needs: bubblewrap 0.8.0 or later, socat, and a kernel that allows unprivileged user namespaces. -* **Use the server as an SSH host.** Install Claude Science on your own computer and add the server as an SSH host (see [Remote compute clusters](/docs/claude-science/remote-compute-clusters.md)), if your organization allows SSH hosts. Claude runs jobs on the server under your own account, with your approval. Jobs run outside the sandbox, so the server doesn't need bubblewrap, socat, or the kernel setting, and you don't need administrator access there. +* **Use the server as an SSH host.** Install Claude Science on your own computer and add the server as an SSH host (see [Remote compute clusters](https://claude.com/docs/claude-science/remote-compute-clusters.md)), if your organization allows SSH hosts. Claude runs jobs on the server under your own account, with your approval. Jobs run outside the sandbox, so the server doesn't need bubblewrap, socat, or the kernel setting, and you don't need administrator access there. Administrators usually install bubblewrap and socat, and only an administrator can change the kernel setting. On Ubuntu 23.10 and later, bubblewrap can also need an AppArmor profile that lets it create user namespaces. Claude Science checks for these when it starts and names the first one that's missing. Once that's fixed, the next start names the next one, if any. @@ -89,11 +89,11 @@ To run it in the background instead, use `claude-science serve --no-browser --de Open the printed link in your computer's browser. The link is single-use and expires about three minutes after it's printed; run `claude-science url` on the server to print a fresh one at any time. Restarting with `claude-science stop` then `claude-science serve --no-browser` also prints a fresh link. -Sign in with your Claude account. If the sign-in redirect can't find its way back through the tunnel, choose **Paste code instead** on the sign-in screen. Then complete the setup wizard as described in [Get started](/docs/claude-science/get-started.md). +Sign in with your Claude account. If the sign-in redirect can't find its way back through the tunnel, choose **Paste code instead** on the sign-in screen. Then complete the setup wizard as described in [Get started](https://claude.com/docs/claude-science/get-started.md). ## Keep it up to date -`claude-science update` checks for and installs updates. See [Command line settings](/docs/claude-science/command-line-settings.md) for the command reference, including `logs` and the `serve` flags. +`claude-science update` checks for and installs updates. See [Command line settings](https://claude.com/docs/claude-science/command-line-settings.md) for the command reference, including `logs` and the `serve` flags. ## Troubleshooting @@ -111,8 +111,8 @@ Sign in with your Claude account. If the sign-in redirect can't find its way bac | A message mentioning `port 8000 is in use by another app — using port 8001 instead` | Claude Science started on the port it names. `claude-science url` prints both ports. Forward each one with that number on both sides. Or stop Claude Science and start it again with `--port`. | | A message mentioning `daemon already running on port 8000` | Claude Science is already running. Run `claude-science url` for a fresh sign-in link, or `claude-science stop` to stop it. | | The sign-in link shows an expired-link page | Links are single-use and valid for about three minutes. Run `claude-science url` on the server and open the fresh link; restarting with `claude-science stop` then `claude-science serve --no-browser` also prints one. | -| Sign-in stops at claude.ai | The redirect couldn't return through the tunnel (choose **Paste code instead**), your account is on the Free plan (an upgrade is required), or your Team or Enterprise organization hasn't [enabled Claude Science](/docs/claude-science/enable-claude-science.md) yet. | +| Sign-in stops at claude.ai | The redirect couldn't return through the tunnel (choose **Paste code instead**), your account is on the Free plan (an upgrade is required), or your Team or Enterprise organization hasn't [enabled Claude Science](https://claude.com/docs/claude-science/enable-claude-science.md) yet. | | Interactive HTML previews render as static snapshots after a short delay (charts don't respond) | The tunnel isn't forwarding the preview port. Add the second `-L` forward for the preview port that `claude-science url` prints (8001 by default), with that number on both sides. | | The browser can't reach `localhost:8000` | The tunnel isn't up; rerun the `ssh -L` command. If the tunnel is up, confirm Claude Science is running on the server with `claude-science status`. | | The installer reports no binary for your platform | Claude Science on Linux needs x64 with glibc. arm64 servers and musl-based distributions such as Alpine aren't supported. | -| The installer stops with a message mentioning `was NOT installed` | Claude Science was already installed on the server, so the installer first tried to check that the new version starts there. The check didn't succeed, so nothing was replaced. The message and the lines under it say why and, where there is a fix, what to do. If they point to the [configuration file](/docs/claude-science/configuration-file-reference.md), `~/.claude-science/config.toml`, fix what they report in that file, then run the installer again as shown in [Install Claude Science](#install-claude-science). Otherwise, keep using the copy you already had. | +| The installer stops with a message mentioning `was NOT installed` | Claude Science was already installed on the server, so the installer first tried to check that the new version starts there. The check didn't succeed, so nothing was replaced. The message and the lines under it say why and, where there is a fix, what to do. If they point to the [configuration file](https://claude.com/docs/claude-science/configuration-file-reference.md), `~/.claude-science/config.toml`, fix what they report in that file, then run the installer again as shown in [Install Claude Science](#install-claude-science). Otherwise, keep using the copy you already had. | diff --git a/content/claude/claude-science/tools-and-environments.md b/content/claude/claude-science/tools-and-environments.md index 51003be67..991ed300f 100644 --- a/content/claude/claude-science/tools-and-environments.md +++ b/content/claude/claude-science/tools-and-environments.md @@ -27,7 +27,7 @@ Claude installs from these sources by default: * Python: pip from PyPI * R: CRAN and Bioconductor -To have conda and pip download packages from an internal mirror instead, see [Point package installs at an internal mirror](/docs/claude-science/corporate-networks.md#point-package-installs-at-an-internal-mirror). +To have conda and pip download packages from an internal mirror instead, see [Point package installs at an internal mirror](https://claude.com/docs/claude-science/corporate-networks.md#point-package-installs-at-an-internal-mirror). A package installed into an environment is permanent and available in every session and project using that environment. A package installed inline in a code cell (`pip install` or `install.packages()`) lasts only until the kernel restarts. To keep a package, ask Claude to install it into the environment. @@ -43,7 +43,7 @@ Claude can still run code from the environment but can't add, update, or remove To add packages, choose one of these: -* **In a uv project, ask Claude to use a separate environment.** Have Claude set `UV_PROJECT_ENVIRONMENT` to the full path of a folder in the session's [workspace folder](/docs/claude-science/core-concepts.md#projects-and-sessions) and run uv as usual. The variable has to stay set for later uv commands, including `uv run` and `uv sync`. The separate environment belongs to that session, so another session starts without it. For a change every session keeps, change the environment yourself in a terminal outside Claude Science. +* **In a uv project, ask Claude to use a separate environment.** Have Claude set `UV_PROJECT_ENVIRONMENT` to the full path of a folder in the session's [workspace folder](https://claude.com/docs/claude-science/core-concepts.md#projects-and-sessions) and run uv as usual. The variable has to stay set for later uv commands, including `uv run` and `uv sync`. The separate environment belongs to that session, so another session starts without it. For a change every session keeps, change the environment yourself in a terminal outside Claude Science. * **With any of these tools, change the environment yourself.** In a terminal outside Claude Science, use the tool's own commands to add, update, or remove packages. ## GPUs @@ -54,7 +54,7 @@ If your Linux machine has NVIDIA GPUs, the sandbox makes them available to code > > Turning on the **Host GPU** switch reduces the default sandboxing configuration applied by Claude Science. -If Claude Science finds no GPU, Claude notes this when a task needs one and can run the work on the remote compute you've connected. See [Remote compute clusters](/docs/claude-science/remote-compute-clusters.md) and [Compute providers](/docs/claude-science/compute-providers.md). If your machine has an NVIDIA GPU but the **Host GPU** switch isn't in **Settings > Compute**, or Claude says there's no GPU in a session started with the switch on, see [How Claude Science detects a GPU](#how-claude-science-detects-a-gpu). +If Claude Science finds no GPU, Claude notes this when a task needs one and can run the work on the remote compute you've connected. See [Remote compute clusters](https://claude.com/docs/claude-science/remote-compute-clusters.md) and [Compute providers](https://claude.com/docs/claude-science/compute-providers.md). If your machine has an NVIDIA GPU but the **Host GPU** switch isn't in **Settings > Compute**, or Claude says there's no GPU in a session started with the switch on, see [How Claude Science detects a GPU](#how-claude-science-detects-a-gpu). ### How Claude Science detects a GPU diff --git a/content/claude/claude-science/troubleshooting.md b/content/claude/claude-science/troubleshooting.md index fe78339c1..653c940b1 100644 --- a/content/claude/claude-science/troubleshooting.md +++ b/content/claude/claude-science/troubleshooting.md @@ -8,10 +8,10 @@ This page covers error messages that Claude Science shows while you work. Other problems have their own troubleshooting sections: -* Installing and signing in for the first time: [Troubleshooting first launch](/docs/claude-science/get-started.md#troubleshooting-first-launch). -* Running Claude Science on a Linux server: the troubleshooting table on [Run on a remote Linux server](/docs/claude-science/run-on-remote-linux-server.md#troubleshooting). -* Proxies, TLS inspection, and package mirrors: [Troubleshooting corporate network errors](/docs/claude-science/corporate-networks.md#troubleshooting-corporate-network-errors). -* A session that pauses at a usage limit: [When you reach a usage limit](/docs/claude-science/overview.md#when-you-reach-a-usage-limit). +* Installing and signing in for the first time: [Troubleshooting first launch](https://claude.com/docs/claude-science/get-started.md#troubleshooting-first-launch). +* Running Claude Science on a Linux server: the troubleshooting table on [Run on a remote Linux server](https://claude.com/docs/claude-science/run-on-remote-linux-server.md#troubleshooting). +* Proxies, TLS inspection, and package mirrors: [Troubleshooting corporate network errors](https://claude.com/docs/claude-science/corporate-networks.md#troubleshooting-corporate-network-errors). +* A session that pauses at a usage limit: [When you reach a usage limit](https://claude.com/docs/claude-science/overview.md#when-you-reach-a-usage-limit). ## Sign-in and replies @@ -32,7 +32,7 @@ Your sign-in lasts a limited time. In the last three days before it expires, Cla ### Claude is at capacity — retrying -Claude is busy or is limiting your requests, and Claude Science is retrying. Claude Science keeps retrying on its own, and once a retry goes through, Claude's reply starts again. Select **Check service status** to see whether there's an incident. To stop waiting, select the stop button in the composer. If your plan's usage limit runs out while Claude Science is retrying, the session pauses instead, as described in [When you reach a usage limit](/docs/claude-science/overview.md#when-you-reach-a-usage-limit). +Claude is busy or is limiting your requests, and Claude Science is retrying. Claude Science keeps retrying on its own, and once a retry goes through, Claude's reply starts again. Select **Check service status** to see whether there's an incident. To stop waiting, select the stop button in the composer. If your plan's usage limit runs out while Claude Science is retrying, the session pauses instead, as described in [When you reach a usage limit](https://claude.com/docs/claude-science/overview.md#when-you-reach-a-usage-limit). These other retry messages can appear in the same place: @@ -51,7 +51,7 @@ Claude Science sets up Python and R environments on your computer so Claude can A notice such as "2 environments failed" means Claude Science couldn't set up one or more of the environments Claude uses to run code, and it names them. Select **Details** to see each environment's status and, for any that failed, the error. -* If setup failed because of your organization's network, the dialog that **Details** opens links to settings for a package mirror, a CA bundle, or mirror credentials. When you save any of these settings, Claude Science retries the failed setups automatically. See also [Troubleshooting corporate network errors](/docs/claude-science/corporate-networks.md#troubleshooting-corporate-network-errors). +* If setup failed because of your organization's network, the dialog that **Details** opens links to settings for a package mirror, a CA bundle, or mirror credentials. When you save any of these settings, Claude Science retries the failed setups automatically. See also [Troubleshooting corporate network errors](https://claude.com/docs/claude-science/corporate-networks.md#troubleshooting-corporate-network-errors). * To retry the environments that failed, select **Retry builds**. If the notice reads "Analysis is unavailable" instead, no Python or R code can run until Claude Science restarts. Fix the cause the notice names, then quit and reopen Claude Science. Closing the window or browser tab leaves Claude Science running, so quit it this way: @@ -78,7 +78,7 @@ If holding the pointer over the microphone button shows "No microphone was found ## Updates -If Claude Science asks you to update, see [Update Claude Science](/docs/claude-science/update-claude-science.md). +If Claude Science asks you to update, see [Update Claude Science](https://claude.com/docs/claude-science/update-claude-science.md). Claude Science shows updates and their errors in these places: @@ -87,11 +87,11 @@ Claude Science shows updates and their errors in these places: ### cannot reach the public release endpoint -Claude Science couldn't reach the update server. Check your internet connection, then select **Restart to update** on the "Update available" notice to try again, or run `claude-science update` again. On a corporate network, see [Network requirements](/docs/claude-science/network-requirements.md#app-connections) for the domains Claude Science connects to. +Claude Science couldn't reach the update server. Check your internet connection, then select **Restart to update** on the "Update available" notice to try again, or run `claude-science update` again. On a corporate network, see [Network requirements](https://claude.com/docs/claude-science/network-requirements.md#app-connections) for the domains Claude Science connects to. ### restart aborted -On the "Update available" notice, this means the new version was downloaded but didn't start. On a Mac or Linux, if the message says "restart aborted" and you started Claude Science from a terminal, follow [the terminal steps](/docs/claude-science/update-claude-science.md#from-a-terminal-or-on-a-server). Otherwise, if Claude Science is still running, it's the version you had, and you can try again: select **Check for updates** under **Settings > General > About**, then select **Restart to update** there. On Windows, if trying again fails, leave Claude Science open and follow [the Windows steps](/docs/claude-science/update-claude-science.md#if-the-update-still-fails). If Claude Science has stopped, start it again. +On the "Update available" notice, this means the new version was downloaded but didn't start. On a Mac or Linux, if the message says "restart aborted" and you started Claude Science from a terminal, follow [the terminal steps](https://claude.com/docs/claude-science/update-claude-science.md#from-a-terminal-or-on-a-server). Otherwise, if Claude Science is still running, it's the version you had, and you can try again: select **Check for updates** under **Settings > General > About**, then select **Restart to update** there. On Windows, if trying again fails, leave Claude Science open and follow [the Windows steps](https://claude.com/docs/claude-science/update-claude-science.md#if-the-update-still-fails). If Claude Science has stopped, start it again. On Linux, an update to version 0.1.61 ends this way on a computer where bubblewrap or socat came from conda, Homebrew, or a folder in your home directory, because version 0.1.61 needs both installed for the whole system. Version 0.1.62 withdraws that requirement, so updating again now gets a version that starts. If Claude Science won't start at all, run `claude-science update` in a terminal, then start it again. @@ -107,4 +107,4 @@ On a Mac where Claude Science opens in its own window, the **Updates** window sh * If the window says to check your internet connection, check it, then select **Try again**. * If you cancelled a request from macOS for an administrator's password, select **Try again**. * Otherwise, such as when it says "Updates aren't available right now", wait a few minutes, then select **Try again**. -* On a corporate network, ask your IT team to allow `storage.googleapis.com` (see [Proxy and certificates for updates in the Mac app window](/docs/claude-science/corporate-networks.md#proxy-and-certificates-for-updates-in-the-mac-app-window)). +* On a corporate network, ask your IT team to allow `storage.googleapis.com` (see [Proxy and certificates for updates in the Mac app window](https://claude.com/docs/claude-science/corporate-networks.md#proxy-and-certificates-for-updates-in-the-mac-app-window)). diff --git a/content/claude/claude-science/update-claude-science.md b/content/claude/claude-science/update-claude-science.md index 45293f0ac..ff781f621 100644 --- a/content/claude/claude-science/update-claude-science.md +++ b/content/claude/claude-science/update-claude-science.md @@ -54,8 +54,8 @@ curl -fsSL https://claude.ai/install-claude-science.sh | bash ## If the update still fails -* **On Windows, an update said "restart aborted" or "The update is installed"**: don't quit Claude Science or run `claude-science stop`, and don't shut down or restart your PC, or sign out of Windows. Letting your PC sleep doesn't close Claude Science. If security software is blocking the new version, Claude Science might not open again. Select **Update now** or **Restart to update** again after a few minutes. If it still fails, ask your IT team whether security software is blocking Claude Science, and send them [Where the app stores data](/docs/claude-science/manage-on-devices.md#where-the-app-stores-data). If you don't have an IT team, contact [Claude support](https://support.claude.com/en/articles/9015913-how-to-get-support). +* **On Windows, an update said "restart aborted" or "The update is installed"**: don't quit Claude Science or run `claude-science stop`, and don't shut down or restart your PC, or sign out of Windows. Letting your PC sleep doesn't close Claude Science. If security software is blocking the new version, Claude Science might not open again. Select **Update now** or **Restart to update** again after a few minutes. If it still fails, ask your IT team whether security software is blocking Claude Science, and send them [Where the app stores data](https://claude.com/docs/claude-science/manage-on-devices.md#where-the-app-stores-data). If you don't have an IT team, contact [Claude support](https://support.claude.com/en/articles/9015913-how-to-get-support). * **Claude Science still asks you to update**: on Windows, if an update said "restart aborted" or "The update is installed", follow the entry above instead. On a Mac where Claude Science opens in its own window, quit it with Command-Q, wait ten seconds, then open it from your **Applications** folder. Anywhere else, run `claude-science stop` in a terminal (on a Mac or Linux, if the command isn't found, type `~/.local/bin/claude-science stop`), quit Claude Science if you're on a Mac, then open it again. If `claude-science stop` says "Not killing pid", follow [the terminal steps](#from-a-terminal-or-on-a-server). -* **The message says "restart aborted" or "The update is installed"**: on a Mac or Linux, if you started Claude Science from a terminal, follow [the terminal steps](#from-a-terminal-or-on-a-server). Otherwise, follow [restart aborted](/docs/claude-science/troubleshooting.md#restart-aborted). +* **The message says "restart aborted" or "The update is installed"**: on a Mac or Linux, if you started Claude Science from a terminal, follow [the terminal steps](#from-a-terminal-or-on-a-server). Otherwise, follow [restart aborted](https://claude.com/docs/claude-science/troubleshooting.md#restart-aborted). * **The message says "the new version couldn't start"**: you're still on the version you had. Updating again, even from a terminal, gets the same version until a newer one is released, so contact [Claude support](https://support.claude.com/en/articles/9015913-how-to-get-support) with the exact words you see. * **Anything else**: on a Mac where Claude Science opens in its own window, contact [Claude support](https://support.claude.com/en/articles/9015913-how-to-get-support) with your version and the exact words you see. Anywhere else, [install Claude Science again](#install-claude-science-again), and contact support if that doesn't work. diff --git a/content/claude/claude-tag/admins/add-connections.md b/content/claude/claude-tag/admins/add-connections.md index e6eaf126f..c80901291 100644 --- a/content/claude/claude-tag/admins/add-connections.md +++ b/content/claude/claude-tag/admins/add-connections.md @@ -12,13 +12,13 @@ > [!TIP] > -> Claude starts delivering work before you connect anything. On Slack content alone, it can [catch a team up on a channel or thread](/docs/claude-tag/users/use-cases/catch-up.md), [triage a request channel](/docs/claude-tag/users/use-cases/triage-requests.md), [turn a discussion into a doc](/docs/claude-tag/users/use-cases/create-artifacts.md), and [track a project from channel history](/docs/claude-tag/users/use-cases/track-projects.md). +> Claude starts delivering work before you connect anything. On Slack content alone, it can [catch a team up on a channel or thread](https://claude.com/docs/claude-tag/users/use-cases/catch-up.md), [triage a request channel](https://claude.com/docs/claude-tag/users/use-cases/triage-requests.md), [turn a discussion into a doc](https://claude.com/docs/claude-tag/users/use-cases/create-artifacts.md), and [track a project from channel history](https://claude.com/docs/claude-tag/users/use-cases/track-projects.md). -A connector gives Claude its own credential for one of your tools, like a Datadog API key or a warehouse service account, so Claude can act in that tool from Slack channels. This page is for the admins who add connectors and decide where they apply. To let Claude act as a member with that member's own claude.ai connectors, see [Personal connectors](/docs/claude-tag/concepts/personal-connectors.md) instead. +A connector gives Claude its own credential for one of your tools, like a Datadog API key or a warehouse service account, so Claude can act in that tool from Slack channels. This page is for the admins who add connectors and decide where they apply. To let Claude act as a member with that member's own claude.ai connectors, see [Personal connectors](https://claude.com/docs/claude-tag/concepts/personal-connectors.md) instead. -Adding connectors and bundles requires the **Owner** role or the [**Claude Tag Admin** permission](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) in your Claude organization. You manage both in [**Organization settings > Claude Tag**](https://claude.ai/admin-settings/claude-tag), under **Claude's access**, which appears once the **Enable Claude Tag in Slack** switch is on. +Adding connectors and bundles requires the **Owner** role or the [**Claude Tag Admin** permission](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) in your Claude organization. You manage both in [**Organization settings > Claude Tag**](https://claude.ai/admin-settings/claude-tag), under **Claude's access**, which appears once the **Enable Claude Tag in Slack** switch is on. -Connectors belong to the [agent identity](/docs/claude-tag/concepts/agent-identity.md), not to any person. Personal claude.ai connectors apply in one-to-one DMs. Claude can also [use a member's own connectors in a channel](/docs/claude-tag/concepts/personal-connectors.md) for that member's own tasks, after the member allows it. +Connectors belong to the [agent identity](https://claude.com/docs/claude-tag/concepts/agent-identity.md), not to any person. Personal claude.ai connectors apply in one-to-one DMs. Claude can also [use a member's own connectors in a channel](https://claude.com/docs/claude-tag/concepts/personal-connectors.md) for that member's own tasks, after the member allows it. ## Decide what to connect @@ -28,14 +28,14 @@ Read-only connectors are most useful in combination: an answer that joins the ti | Connect | Examples | Recommended access | What it adds | | :- | :- | :- | :- | -| Knowledge and docs | Google Drive, [Notion](/docs/claude-tag/admins/connections/notion.md), [Confluence](/docs/claude-tag/admins/connections/atlassian.md) | Read | Answers grounded in design docs, runbooks, and prior decisions | -| Code | GitHub, [GitLab](/docs/claude-tag/admins/connections/gitlab.md) | Read and write | On GitHub, branches, pull requests, review, and CI follow-up through the [Claude GitHub App](/docs/claude-tag/admins/configure-github.md). On GitLab, issues, merge request comments, and pipeline checks through its API | -| Data warehouse | BigQuery, [Snowflake](/docs/claude-tag/admins/connections/snowflake.md), Redshift | Read | Data questions answered with charts in the thread; recurring reports | -| Monitoring | [Sentry](/docs/claude-tag/admins/connections/sentry.md), [Datadog](/docs/claude-tag/admins/connections/datadog.md), [PagerDuty](/docs/claude-tag/admins/connections/pagerduty.md) | Read | Logs, metrics, and errors for debugging and incident work | -| Issue tracking | [Linear](/docs/claude-tag/admins/connections/linear.md), [Asana](/docs/claude-tag/admins/connections/asana.md), [Jira](/docs/claude-tag/admins/connections/atlassian.md) | Read and write | File tickets and post status updates where work lives | -| Go-to-market | [HubSpot](/docs/claude-tag/admins/connections/hubspot.md), [Gong](/docs/claude-tag/admins/connections/gong.md), [Salesforce](/docs/claude-tag/admins/connections/salesforce.md) | Read | Pipeline and customer state for account questions | +| Knowledge and docs | Google Drive, [Notion](https://claude.com/docs/claude-tag/admins/connections/notion.md), [Confluence](https://claude.com/docs/claude-tag/admins/connections/atlassian.md) | Read | Answers grounded in design docs, runbooks, and prior decisions | +| Code | GitHub, [GitLab](https://claude.com/docs/claude-tag/admins/connections/gitlab.md) | Read and write | On GitHub, branches, pull requests, review, and CI follow-up through the [Claude GitHub App](https://claude.com/docs/claude-tag/admins/configure-github.md). On GitLab, issues, merge request comments, and pipeline checks through its API | +| Data warehouse | BigQuery, [Snowflake](https://claude.com/docs/claude-tag/admins/connections/snowflake.md), Redshift | Read | Data questions answered with charts in the thread; recurring reports | +| Monitoring | [Sentry](https://claude.com/docs/claude-tag/admins/connections/sentry.md), [Datadog](https://claude.com/docs/claude-tag/admins/connections/datadog.md), [PagerDuty](https://claude.com/docs/claude-tag/admins/connections/pagerduty.md) | Read | Logs, metrics, and errors for debugging and incident work | +| Issue tracking | [Linear](https://claude.com/docs/claude-tag/admins/connections/linear.md), [Asana](https://claude.com/docs/claude-tag/admins/connections/asana.md), [Jira](https://claude.com/docs/claude-tag/admins/connections/atlassian.md) | Read and write | File tickets and post status updates where work lives | +| Go-to-market | [HubSpot](https://claude.com/docs/claude-tag/admins/connections/hubspot.md), [Gong](https://claude.com/docs/claude-tag/admins/connections/gong.md), [Salesforce](https://claude.com/docs/claude-tag/admins/connections/salesforce.md) | Read | Pipeline and customer state for account questions | -Per-service instructions, with the credential fields and allowed-websites values, are in the [connection guides](/docs/claude-tag/admins/connections/overview). +Per-service instructions, with the credential fields and allowed-websites values, are in the [connection guides](https://claude.com/docs/claude-tag/admins/connections/overview). ### Create a dedicated account per service @@ -65,7 +65,7 @@ Please create a service account in [service] for our Claude agent, scoped to [re A connector has no setting for which pages, folders, or projects Claude can reach inside a tool. The connector's reach is whatever the connected account can access in that tool. To narrow Claude to a subset, narrow the account: * **Confluence or another wiki:** give the service account read access to only the spaces or pages Claude should see -* **Google Drive:** share only the relevant folders with the dedicated Google account; see [Google Workspace](/docs/claude-tag/admins/connections/google.md) +* **Google Drive:** share only the relevant folders with the dedicated Google account; see [Google Workspace](https://claude.com/docs/claude-tag/admins/connections/google.md) * **Project or ticket trackers:** add the service account to only the projects it needs The host, path, and method restrictions on a credential control which API endpoints Claude can call, not which records those endpoints return. Use them alongside account-level scoping, not instead of it. @@ -88,7 +88,7 @@ Go to [**Organization settings > Claude Tag**](https://claude.ai/admin-settings/ **2. Pick the service** -In the **Add a connector** dialog, search for the service and select it. A service Claude already holds a credential for shows **Connected**. For GitHub, see [Configure GitHub access](/docs/claude-tag/admins/configure-github.md). For a service that isn't listed, select **Custom connector** at the bottom of the list; see [Connect a service that isn't in the list](#connect-a-service-that-isn%E2%80%99t-in-the-list). +In the **Add a connector** dialog, search for the service and select it. A service Claude already holds a credential for shows **Connected**. For GitHub, see [Configure GitHub access](https://claude.com/docs/claude-tag/admins/configure-github.md). For a service that isn't listed, select **Custom connector** at the bottom of the list; see [Connect a service that isn't in the list](#connect-a-service-that-isn%E2%80%99t-in-the-list). For a service that offers a sign-in as well as a key, such as Amplitude, the dialog then shows **How Claude authenticates**. Leave **Paste an API key** selected, or select the sign-in option, such as **Sign in to Amplitude as Claude**, and click **Continue to** *service*. @@ -151,7 +151,7 @@ In both places, the row's **⋮** menu has **Revoke link**, and **Copy link for ### Claude Tag connectors vs personal claude.ai connectors -The **Add a connector** dialog lists services Claude can hold its own credential for, not the connectors your organization or its members have set up on claude.ai. A Claude Tag connector authenticates the agent, not a person; a connector on someone's personal claude.ai account doesn't appear there. For Google services, use a service-account key or sign in with an account made for Claude, both of which give the agent one credential with access to the data the channel needs. Personal connectors keep working in [DMs](/docs/claude-tag/concepts/agent-identity.md#direct-message-channels). +The **Add a connector** dialog lists services Claude can hold its own credential for, not the connectors your organization or its members have set up on claude.ai. A Claude Tag connector authenticates the agent, not a person; a connector on someone's personal claude.ai account doesn't appear there. For Google services, use a service-account key or sign in with an account made for Claude, both of which give the agent one credential with access to the data the channel needs. Personal connectors keep working in [DMs](https://claude.com/docs/claude-tag/concepts/agent-identity.md#direct-message-channels). ## Change an existing connector @@ -212,7 +212,7 @@ Agent Proxy starts applying an edit to a credential or a domain entry within abo ## Create a bundle -A [bundle](/docs/claude-tag/concepts/glossary.md#access-bundle) is a named set of connectors, repositories, domain entries, plugins, and instructions that Claude takes on wherever the bundle applies. Use one to give a group of channels the same access, and to add a connector to only some channels from the start. +A [bundle](https://claude.com/docs/claude-tag/concepts/glossary.md#access-bundle) is a named set of connectors, repositories, domain entries, plugins, and instructions that Claude takes on wherever the bundle applies. Use one to give a group of channels the same access, and to add a connector to only some channels from the start. **1. Create the bundle** @@ -226,11 +226,11 @@ Under **What's in it**, click **Add** and choose **Connector**, **Repository**, Under **Where it applies**, turn on the switch in the **Slack** row to apply the bundle in every workspace and channel, or in a workspace's row to apply it in that workspace. For a channel, click **Add place**, choose the channel under **Where**, and click **Add**. Then click **Save changes**. A bundle applies nowhere until you turn on a row or add a place. -To add an existing bundle from a workspace or channel instead, open that place's page from the **Channels** tab, click **Add** under **Claude's access**, and select **Bundle**. [Attach bundles to workspaces and channels](/docs/claude-tag/admins/attach-to-scope.md) covers channel rules and how bundles combine. +To add an existing bundle from a workspace or channel instead, open that place's page from the **Channels** tab, click **Add** under **Claude's access**, and select **Bundle**. [Attach bundles to workspaces and channels](https://claude.com/docs/claude-tag/admins/attach-to-scope.md) covers channel rules and how bundles combine. Name a bundle after what it grants, since the name is what you'll read when deciding which bundles to add to a channel: `data-readonly`, `github-write`, `monitoring`, `gtm-tools`. A capability name stays meaningful when the same bundle serves several teams; a team name (`devprod-team`) works when one team's full access is the unit you'll reuse. -Use the bundle's **Instructions** section for guidance that should travel with its connectors; use [workspace or channel instructions](/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions) for guidance tied to a place. +Use the bundle's **Instructions** section for guidance that should travel with its connectors; use [workspace or channel instructions](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions) for guidance tied to a place. ### Why create more than one bundle @@ -238,7 +238,7 @@ Multiple bundles let you grant access by capability and compose it per channel. ## Connect a service that isn't in the list -The **Add a connector** list covers common services, not the full set Claude can connect to. Any app with an API can be connected. In the **Add a connector** dialog, select **Custom connector** at the bottom of the list. See the [custom connector guide](/docs/claude-tag/admins/connections/custom.md) for the form fields, credential types, and how to add a custom MCP server. +The **Add a connector** list covers common services, not the full set Claude can connect to. Any app with an API can be connected. In the **Add a connector** dialog, select **Custom connector** at the bottom of the list. See the [custom connector guide](https://claude.com/docs/claude-tag/admins/connections/custom.md) for the form fields, credential types, and how to add a custom MCP server. For a custom connector, choose the **Credential type** that matches how the service authenticates: @@ -248,25 +248,25 @@ For a custom connector, choose the **Credential type** that matches how the serv | Basic | HTTP Basic authentication. | | Body parameter | A token the API expects in the request body or query string instead of a header. | | AWS SigV4 | Signed requests to AWS service endpoints with an access key pair. | -| GCP access token (with Service Account Key) | Google Cloud APIs via a service-account JSON key. Google Workspace services like Drive and Calendar also use this; see [the Google guide](/docs/claude-tag/admins/connections/google.md). | +| GCP access token (with Service Account Key) | Google Cloud APIs via a service-account JSON key. Google Workspace services like Drive and Calendar also use this; see [the Google guide](https://claude.com/docs/claude-tag/admins/connections/google.md). | | GCP IAP (with Service Account Key) | Google Cloud services behind Identity-Aware Proxy. | | OAuth 2.0 JWT bearer | Server-to-server OAuth. | | OAuth 2.0 client credentials | Server-to-server OAuth. Salesforce uses this. | -| MCP Connector | Sign in once as an admin; the agent acts as that account. The picker offers a fixed set of providers plus the [remote MCP connectors](/docs/connectors/custom/add-unlisted.md) your organization has added on claude.ai. Other OAuth APIs can't be connected this way. | +| MCP Connector | Sign in once as an admin; the agent acts as that account. The picker offers a fixed set of providers plus the [remote MCP connectors](https://claude.com/docs/connectors/custom/add-unlisted.md) your organization has added on claude.ai. Other OAuth APIs can't be connected this way. | -For GitHub repositories, use the Claude GitHub App at [Configure GitHub access](/docs/claude-tag/admins/configure-github.md) rather than a credential from this table. +For GitHub repositories, use the Claude GitHub App at [Configure GitHub access](https://claude.com/docs/claude-tag/admins/configure-github.md) rather than a credential from this table. -Credentials are injected at the network boundary by Agent Proxy; the model and the sandbox are not given the key. A request to a host you haven't allowed is blocked, not sent. See [how Agent Proxy works](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). +Credentials are injected at the network boundary by Agent Proxy; the model and the sandbox are not given the key. A request to a host you haven't allowed is blocked, not sent. See [how Agent Proxy works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). -You can also add connectors from a channel's [Configure page](/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel). The option to add one appears there only for people who can manage Claude's setup for that channel or for the whole organization. [Channel managers](/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) can manage setup for their assigned channels. Other channel members see the channel's connectors on the Configure page but can't add one. +You can also add connectors from a channel's [Configure page](https://claude.com/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel). The option to add one appears there only for people who can manage Claude's setup for that channel or for the whole organization. [Channel managers](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) can manage setup for their assigned channels. Other channel members see the channel's connectors on the Configure page but can't add one. ## Allow a host without a credential -Claude does channel work in an isolated [sandbox](/docs/claude-tag/concepts/agent-identity.md#channel-sessions). A network request is traffic that sandbox sends to a host, such as an API call, a `curl` fetch, or a package install. Before Claude can make one from a channel, the destination host has to be allowed by one of three settings, the allow layers: +Claude does channel work in an isolated [sandbox](https://claude.com/docs/claude-tag/concepts/agent-identity.md#channel-sessions). A network request is traffic that sandbox sends to a host, such as an API call, a `curl` fetch, or a package install. Before Claude can make one from a channel, the destination host has to be allowed by one of three settings, the allow layers: * **A domain entry**: a hostname added to a bundle that applies to the channel. Requests to it pass with no credential attached; see [Add a domain](#add-a-domain). * **A [connector](#add-a-connector)**: a credential that applies to the channel. Requests matching its [allowed websites](#set-allowed-websites) pass with that credential attached. -* **The channel's [environment](/docs/claude-tag/concepts/glossary.md#environment)**: the compute configuration the channel's sessions run in, which carries its own network access setting, starting at the Trusted access level that covers common package registries. Requests to hosts it allows pass with no credential; see [Broad web access through the environment](#broad-web-access-through-the-environment). +* **The channel's [environment](https://claude.com/docs/claude-tag/concepts/glossary.md#environment)**: the compute configuration the channel's sessions run in, which carries its own network access setting, starting at the Trusted access level that covers common package registries. Requests to hosts it allows pass with no credential; see [Broad web access through the environment](#broad-web-access-through-the-environment). A host that none of these allows stays unreachable, and when more than one bundle applies to a channel, the entries of all of them apply. Web search is governed by none of them, because searching happens on Anthropic's servers rather than in the sandbox; see [Web search vs. network requests](#web-search-vs-network-requests). @@ -284,7 +284,7 @@ For example, to let Claude check a vendor's status page at `status.example.org`, You don't have to predict the full list up front. When a request is blocked, Claude says so in the thread and names the host, with wording like "blocked by the network egress proxy" (that is, by Agent Proxy); add that host here and retry. If the host is listed and Claude still reports it blocked, check these in order: -* **The bundle applies to the channel.** The bundle's **Where it applies** list must include the channel, its workspace, a channel group that matches it, or **Slack**; see [Attach bundles to workspaces and channels](/docs/claude-tag/admins/attach-to-scope.md). +* **The bundle applies to the channel.** The bundle's **Where it applies** list must include the channel, its workspace, a channel group that matches it, or **Slack**; see [Attach bundles to workspaces and channels](https://claude.com/docs/claude-tag/admins/attach-to-scope.md). * **The entry matches the exact host.** A wildcard like `*.example.com` doesn't cover `example.com` itself, and `www.example.com` and `example.com` are different hosts. * **The request didn't move to another host.** If the page redirects, or loads from a CDN or a sign-in host, allow that host too; Claude names the host it was blocked on. * **The port is listed.** Needed only when the service listens on something other than 443. @@ -297,15 +297,15 @@ Typical entries are hosts the work calls without a key, such as a docs site or a > [!NOTE] > -> [Agent Proxy](/docs/claude-tag/concepts/agent-identity.md#agent-proxy) carries only HTTP and HTTPS. A protocol that isn't HTTP, such as SSH, can't cross the proxy, so a domain entry doesn't make a host reachable over SSH. +> [Agent Proxy](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy) carries only HTTP and HTTPS. A protocol that isn't HTTP, such as SSH, can't cross the proxy, so a domain entry doesn't make a host reachable over SSH. ### Broad web access through the environment -Domain entries allow hosts one at a time. For a channel whose work needs more of the web, the environment setting grants broader access. An [environment](/docs/claude-tag/concepts/glossary.md#environment) is the sandboxed compute configuration the channel's sessions run in, and it carries its own network access setting. +Domain entries allow hosts one at a time. For a channel whose work needs more of the web, the environment setting grants broader access. An [environment](https://claude.com/docs/claude-tag/concepts/glossary.md#environment) is the sandboxed compute configuration the channel's sessions run in, and it carries its own network access setting. A new environment's network access level is Trusted access, which allows a [documented set of package registries and developer hosts](https://code.claude.com/docs/en/cloud-environments#default-allowed-domains). A channel can already reach hosts like `pypi.org` and `registry.npmjs.org` with no domain entry. -To give a workspace or channel broader access, create an organization-shared environment with a more permissive level and set it on that place's page, under **Advanced > Sessions > Environment**, as described in [Configure the environment for a scope](/docs/claude-tag/admins/customize.md#configure-the-environment-for-a-scope). **Full access** allows any domain; see [Network access in the Claude Code docs](https://code.claude.com/docs/en/cloud-environments#network-access) for the other levels. +To give a workspace or channel broader access, create an organization-shared environment with a more permissive level and set it on that place's page, under **Advanced > Sessions > Environment**, as described in [Configure the environment for a scope](https://claude.com/docs/claude-tag/admins/customize.md#configure-the-environment-for-a-scope). **Full access** allows any domain; see [Network access in the Claude Code docs](https://code.claude.com/docs/en/cloud-environments#network-access) for the other levels. ### Allow all hosts @@ -323,7 +323,7 @@ Web search needs no domain entry, connector, or environment setting. It's [Anthr Opening a page is not part of the search. A search returns content from the pages it matches, which Claude reads and cites; fetching a URL from the sandbox is a network request, and the host needs an allow layer. Claude can answer from a page that search surfaced yet report that it can't open the same link. -If the work needs Claude to open and read pages rather than answer from search results, allow those hosts through the settings above. [Web search vs. network requests](/docs/claude-tag/concepts/agent-identity.md#web-search-vs-network-requests) covers the session mechanics behind the split. +If the work needs Claude to open and read pages rather than answer from search results, allow those hosts through the settings above. [Web search vs. network requests](https://claude.com/docs/claude-tag/concepts/agent-identity.md#web-search-vs-network-requests) covers the session mechanics behind the split. ## Attach plugins @@ -337,11 +337,11 @@ Where you add a plugin decides where it applies: * **Wherever a bundle applies**: on the bundle's page, under **What's in it**, click **Add** and choose **Plugin**. * **One workspace or channel**: on that place's page, under **Claude's access**, click **Add** and select **Plugin** or **Skill**, then pick the plugin or skill in the dialog and click **Add**. The dialog lists only the plugins and skills already on the **Skills and plugins** tab. For one that isn't on the tab yet, add it there and then limit it under **Assign access** on its page, or add a plugin to a bundle that applies to the place. * **Along with a connector**: when a connect form shows a checkbox to include the service's plugin, leave it selected to add that plugin with the credential. -* **By a channel member**: a member can ask Claude to add a plugin available to your organization, in the channel or from the channel's [Configure page](/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel), unless **Channel member edits** is set to **Block**; see [Restrict who can set channel instructions](/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions). Claude proposes the change and adds the plugin only after someone in that channel selects **Confirm**. +* **By a channel member**: a member can ask Claude to add a plugin available to your organization, in the channel or from the channel's [Configure page](https://claude.com/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel), unless **Channel member edits** is set to **Block**; see [Restrict who can set channel instructions](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions). Claude proposes the change and adds the plugin only after someone in that channel selects **Confirm**. -Anthropic provides plugins for common tools and processes, and you can add your own from a [skills repository](/docs/claude-tag/admins/skills-repo.md). To give Claude organization-wide skills, package them as a plugin. Adding a plugin to your organization's library on claude.ai makes it available to Claude, not active; it takes effect only where you add it in one of the ways above. +Anthropic provides plugins for common tools and processes, and you can add your own from a [skills repository](https://claude.com/docs/claude-tag/admins/skills-repo.md). To give Claude organization-wide skills, package them as a plugin. Adding a plugin to your organization's library on claude.ai makes it available to Claude, not active; it takes effect only where you add it in one of the ways above. -Adding or removing plugins and skills applies to new threads only. A thread already running keeps the set it began with; start a fresh thread to pick up changes. See [What survives between replies](/docs/claude-tag/concepts/how-it-works.md#what-survives-between-replies). +Adding or removing plugins and skills applies to new threads only. A thread already running keeps the set it began with; start a fresh thread to pick up changes. See [What survives between replies](https://claude.com/docs/claude-tag/concepts/how-it-works.md#what-survives-between-replies). Claude can't publish a new skill version from inside a thread; that update happens in admin settings. @@ -361,6 +361,6 @@ Anthropic's **Security Guidance** [plugin](https://code.claude.com/docs/en/plugi ## Related resources -* [Set a spend limit](/docs/claude-tag/admins/set-spend-limit.md): fund usage so the connectors you just added can run -* [Configure GitHub access](/docs/claude-tag/admins/configure-github.md): repository access, managed through the Claude GitHub App -* [How agent identity works](/docs/claude-tag/concepts/agent-identity.md#agent-proxy): how the credentials you just added reach Claude without entering its sandbox +* [Set a spend limit](https://claude.com/docs/claude-tag/admins/set-spend-limit.md): fund usage so the connectors you just added can run +* [Configure GitHub access](https://claude.com/docs/claude-tag/admins/configure-github.md): repository access, managed through the Claude GitHub App +* [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy): how the credentials you just added reach Claude without entering its sandbox diff --git a/content/claude/claude-tag/admins/attach-to-scope.md b/content/claude/claude-tag/admins/attach-to-scope.md index 7f8d08d13..eda791d5b 100644 --- a/content/claude/claude-tag/admins/attach-to-scope.md +++ b/content/claude/claude-tag/admins/attach-to-scope.md @@ -12,9 +12,9 @@ A bundle applies at one of three levels, called scopes, and each has its own page on the **Channels** tab under **Claude's access** at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag). The **Slack** page covers every connected workspace and channel, a workspace's page covers the channels in that workspace, and a channel's page covers one channel. Bundles inherit downward through those scopes, and when credentials overlap, Claude uses the one from the narrowest scope. -An Owner in your Claude organization, or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration), can choose where a bundle applies. Attaching a bundle to channels by name needs an Owner. +An Owner in your Claude organization, or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration), can choose where a bundle applies. Attaching a bundle to channels by name needs an Owner. -This page assumes you have already [paired a workspace](/docs/claude-tag/admins/setup-overview#pair-your-slack-workspace) and [created a bundle](/docs/claude-tag/admins/add-connections.md). +This page assumes you have already [paired a workspace](https://claude.com/docs/claude-tag/admins/setup-overview#pair-your-slack-workspace) and [created a bundle](https://claude.com/docs/claude-tag/admins/add-connections.md). ## How scopes inherit @@ -30,9 +30,9 @@ Bundles stack downward. A channel gets whatever applies on the **Slack** page, p The same stacking applies in reverse. Removing a bundle from a channel removes only that channel's additions, and bundles on the workspace or on **Slack** still apply there. -Memory is also scoped, but differently: there is no organization-wide memory, each channel keeps its own notes, workspace notes saved from public channels are read across the workspace, and a private channel reads the workspace notes but writes only to its own store. See [What Claude Tag remembers](/docs/claude-tag/users/memory.md). +Memory is also scoped, but differently: there is no organization-wide memory, each channel keeps its own notes, workspace notes saved from public channels are read across the workspace, and a private channel reads the workspace notes but writes only to its own store. See [What Claude Tag remembers](https://claude.com/docs/claude-tag/users/memory.md). -One-to-one DMs from members who have connected a Claude account run under the member's own claude.ai account. See [how DMs work in this model](/docs/claude-tag/concepts/agent-identity.md#direct-message-channels). A [DM from a member who hasn't connected a Claude account](/docs/claude-tag/admins/restrict-access.md#access-in-a-direct-message-from-a-member-without-a-claude-account) reaches bundles. A [group DM](/docs/claude-tag/admins/restrict-access.md#group-dms) gets the bundles on the workspace's page and on the **Slack** page. +One-to-one DMs from members who have connected a Claude account run under the member's own claude.ai account. See [how DMs work in this model](https://claude.com/docs/claude-tag/concepts/agent-identity.md#direct-message-channels). A [DM from a member who hasn't connected a Claude account](https://claude.com/docs/claude-tag/admins/restrict-access.md#access-in-a-direct-message-from-a-member-without-a-claude-account) reaches bundles. A [group DM](https://claude.com/docs/claude-tag/admins/restrict-access.md#group-dms) gets the bundles on the workspace's page and on the **Slack** page. ## Choose where a bundle applies @@ -43,13 +43,13 @@ A bundle applies nowhere until you add places to it. A place is **Slack**, a wor To stop a bundle applying somewhere, open the bundle's page and turn off that place's switch under **Where it applies**. For a workspace or channel, you can instead choose **Remove from bundle** from its row menu. Then select **Save changes**. A workspace's or channel's page lists the bundles that reach it, and each links to the bundle's page, but the page itself doesn't remove them. -The change takes full effect in new threads only. A thread already running keeps the skills, plugins, and custom instructions it started with. A connector added after a thread started still works there if you ask Claude to use the service by name. Test with a new top-level thread after changing where a bundle applies. See [What survives between replies](/docs/claude-tag/concepts/how-it-works.md#what-survives-between-replies). +The change takes full effect in new threads only. A thread already running keeps the skills, plugins, and custom instructions it started with. A connector added after a thread started still works there if you ask Claude to use the service by name. Test with a new top-level thread after changing where a bundle applies. See [What survives between replies](https://claude.com/docs/claude-tag/concepts/how-it-works.md#what-survives-between-replies). At the channel's top level, outside any thread, Claude works from a single long-lived channel session. After a configuration change, Claude replaces that session on the next channel message, so top-level replies pick up the change from then on. ### Attach to a workspace -While a bundle is off for **Slack**, every paired workspace is listed under **Where it applies** on the bundle's page. Turn on the workspace's switch and select **Save changes**, or open the workspace's page on the **Channels** tab and add the bundle with **Add > Bundle** under **Claude's access**. To add another workspace, [pair it](/docs/claude-tag/admins/setup-overview#pair-your-slack-workspace) first. +While a bundle is off for **Slack**, every paired workspace is listed under **Where it applies** on the bundle's page. Turn on the workspace's switch and select **Save changes**, or open the workspace's page on the **Channels** tab and add the bundle with **Add > Bundle** under **Claude's access**. To add another workspace, [pair it](https://claude.com/docs/claude-tag/admins/setup-overview#pair-your-slack-workspace) first. ### Attach to a channel @@ -59,8 +59,8 @@ To find a channel, use the search field on the **Channels** tab. It matches chan Sharing a channel changes which bundles apply there: -* **Shared across workspaces in your Enterprise Grid**: bundles on the channel or its workspace don't apply. See [Channels shared across workspaces in your Enterprise Grid](/docs/claude-tag/admins/restrict-access.md#channels-shared-across-workspaces-in-your-enterprise-grid) for what Claude does there instead. -* **Shared with another company through Slack Connect**: once Claude is [turned on in the channel](/docs/claude-tag/admins/restrict-access.md#slack-connect-channels), bundles attached directly to the channel apply there, including ones you attached before the channel was shared. Claude can use their connectors for the other company's people in the channel too. [What access Claude has in a Slack Connect channel](/docs/claude-tag/admins/restrict-access.md#what-access-claude-has-in-a-slack-connect-channel) covers which bundles reach that channel and which don't. +* **Shared across workspaces in your Enterprise Grid**: bundles on the channel or its workspace don't apply. See [Channels shared across workspaces in your Enterprise Grid](https://claude.com/docs/claude-tag/admins/restrict-access.md#channels-shared-across-workspaces-in-your-enterprise-grid) for what Claude does there instead. +* **Shared with another company through Slack Connect**: once Claude is [turned on in the channel](https://claude.com/docs/claude-tag/admins/restrict-access.md#slack-connect-channels), bundles attached directly to the channel apply there, including ones you attached before the channel was shared. Claude can use their connectors for the other company's people in the channel too. [What access Claude has in a Slack Connect channel](https://claude.com/docs/claude-tag/admins/restrict-access.md#what-access-claude-has-in-a-slack-connect-channel) covers which bundles reach that channel and which don't. > [!WARNING] > @@ -82,7 +82,7 @@ You can add a rule in any of three places under **Claude's access** at [`claude. * **The Auto-join channels table**: on the **Advanced** tab of the **Slack** page or of a workspace's page, find **Auto-join channels** under **Channels**. Each row is one channel-name pattern. Select **Add bundle** on the pattern's row and pick the bundle. If the pattern isn't listed yet, add it with **Add pattern** first. * **The bundle's page**: under **Where it applies**, select **Add place** and type a pattern, such as `inc-*`, under **Where**. Select the **Create channel group** option for that pattern, choose the workspace under **Applies to** if you have more than one, and select **Add**. The rule saves at once and covers that one workspace. -Whichever way you add it, the pattern is also an [auto-join pattern](/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name), so Claude starts joining matching public channels when they're created or renamed. After adding or changing a rule, test with a new thread in a matching channel. +Whichever way you add it, the pattern is also an [auto-join pattern](https://claude.com/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name), so Claude starts joining matching public channels when they're created or renamed. After adding or changing a rule, test with a new thread in a matching channel. For example, if your incident channel names start with `inc-`, add a channel rule for `inc-*` with your incident-response bundle. Claude then joins each new public incident channel and has the bundle's access there. @@ -93,17 +93,17 @@ A channel rule grants its bundle under these conditions: * **Workspaces**: a rule for all workspaces, or on the **Slack** page, covers matching channels in every connected workspace. A rule on one workspace covers only that workspace's matching channels. * **Channels Claude is already in**: the rule grants the bundle in every matching channel Claude is in under the scope, including channels it was invited to before the rule existed * **Joining channels**: only the auto-join patterns, or an invite, add Claude to a channel. The rule itself doesn't. -* **Blocked patterns**: a channel whose name matches a [blocked pattern](/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name) stays off-limits even when a rule matches it +* **Blocked patterns**: a channel whose name matches a [blocked pattern](https://claude.com/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name) stays off-limits even when a rule matches it A rule's pattern has its own constraints: -* **Pattern syntax**: a rule's pattern follows the same syntax as the other [channel name patterns](/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name), lowercase with `*` matching any run of characters and `?` matching exactly one +* **Pattern syntax**: a rule's pattern follows the same syntax as the other [channel name patterns](https://claude.com/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name), lowercase with `*` matching any run of characters and `?` matching exactly one * **Number of rules**: each scope holds up to 50 channel rules, and a rule with more than one bundle counts once for each bundle * **Organization patterns**: on a workspace's page, the **Auto-join channels** table also lists the organization's patterns, marked **Org-wide**. You can attach a bundle to an **Org-wide** pattern from the workspace's table, and that rule covers only the workspace's matching channels. You edit the pattern itself on the **Slack** page. > [!WARNING] > -> A channel rule grants its bundle in every matching channel Claude is in, now or in the future, and anyone who can rename a channel can move it into or out of a pattern. Keep elevated credentials out of broad patterns, and add a [blocked channel pattern](/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name) for name shapes that should never carry access; a blocked channel stays off-limits whatever rules match it. +> A channel rule grants its bundle in every matching channel Claude is in, now or in the future, and anyone who can rename a channel can move it into or out of a pattern. Keep elevated credentials out of broad patterns, and add a [blocked channel pattern](https://claude.com/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name) for name shapes that should never carry access; a blocked channel stays off-limits whatever rules match it. ### Where rule-attached bundles appear @@ -113,9 +113,9 @@ A channel's own page lists the bundles a rule attaches there as rows in its **Cl ## Add a single connector, repository, plugin, or skill -To give a place one item without going through a bundle, open the **Slack** page or a workspace's or channel's page from the **Channels** tab, select **Add** under **Claude's access**, and choose **Connector**, **Repository**, **Plugin**, or **Skill**. The dialog opens on that kind's tab, and its **Connectors**, **Plugins**, **Skills**, and **Repositories** tabs switch between kinds. To let Claude reach a host without a credential in that place, choose **Domain** from the same menu, as [Add a domain](/docs/claude-tag/admins/add-connections.md#add-a-domain) describes. +To give a place one item without going through a bundle, open the **Slack** page or a workspace's or channel's page from the **Channels** tab, select **Add** under **Claude's access**, and choose **Connector**, **Repository**, **Plugin**, or **Skill**. The dialog opens on that kind's tab, and its **Connectors**, **Plugins**, **Skills**, and **Repositories** tabs switch between kinds. To let Claude reach a host without a credential in that place, choose **Domain** from the same menu, as [Add a domain](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-domain) describes. -The dialog's **Connectors** tab lists the connectors already on the **Connectors** tab of **Claude's access**, and below them, under **Connect new**, services you can connect for that place; see [Add a connector](/docs/claude-tag/admins/add-connections.md#add-a-connection). A credential connected from a workspace's or channel's page applies only in that place, and one connected from the **Slack** page applies everywhere. The dialog's **Plugins** and **Skills** tabs list only the plugins and skills already on the **Skills and plugins** tab of **Claude's access**. +The dialog's **Connectors** tab lists the connectors already on the **Connectors** tab of **Claude's access**, and below them, under **Connect new**, services you can connect for that place; see [Add a connector](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection). A credential connected from a workspace's or channel's page applies only in that place, and one connected from the **Slack** page applies everywhere. The dialog's **Plugins** and **Skills** tabs list only the plugins and skills already on the **Skills and plugins** tab of **Claude's access**. ### Check or remove what a place has @@ -125,7 +125,7 @@ Some items are removed on that page, and others elsewhere: * **A plugin, skill, or domain whose row reads Added here**: use the row's menu * **A connector**: the row has no menu. Select the row to open the connector's page, and change where it applies under **Assign access**. -* **A repository**: the row has no menu. [Configure GitHub access](/docs/claude-tag/admins/configure-github.md) covers where a repository applies. +* **A repository**: the row has no menu. [Configure GitHub access](https://claude.com/docs/claude-tag/admins/configure-github.md) covers where a repository applies. ## Precedence when bundles overlap @@ -157,15 +157,15 @@ Each scope can carry custom instructions, which are standing guidance Claude rea Channel members reach the same field for the channel scope through the **Configure** page, linked in the footer of any Claude reply in the channel, without going through admin settings. Both entry points write the same instructions, so a change from either place is visible in the other. -To let a central team write a channel's instructions from its own Slack channel, see [Manage a channel's instructions from another channel](/docs/claude-tag/admins/managed-by.md). +To let a central team write a channel's instructions from its own Slack channel, see [Manage a channel's instructions from another channel](https://claude.com/docs/claude-tag/admins/managed-by.md). #### Instruction format -The field is plain text, inserted as written; there is no include or template syntax, and `{{include:...}}` is passed through literally. To give Claude a repository's `CLAUDE.md`, [grant the repository](/docs/claude-tag/admins/configure-github.md#grant-repository-access) and name it in the request; its `CLAUDE.md` loads after the clone completes. +The field is plain text, inserted as written; there is no include or template syntax, and `{{include:...}}` is passed through literally. To give Claude a repository's `CLAUDE.md`, [grant the repository](https://claude.com/docs/claude-tag/admins/configure-github.md#grant-repository-access) and name it in the request; its `CLAUDE.md` loads after the clone completes. #### What Claude reads in a channel -What Claude reads in a channel is the concatenated custom instructions of its scope chain, the instructions of each bundle that applies there, the channel's [managed instructions](/docs/claude-tag/admins/managed-by.md#how-managed-instructions-load) if another channel manages it, and the `CLAUDE.md` of any repository it clones. Projects in claude.ai don't apply here; Claude doesn't read a Project's instructions or knowledge in Slack, and a channel can't be pointed at a Project. +What Claude reads in a channel is the concatenated custom instructions of its scope chain, the instructions of each bundle that applies there, the channel's [managed instructions](https://claude.com/docs/claude-tag/admins/managed-by.md#how-managed-instructions-load) if another channel manages it, and the `CLAUDE.md` of any repository it clones. Projects in claude.ai don't apply here; Claude doesn't read a Project's instructions or knowledge in Slack, and a channel can't be pointed at a Project. #### When a new instruction applies @@ -177,13 +177,13 @@ The table lists the kinds of standing instruction that can apply in a channel an | Layer | Who writes it | Where | | :- | :- | :- | -| Custom instructions | Owner for any scope; [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) for workspace and channel scopes; channel members and [channel managers](/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) for the channel scope, unless members are [restricted](#restrict-who-can-set-channel-instructions) | The instructions field on a scope's page in admin settings, or the **Configure** link in any reply footer for the channel scope | -| Bundle instructions | An Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) | The **Instructions** section of the bundle's page. They apply wherever the bundle applies | -| Managed instructions | Full workspace members in one of the channel's [managing channels](/docs/claude-tag/admins/managed-by.md), which an Owner or a Claude Tag admin selects under **Managed by** on the channel's Configure page | By asking Claude in the managing channel and confirming the card it posts | +| Custom instructions | Owner for any scope; [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) for workspace and channel scopes; channel members and [channel managers](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) for the channel scope, unless members are [restricted](#restrict-who-can-set-channel-instructions) | The instructions field on a scope's page in admin settings, or the **Configure** link in any reply footer for the channel scope | +| Bundle instructions | An Owner or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) | The **Instructions** section of the bundle's page. They apply wherever the bundle applies | +| Managed instructions | Full workspace members in one of the channel's [managing channels](https://claude.com/docs/claude-tag/admins/managed-by.md), which an Owner or a Claude Tag admin selects under **Managed by** on the channel's Configure page | By asking Claude in the managing channel and confirming the card it posts | | Channel memory | Anyone in the channel | By telling Claude to remember | | Task prompt | The requester | The message itself | -Channel members can shape how Claude responds in their channel through memory, but they can't change which credentials or repositories it has; that's bundle configuration. See [who controls what](/docs/claude-tag/admins/customize.md) for the full split. +Channel members can shape how Claude responds in their channel through memory, but they can't change which credentials or repositories it has; that's bundle configuration. See [who controls what](https://claude.com/docs/claude-tag/admins/customize.md) for the full split. Custom instructions are read ahead of the conversation and take priority in practice, but they're guidance, not an enforced guardrail. Don't rely on them to block actions; use access controls for that. @@ -195,9 +195,9 @@ By default, anyone in a channel who is also a member of your Claude organization | :- | :- | | **Inherit** | Follow the parent scope's setting | | **Allow** | Members can edit channel instructions from the Configure link | -| **Block** | Members can't change channel instructions, the channel's default model, or its [**Respond automatically**](/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off) setting | +| **Block** | Members can't change channel instructions, the channel's default model, or its [**Respond automatically**](https://claude.com/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off) setting | -A chain of scopes that all inherit resolves to **Allow**. Set **Block** on a workspace's page or on the **Slack** page to lock channel instructions across every channel beneath it. A [channel manager](/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) can still edit instructions, change the default model, and switch the **Respond automatically** toggle from the Configure page in a channel assigned to them when **Block** is set. +A chain of scopes that all inherit resolves to **Allow**. Set **Block** on a workspace's page or on the **Slack** page to lock channel instructions across every channel beneath it. A [channel manager](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) can still edit instructions, change the default model, and switch the **Respond automatically** toggle from the Configure page in a channel assigned to them when **Block** is set. ## Verify the bundle is live @@ -208,5 +208,5 @@ Repeat the steps in [Choose where a bundle applies](#attach-the-bundle) for any ## Related resources -* [Getting started for users](/docs/claude-tag/users/getting-started.md): what your team does once the bundle is live -* [Restrict where Claude Tag operates](/docs/claude-tag/admins/restrict-access.md): narrow where it responds +* [Getting started for users](https://claude.com/docs/claude-tag/users/getting-started.md): what your team does once the bundle is live +* [Restrict where Claude Tag operates](https://claude.com/docs/claude-tag/admins/restrict-access.md): narrow where it responds diff --git a/content/claude/claude-tag/admins/attribute-costs.md b/content/claude/claude-tag/admins/attribute-costs.md index 598ce1478..8b88a1055 100644 --- a/content/claude/claude-tag/admins/attribute-costs.md +++ b/content/claude/claude-tag/admins/attribute-costs.md @@ -30,7 +30,7 @@ products[]=claude-tag" \ --header "x-api-key: $ANALYTICS_API_KEY" ``` -`products[]=claude-tag` limits the report to the work that bills to your organization's usage balance: Claude's work in Slack channels, and [DMs from members who haven't connected a Claude account](/docs/claude-tag/admins/restrict-access.md#direct-messages-from-members-without-a-claude-account). One-to-one DMs from members who have connected a Claude account bill to the sender's own seat and aren't reported under `claude-tag`, so this filter leaves them out. +`products[]=claude-tag` limits the report to the work that bills to your organization's usage balance: Claude's work in Slack channels, and [DMs from members who haven't connected a Claude account](https://claude.com/docs/claude-tag/admins/restrict-access.md#direct-messages-from-members-without-a-claude-account). One-to-one DMs from members who have connected a Claude account bill to the sender's own seat and aren't reported under `claude-tag`, so this filter leaves them out. Each row's `claude_tag_user_id` is a Slack user ID such as `U0123ABCDEF`, not a claude.ai user ID. A row with a null `claude_tag_user_id` is channel spend with no attributed user, and [How costs map to users](#how-costs-map-to-users) lists those cases. For the full parameters, response schema, and data freshness, see the [cost report reference](https://platform.claude.com/docs/en/api/admin/analytics/cost/list), which also covers grouping by `slack_channel_id` and `claude_tag_category`. @@ -42,16 +42,16 @@ Channel spend is attributed to at most one Slack user at a time, by these rules: * **Work Claude picks up on its own goes to a person in the thread where it did the work.** That person is the member whose message Claude acted on, if there is one. Otherwise it is whoever mentioned Claude into the thread, or, if no one did, the person who started the thread. * **Scheduled routines go to the person who set the routine up.** * **The null row collects spend with no attributable person.** Examples are: - * the [channel session's](/docs/claude-tag/concepts/how-it-works.md#lifecycle-of-a-request) own work + * the [channel session's](https://claude.com/docs/claude-tag/concepts/how-it-works.md#lifecycle-of-a-request) own work * work Claude started on its own in a thread started by Claude, another app, or a bot * a routine whose creator can't be identified Per-user rows therefore sum to less than your total channel spend. -Per-user attribution doesn't change billing. Channel work still bills to your organization's usage balance, not to any user's seat. See [Set a spend limit](/docs/claude-tag/admins/set-spend-limit.md) for the billing split. +Per-user attribution doesn't change billing. Channel work still bills to your organization's usage balance, not to any user's seat. See [Set a spend limit](https://claude.com/docs/claude-tag/admins/set-spend-limit.md) for the billing split. ## Related resources * [Get cost over time](https://platform.claude.com/docs/en/api/admin/analytics/cost/list): the cost report's parameters, response schema, and limits * [Analytics APIs](https://platform.claude.com/docs/en/manage-claude/analytics-api): key setup, data freshness, and pagination -* [Set a spend limit](/docs/claude-tag/admins/set-spend-limit.md): what bills to the organization's balance versus a user's seat +* [Set a spend limit](https://claude.com/docs/claude-tag/admins/set-spend-limit.md): what bills to the organization's balance versus a user's seat diff --git a/content/claude/claude-tag/admins/audit.md b/content/claude/claude-tag/admins/audit.md index bcc3e9620..70c2c2ffa 100644 --- a/content/claude/claude-tag/admins/audit.md +++ b/content/claude/claude-tag/admins/audit.md @@ -29,13 +29,13 @@ To open the **Activity** page, go to [`claude.ai/admin-settings/claude-tag/audit | :- | :- | | **Scheduled work** | The routines set up in channels across your organization, with a **Scope** filter and a per-row **⋮** menu with actions such as **View details**, **Pause** or **Resume**, and **Delete** | | **Memory** | Each scope's memory files, where you can read what Claude has saved for that workspace or channel. Owners can also edit or delete entries there. | -| **Network events** | An hourly JSON export of the outbound requests Claude made through [Agent Proxy](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). Git and MCP traffic are not included. Select a date and hour to download. | +| **Network events** | An hourly JSON export of the outbound requests Claude made through [Agent Proxy](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). Git and MCP traffic are not included. Select a date and hour to download. | Each routine on the **Scheduled work** tab shows **Created by** (the member who set it up) in its **View details** dialog. There is no per-action log of every task and who asked; for that, use the trails below. ## Trace an action to its source -In channels, Claude acts as itself unless a task uses a member's [personal connectors](/docs/claude-tag/concepts/personal-connectors.md), which run with that member's permissions and are recorded under their name. Each action Claude takes as itself carries the service-account identity: +In channels, Claude acts as itself unless a task uses a member's [personal connectors](https://claude.com/docs/claude-tag/concepts/personal-connectors.md), which run with that member's permissions and are recorded under their name. Each action Claude takes as itself carries the service-account identity: * **In Slack**, it posts as the Claude app, and its work happens in threads anyone in the channel can read. * **On code**, commits and pull requests show the Claude GitHub App as the author, and each one links back to the Slack thread it came from. @@ -53,10 +53,10 @@ Anyone in the channel can see its standing work. Ask in the channel: Claude lists the channel's scheduled jobs and watches, and anyone there can ask it to disable one. -Routines run with the channel's credentials, so the channel listing is also the permission picture. See [proactivity](/docs/claude-tag/users/proactivity.md#manage-standing-work). +Routines run with the channel's credentials, so the channel listing is also the permission picture. See [proactivity](https://claude.com/docs/claude-tag/users/proactivity.md#manage-standing-work). ## Related resources -* [How agent identity works](/docs/claude-tag/concepts/agent-identity.md): how attribution differs in channels and DMs -* [Restrict where Claude Tag operates](/docs/claude-tag/admins/restrict-access.md): the controls when an audit turns something up -* [Security and data handling](/docs/claude-tag/concepts/security-and-data.md): the model behind the trails +* [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md): how attribution differs in channels and DMs +* [Restrict where Claude Tag operates](https://claude.com/docs/claude-tag/admins/restrict-access.md): the controls when an audit turns something up +* [Security and data handling](https://claude.com/docs/claude-tag/concepts/security-and-data.md): the model behind the trails diff --git a/content/claude/claude-tag/admins/configure-github.md b/content/claude/claude-tag/admins/configure-github.md index 6ad590c58..860311c18 100644 --- a/content/claude/claude-tag/admins/configure-github.md +++ b/content/claude/claude-tag/admins/configure-github.md @@ -12,7 +12,7 @@ > [!TIP] > -> Using GitLab instead of GitHub? See [Configure GitLab access](/docs/claude-tag/admins/configure-gitlab.md). GitLab uses a service-account token rather than an installed app. +> Using GitLab instead of GitHub? See [Configure GitLab access](https://claude.com/docs/claude-tag/admins/configure-gitlab.md). GitLab uses a service-account token rather than an installed app. Claude Tag gives Claude its own GitHub identity, the Claude GitHub App, so pull requests it opens from a channel or a DM are authored by Claude rather than by a person. You only need GitHub access if a team will hand Claude code work: branches, pull requests, review, or CI follow-up. @@ -44,7 +44,7 @@ An organization can also be missing from the table because single sign-on (SSO) ## Grant repository access -The remaining steps are in Claude Tag admin settings, not GitHub's settings. Granting repositories requires the **Owner** role or the [**Claude Tag Admin** permission](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) in your Claude organization. A [channel manager](/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) can also add repositories to their own channel, limited to repositories their GitHub account is an admin of. +The remaining steps are in Claude Tag admin settings, not GitHub's settings. Granting repositories requires the **Owner** role or the [**Claude Tag Admin** permission](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) in your Claude organization. A [channel manager](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) can also add repositories to their own channel, limited to repositories their GitHub account is an admin of. The GitHub page, a bundle's page, and a workspace's or channel's own page each offer the repositories the Claude GitHub App's installations reach, so you can grant a repository that no bundle holds yet. Pick repositories for each place on the GitHub page, or put them in a bundle to give a group of places the same set. @@ -70,7 +70,7 @@ To add a repository from a workspace's or channel's own page instead, open the p ### Grant repositories through a bundle -A [bundle](/docs/claude-tag/admins/add-connections.md#create-a-bundle)'s places decide which channels can use the repositories in it. +A [bundle](https://claude.com/docs/claude-tag/admins/add-connections.md#create-a-bundle)'s places decide which channels can use the repositories in it. **1. Open a bundle** @@ -88,7 +88,7 @@ Under **Where it applies**, turn on the switch in the **Slack** row to apply the * The GitHub organization shows as **Connected** in the **GitHub** section at [`claude.ai/admin-settings/source-control`](https://claude.ai/admin-settings/source-control). * On the **Connectors** tab under **Claude's access**, select **GitHub**. Its page shows how many GitHub accounts the Claude GitHub App is installed on. Its **Access from** table lists each repository picked for a place and each repository a bundle holds. The **Set by** column reads **Here** for a repository picked for a place, or names the bundle that holds it, and **Used at** names where each one applies. -* For the end-to-end check, open a draft PR from a test channel; see [Verify the bundle is live](/docs/claude-tag/admins/attach-to-scope.md#verify-the-bundle-is-live). +* For the end-to-end check, open a draft PR from a test channel; see [Verify the bundle is live](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#verify-the-bundle-is-live). ### If Claude can't reach a repository @@ -116,22 +116,22 @@ When Claude clones a granted repository into a session, its Claude Code configur [Hooks](https://code.claude.com/docs/en/hooks) in a repository's `.claude/settings.json` don't run in the session. A repository's `.mcp.json` is never loaded. -Repository skills apply only in sessions that have the repository. To give a skill to every channel under a scope, add it through a [skills repository](/docs/claude-tag/admins/skills-repo.md). +Repository skills apply only in sessions that have the repository. To give a skill to every channel under a scope, add it through a [skills repository](https://claude.com/docs/claude-tag/admins/skills-repo.md). ### Install project dependencies Every session runs in an isolated sandbox with a standard set of preinstalled tools. There are two places to add what a project needs beyond that set, such as a specific language runtime or a database client: -* **For every session in a channel**, an admin adds the install commands to the setup script of the environment the channel's sessions run on. See [Configure the environment for a scope](/docs/claude-tag/admins/customize.md#configure-the-environment-for-a-scope). +* **For every session in a channel**, an admin adds the install commands to the setup script of the environment the channel's sessions run on. See [Configure the environment for a scope](https://claude.com/docs/claude-tag/admins/customize.md#configure-the-environment-for-a-scope). * **For one repository**, add the install commands to the repository's `CLAUDE.md`. Claude follows `CLAUDE.md` as guidance when it starts work that needs it, not as an unconditional setup step. Write each install as a precondition of the work it supports, for example "install the SDK before building or running tests", so Claude runs it when a task touches that code. The sandbox is fresh for every session, so the installs repeat each time Claude works in the repository. -Prefer the standard package manager and its default registry over a vendor install script or a third-party package source. Package managers such as `apt`, `pip`, `npm`, and `dotnet` reach their default registries from the sandbox; downloads from other hosts can be blocked at the sandbox's [egress boundary](/docs/claude-tag/concepts/security-and-data.md#network-egress). An Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) can allow an additional host with a domain entry on a bundle; see [Allow a host without a credential](/docs/claude-tag/admins/add-connections.md#allow-a-host-without-a-credential). +Prefer the standard package manager and its default registry over a vendor install script or a third-party package source. Package managers such as `apt`, `pip`, `npm`, and `dotnet` reach their default registries from the sandbox; downloads from other hosts can be blocked at the sandbox's [egress boundary](https://claude.com/docs/claude-tag/concepts/security-and-data.md#network-egress). An Owner or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) can allow an additional host with a domain entry on a bundle; see [Allow a host without a credential](https://claude.com/docs/claude-tag/admins/add-connections.md#allow-a-host-without-a-credential). ## What Claude can do with GitHub Actions -In a channel, Claude acts on GitHub as the Claude GitHub App, and that identity carries a fixed set of GitHub Actions permissions. No admin setting changes it, and adding `api.github.com` as a [custom connector](/docs/claude-tag/admins/connections/custom.md) with your own token doesn't change it either; Claude's GitHub requests always act as the Claude GitHub App. +In a channel, Claude acts on GitHub as the Claude GitHub App, and that identity carries a fixed set of GitHub Actions permissions. No admin setting changes it, and adding `api.github.com` as a [custom connector](https://claude.com/docs/claude-tag/admins/connections/custom.md) with your own token doesn't change it either; Claude's GitHub requests always act as the Claude GitHub App. Claude can: @@ -179,7 +179,7 @@ Registering a GHE host with your Claude organization isn't fully self-serve. Rai #### GitHub Enterprise Server in direct messages -In a [one-to-one direct message](/docs/claude-tag/concepts/agent-identity.md#direct-message-channels), Claude reaches repositories on a registered host through the sender's own GitHub Enterprise account instead of the bundle's grants. Claude adds a repository to a DM session only when both of these are true: +In a [one-to-one direct message](https://claude.com/docs/claude-tag/concepts/agent-identity.md#direct-message-channels), Claude reaches repositories on a registered host through the sender's own GitHub Enterprise account instead of the bundle's grants. Claude adds a repository to a DM session only when both of these are true: * The sender's GitHub Enterprise account has push access to the repository * Your GitHub App's installation on the instance includes the repository @@ -190,5 +190,5 @@ In channels, Claude uses the repositories granted through bundles, as it does fo ## Related resources -* [Configure per-channel access](/docs/claude-tag/admins/attach-to-scope.md): add the bundle to the workspaces and channels that need it -* [Set up routines](/docs/claude-tag/users/proactivity.md): the scheduled jobs that use this connection +* [Configure per-channel access](https://claude.com/docs/claude-tag/admins/attach-to-scope.md): add the bundle to the workspaces and channels that need it +* [Set up routines](https://claude.com/docs/claude-tag/users/proactivity.md): the scheduled jobs that use this connection diff --git a/content/claude/claude-tag/admins/configure-gitlab.md b/content/claude/claude-tag/admins/configure-gitlab.md index b5e152cc5..fcdf8f2cf 100644 --- a/content/claude/claude-tag/admins/configure-gitlab.md +++ b/content/claude/claude-tag/admins/configure-gitlab.md @@ -12,13 +12,13 @@ Connecting GitLab lets Claude read repository contents, manage issues, review and comment on merge requests, and check pipeline status from any channel where the GitLab connector applies, all through the GitLab API. Unlike GitHub, there is no Claude app to install in GitLab. Instead, you give Claude its own GitLab user and add that user's personal access token as a connector. -The connector is API-only. The token authenticates GitLab API requests, not git, so Claude gets a 401 error when it tries to clone a private project or push to any project over HTTPS, even with the connector in place. To clone a repository into the session workspace, connect it through [GitHub](/docs/claude-tag/admins/configure-github.md) instead. +The connector is API-only. The token authenticates GitLab API requests, not git, so Claude gets a 401 error when it tries to clone a private project or push to any project over HTTPS, even with the connector in place. To clone a repository into the session workspace, connect it through [GitHub](https://claude.com/docs/claude-tag/admins/configure-github.md) instead. A dedicated service account keeps Claude's GitLab activity attributed to a single identity you control. You decide which groups and projects it can reach by granting that account membership the same way you would for a person, and you can revoke or rescope it at any time without touching anyone else's access. ## Prerequisites -* The **Owner** role or the [**Claude Tag Admin** permission](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) in your Claude organization, to add a connector. +* The **Owner** role or the [**Claude Tag Admin** permission](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) in your Claude organization, to add a connector. * Permission in GitLab to create a user (or a [service account](https://docs.gitlab.com/user/profile/service_accounts/) on tiers that offer it) and to add that user to the groups or projects Claude should reach. ## Create a dedicated GitLab account for Claude @@ -50,7 +50,7 @@ Set an expiry that matches your rotation policy, and store the token somewhere y ## Add the token as a connector -The first GitLab token you add from the **Connectors** tab is on in every workspace and channel as soon as you save it. To add GitLab for only the channels a bundle covers, add it from the bundle's page under **What's in it** instead; see [Create a bundle](/docs/claude-tag/admins/add-connections.md#create-a-bundle). To add it for one workspace or channel, [connect it from that place's page](/docs/claude-tag/admins/add-connections.md#connect-a-service-for-one-workspace-or-channel). +The first GitLab token you add from the **Connectors** tab is on in every workspace and channel as soon as you save it. To add GitLab for only the channels a bundle covers, add it from the bundle's page under **What's in it** instead; see [Create a bundle](https://claude.com/docs/claude-tag/admins/add-connections.md#create-a-bundle). To add it for one workspace or channel, [connect it from that place's page](https://claude.com/docs/claude-tag/admins/add-connections.md#connect-a-service-for-one-workspace-or-channel). **1. Open the Connectors tab** @@ -62,13 +62,13 @@ Search for **GitLab** and select it. Paste the token into **Claude’s personal **3. Choose where GitLab applies** -If this is GitLab's first token, GitLab is now on in every workspace and channel. A later token starts off everywhere until you pick its places under **Assign access** on GitLab's page. To use GitLab in only some channels, [restrict it on GitLab's page](/docs/claude-tag/admins/add-connections.md#restrict-a-connector-to-some-channels). +If this is GitLab's first token, GitLab is now on in every workspace and channel. A later token starts off everywhere until you pick its places under **Assign access** on GitLab's page. To use GitLab in only some channels, [restrict it on GitLab's page](https://claude.com/docs/claude-tag/admins/add-connections.md#restrict-a-connector-to-some-channels). **4. Add the GitLab plugin** -If your organization's plugin library includes a GitLab plugin, add it where GitLab applies so Claude knows how to call the GitLab API. See [Attach plugins](/docs/claude-tag/admins/add-connections.md#attach-plugins). The connector works without the plugin, which adds ready-made workflows. +If your organization's plugin library includes a GitLab plugin, add it where GitLab applies so Claude knows how to call the GitLab API. See [Attach plugins](https://claude.com/docs/claude-tag/admins/add-connections.md#attach-plugins). The connector works without the plugin, which adds ready-made workflows. -The token is held by [Agent Proxy](/docs/claude-tag/concepts/agent-identity.md#agent-proxy) and injected on every API request to your GitLab host. The model and the session sandbox never see it. +The token is held by [Agent Proxy](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy) and injected on every API request to your GitLab host. The model and the session sandbox never see it. ## Self-managed GitLab @@ -82,6 +82,6 @@ Self-managed GitLab instances are supported when reachable from the public inter ## Related resources -* [Connect GitLab](/docs/claude-tag/admins/connections/gitlab.md): the credential field reference and how GitLab differs from GitHub -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the full connector and bundle reference -* [Configure GitHub access](/docs/claude-tag/admins/configure-github.md): the GitHub App path, which is different +* [Connect GitLab](https://claude.com/docs/claude-tag/admins/connections/gitlab.md): the credential field reference and how GitLab differs from GitHub +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the full connector and bundle reference +* [Configure GitHub access](https://claude.com/docs/claude-tag/admins/configure-github.md): the GitHub App path, which is different diff --git a/content/claude/claude-tag/admins/connections/amplitude.md b/content/claude/claude-tag/admins/connections/amplitude.md index 8abebc55e..5d00fccd6 100644 --- a/content/claude/claude-tag/admins/connections/amplitude.md +++ b/content/claude/claude-tag/admins/connections/amplitude.md @@ -14,7 +14,7 @@ Connecting Amplitude lets Claude answer product-analytics questions, such as fun You can connect with a project API key and secret key, which you can limit to read requests, or by signing in as an Amplitude user, which gives Claude Amplitude's MCP tools for creating and editing content as well as reading it. -For the API key route, pair the connector with a plugin that covers Amplitude so Claude knows how to call the REST API. Add the plugin on the [**Skills and plugins**](https://claude.ai/admin-settings/claude-tag?access=plugins) tab. A member's own Amplitude connector on claude.ai is separate from this connector and applies in one-to-one DMs. Claude can also [use that connector in a channel](/docs/claude-tag/concepts/personal-connectors.md) for that member's own tasks, after the member allows it. +For the API key route, pair the connector with a plugin that covers Amplitude so Claude knows how to call the REST API. Add the plugin on the [**Skills and plugins**](https://claude.ai/admin-settings/claude-tag?access=plugins) tab. A member's own Amplitude connector on claude.ai is separate from this connector and applies in one-to-one DMs. Claude can also [use that connector in a channel](https://claude.com/docs/claude-tag/concepts/personal-connectors.md) for that member's own tasks, after the member allows it. ## Choose an API key or Amplitude sign-in @@ -77,7 +77,7 @@ Under **Where it applies**, click **Add place**, choose a workspace or channel u Amplitude rate-limits these APIs per project, with a cap on concurrent requests and an hourly budget in which queries that span more days or segments cost more. Claude's queries draw on the same budget as your project's other API clients. If Claude reports that Amplitude returned a rate-limit error (HTTP 429), narrow the date range, drop a group-by, or ask again later. Amplitude's [Dashboard REST API documentation](https://amplitude.com/docs/apis/analytics/dashboard-rest) lists the current limits. -The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). +The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). ## Add the connector with Amplitude sign-in @@ -95,7 +95,7 @@ Go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/ad The **Sign in to Amplitude as Claude** option shows the MCP server the sign-in grants access to, `https://mcp.amplitude.com/mcp`, and the form sets the connector's allowed host to that server for you. -The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](/docs/claude-tag/admins/add-connections.md#add-a-connection) before you sign in. +The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection) before you sign in. Click **Sign in with Amplitude** at the bottom of the form. A sign-in window opens. If your browser blocks pop-ups, allow them for claude.ai and click **Sign in with Amplitude** again. Sign in to Amplitude as the dedicated user and approve access. When the sign-in completes and the window closes, the connector is saved and Amplitude's connector page opens, with the new credential marked **New**. @@ -113,7 +113,7 @@ With either route, Claude replies with event types from Amplitude once the conne ## Related resources -* [Answer data questions](/docs/claude-tag/users/use-cases/answer-data-questions.md): the question-to-chart pattern in a Slack thread, shown there with a data warehouse -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference -* [Connect a custom service](/docs/claude-tag/admins/connections/custom.md): for Amplitude APIs the **Amplitude** entry doesn't cover, such as the User Profile API, which lives on `profile-api.amplitude.com` and authenticates with a different header +* [Answer data questions](https://claude.com/docs/claude-tag/users/use-cases/answer-data-questions.md): the question-to-chart pattern in a Slack thread, shown there with a data warehouse +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference +* [Connect a custom service](https://claude.com/docs/claude-tag/admins/connections/custom.md): for Amplitude APIs the **Amplitude** entry doesn't cover, such as the User Profile API, which lives on `profile-api.amplitude.com` and authenticates with a different header * Amplitude's [API authentication](https://amplitude.com/docs/apis/authentication), [API key and secret key management](https://amplitude.com/docs/admin/account-management/manage-your-api-keys-and-secret-keys), and [Amplitude MCP](https://amplitude.com/docs/amplitude-ai/amplitude-mcp) documentation diff --git a/content/claude/claude-tag/admins/connections/asana.md b/content/claude/claude-tag/admins/connections/asana.md index ff37eada8..94b243e37 100644 --- a/content/claude/claude-tag/admins/connections/asana.md +++ b/content/claude/claude-tag/admins/connections/asana.md @@ -29,9 +29,9 @@ Go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/ad | Claude's personal access token | The personal access token from Asana | | Allowed websites | `app.asana.com` (preset) | -If the connect form offers to include the Asana plugin, leave that box selected; otherwise add the plugin on the [**Skills and plugins**](https://claude.ai/admin-settings/claude-tag?access=plugins) tab. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. +If the connect form offers to include the Asana plugin, leave that box selected; otherwise add the plugin on the [**Skills and plugins**](https://claude.ai/admin-settings/claude-tag?access=plugins) tab. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. -The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). +The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). ## Verify the connection @@ -45,5 +45,5 @@ Asana appears in the list once the connector is live. New threads pick up the co ## Related resources -* [What this connection adds](/docs/claude-tag/users/use-cases/track-projects.md): the issue tracking use cases -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference +* [What this connection adds](https://claude.com/docs/claude-tag/users/use-cases/track-projects.md): the issue tracking use cases +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference diff --git a/content/claude/claude-tag/admins/connections/atlassian.md b/content/claude/claude-tag/admins/connections/atlassian.md index ba53d55ff..2a004dc26 100644 --- a/content/claude/claude-tag/admins/connections/atlassian.md +++ b/content/claude/claude-tag/admins/connections/atlassian.md @@ -30,13 +30,13 @@ If your organization requires tokens with scopes, see [Connect a token with scop Go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/admin-settings/claude-tag?access=connectors), click **Add**, and select **Jira & Confluence**. Leave **Paste an API key** selected and click **Continue to Jira & Confluence**. -In the connect form, with **Use an API token** selected, enter the dedicated account's email address, the API token from Atlassian, and your own site's hostname, such as `your-domain.atlassian.net`. Claude sends the token only to that site. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. +In the connect form, with **Use an API token** selected, enter the dedicated account's email address, the API token from Atlassian, and your own site's hostname, such as `your-domain.atlassian.net`. Claude sends the token only to that site. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. -The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). +The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). > [!NOTE] > -> Atlassian Data Center (self-hosted) isn't covered by the **Jira & Confluence** entry because it authenticates with a personal access token sent as a Bearer header. Add a Data Center instance as a [custom connector](/docs/claude-tag/admins/connections/custom.md) with the **Bearer** credential type and your instance's hostname under **Allowed websites**. The instance must be reachable from the public internet. +> Atlassian Data Center (self-hosted) isn't covered by the **Jira & Confluence** entry because it authenticates with a personal access token sent as a Bearer header. Add a Data Center instance as a [custom connector](https://claude.com/docs/claude-tag/admins/connections/custom.md) with the **Bearer** credential type and your instance's hostname under **Allowed websites**. The instance must be reachable from the public internet. ## Connect a token with scopes through the Atlassian gateway @@ -48,7 +48,7 @@ Go to [**Organization settings > Claude Tag > Bundles**](https://claude.ai/admin **2. Add the gateway connector** -Under **What's in it**, click **Add**, select **Connector**, and select **Custom connector**. In the [custom connector](/docs/claude-tag/admins/connections/custom.md) form, enter a **Name**, choose the **Basic** credential type, enter the dedicated account's email as the **Username** and the API token as the **Password**, and enter `api.atlassian.com` under **Allowed websites**. Click **Connect** to save the connector. +Under **What's in it**, click **Add**, select **Connector**, and select **Custom connector**. In the [custom connector](https://claude.com/docs/claude-tag/admins/connections/custom.md) form, enter a **Name**, choose the **Basic** credential type, enter the dedicated account's email as the **Username** and the API token as the **Password**, and enter `api.atlassian.com` under **Allowed websites**. Click **Connect** to save the connector. **3. Limit the credential to your site's paths** @@ -72,5 +72,5 @@ New threads pick up the connector on their own; in an existing thread, ask Claud ## Related resources -* [Custom connector](/docs/claude-tag/admins/connections/custom.md): for a setup the **Jira & Confluence** entry doesn't cover, such as a self-hosted Data Center instance -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the full connection model and how to scope a dedicated account +* [Custom connector](https://claude.com/docs/claude-tag/admins/connections/custom.md): for a setup the **Jira & Confluence** entry doesn't cover, such as a self-hosted Data Center instance +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the full connection model and how to scope a dedicated account diff --git a/content/claude/claude-tag/admins/connections/bigquery.md b/content/claude/claude-tag/admins/connections/bigquery.md index 7be58bca2..e94265c92 100644 --- a/content/claude/claude-tag/admins/connections/bigquery.md +++ b/content/claude/claude-tag/admins/connections/bigquery.md @@ -29,11 +29,11 @@ Together the two grants let Claude run read-only queries against those datasets. ## Add the connector -Go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/admin-settings/claude-tag?access=connectors), click **Add**, and select **BigQuery**. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. In the connect form, paste the whole JSON key file from Google Cloud Console into **Claude's service account key (JSON)**, then click **Connect** to save the connector. +Go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/admin-settings/claude-tag?access=connectors), click **Add**, and select **BigQuery**. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. In the connect form, paste the whole JSON key file from Google Cloud Console into **Claude's service account key (JSON)**, then click **Connect** to save the connector. The access tokens Claude gets from this key carry only Google's `cloud-platform.read-only` scope, so Google refuses BigQuery API calls that create or delete tables or run load jobs. Queries still run with whatever the service account's roles allow, so the [dataset roles](#grant-access-to-specific-datasets) decide what a query can reach. -Agent Proxy exchanges the service-account key for an access token and injects it at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). +Agent Proxy exchanges the service-account key for an access token and injects it at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). ## Verify the connection @@ -55,7 +55,7 @@ Then confirm a query runs against a dataset you granted: If the Google Cloud project that holds your BigQuery data is inside a [VPC Service Controls](https://cloud.google.com/vpc-service-controls/docs/overview) perimeter, Claude's queries fail with `Request is prohibited by organization's policy` and a `vpcServiceControlsUniqueIdentifier` in the error details. To let them through, add an ingress rule that admits the [service account you created for Claude](#create-the-credential-in-google-cloud). -If you allowlist [Anthropic's published egress IP range](/docs/claude-tag/admins/network-requirements.md) in an access level, Claude's queries still fail, because they reach your perimeter from inside Google Cloud rather than from that range. The source your perimeter sees is a Google Cloud project that Anthropic owns and can change without notice, so don't admit that project by its number. +If you allowlist [Anthropic's published egress IP range](https://claude.com/docs/claude-tag/admins/network-requirements.md) in an access level, Claude's queries still fail, because they reach your perimeter from inside Google Cloud rather than from that range. The source your perimeter sees is a Google Cloud project that Anthropic owns and can change without notice, so don't admit that project by its number. Add an [ingress rule](https://cloud.google.com/vpc-service-controls/docs/ingress-egress-rules) to the perimeter with these settings: @@ -69,9 +69,9 @@ To confirm the rule works, ask Claude to run the query that failed. The query re The ingress rule lets requests authenticated as the service account you created for Claude cross the perimeter, and only to reach BigQuery in the project the rule names. It doesn't give the service account access to any data. The [dataset roles you granted](#grant-access-to-specific-datasets) still decide which datasets Claude can read, so keep those grants narrow. -Once the connection works, delete the key file that Google Cloud downloaded to your machine when you created the key. With this rule in place, the perimeter doesn't stop a leaked key for this service account, because a request authenticated with any of the account's valid keys passes the rule from any source. [Agent Proxy](/docs/claude-tag/concepts/agent-identity.md#agent-proxy) holds the key you uploaded and Claude never sees it. To limit that risk further, don't create more keys for the service account. +Once the connection works, delete the key file that Google Cloud downloaded to your machine when you created the key. With this rule in place, the perimeter doesn't stop a leaked key for this service account, because a request authenticated with any of the account's valid keys passes the rule from any source. [Agent Proxy](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy) holds the key you uploaded and Claude never sees it. To limit that risk further, don't create more keys for the service account. ## Related resources -* [What this connection adds](/docs/claude-tag/users/use-cases/answer-data-questions.md): warehouse questions answered with charts in the thread -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference +* [What this connection adds](https://claude.com/docs/claude-tag/users/use-cases/answer-data-questions.md): warehouse questions answered with charts in the thread +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference diff --git a/content/claude/claude-tag/admins/connections/custom.md b/content/claude/claude-tag/admins/connections/custom.md index d9acdac41..5813b59f4 100644 --- a/content/claude/claude-tag/admins/connections/custom.md +++ b/content/claude/claude-tag/admins/connections/custom.md @@ -10,13 +10,13 @@ > > Claude Tag is in public beta. Features and behavior described here may change before general availability. -For a service that isn't in the **Add a connector** list, add a custom connector. This works for any service with an HTTP API. The [BigQuery](/docs/claude-tag/admins/connections/bigquery.md) guide is a worked example. +For a service that isn't in the **Add a connector** list, add a custom connector. This works for any service with an HTTP API. The [BigQuery](https://claude.com/docs/claude-tag/admins/connections/bigquery.md) guide is a worked example. To open the form, go to [**Organization settings > Claude Tag**](https://claude.ai/admin-settings/claude-tag). Under **Claude's access**, select the **Connectors** tab, click **Add**, and select **Custom connector** at the bottom of the list. A connector added there for a host that isn't on the **Connectors** tab yet is on in every workspace and channel once you save it. For a host already listed under **Custom hosts**, the new credential starts off everywhere until you choose where it applies. For narrower reach: -* **Some channels**: [restrict it on its page](/docs/claude-tag/admins/add-connections.md#restrict-a-connector-to-some-channels). -* **One workspace or channel**: on that place's page, click **Add** under **Claude's access**, select **Connector**, select **Custom connector** under **Connect new** on the **Connectors** tab, and click **Continue**. See [Connect a service for one workspace or channel](/docs/claude-tag/admins/add-connections.md#connect-a-service-for-one-workspace-or-channel). -* **The places a bundle applies**: add it to the [bundle](/docs/claude-tag/admins/add-connections.md#create-a-bundle). Open the bundle's page, and under **What's in it** click **Add**, choose **Connector**, and select **Custom connector**. +* **Some channels**: [restrict it on its page](https://claude.com/docs/claude-tag/admins/add-connections.md#restrict-a-connector-to-some-channels). +* **One workspace or channel**: on that place's page, click **Add** under **Claude's access**, select **Connector**, select **Custom connector** under **Connect new** on the **Connectors** tab, and click **Continue**. See [Connect a service for one workspace or channel](https://claude.com/docs/claude-tag/admins/add-connections.md#connect-a-service-for-one-workspace-or-channel). +* **The places a bundle applies**: add it to the [bundle](https://claude.com/docs/claude-tag/admins/add-connections.md#create-a-bundle). Open the bundle's page, and under **What's in it** click **Add**, choose **Connector**, and select **Custom connector**. ## Add a custom HTTP API @@ -26,7 +26,7 @@ To open the form, go to [**Organization settings > Claude Tag**](https://claude. * The API host (for example `api.example.com`) * How the API authenticates (which header or flow it expects) -See [Create a dedicated account per service](/docs/claude-tag/admins/add-connections.md#create-a-dedicated-account-per-service) for the service-account patterns. +See [Create a dedicated account per service](https://claude.com/docs/claude-tag/admins/add-connections.md#create-a-dedicated-account-per-service) for the service-account patterns. ### Fill out the custom connector form @@ -34,11 +34,11 @@ See [Create a dedicated account per service](/docs/claude-tag/admins/add-connect | :- | :- | | **Name** | A label for this connector (for example "Internal billing API") | | **Credential type** | Pick the type that matches how the API authenticates; see [Credential types](#credential-types) | -| **Allowed websites** | The API's host (for example `api.example.com`). A wildcard is allowed as the leftmost label. You can't enter `*` alone here; a credential is always limited to specific hosts (see [Allow all hosts](/docs/claude-tag/admins/add-connections.md#allow-all-hosts)). The credential is sent only to hosts you list here. | +| **Allowed websites** | The API's host (for example `api.example.com`). A wildcard is allowed as the leftmost label. You can't enter `*` alone here; a credential is always limited to specific hosts (see [Allow all hosts](https://claude.com/docs/claude-tag/admins/add-connections.md#allow-all-hosts)). The credential is sent only to hosts you list here. | | **Path prefixes** (optional) | Restrict the credential to specific URL paths under the host. For the MCP Connector type, shown only when the provider you pick doesn't fix its own hosts and paths. | | **Custom headers** | Any extra headers the API requires beyond the credential. Shown only for the Bearer credential type. | -After saving, where the credential has an allow rule, you can narrow it by HTTP method and path from its **Edit connection** dialog, opened from **Edit** in the credential's row menu on the connector's page; see [Restrict by path or method](/docs/claude-tag/admins/add-connections.md#restrict-by-path-or-method). To narrow a credential before any channel can use it, add the connector to a new [bundle](/docs/claude-tag/admins/add-connections.md#create-a-bundle), select **Edit** from the menu on its row under **What's in it**, and add the bundle's places last. +After saving, where the credential has an allow rule, you can narrow it by HTTP method and path from its **Edit connection** dialog, opened from **Edit** in the credential's row menu on the connector's page; see [Restrict by path or method](https://claude.com/docs/claude-tag/admins/add-connections.md#restrict-by-path-or-method). To narrow a credential before any channel can use it, add the connector to a new [bundle](https://claude.com/docs/claude-tag/admins/add-connections.md#create-a-bundle), select **Edit** from the menu on its row under **What's in it**, and add the bundle's places last. ### Credential types @@ -52,13 +52,13 @@ After saving, where the credential has an allow rule, you can narrow it by HTTP | **GCP IAP (with Service Account Key)** | Google Cloud services behind Identity-Aware Proxy | | **OAuth 2.0 JWT bearer** | APIs that accept a JWT signed with your private key in exchange for an access token (DocuSign, for example) | | **OAuth 2.0 client credentials** | Machine-to-machine OAuth with a client ID and secret | -| **MCP Connector** | OAuth sign-in to one of the providers in the picker or to a [remote MCP connector](/docs/connectors/custom/add-unlisted.md) your organization has added on claude.ai. Sign in once as an admin; the agent acts as that account. Other OAuth APIs can't be connected this way. | +| **MCP Connector** | OAuth sign-in to one of the providers in the picker or to a [remote MCP connector](https://claude.com/docs/connectors/custom/add-unlisted.md) your organization has added on claude.ai. Sign in once as an admin; the agent acts as that account. Other OAuth APIs can't be connected this way. | > [!NOTE] > > The **MCP Connector** type signs in to a connector from your organization's connector library. If you register a new connector from this form with **Add custom connector…**, that connector is added to the library on the **Connectors** page at [`claude.ai/admin-settings/connectors`](https://claude.ai/admin-settings/connectors), not only to Claude Tag. Removing the Claude Tag connector later leaves the library entry in place. -For GitHub repositories, use the Claude GitHub App at [Configure GitHub access](/docs/claude-tag/admins/configure-github.md) rather than a credential from this table. +For GitHub repositories, use the Claude GitHub App at [Configure GitHub access](https://claude.com/docs/claude-tag/admins/configure-github.md) rather than a credential from this table. If you're unsure which type, check the service's API authentication docs for which header or flow it expects. @@ -84,7 +84,7 @@ Requests to other hostnames fail before reaching AWS. Agent Proxy can't sign a r Use long-lived credentials from a dedicated IAM user where you can. Temporary STS credentials work but expire on their own schedule, and the connector stops working when they do; you re-enter all three values to rotate. -Claude can call the endpoint with `curl`, an AWS SDK, or the AWS CLI. The sandbox holds no real AWS credentials, so a CLI or SDK signs the request with placeholder values; Agent Proxy strips that signature and re-signs with the stored credential before the request leaves for AWS. If a request comes back with HTTP 502 and a reason that begins `injection failed ("")`, Agent Proxy couldn't sign it. The troubleshooting entry [An AWS request fails after a successful sign-in](/docs/claude-tag/admins/federated-access/troubleshooting.md#an-aws-request-fails-after-a-successful-sign-in) lists each cause the reason text names and its fix; the causes and fixes are the same for a connector that stores an access key. +Claude can call the endpoint with `curl`, an AWS SDK, or the AWS CLI. The sandbox holds no real AWS credentials, so a CLI or SDK signs the request with placeholder values; Agent Proxy strips that signature and re-signs with the stored credential before the request leaves for AWS. If a request comes back with HTTP 502 and a reason that begins `injection failed ("")`, Agent Proxy couldn't sign it. The troubleshooting entry [An AWS request fails after a successful sign-in](https://claude.com/docs/claude-tag/admins/federated-access/troubleshooting.md#an-aws-request-fails-after-a-successful-sign-in) lists each cause the reason text names and its fix; the causes and fixes are the same for a connector that stores an access key. #### When AWS returns `SignatureDoesNotMatch` @@ -99,7 +99,7 @@ A dropped or expired session token is a different failure: AWS rejects it with a ### OAuth 2.0 JWT bearer -Use the **OAuth 2.0 JWT bearer** credential type for APIs that exchange a JWT signed with your private key for an access token. The [Salesforce guide](/docs/claude-tag/admins/connections/salesforce.md) is a worked example. +Use the **OAuth 2.0 JWT bearer** credential type for APIs that exchange a JWT signed with your private key for an access token. The [Salesforce guide](https://claude.com/docs/claude-tag/admins/connections/salesforce.md) is a worked example. The **Private key (PEM)** field takes a PEM-encoded RSA private key without a passphrase, the format that begins with `-----BEGIN PRIVATE KEY-----` or `-----BEGIN RSA PRIVATE KEY-----`. Identity providers such as Okta export the key as a JWK (a JSON object) by default; convert a JWK to PEM before pasting it. The form doesn't check the key's format, so a key in the wrong format fails only when you save. @@ -111,13 +111,13 @@ Saving also fails when a PEM-encoded key isn't an RSA key or has a passphrase. O ## Add a custom MCP server -The server must be a remote endpoint that Claude can reach at a URL over the internet. An MCP server that runs on a person's machine over stdio, including one packaged as a [desktop extension](/docs/connectors/custom/add-unlisted.md#install-a-local-connector-in-the-desktop-app), can't be connected, because [sessions](/docs/claude-tag/concepts/glossary.md#session) run in a cloud sandbox that Anthropic hosts, not on anyone's machine. Host the server as a remote endpoint first, then follow the steps below. +The server must be a remote endpoint that Claude can reach at a URL over the internet. An MCP server that runs on a person's machine over stdio, including one packaged as a [desktop extension](https://claude.com/docs/connectors/custom/add-unlisted.md#install-a-local-connector-in-the-desktop-app), can't be connected, because [sessions](https://claude.com/docs/claude-tag/concepts/glossary.md#session) run in a cloud sandbox that Anthropic hosts, not on anyone's machine. Host the server as a remote endpoint first, then follow the steps below. To give Claude an MCP server (one you run, or a vendor's hosted MCP endpoint), the pattern is a plugin plus a credential: **1. Add a plugin that declares the MCP server** -Add a plugin whose `.mcp.json` points at the server URL, from your organization's library or your [skills repository](/docs/claude-tag/admins/skills-repo.md), wherever the server should be available; see [Attach plugins](/docs/claude-tag/admins/add-connections.md#attach-plugins). The plugin tells Claude the server exists and how to call it. +Add a plugin whose `.mcp.json` points at the server URL, from your organization's library or your [skills repository](https://claude.com/docs/claude-tag/admins/skills-repo.md), wherever the server should be available; see [Attach plugins](https://claude.com/docs/claude-tag/admins/add-connections.md#attach-plugins). The plugin tells Claude the server exists and how to call it. **2. Add a credential for the server's host** @@ -135,10 +135,10 @@ In a channel where the connector applies, in a new thread, ask Claude to make a Check the service's own audit log to confirm the call landed under your service account. New threads pick up the connector on their own. -If Claude reports that it can't use the credential, open the connector from the **Connectors** tab, where custom connectors are listed under **Custom hosts**. In its **Access from** table, **Not enabled** means no allow rule sends the credential yet; click **Enable** and confirm. A credential a teammate submitted through a setup link waits on the **Requests** tab of [**Notifications**](https://claude.ai/admin-settings/notifications) as **Approval needed**; click **Review**, then **Approve**. See [Verify the connector saved](/docs/claude-tag/admins/add-connections.md#verify-the-connector-saved). +If Claude reports that it can't use the credential, open the connector from the **Connectors** tab, where custom connectors are listed under **Custom hosts**. In its **Access from** table, **Not enabled** means no allow rule sends the credential yet; click **Enable** and confirm. A credential a teammate submitted through a setup link waits on the **Requests** tab of [**Notifications**](https://claude.ai/admin-settings/notifications) as **Approval needed**; click **Review**, then **Approve**. See [Verify the connector saved](https://claude.com/docs/claude-tag/admins/add-connections.md#verify-the-connector-saved). ## Related resources -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the full connector model -* [Allow a host without a credential](/docs/claude-tag/admins/add-connections.md#allow-a-host-without-a-credential): for public APIs that need no auth -* [Allow all hosts](/docs/claude-tag/admins/add-connections.md#allow-all-hosts): the egress option that lets Claude reach any public host without a credential +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the full connector model +* [Allow a host without a credential](https://claude.com/docs/claude-tag/admins/add-connections.md#allow-a-host-without-a-credential): for public APIs that need no auth +* [Allow all hosts](https://claude.com/docs/claude-tag/admins/add-connections.md#allow-all-hosts): the egress option that lets Claude reach any public host without a credential diff --git a/content/claude/claude-tag/admins/connections/datadog.md b/content/claude/claude-tag/admins/connections/datadog.md index e5357c865..1c254efc3 100644 --- a/content/claude/claude-tag/admins/connections/datadog.md +++ b/content/claude/claude-tag/admins/connections/datadog.md @@ -42,11 +42,11 @@ Every entry asks for the same fields in the connect form. | Claude's application key | The Application key from Datadog. Optional in the form; add it so Claude can read metrics, monitors, and dashboards | | Allowed websites | The entry's API host (preset) | -If the connect form offers to include the Datadog plugin, leave that box selected; otherwise add the plugin on the [**Skills and plugins**](https://claude.ai/admin-settings/claude-tag?access=plugins) tab. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. +If the connect form offers to include the Datadog plugin, leave that box selected; otherwise add the plugin on the [**Skills and plugins**](https://claude.ai/admin-settings/claude-tag?access=plugins) tab. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. -The connector is created with path prefixes that cover Datadog's read and query routes: metric, log, trace, and RUM queries, monitors, downtimes, dashboards, SLOs, notebooks, events, hosts, service definitions, and incident search. It doesn't cover Datadog's key, user, integration, or log-configuration management routes, so Claude can't call those through it. To narrow the connector further, for example to `GET` only, or to allow another route, go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/admin-settings/claude-tag?access=connectors), click your Datadog connector, open the menu on the credential's row in the **Access from** table, and click **Edit**. See [Restrict by path or method](/docs/claude-tag/admins/add-connections.md#restrict-by-path-or-method). +The connector is created with path prefixes that cover Datadog's read and query routes: metric, log, trace, and RUM queries, monitors, downtimes, dashboards, SLOs, notebooks, events, hosts, service definitions, and incident search. It doesn't cover Datadog's key, user, integration, or log-configuration management routes, so Claude can't call those through it. To narrow the connector further, for example to `GET` only, or to allow another route, go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/admin-settings/claude-tag?access=connectors), click your Datadog connector, open the menu on the credential's row in the **Access from** table, and click **Edit**. See [Restrict by path or method](https://claude.com/docs/claude-tag/admins/add-connections.md#restrict-by-path-or-method). -The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). +The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). ## Verify the connection @@ -60,5 +60,5 @@ Datadog appears in the list once the connector is live. New threads pick up the ## Related resources -* [What this connection adds](/docs/claude-tag/users/use-cases/watch-monitors.md): the monitoring use cases -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference +* [What this connection adds](https://claude.com/docs/claude-tag/users/use-cases/watch-monitors.md): the monitoring use cases +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference diff --git a/content/claude/claude-tag/admins/connections/gitlab.md b/content/claude/claude-tag/admins/connections/gitlab.md index e24e05b6b..ed4b7faca 100644 --- a/content/claude/claude-tag/admins/connections/gitlab.md +++ b/content/claude/claude-tag/admins/connections/gitlab.md @@ -14,7 +14,7 @@ Connecting GitLab lets Claude read and search projects, manage issues, comment o > [!TIP] > -> This page is the credential field reference. The full setup walkthrough, including creating a dedicated GitLab service account for Claude and scoping its group access, is at [Configure GitLab access](/docs/claude-tag/admins/configure-gitlab.md). +> This page is the credential field reference. The full setup walkthrough, including creating a dedicated GitLab service account for Claude and scoping its group access, is at [Configure GitLab access](https://claude.com/docs/claude-tag/admins/configure-gitlab.md). If your plugin marketplace includes a GitLab plugin, pair it with this connector so Claude knows how to call the API. Add the plugin on the [**Skills and plugins**](https://claude.ai/admin-settings/claude-tag?access=plugins) tab. The connector works without it. @@ -22,11 +22,11 @@ If your plugin marketplace includes a GitLab plugin, pair it with this connector **1. Create the token in GitLab** -A personal access token from a [dedicated service account](/docs/claude-tag/admins/configure-gitlab.md#create-a-dedicated-gitlab-account-for-claude) is recommended, so one identity covers every group you add it to. Project and group access tokens also work if you only need a single project or group. Grant the `api` scope for read and write, or `read_api` for read-only. The token starts with `glpat-`. +A personal access token from a [dedicated service account](https://claude.com/docs/claude-tag/admins/configure-gitlab.md#create-a-dedicated-gitlab-account-for-claude) is recommended, so one identity covers every group you add it to. Project and group access tokens also work if you only need a single project or group. Grant the `api` scope for read and write, or `read_api` for read-only. The token starts with `glpat-`. **2. Add the connector** -Go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/admin-settings/claude-tag?access=connectors), click **Add**, select **GitLab**, and paste the token. For self-managed GitLab, switch to the form's **Advanced** tab and add your instance's hostname under **Allowed websites**. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. +Go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/admin-settings/claude-tag?access=connectors), click **Add**, select **GitLab**, and paste the token. For self-managed GitLab, switch to the form's **Advanced** tab and add your instance's hostname under **Allowed websites**. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. **You'll see:** GitLab on the **Connectors** tab, and `@Claude what can you access from this channel?` returns it in a new thread in any channel where the connector is on. New threads pick up the connector on their own; in an existing thread, ask Claude to use the service by name. @@ -41,16 +41,16 @@ GitLab's own guide for creating tokens is at [docs.gitlab.com](https://docs.gitl | | GitLab | GitHub | | :- | :- | :- | -| Auth | A service account's personal access token | The Claude GitHub App, [installed separately](/docs/claude-tag/admins/configure-github.md) | +| Auth | A service account's personal access token | The Claude GitHub App, [installed separately](https://claude.com/docs/claude-tag/admins/configure-github.md) | | Referencing a project in a thread | Give Claude the full project URL; it reads it through the API | Typing `owner/repo` in the message auto-attaches it | -| Self-managed | Your hostname under **Advanced > Allowed websites** | [GitHub Enterprise setup](/docs/claude-tag/admins/configure-github.md#github-enterprise) | -| Handing back changes | Manages issues and comments on merge requests through the API | [Draft pull requests](/docs/claude-tag/users/use-cases/work-with-github.md) authored by the Claude GitHub App | +| Self-managed | Your hostname under **Advanced > Allowed websites** | [GitHub Enterprise setup](https://claude.com/docs/claude-tag/admins/configure-github.md#github-enterprise) | +| Handing back changes | Manages issues and comments on merge requests through the API | [Draft pull requests](https://claude.com/docs/claude-tag/users/use-cases/work-with-github.md) authored by the Claude GitHub App | -The connector is API-only. The token authenticates GitLab API requests, not git, so Claude gets a 401 error when it tries to clone a private project or push to any project over HTTPS, even with the connector in place. To clone a repository into the session workspace, connect it through [GitHub](/docs/claude-tag/admins/configure-github.md) instead. +The connector is API-only. The token authenticates GitLab API requests, not git, so Claude gets a 401 error when it tries to clone a private project or push to any project over HTTPS, even with the connector in place. To clone a repository into the session workspace, connect it through [GitHub](https://claude.com/docs/claude-tag/admins/configure-github.md) instead. -The token is auto-injected on every API request to your GitLab host. The model and the sandbox are not given the key; see [how Agent Proxy works](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). +The token is auto-injected on every API request to your GitLab host. The model and the sandbox are not given the key; see [how Agent Proxy works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). ## Related resources -* [Configure GitHub access](/docs/claude-tag/admins/configure-github.md): the GitHub App path, which is different -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference +* [Configure GitHub access](https://claude.com/docs/claude-tag/admins/configure-github.md): the GitHub App path, which is different +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference diff --git a/content/claude/claude-tag/admins/connections/gong.md b/content/claude/claude-tag/admins/connections/gong.md index 5a0f96557..b8144d16a 100644 --- a/content/claude/claude-tag/admins/connections/gong.md +++ b/content/claude/claude-tag/admins/connections/gong.md @@ -34,9 +34,9 @@ Go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/ad Gong assigns each company its own API base URL, like `us-46459.api.gong.io`. Copy yours from **Company Settings > Ecosystem > API** in Gong, then switch to the connect form's **Advanced** tab and enter it under **Allowed websites**. -The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. +The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. -The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). +The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). ## Verify the connection @@ -50,5 +50,5 @@ Gong appears in the list once the connector is live. New threads pick up the con ## Related resources -* [What this connection adds](/docs/claude-tag/users/use-cases/pull-deal-state.md): the go-to-market use cases -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference +* [What this connection adds](https://claude.com/docs/claude-tag/users/use-cases/pull-deal-state.md): the go-to-market use cases +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference diff --git a/content/claude/claude-tag/admins/connections/google.md b/content/claude/claude-tag/admins/connections/google.md index ef6c1cf9d..cf6562ebd 100644 --- a/content/claude/claude-tag/admins/connections/google.md +++ b/content/claude/claude-tag/admins/connections/google.md @@ -12,7 +12,7 @@ Connecting Google Drive, Calendar, and Gmail lets Claude read documents, spreadsheets, calendar events, and email in any channel where the connector is on. Claude connects with its own credential, not a person's. -This connector calls Google's HTTP APIs, and it's separate from members' personal claude.ai connectors. A member's own Google connector applies in one-to-one DMs. Claude can also [use it in a channel](/docs/claude-tag/concepts/personal-connectors.md) for that member's own tasks, after the member allows it. +This connector calls Google's HTTP APIs, and it's separate from members' personal claude.ai connectors. A member's own Google connector applies in one-to-one DMs. Claude can also [use it in a channel](https://claude.com/docs/claude-tag/concepts/personal-connectors.md) for that member's own tasks, after the member allows it. ## Choose OAuth or a service account @@ -31,7 +31,7 @@ Both routes create a credential and an allowed-websites rule for the Google host > > Use a dedicated Google account for this connector (for example, `claude@yourcompany.example.com`), not your own. The connector is shared: anyone in a channel where it's on can ask Claude to read whatever this account can see in Drive, Calendar, and Gmail. A dedicated account starts with no access until you share the specific folders and calendars Claude needs, and keeps its activity under a separate identity in Google's audit log. -Go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/admin-settings/claude-tag?access=connectors), click **Add**, and select **Google Drive**, **Google Calendar**, or **Gmail**. The connect form lists the Google hosts the connector can reach; there are no scopes to choose. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](/docs/claude-tag/admins/add-connections.md#add-a-connection) before you sign in. Click **Sign in with Google Drive** (or **Sign in with Google Calendar**, or **Sign in with Gmail**), approve the Google consent screen, and the credential is saved. +Go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/admin-settings/claude-tag?access=connectors), click **Add**, and select **Google Drive**, **Google Calendar**, or **Gmail**. The connect form lists the Google hosts the connector can reach; there are no scopes to choose. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection) before you sign in. Click **Sign in with Google Drive** (or **Sign in with Google Calendar**, or **Sign in with Gmail**), approve the Google consent screen, and the credential is saved. The connector's reach is whatever the signed-in Google account can see. Share the relevant folders and calendars with that account in Google before testing. @@ -48,13 +48,13 @@ Go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/ad | Subject (optional) | A user email to impersonate via domain-wide delegation. Set this for Workspace data (Drive, Calendar, Gmail, Docs). | | Allowed websites | `*.googleapis.com` | -The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. +The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. For Google Workspace data (Drive, Calendar, Gmail, Docs), the service account needs domain-wide delegation configured in your Google Admin console. In the service account's domain-wide delegation entry, list every scope you entered in **Scopes**, or `https://www.googleapis.com/auth/cloud-platform` if you left **Scopes** empty. Google's guide is at [developers.google.com/identity/protocols/oauth2/service-account](https://developers.google.com/identity/protocols/oauth2/service-account#delegatingauthority). Google refuses the token request when the domain-wide delegation entry is missing one of the requested scopes. Claude then reports HTTP 502 with a reason that starts with `injection failed ("")`. -The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). +The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). ## Verify the connection @@ -70,5 +70,5 @@ To confirm the connector works, ask Claude in the same thread to read something ## Related resources -* [What this connection adds](/docs/claude-tag/users/use-cases/find-answers.md): grounding answers in your team's documents -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference +* [What this connection adds](https://claude.com/docs/claude-tag/users/use-cases/find-answers.md): grounding answers in your team's documents +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference diff --git a/content/claude/claude-tag/admins/connections/hubspot.md b/content/claude/claude-tag/admins/connections/hubspot.md index 65776a30f..ffc38b4b2 100644 --- a/content/claude/claude-tag/admins/connections/hubspot.md +++ b/content/claude/claude-tag/admins/connections/hubspot.md @@ -29,9 +29,9 @@ Go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/ad | Claude's private app token | The private app token from HubSpot | | Allowed websites | `api.hubapi.com` (preset) | -If the connect form offers to include the HubSpot plugin, leave that box selected; otherwise add the plugin on the [**Skills and plugins**](https://claude.ai/admin-settings/claude-tag?access=plugins) tab. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. +If the connect form offers to include the HubSpot plugin, leave that box selected; otherwise add the plugin on the [**Skills and plugins**](https://claude.ai/admin-settings/claude-tag?access=plugins) tab. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. -The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). +The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). ## Verify the connection @@ -45,5 +45,5 @@ HubSpot appears in the list once the connector is live. New threads pick up the ## Related resources -* [What this connection adds](/docs/claude-tag/users/use-cases/pull-deal-state.md): the go-to-market use cases -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference +* [What this connection adds](https://claude.com/docs/claude-tag/users/use-cases/pull-deal-state.md): the go-to-market use cases +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference diff --git a/content/claude/claude-tag/admins/connections/linear.md b/content/claude/claude-tag/admins/connections/linear.md index 93b9bd4bb..293900f1b 100644 --- a/content/claude/claude-tag/admins/connections/linear.md +++ b/content/claude/claude-tag/admins/connections/linear.md @@ -31,9 +31,9 @@ Go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/ad | Claude's API key | The API key from Linear | | Allowed websites | `api.linear.app` (preset) | -If the connect form offers to include the Linear plugin, leave that box selected; otherwise add the plugin on the [**Skills and plugins**](https://claude.ai/admin-settings/claude-tag?access=plugins) tab. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. +If the connect form offers to include the Linear plugin, leave that box selected; otherwise add the plugin on the [**Skills and plugins**](https://claude.ai/admin-settings/claude-tag?access=plugins) tab. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. -The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). +The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). ## Verify the connection @@ -47,5 +47,5 @@ Linear appears in the list once the connector is live. New threads pick up the c ## Related resources -* [What this connection adds](/docs/claude-tag/users/use-cases/create-artifacts.md): the issue tracking use cases -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference +* [What this connection adds](https://claude.com/docs/claude-tag/users/use-cases/create-artifacts.md): the issue tracking use cases +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference diff --git a/content/claude/claude-tag/admins/connections/notion.md b/content/claude/claude-tag/admins/connections/notion.md index e606f9c47..b9297a926 100644 --- a/content/claude/claude-tag/admins/connections/notion.md +++ b/content/claude/claude-tag/admins/connections/notion.md @@ -29,9 +29,9 @@ Go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/ad | Claude's integration secret | The internal integration secret from Notion | | Allowed websites | `api.notion.com` (preset) | -If the connect form offers to include the Notion plugin, leave that box selected; otherwise add the plugin on the [**Skills and plugins**](https://claude.ai/admin-settings/claude-tag?access=plugins) tab. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. +If the connect form offers to include the Notion plugin, leave that box selected; otherwise add the plugin on the [**Skills and plugins**](https://claude.ai/admin-settings/claude-tag?access=plugins) tab. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. -The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). +The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). ## Verify the connection @@ -45,5 +45,5 @@ Notion appears in the list once the connector is live. New threads pick up the c ## Related resources -* [What this connection adds](/docs/claude-tag/users/use-cases/find-answers.md): the knowledge and docs use cases -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference +* [What this connection adds](https://claude.com/docs/claude-tag/users/use-cases/find-answers.md): the knowledge and docs use cases +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference diff --git a/content/claude/claude-tag/admins/connections/overview.md b/content/claude/claude-tag/admins/connections/overview.md index 52259b187..8155c3164 100644 --- a/content/claude/claude-tag/admins/connections/overview.md +++ b/content/claude/claude-tag/admins/connections/overview.md @@ -10,45 +10,45 @@ > > Claude Tag is in public beta. Features and behavior described here may change before general availability. -Each guide covers one service: how to create the credential as a dedicated identity, what to paste into the connect form, and the **Allowed websites** value. For the model behind connectors (credential types, Agent Proxy, allowed websites, bundles), see [Give Claude access](/docs/claude-tag/admins/add-connections.md). +Each guide covers one service: how to create the credential as a dedicated identity, what to paste into the connect form, and the **Allowed websites** value. For the model behind connectors (credential types, Agent Proxy, allowed websites, bundles), see [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md). > [!WARNING] > -> Always connect a dedicated account for Claude (for example, `claude@yourcompany.example.com`), not your personal login. Anyone in a channel where the connector applies can use it through Claude, so whatever this account can reach is available to every member of those channels. See [Create a dedicated account per service](/docs/claude-tag/admins/add-connections.md#create-a-dedicated-account-per-service). Before you add a connector, see [where a new connector applies](/docs/claude-tag/admins/add-connections.md#where-a-new-connector-applies). +> Always connect a dedicated account for Claude (for example, `claude@yourcompany.example.com`), not your personal login. Anyone in a channel where the connector applies can use it through Claude, so whatever this account can reach is available to every member of those channels. See [Create a dedicated account per service](https://claude.com/docs/claude-tag/admins/add-connections.md#create-a-dedicated-account-per-service). Before you add a connector, see [where a new connector applies](https://claude.com/docs/claude-tag/admins/add-connections.md#where-a-new-connector-applies). | Service | Category | Guide | | :- | :- | :- | -| Datadog | Monitoring | [Connect Datadog](/docs/claude-tag/admins/connections/datadog.md) | -| Sentry | Monitoring | [Connect Sentry](/docs/claude-tag/admins/connections/sentry.md) | -| PagerDuty | Monitoring | [Connect PagerDuty](/docs/claude-tag/admins/connections/pagerduty.md) | -| Linear | Issue tracking | [Connect Linear](/docs/claude-tag/admins/connections/linear.md) | -| Asana | Issue tracking | [Connect Asana](/docs/claude-tag/admins/connections/asana.md) | -| Jira and Confluence | Issue tracking | [Connect Jira and Confluence](/docs/claude-tag/admins/connections/atlassian.md) | -| Notion | Knowledge and docs | [Connect Notion](/docs/claude-tag/admins/connections/notion.md) | -| Google (Drive, Calendar, Gmail) | Knowledge and docs | [Connect Google](/docs/claude-tag/admins/connections/google.md) | -| HubSpot | Go-to-market | [Connect HubSpot](/docs/claude-tag/admins/connections/hubspot.md) | -| Salesforce | Go-to-market | [Connect Salesforce](/docs/claude-tag/admins/connections/salesforce.md) | -| Gong | Go-to-market | [Connect Gong](/docs/claude-tag/admins/connections/gong.md) | -| GitLab | Code | [Connect GitLab](/docs/claude-tag/admins/connections/gitlab.md) | -| BigQuery (custom) | Data warehouse | [Connect BigQuery](/docs/claude-tag/admins/connections/bigquery.md) | -| Snowflake | Data warehouse | [Connect Snowflake](/docs/claude-tag/admins/connections/snowflake.md) | -| Amplitude | Product analytics | [Connect Amplitude](/docs/claude-tag/admins/connections/amplitude.md) | -| Stripe | Billing | [Connect Stripe](/docs/claude-tag/admins/connections/stripe.md) | -| Vercel | Deployments | [Connect Vercel](/docs/claude-tag/admins/connections/vercel.md) | - -GitHub is managed through the Claude GitHub App rather than a credential; see [Configure GitHub access](/docs/claude-tag/admins/configure-github.md). +| Datadog | Monitoring | [Connect Datadog](https://claude.com/docs/claude-tag/admins/connections/datadog.md) | +| Sentry | Monitoring | [Connect Sentry](https://claude.com/docs/claude-tag/admins/connections/sentry.md) | +| PagerDuty | Monitoring | [Connect PagerDuty](https://claude.com/docs/claude-tag/admins/connections/pagerduty.md) | +| Linear | Issue tracking | [Connect Linear](https://claude.com/docs/claude-tag/admins/connections/linear.md) | +| Asana | Issue tracking | [Connect Asana](https://claude.com/docs/claude-tag/admins/connections/asana.md) | +| Jira and Confluence | Issue tracking | [Connect Jira and Confluence](https://claude.com/docs/claude-tag/admins/connections/atlassian.md) | +| Notion | Knowledge and docs | [Connect Notion](https://claude.com/docs/claude-tag/admins/connections/notion.md) | +| Google (Drive, Calendar, Gmail) | Knowledge and docs | [Connect Google](https://claude.com/docs/claude-tag/admins/connections/google.md) | +| HubSpot | Go-to-market | [Connect HubSpot](https://claude.com/docs/claude-tag/admins/connections/hubspot.md) | +| Salesforce | Go-to-market | [Connect Salesforce](https://claude.com/docs/claude-tag/admins/connections/salesforce.md) | +| Gong | Go-to-market | [Connect Gong](https://claude.com/docs/claude-tag/admins/connections/gong.md) | +| GitLab | Code | [Connect GitLab](https://claude.com/docs/claude-tag/admins/connections/gitlab.md) | +| BigQuery (custom) | Data warehouse | [Connect BigQuery](https://claude.com/docs/claude-tag/admins/connections/bigquery.md) | +| Snowflake | Data warehouse | [Connect Snowflake](https://claude.com/docs/claude-tag/admins/connections/snowflake.md) | +| Amplitude | Product analytics | [Connect Amplitude](https://claude.com/docs/claude-tag/admins/connections/amplitude.md) | +| Stripe | Billing | [Connect Stripe](https://claude.com/docs/claude-tag/admins/connections/stripe.md) | +| Vercel | Deployments | [Connect Vercel](https://claude.com/docs/claude-tag/admins/connections/vercel.md) | + +GitHub is managed through the Claude GitHub App rather than a credential; see [Configure GitHub access](https://claude.com/docs/claude-tag/admins/configure-github.md). Services marked (custom) aren't in the **Add a connector** list. Add them with **Custom connector** following their guide. ## Connect a service that has no guide -You can add any app that has an API as a custom connector or a custom MCP server, including services this page has no guide for. See [Connect a custom service](/docs/claude-tag/admins/connections/custom.md) for the credential types and form fields. +You can add any app that has an API as a custom connector or a custom MCP server, including services this page has no guide for. See [Connect a custom service](https://claude.com/docs/claude-tag/admins/connections/custom.md) for the credential types and form fields. ## When a connector fails after setup -If Claude says it can't reach a service you connected, start with the checks at the top of [Troubleshoot Claude Tag setup](/docs/claude-tag/admins/troubleshooting.md). Open the channel's page from the **Channels** tab under **Claude's access** and confirm the connector is listed in its **Claude's access** table. Then rerun the test in a new thread. +If Claude says it can't reach a service you connected, start with the checks at the top of [Troubleshoot Claude Tag setup](https://claude.com/docs/claude-tag/admins/troubleshooting.md). Open the channel's page from the **Channels** tab under **Claude's access** and confirm the connector is listed in its **Claude's access** table. Then rerun the test in a new thread. Two entries on the troubleshooting page cover connector failures directly: -* [A connection works in one channel but not another](/docs/claude-tag/admins/troubleshooting.md#a-connection-works-in-one-channel-but-not-another): the connector, or the bundle that holds it, likely doesn't apply to the failing channel -* [I hit an authentication error and couldn't finish this turn](/docs/claude-tag/admins/troubleshooting.md#i-hit-an-authentication-error-and-couldn%E2%80%99t-finish-this-turn): Claude posts that message when its own request fails an authentication check. A connected service's failing credential surfaces as a tool error inside Claude's reply instead +* [A connection works in one channel but not another](https://claude.com/docs/claude-tag/admins/troubleshooting.md#a-connection-works-in-one-channel-but-not-another): the connector, or the bundle that holds it, likely doesn't apply to the failing channel +* [I hit an authentication error and couldn't finish this turn](https://claude.com/docs/claude-tag/admins/troubleshooting.md#i-hit-an-authentication-error-and-couldn%E2%80%99t-finish-this-turn): Claude posts that message when its own request fails an authentication check. A connected service's failing credential surfaces as a tool error inside Claude's reply instead diff --git a/content/claude/claude-tag/admins/connections/pagerduty.md b/content/claude/claude-tag/admins/connections/pagerduty.md index 7a7e2d474..b6988d913 100644 --- a/content/claude/claude-tag/admins/connections/pagerduty.md +++ b/content/claude/claude-tag/admins/connections/pagerduty.md @@ -16,7 +16,7 @@ Pair this connector with the PagerDuty plugin from Anthropic's plugin marketplac ## Create the credential in PagerDuty -Generate a general-access read-only API key. A read-write key lets Claude acknowledge and resolve incidents. If you use one, [turn the connector on only in a private incident channel](/docs/claude-tag/admins/add-connections.md#add-a-connection). +Generate a general-access read-only API key. A read-write key lets Claude acknowledge and resolve incidents. If you use one, [turn the connector on only in a private incident channel](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection). Creating a general-access key requires the PagerDuty Admin or Account Owner role; non-admins only see User Token keys, which also work but inherit that user's permissions. @@ -33,9 +33,9 @@ Go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/ad PagerDuty accounts on the EU service region use `api.eu.pagerduty.com` instead. -If the connect form offers to include the PagerDuty plugin, leave that box selected; otherwise add the plugin on the [**Skills and plugins**](https://claude.ai/admin-settings/claude-tag?access=plugins) tab. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. +If the connect form offers to include the PagerDuty plugin, leave that box selected; otherwise add the plugin on the [**Skills and plugins**](https://claude.ai/admin-settings/claude-tag?access=plugins) tab. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. -The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). +The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). ## Verify the connection @@ -49,5 +49,5 @@ PagerDuty appears in the list once the connector is live. New threads pick up th ## Related resources -* [What this connection adds](/docs/claude-tag/users/use-cases/watch-monitors.md): the monitoring use cases -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference +* [What this connection adds](https://claude.com/docs/claude-tag/users/use-cases/watch-monitors.md): the monitoring use cases +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference diff --git a/content/claude/claude-tag/admins/connections/salesforce.md b/content/claude/claude-tag/admins/connections/salesforce.md index d2fa59352..3f826b53e 100644 --- a/content/claude/claude-tag/admins/connections/salesforce.md +++ b/content/claude/claude-tag/admins/connections/salesforce.md @@ -36,11 +36,11 @@ Go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/ad | Scopes (optional) | On the **Advanced** tab. Leave empty unless your app requires specific scopes | | Allowed websites | Your org's host, for example `yourcompany.my.salesforce.com` | -The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. The **Allowed websites** field shows an example host that can't resolve. Enter your org's host there, then click **Connect** to save the connector. +The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. The **Allowed websites** field shows an example host that can't resolve. Enter your org's host there, then click **Connect** to save the connector. To change the host later, go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/admin-settings/claude-tag?access=connectors), click **Salesforce**, open the menu on the credential's row in the **Access from** table, and click **Edit**. In the **Edit connection** dialog, the **Allowed websites** setting is labeled **Allowed hosts**. Change the host there and click **Save**. -The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). +The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). ## Verify the connection @@ -54,4 +54,4 @@ Check the integration user's login history in Salesforce Setup to confirm the ca ## Related resources -* [Pull deal and account state](/docs/claude-tag/users/use-cases/pull-deal-state.md): what this connection adds +* [Pull deal and account state](https://claude.com/docs/claude-tag/users/use-cases/pull-deal-state.md): what this connection adds diff --git a/content/claude/claude-tag/admins/connections/sentry.md b/content/claude/claude-tag/admins/connections/sentry.md index 20b3499df..7f914c5a1 100644 --- a/content/claude/claude-tag/admins/connections/sentry.md +++ b/content/claude/claude-tag/admins/connections/sentry.md @@ -33,9 +33,9 @@ Go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/ad Self-hosted Sentry uses your own hostname instead of `sentry.io`. -If the connect form offers to include the Sentry plugin, leave that box selected; otherwise add the plugin on the [**Skills and plugins**](https://claude.ai/admin-settings/claude-tag?access=plugins) tab. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. +If the connect form offers to include the Sentry plugin, leave that box selected; otherwise add the plugin on the [**Skills and plugins**](https://claude.ai/admin-settings/claude-tag?access=plugins) tab. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. -The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). +The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). ## Verify the connection @@ -49,5 +49,5 @@ Sentry appears in the list once the connector is live. New threads pick up the c ## Related resources -* [What this connection adds](/docs/claude-tag/users/use-cases/watch-monitors.md): the monitoring use cases -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference +* [What this connection adds](https://claude.com/docs/claude-tag/users/use-cases/watch-monitors.md): the monitoring use cases +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference diff --git a/content/claude/claude-tag/admins/connections/snowflake.md b/content/claude/claude-tag/admins/connections/snowflake.md index 63153b7d5..d6cd68b99 100644 --- a/content/claude/claude-tag/admins/connections/snowflake.md +++ b/content/claude/claude-tag/admins/connections/snowflake.md @@ -29,11 +29,11 @@ Go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/ad | Claude's programmatic access token | The programmatic access token from Snowflake | | Allowed websites | Your account's host, for example `yourorg-youraccount.snowflakecomputing.com` | -The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. The **Allowed websites** field shows `*.snowflakecomputing.com` only as a hint, and a wildcard under `snowflakecomputing.com` can't be saved. Enter your account's host there, then click **Connect** to save the connector. +The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. The **Allowed websites** field shows `*.snowflakecomputing.com` only as a hint, and a wildcard under `snowflakecomputing.com` can't be saved. Enter your account's host there, then click **Connect** to save the connector. To change the host later, go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/admin-settings/claude-tag?access=connectors), click **Snowflake**, open the menu on the credential's row in the **Access from** table, and click **Edit**. In the **Edit connection** dialog, the **Allowed websites** setting is labeled **Allowed hosts**. Change the host there and click **Save**. -The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). +The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). ## Verify the connection @@ -47,5 +47,5 @@ Snowflake appears in the list once the connector is live. New threads pick up th ## Related resources -* [What this connection adds](/docs/claude-tag/users/use-cases/answer-data-questions.md): warehouse questions answered with charts in the thread -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference +* [What this connection adds](https://claude.com/docs/claude-tag/users/use-cases/answer-data-questions.md): warehouse questions answered with charts in the thread +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference diff --git a/content/claude/claude-tag/admins/connections/stripe.md b/content/claude/claude-tag/admins/connections/stripe.md index 8cccf388a..1c7b7a0fb 100644 --- a/content/claude/claude-tag/admins/connections/stripe.md +++ b/content/claude/claude-tag/admins/connections/stripe.md @@ -31,9 +31,9 @@ Go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/ad The field labeled Claude's secret key accepts a restricted key; the label is the field name, not a key-type constraint. -The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. +The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. -The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). +The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). ## Verify the connection @@ -47,4 +47,4 @@ Stripe appears in the list once the connector is live. New threads pick up the c ## Related resources -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference diff --git a/content/claude/claude-tag/admins/connections/vercel.md b/content/claude/claude-tag/admins/connections/vercel.md index f877e8058..50b386155 100644 --- a/content/claude/claude-tag/admins/connections/vercel.md +++ b/content/claude/claude-tag/admins/connections/vercel.md @@ -29,9 +29,9 @@ Go to [**Organization settings > Claude Tag > Connectors**](https://claude.ai/ad | Claude's access token | The access token from Vercel | | Allowed websites | `api.vercel.com` (preset) | -The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. +The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. Click **Connect** to save the connector. -The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). +The Agent Proxy injects the credential at the network boundary; the model and the sandbox are not given the key. See [how Agent Proxy works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). ## Verify the connection @@ -45,4 +45,4 @@ Vercel appears in the list once the connector is live. New threads pick up the c ## Related resources -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the full credential-type and allowed-hosts reference diff --git a/content/claude/claude-tag/admins/customize.md b/content/claude/claude-tag/admins/customize.md index 771b4639b..396f3963b 100644 --- a/content/claude/claude-tag/admins/customize.md +++ b/content/claude/claude-tag/admins/customize.md @@ -14,35 +14,35 @@ Claude Tag's behavior is shaped by four layers, each set in a different place: | Layer | What it is | Who sets it | Where | | :- | :- | :- | :- | -| **Connectors** | The systems Claude can reach and the credentials it uses for each (GitHub, Drive, Datadog, your APIs) | Owner or [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration); a [channel manager](/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) for their assigned channels | The **Connectors** tab and [bundles](/docs/claude-tag/admins/add-connections.md) under **Claude's access**, or the channel's Configure page for a channel manager | -| **Plugins and skills** | Instructions that teach Claude how to use a tool or follow a process. A plugin bundles one or more [skills](https://code.claude.com/docs/en/skills). | Owner or [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration); channel members can add plugins to their channel unless an admin restricts editing | The **Skills and plugins** tab under **Claude's access**, a [bundle](/docs/claude-tag/admins/add-connections.md#attach-plugins), a [skills repository](/docs/claude-tag/admins/skills-repo.md), or the channel's Configure page | -| **Custom instructions** | Standing guidance read in every session at a scope (team conventions, output formats). Outranks channel memory. | Owner for any scope; [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) for workspace and channel scopes; channel members for the channel scope, from the [Configure page](/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel) | [Per-scope instructions](/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions) | -| **Channel memory** | Facts Claude saves while working in a channel | Anyone in the channel | By [telling Claude](/docs/claude-tag/users/memory.md) | +| **Connectors** | The systems Claude can reach and the credentials it uses for each (GitHub, Drive, Datadog, your APIs) | Owner or [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration); a [channel manager](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) for their assigned channels | The **Connectors** tab and [bundles](https://claude.com/docs/claude-tag/admins/add-connections.md) under **Claude's access**, or the channel's Configure page for a channel manager | +| **Plugins and skills** | Instructions that teach Claude how to use a tool or follow a process. A plugin bundles one or more [skills](https://code.claude.com/docs/en/skills). | Owner or [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration); channel members can add plugins to their channel unless an admin restricts editing | The **Skills and plugins** tab under **Claude's access**, a [bundle](https://claude.com/docs/claude-tag/admins/add-connections.md#attach-plugins), a [skills repository](https://claude.com/docs/claude-tag/admins/skills-repo.md), or the channel's Configure page | +| **Custom instructions** | Standing guidance read in every session at a scope (team conventions, output formats). Outranks channel memory. | Owner for any scope; [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) for workspace and channel scopes; channel members for the channel scope, from the [Configure page](https://claude.com/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel) | [Per-scope instructions](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions) | +| **Channel memory** | Facts Claude saves while working in a channel | Anyone in the channel | By [telling Claude](https://claude.com/docs/claude-tag/users/memory.md) | Connectors and plugins decide what Claude *can do*; instructions and memory shape *how it does it*. ## Settings admins control -Access and organization-wide behavior are set at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), per scope (a scope is a channel, a workspace, or your whole organization), so the same agent can work differently in different channels. Each scope has its own page on the **Channels** tab under **Claude's access**, and the **Slack** page there covers your whole organization. Most controls below need the Owner role or, on the Enterprise plan, the [**Claude Tag Admin** permission](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration); the [permissions table](/docs/claude-tag/admins/restrict-access.md#permissions-by-role) lists each action and who can take it. +Access and organization-wide behavior are set at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), per scope (a scope is a channel, a workspace, or your whole organization), so the same agent can work differently in different channels. Each scope has its own page on the **Channels** tab under **Claude's access**, and the **Slack** page there covers your whole organization. Most controls below need the Owner role or, on the Enterprise plan, the [**Claude Tag Admin** permission](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration); the [permissions table](https://claude.com/docs/claude-tag/admins/restrict-access.md#permissions-by-role) lists each action and who can take it. | Setting | What it does | More | | :- | :- | :- | -| Custom instructions | Standing guidance read in every session on a scope, like team conventions. Outranks channel memory. | [Add custom instructions](/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions) | -| Managed by | Which other Slack channels' members can write a channel's standing instructions by asking Claude, including from a private channel. On the Enterprise plan, an Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) sets it on the **Admin** tab of the channel's Configure page. | [Manage a channel's instructions from another channel](/docs/claude-tag/admins/managed-by.md) | -| Respond automatically | Whether Claude replies to a channel's messages without an @-mention. **Respond automatically** exists only on channels, not on workspaces or your whole organization. Channel members can change it too, from Slack or the channel's Configure page, unless the scope's [**Channel member edits**](/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) setting is **Block**. | [Turn automatic replies on or off](/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off) | -| Plugins | Bundles of skills that teach Claude how to use a specific tool | [Attach plugins](/docs/claude-tag/admins/add-connections.md#attach-plugins) | -| Connectors | Which systems Claude can reach from each channel | [Add a connector](/docs/claude-tag/admins/add-connections.md) | +| Custom instructions | Standing guidance read in every session on a scope, like team conventions. Outranks channel memory. | [Add custom instructions](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions) | +| Managed by | Which other Slack channels' members can write a channel's standing instructions by asking Claude, including from a private channel. On the Enterprise plan, an Owner or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) sets it on the **Admin** tab of the channel's Configure page. | [Manage a channel's instructions from another channel](https://claude.com/docs/claude-tag/admins/managed-by.md) | +| Respond automatically | Whether Claude replies to a channel's messages without an @-mention. **Respond automatically** exists only on channels, not on workspaces or your whole organization. Channel members can change it too, from Slack or the channel's Configure page, unless the scope's [**Channel member edits**](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) setting is **Block**. | [Turn automatic replies on or off](https://claude.com/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off) | +| Plugins | Bundles of skills that teach Claude how to use a specific tool | [Attach plugins](https://claude.com/docs/claude-tag/admins/add-connections.md#attach-plugins) | +| Connectors | Which systems Claude can reach from each channel | [Add a connector](https://claude.com/docs/claude-tag/admins/add-connections.md) | | Model | Which Claude model handles sessions in a scope | [Choose the model for a scope](#choose-the-model-for-a-scope) | | Auto mode allow rules | Actions pre-approved in a scope's sessions that Claude's permission checker would otherwise flag or stop | [Auto mode allow rules](#auto-mode-allow-rules) | | Environment | Which cloud environment a scope's sessions run in | [Configure the environment for a scope](#configure-the-environment-for-a-scope) | -| Enable Claude Tag | Turns Claude on or off in a scope. On the **Slack** page, the switch is labeled **Respond in all channels** or **Respond in channels** | [Turn Claude Tag on or off and set the version for a scope](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) | -| Claude Tag version | Which generation answers in a scope (**New** or **Legacy**) | [Turn Claude Tag on or off and set the version for a scope](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) | +| Enable Claude Tag | Turns Claude on or off in a scope. On the **Slack** page, the switch is labeled **Respond in all channels** or **Respond in channels** | [Turn Claude Tag on or off and set the version for a scope](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) | +| Claude Tag version | Which generation answers in a scope (**New** or **Legacy**) | [Turn Claude Tag on or off and set the version for a scope](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) | ### Claude Tag connectors are separate from personal connectors -An Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) configures Claude Tag connectors, plugins, and skills, and they apply per scope. They are separate from the personal connectors, skills, or MCP servers an individual user has set up in their own claude.ai or Claude Desktop account. A user's personal connectors are not part of a channel's configuration, and the channel's connectors are not listed among that user's personal connectors in claude.ai. Claude can [use a user's personal connectors in a channel](/docs/claude-tag/concepts/personal-connectors.md) for that user's own tasks, after the user allows it. That work runs with the user's permissions and is recorded under their name. Projects in claude.ai are separate too. Claude doesn't read a Project's instructions or knowledge in Slack, and a channel can't be pointed at a Project. Put standing guidance for a channel in its [custom instructions](/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions). +An Owner or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) configures Claude Tag connectors, plugins, and skills, and they apply per scope. They are separate from the personal connectors, skills, or MCP servers an individual user has set up in their own claude.ai or Claude Desktop account. A user's personal connectors are not part of a channel's configuration, and the channel's connectors are not listed among that user's personal connectors in claude.ai. Claude can [use a user's personal connectors in a channel](https://claude.com/docs/claude-tag/concepts/personal-connectors.md) for that user's own tasks, after the user allows it. That work runs with the user's permissions and is recorded under their name. Projects in claude.ai are separate too. Claude doesn't read a Project's instructions or knowledge in Slack, and a channel can't be pointed at a Project. Put standing guidance for a channel in its [custom instructions](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions). -To give Claude access to a tool that isn't in the **Add a connector** list, including a custom MCP server, see [Connect a service that isn't in the list](/docs/claude-tag/admins/connections/custom.md). +To give Claude access to a tool that isn't in the **Add a connector** list, including a custom MCP server, see [Connect a service that isn't in the list](https://claude.com/docs/claude-tag/admins/connections/custom.md). ## Change behavior from the channel @@ -50,19 +50,19 @@ Everything in the table below is open to channel members, with no admin involved | To change | Say something like | More | | :- | :- | :- | -| How Claude formats output | "remember for this channel: post reports as a table" | [Memory](/docs/claude-tag/users/memory.md) | -| How chatty Claude is | "ask before posting anything longer than a screen" | [Memory](/docs/claude-tag/users/memory.md) | -| When Claude follows a thread | "stay quiet in this thread unless someone tags you" | [Control when Claude Tag responds](/docs/claude-tag/users/when-claude-responds.md) | -| What Claude does on a schedule | "every morning at 9, post a digest of open threads" | [Set up routines](/docs/claude-tag/users/proactivity.md) | -| What Claude remembers | "what do you remember about this channel?" then correct it | [Memory](/docs/claude-tag/users/memory.md) | +| How Claude formats output | "remember for this channel: post reports as a table" | [Memory](https://claude.com/docs/claude-tag/users/memory.md) | +| How chatty Claude is | "ask before posting anything longer than a screen" | [Memory](https://claude.com/docs/claude-tag/users/memory.md) | +| When Claude follows a thread | "stay quiet in this thread unless someone tags you" | [Control when Claude Tag responds](https://claude.com/docs/claude-tag/users/when-claude-responds.md) | +| What Claude does on a schedule | "every morning at 9, post a digest of open threads" | [Set up routines](https://claude.com/docs/claude-tag/users/proactivity.md) | +| What Claude remembers | "what do you remember about this channel?" then correct it | [Memory](https://claude.com/docs/claude-tag/users/memory.md) | Changes in the table above are saved to channel memory; verify one stuck by asking what it remembers. -Members can also tailor how Claude works in the channel from its Configure page on claude.ai. The **Configure** link in the footer of any Claude reply in the channel opens it, and if a member sends [`@Claude !configure`](/docs/claude-tag/users/commands#get-the-link-to-configure-a-channel) in the channel, Claude replies with a link to it. Anyone in the channel who is also a member of your Claude organization can edit settings for that channel there, unless an admin has [restricted editing to admins](/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions). The **Channel instructions** field on that page holds standing guidance that outranks memory. See [configure Claude for a channel](/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel). +Members can also tailor how Claude works in the channel from its Configure page on claude.ai. The **Configure** link in the footer of any Claude reply in the channel opens it, and if a member sends [`@Claude !configure`](https://claude.com/docs/claude-tag/users/commands#get-the-link-to-configure-a-channel) in the channel, Claude replies with a link to it. Anyone in the channel who is also a member of your Claude organization can edit settings for that channel there, unless an admin has [restricted editing to admins](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions). The **Channel instructions** field on that page holds standing guidance that outranks memory. See [configure Claude for a channel](https://claude.com/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel). -The Configure page also shows the channel's resolved access. Its **Tools and access** tab lists the channel's resolved connections and any allowed domains. Members can see those lists but not change them there. The same tab's **Plugins** card lists the plugins available to Claude in the channel; members can add plugins there unless an admin has [restricted editing to admins](/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions). The card groups plugins **Added by your admin**, which members can't remove, separately from plugins **Added by members**, which members can remove. The Configure page's **Routines** tab lists the channel's [routines](/docs/claude-tag/users/proactivity.md) with each one's schedule, status, and last run. +The Configure page also shows the channel's resolved access. Its **Tools and access** tab lists the channel's resolved connections and any allowed domains. Members can see those lists but not change them there. The same tab's **Plugins** card lists the plugins available to Claude in the channel; members can add plugins there unless an admin has [restricted editing to admins](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions). The card groups plugins **Added by your admin**, which members can't remove, separately from plugins **Added by members**, which members can remove. The Configure page's **Routines** tab lists the channel's [routines](https://claude.com/docs/claude-tag/users/proactivity.md) with each one's schedule, status, and last run. -On the Enterprise plan, an Owner can name [channel managers](/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) for a channel, and so can a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) whose role also sets **Identity & Access** to **Can manage**. Channel managers set the channel's default model, repositories, connections, and plugins from the same page. +On the Enterprise plan, an Owner can name [channel managers](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) for a channel, and so can a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) whose role also sets **Identity & Access** to **Can manage**. Channel managers set the channel's default model, repositories, connections, and plugins from the same page. ## Choose the model for a scope @@ -74,14 +74,14 @@ To keep sessions on a model you chose, set a specific model in the organization' When you change the setting, new sessions start on the new model. A thread already underway switches to it at the next message anyone posts there, unless someone in that thread has already had Claude switch models. The footer of each Claude reply in Slack names the model that handled it, so you can confirm what a scope is running. -Channel members can also change the model from Slack. Asking Claude in a thread switches that thread, and asking it to make a model the channel default changes this setting for the channel, unless the scope's [Channel member edits](/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) setting is **Block**. See [choose the model Claude Tag uses](/docs/claude-tag/users/models.md). +Channel members can also change the model from Slack. Asking Claude in a thread switches that thread, and asking it to make a model the channel default changes this setting for the channel, unless the scope's [Channel member edits](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) setting is **Block**. See [choose the model Claude Tag uses](https://claude.com/docs/claude-tag/users/models.md). ### Models your organization allows On the Team plan, Claude Tag doesn't apply the [`availableModels` allowlist](https://code.claude.com/docs/en/model-config#restrict-model-selection) from your Claude Code [server-managed settings](https://code.claude.com/docs/en/server-managed-settings), and on the Enterprise plan it applies the allowlist in only some organizations. * **Where the allowlist doesn't apply**: Claude offers your organization's full Claude Tag model list, both when someone asks it to switch and in the model selector for direct messages. It starts sessions on a scope's **Model** setting without checking that model against the allowlist. The **Model** picker in admin settings still lists only allowed models. -* **Where the allowlist applies**: sessions in a channel run as the [agent identity](/docs/claude-tag/concepts/agent-identity.md) you provisioned and without your server-managed settings. When someone in a channel asks Claude to switch models, Claude may decline a model outside the allowlist, though that check doesn't always run. In one-to-one direct messages from a member whose linked Claude account belongs to your organization, Claude runs on that member's own account, which receives your allowlist; see [Restrict model selection](https://code.claude.com/docs/en/model-config#restrict-model-selection) for what happens to a model the allowlist blocks. +* **Where the allowlist applies**: sessions in a channel run as the [agent identity](https://claude.com/docs/claude-tag/concepts/agent-identity.md) you provisioned and without your server-managed settings. When someone in a channel asks Claude to switch models, Claude may decline a model outside the allowlist, though that check doesn't always run. In one-to-one direct messages from a member whose linked Claude account belongs to your organization, Claude runs on that member's own account, which receives your allowlist; see [Restrict model selection](https://code.claude.com/docs/en/model-config#restrict-model-selection) for what happens to a model the allowlist blocks. In either case, Claude Tag offers only the models it supports, so a model your allowlist includes can be absent in Slack. @@ -90,24 +90,24 @@ On the Enterprise plan, turning a model off for the whole organization on your * Claude also relies on these models in Slack even when no scope's **Model** setting names them. On the Enterprise plan, keep them turned on under **Model access** on your [**Models**](https://claude.ai/admin-settings/models) page: * **Claude Sonnet 5**: in channel sessions and routines, a permission checker reviews each action Claude is about to take, and that checker runs on Claude Sonnet 5. While the model is off, the checker blocks actions it would otherwise allow, such as API calls, unless an [auto mode allow rule](#auto-mode-allow-rules) names them. -* **Claude Opus 5**: tasks that use a member's [personal connectors](/docs/claude-tag/concepts/personal-connectors.md#admin-controls-for-personal-connectors) go through checks that run on Claude Opus 5, whichever model the member's thread runs on. While the model is off, Claude declines those tasks. +* **Claude Opus 5**: tasks that use a member's [personal connectors](https://claude.com/docs/claude-tag/concepts/personal-connectors.md#admin-controls-for-personal-connectors) go through checks that run on Claude Opus 5, whichever model the member's thread runs on. While the model is off, Claude declines those tasks. ### Allow fast mode -[Fast mode](/docs/claude-tag/users/models.md#run-a-thread-in-fast-mode) gives a thread faster output at a higher cost per token. Claude in Slack and Claude Code share one fast mode setting, so turning it on allows fast mode in both. The setting is off by default on the Team and Enterprise plans. +[Fast mode](https://claude.com/docs/claude-tag/users/models.md#run-a-thread-in-fast-mode) gives a thread faster output at a higher cost per token. Claude in Slack and Claude Code share one fast mode setting, so turning it on allows fast mode in both. The setting is off by default on the Team and Enterprise plans. To allow fast mode, an Owner goes to [**Admin settings > Claude Code**](https://claude.ai/admin-settings/claude-code) and turns on the **Fast mode** toggle under **Capabilities**. Fast mode draws from usage credits, so also turn those on at [**Admin settings > Usage**](https://claude.ai/admin-settings/usage). For an organization billed through AWS Marketplace, the toggle is locked. Turning the toggle on has these effects in Slack: * **Speed**: every session starts at standard speed until someone turns fast mode on for it, and no per-channel setting starts sessions in fast mode -* **Who turns it on**: any member who can message Claude in a channel can turn fast mode on for a thread there by sending [`@Claude !fast`](/docs/claude-tag/users/commands#turn-fast-mode-on-or-off) +* **Who turns it on**: any member who can message Claude in a channel can turn fast mode on for a thread there by sending [`@Claude !fast`](https://claude.com/docs/claude-tag/users/commands#turn-fast-mode-on-or-off) * **Model**: when a thread is on a model other than Opus, such as Sonnet, `!fast` moves it to the newest Opus model among the [models your organization allows](#models-your-organization-allows), and the thread stays on that model after `!fast off` -* **Cost**: a channel thread in fast mode bills to your organization like other [channel work](/docs/claude-tag/admins/set-spend-limit.md#how-claude-tag-usage-is-billed), at the [fast mode rates](https://code.claude.com/docs/en/fast-mode#understand-the-cost-tradeoff) +* **Cost**: a channel thread in fast mode bills to your organization like other [channel work](https://claude.com/docs/claude-tag/admins/set-spend-limit.md#how-claude-tag-usage-is-billed), at the [fast mode rates](https://code.claude.com/docs/en/fast-mode#understand-the-cost-tradeoff) ## Configure the environment for a scope -Claude runs every channel session in a sandbox that starts with a standard set of tools. When a channel's work needs something that sandbox doesn't have, such as a language runtime, a database client, a set of environment variables, or broader web access, give the channel an environment. An environment is an [organization-shared cloud environment](https://code.claude.com/docs/en/cloud-environments#organization-shared-environments): you create it once, then choose it on a scope, meaning a channel, a workspace, or the **Slack** page for your whole organization. Both steps take an Owner; a [channel manager](/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) can't change a channel's environment. +Claude runs every channel session in a sandbox that starts with a standard set of tools. When a channel's work needs something that sandbox doesn't have, such as a language runtime, a database client, a set of environment variables, or broader web access, give the channel an environment. An environment is an [organization-shared cloud environment](https://code.claude.com/docs/en/cloud-environments#organization-shared-environments): you create it once, then choose it on a scope, meaning a channel, a workspace, or the **Slack** page for your whole organization. Both steps take an Owner; a [channel manager](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) can't change a channel's environment. ### Decide what goes in the environment @@ -117,11 +117,11 @@ An environment carries a setup script, environment variables, and a network acce | :- | :- | | A tool installed before Claude starts, such as a runtime or a database client | The environment's setup script, a Bash script whose installs are on disk before Claude starts work | | A value every session should see, such as a deployment target or a feature flag | The environment's environment variables, as `KEY=value` pairs, one per line | -| Web access without a credential | The environment's network access level; see [broad web access through the environment](/docs/claude-tag/admins/add-connections.md#broad-web-access-through-the-environment) | -| An API key, token, or other credential | A [connector](/docs/claude-tag/admins/add-connections.md), never an environment variable | -| Setup for one repository, such as installing its dependencies | That repository's `CLAUDE.md`; see [install project dependencies](/docs/claude-tag/admins/configure-github.md#install-project-dependencies) | +| Web access without a credential | The environment's network access level; see [broad web access through the environment](https://claude.com/docs/claude-tag/admins/add-connections.md#broad-web-access-through-the-environment) | +| An API key, token, or other credential | A [connector](https://claude.com/docs/claude-tag/admins/add-connections.md), never an environment variable | +| Setup for one repository, such as installing its dependencies | That repository's `CLAUDE.md`; see [install project dependencies](https://claude.com/docs/claude-tag/admins/configure-github.md#install-project-dependencies) | -Keep credentials out of environment variables because every session on the environment reads them and Claude can print them. There is no separate secrets store. A connector stores the credential outside the sandbox and attaches it to matching requests at the network layer, so Claude uses the service without holding the raw value. [Agent Proxy](/docs/claude-tag/concepts/agent-identity.md#agent-proxy) describes how. A connector in a bundle also travels with that bundle, so you choose channel by channel which sessions can use it. Repository-specific setup goes in `CLAUDE.md` so the people who maintain the repository keep it current. Claude reads it when it starts work in that repository. +Keep credentials out of environment variables because every session on the environment reads them and Claude can print them. There is no separate secrets store. A connector stores the credential outside the sandbox and attaches it to matching requests at the network layer, so Claude uses the service without holding the raw value. [Agent Proxy](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy) describes how. A connector in a bundle also travels with that bundle, so you choose channel by channel which sessions can use it. Repository-specific setup goes in `CLAUDE.md` so the people who maintain the repository keep it current. Claude reads it when it starts work in that repository. ### Create the environment and choose it on a scope @@ -148,7 +148,7 @@ When a session starts, Claude uses the first environment it finds, in this order 3. The **Environment** setting on the **Slack** page 4. The [organization's default environment](https://code.claude.com/docs/en/cloud-environments#the-default-environment), which an Owner chooses under **Cloud sessions** at [`claude.ai/admin-settings/claude-code`](https://claude.ai/admin-settings/claude-code) -If you haven't chosen an environment on a scope, its picker shows **Organization default**, but sessions there may still run on an environment you chose on the workspace or on the **Slack** page. In a channel where Claude runs with [channel-only access](/docs/claude-tag/admins/restrict-access.md#how-channel-only-works) because a guest is present, sessions run on the standard environment regardless of these settings. If a channel's sessions aren't on the environment you expect, see [channel sessions use the wrong environment](/docs/claude-tag/admins/troubleshooting.md#channel-sessions-use-the-wrong-environment-or-can%E2%80%99t-find-one). +If you haven't chosen an environment on a scope, its picker shows **Organization default**, but sessions there may still run on an environment you chose on the workspace or on the **Slack** page. In a channel where Claude runs with [channel-only access](https://claude.com/docs/claude-tag/admins/restrict-access.md#how-channel-only-works) because a guest is present, sessions run on the standard environment regardless of these settings. If a channel's sessions aren't on the environment you expect, see [channel sessions use the wrong environment](https://claude.com/docs/claude-tag/admins/troubleshooting.md#channel-sessions-use-the-wrong-environment-or-can%E2%80%99t-find-one). ## Auto mode allow rules @@ -163,7 +163,7 @@ A rule is a plain sentence that describes work you approve in the scope, such as The rules list has three properties: * **Limits:** a scope holds up to 50 rules, and each rule can be up to 1,024 characters -* **Inheritance:** rules you set on a workspace or on the [**Slack** page](/docs/claude-tag/admins/attach-to-scope.md#how-scopes-inherit) (the organization-wide root) carry down to the channels beneath, the way [custom instructions](/docs/claude-tag/admins/attach-to-scope.md#custom-instructions) stack. A channel's own rules add to those and never replace them, so put a rule on a single channel's scope to pre-approve an action there without changing any other channel. +* **Inheritance:** rules you set on a workspace or on the [**Slack** page](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#how-scopes-inherit) (the organization-wide root) carry down to the channels beneath, the way [custom instructions](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#custom-instructions) stack. A channel's own rules add to those and never replace them, so put a rule on a single channel's scope to pre-approve an action there without changing any other channel. * **Access:** you edit the list with the same admin access as the scope's other **Advanced** settings > [!WARNING] @@ -176,7 +176,7 @@ The Claude app's name, @-handle, and avatar in Slack are the same in every works ## Related resources -* [Settings map](/docs/claude-tag/concepts/settings-map.md): every settings surface, including spend limits and personal connectors -* [What Claude Tag remembers](/docs/claude-tag/users/memory.md): how channel instructions are stored, shared, and corrected -* [Good habits for working with Claude Tag](/docs/claude-tag/users/good-habits.md): phrasings that make recurring output consistent -* [How agent identity works](/docs/claude-tag/concepts/agent-identity.md): why access is set per channel +* [Settings map](https://claude.com/docs/claude-tag/concepts/settings-map.md): every settings surface, including spend limits and personal connectors +* [What Claude Tag remembers](https://claude.com/docs/claude-tag/users/memory.md): how channel instructions are stored, shared, and corrected +* [Good habits for working with Claude Tag](https://claude.com/docs/claude-tag/users/good-habits.md): phrasings that make recurring output consistent +* [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md): why access is set per channel diff --git a/content/claude/claude-tag/admins/federated-access/authorization-server.md b/content/claude/claude-tag/admins/federated-access/authorization-server.md index 8aa011d9b..057868d69 100644 --- a/content/claude/claude-tag/admins/federated-access/authorization-server.md +++ b/content/claude/claude-tag/admins/federated-access/authorization-server.md @@ -14,9 +14,9 @@ > > Authorization servers are connected on the [**Federated agent access**](https://claude.ai/admin-settings/claude-tag/federated-cloud-access) page, under **Claude Tag** in the admin settings sidebar. Use its **Authorization servers** section. Connecting a server needs an organization Owner, or an admin with full Claude Tag management permission. -With an authorization server connection, Claude presents a short-lived identity token to an OAuth 2.0 authorization server you run, receives one of your access tokens in return, and calls your APIs with it. No long-lived credential for your systems is stored in Claude, and [Agent Proxy](/docs/claude-tag/concepts/agent-identity.md#agent-proxy) holds each access token only until it expires. The identity token names your organization and the [agent](/docs/claude-tag/concepts/agent-identity.md) making the request (Claude's identity in one Slack channel), and your server decides whether to issue a token for it. +With an authorization server connection, Claude presents a short-lived identity token to an OAuth 2.0 authorization server you run, receives one of your access tokens in return, and calls your APIs with it. No long-lived credential for your systems is stored in Claude, and [Agent Proxy](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy) holds each access token only until it expires. The identity token names your organization and the [agent](https://claude.com/docs/claude-tag/concepts/agent-identity.md) making the request (Claude's identity in one Slack channel), and your server decides whether to issue a token for it. -Choose this when you run an authorization server that issues tokens for your APIs. If your own service will verify the identity token on every request instead, [connect a gateway](/docs/claude-tag/admins/federated-access/connect-a-gateway.md). If a vendor's API gave you a private key to sign assertions with (Salesforce, for example), use the [OAuth 2.0 JWT bearer](/docs/claude-tag/admins/connections/custom.md#oauth-2-0-jwt-bearer) credential type instead; the console labels this page's connection **Authorization server**. +Choose this when you run an authorization server that issues tokens for your APIs. If your own service will verify the identity token on every request instead, [connect a gateway](https://claude.com/docs/claude-tag/admins/federated-access/connect-a-gateway.md). If a vendor's API gave you a private key to sign assertions with (Salesforce, for example), use the [OAuth 2.0 JWT bearer](https://claude.com/docs/claude-tag/admins/connections/custom.md#oauth-2-0-jwt-bearer) credential type instead; the console labels this page's connection **Authorization server**. Two terms recur on this page. The **subject check** is what your server does to every identity token, confirming it belongs to your organization. The **connection check** is the probe the console runs when a gateway is connected; it doesn't run for token endpoints. @@ -30,7 +30,7 @@ Two terms recur on this page. The **subject check** is what your server does to * isn't an IP address, a private-network name, an Anthropic-owned host, or a cloud token-exchange host * The token endpoint is on a different host from the APIs Claude will call with the returned token, for example `auth.example.com` and `api.example.com`, or its address has a folder of its own, like `/oauth2` in `https://auth.example.com/oauth2/token`. * Your server can reach `https://identity.anthropic.com` to fetch Anthropic's signing keys. -* An organization can register up to 5 [gateways](/docs/claude-tag/admins/federated-access/connect-a-gateway.md), and an authorization server's audience address (its **Issuer URL** value, or its token endpoint when that field is empty) counts as one. +* An organization can register up to 5 [gateways](https://claude.com/docs/claude-tag/admins/federated-access/connect-a-gateway.md), and an authorization server's audience address (its **Issuer URL** value, or its token endpoint when that field is empty) counts as one. ## Copy the values from the console @@ -41,7 +41,7 @@ In **Authorization servers**, click **Connect an authorization server**, enter y | Issuer | `https://identity.anthropic.com/agents`, matched exactly. The OpenID Connect (OIDC) discovery document is at `https://identity.anthropic.com/agents/.well-known/openid-configuration`. | | JWKS URL | The JSON Web Key Set (JWKS) named by `jwks_uri` in the discovery document, `https://identity.anthropic.com/agents/jwks.json`. Accept ES256 only. Select the key by `kid`, and refetch the JWKS on an unknown `kid` before rejecting the token. | | Audience | Your authorization server's issuer identifier, as you enter it in the **Issuer URL** field when you connect the server, for example `https://auth.example.com`. It must be an HTTPS URL on the same host as the token endpoint. If your server requires the token endpoint URL as the audience instead, leave **Issuer URL** empty and the audience is the token endpoint address as the console stores it (the host lowercased, a bare trailing slash dropped, the rest kept as entered). Either way, copy the **Audience** row into your verifier rather than typing it. The `aud` claim is a JSON array with one element. Accept only this exact value, not any address on your host. | -| Subject prefix | `wimse://identity.anthropic.com/org//agent/`. Every token's `sub` claim starts with this prefix and ends with one agent's ID; see the [subject](/docs/claude-tag/admins/federated-access/token-reference.md#subject) format. Agent IDs aren't shown in the console; your server learns them from the tokens it receives, and they change, for example when a Slack channel is deleted and recreated. | +| Subject prefix | `wimse://identity.anthropic.com/org//agent/`. Every token's `sub` claim starts with this prefix and ends with one agent's ID; see the [subject](https://claude.com/docs/claude-tag/admins/federated-access/token-reference.md#subject) format. Agent IDs aren't shown in the console; your server learns them from the tokens it receives, and they change, for example when a Slack channel is deleted and recreated. | | Tenant | Your organization ID, the value between `/org/` and `/agent/` in the **Subject prefix**, carried in every token as the `tenant` claim. | | Expiry | Tokens expire 10 minutes after they're issued. Check `exp`, allowing up to 60 seconds of clock skew. | @@ -58,7 +58,7 @@ The `resource` ([RFC 8707](https://www.rfc-editor.org/rfc/rfc8707)) and `scope` Your server must: * Verify the token with a standard JWT or OIDC library configured with the issuer, JWKS URL, audience, and expiry from [Copy the values from the console](#copy-the-values-from-the-console). -* Check the subject. Where your use case allows, accept only the full subjects of your own agents, and update that list when a Slack channel is deleted and recreated. At minimum, reject every token whose `sub` doesn't start with your **Subject prefix**, or equivalently pin `iss` and reject every token whose `tenant` isn't your organization ID. This check is required because every organization's tokens come from the same issuer; see [Authorize on the subject](/docs/claude-tag/admins/federated-access/token-reference.md#authorize-on-the-subject). The console's connection check doesn't run for token endpoints, so nothing tests this check for you. +* Check the subject. Where your use case allows, accept only the full subjects of your own agents, and update that list when a Slack channel is deleted and recreated. At minimum, reject every token whose `sub` doesn't start with your **Subject prefix**, or equivalently pin `iss` and reject every token whose `tenant` isn't your organization ID. This check is required because every organization's tokens come from the same issuer; see [Authorize on the subject](https://claude.com/docs/claude-tag/admins/federated-access/token-reference.md#authorize-on-the-subject). The console's connection check doesn't run for token endpoints, so nothing tests this check for you. * Decide what the agent may do, for example from the agent ID at the end of `sub`, and issue an access token for it. Tokens may carry additional opaque claims; ignore claims you don't recognize. * Return `200` with a JSON body: `access_token`, `token_type` (`Bearer`, compared without regard to case, and may be omitted), and `expires_in` in seconds. @@ -88,15 +88,15 @@ If you close the dialog at that point, the audience address stays registered and Optionally enter a **Resource**, the API the returned token should be scoped to as an absolute URI (for example `https://api.example.com`), and a **Scope**, space-separated scopes to request. In **Allowed API hosts**, add the hosts Claude may call with the returned token, for example `api.example.com`. A wildcard as the leftmost label matches any subdomain. An entry or wildcard can cover the token endpoint's host only when the endpoint's address has a folder of its own, like `/oauth2` in `https://auth.example.com/oauth2/token`. In that case, list the paths Claude may use, such as `/graphql`, under **Allowed API paths**. A listed path covers everything under it, and a path that overlaps the token endpoint's folder isn't allowed. Then choose a bundle from the **Access bundle** list (or create one: click **New bundle** if the dialog shows it, enter a **Bundle name**, and click **Create bundle**) and click **Connect server**. -This creates a [connection](/docs/claude-tag/admins/add-connections.md) in that bundle, with the API hosts under **Allowed hosts**. Agent Proxy attaches the access token as an `Authorization: Bearer` header to every request Claude makes to those hosts. A token endpoint can be connected once in your organization, in one bundle, and the connection applies wherever that bundle applies. +This creates a [connection](https://claude.com/docs/claude-tag/admins/add-connections.md) in that bundle, with the API hosts under **Allowed hosts**. Agent Proxy attaches the access token as an `Authorization: Bearer` header to every request Claude makes to those hosts. A token endpoint can be connected once in your organization, in one bundle, and the connection applies wherever that bundle applies. The **Authorization servers** table lists each server by its **Token endpoint**, with its **Access bundle**, its **Allowed hosts**, when it was **Added**, and a **Remove** action. The audience address also appears in the **Gateways** table with its check marked **Skipped** and a note that a connected authorization server uses it. ## Let agents use the APIs -Claude uses the connection in the channels where its bundle applies. A bundle you created in the connect dialog applies nowhere until you choose places; see [Manage federated connections on the Connectors tab](/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab). +Claude uses the connection in the channels where its bundle applies. A bundle you created in the connect dialog applies nowhere until you choose places; see [Manage federated connections on the Connectors tab](https://claude.com/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab). -Claude also needs to know what the APIs are for. Add a line like this to the scope's [custom instructions](/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions): +Claude also needs to know what the APIs are for. Add a line like this to the scope's [custom instructions](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions): ```text wrap theme={null} The internal orders API is at https://api.example.com; see GET /openapi.json for what it offers. Authentication is already set up. @@ -104,11 +104,11 @@ The internal orders API is at https://api.example.com; see GET /openapi.json for The exchange happens in Agent Proxy, outside Claude's sandbox, so neither the identity token nor your access token is visible to Claude, and Claude can't perform the exchange itself. -New threads pick up the connection on their own. In a thread already running, ask Claude to use the API and name its host. If Claude still can't, send [`@Claude !restart`](/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session) in that thread. Claude then continues from a fresh session with your organization's current configuration. +New threads pick up the connection on their own. In a thread already running, ask Claude to use the API and name its host. If Claude still can't, send [`@Claude !restart`](https://claude.com/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session) in that thread. Claude then continues from a fresh session with your organization's current configuration. ## Verify the connection -[Federated connections](/docs/claude-tag/admins/federated-access/limits.md#where-federated-connections-work) work only in agent sessions, such as a Slack channel. A test from a personal session, such as a direct message with `@Claude`, won't work. +[Federated connections](https://claude.com/docs/claude-tag/admins/federated-access/limits.md#where-federated-connections-work) work only in agent sessions, such as a Slack channel. A test from a personal session, such as a direct message with `@Claude`, won't work. In a channel where the connection applies, start a new thread and ask Claude to make a small read: @@ -116,7 +116,7 @@ In a channel where the connection applies, start a new thread and ask Claude to @Claude call GET /openapi.json on https://api.example.com and tell me what the API offers. ``` -Then check your authorization server's logs for a JWT bearer grant whose token has your **Subject prefix**, and your API's logs for a request carrying the access token it issued. If the grant was refused, your server's own error is the reason; Claude sees only that the request failed. See [Troubleshoot federated agent access](/docs/claude-tag/admins/federated-access/troubleshooting.md) for the errors Claude shows. +Then check your authorization server's logs for a JWT bearer grant whose token has your **Subject prefix**, and your API's logs for a request carrying the access token it issued. If the grant was refused, your server's own error is the reason; Claude sees only that the request failed. See [Troubleshoot federated agent access](https://claude.com/docs/claude-tag/admins/federated-access/troubleshooting.md) for the errors Claude shows. ## Remove the server @@ -127,19 +127,19 @@ In the **Authorization servers** table, click **Remove** in the server's row, th Five messages come up while connecting: * **"The issuer URL must be an https URL on the same host as the token endpoint. Leave it empty to use the token endpoint as the audience."**: the **Issuer URL** value is not an HTTPS URL on the token endpoint's host. Enter the issuer identifier your server uses there, or clear the field. -* **"This token endpoint is already connected in the bundle"**: the server already has its one connection. Apply that bundle where you need the server instead; see [Manage federated connections on the Connectors tab](/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab). +* **"This token endpoint is already connected in the bundle"**: the server already has its one connection. Apply that bundle where you need the server instead; see [Manage federated connections on the Connectors tab](https://claude.com/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab). * **"This organization has reached its limit of 5 registered gateways, which includes token endpoints"**: remove an unused row from the **Gateways** table first. * **"The allowed hosts can't include the token endpoint's host"**: an **Allowed API hosts** entry, or a wildcard in it, covers the token endpoint's host, and the endpoint's address has no folder of its own. Put the token endpoint on a different host from the APIs, or use a token endpoint address with a folder of its own, like `/oauth2` in `https://auth.example.com/oauth2/token`. -* **"That address is already connected as a gateway. Enter your authorization server's own addresses, or remove the gateway first."**: the token endpoint, or the **Issuer URL** value, is the address of a gateway connected in one of your bundles. Enter the server's own addresses, or delete that gateway's connection from its bundle first, as [Manage federated connections on the Connectors tab](/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab) describes. +* **"That address is already connected as a gateway. Enter your authorization server's own addresses, or remove the gateway first."**: the token endpoint, or the **Issuer URL** value, is the address of a gateway connected in one of your bundles. Enter the server's own addresses, or delete that gateway's connection from its bundle first, as [Manage federated connections on the Connectors tab](https://claude.com/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab) describes. -For other dialog messages, see [Troubleshoot federated agent access](/docs/claude-tag/admins/federated-access/troubleshooting.md). +For other dialog messages, see [Troubleshoot federated agent access](https://claude.com/docs/claude-tag/admins/federated-access/troubleshooting.md). -If Claude reports HTTP 403 with a reason that starts with [`request blocked: federated connections work only in agent sessions (such as a Slack channel), not in personal sessions (such as a direct message)`](/docs/claude-tag/admins/federated-access/troubleshooting#request-blocked-federated-connections-work-only-in-agent-sessions-such-as-a-slack-channel--not-in-personal-sessions-such-as-a-direct-message), the request came from a personal session, such as a direct message with `@Claude`. A personal session runs under a person's own account. [Federated connections](/docs/claude-tag/admins/federated-access/limits.md#where-federated-connections-work) work only in agent sessions, so test again from a new thread in a Slack channel where the connection [applies](/docs/claude-tag/admins/attach-to-scope.md#how-scopes-inherit). +If Claude reports HTTP 403 with a reason that starts with [`request blocked: federated connections work only in agent sessions (such as a Slack channel), not in personal sessions (such as a direct message)`](https://claude.com/docs/claude-tag/admins/federated-access/troubleshooting#request-blocked-federated-connections-work-only-in-agent-sessions-such-as-a-slack-channel--not-in-personal-sessions-such-as-a-direct-message), the request came from a personal session, such as a direct message with `@Claude`. A personal session runs under a person's own account. [Federated connections](https://claude.com/docs/claude-tag/admins/federated-access/limits.md#where-federated-connections-work) work only in agent sessions, so test again from a new thread in a Slack channel where the connection [applies](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#how-scopes-inherit). ## Related resources -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the bundle and connection model -* [Attach a bundle to a scope](/docs/claude-tag/admins/attach-to-scope.md): where a connection applies -* [Identity token reference](/docs/claude-tag/admins/federated-access/token-reference.md): every claim in the token, lifetimes, and key rotation -* [Connect a gateway](/docs/claude-tag/admins/federated-access/connect-a-gateway.md): the alternative where your own service verifies the token on every request -* [Troubleshoot federated agent access](/docs/claude-tag/admins/federated-access/troubleshooting.md): console and runtime errors for every connection type +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the bundle and connection model +* [Attach a bundle to a scope](https://claude.com/docs/claude-tag/admins/attach-to-scope.md): where a connection applies +* [Identity token reference](https://claude.com/docs/claude-tag/admins/federated-access/token-reference.md): every claim in the token, lifetimes, and key rotation +* [Connect a gateway](https://claude.com/docs/claude-tag/admins/federated-access/connect-a-gateway.md): the alternative where your own service verifies the token on every request +* [Troubleshoot federated agent access](https://claude.com/docs/claude-tag/admins/federated-access/troubleshooting.md): console and runtime errors for every connection type diff --git a/content/claude/claude-tag/admins/federated-access/aws.md b/content/claude/claude-tag/admins/federated-access/aws.md index a1e5b41ef..0e7c8160d 100644 --- a/content/claude/claude-tag/admins/federated-access/aws.md +++ b/content/claude/claude-tag/admins/federated-access/aws.md @@ -14,7 +14,7 @@ > > AWS roles are connected on the [**Federated agent access**](https://claude.ai/admin-settings/claude-tag/federated-cloud-access) page, under **Claude Tag** in the admin settings sidebar. Use its **Cloud roles** section. Connecting a role needs an organization Owner, or an admin with full Claude Tag management permission. -With an AWS role connection, Claude signs in to an IAM role in your AWS account with a short-lived identity token and calls AWS with the role's permissions. No access key is stored in Claude. The token names your organization and the [agent](/docs/claude-tag/concepts/agent-identity.md) making the request (Claude's identity in one Slack channel), and your role's trust policy decides which tokens to accept. If someone else manages your AWS account, give them the values from the console and the trust policy below; the console steps need an organization Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration). +With an AWS role connection, Claude signs in to an IAM role in your AWS account with a short-lived identity token and calls AWS with the role's permissions. No access key is stored in Claude. The token names your organization and the [agent](https://claude.com/docs/claude-tag/concepts/agent-identity.md) making the request (Claude's identity in one Slack channel), and your role's trust policy decides which tokens to accept. If someone else manages your AWS account, give them the values from the console and the trust policy below; the console steps need an organization Owner or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration). ## Before you begin @@ -67,7 +67,7 @@ Create an IAM role with the trust policy below. Replace the account ID with your } ``` -Keep both conditions. Because every organization's tokens come from the same issuer with the same audience, the `sub` condition is the only thing that limits the role to your organization; see [Authorize on the subject](/docs/claude-tag/admins/federated-access/token-reference.md#authorize-on-the-subject). The wildcard replaces only the agent ID at the end. Never put a wildcard before `/agent/`. `StringEquals` on the prefix never matches, so keep the prefix condition under `StringLike`. Both condition keys start with `identity.anthropic.com/agents:` (the issuer without `https://`). +Keep both conditions. Because every organization's tokens come from the same issuer with the same audience, the `sub` condition is the only thing that limits the role to your organization; see [Authorize on the subject](https://claude.com/docs/claude-tag/admins/federated-access/token-reference.md#authorize-on-the-subject). The wildcard replaces only the agent ID at the end. Never put a wildcard before `/agent/`. `StringEquals` on the prefix never matches, so keep the prefix condition under `StringLike`. Both condition keys start with `identity.anthropic.com/agents:` (the issuer without `https://`). The prefix condition is the minimum, and it admits every agent in your organization. Where your use case allows, pin the role to specific agents instead, which is the strongest form: use `StringEquals` on `identity.anthropic.com/agents:sub` with one full subject, or a JSON array of full subjects. The console doesn't show agent IDs, so you learn a subject from CloudTrail after a first sign-in under the prefix condition. Agent IDs change when a Slack channel is deleted and recreated, so update the policy when that happens. @@ -87,7 +87,7 @@ In the **Role ARN** field, enter the role's ARN, for example `arn:aws:iam::12345 **3. Narrow the allowed AWS hosts** -The **Allowed AWS hosts** field starts with `*.amazonaws.com`, which lets Claude use the role with any AWS service. Keep that entry for the first verification, then narrow the list to the hosts Claude needs from the connection's [**Edit connection** dialog](/docs/claude-tag/admins/add-connections.md#set-allowed-websites), which you open from the connection's row on the **Connectors** tab; see [Manage federated connections on the Connectors tab](/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab). A wildcard covers subdomains only: `*.s3.us-west-2.amazonaws.com` matches `example-reports.s3.us-west-2.amazonaws.com` but not `s3.us-west-2.amazonaws.com`. The AWS CLI and SDKs use both forms for S3, so list both the plain host and the wildcard for each region, and for `us-east-1` also `*.s3.amazonaws.com`, the older global S3 address some tools still use there. Every host must end in `.amazonaws.com`. The sign-in itself goes to the AWS Security Token Service (STS) from Anthropic's side and doesn't need an entry here. +The **Allowed AWS hosts** field starts with `*.amazonaws.com`, which lets Claude use the role with any AWS service. Keep that entry for the first verification, then narrow the list to the hosts Claude needs from the connection's [**Edit connection** dialog](https://claude.com/docs/claude-tag/admins/add-connections.md#set-allowed-websites), which you open from the connection's row on the **Connectors** tab; see [Manage federated connections on the Connectors tab](https://claude.com/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab). A wildcard covers subdomains only: `*.s3.us-west-2.amazonaws.com` matches `example-reports.s3.us-west-2.amazonaws.com` but not `s3.us-west-2.amazonaws.com`. The AWS CLI and SDKs use both forms for S3, so list both the plain host and the wildcard for each region, and for `us-east-1` also `*.s3.amazonaws.com`, the older global S3 address some tools still use there. Every host must end in `.amazonaws.com`. The sign-in itself goes to the AWS Security Token Service (STS) from Anthropic's side and doesn't need an entry here. **4. Confirm the trust policy** @@ -95,27 +95,27 @@ Select the checkbox labeled **The role's trust policy requires the subject prefi **5. Choose a bundle and connect** -Choose a bundle from the **Access bundle** list, or create one: click **New bundle** if the dialog shows it, enter a **Bundle name**, and click **Create bundle**. Then click **Connect role**. This creates a [connection](/docs/claude-tag/admins/add-connections.md) in that bundle, with the hosts you entered under **Allowed hosts**. A role can be connected in one bundle only, and it applies wherever that bundle applies. +Choose a bundle from the **Access bundle** list, or create one: click **New bundle** if the dialog shows it, enter a **Bundle name**, and click **Create bundle**. Then click **Connect role**. This creates a [connection](https://claude.com/docs/claude-tag/admins/add-connections.md) in that bundle, with the hosts you entered under **Allowed hosts**. A role can be connected in one bundle only, and it applies wherever that bundle applies. The **Cloud roles** table has **Role**, **Access bundle**, **Allowed hosts**, **Added**, and **Actions** columns. Each connection's name appears under **Role** with the role's ARN and an **AWS role** chip beneath it, and **Check trust policy** and **Remove** are under **Actions**. ## Let agents use the role -Claude uses the role in the channels where its bundle applies. A bundle you created in the connect dialog applies nowhere until you choose places; see [Manage federated connections on the Connectors tab](/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab). +Claude uses the role in the channels where its bundle applies. A bundle you created in the connect dialog applies nowhere until you choose places; see [Manage federated connections on the Connectors tab](https://claude.com/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab). -Claude also needs to know what the role is for. Add a line like this to the scope's [custom instructions](/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions): +Claude also needs to know what the role is for. Add a line like this to the scope's [custom instructions](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions): ```text wrap theme={null} Use the AWS CLI to read the S3 bucket example-reports in us-west-2. AWS access is already set up. ``` -Claude calls AWS with `curl`, an AWS SDK, or the AWS CLI, as with an [AWS SigV4 credential](/docs/claude-tag/admins/connections/custom.md#aws-sigv4). [Agent Proxy](/docs/claude-tag/concepts/agent-identity.md#agent-proxy) signs each request at the network boundary with the role's temporary credentials, so the sandbox never holds them. +Claude calls AWS with `curl`, an AWS SDK, or the AWS CLI, as with an [AWS SigV4 credential](https://claude.com/docs/claude-tag/admins/connections/custom.md#aws-sigv4). [Agent Proxy](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy) signs each request at the network boundary with the role's temporary credentials, so the sandbox never holds them. -New threads pick up the connection on their own. In a thread already running, ask Claude to use AWS. If Claude still can't, send [`@Claude !restart`](/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session) in that thread. Claude then continues from a fresh session with your organization's current configuration. +New threads pick up the connection on their own. In a thread already running, ask Claude to use AWS. If Claude still can't, send [`@Claude !restart`](https://claude.com/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session) in that thread. Claude then continues from a fresh session with your organization's current configuration. ## Verify the connection -[Federated connections](/docs/claude-tag/admins/federated-access/limits.md#where-federated-connections-work) work only in agent sessions, such as a Slack channel. A test from a personal session, such as a direct message with `@Claude`, won't work. +[Federated connections](https://claude.com/docs/claude-tag/admins/federated-access/limits.md#where-federated-connections-work) work only in agent sessions, such as a Slack channel. A test from a personal session, such as a direct message with `@Claude`, won't work. In a channel where the role's connection applies, start a new thread and ask Claude to run a connectivity check. The check is Claude's own request to `sts.amazonaws.com`, so keep `*.amazonaws.com` under the connection's **Allowed hosts** for this check, or add `sts.amazonaws.com` if you already narrowed the list. The sign-in itself needs no entry there. After the check passes, remove `sts.amazonaws.com` again if you added it, or narrow the wildcard. While it is listed, Claude can send any STS request signed with the role's credentials. If the role is allowed to assume another role, the credentials AWS returns are readable in Claude's sandbox. The call needs no permissions policy on the role. Send Claude this prompt: @@ -136,7 +136,7 @@ If Claude reports that the request was refused, CloudTrail usually shows why. * `AccessDenied` on the sign-in means the trust policy didn't accept the token. Check the `sub` condition and the condition-key prefix. * A denied action after a successful sign-in means AWS denied the action. Check the role's permissions policy first, then any bucket policy, permissions boundary, or service control policy. -See [Troubleshoot federated agent access](/docs/claude-tag/admins/federated-access/troubleshooting.md) for the errors Claude shows. +See [Troubleshoot federated agent access](https://claude.com/docs/claude-tag/admins/federated-access/troubleshooting.md) for the errors Claude shows. To disconnect a role, click **Remove** in the role's row of the **Cloud roles** table, then **Remove role** in the confirmation. Claude stops using the role within about a minute, in existing threads as well as new ones, and the connection is removed from its bundle. Credentials from an earlier sign-in stay valid in AWS until they expire, within 1 hour; they're held only by Agent Proxy, never by Claude's sandbox. @@ -144,17 +144,17 @@ To disconnect a role, click **Remove** in the role's row of the **Cloud roles** Two messages come up while connecting: -* **"This role is already connected in the bundle"**: the role already has its one connection. Apply that bundle where you need the role instead; see [Manage federated connections on the Connectors tab](/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab). +* **"This role is already connected in the bundle"**: the role already has its one connection. Apply that bundle where you need the role instead; see [Manage federated connections on the Connectors tab](https://claude.com/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab). * **"Enter a role ARN like `arn:aws:iam::123456789012:role/ClaudeTag`"**: the **Role ARN** field rejected the value, most often because the ARN is in the AWS GovCloud (US) or AWS China partition, which can't be connected. -For other dialog messages, see [Troubleshoot federated agent access](/docs/claude-tag/admins/federated-access/troubleshooting.md). +For other dialog messages, see [Troubleshoot federated agent access](https://claude.com/docs/claude-tag/admins/federated-access/troubleshooting.md). -If Claude reports HTTP 403 with a reason that starts with [`request blocked: federated connections work only in agent sessions (such as a Slack channel), not in personal sessions (such as a direct message)`](/docs/claude-tag/admins/federated-access/troubleshooting#request-blocked-federated-connections-work-only-in-agent-sessions-such-as-a-slack-channel--not-in-personal-sessions-such-as-a-direct-message), the request came from a personal session, such as a direct message with `@Claude`. A personal session runs under a person's own account. [Federated connections](/docs/claude-tag/admins/federated-access/limits.md#where-federated-connections-work) work only in agent sessions, so test again from a new thread in a Slack channel where the connection [applies](/docs/claude-tag/admins/attach-to-scope.md#how-scopes-inherit). +If Claude reports HTTP 403 with a reason that starts with [`request blocked: federated connections work only in agent sessions (such as a Slack channel), not in personal sessions (such as a direct message)`](https://claude.com/docs/claude-tag/admins/federated-access/troubleshooting#request-blocked-federated-connections-work-only-in-agent-sessions-such-as-a-slack-channel--not-in-personal-sessions-such-as-a-direct-message), the request came from a personal session, such as a direct message with `@Claude`. A personal session runs under a person's own account. [Federated connections](https://claude.com/docs/claude-tag/admins/federated-access/limits.md#where-federated-connections-work) work only in agent sessions, so test again from a new thread in a Slack channel where the connection [applies](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#how-scopes-inherit). ## Related resources -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the bundle and connection model -* [Attach a bundle to a scope](/docs/claude-tag/admins/attach-to-scope.md): where a role connection applies -* [Identity token reference](/docs/claude-tag/admins/federated-access/token-reference.md): every claim in the token, lifetimes, and key rotation -* [Troubleshoot federated agent access](/docs/claude-tag/admins/federated-access/troubleshooting.md): console and runtime errors for every connection type -* [AWS SigV4 credential](/docs/claude-tag/admins/connections/custom.md#aws-sigv4): the stored-key alternative, and how Claude signs AWS requests +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the bundle and connection model +* [Attach a bundle to a scope](https://claude.com/docs/claude-tag/admins/attach-to-scope.md): where a role connection applies +* [Identity token reference](https://claude.com/docs/claude-tag/admins/federated-access/token-reference.md): every claim in the token, lifetimes, and key rotation +* [Troubleshoot federated agent access](https://claude.com/docs/claude-tag/admins/federated-access/troubleshooting.md): console and runtime errors for every connection type +* [AWS SigV4 credential](https://claude.com/docs/claude-tag/admins/connections/custom.md#aws-sigv4): the stored-key alternative, and how Claude signs AWS requests diff --git a/content/claude/claude-tag/admins/federated-access/connect-a-gateway.md b/content/claude/claude-tag/admins/federated-access/connect-a-gateway.md index f0336ed75..b5c9a5ecd 100644 --- a/content/claude/claude-tag/admins/federated-access/connect-a-gateway.md +++ b/content/claude/claude-tag/admins/federated-access/connect-a-gateway.md @@ -14,7 +14,7 @@ > > Gateways are connected on the [**Federated agent access**](https://claude.ai/admin-settings/claude-tag/federated-cloud-access) page, under **Claude Tag** in the admin settings sidebar. Use its **Gateways** section. Connecting a gateway needs an organization Owner, or an admin with full Claude Tag management permission. -A gateway is a service you run between Claude and your internal systems. Every request Claude sends it carries a signed identity token naming your organization and the [agent](/docs/claude-tag/concepts/agent-identity.md) making the request (Claude's identity in one Slack channel). The gateway checks the token, decides what that agent may do, and forwards the request with your own credentials. No long-lived credential for your systems is stored in Claude. +A gateway is a service you run between Claude and your internal systems. Every request Claude sends it carries a signed identity token naming your organization and the [agent](https://claude.com/docs/claude-tag/concepts/agent-identity.md) making the request (Claude's identity in one Slack channel). The gateway checks the token, decides what that agent may do, and forwards the request with your own credentials. No long-lived credential for your systems is stored in Claude. Two terms recur on this page. The **subject check** is what your gateway does to every token, confirming it belongs to your organization. The **connection check** is what the console does once, when you connect the gateway, confirming that your gateway performs the subject check. @@ -42,7 +42,7 @@ Claude authenticates with a JSON Web Token (JWT) in the `Authorization: Bearer` | Control subject | A reserved test identity in your organization, copied from the dialog. Anthropic uses it only for the connection check. | | Expiry | Tokens expire 10 minutes after they're issued. Check `exp`, allowing up to 60 seconds of clock skew. | -The subject check is yours to implement, and it's required, because every organization's tokens come from the same issuer; see [Authorize on the subject](/docs/claude-tag/admins/federated-access/token-reference.md#authorize-on-the-subject). Implement the check in one of two forms, strongest first: +The subject check is yours to implement, and it's required, because every organization's tokens come from the same issuer; see [Authorize on the subject](https://claude.com/docs/claude-tag/admins/federated-access/token-reference.md#authorize-on-the-subject). Implement the check in one of two forms, strongest first: * Accept only an explicit list of your own agents' full subjects, when your use case allows it. The sample gateway does this by default and offers the prefix form below as an opt-in setting. Agent IDs change when a Slack channel is deleted and recreated, so you update the list when that happens. * Otherwise, reject every token whose `sub` doesn't start with your **Subject prefix**, or pin `iss` and `tenant` together. The `tenant` claim is your organization ID, the same value the subject carries between `/org/` and `/agent/`, so checking it is the subject check in claim form. This is the minimum. @@ -82,9 +82,9 @@ The **Gateways** table lists each gateway with its **Access bundles**, its **Con ## Let agents reach the gateway -Claude uses the gateway in the channels where its bundle applies. A bundle you created in the connect dialog applies nowhere until you choose places; see [Manage federated connections on the Connectors tab](/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab). +Claude uses the gateway in the channels where its bundle applies. A bundle you created in the connect dialog applies nowhere until you choose places; see [Manage federated connections on the Connectors tab](https://claude.com/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab). -Claude also needs to know the gateway exists. Add a line like this to the scope's [custom instructions](/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions): +Claude also needs to know the gateway exists. Add a line like this to the scope's [custom instructions](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions): ```text wrap theme={null} Internal APIs are behind https://gateway.example.com. Call GET /list-services there to see what is available. @@ -92,11 +92,11 @@ Internal APIs are behind https://gateway.example.com. Call GET /list-services th The sample gateway serves `GET /list-services` for this; an OpenAPI document named in the instructions works as well. -New threads pick up the connection on their own. In a thread already running, ask Claude to use the gateway and include its address. If Claude still can't see the gateway, send [`@Claude !restart`](/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session) in that thread. Claude then continues from a fresh session with your organization's current configuration. +New threads pick up the connection on their own. In a thread already running, ask Claude to use the gateway and include its address. If Claude still can't see the gateway, send [`@Claude !restart`](https://claude.com/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session) in that thread. Claude then continues from a fresh session with your organization's current configuration. ## Verify the connection -[Federated connections](/docs/claude-tag/admins/federated-access/limits.md#where-federated-connections-work) work only in agent sessions, such as a Slack channel. A test from a personal session, such as a direct message with `@Claude`, won't work. +[Federated connections](https://claude.com/docs/claude-tag/admins/federated-access/limits.md#where-federated-connections-work) work only in agent sessions, such as a Slack channel. A test from a personal session, such as a direct message with `@Claude`, won't work. In a channel where the gateway's connection applies, start a new thread and ask Claude to make a small read through the gateway: @@ -104,24 +104,24 @@ In a channel where the gateway's connection applies, start a new thread and ask @Claude call GET /list-services on https://gateway.example.com and tell me what it returns. ``` -If your gateway logs subjects and decisions, confirm the request arrived with a token that passed every check and a subject starting with your **Subject prefix**. [Agent Proxy](/docs/claude-tag/concepts/agent-identity.md#agent-proxy) attaches the token at the network boundary; the model and the sandbox are not given it. +If your gateway logs subjects and decisions, confirm the request arrived with a token that passed every check and a subject starting with your **Subject prefix**. [Agent Proxy](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy) attaches the token at the network boundary; the model and the sandbox are not given it. To disconnect a gateway, click **Remove** in the gateway's row of the **Gateways** table and confirm with **Remove gateway**. Claude stops using the gateway at once. A token issued before the removal stays valid until it expires, within 10 minutes. ## Common errors -One message comes up while connecting. **"The check didn't pass"** means the gateway isn't reachable from the internet over HTTPS, its root route doesn't answer an empty `POST` directly, or the subject check is missing or rejects the **Control subject**. See [The check didn't pass](/docs/claude-tag/admins/federated-access/troubleshooting.md#the-check-didn%E2%80%99t-pass). +One message comes up while connecting. **"The check didn't pass"** means the gateway isn't reachable from the internet over HTTPS, its root route doesn't answer an empty `POST` directly, or the subject check is missing or rejects the **Control subject**. See [The check didn't pass](https://claude.com/docs/claude-tag/admins/federated-access/troubleshooting.md#the-check-didn%E2%80%99t-pass). -A bundle-step note that the gateway is already in a bundle isn't an error; the **Access bundle** list then offers the bundles it isn't in yet. To use the gateway in more channels without adding it to another bundle, apply a bundle it's in wherever you need the gateway; see [Manage federated connections on the Connectors tab](/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab). +A bundle-step note that the gateway is already in a bundle isn't an error; the **Access bundle** list then offers the bundles it isn't in yet. To use the gateway in more channels without adding it to another bundle, apply a bundle it's in wherever you need the gateway; see [Manage federated connections on the Connectors tab](https://claude.com/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab). -For other dialog messages, see [Troubleshoot federated agent access](/docs/claude-tag/admins/federated-access/troubleshooting.md). +For other dialog messages, see [Troubleshoot federated agent access](https://claude.com/docs/claude-tag/admins/federated-access/troubleshooting.md). -If Claude reports HTTP 403 with a reason that starts with [`request blocked: federated connections work only in agent sessions (such as a Slack channel), not in personal sessions (such as a direct message)`](/docs/claude-tag/admins/federated-access/troubleshooting#request-blocked-federated-connections-work-only-in-agent-sessions-such-as-a-slack-channel--not-in-personal-sessions-such-as-a-direct-message), the request came from a personal session, such as a direct message with `@Claude`. A personal session runs under a person's own account. [Federated connections](/docs/claude-tag/admins/federated-access/limits.md#where-federated-connections-work) work only in agent sessions, so test again from a new thread in a Slack channel where the connection [applies](/docs/claude-tag/admins/attach-to-scope.md#how-scopes-inherit). +If Claude reports HTTP 403 with a reason that starts with [`request blocked: federated connections work only in agent sessions (such as a Slack channel), not in personal sessions (such as a direct message)`](https://claude.com/docs/claude-tag/admins/federated-access/troubleshooting#request-blocked-federated-connections-work-only-in-agent-sessions-such-as-a-slack-channel--not-in-personal-sessions-such-as-a-direct-message), the request came from a personal session, such as a direct message with `@Claude`. A personal session runs under a person's own account. [Federated connections](https://claude.com/docs/claude-tag/admins/federated-access/limits.md#where-federated-connections-work) work only in agent sessions, so test again from a new thread in a Slack channel where the connection [applies](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#how-scopes-inherit). ## Related resources -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the bundle and connection model -* [Attach a bundle to a scope](/docs/claude-tag/admins/attach-to-scope.md): where a gateway connection applies -* [Identity token reference](/docs/claude-tag/admins/federated-access/token-reference.md): every claim in the token, lifetimes, and key rotation -* [Troubleshoot federated agent access](/docs/claude-tag/admins/federated-access/troubleshooting.md): console and runtime errors for every connection type +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the bundle and connection model +* [Attach a bundle to a scope](https://claude.com/docs/claude-tag/admins/attach-to-scope.md): where a gateway connection applies +* [Identity token reference](https://claude.com/docs/claude-tag/admins/federated-access/token-reference.md): every claim in the token, lifetimes, and key rotation +* [Troubleshoot federated agent access](https://claude.com/docs/claude-tag/admins/federated-access/troubleshooting.md): console and runtime errors for every connection type * [Sample gateway](https://github.com/anthropics/claude-tag-wif-gateway-sample): a reference gateway with offline tests diff --git a/content/claude/claude-tag/admins/federated-access/gcp.md b/content/claude/claude-tag/admins/federated-access/gcp.md index 806821b0d..f7f1af7aa 100644 --- a/content/claude/claude-tag/admins/federated-access/gcp.md +++ b/content/claude/claude-tag/admins/federated-access/gcp.md @@ -14,7 +14,7 @@ > > Google Cloud identities are connected on the [**Federated agent access**](https://claude.ai/admin-settings/claude-tag/federated-cloud-access) page, under **Claude Tag** in the admin settings sidebar. Use its **Cloud roles** section. Connecting an identity needs an organization Owner, or an admin with full Claude Tag management permission. -With a Google Cloud identity connection, Claude exchanges a short-lived identity token at a workload identity pool you create and calls Google Cloud APIs with the result. No service account key is stored in Claude. The token names your organization and the [agent](/docs/claude-tag/concepts/agent-identity.md) making the request (Claude's identity in one Slack channel), and your pool's attribute condition decides which tokens to accept. If someone else manages your Google Cloud project, give them the values from Claude's admin settings and the settings below; the console steps need an organization Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration). +With a Google Cloud identity connection, Claude exchanges a short-lived identity token at a workload identity pool you create and calls Google Cloud APIs with the result. No service account key is stored in Claude. The token names your organization and the [agent](https://claude.com/docs/claude-tag/concepts/agent-identity.md) making the request (Claude's identity in one Slack channel), and your pool's attribute condition decides which tokens to accept. If someone else manages your Google Cloud project, give them the values from Claude's admin settings and the settings below; the console steps need an organization Owner or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration). Before you start, decide whether Claude acts as the federated identity itself, with roles granted to it directly, or as a service account you create. Both forms are covered below. @@ -45,7 +45,7 @@ Create a workload identity pool and an OpenID Connect (OIDC) provider in it with | Attribute mapping | `google.subject` = `assertion.sub`. You can also map `attribute.org` = `assertion.tenant`, which lets you grant roles to all of your organization's agents as one principal set in [Grant access](#grant-access). | | Attribute condition | `assertion.sub == ""` for one agent. To allow several agents, join one comparison per agent with CEL's or operator. To admit every agent in your organization instead, `assertion.sub.startsWith("wimse://identity.anthropic.com/org//agent/")`. | -Google doesn't require an attribute condition, and nothing checks it for you. Without one, agents of every other Claude Tag organization can authenticate to your pool, because every organization's tokens come from the same issuer; see [Authorize on the subject](/docs/claude-tag/admins/federated-access/token-reference.md#authorize-on-the-subject). The condition on `assertion.sub` is the subject check every connection type needs. The exact form accepts only the agents you list, and the prefix form accepts every agent in your organization, because every subject carries your organization ID between `/org/` and `/agent/`. +Google doesn't require an attribute condition, and nothing checks it for you. Without one, agents of every other Claude Tag organization can authenticate to your pool, because every organization's tokens come from the same issuer; see [Authorize on the subject](https://claude.com/docs/claude-tag/admins/federated-access/token-reference.md#authorize-on-the-subject). The condition on `assertion.sub` is the subject check every connection type needs. The exact form accepts only the agents you list, and the prefix form accepts every agent in your organization, because every subject carries your organization ID between `/org/` and `/agent/`. Listing exact subjects is the strongest form. The prefix form is the minimum, and it admits every agent in your organization to the pool. With the prefix form, you can still grant IAM roles only to individual agents' `principal://` members, as shown under [Grant access](#grant-access). Claude's admin settings don't show agent IDs, so you learn a subject from Cloud Audit Logs after a first exchange, and you update the condition or the grants when a Slack channel is deleted and recreated, because the new channel's agent has a new ID. @@ -92,14 +92,14 @@ In the **Service account to act as (optional)** field, enter the service account The **Block requests that mint new credentials** checkbox is selected by default. With it selected: * Claude can't use this identity to call Google endpoints that create keys, tokens, or other credentials, even if IAM would allow the call. -* Requests to a list of services that deal in credentials are refused entirely. See [what the credential-minting block refuses](/docs/claude-tag/admins/federated-access/limits.md#what-the-credential-minting-block-refuses) on the limits page. +* Requests to a list of services that deal in credentials are refused entirely. See [what the credential-minting block refuses](https://claude.com/docs/claude-tag/admins/federated-access/limits.md#what-the-credential-minting-block-refuses) on the limits page. * gRPC calls are refused, so tell Claude in the custom instructions to use the REST transport of client libraries such as Spanner, Bigtable, Firestore, and Pub/Sub. If Claude needs one of the refused services, clear the checkbox and rely on your IAM grants alone. The token exchange itself, including acting as the service account, happens inside Agent Proxy and isn't affected by this checkbox or by the allowed hosts. **5. Narrow the allowed Google hosts** -Replace the prefilled `*.googleapis.com` entry in the **Allowed Google hosts** field with the hosts Claude needs, for example `storage.googleapis.com`. A wildcard as the leftmost label, such as `*.storage.googleapis.com`, matches any subdomain but not the name itself. Every host must be `googleapis.com`, a subdomain of it, or a subdomain of `clients6.google.com`. You can change the list later from the connection's [**Edit connection** dialog](/docs/claude-tag/admins/add-connections.md#set-allowed-websites), which you open from the connection's row on the **Connectors** tab; see [Manage federated connections on the Connectors tab](/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab). +Replace the prefilled `*.googleapis.com` entry in the **Allowed Google hosts** field with the hosts Claude needs, for example `storage.googleapis.com`. A wildcard as the leftmost label, such as `*.storage.googleapis.com`, matches any subdomain but not the name itself. Every host must be `googleapis.com`, a subdomain of it, or a subdomain of `clients6.google.com`. You can change the list later from the connection's [**Edit connection** dialog](https://claude.com/docs/claude-tag/admins/add-connections.md#set-allowed-websites), which you open from the connection's row on the **Connectors** tab; see [Manage federated connections on the Connectors tab](https://claude.com/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab). **6. Confirm the attribute condition** @@ -107,27 +107,27 @@ Select the checkbox labeled **The provider's attribute condition requires the su **7. Choose a bundle and connect** -Choose a bundle from the **Access bundle** list, or create one: click **New bundle** if the dialog shows it, enter a **Bundle name**, and click **Create bundle**. Then click **Connect identity**. This creates a [connection](/docs/claude-tag/admins/add-connections.md) in that bundle, with the hosts you entered under **Allowed hosts**. The same provider can be connected more than once, for example once with a service account and once without, as long as no two Google Cloud connections in one bundle share a host under **Allowed hosts**. Each connection applies wherever its bundle applies. +Choose a bundle from the **Access bundle** list, or create one: click **New bundle** if the dialog shows it, enter a **Bundle name**, and click **Create bundle**. Then click **Connect identity**. This creates a [connection](https://claude.com/docs/claude-tag/admins/add-connections.md) in that bundle, with the hosts you entered under **Allowed hosts**. The same provider can be connected more than once, for example once with a service account and once without, as long as no two Google Cloud connections in one bundle share a host under **Allowed hosts**. Each connection applies wherever its bundle applies. The **Cloud roles** table has **Role**, **Access bundle**, **Allowed hosts**, **Added**, and **Actions** columns. Each connection's name appears under **Role** with the provider and a **Google Cloud** chip beneath it, which also names the service account when the connection acts as one, and **Remove** is under **Actions**. ## Let agents use the identity -Claude uses the identity in the channels where its bundle applies. A bundle you created in the connect dialog applies nowhere until you choose places; see [Manage federated connections on the Connectors tab](/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab). +Claude uses the identity in the channels where its bundle applies. A bundle you created in the connect dialog applies nowhere until you choose places; see [Manage federated connections on the Connectors tab](https://claude.com/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab). -Claude also needs to know what the identity is for. Add a line like this to the scope's [custom instructions](/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions): +Claude also needs to know what the identity is for. Add a line like this to the scope's [custom instructions](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions): ```text wrap theme={null} Use the Cloud Storage JSON API at storage.googleapis.com to read the bucket example-reports. Google Cloud access is already set up. ``` -[Agent Proxy](/docs/claude-tag/concepts/agent-identity.md#agent-proxy) exchanges the token and attaches the resulting Google credential to each request at the network boundary, so the sandbox never holds it. +[Agent Proxy](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy) exchanges the token and attaches the resulting Google credential to each request at the network boundary, so the sandbox never holds it. -New threads pick up the connection on their own. In a thread already running, ask Claude to use Google Cloud. If Claude still can't, send [`@Claude !restart`](/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session) in that thread. Claude then continues from a fresh session with your organization's current configuration. +New threads pick up the connection on their own. In a thread already running, ask Claude to use Google Cloud. If Claude still can't, send [`@Claude !restart`](https://claude.com/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session) in that thread. Claude then continues from a fresh session with your organization's current configuration. ## Verify the connection -[Federated connections](/docs/claude-tag/admins/federated-access/limits.md#where-federated-connections-work) work only in agent sessions, such as a Slack channel. A test from a personal session, such as a direct message with `@Claude`, won't work. +[Federated connections](https://claude.com/docs/claude-tag/admins/federated-access/limits.md#where-federated-connections-work) work only in agent sessions, such as a Slack channel. A test from a personal session, such as a direct message with `@Claude`, won't work. In a channel where the identity's connection applies, start a new thread and ask Claude to run a connectivity check. The check reads a bucket's metadata, so the identity needs the `storage.buckets.get` permission on the bucket, and `storage.googleapis.com` must be under the connection's **Allowed hosts**. Send Claude this prompt, replacing `example-reports` with a bucket the identity can read: @@ -146,7 +146,7 @@ If Claude reports that the request was refused, the two most common causes are t * A token refused by your provider usually means the attribute condition didn't accept it. Check the organization ID in the condition, then the issuer URL and the allowed audience. * A permission error on the API call means the role grant is missing or too narrow. -See [Troubleshoot federated agent access](/docs/claude-tag/admins/federated-access/troubleshooting.md) for the errors Claude shows and the other causes. +See [Troubleshoot federated agent access](https://claude.com/docs/claude-tag/admins/federated-access/troubleshooting.md) for the errors Claude shows and the other causes. To disconnect an identity, click **Remove** in the identity's row of the **Cloud roles** table, then **Remove role** in the confirmation. Claude stops using the identity within about a minute, in existing threads as well as new ones, and the connection is removed from its bundle. A Google credential from an earlier exchange stays valid with Google until it expires, held only by Agent Proxy, never by Claude's sandbox. To end the trust on the Google side as well, delete the provider or remove the IAM bindings. @@ -157,15 +157,15 @@ Two messages come up while connecting: * **A message that a connection "already covers" a host "in this bundle"**: another Google Cloud connection in the bundle you chose already has that host under **Allowed hosts**, so Claude would never use the new connection for it. Remove the shared host or choose another bundle. * **A rejected Workload identity provider or Service account to act as value**: the value doesn't match the form the field describes, usually because the resource name carries the project ID instead of the project number, or the service account is a default one. -For other dialog messages, see [Troubleshoot federated agent access](/docs/claude-tag/admins/federated-access/troubleshooting.md). +For other dialog messages, see [Troubleshoot federated agent access](https://claude.com/docs/claude-tag/admins/federated-access/troubleshooting.md). -If Claude reports HTTP 403 with a reason that starts with [`request blocked: federated connections work only in agent sessions (such as a Slack channel), not in personal sessions (such as a direct message)`](/docs/claude-tag/admins/federated-access/troubleshooting#request-blocked-federated-connections-work-only-in-agent-sessions-such-as-a-slack-channel--not-in-personal-sessions-such-as-a-direct-message), the request came from a personal session, such as a direct message with `@Claude`. A personal session runs under a person's own account. [Federated connections](/docs/claude-tag/admins/federated-access/limits.md#where-federated-connections-work) work only in agent sessions, so test again from a new thread in a Slack channel where the connection [applies](/docs/claude-tag/admins/attach-to-scope.md#how-scopes-inherit). +If Claude reports HTTP 403 with a reason that starts with [`request blocked: federated connections work only in agent sessions (such as a Slack channel), not in personal sessions (such as a direct message)`](https://claude.com/docs/claude-tag/admins/federated-access/troubleshooting#request-blocked-federated-connections-work-only-in-agent-sessions-such-as-a-slack-channel--not-in-personal-sessions-such-as-a-direct-message), the request came from a personal session, such as a direct message with `@Claude`. A personal session runs under a person's own account. [Federated connections](https://claude.com/docs/claude-tag/admins/federated-access/limits.md#where-federated-connections-work) work only in agent sessions, so test again from a new thread in a Slack channel where the connection [applies](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#how-scopes-inherit). ## Related resources -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): the bundle and connection model -* [Attach a bundle to a scope](/docs/claude-tag/admins/attach-to-scope.md): where an identity connection applies -* [Identity token reference](/docs/claude-tag/admins/federated-access/token-reference.md): every claim in the token, lifetimes, and key rotation -* [Limits](/docs/claude-tag/admins/federated-access/limits.md): what the credential-minting block refuses, and the other limits for Google Cloud identities -* [Troubleshoot federated agent access](/docs/claude-tag/admins/federated-access/troubleshooting.md): console and runtime errors for every connection type -* [BigQuery](/docs/claude-tag/admins/connections/bigquery.md): the stored-key alternative for one Google service +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): the bundle and connection model +* [Attach a bundle to a scope](https://claude.com/docs/claude-tag/admins/attach-to-scope.md): where an identity connection applies +* [Identity token reference](https://claude.com/docs/claude-tag/admins/federated-access/token-reference.md): every claim in the token, lifetimes, and key rotation +* [Limits](https://claude.com/docs/claude-tag/admins/federated-access/limits.md): what the credential-minting block refuses, and the other limits for Google Cloud identities +* [Troubleshoot federated agent access](https://claude.com/docs/claude-tag/admins/federated-access/troubleshooting.md): console and runtime errors for every connection type +* [BigQuery](https://claude.com/docs/claude-tag/admins/connections/bigquery.md): the stored-key alternative for one Google service diff --git a/content/claude/claude-tag/admins/federated-access/limits.md b/content/claude/claude-tag/admins/federated-access/limits.md index bc97bd320..cb5f4774a 100644 --- a/content/claude/claude-tag/admins/federated-access/limits.md +++ b/content/claude/claude-tag/admins/federated-access/limits.md @@ -14,7 +14,7 @@ This page collects the fixed limits of Federated agent access in one place. ## Where federated connections work -Federated connections are available to Claude in Slack channels, where it acts under your organization's [agent identity](/docs/claude-tag/concepts/agent-identity.md). They aren't available in one-to-one direct messages, which run on the individual's own claude.ai account, and they need an Anthropic-hosted environment; Claude can't use them in a [self-hosted environment](/docs/claude-tag/concepts/security-and-data.md). +Federated connections are available to Claude in Slack channels, where it acts under your organization's [agent identity](https://claude.com/docs/claude-tag/concepts/agent-identity.md). They aren't available in one-to-one direct messages, which run on the individual's own claude.ai account, and they need an Anthropic-hosted environment; Claude can't use them in a [self-hosted environment](https://claude.com/docs/claude-tag/concepts/security-and-data.md). ## Identity token @@ -22,7 +22,7 @@ Federated connections are available to Claude in Slack channels, where it acts u | :- | :- | | Token lifetime | 10 minutes. Tokens can't be revoked before they expire. When you remove a gateway, Claude stops using it at once; when you remove a cloud role or authorization server, within about a minute (current behavior, may change). A token issued before the removal stays valid until it expires. | | Signing algorithm | ES256 only. | -| Claims | See the [identity token reference](/docs/claude-tag/admins/federated-access/token-reference.md#claims); verifiers must ignore claims they don't recognize. | +| Claims | See the [identity token reference](https://claude.com/docs/claude-tag/admins/federated-access/token-reference.md#claims); verifiers must ignore claims they don't recognize. | ## Gateways @@ -31,8 +31,8 @@ Federated connections are available to Claude in Slack channels, where it acts u | Registered addresses per organization | 5, counting gateways and authorization-server audience addresses together. | | Token reuse | Claude reuses one token for a session's requests to the same gateway for about five minutes, half the token's lifetime, or until the gateway answers 401, and then requests a new one (current behavior, may change). A gateway sees the same `jti` on many requests. | | Gateway address | An HTTPS host name only, with no path, port, query, or trailing slash. The host name needs a domain, like `gateway.example.com`, uses only letters, numbers, hyphens, and dots, and has at most 253 characters (current behavior, may change). The console rejects an IP address, a private-network name, an Anthropic-owned host, or a host cloud providers use for token exchange, and names the reason. The connection check also refuses a host name that resolves to a private address. | -| [Allowed websites](/docs/claude-tag/admins/add-connections.md#set-allowed-websites) on the gateway's connection | Exactly the gateway's host, the only host Claude sends the token to. It can't be widened or given a wildcard. | -| Connection check | Runs only against an HTTPS host with no path. The console sends two `POST` requests to the address, each with an empty body and a test token, doesn't follow redirects, and can take up to a minute. [Connect a gateway](/docs/claude-tag/admins/federated-access/connect-a-gateway.md) lists the expected responses. The console refuses a check that runs many times in quick succession and says how long to wait. | +| [Allowed websites](https://claude.com/docs/claude-tag/admins/add-connections.md#set-allowed-websites) on the gateway's connection | Exactly the gateway's host, the only host Claude sends the token to. It can't be widened or given a wildcard. | +| Connection check | Runs only against an HTTPS host with no path. The console sends two `POST` requests to the address, each with an empty body and a test token, doesn't follow redirects, and can take up to a minute. [Connect a gateway](https://claude.com/docs/claude-tag/admins/federated-access/connect-a-gateway.md) lists the expected responses. The console refuses a check that runs many times in quick succession and says how long to wait. | | Same address twice in one organization | Entering an address that is already registered runs the connection check again (unless you skip it) without changing the stored result, then moves to the bundle step. The run counts toward the check limit. | ## AWS roles @@ -42,7 +42,7 @@ Federated connections are available to Claude in Slack channels, where it acts u | **Role ARN** | A commercial-partition IAM role, `arn:aws:iam:::role/`. AWS GovCloud and AWS China roles aren't supported. | | **Allowed AWS hosts** | Hosts ending in `.amazonaws.com` only, for example `s3.us-east-1.amazonaws.com` or `*.amazonaws.com`. | | Role session | 1 hour. The exchange doesn't ask for a longer session, so raising the role's maximum session duration has no effect. Claude reuses one session's credentials for the same agent until shortly before they expire, or until AWS answers a request with 403 (current behavior, may change). | -| Token audience | `sts.amazonaws.com`, the same for every organization. Condition the trust policy on the `sub` claim as well as the audience; see [Authorize on the subject](/docs/claude-tag/admins/federated-access/token-reference.md#authorize-on-the-subject). | +| Token audience | `sts.amazonaws.com`, the same for every organization. Condition the trust policy on the `sub` claim as well as the audience; see [Authorize on the subject](https://claude.com/docs/claude-tag/admins/federated-access/token-reference.md#authorize-on-the-subject). | | One connection per role | A role can be connected once in your organization. | ## Google Cloud identities @@ -52,7 +52,7 @@ Federated connections are available to Claude in Slack channels, where it acts u | **Workload identity provider** | The full resource name of a provider in a workload identity pool under a numeric project, `//iam.googleapis.com/projects//locations/global/workloadIdentityPools//providers/`. Workforce identity pools aren't supported. | | **Service account to act as** | Optional. A service account, `@.iam.gserviceaccount.com`. Default compute and App Engine service accounts aren't accepted. Leave it empty to call Google Cloud as the federated identity itself. | | **Allowed Google hosts** | `googleapis.com`, a subdomain of it, or a subdomain of `clients6.google.com`. | -| OAuth scope | `https://www.googleapis.com/auth/cloud-platform`, always, with no setting to change it. On Google Cloud APIs, IAM decides what the credential can do. An API that needs an OAuth scope of its own answers 403 whatever IAM allows; see [The cloud API answers 403 after a successful exchange](/docs/claude-tag/admins/federated-access/troubleshooting.md#the-cloud-api-answers-403-after-a-successful-exchange). | +| OAuth scope | `https://www.googleapis.com/auth/cloud-platform`, always, with no setting to change it. On Google Cloud APIs, IAM decides what the credential can do. An API that needs an OAuth scope of its own answers 403 whatever IAM allows; see [The cloud API answers 403 after a successful exchange](https://claude.com/docs/claude-tag/admins/federated-access/troubleshooting.md#the-cloud-api-answers-403-after-a-successful-exchange). | | **Block requests that mint new credentials** | On by default. When on, requests to Google's credential-minting and credential-delivering endpoints are refused, including over gRPC; see [What the credential-minting block refuses](#what-the-credential-minting-block-refuses). The block is best effort and doesn't replace least-privilege IAM. | | Google Cloud connections in one bundle | No two Google Cloud connections in the same bundle can cover the same host under **Allowed hosts**, whatever their providers or service accounts. A wildcard such as `*.googleapis.com` covers every subdomain but not `googleapis.com` itself. The same provider can be connected again with different hosts, or in another bundle. | @@ -93,9 +93,9 @@ The console's connection check is the only way to have Anthropic send a token to ## Related resources -* [Identity token reference](/docs/claude-tag/admins/federated-access/token-reference.md): claims, issuer, keys, and rotation -* [Connect a gateway](/docs/claude-tag/admins/federated-access/connect-a-gateway.md) -* [Connect an AWS role](/docs/claude-tag/admins/federated-access/aws.md) -* [Connect a Google Cloud identity](/docs/claude-tag/admins/federated-access/gcp.md) -* [Connect an authorization server](/docs/claude-tag/admins/federated-access/authorization-server.md) -* [Network requirements](/docs/claude-tag/admins/network-requirements.md): Anthropic's egress range and internet reachability +* [Identity token reference](https://claude.com/docs/claude-tag/admins/federated-access/token-reference.md): claims, issuer, keys, and rotation +* [Connect a gateway](https://claude.com/docs/claude-tag/admins/federated-access/connect-a-gateway.md) +* [Connect an AWS role](https://claude.com/docs/claude-tag/admins/federated-access/aws.md) +* [Connect a Google Cloud identity](https://claude.com/docs/claude-tag/admins/federated-access/gcp.md) +* [Connect an authorization server](https://claude.com/docs/claude-tag/admins/federated-access/authorization-server.md) +* [Network requirements](https://claude.com/docs/claude-tag/admins/network-requirements.md): Anthropic's egress range and internet reachability diff --git a/content/claude/claude-tag/admins/federated-access/overview.md b/content/claude/claude-tag/admins/federated-access/overview.md index f99325539..85bcf2753 100644 --- a/content/claude/claude-tag/admins/federated-access/overview.md +++ b/content/claude/claude-tag/admins/federated-access/overview.md @@ -14,9 +14,9 @@ > > Federated connections are managed on the [**Federated agent access**](https://claude.ai/admin-settings/claude-tag/federated-cloud-access) page, under **Claude Tag** in the admin settings sidebar. Connecting a gateway, cloud role, or authorization server needs an organization Owner, or an admin with full Claude Tag management permission. -In Slack channels, Claude Tag acts under its own [agent identity](/docs/claude-tag/concepts/agent-identity.md) rather than as any person. Federated agent access lets that identity prove itself to your systems with a short-lived, signed identity token instead of a credential you store in Claude. +In Slack channels, Claude Tag acts under its own [agent identity](https://claude.com/docs/claude-tag/concepts/agent-identity.md) rather than as any person. Federated agent access lets that identity prove itself to your systems with a short-lived, signed identity token instead of a credential you store in Claude. -In the console, you connect your gateway, AWS role, Google Cloud identity, or authorization server under **Federated agent access**, add it to a [bundle](/docs/claude-tag/concepts/glossary.md#access-bundle), and [apply it to the channels](#manage-federated-connections-on-the-connectors-tab) where Claude should use it. Your cloud or gateway administrator configures that system to trust Anthropic's issuer and to check that each token's subject belongs to your organization, and the system then decides what the agent may do. To confirm the connection works, ask Claude in one of those channels to make a small request, then check its reply and your system's logs. +In the console, you connect your gateway, AWS role, Google Cloud identity, or authorization server under **Federated agent access**, add it to a [bundle](https://claude.com/docs/claude-tag/concepts/glossary.md#access-bundle), and [apply it to the channels](#manage-federated-connections-on-the-connectors-tab) where Claude should use it. Your cloud or gateway administrator configures that system to trust Anthropic's issuer and to check that each token's subject belongs to your organization, and the system then decides what the agent may do. To confirm the connection works, ask Claude in one of those channels to make a small request, then check its reply and your system's logs. Federated agent access goes one way: Claude proves who it is to your systems. For your workloads proving who they are to the Claude API, see [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) on the Claude Developer Platform. @@ -31,11 +31,11 @@ Your systems can accept the token in one of four ways. The table below says whic | **Google Cloud identity** | Google Cloud, through a workload identity pool. Google issues an access token for the federated identity, acting as a service account if you name one. | Claude should call Google Cloud APIs under an identity you govern with IAM. | | **Authorization server** | Your OAuth 2.0 authorization server. It accepts the token as a JWT bearer grant (RFC 7523) and returns an access token for your APIs. | Your APIs are already protected by your own OAuth server and you'd rather issue its tokens than run a gateway. | -In every case the system on your side decides what the agent may do in your systems. Each connection type has its own setup page: [Connect a gateway](/docs/claude-tag/admins/federated-access/connect-a-gateway.md), [Connect an AWS role](/docs/claude-tag/admins/federated-access/aws.md), [Connect a Google Cloud identity](/docs/claude-tag/admins/federated-access/gcp.md), and [Connect an authorization server](/docs/claude-tag/admins/federated-access/authorization-server.md). +In every case the system on your side decides what the agent may do in your systems. Each connection type has its own setup page: [Connect a gateway](https://claude.com/docs/claude-tag/admins/federated-access/connect-a-gateway.md), [Connect an AWS role](https://claude.com/docs/claude-tag/admins/federated-access/aws.md), [Connect a Google Cloud identity](https://claude.com/docs/claude-tag/admins/federated-access/gcp.md), and [Connect an authorization server](https://claude.com/docs/claude-tag/admins/federated-access/authorization-server.md). ## How it works -1. When a request from Claude's sandbox needs one of your systems, [Agent Proxy](/docs/claude-tag/concepts/agent-identity.md#agent-proxy) matches it by destination to a federated connection that applies to the channel. Until an admin connects a system in **Federated agent access** and applies the connection to the channel, nothing matches and no token is issued for Claude's requests. +1. When a request from Claude's sandbox needs one of your systems, [Agent Proxy](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy) matches it by destination to a federated connection that applies to the channel. Until an admin connects a system in **Federated agent access** and applies the connection to the channel, nothing matches and no token is issued for Claude's requests. 2. Anthropic issues an identity token. The token is a JSON Web Token (JWT) signed by Anthropic and valid for 10 minutes. Its subject names your organization and the agent, in the form `wimse://identity.anthropic.com/org//agent/`, and its audience names the destination. Claude reuses one token for a session's requests to the same gateway for about five minutes, or until the gateway answers 401, and then requests a new one. The other connection types use a token once, in an exchange. 3. Your side accepts the token. A gateway verifies it directly. AWS or Google Cloud exchanges it for a short-lived cloud credential. Your authorization server exchanges it for an access token. Agent Proxy attaches the result to Claude's request, or signs the request with it for AWS, and forwards the request. The model and the sandbox are never given the token or the credential that comes back. @@ -46,9 +46,9 @@ Whichever system accepts the token checks five things: * **Expiry**. This proves the token is fresh. * **Subject**. This is what names your organization. Every Claude Tag organization's tokens come from the same issuer, and every organization's AWS tokens share the same audience, so the first four checks can pass for a token that belongs to someone else. Every connection type therefore requires a subject check. The strongest form accepts only the exact subjects of your own agents. The minimum form requires the subject to start with your **Subject prefix**, `wimse://identity.anthropic.com/org//agent/`, including the `/agent/`; a gateway, authorization server, or Google Cloud attribute condition can pin `iss` and `tenant` instead, since `tenant` carries the same organization ID. -The console shows the issuer, the signing-key location, and your **Subject prefix** with copy buttons, and each setup page says where they go. The [identity token reference](/docs/claude-tag/admins/federated-access/token-reference.md) lists every value and claim and [compares the two forms of the subject check](/docs/claude-tag/admins/federated-access/token-reference.md#authorize-on-the-subject). +The console shows the issuer, the signing-key location, and your **Subject prefix** with copy buttons, and each setup page says where they go. The [identity token reference](https://claude.com/docs/claude-tag/admins/federated-access/token-reference.md) lists every value and claim and [compares the two forms of the subject check](https://claude.com/docs/claude-tag/admins/federated-access/token-reference.md#authorize-on-the-subject). -Anthropic stores no long-lived credential for your systems, and each call carries a short-lived signed token, so there is no key of yours to rotate or leak. Anthropic rotates its own signing keys, and the [token reference](/docs/claude-tag/admins/federated-access/token-reference.md#key-rotation) says how a verifier follows them. +Anthropic stores no long-lived credential for your systems, and each call carries a short-lived signed token, so there is no key of yours to rotate or leak. Anthropic rotates its own signing keys, and the [token reference](https://claude.com/docs/claude-tag/admins/federated-access/token-reference.md#key-rotation) says how a verifier follows them. To cut off access, remove the connection in the console. These lifetimes then apply: @@ -67,9 +67,9 @@ Anthropic doesn't review your gateway, trust policy, or authorization server. Wh * **Federated agent access** appears under **Claude Tag** in the console's left navigation. It's missing for organizations whose compliance configuration excludes federated agent access. * An organization Owner, or an admin with full Claude Tag management permission, makes the connection in the console. * Your cloud or gateway administrator configures the system on your side: the gateway operator, your AWS or Google Cloud IAM administrator, or your authorization server's operator. Each setup page lists the values they configure. -* You know which channels, workspaces, or all of Slack Claude should use the connection in. A connection applies wherever its [bundle](/docs/claude-tag/concepts/glossary.md#access-bundle) applies. A gateway can also be added to more than one bundle; an AWS role or authorization server is connected in one bundle only. +* You know which channels, workspaces, or all of Slack Claude should use the connection in. A connection applies wherever its [bundle](https://claude.com/docs/claude-tag/concepts/glossary.md#access-bundle) applies. A gateway can also be added to more than one bundle; an AWS role or authorization server is connected in one bundle only. -Federated connections work in Slack channels, where Claude acts under your organization's agent identity. They don't work in one-to-one direct messages from members who have connected a Claude account, which run under [the individual's own account](/docs/claude-tag/concepts/agent-identity.md#direct-message-channels). +Federated connections work in Slack channels, where Claude acts under your organization's agent identity. They don't work in one-to-one direct messages from members who have connected a Claude account, which run under [the individual's own account](https://claude.com/docs/claude-tag/concepts/agent-identity.md#direct-message-channels). ## Manage federated connections on the Connectors tab @@ -77,17 +77,17 @@ After you connect a system, choose where the connection applies. Each connect di The connection then also appears as a connector on the **Connectors** tab under **Claude's access** at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), where the tab's search finds it by name or host and its row in the connector's **Access from** table shows its type in the **Credential** column. Manage it from there: -* **Choose where it applies**: a bundle you create in the connect dialog applies nowhere until you choose places. The bundle is listed on the **Bundles** tab, where you add places under **Where it applies** and click **Save changes**. To choose places from the connector's page instead, see [Give Claude access](/docs/claude-tag/admins/add-connections.md). +* **Choose where it applies**: a bundle you create in the connect dialog applies nowhere until you choose places. The bundle is listed on the **Bundles** tab, where you add places under **Where it applies** and click **Save changes**. To choose places from the connector's page instead, see [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md). * **Edit its allowed hosts**: in the connector's **Access from** table, open the connection's **⋮** menu and choose **Edit** to open the **Edit connection** dialog. * **Delete it from its bundle**: open the connection's bundle from the **Bundles** tab, and under **What's in it** choose **Remove credential** from the connection's **⋮** menu, then click **Delete** to confirm. The **Set by** column of the connector's **Access from** table names that bundle. ## Related resources -* [How agent identity works](/docs/claude-tag/concepts/agent-identity.md): the identity these tokens represent, and how Agent Proxy attaches credentials -* [Connect a gateway](/docs/claude-tag/admins/federated-access/connect-a-gateway.md): verify the token at a service you run -* [Connect an AWS role](/docs/claude-tag/admins/federated-access/aws.md): the IAM OIDC provider and trust policy -* [Connect a Google Cloud identity](/docs/claude-tag/admins/federated-access/gcp.md): the workload identity pool, provider, and attribute condition -* [Connect an authorization server](/docs/claude-tag/admins/federated-access/authorization-server.md): accept the token as a JWT bearer grant -* [Identity token reference](/docs/claude-tag/admins/federated-access/token-reference.md): every claim, the lifetime, and key rotation -* [Limits](/docs/claude-tag/admins/federated-access/limits.md): counts, lengths, lifetimes, and unsupported configurations -* [Troubleshoot federated agent access](/docs/claude-tag/admins/federated-access/troubleshooting.md): console messages, blocked requests, and rejections in your logs +* [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md): the identity these tokens represent, and how Agent Proxy attaches credentials +* [Connect a gateway](https://claude.com/docs/claude-tag/admins/federated-access/connect-a-gateway.md): verify the token at a service you run +* [Connect an AWS role](https://claude.com/docs/claude-tag/admins/federated-access/aws.md): the IAM OIDC provider and trust policy +* [Connect a Google Cloud identity](https://claude.com/docs/claude-tag/admins/federated-access/gcp.md): the workload identity pool, provider, and attribute condition +* [Connect an authorization server](https://claude.com/docs/claude-tag/admins/federated-access/authorization-server.md): accept the token as a JWT bearer grant +* [Identity token reference](https://claude.com/docs/claude-tag/admins/federated-access/token-reference.md): every claim, the lifetime, and key rotation +* [Limits](https://claude.com/docs/claude-tag/admins/federated-access/limits.md): counts, lengths, lifetimes, and unsupported configurations +* [Troubleshoot federated agent access](https://claude.com/docs/claude-tag/admins/federated-access/troubleshooting.md): console messages, blocked requests, and rejections in your logs diff --git a/content/claude/claude-tag/admins/federated-access/token-reference.md b/content/claude/claude-tag/admins/federated-access/token-reference.md index f99169613..544400dc7 100644 --- a/content/claude/claude-tag/admins/federated-access/token-reference.md +++ b/content/claude/claude-tag/admins/federated-access/token-reference.md @@ -12,7 +12,7 @@ When Claude calls a system you connected through Federated agent access, it proves who it is with a signed identity token instead of a stored credential. The token is a JSON Web Token (JWT) that names your organization and the agent making the request. A gateway you run receives it in the `Authorization: Bearer` header and verifies it directly. AWS, Google Cloud, or your authorization server receives it in a token exchange and returns one of its own credentials. -This page lists what the token contains so the engineer who configures the verifying side can pin the right values. For setup steps, see [Connect a gateway](/docs/claude-tag/admins/federated-access/connect-a-gateway.md), [Connect an AWS role](/docs/claude-tag/admins/federated-access/aws.md), [Connect a Google Cloud identity](/docs/claude-tag/admins/federated-access/gcp.md), or [Connect an authorization server](/docs/claude-tag/admins/federated-access/authorization-server.md). +This page lists what the token contains so the engineer who configures the verifying side can pin the right values. For setup steps, see [Connect a gateway](https://claude.com/docs/claude-tag/admins/federated-access/connect-a-gateway.md), [Connect an AWS role](https://claude.com/docs/claude-tag/admins/federated-access/aws.md), [Connect a Google Cloud identity](https://claude.com/docs/claude-tag/admins/federated-access/gcp.md), or [Connect an authorization server](https://claude.com/docs/claude-tag/admins/federated-access/authorization-server.md). ## Issuer and signing keys @@ -55,7 +55,7 @@ wimse://identity.anthropic.com/org//agent/ * The organization ID starts with `org_` and the agent ID with `cagt_`. Both use only letters, digits, `_`, and `-`, so neither can contain `/` or `:`. * The **Connect a gateway**, **Connect an AWS role**, **Connect a Google Cloud identity**, and **Connect an authorization server** dialogs show your organization's **Subject prefix**, `wimse://identity.anthropic.com/org//agent/`. Every one of your agents' subjects starts with this prefix. * An agent belongs to one Slack channel. Deleting and recreating a channel creates a new agent with a new ID. The console doesn't show agent IDs; a verifier learns full subjects from the tokens it receives or from your cloud provider's logs. -* The console's connection check for a gateway presents a token for a reserved test agent in your organization, shown in the **Connect a gateway** dialog as the **Control subject**. Your gateway must answer that token with a 2xx status so the check can pass, and must grant that subject no access. See [Connect a gateway](/docs/claude-tag/admins/federated-access/connect-a-gateway.md). +* The console's connection check for a gateway presents a token for a reserved test agent in your organization, shown in the **Connect a gateway** dialog as the **Control subject**. Your gateway must answer that token with a 2xx status so the check can pass, and must grant that subject no access. See [Connect a gateway](https://claude.com/docs/claude-tag/admins/federated-access/connect-a-gateway.md). The `wimse://` form follows the IETF WIMSE working group's workload identifier specification. @@ -153,9 +153,9 @@ Decoding doesn't verify anything. Log the subject and your decision, never the t ## Related resources -* [Connect a gateway](/docs/claude-tag/admins/federated-access/connect-a-gateway.md): verify the token yourself at a service you run -* [Connect an AWS role](/docs/claude-tag/admins/federated-access/aws.md): the trust policy that pins these values -* [Connect a Google Cloud identity](/docs/claude-tag/admins/federated-access/gcp.md): the attribute condition that pins these values -* [Connect an authorization server](/docs/claude-tag/admins/federated-access/authorization-server.md): accept the token as a JWT bearer grant -* [Limits](/docs/claude-tag/admins/federated-access/limits.md): lengths, counts, and lifetimes in one place +* [Connect a gateway](https://claude.com/docs/claude-tag/admins/federated-access/connect-a-gateway.md): verify the token yourself at a service you run +* [Connect an AWS role](https://claude.com/docs/claude-tag/admins/federated-access/aws.md): the trust policy that pins these values +* [Connect a Google Cloud identity](https://claude.com/docs/claude-tag/admins/federated-access/gcp.md): the attribute condition that pins these values +* [Connect an authorization server](https://claude.com/docs/claude-tag/admins/federated-access/authorization-server.md): accept the token as a JWT bearer grant +* [Limits](https://claude.com/docs/claude-tag/admins/federated-access/limits.md): lengths, counts, and lifetimes in one place * [Sample gateway](https://github.com/anthropics/claude-tag-wif-gateway-sample): a Python gateway that verifies the token and pins subjects exactly or by organization, with offline tests diff --git a/content/claude/claude-tag/admins/federated-access/troubleshooting.md b/content/claude/claude-tag/admins/federated-access/troubleshooting.md index 954ae84c0..0d80e05d3 100644 --- a/content/claude/claude-tag/admins/federated-access/troubleshooting.md +++ b/content/claude/claude-tag/admins/federated-access/troubleshooting.md @@ -14,14 +14,14 @@ > > Federated connections are managed on the [**Federated agent access**](https://claude.ai/admin-settings/claude-tag/federated-cloud-access) page, under **Claude Tag** in the admin settings sidebar. Changing them needs an organization Owner, or an admin with full Claude Tag management permission. -This page covers what goes wrong after you connect a gateway, AWS role, Google Cloud identity, or authorization server through **Federated agent access**. It's organized by where the problem shows up: a message in a console dialog, an error Claude reports in the thread, or a rejection in your own logs. The token terms used below are explained on the [identity token reference](/docs/claude-tag/admins/federated-access/token-reference.md). +This page covers what goes wrong after you connect a gateway, AWS role, Google Cloud identity, or authorization server through **Federated agent access**. It's organized by where the problem shows up: a message in a console dialog, an error Claude reports in the thread, or a rejection in your own logs. The token terms used below are explained on the [identity token reference](https://claude.com/docs/claude-tag/admins/federated-access/token-reference.md). First confirm two things that have nothing to do with federation: -* The connection applies to the channel, as [Manage federated connections on the Connectors tab](/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab) describes. For a gateway, the scope's custom instructions also [name the gateway's address](/docs/claude-tag/admins/federated-access/connect-a-gateway.md#let-agents-reach-the-gateway), so Claude knows the gateway exists. -* You tested in a new thread. A thread already running isn't told about a connection added after it started; ask Claude for the service by name, or send [`@Claude !restart`](/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session) in that thread. +* The connection applies to the channel, as [Manage federated connections on the Connectors tab](https://claude.com/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab) describes. For a gateway, the scope's custom instructions also [name the gateway's address](https://claude.com/docs/claude-tag/admins/federated-access/connect-a-gateway.md#let-agents-reach-the-gateway), so Claude knows the gateway exists. +* You tested in a new thread. A thread already running isn't told about a connection added after it started; ask Claude for the service by name, or send [`@Claude !restart`](https://claude.com/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session) in that thread. -If Claude reports that a host isn't allowed before any request is sent, see [Claude says a host isn't allowed](/docs/claude-tag/admins/troubleshooting.md#claude-says-a-host-isn%E2%80%99t-allowed-or-it-can%E2%80%99t-reach-the-internet). +If Claude reports that a host isn't allowed before any request is sent, see [Claude says a host isn't allowed](https://claude.com/docs/claude-tag/admins/troubleshooting.md#claude-says-a-host-isn%E2%80%99t-allowed-or-it-can%E2%80%99t-reach-the-internet). ## Messages in the console @@ -36,12 +36,12 @@ Most dialog messages say what to do. The table adds what the message doesn't. Th | A dialog message containing "isn't enabled for your organization yet", or **Federated agent access** is missing under **Claude Tag** in the left navigation | Federated agent access isn't available to organizations whose compliance configuration excludes it. The navigation item is also hidden from channel managers and from admins whose Claude Tag permission covers specific channels only, because connecting a system needs full Claude Tag management permission. | Ask an organization Owner, or an admin with full Claude Tag management permission, to open the page. If it's missing for them too, your organization's compliance configuration excludes the feature. | | "This organization has reached its limit of 5 gateways. Remove one to connect another." or, in the **Connect an authorization server** dialog, "…limit of 5 registered gateways, which includes token endpoints." | An organization can register 5 addresses. An authorization server's audience address, its **Issuer URL** value or its token endpoint, is also registered as a gateway, so it counts toward the same 5 and appears in the **Gateways** table marked "Used by a connected authorization server. Manage it from the Authorization servers section." An address is either a gateway or a token endpoint in your organization, not both. | In the **Gateways** table, click **Remove** in the row of a gateway you no longer use. To free an authorization server's row, click **Remove** in the server's row of the **Authorization servers** table first, then remove its address from the **Gateways** table. See [Removing and reconnecting a gateway](#removing-and-reconnecting-a-gateway). | | "This gateway is already registered. Close this dialog and pick it from the list to add it to a bundle." | The address is already registered in your organization, and the dialog couldn't load its row to continue. This message is rare: entering a registered address normally runs the connection check again without changing the stored result, then moves on to the bundle step. | Click **Cancel**, then click **Add to bundle** (**Add to another bundle** on a row already in one) in the gateway's row of the **Gateways** table. | -| "This role is already connected in the bundle ``." or "This token endpoint is already connected in the bundle ``." | An AWS role or token endpoint can be connected in only one bundle, and this one already is. | To use the connection in more channels, apply that bundle in more places instead. To move it, delete the connection from its bundle, as [Manage federated connections on the Connectors tab](/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab) describes. Then connect it again from its own dialog and pick the new bundle. | -| "`` already covers `` in this bundle, so Claude would never use this connection for the hosts they share. Change the hosts or choose another bundle." in the **Connect a Google Cloud identity** dialog | Another Google Cloud connection in the bundle you chose already has that host under **Allowed hosts**, whatever its provider or service account. Claude uses the first connection in a bundle whose hosts match a request, so the new connection would never be used for the shared host. A wildcard such as `*.googleapis.com` covers every subdomain but not `googleapis.com` itself. The dialog won't connect until the overlap is gone. | Remove the shared host from the new connection's **Allowed Google hosts**, or choose another bundle. To give the host to the new connection instead, first narrow the existing one's **Allowed hosts** in its **Edit connection** dialog, as [Manage federated connections on the Connectors tab](/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab) describes. | +| "This role is already connected in the bundle ``." or "This token endpoint is already connected in the bundle ``." | An AWS role or token endpoint can be connected in only one bundle, and this one already is. | To use the connection in more channels, apply that bundle in more places instead. To move it, delete the connection from its bundle, as [Manage federated connections on the Connectors tab](https://claude.com/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab) describes. Then connect it again from its own dialog and pick the new bundle. | +| "`` already covers `` in this bundle, so Claude would never use this connection for the hosts they share. Change the hosts or choose another bundle." in the **Connect a Google Cloud identity** dialog | Another Google Cloud connection in the bundle you chose already has that host under **Allowed hosts**, whatever its provider or service account. Claude uses the first connection in a bundle whose hosts match a request, so the new connection would never be used for the shared host. A wildcard such as `*.googleapis.com` covers every subdomain but not `googleapis.com` itself. The dialog won't connect until the overlap is gone. | Remove the shared host from the new connection's **Allowed Google hosts**, or choose another bundle. To give the host to the new connection instead, first narrow the existing one's **Allowed hosts** in its **Edit connection** dialog, as [Manage federated connections on the Connectors tab](https://claude.com/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab) describes. | | "Couldn't connect the gateway. Try again.", "Couldn't add the gateway to the bundle.", "Couldn't connect the role. Try again.", "Couldn't connect the identity. Try again.", "Couldn't register the authorization server. Try again.", or "Couldn't connect the authorization server. Try again." | The request failed for a reason the dialog doesn't name, most often a temporary one. | Try once more. If the message persists, contact your Anthropic account team with the details under [Contact Anthropic](#contact-anthropic). | | "The issuer URL must be an https URL on the same host as the token endpoint. Leave it empty to use the token endpoint as the audience." in the **Connect an authorization server** dialog | The **Issuer URL** value must be an HTTPS URL on the same host as the token endpoint, or empty. The token is only ever presented to that server, so its audience must name that server. | Enter the issuer identifier your authorization server uses, on the token endpoint's host, or clear the field to use the token endpoint as the audience. | | "This token endpoint is already connected. Manage it from the Authorization servers section." in the **Connect an authorization server** dialog | An authorization server with this token endpoint is already connected in one of your organization's bundles, and a server can be connected only once. The dialog checks this before it registers anything. | To use the server in more channels, apply its bundle in more places. To connect it again, remove it first: in the **Authorization servers** table, click **Remove** in the server's row. | -| "That address is already connected as a gateway. Enter your authorization server's own addresses, or remove the gateway first." in the **Connect an authorization server** dialog | The token endpoint, or the **Issuer URL** value, is the address of a gateway connected in one of your organization's bundles. One address can't be both, because a token sent to the gateway could be replayed to the server as a grant. | Enter the token endpoint and issuer identifier your authorization server publishes. To use that address for the server instead, remove the gateway first: delete the gateway's connection from its bundle, as [Manage federated connections on the Connectors tab](/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab) describes. Then, in the **Gateways** table under **Federated agent access**, click **Remove** in the gateway's row. | +| "That address is already connected as a gateway. Enter your authorization server's own addresses, or remove the gateway first." in the **Connect an authorization server** dialog | The token endpoint, or the **Issuer URL** value, is the address of a gateway connected in one of your organization's bundles. One address can't be both, because a token sent to the gateway could be replayed to the server as a grant. | Enter the token endpoint and issuer identifier your authorization server publishes. To use that address for the server instead, remove the gateway first: delete the gateway's connection from its bundle, as [Manage federated connections on the Connectors tab](https://claude.com/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab) describes. Then, in the **Gateways** table under **Federated agent access**, click **Remove** in the gateway's row. | | "That address is registered by a connected authorization server. Enter your gateway's address, or remove the server first." in the **Connect a gateway** dialog | The address you entered is a connected authorization server's token endpoint or audience, for example a server whose **Issuer URL** is the bare host `https://auth.example.com`. One address can't be both, because a token sent to the gateway could be replayed to that server as a grant. | Enter the host your gateway answers on. To use that address for a gateway instead, remove the server first: in the **Authorization servers** table, click **Remove** in the server's row. | | "That address is already a connected authorization server's audience. Enter this server's own issuer URL." in the **Connect an authorization server** dialog | The **Issuer URL** value (or the token endpoint, when **Issuer URL** is empty) is already another connected authorization server's audience or token endpoint. Two servers can't share an audience, because a token minted for one would be valid at the other. | In the **Issuer URL** field, enter the issuer identifier this server publishes. If the other server holds this identifier by mistake, remove that server first: in the **Authorization servers** table, click **Remove** in its row, then connect it again with its own issuer URL. | | "The address is too long. Issuer URLs have at most 256 characters." under the **Issuer URL** field of the **Connect an authorization server** dialog | The **Issuer URL** field accepts at most 256 characters, the same limit as the **Token endpoint** field. | Check that the field holds only the issuer identifier, for example `https://auth.example.com`, and not a longer value pasted by mistake. | @@ -93,7 +93,7 @@ Claude's request got HTTP 403 with this reason, or with `request blocked: this c **What it means** -Federated connections work only in agent sessions, such as a Slack channel, where Claude acts under your organization's [agent identity](/docs/claude-tag/concepts/agent-identity.md). The request came from a personal session, such as a [direct message](/docs/claude-tag/concepts/agent-identity.md#direct-message-channels) with `@Claude`. A personal session runs under a person's own account and has no agent identity for the token to name. +Federated connections work only in agent sessions, such as a Slack channel, where Claude acts under your organization's [agent identity](https://claude.com/docs/claude-tag/concepts/agent-identity.md). The request came from a personal session, such as a [direct message](https://claude.com/docs/claude-tag/concepts/agent-identity.md#direct-message-channels) with `@Claude`. A personal session runs under a person's own account and has no agent identity for the token to name. **How to resolve** @@ -111,7 +111,7 @@ The gateway was removed from the **Gateways** table, but its connection is still **How to resolve** -To keep the gateway, register the same address again; see [Removing and reconnecting a gateway](#removing-and-reconnecting-a-gateway). To drop it, delete the connection from its bundle, as [Manage federated connections on the Connectors tab](/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab) describes. +To keep the gateway, register the same address again; see [Removing and reconnecting a gateway](#removing-and-reconnecting-a-gateway). To drop it, delete the connection from its bundle, as [Manage federated connections on the Connectors tab](https://claude.com/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab) describes. ### Claude says Google credentials are not enabled for this organization @@ -167,7 +167,7 @@ The authorization server connection's allowed hosts cover the token endpoint's o **How to resolve** -Open the connection's **Edit connection** dialog, as [Manage federated connections on the Connectors tab](/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab) describes, and set **Allowed hosts** to only the APIs Claude calls with the returned token, for example `api.example.com`, with no wildcard that covers the token endpoint's host. If the API and the token endpoint share a host, use a different host for one of them, or [remove the server](/docs/claude-tag/admins/federated-access/authorization-server.md#remove-the-server) and connect it again with **Allowed API paths** listed. +Open the connection's **Edit connection** dialog, as [Manage federated connections on the Connectors tab](https://claude.com/docs/claude-tag/admins/federated-access/overview#manage-federated-connections-on-the-connectors-tab) describes, and set **Allowed hosts** to only the APIs Claude calls with the returned token, for example `api.example.com`, with no wildcard that covers the token endpoint's host. If the API and the token endpoint share a host, use a different host for one of them, or [remove the server](https://claude.com/docs/claude-tag/admins/federated-access/authorization-server.md#remove-the-server) and connect it again with **Allowed API paths** listed. ### credential injection temporarily unavailable; retry the request @@ -213,9 +213,9 @@ Claude's request to an AWS service got HTTP 502 with a reason that begins `injec **What it means** -The sign-in worked, but [Agent Proxy](/docs/claude-tag/concepts/agent-identity.md#agent-proxy) couldn't sign the request with the role's credentials, so it never left for AWS. The reason text after the connection name says which of these applies: +The sign-in worked, but [Agent Proxy](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy) couldn't sign the request with the role's credentials, so it never left for AWS. The reason text after the connection name says which of these applies: -* **A hostname with no usable region.** Agent Proxy reads the AWS service and signing region from the hostname, so the region must be the last label before `amazonaws.com`, as in `service.region.amazonaws.com`, `my-bucket.s3.us-east-1.amazonaws.com`, or `api.ecr.us-east-1.amazonaws.com`. The [AWS SigV4 credential](/docs/claude-tag/admins/connections/custom.md#aws-sigv4) section lists the hostname forms Agent Proxy signs, including the services it signs with no region. +* **A hostname with no usable region.** Agent Proxy reads the AWS service and signing region from the hostname, so the region must be the last label before `amazonaws.com`, as in `service.region.amazonaws.com`, `my-bucket.s3.us-east-1.amazonaws.com`, or `api.ecr.us-east-1.amazonaws.com`. The [AWS SigV4 credential](https://claude.com/docs/claude-tag/admins/connections/custom.md#aws-sigv4) section lists the hostname forms Agent Proxy signs, including the services it signs with no region. * **A large request to a service other than S3 with no content hash.** When a request has no `x-amz-content-sha256` header, Agent Proxy hashes the body before signing and refuses a body over 1 MB (1,048,576 bytes). The AWS CLI and SDKs add that header for S3 but usually not for other services. * **An S3 upload with signed chunks.** Agent Proxy signs the uploads the AWS CLI and SDKs send by default, including an upload sent in chunks with a checksum trailer. It can't sign an upload whose chunks the client signs one by one, which the CLI and SDKs do only when payload signing is turned on for the profile. The reason text reads `chunked signing () is not supported through the proxy`. @@ -245,7 +245,7 @@ If the 403 comes from a Google Cloud API, such as Cloud Storage, the OAuth scope **How to resolve** * **A missing permission.** Grant the IAM permission to the AWS role, the Google Cloud service account, or the federated identity when no service account is named. For AWS, a 403 also makes Claude assume the role again on the next request, so a fix takes effect on the next try. -* **A Google API that needs an OAuth scope of its own.** A federated connection can't reach that API. To connect Google Drive, Calendar, or Gmail another way, see [Choose OAuth or a service account](/docs/claude-tag/admins/connections/google.md#choose-oauth-or-a-service-account). If a channel gets both that connection and the federated connection, keep the two from covering the same host; see [Which credential wins](/docs/claude-tag/admins/attach-to-scope.md#which-credential-wins). +* **A Google API that needs an OAuth scope of its own.** A federated connection can't reach that API. To connect Google Drive, Calendar, or Gmail another way, see [Choose OAuth or a service account](https://claude.com/docs/claude-tag/admins/connections/google.md#choose-oauth-or-a-service-account). If a channel gets both that connection and the federated connection, keep the two from covering the same host; see [Which credential wins](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#which-credential-wins). ## Rejections in your own logs @@ -257,7 +257,7 @@ Every request from Claude gets 401 or 403 from your gateway, including the conne **What it means** -One of the standard checks is configured with the wrong value. Your gateway's log of the failing check is the fastest route; if it logs nothing, work down the list. The values to compare against are shown in the **Connect a gateway** dialog before you enter an address, as described on [Connect a gateway](/docs/claude-tag/admins/federated-access/connect-a-gateway.md#copy-the-values-and-deploy-the-gateway). +One of the standard checks is configured with the wrong value. Your gateway's log of the failing check is the fastest route; if it logs nothing, work down the list. The values to compare against are shown in the **Connect a gateway** dialog before you enter an address, as described on [Connect a gateway](https://claude.com/docs/claude-tag/admins/federated-access/connect-a-gateway.md#copy-the-values-and-deploy-the-gateway). **How to resolve** @@ -329,7 +329,7 @@ The workload identity pool's provider or attribute condition doesn't accept the **How to resolve** -Google records the reason in your Cloud Audit Logs. The Security Token Service API entry covers the token exchange, and, if you named a service account, the IAM Service Account Credentials API entry covers the impersonation. Both are Data Access audit logs, which Google keeps off by default, as described under [Verify the connection](/docs/claude-tag/admins/federated-access/gcp.md#verify-the-connection). If the logs were on and show no entry at the time of the request, the token wasn't issued; see [injection failed](#injection-failed). Otherwise, work through the checks in order. +Google records the reason in your Cloud Audit Logs. The Security Token Service API entry covers the token exchange, and, if you named a service account, the IAM Service Account Credentials API entry covers the impersonation. Both are Data Access audit logs, which Google keeps off by default, as described under [Verify the connection](https://claude.com/docs/claude-tag/admins/federated-access/gcp.md#verify-the-connection). If the logs were on and show no entry at the time of the request, the token wasn't issued; see [injection failed](#injection-failed). Otherwise, work through the checks in order. | Check | What to confirm | | :- | :- | @@ -372,8 +372,8 @@ Never send a token itself. Anthropic's logs record why a token was refused or no ## Related resources -* [Federated agent access overview](/docs/claude-tag/admins/federated-access/overview): how the token works and which connection type to use -* [Connect a gateway](/docs/claude-tag/admins/federated-access/connect-a-gateway.md): the setup steps and the connection check in full -* [Identity token reference](/docs/claude-tag/admins/federated-access/token-reference.md): every claim, the lifetime, and key rotation -* [Limits](/docs/claude-tag/admins/federated-access/limits.md): counts, lengths, and lifetimes -* [Troubleshoot Claude Tag setup](/docs/claude-tag/admins/troubleshooting.md): errors outside federated agent access +* [Federated agent access overview](https://claude.com/docs/claude-tag/admins/federated-access/overview): how the token works and which connection type to use +* [Connect a gateway](https://claude.com/docs/claude-tag/admins/federated-access/connect-a-gateway.md): the setup steps and the connection check in full +* [Identity token reference](https://claude.com/docs/claude-tag/admins/federated-access/token-reference.md): every claim, the lifetime, and key rotation +* [Limits](https://claude.com/docs/claude-tag/admins/federated-access/limits.md): counts, lengths, and lifetimes +* [Troubleshoot Claude Tag setup](https://claude.com/docs/claude-tag/admins/troubleshooting.md): errors outside federated agent access diff --git a/content/claude/claude-tag/admins/for-slack-admins.md b/content/claude/claude-tag/admins/for-slack-admins.md index 8599285e4..c9a5a7ca8 100644 --- a/content/claude/claude-tag/admins/for-slack-admins.md +++ b/content/claude/claude-tag/admins/for-slack-admins.md @@ -20,18 +20,18 @@ A member can add Claude to a channel in any of these ways: * Invite it with `/invite @Claude` in the channel * Select **Add to channel** on a channel Claude suggests in a direct message. Claude's welcome message, the introduction it posts when a member first opens a direct message with it, suggests public channels this way. -* Select **Approve and post** on a message Claude drafts in a direct message for a public channel it isn't a member of. When the member approves, Claude posts the message and joins that channel. [What Claude can do in other channels](/docs/claude-tag/concepts/how-it-works.md#what-claude-can-do-in-other-channels) covers the flow. +* Select **Approve and post** on a message Claude drafts in a direct message for a public channel it isn't a member of. When the member approves, Claude posts the message and joins that channel. [What Claude can do in other channels](https://claude.com/docs/claude-tag/concepts/how-it-works.md#what-claude-can-do-in-other-channels) covers the flow. * Select a channel in a weekly suggestion message. About once a week, Claude sends the person who connected the workspace a direct message that suggests public channels to add it to. That person can stop the suggestions from any of those messages. Claude picks the channels to suggest from public channel names, topics, and purposes, and from public-channel search. Claude doesn't join a channel to evaluate it. -A Claude organization Owner can also set [auto-join channel patterns](/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name), so Claude joins a public channel whose name matches when the channel is created or renamed. +A Claude organization Owner can also set [auto-join channel patterns](https://claude.com/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name), so Claude joins a public channel whose name matches when the channel is created or renamed. When a member selects **Add to channel** or **Approve and post**, picks a channel in a suggestion message, or an auto-join pattern matches, Claude adds itself to that channel using its `channels:join` scope. Slack's audit log records the join as the Claude app, with no inviter shown; neither the member's selection nor the matched pattern is visible in Slack's log. If you see a join in the audit log that no one can explain, a member selected one of these buttons or an auto-join pattern matched. Outside these paths, Claude does not join channels on its own. Reading a channel's full history requires being added there. Workspace search can surface public-channel content, the same as any app with the search scope. -In a Slack Connect channel (shared with another company), Claude answers only where an Owner or a Claude Tag admin of your Claude organization has [turned it on](/docs/claude-tag/admins/restrict-access.md#slack-connect-channels), and then with [limited access](/docs/claude-tag/admins/restrict-access.md#what-access-claude-has-in-a-slack-connect-channel). +In a Slack Connect channel (shared with another company), Claude answers only where an Owner or a Claude Tag admin of your Claude organization has [turned it on](https://claude.com/docs/claude-tag/admins/restrict-access.md#slack-connect-channels), and then with [limited access](https://claude.com/docs/claude-tag/admins/restrict-access.md#what-access-claude-has-in-a-slack-connect-channel). ## Requested scopes @@ -39,12 +39,12 @@ The app requests bot scopes for reading and posting in channels it's a member of Two scopes a Slack admin commonly asks about: -* `channels:join` lets Claude add itself to a public channel when a member selects one of its suggested-channel buttons, when a member approves a message it drafted in a direct message for that channel, or when the channel's name matches an [auto-join channel pattern](/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name) an admin set. It cannot join private channels this way. +* `channels:join` lets Claude add itself to a public channel when a member selects one of its suggested-channel buttons, when a member approves a message it drafted in a direct message for that channel, or when the channel's name matches an [auto-join channel pattern](https://claude.com/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name) an admin set. It cannot join private channels this way. * `users:read.email` lets Claude read a member's profile email. Claude uses it for checks such as the email domain when a member connects their Claude account. It does not connect accounts; a member still runs the Connect step in Slack. ## What installing does not grant -Credentials for GitHub, Google Drive, a data warehouse, or anything else are provisioned separately by an Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) of the Claude organization and live on Anthropic's side rather than in Slack. +Credentials for GitHub, Google Drive, a data warehouse, or anything else are provisioned separately by an Owner or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) of the Claude organization and live on Anthropic's side rather than in Slack. It responds when @-mentioned, and may respond to other messages it judges warrant a reply. @@ -52,15 +52,15 @@ It responds when @-mentioned, and may respond to other messages it judges warran Post `@Claude connect` in any channel with no other text, or send `connect` on its own in a direct message with Claude, and give the code it returns to whoever asked you to install. That code is what pairs your workspace to their Claude organization; it expires after 15 minutes. -Pick a channel that belongs to just your workspace. Claude can decline to reply in [guest and shared channels](/docs/claude-tag/admins/troubleshooting.md#guest-and-shared-channels). +Pick a channel that belongs to just your workspace. Claude can decline to reply in [guest and shared channels](https://claude.com/docs/claude-tag/admins/troubleshooting.md#guest-and-shared-channels). ## If you uninstall the app -Uninstalling the Claude app from your workspace removes it from Slack and deletes the workspace's Claude data on Anthropic's side, the same way [disconnecting the workspace](/docs/claude-tag/admins/workspaces.md#revoke-a-pairing) from the Claude console does. What Claude posted in Slack, such as messages, canvases, and files, stays in Slack under your workspace's own retention settings. +Uninstalling the Claude app from your workspace removes it from Slack and deletes the workspace's Claude data on Anthropic's side, the same way [disconnecting the workspace](https://claude.com/docs/claude-tag/admins/workspaces.md#revoke-a-pairing) from the Claude console does. What Claude posted in Slack, such as messages, canvases, and files, stays in Slack under your workspace's own retention settings. On Enterprise Grid, this applies when the app was installed on an individual workspace and you uninstall it there. Removing an org-wide installation, from the whole grid or from one of its workspaces, doesn't delete data on its own; to delete it, ask an Owner of the Claude organization to disconnect the Grid in its Claude Tag settings. ## Related resources -* [Security and data handling](/docs/claude-tag/concepts/security-and-data.md): where credentials are stored and what leaves your workspace -* [Pair your Slack workspace](/docs/claude-tag/admins/setup-overview#pair-your-slack-workspace): what the Claude organization's Owner does with the code you send +* [Security and data handling](https://claude.com/docs/claude-tag/concepts/security-and-data.md): where credentials are stored and what leaves your workspace +* [Pair your Slack workspace](https://claude.com/docs/claude-tag/admins/setup-overview#pair-your-slack-workspace): what the Claude organization's Owner does with the code you send diff --git a/content/claude/claude-tag/admins/healthcare.md b/content/claude/claude-tag/admins/healthcare.md index 11976d07e..126460ec1 100644 --- a/content/claude/claude-tag/admins/healthcare.md +++ b/content/claude/claude-tag/admins/healthcare.md @@ -21,20 +21,20 @@ This page is for the Claude organization's Owners and the compliance lead decidi Claude reads Slack with the same visibility a member of your workspace has. In a Slack workspace connected to your Claude organization, Claude can: * Read and post in the channels it has been added to -* Search every public channel by keyword, including public channels it hasn't been added to. [No admin setting turns this search off](/docs/claude-tag/admins/restrict-access.md#controls-that-aren%E2%80%99t-available). An Owner can [limit it to channels Claude is in](/docs/claude-tag/admins/restrict-access.md#limit-which-channels-claude-can-search). +* Search every public channel by keyword, including public channels it hasn't been added to. [No admin setting turns this search off](https://claude.com/docs/claude-tag/admins/restrict-access.md#controls-that-aren%E2%80%99t-available). An Owner can [limit it to channels Claude is in](https://claude.com/docs/claude-tag/admins/restrict-access.md#limit-which-channels-claude-can-search). * Read a private channel only after someone in that channel invites it -Claude never searches private channels. In a [Slack Connect channel](/docs/claude-tag/admins/restrict-access.md#slack-connect-channels), one your workspace shares with another company, Claude replies only where an Owner or a Claude Tag admin of your Claude organization has turned it on, and then with [limited access](/docs/claude-tag/admins/restrict-access.md#what-access-claude-has-in-a-slack-connect-channel). +Claude never searches private channels. In a [Slack Connect channel](https://claude.com/docs/claude-tag/admins/restrict-access.md#slack-connect-channels), one your workspace shares with another company, Claude replies only where an Owner or a Claude Tag admin of your Claude organization has turned it on, and then with [limited access](https://claude.com/docs/claude-tag/admins/restrict-access.md#what-access-claude-has-in-a-slack-connect-channel). For a healthcare organization, the rule that follows is to keep PHI out of every public channel in the connected workspace, not only the channels where Claude responds, because Claude's keyword search reaches all of them by default. Keep PHI out of any private channel Claude has been invited to as well. -For how Claude's work in each thread is isolated, how connection credentials are held, and where network traffic can go, see [Security and data handling](/docs/claude-tag/concepts/security-and-data.md). +For how Claude's work in each thread is isolated, how connection credentials are held, and where network traffic can go, see [Security and data handling](https://claude.com/docs/claude-tag/concepts/security-and-data.md). ## Plan and organization requirements -Limiting Claude to approved channels needs an [Enterprise plan](https://claude.com/pricing), in addition to the [general prerequisites for Claude Tag](/docs/claude-tag/admins/setup-overview). The Enterprise plan has a [setting that turns Claude on or off for an individual channel](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope). +Limiting Claude to approved channels needs an [Enterprise plan](https://claude.com/pricing), in addition to the [general prerequisites for Claude Tag](https://claude.com/docs/claude-tag/admins/setup-overview). The Enterprise plan has a [setting that turns Claude on or off for an individual channel](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope). -Claude Tag [isn't available in a Claude organization](/docs/claude-tag/concepts/security-and-data.md) that has any of these: +Claude Tag [isn't available in a Claude organization](https://claude.com/docs/claude-tag/concepts/security-and-data.md) that has any of these: * Zero Data Retention (ZDR) * Customer-managed encryption keys @@ -48,7 +48,7 @@ An Owner turns Claude off everywhere by default, turns it on only in channels ap **1. Turn Claude off by default** -Go to [**Claude's access > Channels > Slack**](https://claude.ai/admin-settings/claude-tag/channels/slack) and turn off the **Respond in all channels** switch at the top of the **General** tab. [Limit Claude Tag to specific channels](/docs/claude-tag/admins/restrict-access.md#limit-claude-tag-to-specific-channels) has the full procedure. +Go to [**Claude's access > Channels > Slack**](https://claude.ai/admin-settings/claude-tag/channels/slack) and turn off the **Respond in all channels** switch at the top of the **General** tab. [Limit Claude Tag to specific channels](https://claude.com/docs/claude-tag/admins/restrict-access.md#limit-claude-tag-to-specific-channels) has the full procedure. **2. Reset workspaces and channels that have their own setting** @@ -56,23 +56,23 @@ A workspace's or channel's own **Enable Claude Tag** setting takes precedence ov **3. Turn Claude on in each approved channel** -On the **Channels** tab, open the approved channel's page and turn on its **Enable Claude Tag in this channel** switch. If the channel isn't listed on the **Channels** tab, [set it up](/docs/claude-tag/admins/attach-to-scope.md#attach-to-a-channel) first. +On the **Channels** tab, open the approved channel's page and turn on its **Enable Claude Tag in this channel** switch. If the channel isn't listed on the **Channels** tab, [set it up](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#attach-to-a-channel) first. **4. Turn off direct messages** -On the same [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag) page, select **Edit** on the **Direct messages** row and turn off the [**Allow direct messages** toggle](/docs/claude-tag/admins/restrict-access.md#allow-or-disable-direct-messages). Claude is then reachable only in channels. +On the same [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag) page, select **Edit** on the **Direct messages** row and turn off the [**Allow direct messages** toggle](https://claude.com/docs/claude-tag/admins/restrict-access.md#allow-or-disable-direct-messages). Claude is then reachable only in channels. **5. Block channel names that signal PHI** -Go to [**Claude's access > Channels > Slack**](https://claude.ai/admin-settings/claude-tag/channels/slack), open the **Advanced** tab, and under **Channels** add the naming patterns your workspace uses for clinical or patient channels to **Blocked channel patterns**, for example `*-patient-*`. Claude won't read or respond in a matching channel even if someone invites it. See [Block or auto-join channels by name](/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name). +Go to [**Claude's access > Channels > Slack**](https://claude.ai/admin-settings/claude-tag/channels/slack), open the **Advanced** tab, and under **Channels** add the naming patterns your workspace uses for clinical or patient channels to **Blocked channel patterns**, for example `*-patient-*`. Claude won't read or respond in a matching channel even if someone invites it. See [Block or auto-join channels by name](https://claude.com/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name). Any member of the workspace can still invite `@Claude` to a channel that isn't approved. Claude stays silent there, and an @-mention gets a notice that Claude is disabled in that channel instead of a reply. -Only an Owner of your Claude organization or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) can change the **Respond in all channels** switch or an **Enable Claude Tag** switch, and only an Owner can change the **Allow direct messages** toggle. Give the **Claude Tag Admin** permission only to people you trust to approve a channel as PHI-free. +Only an Owner of your Claude organization or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) can change the **Respond in all channels** switch or an **Enable Claude Tag** switch, and only an Owner can change the **Allow direct messages** toggle. Give the **Claude Tag Admin** permission only to people you trust to approve a channel as PHI-free. ## Connect only PHI-free tools -In a channel, Claude signs in to tools outside Slack only through Claude Tag connectors. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](/docs/claude-tag/admins/add-connections.md#add-a-connection) before you add a connector. +In a channel, Claude signs in to tools outside Slack only through Claude Tag connectors. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection) before you add a connector. For a healthcare organization, apply these rules when deciding what to connect: @@ -81,7 +81,7 @@ For a healthcare organization, apply these rules when deciding what to connect: * Treat email and calendar as PHI-bearing unless your compliance team has confirmed otherwise, and leave them unconnected until then * Add connectors inside bundles, and add each bundle to the approved channels that need it, not to the **Slack** page (whose settings apply to every channel in every connected workspace), so a connector never reaches a channel it wasn't reviewed for -Members' own claude.ai connectors, such as their email or calendar, are a separate path to tools outside Slack. In a one-to-one direct message from a member who has connected a Claude account, Claude works on that member's own Claude account and can use those connectors, so keep the **Allow direct messages** toggle off as described in [Limit Claude to PHI-free channels](#limit-claude-to-phi-free-channels). In channels, Claude can [use a member's own connectors for that member's requests](/docs/claude-tag/concepts/personal-connectors.md) after the member allows it, and no organization setting turns off personal connectors in channels entirely. These controls apply: +Members' own claude.ai connectors, such as their email or calendar, are a separate path to tools outside Slack. In a one-to-one direct message from a member who has connected a Claude account, Claude works on that member's own Claude account and can use those connectors, so keep the **Allow direct messages** toggle off as described in [Limit Claude to PHI-free channels](#limit-claude-to-phi-free-channels). In channels, Claude can [use a member's own connectors for that member's requests](https://claude.com/docs/claude-tag/concepts/personal-connectors.md) after the member allows it, and no organization setting turns off personal connectors in channels entirely. These controls apply: * **Block a connector for everyone.** A connector you restrict for your organization on the [**Connectors** admin page](https://claude.ai/admin-settings/connectors) stays restricted when Claude uses a member's connectors in a channel. * **Require human review.** On the Enterprise plan, go to [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), select **Edit** on the **Personal connectors** row, and turn on **Require human review of every message**, so a member reviews every result before it posts to the channel. @@ -97,11 +97,11 @@ Anthropic stores two things for the conversations Claude works in. The first is Claude keeps separate notes for each channel. From a public channel it can also save workspace notes, and those inform its replies in every channel in the workspace. Notes from a private channel stay in that channel's own store and aren't read anywhere else. -Anyone in a channel can ask Claude what it remembers there and tell it to correct or delete a note. An Owner can view, edit, and delete the memory notes of the workspace or of a channel. Go to [**Claude's access > Channels**](https://claude.ai/admin-settings/claude-tag?access=channels), open the workspace's page (or a channel's page, when that channel has memory of its own), open its **⋯** menu, and select **View memory files**. The **Memory** tab of the [**Activity** page](/docs/claude-tag/admins/audit.md) opens the same files. +Anyone in a channel can ask Claude what it remembers there and tell it to correct or delete a note. An Owner can view, edit, and delete the memory notes of the workspace or of a channel. Go to [**Claude's access > Channels**](https://claude.ai/admin-settings/claude-tag?access=channels), open the workspace's page (or a channel's page, when that channel has memory of its own), open its **⋯** menu, and select **View memory files**. The **Memory** tab of the [**Activity** page](https://claude.com/docs/claude-tag/admins/audit.md) opens the same files. -By default, your Slack conversations with Claude aren't used to train Anthropic's models. Anthropic's [model training policy](https://privacy.anthropic.com/en/articles/7996885-how-do-you-use-personal-data-in-model-training) describes when data is used. Claude Tag data is kept until one of the admin actions in [Data lifecycle and deletion](/docs/claude-tag/concepts/data-lifecycle.md) deletes it, and during the beta you can't set a shorter retention period. +By default, your Slack conversations with Claude aren't used to train Anthropic's models. Anthropic's [model training policy](https://privacy.anthropic.com/en/articles/7996885-how-do-you-use-personal-data-in-model-training) describes when data is used. Claude Tag data is kept until one of the admin actions in [Data lifecycle and deletion](https://claude.com/docs/claude-tag/concepts/data-lifecycle.md) deletes it, and during the beta you can't set a shorter retention period. -For the full list of what is stored and what each admin action deletes, see [Data lifecycle and deletion](/docs/claude-tag/concepts/data-lifecycle.md) and [What Claude Tag remembers](/docs/claude-tag/users/memory.md). +For the full list of what is stored and what each admin action deletes, see [Data lifecycle and deletion](https://claude.com/docs/claude-tag/concepts/data-lifecycle.md) and [What Claude Tag remembers](https://claude.com/docs/claude-tag/users/memory.md). ## If PHI is posted where Claude can read it @@ -109,14 +109,14 @@ Anthropic keeps a transcript of each conversation Claude works in, including the 1. Report it to your organization's HIPAA privacy officer and follow your incident process. 2. Delete the message in Slack. -3. If the message was posted in a channel where Claude is turned on, have an Owner delete that channel's transcripts and memory immediately by [removing the channel's scope](/docs/claude-tag/concepts/data-lifecycle.md#delete-data-or-request-deletion). On the **Channels** tab under **Claude's access**, open the channel's page and choose **Remove this scope** from its **⋯** menu, if the menu lists it. +3. If the message was posted in a channel where Claude is turned on, have an Owner delete that channel's transcripts and memory immediately by [removing the channel's scope](https://claude.com/docs/claude-tag/concepts/data-lifecycle.md#delete-data-or-request-deletion). On the **Channels** tab under **Claude's access**, open the channel's page and choose **Remove this scope** from its **⋯** menu, if the menu lists it. 4. If that channel is public, have an Owner also check the workspace's memory, because workspace notes Claude saved from that channel are stored with the workspace and aren't deleted with the channel's scope. On the **Channels** tab, open your workspace's page, choose **View memory files** from its **⋯** menu, and delete any note that contains the information. Deleting a note removes it from what Claude reads in every channel right away. 5. Email [privacy@anthropic.com](mailto:privacy@anthropic.com) to request deletion of the data Claude Tag retained that the admin controls in steps 3 and 4 don't delete, including the workspace's stored memory and any transcript in another channel whose session found the message through search. Include the workspace, the channel, and the time of the message. -Removing a channel's scope also turns Claude off in that channel, because the channel then inherits the off setting from the **Slack** page. To turn Claude back on later, [set the channel up again](/docs/claude-tag/admins/attach-to-scope.md#attach-to-a-channel) on the **Channels** tab and turn on its **Enable Claude Tag in this channel** switch. +Removing a channel's scope also turns Claude off in that channel, because the channel then inherits the off setting from the **Slack** page. To turn Claude back on later, [set the channel up again](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#attach-to-a-channel) on the **Channels** tab and turn on its **Enable Claude Tag in this channel** switch. ## Related resources -* [Restrict where Claude Tag operates](/docs/claude-tag/admins/restrict-access.md): every control that narrows where Claude responds and who can use it -* [Security and data handling](/docs/claude-tag/concepts/security-and-data.md): sandbox isolation, credential handling, and network egress -* [Data lifecycle and deletion](/docs/claude-tag/concepts/data-lifecycle.md): what Anthropic stores and how to delete it +* [Restrict where Claude Tag operates](https://claude.com/docs/claude-tag/admins/restrict-access.md): every control that narrows where Claude responds and who can use it +* [Security and data handling](https://claude.com/docs/claude-tag/concepts/security-and-data.md): sandbox isolation, credential handling, and network egress +* [Data lifecycle and deletion](https://claude.com/docs/claude-tag/concepts/data-lifecycle.md): what Anthropic stores and how to delete it diff --git a/content/claude/claude-tag/admins/managed-by.md b/content/claude/claude-tag/admins/managed-by.md index 96bda5cb6..2c4c66360 100644 --- a/content/claude/claude-tag/admins/managed-by.md +++ b/content/claude/claude-tag/admins/managed-by.md @@ -12,9 +12,9 @@ **Managed by** is a channel setting that names other Slack channels whose members can write that channel's standing instructions for Claude. The channel that carries the setting is the managed channel, and each channel it names is a managing channel. People in a managing channel ask Claude to set or update the managed channel's instructions and confirm the change on a card, and Claude follows that text in every new conversation in the managed channel. This page is for admins who set up the pairing and for the people in a managing channel who write the instructions. -On the Enterprise plan, an Owner of your Claude organization or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) sets up **Managed by** on the **Admin** tab of a channel's Configure page. The Team plan doesn't have the **Admin** tab. [When to use Managed by](#when-to-use-managed-by) lists the other places to keep instructions for a channel. +On the Enterprise plan, an Owner of your Claude organization or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) sets up **Managed by** on the **Admin** tab of a channel's Configure page. The Team plan doesn't have the **Admin** tab. [When to use Managed by](#when-to-use-managed-by) lists the other places to keep instructions for a channel. -A managing channel isn't a [channel manager](/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers). A channel manager is a person with a role that lets them configure one channel. A managing channel is a Slack channel, and the full workspace members in it can propose and confirm changes. +A managing channel isn't a [channel manager](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers). A channel manager is a person with a role that lets them configure one channel. A managing channel is a Slack channel, and the full workspace members in it can propose and confirm changes. ## When to use Managed by @@ -22,10 +22,10 @@ The table compares the places standing instructions for Claude can live and who | You want | Use | Who writes it | | :- | :- | :- | -| The same rules in every channel of a workspace or your whole organization | [Custom instructions](/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions) on the workspace or organization scope | An Owner, or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) for the workspace scope, in admin settings | +| The same rules in every channel of a workspace or your whole organization | [Custom instructions](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions) on the workspace or organization scope | An Owner, or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) for the workspace scope, in admin settings | | A central team to write the rules for a few channels it runs, such as a help desk or an on-call channel, without being admins | **Managed by** | Members of a managing channel, by asking Claude in Slack | | To correct how Claude behaves in a channel without having the conversation in that channel | **Managed by** with a private managing channel, as in [Correct Claude privately from a managing channel](#correct-claude-privately-from-a-managing-channel) | You, by asking Claude in the private channel | -| The people who work in a channel to set its conventions themselves | The **Channel instructions** field on the channel's [Configure page](/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel) | Channel members, unless an admin has [restricted editing](/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) | +| The people who work in a channel to set its conventions themselves | The **Channel instructions** field on the channel's [Configure page](https://claude.com/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel) | Channel members, unless an admin has [restricted editing](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) | You set up **Managed by** one channel at a time, and someone confirms each change to a channel's text in Slack. That suits a handful of channels. To give many channels the same text, use workspace or organization custom instructions. @@ -38,8 +38,8 @@ The **Managed by** list on the managed channel's Configure page refuses a pairin * **Every channel in the pairing:** Claude is a member, and the channel is an ordinary channel in the same Slack workspace as the others. Direct messages and group direct messages can't be managed or managing channels. * **Sharing:** no channel in the pairing is shared outside its workspace. That rules out Slack Connect channels, including ones with a pending invitation, and channels shared across the workspaces of an Enterprise Grid. * **You:** you are a member of every managing channel you add. -* **Managing channel:** its [**Channel member edits**](/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) setting resolves to **Allow**. The list accepts a managing channel set to **Block**, but Claude refuses every read and change there. -* **Managed channel:** the channel has its own page on the **Channels** tab under **Claude's access** in admin settings. If it isn't listed there, [set the channel up](/docs/claude-tag/admins/attach-to-scope.md#attach-to-a-channel). +* **Managing channel:** its [**Channel member edits**](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) setting resolves to **Allow**. The list accepts a managing channel set to **Block**, but Claude refuses every read and change there. +* **Managed channel:** the channel has its own page on the **Channels** tab under **Claude's access** in admin settings. If it isn't listed there, [set the channel up](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#attach-to-a-channel). A managed channel can have up to five managing channels. A private managed channel has extra rules, listed under [Public and private channels](#public-and-private-channels). @@ -47,7 +47,7 @@ A managed channel can have up to five managing channels. A private managed chann **1. Open the managed channel's Configure page** -In the channel whose instructions will be managed, select the **Configure** link in the footer of any Claude reply, or send [`@Claude !configure`](/docs/claude-tag/users/commands#get-the-link-to-configure-a-channel) and follow the link Claude posts. Go to the **Admin** tab. +In the channel whose instructions will be managed, select the **Configure** link in the footer of any Claude reply, or send [`@Claude !configure`](https://claude.com/docs/claude-tag/users/commands#get-the-link-to-configure-a-channel) and follow the link Claude posts. Go to the **Admin** tab. **2. Select channels under Managed by** @@ -61,7 +61,7 @@ To stop a channel managing another, clear it from the same list. Removing a chan ## Write or update managed instructions -A managing channel is a Slack channel that an Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) selected under **Managed by** on another channel's Configure page. Any full member of the workspace who is in a managing channel can ask Claude there to change the managed channel's instructions. Guests and people from other organizations can't. +A managing channel is a Slack channel that an Owner or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) selected under **Managed by** on another channel's Configure page. Any full member of the workspace who is in a managing channel can ask Claude there to change the managed channel's instructions. Guests and people from other organizations can't. **1. Ask Claude in the managing channel** @@ -97,9 +97,9 @@ These rules apply to every card. ### Correct Claude privately from a managing channel -A managing channel is a Slack channel that an Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) selected under **Managed by** on another channel's Configure page, and that other channel is the managed channel. When Claude gets something wrong in the managed channel, you can give the correction in a private managing channel, where only the private channel's members see the conversation. +A managing channel is a Slack channel that an Owner or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) selected under **Managed by** on another channel's Configure page, and that other channel is the managed channel. When Claude gets something wrong in the managed channel, you can give the correction in a private managing channel, where only the private channel's members see the conversation. -Claude proposes the correction as a change to the managed channel's instructions. After you confirm, Claude follows the new text in [conversations that start afterward](#how-managed-instructions-load) in the managed channel. While a guest is present in a managed channel that runs with [channel-only access](/docs/claude-tag/admins/restrict-access.md#how-channel-only-works), Claude doesn't load managed instructions. +Claude proposes the correction as a change to the managed channel's instructions. After you confirm, Claude follows the new text in [conversations that start afterward](#how-managed-instructions-load) in the managed channel. While a guest is present in a managed channel that runs with [channel-only access](https://claude.com/docs/claude-tag/admins/restrict-access.md#how-channel-only-works), Claude doesn't load managed instructions. **1. Set up a private managing channel** @@ -134,7 +134,7 @@ People who are in the managed channel and not in the managing channel see only p * **Your messages, Claude's replies, and the card:** these stay in the managing channel. Claude posts nothing in the managed channel when you confirm. * **The instruction text:** members of the managed channel can ask Claude to repeat its instructions, so write the correction as a rule you're comfortable with them reading. They can also ask Claude to change or remove the text, as described in [Limits of Managed by as a control](#limits-of-managed-by-as-a-control). -In the original thread, Claude keeps the text the thread started with, and its replies there stay as they are. From a private channel, Claude [doesn't post in other channels](/docs/claude-tag/concepts/how-it-works.md#what-claude-can-do-in-other-channels), so reply in that thread yourself if the person who asked needs the right answer. +In the original thread, Claude keeps the text the thread started with, and its replies there stay as they are. From a private channel, Claude [doesn't post in other channels](https://claude.com/docs/claude-tag/concepts/how-it-works.md#what-claude-can-do-in-other-channels), so reply in that thread yourself if the person who asked needs the right answer. ## How managed instructions load @@ -145,7 +145,7 @@ Managed instructions are either core instructions, which Claude always reads, or | Core instructions | One per managed channel | 16 KiB | At the start of every new conversation in the managed channel | | Reference files | Up to 20 per managed channel, each with a short name | 100 KiB each | When the core instructions point Claude to one by name | -While a guest is present in a managed channel that runs with [channel-only access](/docs/claude-tag/admins/restrict-access.md#how-channel-only-works), Claude doesn't read the channel's memory, where managed instructions are stored, so conversations start without them. +While a guest is present in a managed channel that runs with [channel-only access](https://claude.com/docs/claude-tag/admins/restrict-access.md#how-channel-only-works), Claude doesn't read the channel's memory, where managed instructions are stored, so conversations start without them. Put what Claude must always follow in the core instructions. Put long material, such as a runbook or an escalation list, in a reference file, and name that file in the core instructions so Claude knows when to open it. @@ -170,7 +170,7 @@ A managing channel's members can read the managed channel's instructions through | Managed channel | Managing channels can be | Who can add managing channels | | :- | :- | :- | -| Public | Public or private | An Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) | +| Public | Public or private | An Owner or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) | | Private | Private only | An Owner or a Claude Tag admin who is also a member of the private channel | Anyone in the workspace can join a public managing channel and confirm changes there, so prefer a private managing channel for anything sensitive. @@ -179,9 +179,9 @@ When a public managed channel is made private, its managing channels are removed ## Limits of Managed by as a control -**Managed by** sets which channels' members can write a channel's standing instructions through Claude. It isn't an access control. The managed text is stored with the managed channel's [memory](/docs/claude-tag/users/memory.md), so a member of the managed channel who asks Claude to change what it has saved there can still alter or remove the text. +**Managed by** sets which channels' members can write a channel's standing instructions through Claude. It isn't an access control. The managed text is stored with the managed channel's [memory](https://claude.com/docs/claude-tag/users/memory.md), so a member of the managed channel who asks Claude to change what it has saved there can still alter or remove the text. -For instructions that channel members can't change, use [organization or workspace custom instructions](/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions). For anything Claude must not do, use [access controls](/docs/claude-tag/admins/restrict-access.md). +For instructions that channel members can't change, use [organization or workspace custom instructions](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions). For anything Claude must not do, use [access controls](https://claude.com/docs/claude-tag/admins/restrict-access.md). If Claude can't read managed instructions when a conversation starts, the conversation starts without them. @@ -194,22 +194,22 @@ Claude words a refusal differently each time, so match a row on its meaning. The | This channel isn't set as a manager of the other channel | No pairing exists, or it was removed | Add this channel under **Managed by** on the other channel's Configure page | | A channel is shared with another organization | The managed or managing channel is a Slack Connect channel, has a pending invitation, or is shared across Enterprise Grid workspaces | Use channels that belong to one workspace only | | You aren't in the managing channel, or in the private managed channel | You tried to add a managing channel you haven't joined, or to add managing channels to a private channel you aren't in | Join the channel in Slack, then try again | -| This channel's settings are locked by an admin | The managing channel's [**Channel member edits**](/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) setting is **Block**, on the channel or inherited from its workspace or the **Slack** page | Set **Channel member edits** to **Allow** on the managing channel's scope | +| This channel's settings are locked by an admin | The managing channel's [**Channel member edits**](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) setting is **Block**, on the channel or inherited from its workspace or the **Slack** page | Set **Channel member edits** to **Allow** on the managing channel's scope | | You need your Claude account connected in this organization | You selected **Confirm** or **Cancel** without a Claude account in the organization connected to your Slack account | Connect your account from the Claude app's **Home** tab in Slack, then select the button again | | Claude isn't in one of the channels | Claude was removed from the managed or managing channel, or never added | Run `/invite @Claude` in that channel | | One of those channels is archived | One of the managing channels is archived in Slack | Remove the archived channel, then try again | | A private channel can only be managed by private channels | The managed channel is private and the managing channel is public, or was made public later | Pick a private managing channel | -| The managed channel may have been made private or deleted | The managed channel was made private or deleted, or Claude is no longer in it | Check the channel in Slack. If it was made private, an Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) who is a member of it adds private managing channels again | -| Claude isn't set up in the managed channel with its own channel configuration | The managed channel has no page of its own on the **Channels** tab | [Set the channel up](/docs/claude-tag/admins/attach-to-scope.md#attach-to-a-channel) in admin settings | +| The managed channel may have been made private or deleted | The managed channel was made private or deleted, or Claude is no longer in it | Check the channel in Slack. If it was made private, an Owner or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) who is a member of it adds private managing channels again | +| Claude isn't set up in the managed channel with its own channel configuration | The managed channel has no page of its own on the **Channels** tab | [Set the channel up](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#attach-to-a-channel) in admin settings | | The managed channel already has five managing channels | Five is the most a managed channel can have | Remove one before adding another | | The file would be too large | The core instructions are over 16 KiB, or a reference file is over 100 KiB | Shorten the text, or move detail into a reference file | | The managed channel already has the most reference files | Twenty reference files exist | Ask Claude to delete one first | | The change is too large to show | The card can't display every changed line | Ask for a smaller part, confirm it, then ask for the next part | | The text was refused by the content check | The text is blank or contains characters, links, or formatting the content check doesn't allow | Remove that part or write it as plain text, then ask again | -| Managed instructions changes aren't available for organizations with restricted compliance settings | Your organization has restricted compliance settings | See [Restricted compliance settings block Claude Tag](/docs/claude-tag/admins/troubleshooting.md#restricted-compliance-settings-block-claude-tag) | +| Managed instructions changes aren't available for organizations with restricted compliance settings | Your organization has restricted compliance settings | See [Restricted compliance settings block Claude Tag](https://claude.com/docs/claude-tag/admins/troubleshooting.md#restricted-compliance-settings-block-claude-tag) | ## Related resources -* [How custom instructions stack](/docs/claude-tag/admins/attach-to-scope.md#custom-instructions): how organization, workspace, and channel instructions combine -* [Customize Claude Tag](/docs/claude-tag/admins/customize.md): every layer that shapes Claude's behavior and who sets it -* [What Claude Tag remembers](/docs/claude-tag/users/memory.md): channel memory, where managed text is stored +* [How custom instructions stack](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#custom-instructions): how organization, workspace, and channel instructions combine +* [Customize Claude Tag](https://claude.com/docs/claude-tag/admins/customize.md): every layer that shapes Claude's behavior and who sets it +* [What Claude Tag remembers](https://claude.com/docs/claude-tag/users/memory.md): channel memory, where managed text is stored diff --git a/content/claude/claude-tag/admins/migrate-from-earlier.md b/content/claude/claude-tag/admins/migrate-from-earlier.md index 8d6c529ca..7f59c0b2b 100644 --- a/content/claude/claude-tag/admins/migrate-from-earlier.md +++ b/content/claude/claude-tag/admins/migrate-from-earlier.md @@ -14,13 +14,13 @@ If your organization already used the earlier Claude in Slack, including [Claude > [!NOTE] > -> If your Team plan organization has the single [**Respond in channels** switch](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-on-the-team-plan), it has no **Claude Tag version** controls and there is nothing to migrate. +> If your Team plan organization has the single [**Respond in channels** switch](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-on-the-team-plan), it has no **Claude Tag version** controls and there is nothing to migrate. ## Switch your workspace to Claude Tag **1. Connect the workspace in the Claude console** -Open [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag). If your workspace isn't paired, run [setup](/docs/claude-tag/admins/setup-overview); otherwise you're already on Claude Tag. Once paired, channels and linked-user DMs answer with the New version by default; no per-channel action is needed. +Open [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag). If your workspace isn't paired, run [setup](https://claude.com/docs/claude-tag/admins/setup-overview); otherwise you're already on Claude Tag. Once paired, channels and linked-user DMs answer with the New version by default; no per-channel action is needed. **2. Check for channels still on Legacy** @@ -32,23 +32,23 @@ Pairing defaults every workspace and channel to **New**, so this is usually quic **3. Give Claude its connections** -The New version starts with no access of its own. GitHub repositories and other connections do not carry over from individual users' linked accounts, so code requests in a switched channel have nothing to clone until you configure them. Follow the [setup overview](/docs/claude-tag/admins/setup-overview) to add connections, and [GitHub access](/docs/claude-tag/admins/configure-github.md) for code work specifically. +The New version starts with no access of its own. GitHub repositories and other connections do not carry over from individual users' linked accounts, so code requests in a switched channel have nothing to clone until you configure them. Follow the [setup overview](https://claude.com/docs/claude-tag/admins/setup-overview) to add connections, and [GitHub access](https://claude.com/docs/claude-tag/admins/configure-github.md) for code work specifically. -If your teams keep custom skills in a repository's `.claude/skills/` folder, those skills apply only in threads that have the repository. Add the repository to a [bundle](/docs/claude-tag/concepts/glossary.md#access-bundle) that applies to the channel, and have users name it in the first message. To give skills to every channel in a workspace or in all of Slack, add them through a [skills repository](/docs/claude-tag/admins/skills-repo.md). +If your teams keep custom skills in a repository's `.claude/skills/` folder, those skills apply only in threads that have the repository. Add the repository to a [bundle](https://claude.com/docs/claude-tag/concepts/glossary.md#access-bundle) that applies to the channel, and have users name it in the first message. To give skills to every channel in a workspace or in all of Slack, add them through a [skills repository](https://claude.com/docs/claude-tag/admins/skills-repo.md). **4. Tell your users** -Send them [Get started](/docs/claude-tag/users/getting-started.md). The visible change is that work now belongs to the channel; see [What existing users notice after the switch](#what-existing-users-notice-after-the-switch) below. +Send them [Get started](https://claude.com/docs/claude-tag/users/getting-started.md). The visible change is that work now belongs to the channel; see [What existing users notice after the switch](#what-existing-users-notice-after-the-switch) below. **You'll see:** the workspace under **Connected workspaces** on the **Slack** page, **New** as the **Slack** page's **Claude Tag version**, and no row on the **Channels** tab showing **legacy Claude in Slack**. ### If `@Claude` doesn't respond at all -On Enterprise Grid, an earlier install can lose its connection and stop responding in every workspace. See [Claude is silent everywhere on Enterprise Grid](/docs/claude-tag/admins/troubleshooting.md#claude-is-silent-everywhere-on-enterprise-grid) for the reinstall that refreshes it without uninstalling, then send `@Claude connect` again in a channel of that workspace and [pair the workspace](/docs/claude-tag/admins/setup-overview#pair-your-slack-workspace) with the new code. +On Enterprise Grid, an earlier install can lose its connection and stop responding in every workspace. See [Claude is silent everywhere on Enterprise Grid](https://claude.com/docs/claude-tag/admins/troubleshooting.md#claude-is-silent-everywhere-on-enterprise-grid) for the reinstall that refreshes it without uninstalling, then send `@Claude connect` again in a channel of that workspace and [pair the workspace](https://claude.com/docs/claude-tag/admins/setup-overview#pair-your-slack-workspace) with the new code. > [!WARNING] > -> Since October 5, 2026, the earlier Claude in Slack app, shown as **Legacy** in admin settings, no longer answers in channels of a workspace paired with your Claude organization. A channel there that's still set to Legacy gets a notice that the legacy bot is retired, until you set **Claude Tag version** to **New** on the channel, or on its workspace if the channel inherits the setting. You also can't switch a workspace or channel to Legacy anymore. Direct messages aren't affected. In a workspace that isn't paired, Pro and Max users still get answers from the earlier app in channels, and anyone else with a connected Claude account gets the [workspace setup notice](/docs/claude-tag/admins/troubleshooting.md#this-workspace-isn%E2%80%99t-set-up-for-claude-tag-yet) instead. +> Since October 5, 2026, the earlier Claude in Slack app, shown as **Legacy** in admin settings, no longer answers in channels of a workspace paired with your Claude organization. A channel there that's still set to Legacy gets a notice that the legacy bot is retired, until you set **Claude Tag version** to **New** on the channel, or on its workspace if the channel inherits the setting. You also can't switch a workspace or channel to Legacy anymore. Direct messages aren't affected. In a workspace that isn't paired, Pro and Max users still get answers from the earlier app in channels, and anyone else with a connected Claude account gets the [workspace setup notice](https://claude.com/docs/claude-tag/admins/troubleshooting.md#this-workspace-isn%E2%80%99t-set-up-for-claude-tag-yet) instead. ## What stays the same @@ -68,7 +68,7 @@ The earlier app linked each user's own claude.ai account, so it answered as that | Standing work | None | Routines and channel watching | | Who sets it up | Each user, individually | An Owner, once | -The **Claude Tag version** setting on each workspace's and channel's page chooses whether the New or Legacy version answers there, and the page's enable switch turns both off. In a paired workspace, Legacy no longer answers in channels. Bundles only apply where the New version answers. See [Turn Claude Tag on or off and set the version for a scope](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) for both controls and where to set them. +The **Claude Tag version** setting on each workspace's and channel's page chooses whether the New or Legacy version answers there, and the page's enable switch turns both off. In a paired workspace, Legacy no longer answers in channels. Bundles only apply where the New version answers. See [Turn Claude Tag on or off and set the version for a scope](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) for both controls and where to set them. ## Two versions of the same Slack app @@ -80,10 +80,10 @@ To tell which version answered in a channel, look at who authored the work. The In channels, the visible difference is that work belongs to the channel, not to whoever asked. Anyone can reply in a thread to steer it, and the result stays where the team can see and pick it up. Code work is authored by the Claude GitHub App rather than as the requesting user. -A user who never linked a claude.ai account can now hand Claude work in channels, by default. Whether that stays open or narrows to organization members is the admin's [access restriction](/docs/claude-tag/admins/restrict-access.md#restrict-who-can-use-claude) setting. +A user who never linked a claude.ai account can now hand Claude work in channels, by default. Whether that stays open or narrows to organization members is the admin's [access restriction](https://claude.com/docs/claude-tag/admins/restrict-access.md#restrict-who-can-use-claude) setting. ## Related resources -* [Glossary: the earlier Claude in Slack](/docs/claude-tag/concepts/glossary.md#the-earlier-claude-in-slack): what each term meant in the old app versus now -* [Set up Claude Tag](/docs/claude-tag/admins/setup-overview): the new admin-side setup, since per-user setup no longer applies -* [Restrict where Claude Tag operates](/docs/claude-tag/admins/restrict-access.md): limit Claude to specific channels, for example during a pilot +* [Glossary: the earlier Claude in Slack](https://claude.com/docs/claude-tag/concepts/glossary.md#the-earlier-claude-in-slack): what each term meant in the old app versus now +* [Set up Claude Tag](https://claude.com/docs/claude-tag/admins/setup-overview): the new admin-side setup, since per-user setup no longer applies +* [Restrict where Claude Tag operates](https://claude.com/docs/claude-tag/admins/restrict-access.md): limit Claude to specific channels, for example during a pilot diff --git a/content/claude/claude-tag/admins/network-requirements.md b/content/claude/claude-tag/admins/network-requirements.md index 82b6ca706..9e2f3a270 100644 --- a/content/claude/claude-tag/admins/network-requirements.md +++ b/content/claude/claude-tag/admins/network-requirements.md @@ -22,11 +22,11 @@ Requests from Claude to your services originate from Anthropic's network. To let The authoritative list is [Anthropic's published IP addresses](https://platform.claude.com/docs/en/api/ip-addresses); check it when you create the rule. -The range is shared across Anthropic services, and dedicated per-organization egress addresses aren't available, so the allowlist entry admits Anthropic's infrastructure as a whole. Your credential's [allowed websites](/docs/claude-tag/admins/add-connections.md#set-allowed-websites) are what scope which of *your* systems Claude can call. +The range is shared across Anthropic services, and dedicated per-organization egress addresses aren't available, so the allowlist entry admits Anthropic's infrastructure as a whole. Your credential's [allowed websites](https://claude.com/docs/claude-tag/admins/add-connections.md#set-allowed-websites) are what scope which of *your* systems Claude can call. > [!NOTE] > -> If your Google Cloud project uses VPC Service Controls, an IP-based access level doesn't admit Claude's queries through the [BigQuery connection](/docs/claude-tag/admins/connections/bigquery.md). See [Allow the connection through a VPC Service Controls perimeter](/docs/claude-tag/admins/connections/bigquery.md#allow-the-connection-through-a-vpc-service-controls-perimeter) on the BigQuery page. +> If your Google Cloud project uses VPC Service Controls, an IP-based access level doesn't admit Claude's queries through the [BigQuery connection](https://claude.com/docs/claude-tag/admins/connections/bigquery.md). See [Allow the connection through a VPC Service Controls perimeter](https://claude.com/docs/claude-tag/admins/connections/bigquery.md#allow-the-connection-through-a-vpc-service-controls-perimeter) on the BigQuery page. ## Internet reachability @@ -34,11 +34,11 @@ The range is shared across Anthropic services, and dedicated per-organization eg > > A connected service must accept traffic from the internet (restricted by IP allowlist if you like). A service reachable only inside your private network can't be connected; private networking such as PrivateLink or VPC peering is not supported. -In an Anthropic-hosted environment, every request from a channel's sandbox to your service passes through [Agent Proxy](/docs/claude-tag/concepts/agent-identity.md#agent-proxy), which carries HTTP and HTTPS only. A service reachable only over another protocol, such as SSH or a database's native wire protocol, can't be connected; put an HTTP API in front of it instead. +In an Anthropic-hosted environment, every request from a channel's sandbox to your service passes through [Agent Proxy](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy), which carries HTTP and HTTPS only. A service reachable only over another protocol, such as SSH or a database's native wire protocol, can't be connected; put an HTTP API in front of it instead. ## IP allowlist vs. allowed websites -The IP allowlist on your service and the [allowed websites](/docs/claude-tag/admins/add-connections.md#set-allowed-websites) on a connection are opposite sides of the same boundary: +The IP allowlist on your service and the [allowed websites](https://claude.com/docs/claude-tag/admins/add-connections.md#set-allowed-websites) on a connection are opposite sides of the same boundary: | | IP allowlist | Allowed websites | | :- | :- | :- | @@ -51,7 +51,7 @@ Events from connected services, like GitHub activity, are delivered directly to ## Related resources -* [Add connections](/docs/claude-tag/admins/add-connections.md#set-allowed-websites): the allowed-websites setting (the other direction: what Claude is allowed to reach) -* [Allow a host without a credential](/docs/claude-tag/admins/add-connections.md#allow-a-host-without-a-credential): how hosts become reachable from a channel, including [allow-all egress](/docs/claude-tag/admins/add-connections.md#allow-all-hosts) -* [How agent identity works](/docs/claude-tag/concepts/agent-identity.md): how credentials are injected at the network boundary -* [Setup overview](/docs/claude-tag/admins/setup-overview): back to the console flow once the allowlist is in place +* [Add connections](https://claude.com/docs/claude-tag/admins/add-connections.md#set-allowed-websites): the allowed-websites setting (the other direction: what Claude is allowed to reach) +* [Allow a host without a credential](https://claude.com/docs/claude-tag/admins/add-connections.md#allow-a-host-without-a-credential): how hosts become reachable from a channel, including [allow-all egress](https://claude.com/docs/claude-tag/admins/add-connections.md#allow-all-hosts) +* [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md): how credentials are injected at the network boundary +* [Setup overview](https://claude.com/docs/claude-tag/admins/setup-overview): back to the console flow once the allowlist is in place diff --git a/content/claude/claude-tag/admins/restrict-access.md b/content/claude/claude-tag/admins/restrict-access.md index dc4f926bb..0c6df36dc 100644 --- a/content/claude/claude-tag/admins/restrict-access.md +++ b/content/claude/claude-tag/admins/restrict-access.md @@ -10,7 +10,7 @@ > > Claude Tag is in public beta. Features and behavior described here may change before general availability. -In channels, Claude Tag responds only where it's been added and addressed, and the controls on this page narrow that further. One-to-one DMs are a separate surface. A DM from a member who has connected a Claude account runs on that member's own account; see [how DMs differ from channels](/docs/claude-tag/concepts/agent-identity.md#direct-message-channels). A [DM from a member who hasn't](#direct-messages-from-members-without-a-claude-account) can bill to your organization. In a [group DM](#group-dms), the work bills to your organization. +In channels, Claude Tag responds only where it's been added and addressed, and the controls on this page narrow that further. One-to-one DMs are a separate surface. A DM from a member who has connected a Claude account runs on that member's own account; see [how DMs differ from channels](https://claude.com/docs/claude-tag/concepts/agent-identity.md#direct-message-channels). A [DM from a member who hasn't](#direct-messages-from-members-without-a-claude-account) can bill to your organization. In a [group DM](#group-dms), the work bills to your organization. > [!NOTE] > @@ -73,7 +73,7 @@ When the toggle is on, a Slack user whose profile email isn't on one of the ente The restriction toggle decides who can use Claude. The controls in this section decide where it works at all, from one channel up to a workspace, and which generation answers in each scope (a scope is a channel, a workspace, or your whole organization). Each scope has its own page under [**Claude's access > Channels**](https://claude.ai/admin-settings/claude-tag?access=channels), and the **Slack** page there holds the settings for your whole organization. -If the **Slack** page's **General** tab shows a **Respond in channels** switch rather than **Respond in all channels**, your organization has a [single on-or-off switch](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-on-the-team-plan) in place of the per-scope switches and version settings. The other controls in this section work the same way either way. +If the **Slack** page's **General** tab shows a **Respond in channels** switch rather than **Respond in all channels**, your organization has a [single on-or-off switch](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-on-the-team-plan) in place of the per-scope switches and version settings. The other controls in this section work the same way either way. ### Quiet or remove Claude Tag @@ -84,9 +84,9 @@ Six ways to stop Claude Tag from responding, ordered from quietest to most compl 3. **Turn off the scope's switch.** * **Stop Claude in one workspace or channel:** open the workspace's or channel's page on the **Channels** tab and turn off the **Enable Claude Tag in this workspace** or **Enable Claude Tag in this channel** switch at the top of its **General** tab. Claude stops responding in that scope even if someone invites it back; an @-mention gets a disabled notice instead of a reply, except in a Slack Connect channel, where Claude posts no notice. Only an Owner or a [Claude Tag admin](#delegate-claude-tag-administration) can change it. * **Stop Claude in every channel:** turn off the **Respond in all channels** switch at the top of the **Slack** page's **General** tab. Claude stops responding in every channel except in workspaces and channels whose own switch is on. If the **Slack** page shows **Respond in channels** instead, turning it off stops Claude in every channel of every connected workspace. -4. **Remove the channel's scope.** If the **⋯** menu on the channel's page lists **Remove this scope**, choose it. Claude deletes the channel's sessions, memory, routines, and published artifacts; see [what each action deletes](/docs/claude-tag/concepts/data-lifecycle.md#actions-in-claude). Where the channel's workspace has its own setting on, or has no setting of its own and the **Slack** page's setting is on, Claude keeps answering in the channel with the access it inherits from its workspace. To stop it answering in that case, run `/remove @Claude` first. -5. **Delete the bundle.** On the bundle's page, choose **Delete bundle** from its menu. This revokes its credentials everywhere it applied (the credentials are removed; memory, routines, and transcripts are not). Running sessions may keep a revoked credential for a short window before the change propagates. An Owner or a [Claude Tag admin](#delegate-claude-tag-administration) can delete a bundle, except that only an Owner can delete one a [channel rule](/docs/claude-tag/admins/attach-to-scope.md#attach-a-bundle-to-channels-by-name) names. -6. **Uninstall the app.** This removes Claude from the workspace and deletes the workspace's Claude data the same way [disconnecting the workspace](/docs/claude-tag/admins/workspaces.md#revoke-a-pairing) does. +4. **Remove the channel's scope.** If the **⋯** menu on the channel's page lists **Remove this scope**, choose it. Claude deletes the channel's sessions, memory, routines, and published artifacts; see [what each action deletes](https://claude.com/docs/claude-tag/concepts/data-lifecycle.md#actions-in-claude). Where the channel's workspace has its own setting on, or has no setting of its own and the **Slack** page's setting is on, Claude keeps answering in the channel with the access it inherits from its workspace. To stop it answering in that case, run `/remove @Claude` first. +5. **Delete the bundle.** On the bundle's page, choose **Delete bundle** from its menu. This revokes its credentials everywhere it applied (the credentials are removed; memory, routines, and transcripts are not). Running sessions may keep a revoked credential for a short window before the change propagates. An Owner or a [Claude Tag admin](#delegate-claude-tag-administration) can delete a bundle, except that only an Owner can delete one a [channel rule](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#attach-a-bundle-to-channels-by-name) names. +6. **Uninstall the app.** This removes Claude from the workspace and deletes the workspace's Claude data the same way [disconnecting the workspace](https://claude.com/docs/claude-tag/admins/workspaces.md#revoke-a-pairing) does. To keep Claude out of channels by name ahead of time, add a [blocked channel pattern](#block-or-auto-join-channels-by-name) instead. @@ -94,10 +94,10 @@ Steps 1–3 do not delete any data. Removing Claude from a channel stops it resp Steps 4 through 6, and disconnecting the workspace, each delete something different: -* **Remove the channel's scope (step 4):** deletes the channel's sessions, memory, routines, and published artifacts; see [what each action deletes](/docs/claude-tag/concepts/data-lifecycle.md#actions-in-claude). +* **Remove the channel's scope (step 4):** deletes the channel's sessions, memory, routines, and published artifacts; see [what each action deletes](https://claude.com/docs/claude-tag/concepts/data-lifecycle.md#actions-in-claude). * **Delete the bundle (step 5):** removes the credentials in that bundle. Memory, routines, and session transcripts stay. -* **Uninstall the app (step 6):** Anthropic deletes the workspace's Claude data, the same set as disconnecting the workspace, plus the app's installation credential; see [what each action deletes](/docs/claude-tag/concepts/data-lifecycle.md#actions-in-slack). -* **[Disconnect the workspace](/docs/claude-tag/admins/workspaces.md#revoke-a-pairing)** at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag): Anthropic deletes the workspace's sessions and transcripts, memory, routines and artifacts, scopes, and members' account links, and the app stays installed so a workspace admin can pair again; see [what each action deletes](/docs/claude-tag/concepts/data-lifecycle.md#actions-in-claude). +* **Uninstall the app (step 6):** Anthropic deletes the workspace's Claude data, the same set as disconnecting the workspace, plus the app's installation credential; see [what each action deletes](https://claude.com/docs/claude-tag/concepts/data-lifecycle.md#actions-in-slack). +* **[Disconnect the workspace](https://claude.com/docs/claude-tag/admins/workspaces.md#revoke-a-pairing)** at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag): Anthropic deletes the workspace's sessions and transcripts, memory, routines and artifacts, scopes, and members' account links, and the app stays installed so a workspace admin can pair again; see [what each action deletes](https://claude.com/docs/claude-tag/concepts/data-lifecycle.md#actions-in-claude). Bundles belong to your organization, not to a workspace, so uninstalling or disconnecting keeps them; only the places they apply in that workspace go. To delete one channel's data while Claude stays in the workspace, remove that channel's scope (step 4) rather than uninstalling. @@ -105,7 +105,7 @@ Bundles belong to your organization, not to a workspace, so uninstalling or disc To let Claude respond only in channels you choose, for example during a pilot confined to one channel, turn off **Respond in all channels** on the **Slack** page, then turn on each chosen channel's **Enable Claude Tag in this channel** switch. Both pages are on the **Channels** tab under [**Claude's access**](https://claude.ai/admin-settings/claude-tag?access=channels). One-to-one DMs, guest channels, and shared channels need more than these switches; each gets its own treatment after the steps. -These steps need the per-scope switches. If the **Slack** page shows [**Respond in channels**](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-on-the-team-plan) instead, you can't limit Claude this way. Use [blocked channel patterns](#block-or-auto-join-channels-by-name) to keep it out of specific channels. +These steps need the per-scope switches. If the **Slack** page shows [**Respond in channels**](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-on-the-team-plan) instead, you can't limit Claude this way. Use [blocked channel patterns](#block-or-auto-join-channels-by-name) to keep it out of specific channels. > [!NOTE] > @@ -121,7 +121,7 @@ Open each workspace's or channel's page that has its own setting. Its switch sho **3. Switch each chosen channel back on** -On the **Channels** tab, find the channel with the search field; channels Claude was added to are already listed. If it isn't listed, set it up as described in [Attach to a channel](/docs/claude-tag/admins/attach-to-scope.md#attach-to-a-channel). Open the channel's page and turn on the **Enable Claude Tag in this channel** switch at the top of its **General** tab. +On the **Channels** tab, find the channel with the search field; channels Claude was added to are already listed. If it isn't listed, set it up as described in [Attach to a channel](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#attach-to-a-channel). Open the channel's page and turn on the **Enable Claude Tag in this channel** switch at the top of its **General** tab. A channel's own setting wins over the off setting above it, so Claude responds in the chosen channels and nowhere else. @@ -144,7 +144,7 @@ To control who can use Claude in the allowed channels, turn on the [restriction * **Blocked channel patterns**: Claude won't read or respond in a channel whose name matches, even if someone invites it there. When it's added to such a channel or @-mentioned in one, it posts a notice that an admin has blocked it there, and otherwise stays silent. In a Slack Connect channel, it posts no notice. * **Auto-join channels**: Claude joins a public channel whose name matches one of its patterns when the channel is created or renamed. Private channels still need an invite. To add Claude to an existing channel, invite it as usual. -Each row of the **Auto-join channels** table is one pattern, added with **Add pattern**. A row can also carry [bundles](/docs/claude-tag/admins/attach-to-scope.md#attach-a-bundle-to-channels-by-name), which attach in every matching channel Claude is in; a row with no bundles is marked **Auto-join only**, and Claude joins matching channels whether or not a row carries bundles. A channel rule added with **Add a channel rule…** on the **Channels** tab shows up as a row here too. Editing the patterns or the bundles on a row needs an Owner of your Claude organization. +Each row of the **Auto-join channels** table is one pattern, added with **Add pattern**. A row can also carry [bundles](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#attach-a-bundle-to-channels-by-name), which attach in every matching channel Claude is in; a row with no bundles is marked **Auto-join only**, and Claude joins matching channels whether or not a row carries bundles. A channel rule added with **Add a channel rule…** on the **Channels** tab shows up as a row here too. Editing the patterns or the bundles on a row needs an Owner of your Claude organization. Removing a pattern row also detaches the row's bundles. A row marked **Not auto-joined** shows a pattern that still has bundles attached but that the auto-join list no longer carries. Claude joins no new channels for it, but its bundles still attach in matching channels Claude is already in; remove the bundles from the row to end that. @@ -176,26 +176,26 @@ In any channel that includes a guest, even under **Full access**, Claude won't s Use **Channel only** to keep Claude available in a channel shared with contractors, clients, or agency partners without exposing the rest of the organization's setup to that conversation. While a guest is in the channel, Claude has: -* No [bundles](/docs/claude-tag/admins/attach-to-scope.md) inherited from the workspace or the organization. A bundle attached directly to the channel still applies. +* No [bundles](https://claude.com/docs/claude-tag/admins/attach-to-scope.md) inherited from the workspace or the organization. A bundle attached directly to the channel still applies. * No connections inherited from the workspace or the organization. A connection set directly on the channel still applies. * No repositories from the workspace or the organization. * No instructions set on the workspace or the organization. Instructions set on the channel itself still apply. * No memory, including this channel's own, and no skills. -* No [environment set on the scope](/docs/claude-tag/admins/customize.md#configure-the-environment-for-a-scope). The session runs on the standard environment, so the setup script, environment variables, and network access level of the environment you chose don't apply while a guest is present. +* No [environment set on the scope](https://claude.com/docs/claude-tag/admins/customize.md#configure-the-environment-for-a-scope). The session runs on the standard environment, so the setup script, environment variables, and network access level of the environment you chose don't apply while a guest is present. Claude decides which access applies when a conversation starts. When no guest is in the channel, new conversations get the same access as under **Full access**. A conversation that was underway before the first guest joined doesn't keep its full access. The next message from a workspace member in that thread starts the conversation over with channel-only access. A guest who writes there before a member does gets the same notice as under **Restrict**. -The channel's [**Respond automatically**](/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off) setting works the same while a guest is present, and it's on by default. While it's on, messages from workspace members that don't mention Claude still reach it, and Claude may reply to some of them on its own. Outside the threads Claude is part of, a guest's messages that don't mention Claude reach it only as context, not as requests. To have Claude reply only to @-mentions and in threads it's already part of, turn **Respond automatically** off for that channel. +The channel's [**Respond automatically**](https://claude.com/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off) setting works the same while a guest is present, and it's on by default. While it's on, messages from workspace members that don't mention Claude still reach it, and Claude may reply to some of them on its own. Outside the threads Claude is part of, a guest's messages that don't mention Claude reach it only as context, not as requests. To have Claude reply only to @-mentions and in threads it's already part of, turn **Respond automatically** off for that channel. -While a guest is present, Claude doesn't publish [artifacts](/docs/claude-tag/concepts/security-and-data.md#artifact-visibility), the web pages hosted on claude.ai. To have Claude publish a page, ask from a channel without guests. +While a guest is present, Claude doesn't publish [artifacts](https://claude.com/docs/claude-tag/concepts/security-and-data.md#artifact-visibility), the web pages hosted on claude.ai. To have Claude publish a page, ask from a channel without guests. A guest can talk to Claude by mentioning `@Claude` or by replying in a thread Claude is part of, and Claude answers them. A guest can't approve a tool or permission request, and can't restart, mute, fork, or stop the session. If a guest clicks approve, nothing is granted. Treat a channel's instructions, and the instructions in any bundle attached directly to the channel, as visible to everyone in that channel, including guests. Under **Channel only**, Claude follows them in replies that guests can read and respond to. -**Channel only** takes effect where the **New** [Claude Tag version](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) answers. On a scope where **Legacy** answers, a channel that includes a guest is treated as **Restrict**. +**Channel only** takes effect where the **New** [Claude Tag version](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) answers. On a scope where **Legacy** answers, a channel that includes a guest is treated as **Restrict**. ### Limit which channels Claude can search @@ -237,41 +237,41 @@ When someone who isn't a full member of your workspace adds Claude to a Slack Co #### What access Claude has in a Slack Connect channel -Claude answers in a Slack Connect channel where [**How should Claude work in channels with guests**](#restrict-guest-channels) is **Channel only** or **Full access**. Its access there is capped at channel-only access under either value. Claude follows the channel's own instructions, and [bundles](/docs/claude-tag/admins/attach-to-scope.md) apply there according to how each one is attached: +Claude answers in a Slack Connect channel where [**How should Claude work in channels with guests**](#restrict-guest-channels) is **Channel only** or **Full access**. Its access there is capped at channel-only access under either value. Claude follows the channel's own instructions, and [bundles](https://claude.com/docs/claude-tag/admins/attach-to-scope.md) apply there according to how each one is attached: -* **Attached directly to the channel.** The bundle applies whether it was [attached to the channel](/docs/claude-tag/admins/attach-to-scope.md#attach-to-a-channel) before or after the channel was shared and whoever attached it, unless it's set to apply only in channels with guests. -* **Inherited, or attached by a channel rule.** A bundle inherited from the workspace or the **Slack** page, or attached by a [channel rule](/docs/claude-tag/admins/attach-to-scope.md#attach-a-bundle-to-channels-by-name), doesn't apply, except a bundle attached specifically for Slack Connect channels. +* **Attached directly to the channel.** The bundle applies whether it was [attached to the channel](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#attach-to-a-channel) before or after the channel was shared and whoever attached it, unless it's set to apply only in channels with guests. +* **Inherited, or attached by a channel rule.** A bundle inherited from the workspace or the **Slack** page, or attached by a [channel rule](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#attach-a-bundle-to-channels-by-name), doesn't apply, except a bundle attached specifically for Slack Connect channels. When a bundle applies there, Claude can use the bundle's connectors for anyone it answers in the channel, including the other company's people. > [!WARNING] > -> Treat the channel's instructions, and the connectors in its bundles, as available to the other company. Before you turn Claude on in a Slack Connect channel, or share a channel where it's already on, open the channel's page under [**Claude's access > Channels**](https://claude.ai/admin-settings/claude-tag?access=channels), check its bundles, and [remove the channel from any bundle](/docs/claude-tag/admins/attach-to-scope.md#choose-where-a-bundle-applies) you don't want used there. +> Treat the channel's instructions, and the connectors in its bundles, as available to the other company. Before you turn Claude on in a Slack Connect channel, or share a channel where it's already on, open the channel's page under [**Claude's access > Channels**](https://claude.ai/admin-settings/claude-tag?access=channels), check its bundles, and [remove the channel from any bundle](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#choose-where-a-bundle-applies) you don't want used there. When it answers there, Claude also has: * No connections inherited from the workspace or the **Slack** page. * No instructions set on the workspace or on the **Slack** page. * No memory, skills, or repositories. -* No [environment set on the scope](/docs/claude-tag/admins/customize.md#configure-the-environment-for-a-scope). The session runs on the standard environment. +* No [environment set on the scope](https://claude.com/docs/claude-tag/admins/customize.md#configure-the-environment-for-a-scope). The session runs on the standard environment. -In a Slack Connect channel, Claude also doesn't search your workspace, look up people or channels, read other channels, publish [artifacts](/docs/claude-tag/concepts/security-and-data.md#artifact-visibility), or set up [routines](/docs/claude-tag/users/proactivity.md). Routines set up in the channel before it was shared don't run there. +In a Slack Connect channel, Claude also doesn't search your workspace, look up people or channels, read other channels, publish [artifacts](https://claude.com/docs/claude-tag/concepts/security-and-data.md#artifact-visibility), or set up [routines](https://claude.com/docs/claude-tag/users/proactivity.md). Routines set up in the channel before it was shared don't run there. #### Who can use Claude in a Slack Connect channel People from the other company can talk to Claude by mentioning `@Claude` or by replying in a thread Claude is part of, and Claude answers them. Everyone in the channel, including the other company's people, can read what Claude posts. * **Limit Claude to your organization.** Go to [**Claude's access > Channels > Slack**](https://claude.ai/admin-settings/claude-tag/channels/slack), open the **Advanced** tab, and turn on the **Restrict to your organization** toggle (**Restrict to roles with Claude Tag access** on Enterprise). Someone from the other company who then mentions `@Claude` to start a conversation gets a message only they can see, and in an existing thread Claude declines their request. The toggle applies to channels and DMs alike, so members of your workspace without a Claude account (on Enterprise, without a role that grants **Claude Tag in Slack**) lose access too. -* **Automatic replies.** While the channel's [**Respond automatically**](/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off) setting is on, messages from your members that don't mention Claude reach it, and Claude may reply to some of them on its own. Outside the threads Claude is part of, messages from the other company's people that don't mention Claude reach it only as context, not as requests. -* **Commands.** Your organization's members can send `@Claude` followed by `!help`, `!mute`, `!unmute`, `!restart`, or `!fast`. People from the other company can use only `!help`, and other [commands](/docs/claude-tag/users/commands.md) do nothing there. +* **Automatic replies.** While the channel's [**Respond automatically**](https://claude.com/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off) setting is on, messages from your members that don't mention Claude reach it, and Claude may reply to some of them on its own. Outside the threads Claude is part of, messages from the other company's people that don't mention Claude reach it only as context, not as requests. +* **Commands.** Your organization's members can send `@Claude` followed by `!help`, `!mute`, `!unmute`, `!restart`, or `!fast`. People from the other company can use only `!help`, and other [commands](https://claude.com/docs/claude-tag/users/commands.md) do nothing there. #### When Claude does not answer in a Slack Connect channel After you [turn Claude on in Slack Connect channels](#turn-claude-on-in-slack-connect-channels), Claude still doesn't answer there in these cases, and posts a notice only in a thread from before the channel was shared: -* **Claude Tag turned off.** The [**Enable Claude Tag** switch](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) that covers the channel is off. +* **Claude Tag turned off.** The [**Enable Claude Tag** switch](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) that covers the channel is off. * **Blocked name.** The channel's name matches one of the [**Blocked channel patterns**](#block-or-auto-join-channels-by-name). -* **Legacy version.** The scope's [Claude Tag version](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) is **Legacy**. +* **Legacy version.** The scope's [Claude Tag version](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) is **Legacy**. * **Enterprise Grid organization-level installs.** Claude is installed for your whole Enterprise Grid organization rather than per workspace, and none of your own workspaces hosts the channel. * **Threads from before the channel was shared.** Claude doesn't continue a thread it was already working in before the channel was shared. A mention there gets the notice "This channel is now shared with another organization through Slack Connect, so this thread's earlier session can't continue here," and a new thread works. * **Messages from the other company's Claude.** Claude doesn't reply to the other company's Claude. If the other company also uses Claude, each company's settings decide only whether its own Claude answers. @@ -281,7 +281,7 @@ After you [turn Claude on in Slack Connect channels](#turn-claude-on-in-slack-co What happens in a channel shared across more than one workspace inside your Enterprise Grid depends on whether every workspace in it is connected to the same Claude organization. -When the workspaces all belong to your one Claude organization, Claude replies in the channel, but only with the access and settings on your organization's [**Slack**](/docs/claude-tag/admins/attach-to-scope.md) page. Bundles, instructions, and memory set on a workspace or on that channel don't reach it. Claude posts a notice in the thread explaining these limits, but not on every reply. Where guest access is at its default **Restrict**, the [guest check](#restrict-guest-channels) still runs first and can refuse the reply. +When the workspaces all belong to your one Claude organization, Claude replies in the channel, but only with the access and settings on your organization's [**Slack**](https://claude.com/docs/claude-tag/admins/attach-to-scope.md) page. Bundles, instructions, and memory set on a workspace or on that channel don't reach it. Claude posts a notice in the thread explaining these limits, but not on every reply. Where guest access is at its default **Restrict**, the [guest check](#restrict-guest-channels) still runs first and can refuse the reply. When the workspaces belong to different Claude organizations, each with its own settings and plan, Claude won't reply and posts a refusal message instead. @@ -289,7 +289,7 @@ There is no per-channel override for either case. ### Migrate from the earlier Claude in Slack -If your organization used the earlier Claude in Slack app, the **Claude Tag version** setting on the **Advanced** tab of each scope's page chooses which generation answers `@Claude` there. Bundles only apply where the New version answers. See [Turn Claude Tag on or off and set the version for a scope](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) for the values and [Migrate from the earlier Claude in Slack](/docs/claude-tag/admins/migrate-from-earlier.md) for the switch. +If your organization used the earlier Claude in Slack app, the **Claude Tag version** setting on the **Advanced** tab of each scope's page chooses which generation answers `@Claude` there. Bundles only apply where the New version answers. See [Turn Claude Tag on or off and set the version for a scope](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) for the values and [Migrate from the earlier Claude in Slack](https://claude.com/docs/claude-tag/admins/migrate-from-earlier.md) for the switch. ### Allow or disable direct messages @@ -299,17 +299,17 @@ To change it, go to [`claude.ai/admin-settings/claude-tag`](https://claude.ai/ad ### Group DMs -A group DM is a Slack direct message among several people. When members add Claude to one, Claude acts with its own [service accounts](/docs/claude-tag/concepts/agent-identity.md), and the work bills to your organization's [usage balance](/docs/claude-tag/admins/set-spend-limit.md). [Use Claude Tag in a group DM](/docs/claude-tag/users/group-dms.md) covers what members can do there. +A group DM is a Slack direct message among several people. When members add Claude to one, Claude acts with its own [service accounts](https://claude.com/docs/claude-tag/concepts/agent-identity.md), and the work bills to your organization's [usage balance](https://claude.com/docs/claude-tag/admins/set-spend-limit.md). [Use Claude Tag in a group DM](https://claude.com/docs/claude-tag/users/group-dms.md) covers what members can do there. -A group DM has no [scope](/docs/claude-tag/concepts/glossary.md#scope) of its own, so you can't attach a [bundle](/docs/claude-tag/admins/attach-to-scope.md) to one group DM or turn Claude off in one. You control every group DM in a workspace together: +A group DM has no [scope](https://claude.com/docs/claude-tag/concepts/glossary.md#scope) of its own, so you can't attach a [bundle](https://claude.com/docs/claude-tag/admins/attach-to-scope.md) to one group DM or turn Claude off in one. You control every group DM in a workspace together: * **Access.** Claude works with the bundles, instructions, and repositories on the workspace's page and on the **Slack** page. * **Stop Claude from answering in group DMs.** Use either control. No setting covers group DMs alone. - * Turn off the [**Enable Claude Tag** switch](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) that covers the workspace. Claude also stops answering in the channels that follow that switch. + * Turn off the [**Enable Claude Tag** switch](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) that covers the workspace. Claude also stops answering in the channels that follow that switch. * Turn off the [**Allow direct messages**](#allow-or-disable-direct-messages) toggle. Claude also stops answering one-to-one DMs. * **Who can ask.** If you [restrict who can use Claude](#restrict-who-can-use-claude), the restriction applies in group DMs too. With no restriction, a member who hasn't connected a Claude account can ask in a group DM, and the [limits on one-to-one DMs from those members](#limits-on-direct-messages-from-members-without-a-claude-account) don't apply. * **Spend.** The organization-wide [spend limit](#set-spend-limits) caps group DM work along with channel work, and the **Default spend limit** applies to each group DM. -* **Version.** Where the **Legacy** [Claude Tag version](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) answers for the workspace, Claude doesn't respond in group DMs. +* **Version.** Where the **Legacy** [Claude Tag version](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) answers for the workspace, Claude doesn't respond in group DMs. Who is in a group DM, and how Slack shares it, can change whether Claude answers: @@ -326,7 +326,7 @@ A member's DMs bill to your organization when every one of these is true: * **The workspace is connected to your organization.** The DMs bill the Claude organization the Slack workspace is paired to. * **Anyone in the workspace can use Claude.** The [restriction toggle](#restrict-who-can-use-claude) is off, which is its default. * **Direct messages are allowed.** The [**Allow direct messages**](#allow-or-disable-direct-messages) toggle is on, which is its default. -* **Claude is on for the workspace.** The workspace's [**Enable Claude Tag in this workspace** switch](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) is on, or **Respond in all channels** on the **Slack** page is on when the workspace follows it. If the **Slack** page has the single [**Respond in channels** switch](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-on-the-team-plan) instead, that switch is on. +* **Claude is on for the workspace.** The workspace's [**Enable Claude Tag in this workspace** switch](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) is on, or **Respond in all channels** on the **Slack** page is on when the workspace follows it. If the **Slack** page has the single [**Respond in channels** switch](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-on-the-team-plan) instead, that switch is on. * **The member is a full member of the Slack workspace.** A Slack guest's DMs don't bill to your organization. #### Limits on direct messages from members without a Claude account @@ -339,16 +339,16 @@ Claude stops answering a member's DMs on your organization's bill when the membe | Spend | \$50 of usage, or your **Default spend limit** when that amount is lower | | Sessions | 50 sessions | -The **Default spend limit** is the one at [`claude.ai/admin-settings/usage/claude-tag`](https://claude.ai/admin-settings/usage/claude-tag) that applies to each channel without a limit of its own. When it's below \$50, each member's DMs stop at that amount. When it's 0, none of these DMs bill to your organization. This usage also counts toward your organization's [spend limit](/docs/claude-tag/admins/set-spend-limit.md#set-the-spend-limit). The usage page's per-channel breakdown lists channels only, so this usage doesn't appear in it. +The **Default spend limit** is the one at [`claude.ai/admin-settings/usage/claude-tag`](https://claude.ai/admin-settings/usage/claude-tag) that applies to each channel without a limit of its own. When it's below \$50, each member's DMs stop at that amount. When it's 0, none of these DMs bill to your organization. This usage also counts toward your organization's [spend limit](https://claude.com/docs/claude-tag/admins/set-spend-limit.md#set-the-spend-limit). The usage page's per-channel breakdown lists channels only, so this usage doesn't appear in it. Claude checks the limits when each message arrives, so work already running when a limit is reached can finish past it. After a member reaches a limit, their next DM gets a prompt to connect a Claude account, and after connecting, their DMs run on their own Claude account and bill to their own seat. #### Access in a direct message from a member without a Claude account -A DM session for a member without a Claude account runs as Claude's own identity, the way a [channel session](/docs/claude-tag/concepts/agent-identity.md#channel-sessions) does. Two facts decide what it can reach: +A DM session for a member without a Claude account runs as Claude's own identity, the way a [channel session](https://claude.com/docs/claude-tag/concepts/agent-identity.md#channel-sessions) does. Two facts decide what it can reach: -* **Bundles.** The session reaches the same [bundles](/docs/claude-tag/admins/attach-to-scope.md) as a channel the member creates in that workspace. -* **Personal connectors.** The member has no Claude account, so the session has no [personal connectors](/docs/claude-tag/concepts/personal-connectors.md). +* **Bundles.** The session reaches the same [bundles](https://claude.com/docs/claude-tag/admins/attach-to-scope.md) as a channel the member creates in that workspace. +* **Personal connectors.** The member has no Claude account, so the session has no [personal connectors](https://claude.com/docs/claude-tag/concepts/personal-connectors.md). #### Daily brief offer for members without a Claude account @@ -374,9 +374,9 @@ After you turn a control back on, a member who hasn't reached a limit can use Cl ### Set spend limits -Spend limits live at [`claude.ai/admin-settings/usage/claude-tag`](https://claude.ai/admin-settings/usage/claude-tag), a different page than the main Claude Tag settings; see [when the usage page is available](/docs/claude-tag/admins/set-spend-limit.md#set-the-spend-limit). Spend trends and per-channel reports live on a separate analytics page; see [Usage analytics](#usage-analytics) below. +Spend limits live at [`claude.ai/admin-settings/usage/claude-tag`](https://claude.ai/admin-settings/usage/claude-tag), a different page than the main Claude Tag settings; see [when the usage page is available](https://claude.com/docs/claude-tag/admins/set-spend-limit.md#set-the-spend-limit). Spend trends and per-channel reports live on a separate analytics page; see [Usage analytics](#usage-analytics) below. -A spend limit is a cap on how much of your organization's usage balance Claude Tag can draw each billing period. Setting a limit doesn't fund the balance; on a Team plan, [fund the usage balance first](/docs/claude-tag/admins/set-spend-limit.md) or Claude won't respond in channels regardless of the limit. +A spend limit is a cap on how much of your organization's usage balance Claude Tag can draw each billing period. Setting a limit doesn't fund the balance; on a Team plan, [fund the usage balance first](https://claude.com/docs/claude-tag/admins/set-spend-limit.md) or Claude won't respond in channels regardless of the limit. * **Organization-wide limit.** Caps total Claude Tag spend across every channel. * **Default spend limit.** A default limit applied to each channel that doesn't have its own. @@ -387,7 +387,7 @@ Work that would exceed a limit is declined rather than silently truncated. A use ### Usage analytics -Spend trends live at [`claude.ai/analytics/claude-tag`](https://claude.ai/analytics/claude-tag), the Claude Tag section of the Analytics dashboard, refreshed once a day. It shows total and projected month-end spend for the period you pick, spend by channel with a CSV export, DM versus channel spend, [spend by kind of work](/docs/claude-tag/admins/set-spend-limit.md#see-spend-by-kind-of-work), and any promotional credit. Billed figures are shown after your discount. Anyone with permission to view your organization's Analytics dashboard can open it; it has no controls, so use the usage page to change a limit. The two pages link to each other. +Spend trends live at [`claude.ai/analytics/claude-tag`](https://claude.ai/analytics/claude-tag), the Claude Tag section of the Analytics dashboard, refreshed once a day. It shows total and projected month-end spend for the period you pick, spend by channel with a CSV export, DM versus channel spend, [spend by kind of work](https://claude.com/docs/claude-tag/admins/set-spend-limit.md#see-spend-by-kind-of-work), and any promotional credit. Billed figures are shown after your discount. Anyone with permission to view your organization's Analytics dashboard can open it; it has no controls, so use the usage page to change a limit. The two pages link to each other. When the period you pick falls within the current month, the **Spend by channel** table shows a **Billed** column and a **List price** column. Usage covered by a promotional credit shows as \$0.00 under **Billed** and at its list price under **List price**. @@ -397,19 +397,19 @@ On the Enterprise plan, the **Claude Tag Admin** permission lets a member of you A member whose custom role includes the permission is a Claude Tag admin. A Claude Tag admin can: -* Create and edit [bundles](/docs/claude-tag/admins/add-connections.md), including their credentials, domain entries, and repository grants, and attach bundles to the organization, a workspace, or a channel +* Create and edit [bundles](https://claude.com/docs/claude-tag/admins/add-connections.md), including their credentials, domain entries, and repository grants, and attach bundles to the organization, a workspace, or a channel * Edit workspace and channel settings at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), such as custom instructions and the default model * Turn Claude on or off for a workspace or a channel with its **Enable Claude Tag** switch, or for every channel with the **Respond in all channels** switch on the **Slack** page * Add and remove [channel managers](#delegate-channel-setup-to-channel-managers), if the role also sets **Identity & Access** to **Can manage** -* Set up [**Managed by**](/docs/claude-tag/admins/managed-by.md) for a channel, on the **Admin** tab of the channel's Configure page -* Open [on-call setup](/docs/claude-tag/admins/setup-oncall.md) at [`claude.ai/oncall`](https://claude.ai/oncall) +* Set up [**Managed by**](https://claude.com/docs/claude-tag/admins/managed-by.md) for a channel, on the **Admin** tab of the channel's Configure page +* Open [on-call setup](https://claude.com/docs/claude-tag/admins/setup-oncall.md) at [`claude.ai/oncall`](https://claude.ai/oncall) * Set a scope's [**How should Claude work in channels with guests**](#restrict-guest-channels) setting to **Restrict** or **Channel only**; choosing **Full access** or setting a scope back to **Inherit** stays with Owners Some actions stay outside the permission: * **Owner-only**: the **Enable Claude Tag in Slack** switch, the [**Allow direct messages**](#allow-or-disable-direct-messages) toggle, the [restriction toggle](#restrict-who-can-use-claude), pairing or disconnecting workspaces, [channel name patterns](#block-or-auto-join-channels-by-name) and the bundles on them, and the [**Channels Claude can search**](#limit-which-channels-claude-can-search) setting -* **The Claude GitHub App**: [installing the app](/docs/claude-tag/admins/configure-github.md) needs an owner of your GitHub organization -* **Spend limits and usage analytics**: [usage analytics](#usage-analytics) is open to anyone with permission to view your organization's Analytics dashboard; [spend limits](/docs/claude-tag/admins/set-spend-limit.md) live on the usage page +* **The Claude GitHub App**: [installing the app](https://claude.com/docs/claude-tag/admins/configure-github.md) needs an owner of your GitHub organization +* **Spend limits and usage analytics**: [usage analytics](#usage-analytics) is open to anyone with permission to view your organization's Analytics dashboard; [spend limits](https://claude.com/docs/claude-tag/admins/set-spend-limit.md) live on the usage page ### Give a member the Claude Tag Admin permission @@ -439,23 +439,23 @@ A channel manager is a member of your Claude organization who can set up Claude You name channel managers one channel at a time. For that channel, a channel manager sets the default model, adds repositories, manages credentials and plugins in the channel's bundle, and edits channel instructions. Every other setting at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag) stays with Owners; on the Enterprise plan, an Owner can delegate most of them through the [**Claude Tag Admin** permission](#delegate-claude-tag-administration). -A channel manager is a person. To let the members of another Slack channel write a channel's instructions, see [Manage a channel's instructions from another channel](/docs/claude-tag/admins/managed-by.md). +A channel manager is a person. To let the members of another Slack channel write a channel's instructions, see [Manage a channel's instructions from another channel](https://claude.com/docs/claude-tag/admins/managed-by.md). ### What a channel manager can do on the Configure page -A channel manager has to be a member of the channel in Slack. The channel's [Configure page](/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel), which opens on claude.ai from the **Configure** link in any Claude reply, is split into tabs. In a channel you assigned to them, a channel manager sees the **Default model** card on the **General** tab and the repository and access bundle cards on the **Tools and access** tab. Members without the role don't see those cards. Owners and [Claude Tag admins](#delegate-claude-tag-administration) also see an **Admin** tab, whose **Channel settings** card holds some of the channel scope's settings from admin settings. +A channel manager has to be a member of the channel in Slack. The channel's [Configure page](https://claude.com/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel), which opens on claude.ai from the **Configure** link in any Claude reply, is split into tabs. In a channel you assigned to them, a channel manager sees the **Default model** card on the **General** tab and the repository and access bundle cards on the **Tools and access** tab. Members without the role don't see those cards. Owners and [Claude Tag admins](#delegate-claude-tag-administration) also see an **Admin** tab, whose **Channel settings** card holds some of the channel scope's settings from admin settings. | Setting | What a channel manager can do | | :- | :- | | **Default model** | Choose the model new threads in the channel start on, from the models your organization allows. **Inherit** keeps the workspace or organization default | | **Repositories** | Add repositories beyond the ones your bundles already grant the channel. They can add only repositories their own GitHub account is an admin of | -| **Access bundles** | Add, rotate, test, and remove credentials, and turn [plugins](/docs/claude-tag/admins/add-connections.md#attach-plugins) on or off, in the bundle Claude created for the channel and in any bundle they created for it. If the channel has no bundle yet, they can create one. They can't edit a bundle that an Owner or a [Claude Tag admin](#delegate-claude-tag-administration) created, or a bundle that other channels share | +| **Access bundles** | Add, rotate, test, and remove credentials, and turn [plugins](https://claude.com/docs/claude-tag/admins/add-connections.md#attach-plugins) on or off, in the bundle Claude created for the channel and in any bundle they created for it. If the channel has no bundle yet, they can create one. They can't edit a bundle that an Owner or a [Claude Tag admin](#delegate-claude-tag-administration) created, or a bundle that other channels share | When a channel manager adds a credential, Claude also allows the host that credential uses. Channel managers can't change the bundle's domains or rules in any other way. A channel manager can't add, change, or rotate credentials that use Claude's own identity (mutual TLS, AWS or GCP service identity, and IAP), but can delete one from the channel's bundle, including one an Owner added. If that happens, Claude loses access to that service until an Owner or a [Claude Tag admin](#delegate-claude-tag-administration) adds the credential back. If you detach the channel's own bundle from the channel, its channel managers can't save settings for the channel; they see an error saying the channel's configuration was suspended by an administrator. They don't get a new bundle. Attach the bundle again to restore their access. -A channel manager can edit channel instructions even when the scope's [Channel member edits](/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) setting is **Block**. +A channel manager can edit channel instructions even when the scope's [Channel member edits](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) setting is **Block**. Channel managers see their assigned channels at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag); organization and workspace settings are read-only for them. Tell them when you add them. @@ -465,7 +465,7 @@ Channel managers are built on [custom roles](https://claude.ai/admin-settings/ro **1. Open the channel's page** -Go to [**Claude's access > Channels**](https://claude.ai/admin-settings/claude-tag?access=channels) and open the channel's page. The channel must be a public or private channel. If it isn't listed, [add Claude to the channel](/docs/claude-tag/users/getting-started.md#add-claude-to-a-channel) in Slack first. +Go to [**Claude's access > Channels**](https://claude.ai/admin-settings/claude-tag?access=channels) and open the channel's page. The channel must be a public or private channel. If it isn't listed, [add Claude to the channel](https://claude.com/docs/claude-tag/users/getting-started.md#add-claude-to-a-channel) in Slack first. **2. Add people or a group** @@ -489,7 +489,7 @@ To remove a channel manager, select **Add managers** on the channel's page. The ### Verify a channel manager's access -In the list behind **Add managers** on the channel's page, people added directly show **Not in effect** when their access level doesn't support the role; the role works only on the **Custom roles** access level, so change the member's level on the Members page to put it into effect. An active manager sees the **Default model**, repository, and access bundle cards on the channel's [Configure page](/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel), so asking them to open that page confirms the setup. +In the list behind **Add managers** on the channel's page, people added directly show **Not in effect** when their access level doesn't support the role; the role works only on the **Custom roles** access level, so change the member's level on the Members page to put it into effect. An active manager sees the **Default model**, repository, and access bundle cards on the channel's [Configure page](https://claude.com/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel), so asking them to open that page confirms the setup. ### Audit channel manager activity @@ -499,7 +499,7 @@ Channel manager activity is recorded in your organization's audit log, which you * **Credential changes.** Each credential a channel manager creates, updates, rotates, or deletes, with the Slack workspace and channel it was for and the roles that granted the permission, so you can tell a channel manager's change from an Owner's. Secrets are never included. * **Configure page changes.** Which settings a channel manager saved from the Configure page, such as the default model, repositories, or channel instructions. The log records which fields changed, not the values entered. -The [**Activity** page](/docs/claude-tag/admins/audit.md) at [`claude.ai/admin-settings/claude-tag/audit`](https://claude.ai/admin-settings/claude-tag/audit) doesn't list these events; it covers scheduled work, memory, and network events. +The [**Activity** page](https://claude.com/docs/claude-tag/admins/audit.md) at [`claude.ai/admin-settings/claude-tag/audit`](https://claude.ai/admin-settings/claude-tag/audit) doesn't list these events; it covers scheduled work, memory, and network events. ## Permissions by role @@ -515,15 +515,15 @@ The table lists each action and who can take it, with no column for Claude Tag a | Create, edit, or delete a bundle, or choose where it applies | Yes | Only to create a bundle for an assigned channel | No | | Edit a bundle's repositories, domains, or instructions | Yes | No | No | | Edit a bundle's credentials or plugins | Yes | Yes, in a bundle created for an assigned channel | No | -| Add or delete a [channel rule](/docs/claude-tag/admins/attach-to-scope.md#attach-a-bundle-to-channels-by-name), or change the bundles on one | Yes | No | No | +| Add or delete a [channel rule](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#attach-a-bundle-to-channels-by-name), or change the bundles on one | Yes | No | No | | Set guest channels to **Full access** or back to **Inherit** | Yes | No | No | | Change other settings on a scope's page, such as instructions, model, and the **Enable Claude Tag** switch | Yes | No | No | | Add a channel manager | Yes | No | No | | Set a channel's default model or repositories from the Configure page | Yes | Yes, in assigned channels | No | -| Set a channel's default model by asking Claude in a thread, unless the scope's [Channel member edits](/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) setting is **Block** | Yes | Yes | Yes | -| Turn a channel's [**Respond automatically**](/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off) setting on or off | Yes | Yes, in assigned channels | Yes, unless the scope's [**Channel member edits**](/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) setting is **Block** | +| Set a channel's default model by asking Claude in a thread, unless the scope's [Channel member edits](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) setting is **Block** | Yes | Yes | Yes | +| Turn a channel's [**Respond automatically**](https://claude.com/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off) setting on or off | Yes | Yes, in assigned channels | Yes, unless the scope's [**Channel member edits**](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) setting is **Block** | | Write channel memory | Yes, in the channel | Yes, in the channel | Yes | -| Set channel instructions from the Configure link | Yes | Yes, in assigned channels | Yes, unless the scope's [Channel member edits](/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) setting blocks it | +| Set channel instructions from the Configure link | Yes | Yes, in assigned channels | Yes, unless the scope's [Channel member edits](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) setting blocks it | | Create, list, or disable a scheduled job in the channel | Yes, in the channel | Yes, in the channel | Yes | | Remove Claude from a channel | Yes | Yes, with `/remove`, unless your Slack admin restricts it | Yes, with `/remove`, unless your Slack admin restricts it | @@ -538,14 +538,14 @@ These are controls an admin might look for that Claude Tag doesn't have. * **Per-user spend caps on channel work.** Spend limits apply at the organization and channel level. There's no way to cap what one member can spend in channels; one-to-one DM usage from a member who has connected a Claude account bills to that member's own seat and follows the seat's usual limits. * **A switch for group DMs alone, or settings for one group DM.** You can't attach a bundle to one group DM, turn Claude off in one, or stop Claude from answering in group DMs without also stopping it in one-to-one DMs or the workspace's channels. See [Group DMs](#group-dms). * **Per-channel responder allowlist.** The restriction toggle governs who can invoke Claude across the workspace; you can't narrow it to a list of people for one channel only. -* **An open-internet switch in Claude Tag settings.** A channel sandbox reaches only allowed hosts. To let Claude reach a public site or API, an Owner or a [Claude Tag admin](#delegate-claude-tag-administration) [adds that hostname to a bundle as a domain](/docs/claude-tag/admins/add-connections.md#allow-a-host-without-a-credential); for broad web access, an Owner pins an [environment](/docs/claude-tag/concepts/glossary.md#environment) whose network access level is Full access on the scope. [Allow-all egress](/docs/claude-tag/admins/add-connections.md#allow-all-hosts), a `*` domain entry, admits any host on the ports it lists. -* **A web search toggle for channels.** No setting turns web search off for channel sessions; the web search capability setting in claude.ai admin settings governs claude.ai chat, not channels. Web search runs on Anthropic's servers rather than from the channel sandbox, so Domains entries and egress settings don't govern it, and a search opens no new path out of the sandbox; search requests travel to Anthropic the same way the session's model traffic already does. See [Web search vs. network requests](/docs/claude-tag/concepts/agent-identity.md#web-search-vs-network-requests). +* **An open-internet switch in Claude Tag settings.** A channel sandbox reaches only allowed hosts. To let Claude reach a public site or API, an Owner or a [Claude Tag admin](#delegate-claude-tag-administration) [adds that hostname to a bundle as a domain](https://claude.com/docs/claude-tag/admins/add-connections.md#allow-a-host-without-a-credential); for broad web access, an Owner pins an [environment](https://claude.com/docs/claude-tag/concepts/glossary.md#environment) whose network access level is Full access on the scope. [Allow-all egress](https://claude.com/docs/claude-tag/admins/add-connections.md#allow-all-hosts), a `*` domain entry, admits any host on the ports it lists. +* **A web search toggle for channels.** No setting turns web search off for channel sessions; the web search capability setting in claude.ai admin settings governs claude.ai chat, not channels. Web search runs on Anthropic's servers rather than from the channel sandbox, so Domains entries and egress settings don't govern it, and a search opens no new path out of the sandbox; search requests travel to Anthropic the same way the session's model traffic already does. See [Web search vs. network requests](https://claude.com/docs/claude-tag/concepts/agent-identity.md#web-search-vs-network-requests). * **A switch to turn workspace search off.** Claude can search public channels by keyword the same way any Slack user can; it can't read a channel's full history unless it's been added there. No setting turns workspace search off. The [**Channels Claude can search**](#limit-which-channels-claude-can-search) setting narrows it to channels Claude is in. No setting enables search in [channels that include guests](#restrict-guest-channels), where it's unavailable. * **Session length enforcement.** Your organization's Slack session-length policy is not enforced on this surface. ## Related resources -* [Configure per-channel access](/docs/claude-tag/admins/attach-to-scope.md): change the scopes these controls apply to -* [How agent identity works](/docs/claude-tag/concepts/agent-identity.md): the model these controls operate on -* [Security and data handling](/docs/claude-tag/concepts/security-and-data.md): what these controls don't cover (data flow, retention, where credentials are stored) -* [Data lifecycle and deletion](/docs/claude-tag/concepts/data-lifecycle.md): which of these controls delete data and which only stop Claude responding +* [Configure per-channel access](https://claude.com/docs/claude-tag/admins/attach-to-scope.md): change the scopes these controls apply to +* [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md): the model these controls operate on +* [Security and data handling](https://claude.com/docs/claude-tag/concepts/security-and-data.md): what these controls don't cover (data flow, retention, where credentials are stored) +* [Data lifecycle and deletion](https://claude.com/docs/claude-tag/concepts/data-lifecycle.md): which of these controls delete data and which only stop Claude responding diff --git a/content/claude/claude-tag/admins/set-spend-limit.md b/content/claude/claude-tag/admins/set-spend-limit.md index a9bf8afd2..488f956fc 100644 --- a/content/claude/claude-tag/admins/set-spend-limit.md +++ b/content/claude/claude-tag/admins/set-spend-limit.md @@ -14,15 +14,15 @@ Work Claude does in channels and group DMs bills to your **organization's usage ## How Claude Tag usage is billed -Slack users can work with Claude in channels [without holding a Claude seat](/docs/claude-tag/admins/restrict-access.md#restrict-who-can-use-claude). +Slack users can work with Claude in channels [without holding a Claude seat](https://claude.com/docs/claude-tag/admins/restrict-access.md#restrict-who-can-use-claude). | Work | Bills to | Capped by | | :- | :- | :- | -| Channel work | Your organization's usage balance | The spend limit, plus any [per-channel limits](/docs/claude-tag/admins/restrict-access.md#set-spend-limits) | -| [Group DM](/docs/claude-tag/admins/restrict-access.md#group-dms) work | Your organization's usage balance | The spend limit, plus the [**Default spend limit**](/docs/claude-tag/admins/restrict-access.md#set-spend-limits), which applies to each group DM | -| Reading a channel or group DM, [deciding whether to reply](/docs/claude-tag/users/when-claude-responds.md#what-claude-does-with-a-channel-message), and short replies from what Claude already knows | Nothing | Not counted toward any limit. A working session Claude starts from the channel is channel work, above | +| Channel work | Your organization's usage balance | The spend limit, plus any [per-channel limits](https://claude.com/docs/claude-tag/admins/restrict-access.md#set-spend-limits) | +| [Group DM](https://claude.com/docs/claude-tag/admins/restrict-access.md#group-dms) work | Your organization's usage balance | The spend limit, plus the [**Default spend limit**](https://claude.com/docs/claude-tag/admins/restrict-access.md#set-spend-limits), which applies to each group DM | +| Reading a channel or group DM, [deciding whether to reply](https://claude.com/docs/claude-tag/users/when-claude-responds.md#what-claude-does-with-a-channel-message), and short replies from what Claude already knows | Nothing | Not counted toward any limit. A working session Claude starts from the channel is channel work, above | | A one-to-one DM from a member who has connected a Claude account | The sender's own seat | The seat's usual limits, not the spend limit | -| A [one-to-one DM from a member who hasn't connected a Claude account](/docs/claude-tag/admins/restrict-access.md#direct-messages-from-members-without-a-claude-account) | Your organization's usage balance | The [limits for each member](/docs/claude-tag/admins/restrict-access.md#limits-on-direct-messages-from-members-without-a-claude-account) | +| A [one-to-one DM from a member who hasn't connected a Claude account](https://claude.com/docs/claude-tag/admins/restrict-access.md#direct-messages-from-members-without-a-claude-account) | Your organization's usage balance | The [limits for each member](https://claude.com/docs/claude-tag/admins/restrict-access.md#limits-on-direct-messages-from-members-without-a-claude-account) | ## Whether this step is required depends on your plan @@ -72,7 +72,7 @@ When that happens, Claude tells the requester in the thread that it hit a rate l ## Per-channel limits -Per-channel limits and the per-channel spend breakdown are on the same usage page. See [Set spend limits](/docs/claude-tag/admins/restrict-access.md#set-spend-limits) for the full set of controls. +Per-channel limits and the per-channel spend breakdown are on the same usage page. See [Set spend limits](https://claude.com/docs/claude-tag/admins/restrict-access.md#set-spend-limits) for the full set of controls. ## Attribute costs by channel @@ -80,11 +80,11 @@ In claude.ai you see spend per channel, not per user. Channel work bills to your The usage page at [`claude.ai/admin-settings/usage/claude-tag`](https://claude.ai/admin-settings/usage/claude-tag) shows spend broken down by channel, at list price. Usage covered by a promotional credit isn't counted there and shows as \$0.00. To see each channel's list-price spend for the current month including covered usage, use the **List price** column of the **Spend by channel** table at [`claude.ai/analytics/claude-tag`](https://claude.ai/analytics/claude-tag). -To attribute spend to teams or departments for showback or chargeback reporting, structure channels so each maps to one team or department, and give those channels [their own scopes](/docs/claude-tag/admins/attach-to-scope.md). The per-channel breakdown then reads as your per-team report, and per-channel spend limits act as team-level budgets. +To attribute spend to teams or departments for showback or chargeback reporting, structure channels so each maps to one team or department, and give those channels [their own scopes](https://claude.com/docs/claude-tag/admins/attach-to-scope.md). The per-channel breakdown then reads as your per-team report, and per-channel spend limits act as team-level budgets. -Organizations on a Claude Enterprise plan can also pull channel spend per Slack user from the Analytics API, which attributes Claude's channel work to individual Slack users. See [Attribute costs to users](/docs/claude-tag/admins/attribute-costs.md). +Organizations on a Claude Enterprise plan can also pull channel spend per Slack user from the Analytics API, which attributes Claude's channel work to individual Slack users. See [Attribute costs to users](https://claude.com/docs/claude-tag/admins/attribute-costs.md). -One-to-one DMs are separate. A DM from a member who has connected a Claude account bills to the sender's own seat, not to the organization's usage balance. A [DM from a member who hasn't connected a Claude account](/docs/claude-tag/admins/restrict-access.md#direct-messages-from-members-without-a-claude-account) can bill to the organization's usage balance. +One-to-one DMs are separate. A DM from a member who has connected a Claude account bills to the sender's own seat, not to the organization's usage balance. A [DM from a member who hasn't connected a Claude account](https://claude.com/docs/claude-tag/admins/restrict-access.md#direct-messages-from-members-without-a-claude-account) can bill to the organization's usage balance. ## See spend by kind of work @@ -95,9 +95,9 @@ On the analytics page at [`claude.ai/analytics/claude-tag`](https://claude.ai/an * **Scheduled**: recurring scheduled work * **Monitoring**: Claude reading the channels it belongs to, which isn't billed -Reading a channel Claude belongs to, whether or not anyone tags it, doesn't draw from the usage balance. When Claude starts a working session on its own, that session bills to the balance under Proactive. To stop Claude from starting work on its own in a channel, turn off the channel's [Respond automatically](/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off) setting. One-to-one DMs from members who have connected a Claude account aren't included, because they bill to the sender's seat. +Reading a channel Claude belongs to, whether or not anyone tags it, doesn't draw from the usage balance. When Claude starts a working session on its own, that session bills to the balance under Proactive. To stop Claude from starting work on its own in a channel, turn off the channel's [Respond automatically](https://claude.com/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off) setting. One-to-one DMs from members who have connected a Claude account aren't included, because they bill to the sender's seat. ## Related resources -* [Verify your setup](/docs/claude-tag/admins/setup-overview#verify-your-setup): run a first task in a channel -* [Restrict where Claude Tag operates](/docs/claude-tag/admins/restrict-access.md#set-spend-limits): per-channel limits and the usage page in full +* [Verify your setup](https://claude.com/docs/claude-tag/admins/setup-overview#verify-your-setup): run a first task in a channel +* [Restrict where Claude Tag operates](https://claude.com/docs/claude-tag/admins/restrict-access.md#set-spend-limits): per-channel limits and the usage page in full diff --git a/content/claude/claude-tag/admins/setup-oncall.md b/content/claude/claude-tag/admins/setup-oncall.md index 5a822a94b..43db317ab 100644 --- a/content/claude/claude-tag/admins/setup-oncall.md +++ b/content/claude/claude-tag/admins/setup-oncall.md @@ -15,18 +15,18 @@ Claude Tag on-call puts Claude on call with your team for incident response in S On-call is available on the Team and Enterprise plans. Who can open [`claude.ai/oncall`](https://claude.ai/oncall) and run setup depends on your plan. * **Team plan:** any member of your organization. A change that affects the whole organization saves only if your account has permission to make it. -* **Enterprise plan:** an Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration), meaning a member whose custom role sets **Claude Tag Admin** to **Can manage**. Other members, including those with the built-in **Admin** role and [channel managers](/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers), don't see **On-call** in the **Code** sidebar and can't open setup. +* **Enterprise plan:** an Owner or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration), meaning a member whose custom role sets **Claude Tag Admin** to **Can manage**. Other members, including those with the built-in **Admin** role and [channel managers](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers), don't see **On-call** in the **Code** sidebar and can't open setup. ## What an on-call is -Your organization's on-call is an [Access bundle](/docs/claude-tag/concepts/glossary.md#access-bundle) carrying the connections, repositories, and skills Claude uses for incident work. The bundle attaches to the channels you pick during setup, and any [routines](/docs/claude-tag/concepts/glossary.md#routine) you schedule in those channels, like a morning incident digest, run alongside it. Setup builds the bundle, and after you deploy you edit it like any other bundle in [Give Claude access](/docs/claude-tag/admins/add-connections.md). +Your organization's on-call is an [Access bundle](https://claude.com/docs/claude-tag/concepts/glossary.md#access-bundle) carrying the connections, repositories, and skills Claude uses for incident work. The bundle attaches to the channels you pick during setup, and any [routines](https://claude.com/docs/claude-tag/concepts/glossary.md#routine) you schedule in those channels, like a morning incident digest, run alongside it. Setup builds the bundle, and after you deploy you edit it like any other bundle in [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md). Setup offers two ways for Claude to work, and you can use either or both. * **Watch your alerts.** Claude watches your monitoring tools and posts what it finds in a channel you choose. * **Join incident channels.** Claude joins the incident channels you pick and investigates alongside your team, without waiting to be tagged. A channel-name prefix, like `incident-`, has Claude join new public channels that match. -On-call work is billed to your organization as usage. You can cap it with a monthly spend limit. [Set a spend limit](/docs/claude-tag/admins/set-spend-limit.md) covers what counts toward the limit and what happens when it's reached. +On-call work is billed to your organization as usage. You can cap it with a monthly spend limit. [Set a spend limit](https://claude.com/docs/claude-tag/admins/set-spend-limit.md) covers what counts toward the limit and what happens when it's reached. ## Run setup @@ -53,13 +53,13 @@ Setup includes an option to have Claude introduce itself to your team after you ## After you deploy -Claude is on call in the channels you chose, and, if you set a channel-name prefix, it joins new public channels that match as they're created. The on-call's connections, repositories, and skills make up its [Access bundle](/docs/claude-tag/concepts/glossary.md#access-bundle). To change the on-call later, go to [`claude.ai/oncall`](https://claude.ai/oncall). Outside setup, these roles manage the on-call's Access bundle: +Claude is on call in the channels you chose, and, if you set a channel-name prefix, it joins new public channels that match as they're created. The on-call's connections, repositories, and skills make up its [Access bundle](https://claude.com/docs/claude-tag/concepts/glossary.md#access-bundle). To change the on-call later, go to [`claude.ai/oncall`](https://claude.ai/oncall). Outside setup, these roles manage the on-call's Access bundle: -* **Owner:** edit the bundle in [Give Claude access](/docs/claude-tag/admins/add-connections.md), [set per-channel access](/docs/claude-tag/admins/attach-to-scope.md), and [change the monthly spend limit](/docs/claude-tag/admins/set-spend-limit.md) -* **[Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration), on the Enterprise plan:** edit the bundle and set per-channel access +* **Owner:** edit the bundle in [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md), [set per-channel access](https://claude.com/docs/claude-tag/admins/attach-to-scope.md), and [change the monthly spend limit](https://claude.com/docs/claude-tag/admins/set-spend-limit.md) +* **[Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration), on the Enterprise plan:** edit the bundle and set per-channel access ## Related resources -* [Set up Claude Tag](/docs/claude-tag/admins/setup-overview): the standard setup steps, and how to verify your setup afterward -* [How agent identity works](/docs/claude-tag/concepts/agent-identity.md): why Claude gets its own accounts in your tools -* [Watch monitors and alerts](/docs/claude-tag/users/use-cases/watch-monitors.md): what Claude's monitoring work looks like in a channel +* [Set up Claude Tag](https://claude.com/docs/claude-tag/admins/setup-overview): the standard setup steps, and how to verify your setup afterward +* [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md): why Claude gets its own accounts in your tools +* [Watch monitors and alerts](https://claude.com/docs/claude-tag/users/use-cases/watch-monitors.md): what Claude's monitoring work looks like in a channel diff --git a/content/claude/claude-tag/admins/setup-overview.md b/content/claude/claude-tag/admins/setup-overview.md index 7e364119f..8ca29e186 100644 --- a/content/claude/claude-tag/admins/setup-overview.md +++ b/content/claude/claude-tag/admins/setup-overview.md @@ -28,20 +28,20 @@ When you've launched, [give Claude access to your tools](#give-claude-access-to- > | Prerequisite | Why you need it | If you don't have it | > | :- | :- | :- | > | A **Team or Enterprise plan** on claude.ai | Claude Tag is available on Team and Enterprise plans, on Anthropic's first-party service. It isn't available on individual plans (Free, Pro, or Max), or for third-party deployments. | Start a Team or Enterprise plan at [claude.com/pricing](https://claude.com/pricing) | -> | A Claude organization **without Zero Data Retention (ZDR), customer-managed encryption (CMEK), or the HIPAA configuration for Claude Code (local mode) and Cowork (local mode)** | Claude Tag stores channel memory and session transcripts, which ZDR doesn't permit. A CMEK policy and the HIPAA configuration don't allow Claude Tag either. | Claude Tag isn't available to organizations with any of these. See [Healthcare organizations](/docs/claude-tag/admins/healthcare.md#plan-and-organization-requirements) | +> | A Claude organization **without Zero Data Retention (ZDR), customer-managed encryption (CMEK), or the HIPAA configuration for Claude Code (local mode) and Cowork (local mode)** | Claude Tag stores channel memory and session transcripts, which ZDR doesn't permit. A CMEK policy and the HIPAA configuration don't allow Claude Tag either. | Claude Tag isn't available to organizations with any of these. See [Healthcare organizations](https://claude.com/docs/claude-tag/admins/healthcare.md#plan-and-organization-requirements) | > | **Routines** enabled for your Claude organization | Until it is, Claude answers every mention and DM with a reply that it's unavailable and does no work. | An admin turns on [**Admin settings > Capabilities > Remote sessions > Routines**](https://claude.ai/admin-settings/capabilities) | > | **Owner** role in the Claude organization you're setting up | Setup pairs a workspace and turns Claude Tag on, and only an Owner can do either. Roles are per organization, so being an Owner elsewhere doesn't carry over. | Ask an Owner to run setup, or have one promote you at [`claude.ai/admin-settings/members`](https://claude.ai/admin-settings/members) | > | A **Slack workspace admin** | Running `@Claude connect` requires a Slack workspace admin; installing the app usually does too. | If that's someone else, [send them the install request](#if-you-re-not-the-slack-workspace-admin) early (app approval can take time), and plan to be online together when you pair; pairing codes expire 15 minutes after they're issued | > | **Usage credits** (Team plans) | Channel work draws from your organization's usage balance; on a Team plan nothing runs until credits are loaded. | Buy credits at [`claude.ai/admin-settings/usage`](https://claude.ai/admin-settings/usage) | > | A **public channel** for Claude to join | The launch step asks you to select at least one public channel, and you can [verify your setup](#verify-your-setup) there. | Create a public Slack channel for the pilot, or pick any existing one | > -> If any of your services restrict traffic by IP, file the [network requirements](/docs/claude-tag/admins/network-requirements.md) request with your network team early; in many organizations, IP allowlist changes take days to approve. +> If any of your services restrict traffic by IP, file the [network requirements](https://claude.com/docs/claude-tag/admins/network-requirements.md) request with your network team early; in many organizations, IP allowlist changes take days to approve. > > If you see **View setup guide** and **Go to chat** buttons instead of **Start setup**, your signed-in account can't run setup. See [Common setup issues](#common-setup-issues). > [!NOTE] > -> If your team already uses the earlier Claude in Slack, the same steps apply and your existing app stays; see [Migrate from the earlier app](/docs/claude-tag/admins/migrate-from-earlier.md) for what changes. +> If your team already uses the earlier Claude in Slack, the same steps apply and your existing app stays; see [Migrate from the earlier app](https://claude.com/docs/claude-tag/admins/migrate-from-earlier.md) for what changes. ## Pair your Slack workspace @@ -53,7 +53,7 @@ Install the Claude app in Slack, get a pairing code from Slack, and paste it on Click **Add the Claude app** on the setup page to open the listing, then click **Add to Slack** and approve the permissions. If the app is already installed, click **Add to Slack** anyway: you reinstall over the existing app with its current permissions and keep your settings. -On Slack Enterprise Grid, installing takes two Slack actions. See [Set up Claude Tag on Enterprise Grid](/docs/claude-tag/admins/workspaces.md#set-up-claude-tag-on-enterprise-grid) for the steps. +On Slack Enterprise Grid, installing takes two Slack actions. See [Set up Claude Tag on Enterprise Grid](https://claude.com/docs/claude-tag/admins/workspaces.md#set-up-claude-tag-on-enterprise-grid) for the steps. **2. Send @Claude connect in any channel** @@ -83,7 +83,7 @@ The setup page continues to the next step that applies to your organization. Pairing covers the whole workspace. Claude doesn't answer mentions in Slack until you finish [Launch Claude Tag](#launch-claude-tag). A mention before then gets a notice that starts "Claude isn't on in this channel yet." -After launch, people can tag Claude in any channel it has joined. To keep Claude to certain channels, see [Limit Claude Tag to specific channels](/docs/claude-tag/admins/restrict-access.md#limit-claude-tag-to-specific-channels). +After launch, people can tag Claude in any channel it has joined. To keep Claude to certain channels, see [Limit Claude Tag to specific channels](https://claude.com/docs/claude-tag/admins/restrict-access.md#limit-claude-tag-to-specific-channels). > **If you're not the Slack workspace admin** > @@ -95,7 +95,7 @@ After launch, people can tag Claude in any channel it has joined. To keep Claude > **If your Slack is on Enterprise Grid** > -> When a Slack Org Owner or Org Admin sends `@Claude connect`, the reply includes two codes. One begins `workspace_` and pairs only the workspace the admin sent the command in, and one begins `enterprise_` and pairs the whole Grid. Paste the `enterprise_` code. See [Pair an Enterprise Grid](/docs/claude-tag/admins/workspaces.md#pair-an-enterprise-grid). +> When a Slack Org Owner or Org Admin sends `@Claude connect`, the reply includes two codes. One begins `workspace_` and pairs only the workspace the admin sent the command in, and one begins `enterprise_` and pairs the whole Grid. Paste the `enterprise_` code. See [Pair an Enterprise Grid](https://claude.com/docs/claude-tag/admins/workspaces.md#pair-an-enterprise-grid). ## Buy usage credits @@ -114,13 +114,13 @@ On the launch step, you add Claude to channels and turn Claude Tag on. You also The spend limit caps how much of your organization's usage balance Claude Tag can use each month. * **Channel work**: draws from that balance, not from individual seats -* **Direct messages (DMs)**: One-to-one DMs from members who have connected a Claude account run on the member's own claude.ai account and aren't capped by this limit. For members who haven't connected one, see [Direct messages from members without a Claude account](/docs/claude-tag/admins/restrict-access.md#direct-messages-from-members-without-a-claude-account). +* **Direct messages (DMs)**: One-to-one DMs from members who have connected a Claude account run on the member's own claude.ai account and aren't capped by this limit. For members who haven't connected one, see [Direct messages from members without a Claude account](https://claude.com/docs/claude-tag/admins/restrict-access.md#direct-messages-from-members-without-a-claude-account). **1. Set monthly spend limits** If setup included the [**Buy usage credits**](#buy-usage-credits) step, the launch step has no spend limit picker. Set a limit after launch at [`claude.ai/admin-settings/usage/claude-tag`](https://claude.ai/admin-settings/usage/claude-tag). -Otherwise, choose from `$500`, `$1,000`, `$2,500`, `$5,000`, **Unlimited**, or **Custom** (a US-dollar amount up to `$1,000,000`). `$2,500` is preselected unless your organization already has a Claude Tag spend limit. Usage bills against your organization's balance up to that amount each month. See [Set a spend limit](/docs/claude-tag/admins/set-spend-limit.md) for what counts toward the cap, per-channel limits, and what users see when it's reached. +Otherwise, choose from `$500`, `$1,000`, `$2,500`, `$5,000`, **Unlimited**, or **Custom** (a US-dollar amount up to `$1,000,000`). `$2,500` is preselected unless your organization already has a Claude Tag spend limit. Usage bills against your organization's balance up to that amount each month. See [Set a spend limit](https://claude.com/docs/claude-tag/admins/set-spend-limit.md) for what counts toward the cap, per-channel limits, and what users see when it's reached. **2. Add Claude to your channels** @@ -149,22 +149,22 @@ To stop before launching, leave the setup page. Your pairing is saved, and your After launch, Claude reaches your other tools through personal connectors and through access you give Claude itself. -* **Personal connectors**: Claude can use a member's own claude.ai connectors for that member's requests in a channel. You don't connect anything for these. See [Personal connectors in channels](/docs/claude-tag/concepts/personal-connectors.md) for how members approve that use. -* **Access you give Claude**: you connect a tool on the Claude Tag admin page with credentials that belong to Claude rather than to a person. Claude then works in that tool and can use it for [work it starts on its own](/docs/claude-tag/users/proactivity.md). +* **Personal connectors**: Claude can use a member's own claude.ai connectors for that member's requests in a channel. You don't connect anything for these. See [Personal connectors in channels](https://claude.com/docs/claude-tag/concepts/personal-connectors.md) for how members approve that use. +* **Access you give Claude**: you connect a tool on the Claude Tag admin page with credentials that belong to Claude rather than to a person. Claude then works in that tool and can use it for [work it starts on its own](https://claude.com/docs/claude-tag/users/proactivity.md). ### Connect GitHub When your organization hasn't installed the Claude GitHub App, the setup page offers a **Connect GitHub** step after you pair your workspace. To connect GitHub later, click **Skip** on that step. -Connect GitHub if your team will give Claude code work. Claude reaches GitHub through the [Claude GitHub App](/docs/claude-tag/admins/configure-github.md). Only an owner of your GitHub organization can install it. +Connect GitHub if your team will give Claude code work. Claude reaches GitHub through the [Claude GitHub App](https://claude.com/docs/claude-tag/admins/configure-github.md). Only an owner of your GitHub organization can install it. -[Link your GitHub organization](/docs/claude-tag/admins/configure-github.md#link-your-github-organization) to install the app, then [grant repositories](/docs/claude-tag/admins/configure-github.md#grant-repository-access). +[Link your GitHub organization](https://claude.com/docs/claude-tag/admins/configure-github.md#link-your-github-organization) to install the app, then [grant repositories](https://claude.com/docs/claude-tag/admins/configure-github.md#grant-repository-access). ### Create accounts for Claude's other tools **Where:** your company's email admin console and each tool you're connecting, then the Claude Tag admin page at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag). -In each tool other than GitHub, Claude works through an account of its own, so you can see what it did in that tool's logs and cut off its access without touching anyone else's. You give Claude an email address, add it to each tool as a member, then sign in as Claude and create an API key. [How agent identity works](/docs/claude-tag/concepts/agent-identity.md) has the full model. +In each tool other than GitHub, Claude works through an account of its own, so you can see what it did in that tool's logs and cut off its access without touching anyone else's. You give Claude an email address, add it to each tool as a member, then sign in as Claude and create an API key. [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md) has the full model. Work through one tool end to end before starting the next. @@ -180,15 +180,15 @@ For a tool that offers service accounts, create one in the tool's admin settings **3. Create an API key in Claude's account** -Sign in to the tool as Claude and create the credential that tool's [connection guide](/docs/claude-tag/admins/connections/overview) names, usually an API key or personal access token from the tool's settings. Copy it. The credential belongs to Claude's account, so Claude's actions show up in the tool's audit log under Claude's name. +Sign in to the tool as Claude and create the credential that tool's [connection guide](https://claude.com/docs/claude-tag/admins/connections/overview) names, usually an API key or personal access token from the tool's settings. Copy it. The credential belongs to Claude's account, so Claude's actions show up in the tool's audit log under Claude's name. **4. Add the key as a connector** -Go to [**Organization settings > Claude Tag**](https://claude.ai/admin-settings/claude-tag). Under **Claude's access**, select the **Connectors** tab and click **Add**. Then [add a connector](/docs/claude-tag/admins/add-connections.md#add-a-connection) for the tool and paste the key you created. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. +Go to [**Organization settings > Claude Tag**](https://claude.ai/admin-settings/claude-tag). Under **Claude's access**, select the **Connectors** tab and click **Add**. Then [add a connector](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection) for the tool and paste the key you created. The first credential you add for a service from the **Connectors** tab is on in every workspace and channel as soon as you save it. To give it narrower reach, see [where a new connector applies](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection) before you save the connector. For the next tool, start again from **Add Claude to the tool as a member**. Claude keeps the one email address for every tool. -See [Give Claude access](/docs/claude-tag/admins/add-connections.md) for which services to connect first and what access to give each account, and the [per-service connection guides](/docs/claude-tag/admins/connections/overview) for the credential fields per tool. +See [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md) for which services to connect first and what access to give each account, and the [per-service connection guides](https://claude.com/docs/claude-tag/admins/connections/overview) for the credential fields per tool. ## Verify your setup @@ -210,7 +210,7 @@ If you didn't select this channel at launch, add Claude to it. Then mention Clau **Passed when:** Claude replies in a thread under your message. The reply ends with a footer naming the model and a **Configure** link. -**If not:** a notice that starts "Claude isn't on in this channel yet" means you haven't finished [Launch Claude Tag](#launch-claude-tag). No reply at all means the channel isn't covered. Go to [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), check that the workspace appears on the **Channels** tab under **Claude's access**, then see [Nothing responds](/docs/claude-tag/admins/troubleshooting.md#nothing-responds). +**If not:** a notice that starts "Claude isn't on in this channel yet" means you haven't finished [Launch Claude Tag](#launch-claude-tag). No reply at all means the channel isn't covered. Go to [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), check that the workspace appears on the **Channels** tab under **Claude's access**, then see [Nothing responds](https://claude.com/docs/claude-tag/admins/troubleshooting.md#nothing-responds). ### Check a tool you connected @@ -230,7 +230,7 @@ For a data warehouse, ask for a row count from one table. For a support tool, as **Passed when:** the first reply lists the tools you connected, the second comes back with data, and the request appears in that tool's audit log under Claude's account. -**If not:** when a tool is missing from the list, go to [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag) and open the **Connectors** tab under **Claude's access**. If the tool isn't there, [connect it again](/docs/claude-tag/admins/add-connections.md#add-a-connection). If it is, open its page and check that it applies to the channel you asked in. "I can't reach…" in a thread you started before connecting means Claude wasn't told about the new connector; start a fresh thread. Anything else, see [Access and connections](/docs/claude-tag/admins/troubleshooting.md#access-and-connections). +**If not:** when a tool is missing from the list, go to [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag) and open the **Connectors** tab under **Claude's access**. If the tool isn't there, [connect it again](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection). If it is, open its page and check that it applies to the channel you asked in. "I can't reach…" in a thread you started before connecting means Claude wasn't told about the new connector; start a fresh thread. Anything else, see [Access and connections](https://claude.com/docs/claude-tag/admins/troubleshooting.md#access-and-connections). ### Check GitHub @@ -242,15 +242,15 @@ Run this check after you [connect GitHub](#connect-github). Ask about a reposito **Passed when:** Claude lists the pull requests. -**If not:** see [GitHub doesn't work in this channel](/docs/claude-tag/admins/troubleshooting.md#github-doesn%E2%80%99t-work-in-this-channel). +**If not:** see [GitHub doesn't work in this channel](https://claude.com/docs/claude-tag/admins/troubleshooting.md#github-doesn%E2%80%99t-work-in-this-channel). -For more tasks to hand Claude once the checks pass, see the [use case library](/docs/claude-tag/users/use-cases.md). +For more tasks to hand Claude once the checks pass, see the [use case library](https://claude.com/docs/claude-tag/users/use-cases.md). ## After setup After launch, you change Claude Tag from [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag). Organization-wide settings such as **Enable Claude Tag in Slack**, **Direct messages**, and **Model** sit at the top of the page. Below them, **Claude's access** holds what Claude can reach, in four tabs: -* **Bundles**: named sets of connectors, repositories, domains, plugins, and instructions that you add to more than one place. See [bundle](/docs/claude-tag/concepts/glossary.md#access-bundle) in the glossary. +* **Bundles**: named sets of connectors, repositories, domains, plugins, and instructions that you add to more than one place. See [bundle](https://claude.com/docs/claude-tag/concepts/glossary.md#access-bundle) in the glossary. * **Connectors**: each service Claude connects to, its credentials, and where Claude may use each one * **Skills and plugins**: the skills and plugins Claude uses anywhere in Slack * **Channels**: **Slack**, whose page holds the settings for every workspace and channel, then each connected workspace with its channel rules and channels @@ -259,29 +259,29 @@ On the **Channels** tab, select **Slack** to change how Claude works everywhere, | To do this | Go to | Learn more | | :- | :- | :- | -| Change the model Claude replies with | **Model** at the top of the Claude Tag page to change the default everywhere, or **Model** on a workspace's or channel's page. | [Choose the model for a scope](/docs/claude-tag/admins/customize.md#choose-the-model-for-a-scope) | -| Give Claude standing instructions | **Slack instructions** on the **Slack** page for every channel, or **Channel instructions** on one channel's page for that channel only. | [Customize](/docs/claude-tag/admins/customize.md) | -| Connect a tool | **Add** on the **Connectors** tab. | [Give Claude access](/docs/claude-tag/admins/add-connections.md) | -| Let Claude reach a site or API that has no credential | **Add > Domain** under **What's in it** on a bundle's page. | [Allow a host without a credential](/docs/claude-tag/admins/add-connections.md#allow-a-host-without-a-credential) | -| Grant more repositories | The **GitHub** page, which you open from the **Connectors** tab. | [Configure GitHub access](/docs/claude-tag/admins/configure-github.md) | -| Give one channel more than the default | The channel's page, from the **Channels** tab: **Add** under **Claude's access**, then pick what to add, such as **Connector**, **Domain**, or **Bundle**. | [Configure per-channel access](/docs/claude-tag/admins/attach-to-scope.md) | -| Limit where Claude works or who can use it | | [Restrict where Claude operates](/docs/claude-tag/admins/restrict-access.md) | -| Require review of personal connector results | On the Enterprise plan, the **Personal connectors** section of the admin page. | [Admin controls for personal connectors](/docs/claude-tag/concepts/personal-connectors.md#admin-controls-for-personal-connectors) | -| Pair another workspace, or disconnect one | **Connected workspaces** on the **Slack** page. Disconnecting permanently deletes the workspace's Claude data. See [Data lifecycle and deletion](/docs/claude-tag/concepts/data-lifecycle.md). | [Manage workspaces](/docs/claude-tag/admins/workspaces.md) | -| Change the spend limit | [`claude.ai/admin-settings/usage/claude-tag`](https://claude.ai/admin-settings/usage/claude-tag). | [Set a spend limit](/docs/claude-tag/admins/set-spend-limit.md) | -| Turn Claude Tag off | The **Enable Claude Tag in Slack** switch at the top of the Claude Tag page. It also turns off direct messages. | [Turn Claude Tag on or off](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) | -| Bring in the first users | | [Getting started for users](/docs/claude-tag/users/getting-started.md) | +| Change the model Claude replies with | **Model** at the top of the Claude Tag page to change the default everywhere, or **Model** on a workspace's or channel's page. | [Choose the model for a scope](https://claude.com/docs/claude-tag/admins/customize.md#choose-the-model-for-a-scope) | +| Give Claude standing instructions | **Slack instructions** on the **Slack** page for every channel, or **Channel instructions** on one channel's page for that channel only. | [Customize](https://claude.com/docs/claude-tag/admins/customize.md) | +| Connect a tool | **Add** on the **Connectors** tab. | [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md) | +| Let Claude reach a site or API that has no credential | **Add > Domain** under **What's in it** on a bundle's page. | [Allow a host without a credential](https://claude.com/docs/claude-tag/admins/add-connections.md#allow-a-host-without-a-credential) | +| Grant more repositories | The **GitHub** page, which you open from the **Connectors** tab. | [Configure GitHub access](https://claude.com/docs/claude-tag/admins/configure-github.md) | +| Give one channel more than the default | The channel's page, from the **Channels** tab: **Add** under **Claude's access**, then pick what to add, such as **Connector**, **Domain**, or **Bundle**. | [Configure per-channel access](https://claude.com/docs/claude-tag/admins/attach-to-scope.md) | +| Limit where Claude works or who can use it | | [Restrict where Claude operates](https://claude.com/docs/claude-tag/admins/restrict-access.md) | +| Require review of personal connector results | On the Enterprise plan, the **Personal connectors** section of the admin page. | [Admin controls for personal connectors](https://claude.com/docs/claude-tag/concepts/personal-connectors.md#admin-controls-for-personal-connectors) | +| Pair another workspace, or disconnect one | **Connected workspaces** on the **Slack** page. Disconnecting permanently deletes the workspace's Claude data. See [Data lifecycle and deletion](https://claude.com/docs/claude-tag/concepts/data-lifecycle.md). | [Manage workspaces](https://claude.com/docs/claude-tag/admins/workspaces.md) | +| Change the spend limit | [`claude.ai/admin-settings/usage/claude-tag`](https://claude.ai/admin-settings/usage/claude-tag). | [Set a spend limit](https://claude.com/docs/claude-tag/admins/set-spend-limit.md) | +| Turn Claude Tag off | The **Enable Claude Tag in Slack** switch at the top of the Claude Tag page. It also turns off direct messages. | [Turn Claude Tag on or off](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope) | +| Bring in the first users | | [Getting started for users](https://claude.com/docs/claude-tag/users/getting-started.md) | ## Common setup issues -Every message setup can show instead of the next step, matched to its fix, is in [Setup errors](/docs/claude-tag/admins/troubleshooting.md#setup-errors) on the troubleshooting page. +Every message setup can show instead of the next step, matched to its fix, is in [Setup errors](https://claude.com/docs/claude-tag/admins/troubleshooting.md#setup-errors) on the troubleshooting page. ## Related resources -* [How Claude Tag works](/docs/claude-tag/concepts/how-it-works.md): what happens between a mention and a reply -* [How agent identity works](/docs/claude-tag/concepts/agent-identity.md): why Claude gets its own accounts, and what that means for audit logs and access -* [Configure per-channel access](/docs/claude-tag/admins/attach-to-scope.md#how-scopes-inherit): how Slack, workspaces, and channels inherit bundles -* [Claude Tag settings map](/docs/claude-tag/concepts/settings-map.md): every setting, and whether admins, channel members, or users control it -* [Glossary](/docs/claude-tag/concepts/glossary.md): bundle, scope, session, and the other terms on this page -* [Network requirements](/docs/claude-tag/admins/network-requirements.md): what your services must allowlist so Claude can reach them +* [How Claude Tag works](https://claude.com/docs/claude-tag/concepts/how-it-works.md): what happens between a mention and a reply +* [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md): why Claude gets its own accounts, and what that means for audit logs and access +* [Configure per-channel access](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#how-scopes-inherit): how Slack, workspaces, and channels inherit bundles +* [Claude Tag settings map](https://claude.com/docs/claude-tag/concepts/settings-map.md): every setting, and whether admins, channel members, or users control it +* [Glossary](https://claude.com/docs/claude-tag/concepts/glossary.md): bundle, scope, session, and the other terms on this page +* [Network requirements](https://claude.com/docs/claude-tag/admins/network-requirements.md): what your services must allowlist so Claude can reach them * [Claude Tag in production at Anthropic](https://claude.com/blog/ai-ci-cd-on-call): how Anthropic runs Claude Tag as its first responder for CI/CD failures diff --git a/content/claude/claude-tag/admins/skills-repo.md b/content/claude/claude-tag/admins/skills-repo.md index cd08d4c13..2ad1546e8 100644 --- a/content/claude/claude-tag/admins/skills-repo.md +++ b/content/claude/claude-tag/admins/skills-repo.md @@ -28,11 +28,11 @@ When you click **Create**, and on every sync after that, the whole repository is **3. Grant Claude write access to the repository** -At [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), open a [bundle](/docs/claude-tag/admins/add-connections.md) on the **Bundles** tab under **Claude's access**. In its **What's in it** section, select **Add**, then **Repository**, and pick the repository. The Claude GitHub App must already be linked to your GitHub organization; see [Configure GitHub access](/docs/claude-tag/admins/configure-github.md). +At [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), open a [bundle](https://claude.com/docs/claude-tag/admins/add-connections.md) on the **Bundles** tab under **Claude's access**. In its **What's in it** section, select **Add**, then **Repository**, and pick the repository. The Claude GitHub App must already be linked to your GitHub organization; see [Configure GitHub access](https://claude.com/docs/claude-tag/admins/configure-github.md). **4. Add the plugins to the bundle** -On the same bundle's page, select **Add**, then **Plugin**, and pick each plugin from your new marketplace. A plugin isn't in the bundle until you add it, and the bundle's plugins apply wherever the bundle applies; see [Choose where a bundle applies](/docs/claude-tag/admins/attach-to-scope.md#attach-the-bundle) and [Attach plugins](/docs/claude-tag/admins/add-connections.md#attach-plugins). +On the same bundle's page, select **Add**, then **Plugin**, and pick each plugin from your new marketplace. A plugin isn't in the bundle until you add it, and the bundle's plugins apply wherever the bundle applies; see [Choose where a bundle applies](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#attach-the-bundle) and [Attach plugins](https://claude.com/docs/claude-tag/admins/add-connections.md#attach-plugins). **You'll see:** the repository and the plugins appear in the bundle's **What's in it** table, with **Repository** or **Plugin** as each row's type. @@ -48,7 +48,7 @@ Once the repository is set up, Claude can propose changes and they reach channel | The marketplace syncs | On push to the default branch, the updated plugin syncs to your organization automatically | | New threads pick it up | The next thread in any covered channel uses the updated skill | -Claude opens the PR, and you merge it. To require a person's approval before a change reaches the default branch, see [Require a second approval on Claude's pull requests](/docs/claude-tag/admins/configure-github.md#require-a-second-approval-on-claude%E2%80%99s-pull-requests). +Claude opens the PR, and you merge it. To require a person's approval before a change reaches the default branch, see [Require a second approval on Claude's pull requests](https://claude.com/docs/claude-tag/admins/configure-github.md#require-a-second-approval-on-claude%E2%80%99s-pull-requests). ## Prompt Claude to propose updates @@ -76,11 +76,11 @@ To upload instead, in [**Organization settings > Plugins & skills**](https://cla * The same layout inside a single top-level folder * For a single skill, a `SKILL.md` at the top level whose frontmatter declares the plugin's components -An archive with no manifest, with more than one `plugin.json`, or with the manifest anywhere else is rejected at upload. After upload, the plugin is in your organization's catalog but not attached anywhere. To make it available in channels, add it to a bundle with **Add**, then **Plugin**, on the bundle's page, or add it for all of Slack from the **Skills and plugins** tab under **Claude's access**; see [Attach plugins](/docs/claude-tag/admins/add-connections.md#attach-plugins). +An archive with no manifest, with more than one `plugin.json`, or with the manifest anywhere else is rejected at upload. After upload, the plugin is in your organization's catalog but not attached anywhere. To make it available in channels, add it to a bundle with **Add**, then **Plugin**, on the bundle's page, or add it for all of Slack from the **Skills and plugins** tab under **Claude's access**; see [Attach plugins](https://claude.com/docs/claude-tag/admins/add-connections.md#attach-plugins). ## Repository context files and MCP servers -A granted repository's `CLAUDE.md` and `.claude/rules/*.md` load when Claude clones it, in the same format as Claude Code; see [What loads from a repository](/docs/claude-tag/admins/configure-github.md#what-loads-from-a-repository) and the [Claude Code memory docs](https://code.claude.com/docs/en/memory). A repository's `.mcp.json` is not loaded. To give Claude an MCP server, put the `.mcp.json` in a plugin, next to its `.claude-plugin/plugin.json`, and attach the plugin; the [Claude Code plugin docs](https://code.claude.com/docs/en/plugins) cover the `.mcp.json` format, and [Add a custom MCP server](/docs/claude-tag/admins/connections/custom.md#add-a-custom-mcp-server) covers the credential the server needs. +A granted repository's `CLAUDE.md` and `.claude/rules/*.md` load when Claude clones it, in the same format as Claude Code; see [What loads from a repository](https://claude.com/docs/claude-tag/admins/configure-github.md#what-loads-from-a-repository) and the [Claude Code memory docs](https://code.claude.com/docs/en/memory). A repository's `.mcp.json` is not loaded. To give Claude an MCP server, put the `.mcp.json` in a plugin, next to its `.claude-plugin/plugin.json`, and attach the plugin; the [Claude Code plugin docs](https://code.claude.com/docs/en/plugins) cover the `.mcp.json` format, and [Add a custom MCP server](https://claude.com/docs/claude-tag/admins/connections/custom.md#add-a-custom-mcp-server) covers the credential the server needs. ## What belongs in the repository @@ -94,6 +94,6 @@ Skills in the repository reach every channel under the scope. ## Related resources -* [Attach plugins](/docs/claude-tag/admins/add-connections.md#attach-plugins): how plugins and skills load into a scope -* [Configure GitHub access](/docs/claude-tag/admins/configure-github.md): granting Claude write access to a repository -* [What Claude Tag remembers](/docs/claude-tag/users/memory.md): when channel memory is the right place instead +* [Attach plugins](https://claude.com/docs/claude-tag/admins/add-connections.md#attach-plugins): how plugins and skills load into a scope +* [Configure GitHub access](https://claude.com/docs/claude-tag/admins/configure-github.md): granting Claude write access to a repository +* [What Claude Tag remembers](https://claude.com/docs/claude-tag/users/memory.md): when channel memory is the right place instead diff --git a/content/claude/claude-tag/admins/troubleshooting.md b/content/claude/claude-tag/admins/troubleshooting.md index 85a75bd1b..27250d2e2 100644 --- a/content/claude/claude-tag/admins/troubleshooting.md +++ b/content/claude/claude-tag/admins/troubleshooting.md @@ -14,16 +14,16 @@ This page covers errors you might hit setting up and administering Claude Tag: S > [!NOTE] > -> For problems people can resolve on their own in a channel, like a missing reply or a thread that lost its work, see [Troubleshoot Claude Tag in channels and DMs](/docs/claude-tag/users/troubleshooting.md). +> For problems people can resolve on their own in a channel, like a missing reply or a thread that lost its work, see [Troubleshoot Claude Tag in channels and DMs](https://claude.com/docs/claude-tag/users/troubleshooting.md). If someone reports that Claude can't reach a service you connected, check two things before anything else: -* The connector applies to that channel. To check, go to [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), open the **Channels** tab under **Claude's access**, and select the channel (or its workspace, if the channel isn't listed). The page's **Claude's access** table includes access [inherited from wider scopes](/docs/claude-tag/admins/attach-to-scope.md#how-scopes-inherit), and its **Inheritance** column names where each bundle, and each item outside a bundle, comes from. If the connector isn't there, add it to the channel, its workspace, or a [bundle that applies there](/docs/claude-tag/admins/attach-to-scope.md#attach-the-bundle). +* The connector applies to that channel. To check, go to [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), open the **Channels** tab under **Claude's access**, and select the channel (or its workspace, if the channel isn't listed). The page's **Claude's access** table includes access [inherited from wider scopes](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#how-scopes-inherit), and its **Inheritance** column names where each bundle, and each item outside a bundle, comes from. If the connector isn't there, add it to the channel, its workspace, or a [bundle that applies there](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#attach-the-bundle). * The test ran in a new thread; an existing thread isn't told about a connector added after it started, though the connector works there if the request names the service. ## Setup errors -What you expected to see while running [setup](/docs/claude-tag/admins/setup-overview), what appeared instead, and what to do. +What you expected to see while running [setup](https://claude.com/docs/claude-tag/admins/setup-overview), what appeared instead, and what to do. | You expected | But got | Do this | | :- | :- | :- | @@ -37,7 +37,7 @@ What you expected to see while running [setup](/docs/claude-tag/admins/setup-ove | The spend limit picker on the **Launch Claude Tag** step | A **Buy usage credits** step | Your organization pays by card in US dollars and has no credits loaded. Load credits, or select **Skip** to continue without; nothing runs in channels until the balance is funded. Invoiced organizations and those billing in other currencies see the spend limit picker regardless of balance. | | **Launch Claude Tag** to finish | "Couldn't turn on personal connectors in channels. Try again." | Launch didn't finish. Click **Launch Claude Tag** again. | | Claude to join the channels you selected on the **Launch Claude Tag** step | "Couldn't add Claude to some channels. Add Claude from Slack instead." | Claude Tag is on, but Claude didn't join every channel you selected. Run `/invite @Claude` in each channel it's missing from. | -| A reply from Claude while you're still in setup | A notice that starts "Claude isn't on in this channel yet." | Claude Tag isn't turned on until you finish [Launch Claude Tag](/docs/claude-tag/admins/setup-overview#launch-claude-tag). Finish setup, then mention `@Claude` again. A channel that's turned off after launch gets a different notice; see [Claude is disabled in this channel](#claude-is-disabled-in-this-channel). | +| A reply from Claude while you're still in setup | A notice that starts "Claude isn't on in this channel yet." | Claude Tag isn't turned on until you finish [Launch Claude Tag](https://claude.com/docs/claude-tag/admins/setup-overview#launch-claude-tag). Finish setup, then mention `@Claude` again. A channel that's turned off after launch gets a different notice; see [Claude is disabled in this channel](#claude-is-disabled-in-this-channel). | | A connected tool to work in your test | “I can't reach…” | Claude isn't told about a connector added after the thread started. Ask it to use the service by name, or start a fresh thread. | | Claude to respond in Slack | "Claude Tag has been turned off for your Claude organization…" | The **Enable Claude Tag in Slack** switch is off. An Owner turns it on at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag). See [the troubleshooting entry](#claude-tag-is-turned-off-for-your-organization). | | Claude to respond in Slack | "Claude Tag is unavailable because Routines aren't enabled for your organization…" | Routines isn't enabled for your Claude organization, which Claude Tag requires. An admin turns on [**Admin settings > Capabilities > Remote sessions > Routines**](https://claude.ai/admin-settings/capabilities). Anyone can then mention `@Claude` again. See [the troubleshooting entry](#claude-tag-is-unavailable-because-routines-are-not-enabled). | @@ -74,7 +74,7 @@ A Slack workspace admin runs these three steps: 2. Approve the consent screen Slack shows; it lists each permission being added. If Slack shows **Unapproved permissions requested** instead of completing, see [Unapproved permissions requested](#unapproved-permissions-requested). 3. Run `@Claude connect` again. If the reinstall worked, the reply contains a pairing code (the link code the original message said it couldn't create) instead of this message. -Send that pairing code to whoever runs Claude setup in the console; it expires after 15 minutes. Slack's **Manage apps** page lists the permissions the app requests, not the permissions your workspace has granted, so seeing the missing permission listed there doesn't mean it's approved. The grant happens on the consent screen. For the app's permissions in one place, see [What the Claude Slack app can access](/docs/claude-tag/admins/for-slack-admins.md). +Send that pairing code to whoever runs Claude setup in the console; it expires after 15 minutes. Slack's **Manage apps** page lists the permissions the app requests, not the permissions your workspace has granted, so seeing the missing permission listed there doesn't mean it's approved. The grant happens on the consent screen. For the app's permissions in one place, see [What the Claude Slack app can access](https://claude.com/docs/claude-tag/admins/for-slack-admins.md). ### Unapproved permissions requested @@ -128,7 +128,7 @@ If the failure happens while Claude is posting a message rather than replying, t **What it means** -The **How should Claude work in channels with guests** setting is set to **Restrict** or **Channel only** for this channel's [scope](/docs/claude-tag/concepts/glossary.md#scope), so Claude checks the channel for guests before replying, and this install predates the `users:read` permission that check needs. +The **How should Claude work in channels with guests** setting is set to **Restrict** or **Channel only** for this channel's [scope](https://claude.com/docs/claude-tag/concepts/glossary.md#scope), so Claude checks the channel for guests before replying, and this install predates the `users:read` permission that check needs. **How to resolve** @@ -145,14 +145,14 @@ Slack's audit log shows Claude joining a channel with no inviter recorded, and n Claude joined the channel through one of these paths: * A member selected **Add to channel** on a channel Claude suggested in a direct message. Claude's welcome message, the introduction it posts when a member first opens a direct message with it, suggests a few public channels, each with an **Add to channel** button. -* A member selected **Approve and post** on a message Claude drafted in a direct message for a public channel it wasn't a member of. When the member approves, Claude posts the message in the channel the member named and joins it. [What Claude can do in other channels](/docs/claude-tag/concepts/how-it-works.md#what-claude-can-do-in-other-channels) covers the flow. -* The channel's name matches an [auto-join channel pattern](/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name) an admin set, and Claude joined the public channel when it was created or renamed. +* A member selected **Approve and post** on a message Claude drafted in a direct message for a public channel it wasn't a member of. When the member approves, Claude posts the message in the channel the member named and joins it. [What Claude can do in other channels](https://claude.com/docs/claude-tag/concepts/how-it-works.md#what-claude-can-do-in-other-channels) covers the flow. +* The channel's name matches an [auto-join channel pattern](https://claude.com/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name) an admin set, and Claude joined the public channel when it was created or renamed. -Claude performs that join with its own `channels:join` permission, so Slack's audit log records the join as the Claude app and shows no inviter; the member's selection is not visible in Slack's log. Outside these paths, Claude doesn't join a channel unprompted. [What the Claude Slack app can access](/docs/claude-tag/admins/for-slack-admins.md) covers how members add it. +Claude performs that join with its own `channels:join` permission, so Slack's audit log records the join as the Claude app and shows no inviter; the member's selection is not visible in Slack's log. Outside these paths, Claude doesn't join a channel unprompted. [What the Claude Slack app can access](https://claude.com/docs/claude-tag/admins/for-slack-admins.md) covers how members add it. **How to resolve** -Nothing is misconfigured. If an auto-join pattern brought Claude in, review the auto-join patterns on the **Advanced** tab of the workspace's page or of the **Slack** page. If Claude shouldn't be in the channel, remove it with `/remove @Claude`, or [turn the scope's **Enable Claude Tag in this channel** switch off](/docs/claude-tag/admins/restrict-access.md#quiet-or-remove-claude-tag) so it stops responding there even if it's added again. If the **Slack** page has a single [**Respond in channels** switch](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-on-the-team-plan) instead of per-channel switches, remove Claude and add a [blocked channel pattern](/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name) for the channel's name. If you want every join in the audit log attributed to a person, ask members to add Claude with `/invite @Claude` rather than the buttons; Slack records an invite as the inviting member's action. +Nothing is misconfigured. If an auto-join pattern brought Claude in, review the auto-join patterns on the **Advanced** tab of the workspace's page or of the **Slack** page. If Claude shouldn't be in the channel, remove it with `/remove @Claude`, or [turn the scope's **Enable Claude Tag in this channel** switch off](https://claude.com/docs/claude-tag/admins/restrict-access.md#quiet-or-remove-claude-tag) so it stops responding there even if it's added again. If the **Slack** page has a single [**Respond in channels** switch](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-on-the-team-plan) instead of per-channel switches, remove Claude and add a [blocked channel pattern](https://claude.com/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name) for the channel's name. If you want every join in the audit log attributed to a person, ask members to add Claude with `/invite @Claude` rather than the buttons; Slack records an invite as the inviting member's action. ## Guest and shared channels @@ -179,7 +179,7 @@ The channel includes at least one Slack guest account, and **How should Claude w Either fix works: * Remove the guests from the channel, or move the conversation to a channel with no guests; this changes no settings, so no other channel is affected. -* Change **How should Claude work in channels with guests** for the scope covering this channel. Go to [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), open the **Channels** tab under **Claude's access**, select the channel, its workspace, or **Slack**, and open the page's **Advanced** tab. **Channel only** restores replies with [channel-only access](/docs/claude-tag/admins/restrict-access.md#how-channel-only-works). **Full access** restores replies with the scope's full access, and only an organization Owner can choose it. See [restrict guest channels](/docs/claude-tag/admins/restrict-access.md#restrict-guest-channels) for what each value exposes. +* Change **How should Claude work in channels with guests** for the scope covering this channel. Go to [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), open the **Channels** tab under **Claude's access**, select the channel, its workspace, or **Slack**, and open the page's **Advanced** tab. **Channel only** restores replies with [channel-only access](https://claude.com/docs/claude-tag/admins/restrict-access.md#how-channel-only-works). **Full access** restores replies with the scope's full access, and only an organization Owner can choose it. See [restrict guest channels](https://claude.com/docs/claude-tag/admins/restrict-access.md#restrict-guest-channels) for what each value exposes. Either value applies to every guest channel that scope covers. To limit the change to one channel, set the value on the channel's own page. @@ -226,7 +226,7 @@ This message comes from the guest check, not from workspace sharing. The **How s The fix depends on which reply Claude posted: -* If the reply says the channel is shared with a workspace Claude hasn't been added to, have a Slack org admin [add the Claude app to that workspace](/docs/claude-tag/admins/workspaces.md#set-up-claude-tag-on-enterprise-grid). Once every workspace sharing the channel has the app, the membership check can run. +* If the reply says the channel is shared with a workspace Claude hasn't been added to, have a Slack org admin [add the Claude app to that workspace](https://claude.com/docs/claude-tag/admins/workspaces.md#set-up-claude-tag-on-enterprise-grid). Once every workspace sharing the channel has the app, the membership check can run. * Otherwise, use a channel that belongs to a single workspace. Setting the scope's guest setting to **Full access** removes the guest check that posts this message, but a Grid-shared channel still doesn't behave like a single-workspace one: @@ -264,7 +264,7 @@ Claude posts a notice in the thread, then answers the request: **What it means** -The channel is shared across more than one Slack workspace, and every one of those workspaces belongs to your Claude organization. Claude works there, but only with the access and settings on your [**Slack** page](/docs/claude-tag/admins/attach-to-scope.md), which apply in every workspace. Bundles, access, instructions, and memory added to a workspace or to this channel don't apply. +The channel is shared across more than one Slack workspace, and every one of those workspaces belongs to your Claude organization. Claude works there, but only with the access and settings on your [**Slack** page](https://claude.com/docs/claude-tag/admins/attach-to-scope.md), which apply in every workspace. Bundles, access, instructions, and memory added to a workspace or to this channel don't apply. Claude posts the notice about once a month in each such channel, not on every reply, so replies there run under the same defaults even when no notice accompanies them. @@ -341,12 +341,12 @@ A Slack workspace can pair with only one Claude organization at a time, and this **How to resolve** 1. Find the Claude organization that holds the pairing. Check any other organizations your company has. -2. Have an Owner in that organization [disconnect the workspace](/docs/claude-tag/admins/workspaces.md#revoke-a-pairing) under **Connected workspaces** on their **Slack** page. +2. Have an Owner in that organization [disconnect the workspace](https://claude.com/docs/claude-tag/admins/workspaces.md#revoke-a-pairing) under **Connected workspaces** on their **Slack** page. 3. Send `@Claude connect` again for a fresh code and redeem it here. > [!WARNING] > -> Disconnecting deletes the workspace's Claude data, including its memory, channel configurations, sessions, and the routines set up in its channels. The deletion can't be undone. See [Data lifecycle and deletion](/docs/claude-tag/concepts/data-lifecycle.md) for the full list of what's deleted. +> Disconnecting deletes the workspace's Claude data, including its memory, channel configurations, sessions, and the routines set up in its channels. The deletion can't be undone. See [Data lifecycle and deletion](https://claude.com/docs/claude-tag/concepts/data-lifecycle.md) for the full list of what's deleted. ### This workspace is connected to a different Claude organization @@ -360,7 +360,7 @@ You select **Connect Claude account** and sign in, but the browser page refuses > > Signed in to a different Claude account in your browser? Sign out at claude.ai first, then click **Connect Claude account**. -If the workspace is covered by an [Enterprise Grid pairing](/docs/claude-tag/admins/workspaces.md#pair-an-enterprise-grid) rather than paired on its own, the DM is instead titled **This workspace isn't set up for your Claude organization yet** and adds that a Slack admin of the workspace can run `@Claude connect` to pair that one workspace with your organization. +If the workspace is covered by an [Enterprise Grid pairing](https://claude.com/docs/claude-tag/admins/workspaces.md#pair-an-enterprise-grid) rather than paired on its own, the DM is instead titled **This workspace isn't set up for your Claude organization yet** and adds that a Slack admin of the workspace can run `@Claude connect` to pair that one workspace with your organization. **What it means** @@ -408,19 +408,19 @@ First check the thread for either of two notices from Claude: * A notice that begins `:mute: Claude is muted in this thread` means the thread is muted and the session isn't stuck. Selecting the thumbs-down button under one of Claude's replies mutes the thread and posts that notice. * A notice that ends `stopped Claude's response in this thread. Mention @Claude to pick up again.` means someone selected **Stop** on the working indicator. The session is intact, and a mention continues it. -To bring Claude back to a muted thread, send `@Claude !unmute` in the thread or @-mention Claude there, as [Thumbs-down button and muting](/docs/claude-tag/users/commands.md#thumbs-down-button-and-muting) describes. +To bring Claude back to a muted thread, send `@Claude !unmute` in the thread or @-mention Claude there, as [Thumbs-down button and muting](https://claude.com/docs/claude-tag/users/commands.md#thumbs-down-button-and-muting) describes. Without either notice, the session behind that thread is stuck: it hasn't replied and hasn't posted an error. Because Claude responds everywhere else, the problem is confined to that one session, and none of the workspace-level fixes in the entries below apply. **How to resolve** -Have someone in the thread send [`@Claude !restart`](/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session). The command archives the stuck session and starts a fresh one that rereads the thread, so a follow-up message in the same thread gets an answer. Starting a new thread and restating the request also works. +Have someone in the thread send [`@Claude !restart`](https://claude.com/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session). The command archives the stuck session and starts a fresh one that rereads the thread, so a follow-up message in the same thread gets an answer. Starting a new thread and restating the request also works. > [!WARNING] > > Restarting abandons whatever the session was midway through, and there's no way to resume it. A silent session may still be working through a long task, so treat `!restart` as a last resort. -If the same request stalls again on the fresh session, send [feedback](/docs/claude-tag/users/commands.md#send-feedback) from that thread so Anthropic can investigate. +If the same request stalls again on the fresh session, send [feedback](https://claude.com/docs/claude-tag/users/commands.md#send-feedback) from that thread so Anthropic can investigate. ### Claude is silent everywhere in the workspace @@ -436,7 +436,7 @@ On Enterprise Grid, the organization-level install can lose its authorization th **How to resolve** -Reinstall the Claude app over the existing install to restore the lost authorization. Don't uninstall first, because uninstalling [deletes the workspace's Claude data](/docs/claude-tag/concepts/data-lifecycle.md#actions-in-slack). +Reinstall the Claude app over the existing install to restore the lost authorization. Don't uninstall first, because uninstalling [deletes the workspace's Claude data](https://claude.com/docs/claude-tag/concepts/data-lifecycle.md#actions-in-slack). 1. As a Slack workspace admin, open [Claude for Slack](https://claude.com/claude-for-slack) and select **Add to Slack**. 2. Approve the consent screen Slack shows. If Slack shows **Unapproved permissions requested** instead of finishing the install, see [Unapproved permissions requested](#unapproved-permissions-requested). @@ -472,7 +472,7 @@ On Enterprise Grid, one-to-one direct messages follow each user's home workspace **How to resolve** -Pair the whole Grid rather than one workspace. When a Grid Org Owner or Org Admin sends `@Claude connect`, the reply includes two codes; redeem the one starting with `enterprise_` (not the `workspace_` one) in the pairing step. See [Pair on Enterprise Grid](/docs/claude-tag/admins/workspaces.md#pair-an-enterprise-grid). +Pair the whole Grid rather than one workspace. When a Grid Org Owner or Org Admin sends `@Claude connect`, the reply includes two codes; redeem the one starting with `enterprise_` (not the `workspace_` one) in the pairing step. See [Pair on Enterprise Grid](https://claude.com/docs/claude-tag/admins/workspaces.md#pair-an-enterprise-grid). ### This workspace isn't set up for Claude Tag yet @@ -490,7 +490,7 @@ The Slack workspace hasn't been paired with a Claude organization, or, for the s **How to resolve** -Run [the pairing flow](/docs/claude-tag/admins/setup-overview#pair-your-slack-workspace). If the fix worked, a mention in the workspace gets a reply. +Run [the pairing flow](https://claude.com/docs/claude-tag/admins/setup-overview#pair-your-slack-workspace). If the fix worked, a mention in the workspace gets a reply. ### The legacy Claude in Slack bot is retired effective October 5, 2026 @@ -504,7 +504,7 @@ The workspace is paired with your Claude organization, but the channel's or work **How to resolve** -Check the **Claude Tag version** on the **Advanced** tab of the channel's page, then of its workspace's page, at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), and set it to **New**. **Inherit** works only when the workspace, or the **Slack** page above it, is set to **New**. See [Migrate from the earlier Claude in Slack](/docs/claude-tag/admins/migrate-from-earlier.md). The next mention in the channel gets a reply from Claude. +Check the **Claude Tag version** on the **Advanced** tab of the channel's page, then of its workspace's page, at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), and set it to **New**. **Inherit** works only when the workspace, or the **Slack** page above it, is set to **New**. See [Migrate from the earlier Claude in Slack](https://claude.com/docs/claude-tag/admins/migrate-from-earlier.md). The next mention in the channel gets a reply from Claude. ### Using the legacy Claude in Slack bot. Ask your Claude workspace owner to enable Claude Tag. @@ -518,7 +518,7 @@ The earlier per-user Claude in Slack app answered a direct message instead of th **How to resolve** -An Owner turns on **Enable Claude Tag in Slack** at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag) and [pairs the workspace](/docs/claude-tag/admins/setup-overview#pair-your-slack-workspace). If the workspace is already paired, check the **Claude Tag version** on the **Advanced** tab of the workspace's page and set it to **New**; see [Migrate from the earlier Claude in Slack](/docs/claude-tag/admins/migrate-from-earlier.md). Once Claude Tag is on and the workspace is paired, the notice stops appearing. +An Owner turns on **Enable Claude Tag in Slack** at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag) and [pairs the workspace](https://claude.com/docs/claude-tag/admins/setup-overview#pair-your-slack-workspace). If the workspace is already paired, check the **Claude Tag version** on the **Advanced** tab of the workspace's page and set it to **New**; see [Migrate from the earlier Claude in Slack](https://claude.com/docs/claude-tag/admins/migrate-from-earlier.md). Once Claude Tag is on and the workspace is paired, the notice stops appearing. ### Claude Tag is turned off for your organization @@ -534,19 +534,19 @@ The same reply appears on every surface: channel mentions, DMs, and `@Claude con The **Enable Claude Tag in Slack** switch is off in admin settings, or your organization isn't enabled for Claude Tag. The switch that matters is the one in the Claude organization the reply's parenthetical points to. -An Owner may find that the switch can't be turned on, and that hovering over it shows "Your organization's policy doesn't allow changing this setting." In that case, a compliance configuration on your Claude organization is blocking Claude Tag, and an Owner can't turn it on, even though the reply says an admin can. [Plan and organization requirements](/docs/claude-tag/admins/healthcare.md#plan-and-organization-requirements), on the healthcare organizations page, lists the configurations under which Claude Tag isn't available. +An Owner may find that the switch can't be turned on, and that hovering over it shows "Your organization's policy doesn't allow changing this setting." In that case, a compliance configuration on your Claude organization is blocking Claude Tag, and an Owner can't turn it on, even though the reply says an admin can. [Plan and organization requirements](https://claude.com/docs/claude-tag/admins/healthcare.md#plan-and-organization-requirements), on the healthcare organizations page, lists the configurations under which Claude Tag isn't available. **How to resolve** If the switch can't be turned on, start at step 2. When the workspace is already paired to the intended organization, ask your account team about creating a separate Claude organization without that configuration, and connect your Slack workspace to it instead. 1. An Owner turns on the **Enable Claude Tag in Slack** switch at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag). If the switch was the problem, a mention in Slack now gets a normal reply. -2. If the message persists, check which Claude organization the workspace is paired to. If your company has more than one (a trial organization alongside the main one, for example), an Owner in the wrong organization can [revoke the pairing](/docs/claude-tag/admins/workspaces.md#revoke-a-pairing) so you can pair the workspace to the right one. +2. If the message persists, check which Claude organization the workspace is paired to. If your company has more than one (a trial organization alongside the main one, for example), an Owner in the wrong organization can [revoke the pairing](https://claude.com/docs/claude-tag/admins/workspaces.md#revoke-a-pairing) so you can pair the workspace to the right one. 3. If the right organization has the switch on and the message persists, contact your account team to confirm Claude Tag is enabled for it. > [!WARNING] > -> Revoking the pairing deletes the workspace's Claude data, including its memory, channel configurations, sessions, and the routines set up in its channels. The deletion can't be undone. See [Data lifecycle and deletion](/docs/claude-tag/concepts/data-lifecycle.md) for the full list of what's deleted. +> Revoking the pairing deletes the workspace's Claude data, including its memory, channel configurations, sessions, and the routines set up in its channels. The deletion can't be undone. See [Data lifecycle and deletion](https://claude.com/docs/claude-tag/concepts/data-lifecycle.md) for the full list of what's deleted. ### Claude Tag is unavailable because Routines are not enabled @@ -584,11 +584,11 @@ Other Claude Tag actions in the same organization return similar messages that e **What it means** -Your Claude organization has a restricted compliance configuration, such as Zero Data Retention (ZDR). Claude Tag retains channel memory and session transcripts, so it isn't available to organizations under that configuration; see [what Claude Tag retains](/docs/claude-tag/concepts/security-and-data.md). +Your Claude organization has a restricted compliance configuration, such as Zero Data Retention (ZDR). Claude Tag retains channel memory and session transcripts, so it isn't available to organizations under that configuration; see [what Claude Tag retains](https://claude.com/docs/claude-tag/concepts/security-and-data.md). **How to resolve** -1. In a channel, the message is about the organization the workspace is paired to. Check which Claude organization that is. If your company has more than one, such as a trial organization alongside the main one, the workspace may be paired to the wrong one; an Owner in that organization can [revoke the pairing](/docs/claude-tag/admins/workspaces.md#revoke-a-pairing) so you can pair the workspace to the right one. +1. In a channel, the message is about the organization the workspace is paired to. Check which Claude organization that is. If your company has more than one, such as a trial organization alongside the main one, the workspace may be paired to the wrong one; an Owner in that organization can [revoke the pairing](https://claude.com/docs/claude-tag/admins/workspaces.md#revoke-a-pairing) so you can pair the workspace to the right one. 2. In a DM or on Claude's Home tab, the message is about the organization your own Claude account is connected to. If you also belong to a Claude organization without a restricted compliance configuration, click **Disconnect** on Claude's Home tab, then reconnect with that organization active. 3. If the organization in question is the intended one, no setting lifts the restriction; Claude Tag isn't available to organizations under it. Contact your account team with questions about your organization's compliance configuration. @@ -604,11 +604,11 @@ Only the first sentence is fixed. A sender who isn't a Slack workspace admin is **What it means** -This channel's **Enable Claude Tag in this channel** switch is off, either set on the channel's page itself or inherited from its workspace, or from the **Slack** page, whose **Respond in all channels** switch is off. If the **Slack** page has a single [**Respond in channels** switch](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-on-the-team-plan) instead of per-channel switches, the same notice means that switch is off, or the channel's workspace is switched off on its own. +This channel's **Enable Claude Tag in this channel** switch is off, either set on the channel's page itself or inherited from its workspace, or from the **Slack** page, whose **Respond in all channels** switch is off. If the **Slack** page has a single [**Respond in channels** switch](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-on-the-team-plan) instead of per-channel switches, the same notice means that switch is off, or the channel's workspace is switched off on its own. **How to resolve** -An Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) turns the channel back on: +An Owner or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) turns the channel back on: 1. Open [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag). 2. Under **Claude's access**, open the **Channels** tab and select the channel. @@ -616,7 +616,7 @@ An Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#dele If the switch is inherited from the **Slack** page, you can instead select the **Slack** row on the **Channels** tab and turn on **Respond in all channels** at the top of its **General** tab. That also turns Claude back on in every other channel that inherits the switch from the **Slack** page. -If the **Slack** page has a single [**Respond in channels** switch](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-on-the-team-plan) instead of per-channel switches, select the **Slack** row on the **Channels** tab and check that **Respond in channels** is on. If the fix worked, a mention in the channel gets a reply. +If the **Slack** page has a single [**Respond in channels** switch](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-on-the-team-plan) instead of per-channel switches, select the **Slack** row on the **Channels** tab and check that **Respond in channels** is on. If the fix worked, a mention in the channel gets a reply. ## Access and connections @@ -630,11 +630,11 @@ Claude in a channel says a host isn't allowed, a network request was blocked, or **What it means** -A channel session's outbound network access is deny-by-default. A host is reachable when a connector or an [allowed domain](/docs/claude-tag/admins/add-connections.md#allow-a-host-without-a-credential) that applies to the channel allows it, or when the network access setting of the environment the scope's sessions run on allows it; anything else is blocked. Web search is separate and works regardless, so Claude can answer from search while being unable to fetch the same page; enabling web search in claude.ai admin settings doesn't open network access for channels. See [Web search vs. network requests](/docs/claude-tag/concepts/agent-identity.md#web-search-vs-network-requests). +A channel session's outbound network access is deny-by-default. A host is reachable when a connector or an [allowed domain](https://claude.com/docs/claude-tag/admins/add-connections.md#allow-a-host-without-a-credential) that applies to the channel allows it, or when the network access setting of the environment the scope's sessions run on allows it; anything else is blocked. Web search is separate and works regardless, so Claude can answer from search while being unable to fetch the same page; enabling web search in claude.ai admin settings doesn't open network access for channels. See [Web search vs. network requests](https://claude.com/docs/claude-tag/concepts/agent-identity.md#web-search-vs-network-requests). **How to resolve** -* For specific hosts, [add each one as a domain](/docs/claude-tag/admins/add-connections.md#add-a-domain) that applies to the channel, for example with **Add > Domain** on the page of a bundle that applies there. A credential-bearing service belongs in a connector instead. +* For specific hosts, [add each one as a domain](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-domain) that applies to the channel, for example with **Add > Domain** on the page of a bundle that applies there. A credential-bearing service belongs in a connector instead. * For broad access, pin an organization-scoped environment whose network access level is Full access in the **Environment** setting on the **Advanced** tab of the channel's, workspace's, or **Slack** page; see [the environment entry below](#channel-sessions-use-the-wrong-environment-or-can%E2%80%99t-find-one). Test in a new thread. If the fix worked, the fetch that failed succeeds there. @@ -643,17 +643,17 @@ Test in a new thread. If the fix worked, the fetch that failed succeeds there. **What you see** -Members report that in channel threads and [routine](/docs/claude-tag/users/proactivity.md) runs, Claude says a permission check blocked an action, and the blocked actions are ones it carried out before, such as calling an external API. +Members report that in channel threads and [routine](https://claude.com/docs/claude-tag/users/proactivity.md) runs, Claude says a permission check blocked an action, and the blocked actions are ones it carried out before, such as calling an external API. **What it means** Channel sessions and routines run in [auto mode](https://code.claude.com/docs/en/permission-modes#eliminate-prompts-with-auto-mode), where Claude's permission checker reviews each action and can stop it. The checker runs on Claude Sonnet 5, even when the sessions and routines themselves run on a different model. -On the Enterprise plan, an admin can turn a model off for the whole organization, and while Claude Sonnet 5 is off, the checker blocks actions it would otherwise allow. Actions that an [auto mode allow rule](/docs/claude-tag/admins/customize.md#auto-mode-allow-rules) names still run. For the setting and the models it affects, see [Models your organization allows](/docs/claude-tag/admins/customize.md#models-your-organization-allows). +On the Enterprise plan, an admin can turn a model off for the whole organization, and while Claude Sonnet 5 is off, the checker blocks actions it would otherwise allow. Actions that an [auto mode allow rule](https://claude.com/docs/claude-tag/admins/customize.md#auto-mode-allow-rules) names still run. For the setting and the models it affects, see [Models your organization allows](https://claude.com/docs/claude-tag/admins/customize.md#models-your-organization-allows). **How to resolve** -An Owner or Admin turns Claude Sonnet 5 back on under **Model access** on the [**Models**](https://claude.ai/admin-settings/models) page. If members use [personal connectors](/docs/claude-tag/concepts/personal-connectors.md#admin-controls-for-personal-connectors) in channels, turn Claude Opus 5 on there too. Sessions and routines keep running on the models you chose for them, and auto mode allow rules you already added can stay. +An Owner or Admin turns Claude Sonnet 5 back on under **Model access** on the [**Models**](https://claude.ai/admin-settings/models) page. If members use [personal connectors](https://claude.com/docs/claude-tag/concepts/personal-connectors.md#admin-controls-for-personal-connectors) in channels, turn Claude Opus 5 on there too. Sessions and routines keep running on the models you chose for them, and auto mode allow rules you already added can stay. A routine picks up the change on its next run. If the fix worked, the next run of a routine that was blocked completes the API calls the checker was blocking. @@ -669,7 +669,7 @@ Access is applied per place. The working channel gets the connector from its own **How to resolve** -Apply the connector to the failing channel. Open the connector's page from the **Connectors** tab under **Claude's access**. Under **Assign access**, pick the credential in the **Access** column of the channel's workspace, or select **Add place** to add the channel, then select **Save changes**. See [Add a connector](/docs/claude-tag/admins/add-connections.md#add-a-connection). If a bundle holds the connector, add the channel to that bundle's **Where it applies** list instead. You can also move the work to a channel the connector already covers. Test in a new thread, or ask Claude to use the service by name in the existing one. If the fix worked, asking `@Claude what can you access from this channel?` in a new thread lists the service. +Apply the connector to the failing channel. Open the connector's page from the **Connectors** tab under **Claude's access**. Under **Assign access**, pick the credential in the **Access** column of the channel's workspace, or select **Add place** to add the channel, then select **Save changes**. See [Add a connector](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection). If a bundle holds the connector, add the channel to that bundle's **Where it applies** list instead. You can also move the work to a channel the connector already covers. Test in a new thread, or ask Claude to use the service by name in the existing one. If the fix worked, asking `@Claude what can you access from this channel?` in a new thread lists the service. ### GitHub doesn't work in this channel @@ -685,11 +685,11 @@ The cause is a repository that isn't granted to the channel, a stale thread, or Go through these checks in order; the same checks, in the same order, apply when GitHub worked in a channel and then stopped. -1. **The repository granted to this channel**: open the channel from the **Channels** tab under **Claude's access** and check that the repository is in its **Claude's access** table, whether added on the channel's page, inherited from its workspace or the **Slack** page, or held by a bundle that applies there. [Grant repository access](/docs/claude-tag/admins/configure-github.md#grant-repository-access) covers granting it, and [Attach the bundle to a scope](/docs/claude-tag/admins/attach-to-scope.md) covers how access inherits. Granting makes the repository available to clone, but the code doesn't enter a session until a request names it. +1. **The repository granted to this channel**: open the channel from the **Channels** tab under **Claude's access** and check that the repository is in its **Claude's access** table, whether added on the channel's page, inherited from its workspace or the **Slack** page, or held by a bundle that applies there. [Grant repository access](https://claude.com/docs/claude-tag/admins/configure-github.md#grant-repository-access) covers granting it, and [Attach the bundle to a scope](https://claude.com/docs/claude-tag/admins/attach-to-scope.md) covers how access inherits. Granting makes the repository available to clone, but the code doesn't enter a session until a request names it. 2. **A fresh thread**: a new thread picks up every configuration change, so test in one before checking anything further. If the repository is granted, asking Claude to read a file from it works in a new thread. -3. **The GitHub App installation covers the repository**: if Claude reports a repository isn't available, isn't configured, or returned a 403, check the installation, since the app's repository selection is upstream of the grant in Claude. At [`claude.ai/admin-settings/source-control`](https://claude.ai/admin-settings/source-control), the organization that owns the repository should show **Connected** in the **GitHub** section. If its row shows a **Needs permissions** status instead, the install is waiting on a GitHub organization owner. Click **Review permissions** to approve it on github.com. If you aren't a GitHub organization owner, click the **Not the GitHub owner? Send instructions** link on that page. In the dialog that opens, click **Copy message** to copy a request you can send to someone who is. If the organization isn't listed at all, install the app with the **Add organization** button beside the **GitHub** heading (it reads **Connect** until a GitHub account is connected); [Link your GitHub organization](/docs/claude-tag/admins/configure-github.md#link-your-github-organization) covers both. +3. **The GitHub App installation covers the repository**: if Claude reports a repository isn't available, isn't configured, or returned a 403, check the installation, since the app's repository selection is upstream of the grant in Claude. At [`claude.ai/admin-settings/source-control`](https://claude.ai/admin-settings/source-control), the organization that owns the repository should show **Connected** in the **GitHub** section. If its row shows a **Needs permissions** status instead, the install is waiting on a GitHub organization owner. Click **Review permissions** to approve it on github.com. If you aren't a GitHub organization owner, click the **Not the GitHub owner? Send instructions** link on that page. In the dialog that opens, click **Copy message** to copy a request you can send to someone who is. If the organization isn't listed at all, install the app with the **Add organization** button beside the **GitHub** heading (it reads **Connect** until a GitHub account is connected); [Link your GitHub organization](https://claude.com/docs/claude-tag/admins/configure-github.md#link-your-github-organization) covers both. -For GitHub Enterprise Server repositories, confirm [the GHE host is registered](/docs/claude-tag/admins/configure-github.md#github-enterprise-server) instead. The github.com App install doesn't cover them. +For GitHub Enterprise Server repositories, confirm [the GHE host is registered](https://claude.com/docs/claude-tag/admins/configure-github.md#github-enterprise-server) instead. The github.com App install doesn't cover them. ### I hit an authentication error and couldn't finish this turn @@ -739,7 +739,7 @@ Claude posts in the thread: **What it means** -The session was created and is still waiting for compute to run it. Why it waits differs between Anthropic-hosted and self-hosted [environments](/docs/claude-tag/admins/customize.md#configure-the-environment-for-a-scope). +The session was created and is still waiting for compute to run it. Why it waits differs between Anthropic-hosted and self-hosted [environments](https://claude.com/docs/claude-tag/admins/customize.md#configure-the-environment-for-a-scope). On an Anthropic-hosted environment, capacity is temporarily busy or the session is taking longer than usual to start, and the session normally starts on its own. If it never starts, Claude posts the [Session failed to start](#session-failed-to-start-the-session-container-never-connected) message instead. @@ -786,7 +786,7 @@ When Claude can name the cause, it posts one of these instead: | "That environment or repo isn't configured for Claude Code. Check claude.ai/code and try again." | The scope's pinned environment isn't set up; see [Channel sessions use the wrong environment](#channel-sessions-use-the-wrong-environment-or-can%E2%80%99t-find-one) | | "Claude is having trouble starting sessions right now. Try again in a minute." | The service that runs sessions is briefly unavailable; retry | | "You don't have permission to start a session here." | A permission check refused to start the session; when Claude knows which check failed, the message names it | -| "Session failed to start: the environment's setup script exited with an error. Fix the setup script in your environment settings, then mention Claude in this thread to retry." | The setup script of the [environment the scope uses](/docs/claude-tag/admins/customize.md#configure-the-environment-for-a-scope) exited with an error; every session in that scope runs the same script at start, so fix the script, then mention Claude in the thread | +| "Session failed to start: the environment's setup script exited with an error. Fix the setup script in your environment settings, then mention Claude in this thread to retry." | The setup script of the [environment the scope uses](https://claude.com/docs/claude-tag/admins/customize.md#configure-the-environment-for-a-scope) exited with an error; every session in that scope runs the same script at start, so fix the script, then mention Claude in the thread | **What it means** @@ -804,14 +804,14 @@ Sessions in a channel start on an environment you didn't expect, or session star **What it means** -Sessions run on the environment or runner pool set on the nearest scope above them, or on the organization's default environment when none is set; [Configure the environment for a scope](/docs/claude-tag/admins/customize.md#configure-the-environment-for-a-scope) covers the picker. The picker only lists environments scoped to the organization; an environment created under an individual account doesn't appear, because channel sessions run with no user account attached. +Sessions run on the environment or runner pool set on the nearest scope above them, or on the organization's default environment when none is set; [Configure the environment for a scope](https://claude.com/docs/claude-tag/admins/customize.md#configure-the-environment-for-a-scope) covers the picker. The picker only lists environments scoped to the organization; an environment created under an individual account doesn't appear, because channel sessions run with no user account attached. **How to resolve** -If the environment you want isn't in the picker, create it as an [organization-shared environment](https://code.claude.com/docs/en/cloud-environments#organization-shared-environments) from the **Cloud environments** page in [admin settings](https://claude.ai/admin-settings), then pin it on the scope. Don't create it at [`claude.ai/code`](https://claude.ai/code): environments you create there belong to your individual account, so they never appear in the picker. If the fix worked, a new thread's session runs on the pinned environment. See the [glossary entry on environments](/docs/claude-tag/concepts/glossary.md#environment). +If the environment you want isn't in the picker, create it as an [organization-shared environment](https://code.claude.com/docs/en/cloud-environments#organization-shared-environments) from the **Cloud environments** page in [admin settings](https://claude.ai/admin-settings), then pin it on the scope. Don't create it at [`claude.ai/code`](https://claude.ai/code): environments you create there belong to your individual account, so they never appear in the picker. If the fix worked, a new thread's session runs on the pinned environment. See the [glossary entry on environments](https://claude.com/docs/claude-tag/concepts/glossary.md#environment). ## Related resources -* [Setup overview](/docs/claude-tag/admins/setup-overview): re-walk the setup steps if the failure points to one you skipped -* [User troubleshooting](/docs/claude-tag/users/troubleshooting.md): for problems people hit in channels +* [Setup overview](https://claude.com/docs/claude-tag/admins/setup-overview): re-walk the setup steps if the failure points to one you skipped +* [User troubleshooting](https://claude.com/docs/claude-tag/users/troubleshooting.md): for problems people hit in channels * [Give feedback](https://support.claude.com): when it's a bug, not a configuration issue diff --git a/content/claude/claude-tag/admins/workspaces.md b/content/claude/claude-tag/admins/workspaces.md index b44daece0..cdc85832d 100644 --- a/content/claude/claude-tag/admins/workspaces.md +++ b/content/claude/claude-tag/admins/workspaces.md @@ -12,7 +12,7 @@ This page covers managing Slack workspace pairings after initial setup: adding more workspaces, installing the app and pairing across a Slack Enterprise Grid, choosing which Claude Tag version each one runs, turning Claude on or off on the Team plan, and disconnecting a workspace. -A workspace pairing links one Slack workspace (or Enterprise Grid) to your Claude organization so `@Claude` can run there. Your first pairing was created during [setup](/docs/claude-tag/admins/setup-overview). To add more, you must be an Owner in your Claude organization, and a Workspace Admin (or Grid Org Admin) in the Slack workspace you're adding. +A workspace pairing links one Slack workspace (or Enterprise Grid) to your Claude organization so `@Claude` can run there. Your first pairing was created during [setup](https://claude.com/docs/claude-tag/admins/setup-overview). To add more, you must be an Owner in your Claude organization, and a Workspace Admin (or Grid Org Admin) in the Slack workspace you're adding. ## Pair another workspace @@ -20,7 +20,7 @@ You can connect multiple Slack workspaces to one Claude organization. A Slack workspace or Enterprise Grid pairs with one Claude organization at a time. -To move a pairing to a different Claude organization, an Owner in the organization that currently holds it must [disconnect it](#revoke-a-pairing) first. Until then, Claude Tag refuses the new pairing as [already connected to a different organization](/docs/claude-tag/admins/troubleshooting.md#already-connected-to-a-different-organization). Once the pairing moves, changes the previous organization's admins make in their settings no longer reach that workspace. +To move a pairing to a different Claude organization, an Owner in the organization that currently holds it must [disconnect it](#revoke-a-pairing) first. Until then, Claude Tag refuses the new pairing as [already connected to a different organization](https://claude.com/docs/claude-tag/admins/troubleshooting.md#already-connected-to-a-different-organization). Once the pairing moves, changes the previous organization's admins make in their settings no longer reach that workspace. If your company has more than one Claude organization (a subsidiary with its own, for example), agree on which one holds the pairing before connecting. @@ -32,7 +32,7 @@ Go to [**Claude's access > Channels > Slack**](https://claude.ai/admin-settings/ In any channel of the new workspace, send `@Claude connect` with no other text, as a new top-level message or in a thread where Claude isn't already working, then paste the code Claude sends you into the dialog. -Pick a channel that belongs to just the new workspace. Claude can decline to reply in [guest and shared channels](/docs/claude-tag/admins/troubleshooting.md#guest-and-shared-channels). +Pick a channel that belongs to just the new workspace. Claude can decline to reply in [guest and shared channels](https://claude.com/docs/claude-tag/admins/troubleshooting.md#guest-and-shared-channels). **3. Finish the dialog and launch** @@ -58,7 +58,7 @@ As a Slack Org Owner or Org Admin, sign in to one of the Grid's workspaces rathe On the [Claude for Slack](https://claude.com/claude-for-slack) listing, select **Add to Slack > Install to entire organization**. -If some workspaces in the Grid already installed the app on their own, leave those installations in place and choose **Install to entire organization** anyway. Don't uninstall first, because uninstalling the app from a workspace [deletes that workspace's Claude data](/docs/claude-tag/concepts/data-lifecycle.md#actions-in-slack). +If some workspaces in the Grid already installed the app on their own, leave those installations in place and choose **Install to entire organization** anyway. Don't uninstall first, because uninstalling the app from a workspace [deletes that workspace's Claude data](https://claude.com/docs/claude-tag/concepts/data-lifecycle.md#actions-in-slack). **3. Add the app to each workspace** @@ -70,7 +70,7 @@ To get the Grid's pairing codes, a Slack Org Owner or Org Admin sends `@Claude c Paste the `enterprise_` code in one of these places: -* **During setup:** paste the code into the **Paste the pairing code** field on the [setup page](/docs/claude-tag/admins/setup-overview#pair-your-slack-workspace) +* **During setup:** paste the code into the **Paste the pairing code** field on the [setup page](https://claude.com/docs/claude-tag/admins/setup-overview#pair-your-slack-workspace) * **After setup:** click **Connect new** under **Connected workspaces** on the **Slack** page, as in [Pair another workspace](#pair-another-workspace), and paste the code into the dialog. If a workspace you've already paired belongs to a Grid you haven't paired, the list also has an **Enterprise Grid** row with the status **Not connected**, and **Connect** on that row opens the same dialog. > [!NOTE] @@ -94,18 +94,18 @@ The **Claude Tag version** setting is on the page's **Advanced** tab and is unav | Label | Effect | | :- | :- | | **New** | Claude Tag. Bundles, skills, and custom instructions apply | -| **Legacy** | The earlier per-user Claude in Slack. In channels it replies only with a retirement notice, and you can't switch a scope to it; see [Migrate from the earlier app](/docs/claude-tag/admins/migrate-from-earlier.md) | +| **Legacy** | The earlier per-user Claude in Slack. In channels it replies only with a retirement notice, and you can't switch a scope to it; see [Migrate from the earlier app](https://claude.com/docs/claude-tag/admins/migrate-from-earlier.md) | | **Inherit** | Use the parent's value. Not shown on the **Slack** page | Turning off **Respond in all channels** doesn't stop Claude in a workspace or channel whose own enable switch is on. On the Enterprise plan, launching setup for a single workspace turns on that workspace's enable switch, so Claude keeps responding in that workspace. The switch is at the top of the **General** tab on the **Slack** page, which sets the default for every workspace and channel. Direct messages from members who have connected a Claude account are unaffected. Both versions answer through the same @Claude app, so turning off a workspace's or channel's enable switch silences the Legacy version there too. -Switching a workspace or channel between **New** and **Inherit** is reversible; see [Migrate from the earlier app](/docs/claude-tag/admins/migrate-from-earlier.md). +Switching a workspace or channel between **New** and **Inherit** is reversible; see [Migrate from the earlier app](https://claude.com/docs/claude-tag/admins/migrate-from-earlier.md). ### What each Claude Tag switch turns off -Each of these switches turns Claude off in a different part of Slack. To stop only direct messages, see [Allow or disable direct messages](/docs/claude-tag/admins/restrict-access.md#allow-or-disable-direct-messages). +Each of these switches turns Claude off in a different part of Slack. To stop only direct messages, see [Allow or disable direct messages](https://claude.com/docs/claude-tag/admins/restrict-access.md#allow-or-disable-direct-messages). | Switch | Where it is | When it's off | | :- | :- | :- | @@ -130,11 +130,11 @@ For those controls, see [Turn Claude Tag on or off and set the version for a sco ### Turn Claude off in channels -Turn off **Respond in channels** on the **Slack** page. An @-mention in any channel gets "Claude is disabled in this channel" while the switch is off. One-to-one direct messages from members who have connected a Claude account keep working. To stop those too, go to [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), click **Edit** on the **Direct messages** row, and turn off [**Allow direct messages**](/docs/claude-tag/admins/restrict-access.md#allow-or-disable-direct-messages). For members who haven't connected an account, see [Stop direct messages from members without a Claude account](/docs/claude-tag/admins/restrict-access.md#stop-direct-messages-from-members-without-a-claude-account). +Turn off **Respond in channels** on the **Slack** page. An @-mention in any channel gets "Claude is disabled in this channel" while the switch is off. One-to-one direct messages from members who have connected a Claude account keep working. To stop those too, go to [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), click **Edit** on the **Direct messages** row, and turn off [**Allow direct messages**](https://claude.com/docs/claude-tag/admins/restrict-access.md#allow-or-disable-direct-messages). For members who haven't connected an account, see [Stop direct messages from members without a Claude account](https://claude.com/docs/claude-tag/admins/restrict-access.md#stop-direct-messages-from-members-without-a-claude-account). ### Turn Claude back on -Turn on **Respond in channels** on the **Slack** page. Everything you set on the **Slack** page and on each workspace's and channel's page, such as [bundles](/docs/claude-tag/admins/attach-to-scope.md) and [custom instructions](/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions), applies again. A workspace that was turned off on its own stays off, along with its channels. +Turn on **Respond in channels** on the **Slack** page. Everything you set on the **Slack** page and on each workspace's and channel's page, such as [bundles](https://claude.com/docs/claude-tag/admins/attach-to-scope.md) and [custom instructions](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions), applies again. A workspace that was turned off on its own stays off, along with its channels. ### Turn Claude off for the whole organization @@ -142,7 +142,7 @@ Go to [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/c ### Keep Claude out of specific channels -The switch has no per-channel setting. Add [blocked channel patterns](/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name) for the channels instead. +The switch has no per-channel setting. Add [blocked channel patterns](https://claude.com/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name) for the channels instead. ### Notices that settings aren't applied @@ -176,10 +176,10 @@ Bundles belong to your organization, not to a workspace, so they stay available After you disconnect, the workspace leaves the **Connected workspaces** list. If it was your only connected workspace, the top of Claude Tag admin settings shows that it was disconnected from Slack, with a **Reconnect** button. **Reconnect** reopens the pairing dialog, where you redeem a fresh code from `@Claude connect`. -The Slack app stays installed, so a workspace admin can pair the workspace again by sending `@Claude connect` in it, to the same Claude organization or a different one. If you intend the data to be deleted, wait a few minutes before pairing the workspace to the same organization again, because a new pairing that arrives while the deletion is still starting can cancel it. Once the deletion has run, the new pairing starts without the deleted data. Uninstalling the app from the workspace in Slack deletes the same data, whether or not you disconnected first; see [Quiet or remove Claude Tag](/docs/claude-tag/admins/restrict-access.md#quiet-or-remove-claude-tag). +The Slack app stays installed, so a workspace admin can pair the workspace again by sending `@Claude connect` in it, to the same Claude organization or a different one. If you intend the data to be deleted, wait a few minutes before pairing the workspace to the same organization again, because a new pairing that arrives while the deletion is still starting can cancel it. Once the deletion has run, the new pairing starts without the deleted data. Uninstalling the app from the workspace in Slack deletes the same data, whether or not you disconnected first; see [Quiet or remove Claude Tag](https://claude.com/docs/claude-tag/admins/restrict-access.md#quiet-or-remove-claude-tag). ## Related resources -* [Data lifecycle and deletion](/docs/claude-tag/concepts/data-lifecycle.md): what disconnecting deletes, what it keeps, and what other actions do to Claude-side data -* [Migrate from the earlier app](/docs/claude-tag/admins/migrate-from-earlier.md): the upgrade path and what changes for existing users -* [Pair your Slack workspace](/docs/claude-tag/admins/setup-overview#pair-your-slack-workspace): the first pairing, with the Slack-admin handoff +* [Data lifecycle and deletion](https://claude.com/docs/claude-tag/concepts/data-lifecycle.md): what disconnecting deletes, what it keeps, and what other actions do to Claude-side data +* [Migrate from the earlier app](https://claude.com/docs/claude-tag/admins/migrate-from-earlier.md): the upgrade path and what changes for existing users +* [Pair your Slack workspace](https://claude.com/docs/claude-tag/admins/setup-overview#pair-your-slack-workspace): the first pairing, with the Slack-admin handoff diff --git a/content/claude/claude-tag/concepts/agent-identity.md b/content/claude/claude-tag/concepts/agent-identity.md index 7296cc3f0..9789f1cf8 100644 --- a/content/claude/claude-tag/concepts/agent-identity.md +++ b/content/claude/claude-tag/concepts/agent-identity.md @@ -12,13 +12,13 @@ Claude Tag's identity depends on where you message it. -In Slack channels, and in [group DMs](#group-dms) that include Claude, Claude acts with its own service accounts, rather than as a specific user. An organization Owner [provisions this identity](/docs/claude-tag/admins/setup-overview#give-claude-access-to-your-tools), so Claude has its own account in each system it works in: the Claude app in Slack, the Claude GitHub App on GitHub, and a service account in every other connected tool. Actions it takes are attributed to those accounts; for example, posts come from the Claude app and pull requests show the Claude GitHub App as the author. Claude can also use your own claude.ai connectors for a task you hand it in a channel, after you allow it. See [Personal connectors in a channel](#personal-connectors-in-a-channel). +In Slack channels, and in [group DMs](#group-dms) that include Claude, Claude acts with its own service accounts, rather than as a specific user. An organization Owner [provisions this identity](https://claude.com/docs/claude-tag/admins/setup-overview#give-claude-access-to-your-tools), so Claude has its own account in each system it works in: the Claude app in Slack, the Claude GitHub App on GitHub, and a service account in every other connected tool. Actions it takes are attributed to those accounts; for example, posts come from the Claude app and pull requests show the Claude GitHub App as the author. Claude can also use your own claude.ai connectors for a task you hand it in a channel, after you allow it. See [Personal connectors in a channel](#personal-connectors-in-a-channel). -In one-to-one direct messages (DMs) between `@Claude` and a user who has connected a Claude account, the session runs on [the individual's own claude.ai account](#direct-message-channels), with their personal connectors. A pull request opened from a DM is authored by the Claude GitHub App, the same as in channels, though the session can only work with repositories connected on that user's own account. An Owner can turn off DMs for the whole organization; see [Allow or disable direct messages](/docs/claude-tag/admins/restrict-access.md#allow-or-disable-direct-messages). For DMs from users who haven't connected a Claude account, see [Direct messages from members without a Claude account](/docs/claude-tag/admins/restrict-access.md#direct-messages-from-members-without-a-claude-account). +In one-to-one direct messages (DMs) between `@Claude` and a user who has connected a Claude account, the session runs on [the individual's own claude.ai account](#direct-message-channels), with their personal connectors. A pull request opened from a DM is authored by the Claude GitHub App, the same as in channels, though the session can only work with repositories connected on that user's own account. An Owner can turn off DMs for the whole organization; see [Allow or disable direct messages](https://claude.com/docs/claude-tag/admins/restrict-access.md#allow-or-disable-direct-messages). For DMs from users who haven't connected a Claude account, see [Direct messages from members without a Claude account](https://claude.com/docs/claude-tag/admins/restrict-access.md#direct-messages-from-members-without-a-claude-account). > [!NOTE] > -> How Claude behaves in channels (its standing instructions, plugins, and channel memory) is configured separately from its identity; see [custom instructions](/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions), [plugins](/docs/claude-tag/admins/add-connections.md#attach-plugins), and [memory](/docs/claude-tag/users/memory.md) for more information. +> How Claude behaves in channels (its standing instructions, plugins, and channel memory) is configured separately from its identity; see [custom instructions](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions), [plugins](https://claude.com/docs/claude-tag/admins/add-connections.md#attach-plugins), and [memory](https://claude.com/docs/claude-tag/users/memory.md) for more information. ## Channel sessions @@ -26,7 +26,7 @@ When Claude works on a channel task, the request moves through three places: * The ask happens in your Slack workspace, when a user tags Claude to do something or a scheduled task starts. * The work Claude does runs in a sandbox, an isolated working environment built for the thread. -* The agent's credentials for any additional Claude Tag connectors, such as GitHub or a data warehouse, reach those systems to pull the required information. An organization Owner sets up those credentials as part of [provisioning the identity](/docs/claude-tag/admins/setup-overview#create-accounts-for-claude%E2%80%99s-other-tools). +* The agent's credentials for any additional Claude Tag connectors, such as GitHub or a data warehouse, reach those systems to pull the required information. An organization Owner sets up those credentials as part of [provisioning the identity](https://claude.com/docs/claude-tag/admins/setup-overview#create-accounts-for-claude%E2%80%99s-other-tools). The diagram below traces one request through this process. @@ -46,7 +46,7 @@ When the work needs something outside the sandbox, like calling the GitHub API o **4. Agent Proxy attaches a credential** -A matching credential comes from the credential store, which keeps the credentials of the [connectors](/docs/claude-tag/admins/add-connections.md) an admin added. Once saved, a credential is never displayed again; Agent Proxy retrieves it only at the moment of injection and attaches it to the request at the boundary, so the model and the sandbox itself are not given the key. +A matching credential comes from the credential store, which keeps the credentials of the [connectors](https://claude.com/docs/claude-tag/admins/add-connections.md) an admin added. Once saved, a credential is never displayed again; Agent Proxy retrieves it only at the moment of injection and attaches it to the request at the boundary, so the model and the sandbox itself are not given the key. **5. The result posts back, as Claude** @@ -58,9 +58,9 @@ For each outbound request from the sandbox, Agent Proxy checks the destination a | When the destination | Result | | :- | :- | -| Matches a credential's rule, its [allowed websites](/docs/claude-tag/admins/add-connections.md#set-allowed-websites) | The proxy attaches that credential and forwards the request. The credential stays at the proxy; the model and sandbox are not given it. | -| Is an [allowed domain](/docs/claude-tag/admins/add-connections.md#allow-a-host-without-a-credential) that applies to the channel, but matches no credential | The proxy forwards the request without a credential. | -| Is allowed by the network access setting of the [environment](/docs/claude-tag/concepts/glossary.md#environment) the [scope](/docs/claude-tag/concepts/glossary.md#scope)'s sessions run on | The proxy forwards the request without a credential. | +| Matches a credential's rule, its [allowed websites](https://claude.com/docs/claude-tag/admins/add-connections.md#set-allowed-websites) | The proxy attaches that credential and forwards the request. The credential stays at the proxy; the model and sandbox are not given it. | +| Is an [allowed domain](https://claude.com/docs/claude-tag/admins/add-connections.md#allow-a-host-without-a-credential) that applies to the channel, but matches no credential | The proxy forwards the request without a credential. | +| Is allowed by the network access setting of the [environment](https://claude.com/docs/claude-tag/concepts/glossary.md#environment) the [scope](https://claude.com/docs/claude-tag/concepts/glossary.md#scope)'s sessions run on | The proxy forwards the request without a credential. | | Matches none of these | The proxy blocks the request. | A new environment's network access level defaults to Trusted access, so a fresh setup can reach a documented set of package registries and developer hosts before an admin has configured anything. The [cloud environments documentation](https://code.claude.com/docs/en/cloud-environments#default-allowed-domains) lists the covered hosts. To narrow that default, pin an environment with a stricter level, such as No access. @@ -69,11 +69,11 @@ The same rules apply to code Claude runs in the sandbox, like `curl` or a `fetch Agent Proxy carries HTTP and HTTPS only. A protocol that isn't HTTP, such as SSH or a database's native wire protocol, can't cross the proxy even to an allowed host. -For the endpoints and addresses your network team may need to allowlist, see [Network requirements](/docs/claude-tag/admins/network-requirements.md). +For the endpoints and addresses your network team may need to allowlist, see [Network requirements](https://claude.com/docs/claude-tag/admins/network-requirements.md). ### How a host gets allowed -A host that none of the three layers above allows is blocked, and Claude names the blocked host in the thread so an admin can add it; see [Give Claude access to your tools](/docs/claude-tag/admins/add-connections.md). +A host that none of the three layers above allows is blocked, and Claude names the blocked host in the thread so an admin can add it; see [Give Claude access to your tools](https://claude.com/docs/claude-tag/admins/add-connections.md). ### Web search vs. network requests @@ -83,11 +83,11 @@ The sandbox sends nothing new for a search. Search requests travel to Anthropic Searching and opening a page are different actions. A search returns content from the pages it matches, which Claude reads and cites, so it can answer from a page that search surfaced. Opening a URL, whether one you pasted or one a search returned, is a fetch from the sandbox, and the host needs an allow layer. That is why Claude can quote a page it found through search and still report that it can't open the same link. -The web search capability setting in your organization's claude.ai admin settings governs claude.ai chat; it doesn't govern Claude Tag sessions, in channels or DMs. If Claude reports that it can't reach a host from a channel, the fix is a [domain entry](/docs/claude-tag/admins/add-connections.md#add-a-domain) or the scope's [environment](/docs/claude-tag/concepts/glossary.md#environment), not that setting. +The web search capability setting in your organization's claude.ai admin settings governs claude.ai chat; it doesn't govern Claude Tag sessions, in channels or DMs. If Claude reports that it can't reach a host from a channel, the fix is a [domain entry](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-domain) or the scope's [environment](https://claude.com/docs/claude-tag/concepts/glossary.md#environment), not that setting. ### Agent access -What Claude can reach in a channel comes from the [connectors, repositories, and plugins](/docs/claude-tag/admins/add-connections.md) an admin applies to that channel, to its workspace, or to all of Slack, either directly or through a bundle. Anyone in the channel gets the same capability, and the same request can do more in `#platform-eng` than in a general channel. +What Claude can reach in a channel comes from the [connectors, repositories, and plugins](https://claude.com/docs/claude-tag/admins/add-connections.md) an admin applies to that channel, to its workspace, or to all of Slack, either directly or through a bundle. Anyone in the channel gets the same capability, and the same request can do more in `#platform-eng` than in a general channel. This design has four consequences. @@ -100,9 +100,9 @@ That service-account identity is also how Claude appears wherever it acts. In Sl ### Personal connectors in a channel -A channel session works with the access an admin applied to the channel, so the [connectors on your own claude.ai account](/docs/connectors/getting-started.md) are not part of it. When a task you hand Claude needs something only your connectors can reach, Claude can use your connector for that part of the work, and it asks you before it starts. The work runs with your permissions and is recorded under your name. Requests other people make to Claude in the task's thread run with the channel's own access, not with your connectors. Claude is designed to take direction from you, treating what other people post in the thread as information for the task rather than as instructions. +A channel session works with the access an admin applied to the channel, so the [connectors on your own claude.ai account](https://claude.com/docs/connectors/getting-started.md) are not part of it. When a task you hand Claude needs something only your connectors can reach, Claude can use your connector for that part of the work, and it asks you before it starts. The work runs with your permissions and is recorded under your name. Requests other people make to Claude in the task's thread run with the channel's own access, not with your connectors. Claude is designed to take direction from you, treating what other people post in the thread as information for the task rather than as instructions. -[Personal connectors in channels](/docs/claude-tag/concepts/personal-connectors.md) covers how you approve connector use, when Claude holds a result for your review before posting, what other people in the channel see, and how to stop a task. +[Personal connectors in channels](https://claude.com/docs/claude-tag/concepts/personal-connectors.md) covers how you approve connector use, when Claude holds a result for your review before posting, what other people in the channel see, and how to stop a task. ## Direct message channels @@ -121,7 +121,7 @@ The table lines up the two paths on the four dimensions that differ. Two of those differences are worth spelling out. -* **Connectors.** The [connectors on your account](/docs/connectors/getting-started.md) are available, including MCP servers you've added. +* **Connectors.** The [connectors on your account](https://claude.com/docs/connectors/getting-started.md) are available, including MCP servers you've added. * **Billing.** Usage bills to your seat rather than the organization's service key. DM work runs under your credentials, so most of it is attributed to you and can reach only what your own accounts can. Pull requests are the exception: Claude authors them as the Claude GitHub App from DMs too, so a repository's history shows the same author either way, while the repositories it can reach are still only the ones connected on your own account. @@ -145,10 +145,10 @@ If `@Claude` in your workspace opens pull requests as you, you're seeing Claude In a group DM that includes Claude, Claude acts with its own service accounts, using the connections an admin set for the workspace and the organization. The work bills to the organization. Claude can also use the connectors on your claude.ai account for a task you ask for, after you allow it, as described in [Personal connectors in a channel](#personal-connectors-in-a-channel). -[Use Claude Tag in a group DM](/docs/claude-tag/users/group-dms.md) covers how to add Claude and what differs from a channel. If you're an admin, [Group DMs](/docs/claude-tag/admins/restrict-access.md#group-dms) covers how who is in a group DM can change whether Claude answers, and the settings that stop Claude from answering there. +[Use Claude Tag in a group DM](https://claude.com/docs/claude-tag/users/group-dms.md) covers how to add Claude and what differs from a channel. If you're an admin, [Group DMs](https://claude.com/docs/claude-tag/admins/restrict-access.md#group-dms) covers how who is in a group DM can change whether Claude answers, and the settings that stop Claude from answering there. ## Related resources -* [Security and data handling](/docs/claude-tag/concepts/security-and-data.md): where credentials are stored, what leaves your tenant, and what runs unattended -* [Give Claude access](/docs/claude-tag/admins/add-connections.md): provision the access this page describes -* [Restrict where Claude Tag operates](/docs/claude-tag/admins/restrict-access.md): narrow where this agent identity is allowed to act +* [Security and data handling](https://claude.com/docs/claude-tag/concepts/security-and-data.md): where credentials are stored, what leaves your tenant, and what runs unattended +* [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md): provision the access this page describes +* [Restrict where Claude Tag operates](https://claude.com/docs/claude-tag/admins/restrict-access.md): narrow where this agent identity is allowed to act diff --git a/content/claude/claude-tag/concepts/data-lifecycle.md b/content/claude/claude-tag/concepts/data-lifecycle.md index a4be34ec4..97e67bec7 100644 --- a/content/claude/claude-tag/concepts/data-lifecycle.md +++ b/content/claude/claude-tag/concepts/data-lifecycle.md @@ -19,12 +19,12 @@ There are two copies of the work Claude does in Slack. The messages, canvases, f | What | What it contains | | :- | :- | | Session transcripts | The record of one thread's, channel's, or direct message's work. A transcript holds the messages Claude was shown in the conversation and who sent them, files attached there, earlier versions of messages that were later edited, what Claude retrieved while working (Slack search results, messages it read in channels it's in, and data from connected tools), and everything Claude said and did | -| Memory | The notes Claude saves for each channel, the workspace notes it saves from public channels, and separate notes for each direct-message conversation. See [What Claude Tag remembers](/docs/claude-tag/users/memory.md) | +| Memory | The notes Claude saves for each channel, the workspace notes it saves from public channels, and separate notes for each direct-message conversation. See [What Claude Tag remembers](https://claude.com/docs/claude-tag/users/memory.md) | | Routines | The scheduled and run-once tasks set up in channels or in direct messages, with their instructions and run history | -| Scopes and their settings | Each workspace and channel [scope](/docs/claude-tag/concepts/glossary.md#scope), with its custom instructions, version setting, and the bundles and access applied there | -| Bundles and connectors | The [bundles](/docs/claude-tag/concepts/glossary.md#bundle), connectors, and credentials set up for Claude Tag. They belong to your organization, not to a workspace | +| Scopes and their settings | Each workspace and channel [scope](https://claude.com/docs/claude-tag/concepts/glossary.md#scope), with its custom instructions, version setting, and the bundles and access applied there | +| Bundles and connectors | The [bundles](https://claude.com/docs/claude-tag/concepts/glossary.md#bundle), connectors, and credentials set up for Claude Tag. They belong to your organization, not to a workspace | | Account links | The link between each member's Slack account and their Claude account, and the tokens that link uses | -| Published artifacts | Pages a session published to claude.ai. See [Artifact visibility](/docs/claude-tag/concepts/security-and-data.md#artifact-visibility) | +| Published artifacts | Pages a session published to claude.ai. See [Artifact visibility](https://claude.com/docs/claude-tag/concepts/security-and-data.md#artifact-visibility) | | The app's installation credential | The token the Claude app uses to read and post in your Slack workspace | Deleting or editing a message or file in Slack doesn't remove it from a transcript that already includes it. Messages from other people in the conversation, including guests, become part of the transcript the same way and are held as your organization's data. @@ -33,9 +33,9 @@ Deleting or editing a message or file in Slack doesn't remove it from a transcri During the beta there is no automatic retention period for Claude Tag data. Session transcripts, memory, routines, scopes, and account links are kept until one of the actions on this page deletes them. Your organization's custom data retention setting doesn't apply to Claude Tag transcripts or memory. It does apply to artifacts a session published, which follow the same retention rules as your organization's other shared artifacts. -Sessions Claude stops using are archived, not deleted. That includes a thread's session after someone sends [`@Claude !restart`](/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session), a session that closed because the thread's first message was deleted, and the channel-level sessions Claude replaces after about an hour of quiet or about a day of age. An archived session keeps its full transcript until the channel's or workspace's data is deleted. +Sessions Claude stops using are archived, not deleted. That includes a thread's session after someone sends [`@Claude !restart`](https://claude.com/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session), a session that closed because the thread's first message was deleted, and the channel-level sessions Claude replaces after about an hour of quiet or about a day of age. An archived session keeps its full transcript until the channel's or workspace's data is deleted. -Letting a plan lapse, turning Claude Tag off, or no longer using it doesn't delete anything on its own. To delete a workspace's data when you stop using Claude Tag, [disconnect the workspace](/docs/claude-tag/admins/workspaces.md#revoke-a-pairing) or uninstall the app. +Letting a plan lapse, turning Claude Tag off, or no longer using it doesn't delete anything on its own. To delete a workspace's data when you stop using Claude Tag, [disconnect the workspace](https://claude.com/docs/claude-tag/admins/workspaces.md#revoke-a-pairing) or uninstall the app. When an action below deletes data, deletion starts right away and completes in the background. Copies can remain in routine backups for a limited period after that before they age out. @@ -51,7 +51,7 @@ The first table covers actions taken in Slack, and the second covers actions tak | On Enterprise Grid, a Grid admin removes an org-wide installation of the app, from the whole grid or from one of its workspaces | Nothing is deleted. To delete the data, an Owner disconnects the grid, or a workspace that has its own pairing, in your Claude admin settings | No | | A channel is deleted in Slack | Deleted: that channel's sessions and transcripts, including earlier sessions Claude had archived there, its channel memory, and its scope with the routines and artifacts that belong to it. Workspace notes Claude saved from a public channel aren't tied to the channel and stay until you delete them or disconnect the workspace, as does anything created under the workspace scope rather than the channel's own | Not applicable | | A channel is archived in Slack | Nothing is deleted. Unarchiving the channel picks its memory, routines, and sessions back up | Not while the channel is archived | -| A public channel is made private | Nothing is deleted. Claude archives the channel's earlier sessions. The channel's notes stay with the channel, and workspace notes Claude saved from it while it was public stay shared; see [Channel and workspace memory](/docs/claude-tag/users/memory.md#channel-and-workspace-memory) | Yes | +| A public channel is made private | Nothing is deleted. Claude archives the channel's earlier sessions. The channel's notes stay with the channel, and workspace notes Claude saved from it while it was public stay shared; see [Channel and workspace memory](https://claude.com/docs/claude-tag/users/memory.md#channel-and-workspace-memory) | Yes | | Someone removes Claude from a channel with `/remove @Claude` | Nothing is deleted. The channel's memory, routines, and past sessions stay on record, and re-adding Claude picks them back up. The channel's routines keep firing while Claude is out of the channel but can't post there | No | | Someone edits a message Claude read | Claude receives the edit as a note, and the transcript keeps both the earlier and the edited text | Yes | | Someone deletes a reply in a thread | Nothing is removed from the transcript, and Claude isn't notified | Yes | @@ -63,18 +63,18 @@ The first table covers actions taken in Slack, and the second covers actions tak | Action | Claude-side data | Does Claude keep responding? | | :- | :- | :- | -| An Owner [disconnects a workspace](/docs/claude-tag/admins/workspaces.md#revoke-a-pairing) | Deleted: the workspace's sessions and transcripts, including members' direct-message conversations there; its channel, workspace, and direct-message memory; the routines set up in its channels and the artifacts published from them; its scopes with their instructions and bundle bindings; and members' account links. The Slack app and its installation credential stay so a workspace admin can pair again, and bundles, routines members set up in one-to-one direct messages, and what Claude posted in Slack stay too. Pairing the same workspace to the same organization again within a few minutes can cancel the deletion | Stops in channels immediately. One-to-one direct messages keep working on each member's own Claude account until the deletion removes that member's account link | +| An Owner [disconnects a workspace](https://claude.com/docs/claude-tag/admins/workspaces.md#revoke-a-pairing) | Deleted: the workspace's sessions and transcripts, including members' direct-message conversations there; its channel, workspace, and direct-message memory; the routines set up in its channels and the artifacts published from them; its scopes with their instructions and bundle bindings; and members' account links. The Slack app and its installation credential stay so a workspace admin can pair again, and bundles, routines members set up in one-to-one direct messages, and what Claude posted in Slack stay too. Pairing the same workspace to the same organization again within a few minutes can cancel the deletion | Stops in channels immediately. One-to-one direct messages keep working on each member's own Claude account until the deletion removes that member's account link | | An Owner disconnects an Enterprise Grid | The same as disconnecting a workspace, for every workspace in the grid that doesn't have its own workspace pairing, plus the app's installation credentials for those workspaces. Workspaces you paired individually stay connected and keep their data until you disconnect them | Stops in the affected workspaces | | An Owner removes a channel's scope with **Remove this scope** in the **⋯** menu of the channel's page | Deleted: the channel's sessions and transcripts recorded up to that moment, including threads still in progress, its memory, its routines, and the artifacts published from it. The Slack channel itself is unchanged | Yes, where the channel's workspace has its own setting on, or has no setting of its own and the **Slack** page's setting is on. Claude stays in the channel and, when tagged again, starts fresh under the access it inherits from the workspace. To stop it as well, first run `/remove @Claude` | -| An Owner or a Claude Tag admin turns off a workspace's **Enable Claude Tag in this workspace** switch, a channel's **Enable Claude Tag in this channel** switch, or **Respond in all channels** (or **Respond in channels**) on the **Slack** page, or an Owner turns off **Enable Claude Tag in Slack** for the organization or [direct messages](/docs/claude-tag/admins/restrict-access.md#allow-or-disable-direct-messages) | Nothing is deleted. Turning the setting back on resumes with the existing memory, routines, and sessions | No, where the setting is off | -| An Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) removes a place from a bundle's **Where it applies** list, or deletes a bundle | Removing a place removes the binding, and deleting a bundle deletes its credentials everywhere it applied. Memory, routines, and transcripts are unaffected | Yes, without that access | +| An Owner or a Claude Tag admin turns off a workspace's **Enable Claude Tag in this workspace** switch, a channel's **Enable Claude Tag in this channel** switch, or **Respond in all channels** (or **Respond in channels**) on the **Slack** page, or an Owner turns off **Enable Claude Tag in Slack** for the organization or [direct messages](https://claude.com/docs/claude-tag/admins/restrict-access.md#allow-or-disable-direct-messages) | Nothing is deleted. Turning the setting back on resumes with the existing memory, routines, and sessions | No, where the setting is off | +| An Owner or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) removes a place from a bundle's **Where it applies** list, or deletes a bundle | Removing a place removes the binding, and deleting a bundle deletes its credentials everywhere it applied. Memory, routines, and transcripts are unaffected | Yes, without that access | | An Owner deletes entries from a scope's memory files, or someone in the channel tells Claude to forget an entry | The entry is removed from what Claude reads and from the memory files view. Earlier versions of the scope's memory remain stored with the scope until the scope's data is deleted | Yes | -| An Owner deletes a channel's routine from the [**Scheduled work** tab](/docs/claude-tag/admins/audit.md#what-the-activity-page-lists), or someone asks Claude to delete a routine in the channel or direct message where it was set up | The routine and the sessions it ran are deleted. Pausing a routine there, or disabling it from the channel, keeps it on record | Yes | +| An Owner deletes a channel's routine from the [**Scheduled work** tab](https://claude.com/docs/claude-tag/admins/audit.md#what-the-activity-page-lists), or someone asks Claude to delete a routine in the channel or direct message where it was set up | The routine and the sessions it ran are deleted. Pausing a routine there, or disabling it from the channel, keeps it on record | Yes | | A member selects **Disconnect** in the Claude app's **Home** tab in Slack | Removes the link between their Slack and Claude accounts and revokes the tokens Claude Tag held for them. Their earlier direct-message conversations and notes, and channel work they started, aren't deleted; those go with the workspace | In channels, yes. One-to-one direct messages and personal connectors stop working for that member until they reconnect | | A member is removed from your Claude organization | Nothing is deleted. They lose access within minutes, and routines they set up in one-to-one direct messages are turned off. Their account link, direct-message conversations, and notes stay until the workspace is disconnected | Not to that member | | A member deletes their own Claude account | On Team and Enterprise plans, deleting an individual account doesn't remove the Claude Tag data your organization holds about that member, including their direct-message conversations and notes and their account link. A member who wants the link and its tokens removed can select **Disconnect** in Slack before deleting their account | Not to that member | | Your Claude organization is deleted | All Claude Tag data for every paired workspace is deleted as part of the organization deletion. The Slack app isn't uninstalled by this, and its installation credential remains until the app is uninstalled, so uninstall it from each workspace in Slack as well | No | -| Your organization adopts Zero Data Retention or another restricted compliance configuration after pairing | Nothing already stored is deleted. Disconnect each workspace to delete its data | No. Claude stops responding in Slack and new pairings are refused; see [Restricted compliance settings block Claude Tag](/docs/claude-tag/admins/troubleshooting.md#restricted-compliance-settings-block-claude-tag) | +| Your organization adopts Zero Data Retention or another restricted compliance configuration after pairing | Nothing already stored is deleted. Disconnect each workspace to delete its data | No. Claude stops responding in Slack and new pairings are refused; see [Restricted compliance settings block Claude Tag](https://claude.com/docs/claude-tag/admins/troubleshooting.md#restricted-compliance-settings-block-claude-tag) | ## Direct messages @@ -88,10 +88,10 @@ When a member first opens a direct message with Claude, the welcome Claude write The controls that delete Claude Tag data, from largest to smallest: -* **Disconnect a workspace or an Enterprise Grid** under **Connected workspaces** on the **Slack** page, which you open with the **Slack** row on the **Channels** tab under **Claude's access** at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), or uninstall the app from the workspace in Slack. Deletes all of that workspace's data. See [Revoke a pairing](/docs/claude-tag/admins/workspaces.md#revoke-a-pairing) +* **Disconnect a workspace or an Enterprise Grid** under **Connected workspaces** on the **Slack** page, which you open with the **Slack** row on the **Channels** tab under **Claude's access** at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), or uninstall the app from the workspace in Slack. Deletes all of that workspace's data. See [Revoke a pairing](https://claude.com/docs/claude-tag/admins/workspaces.md#revoke-a-pairing) * **Remove a channel's scope**: open the channel from the **Channels** tab under **Claude's access**, then select **Remove this scope** in the page's **⋯** menu, if the menu lists it. Deletes that channel's data recorded so far -* **Delete memory files**: open the workspace's page from the **Channels** tab (or a channel's page, when that channel has memory of its own), choose **View memory files** from its **⋯** menu if the menu lists it, pick a file, then select **Delete**. Deleting requires the Owner role. You can also tell Claude in the channel to forget an entry. See [Check and correct what Claude Tag remembers](/docs/claude-tag/users/memory.md#check-and-correct-what-claude-tag-remembers) -* **Delete a routine**: an Owner deletes a channel's routine from the **Scheduled work** tab. You can also ask Claude to delete a routine in the channel or direct message where it was set up. See [Audit Claude Tag activity](/docs/claude-tag/admins/audit.md) +* **Delete memory files**: open the workspace's page from the **Channels** tab (or a channel's page, when that channel has memory of its own), choose **View memory files** from its **⋯** menu if the menu lists it, pick a file, then select **Delete**. Deleting requires the Owner role. You can also tell Claude in the channel to forget an entry. See [Check and correct what Claude Tag remembers](https://claude.com/docs/claude-tag/users/memory.md#check-and-correct-what-claude-tag-remembers) +* **Delete a routine**: an Owner deletes a channel's routine from the **Scheduled work** tab. You can also ask Claude to delete a routine in the channel or direct message where it was set up. See [Audit Claude Tag activity](https://claude.com/docs/claude-tag/admins/audit.md) There is no control in Slack or in your Claude admin settings that deletes a single thread's transcript on its own. During the beta, Claude Tag session transcripts and memory aren't included in your organization's data exports, and the Compliance API doesn't list or delete Claude Tag sessions. For a deletion request these controls don't cover, contact your account team or [privacy@anthropic.com](mailto:privacy@anthropic.com). @@ -101,8 +101,8 @@ Disconnecting a workspace or an Enterprise Grid, and removing a channel's scope, ## Related resources -* [Security and data handling](/docs/claude-tag/concepts/security-and-data.md): sandbox isolation, credential storage, and artifact visibility -* [Manage workspaces and versions](/docs/claude-tag/admins/workspaces.md#revoke-a-pairing): the Disconnect control and what it deletes -* [Restrict where Claude Tag operates](/docs/claude-tag/admins/restrict-access.md#quiet-or-remove-claude-tag): the ways to quiet or remove Claude, and which keep data -* [What Claude Tag remembers](/docs/claude-tag/users/memory.md): reading, correcting, and deleting memory -* [Audit Claude Tag activity](/docs/claude-tag/admins/audit.md): scheduled work, memory files, and network events +* [Security and data handling](https://claude.com/docs/claude-tag/concepts/security-and-data.md): sandbox isolation, credential storage, and artifact visibility +* [Manage workspaces and versions](https://claude.com/docs/claude-tag/admins/workspaces.md#revoke-a-pairing): the Disconnect control and what it deletes +* [Restrict where Claude Tag operates](https://claude.com/docs/claude-tag/admins/restrict-access.md#quiet-or-remove-claude-tag): the ways to quiet or remove Claude, and which keep data +* [What Claude Tag remembers](https://claude.com/docs/claude-tag/users/memory.md): reading, correcting, and deleting memory +* [Audit Claude Tag activity](https://claude.com/docs/claude-tag/admins/audit.md): scheduled work, memory files, and network events diff --git a/content/claude/claude-tag/concepts/for-claude-code-users.md b/content/claude/claude-tag/concepts/for-claude-code-users.md index 77a96abfa..fdc1248f3 100644 --- a/content/claude/claude-tag/concepts/for-claude-code-users.md +++ b/content/claude/claude-tag/concepts/for-claude-code-users.md @@ -10,7 +10,7 @@ > > Claude Tag is in public beta. Features and behavior described here may change before general availability. -Claude Tag runs the same engine as Claude Code. When you tag `@Claude` in Slack with a task, a session starts in a sandbox that your organization configures, not on your machine. That sandbox is the same infrastructure that runs [Claude Code on the web](https://code.claude.com/docs/en/web-quickstart), described in [Compute and the sandbox](/docs/claude-tag/concepts/security-and-data.md#compute-and-the-sandbox). +Claude Tag runs the same engine as Claude Code. When you tag `@Claude` in Slack with a task, a session starts in a sandbox that your organization configures, not on your machine. That sandbox is the same infrastructure that runs [Claude Code on the web](https://code.claude.com/docs/en/web-quickstart), described in [Compute and the sandbox](https://claude.com/docs/claude-tag/concepts/security-and-data.md#compute-and-the-sandbox). If you use Claude Code on the web, a session works the way a web session does, from a fresh clone of your repository rather than from files on your machine. The `CLAUDE.md` files and skills you checked into that repository apply in the session as they do in a web session. @@ -18,13 +18,13 @@ If you run Claude Code in your terminal, the settings on your own machine don't ## What happens when a session starts -A session begins with a fresh sandbox and no repository checked out. Your repository's Claude Code configuration takes effect only after Claude clones the repository, which happens when your message names a repository that an admin has [granted to the channel](/docs/claude-tag/admins/configure-github.md#grant-repository-access). +A session begins with a fresh sandbox and no repository checked out. Your repository's Claude Code configuration takes effect only after Claude clones the repository, which happens when your message names a repository that an admin has [granted to the channel](https://claude.com/docs/claude-tag/admins/configure-github.md#grant-repository-access). | Step | What applies | | :- | :- | | You tag `@Claude` with a task | Your message is the task, and Claude starts work in a sandbox with no repository | | Your message names a granted repository | Claude clones it into the sandbox | -| The clone completes | `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md`, and the skills in `.claude/skills/` [load into the session](/docs/claude-tag/admins/configure-github.md#what-loads-from-a-repository) | +| The clone completes | `CLAUDE.md`, `.claude/CLAUDE.md`, `.claude/rules/*.md`, and the skills in `.claude/skills/` [load into the session](https://claude.com/docs/claude-tag/admins/configure-github.md#what-loads-from-a-repository) | [Hooks](https://code.claude.com/docs/en/hooks) in the repository's `.claude/settings.json` don't run in the session. @@ -40,23 +40,23 @@ The table shows what takes the place of each setting from your machine. Where a | Claude Code setting on your machine | In Claude Tag | | :- | :- | -| `/model` | An admin sets the [default model per channel](/docs/claude-tag/admins/customize.md#choose-the-model-for-a-scope), and you can [switch models in a thread](/docs/claude-tag/users/models.md) | -| `/fast` | Once an Owner [allows fast mode](/docs/claude-tag/admins/customize.md#allow-fast-mode), you [turn it on for one thread](/docs/claude-tag/users/models.md#run-a-thread-in-fast-mode) with `@Claude !fast` | +| `/model` | An admin sets the [default model per channel](https://claude.com/docs/claude-tag/admins/customize.md#choose-the-model-for-a-scope), and you can [switch models in a thread](https://claude.com/docs/claude-tag/users/models.md) | +| `/fast` | Once an Owner [allows fast mode](https://claude.com/docs/claude-tag/admins/customize.md#allow-fast-mode), you [turn it on for one thread](https://claude.com/docs/claude-tag/users/models.md#run-a-thread-in-fast-mode) with `@Claude !fast` | | Effort level | Not configurable. Sessions run at the model's default effort. | -| MCP servers in `.mcp.json` | Not loaded, even when `.mcp.json` is checked into the repository. A session reaches external services only through the [connections an admin set for the channel](/docs/claude-tag/admins/add-connections.md), and each connection holds that service's credentials. | -| Secrets and API keys in your environment | An admin provisions them as channel connections. The raw key never enters the sandbox. It is [added to requests at the network layer](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). | -| Environment variables | An admin sets them on the [environment the channel's sessions run on](/docs/claude-tag/admins/customize.md#configure-the-environment-for-a-scope), and every session in the channel reads them. There is no per-person environment to customize. The values are readable in every session on the environment, so ask an admin to add secrets as connections instead. | +| MCP servers in `.mcp.json` | Not loaded, even when `.mcp.json` is checked into the repository. A session reaches external services only through the [connections an admin set for the channel](https://claude.com/docs/claude-tag/admins/add-connections.md), and each connection holds that service's credentials. | +| Secrets and API keys in your environment | An admin provisions them as channel connections. The raw key never enters the sandbox. It is [added to requests at the network layer](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). | +| Environment variables | An admin sets them on the [environment the channel's sessions run on](https://claude.com/docs/claude-tag/admins/customize.md#configure-the-environment-for-a-scope), and every session in the channel reads them. There is no per-person environment to customize. The values are readable in every session on the environment, so ask an admin to add secrets as connections instead. | | A personal `settings.json` | Not loaded. | -| A setup script for your workspace | An admin sets a setup script on the [environment the channel's sessions run on](/docs/claude-tag/admins/customize.md#configure-the-environment-for-a-scope), and what it installs is in place when each session in the channel starts. For setup that belongs to one repository, use `CLAUDE.md` [install steps](/docs/claude-tag/admins/configure-github.md#install-project-dependencies) instead. | -| Permission prompts | Sessions run in auto mode, where Claude's permission checker reviews each action and can stop it. An admin pre-approves routine actions with [auto mode allow rules](/docs/claude-tag/admins/customize.md#auto-mode-allow-rules) instead of you approving in the moment. | +| A setup script for your workspace | An admin sets a setup script on the [environment the channel's sessions run on](https://claude.com/docs/claude-tag/admins/customize.md#configure-the-environment-for-a-scope), and what it installs is in place when each session in the channel starts. For setup that belongs to one repository, use `CLAUDE.md` [install steps](https://claude.com/docs/claude-tag/admins/configure-github.md#install-project-dependencies) instead. | +| Permission prompts | Sessions run in auto mode, where Claude's permission checker reviews each action and can stop it. An admin pre-approves routine actions with [auto mode allow rules](https://claude.com/docs/claude-tag/admins/customize.md#auto-mode-allow-rules) instead of you approving in the moment. | -To change what a session can reach for everyone, ask an admin to [add a connection](/docs/claude-tag/admins/add-connections.md). The change applies to every session in the channel. +To change what a session can reach for everyone, ask an admin to [add a connection](https://claude.com/docs/claude-tag/admins/add-connections.md). The change applies to every session in the channel. ## How Slack threads map to sessions -You start a session by tagging `@Claude` in a thread with a task, and that session gets its own sandbox. Each reply in the same thread continues the session, so there is no `--continue` or `/resume` to run, and a session stays attached to the thread it started in. See [the lifecycle of a request](/docs/claude-tag/concepts/how-it-works.md#lifecycle-of-a-request) for what happens between replies. +You start a session by tagging `@Claude` in a thread with a task, and that session gets its own sandbox. Each reply in the same thread continues the session, so there is no `--continue` or `/resume` to run, and a session stays attached to the thread it started in. See [the lifecycle of a request](https://claude.com/docs/claude-tag/concepts/how-it-works.md#lifecycle-of-a-request) for what happens between replies. -Each thread is its own session with its own sandbox, so run parallel tasks in separate threads the way you would in separate terminal tabs. The sandbox is released after a quiet period, but the conversation stays in the thread, and a later reply continues the session. See [what survives between replies](/docs/claude-tag/concepts/how-it-works.md#what-survives-between-replies). +Each thread is its own session with its own sandbox, so run parallel tasks in separate threads the way you would in separate terminal tabs. The sandbox is released after a quiet period, but the conversation stays in the thread, and a later reply continues the session. See [what survives between replies](https://claude.com/docs/claude-tag/concepts/how-it-works.md#what-survives-between-replies). ## Whose credentials a session uses @@ -64,15 +64,15 @@ Claude Code acts with your credentials. What a session acts with depends on whet ### In a channel -In a channel, Claude acts with credentials of its own, service accounts that [an admin provisions](/docs/claude-tag/concepts/agent-identity.md#channel-sessions). A pull request comes from the Claude GitHub App rather than from you, and a query against a connected service runs with the channel's credentials no matter who asked. For your own requests, Claude can also [use the connectors on your claude.ai account](/docs/claude-tag/concepts/personal-connectors.md) in the channel, after you allow it. +In a channel, Claude acts with credentials of its own, service accounts that [an admin provisions](https://claude.com/docs/claude-tag/concepts/agent-identity.md#channel-sessions). A pull request comes from the Claude GitHub App rather than from you, and a query against a connected service runs with the channel's credentials no matter who asked. For your own requests, Claude can also [use the connectors on your claude.ai account](https://claude.com/docs/claude-tag/concepts/personal-connectors.md) in the channel, after you allow it. ### In a direct message -A [one-to-one direct message](/docs/claude-tag/concepts/agent-identity.md#direct-message-channels) runs on your own claude.ai account, with the connectors you added to that account rather than the connections an admin set for the channel, so a DM is the closest match to a Claude Code session on your own credentials. +A [one-to-one direct message](https://claude.com/docs/claude-tag/concepts/agent-identity.md#direct-message-channels) runs on your own claude.ai account, with the connectors you added to that account rather than the connections an admin set for the channel, so a DM is the closest match to a Claude Code session on your own credentials. ## Steer a session in the thread -Where you would interrupt Claude Code and edit a file or reprompt, [reply in the thread](/docs/claude-tag/concepts/how-it-works.md#reply-in-the-thread-to-steer). Corrections and added constraints land as messages, and Claude folds them into the running task. +Where you would interrupt Claude Code and edit a file or reprompt, [reply in the thread](https://claude.com/docs/claude-tag/concepts/how-it-works.md#reply-in-the-thread-to-steer). Corrections and added constraints land as messages, and Claude folds them into the running task. ### Keep instructions in channel memory @@ -82,7 +82,7 @@ For instructions that should persist beyond one thread, use channel memory, the @Claude remember for this channel: reports go out as tables ``` -See [What Claude remembers](/docs/claude-tag/users/memory.md) for how memory is scoped and how to correct it. +See [What Claude remembers](https://claude.com/docs/claude-tag/users/memory.md) for how memory is scoped and how to correct it. ## Claude Tag versus a bot you build on the API @@ -90,14 +90,14 @@ A Slack bot you build on the Claude API is software your team writes and hosts. Claude Tag is Anthropic's hosted Slack app. It takes care of the parts you would otherwise build. -* **Hosting.** Each thread gets a Claude Code session in a sandbox Anthropic runs, or in the [environment](/docs/claude-tag/concepts/glossary.md#environment) your organization pins, under an [agent identity](/docs/claude-tag/concepts/agent-identity.md) of its own. -* **Credentials.** An admin gives Claude [connections](/docs/claude-tag/admins/add-connections.md) to your tools, and [Agent Proxy](/docs/claude-tag/concepts/agent-identity.md#agent-proxy) attaches the credentials at the network boundary, outside the sandbox. -* **Customization.** [Custom instructions](/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions), [channel memory](/docs/claude-tag/users/memory.md), and [routines](/docs/claude-tag/users/proactivity.md) are built in. -* **Governance and billing.** [Access controls](/docs/claude-tag/admins/restrict-access.md) and spend limits are set in claude.ai admin settings, and usage is [billed to the organization's usage balance](/docs/claude-tag/overview.md#billing-and-spend-limits). +* **Hosting.** Each thread gets a Claude Code session in a sandbox Anthropic runs, or in the [environment](https://claude.com/docs/claude-tag/concepts/glossary.md#environment) your organization pins, under an [agent identity](https://claude.com/docs/claude-tag/concepts/agent-identity.md) of its own. +* **Credentials.** An admin gives Claude [connections](https://claude.com/docs/claude-tag/admins/add-connections.md) to your tools, and [Agent Proxy](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy) attaches the credentials at the network boundary, outside the sandbox. +* **Customization.** [Custom instructions](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions), [channel memory](https://claude.com/docs/claude-tag/users/memory.md), and [routines](https://claude.com/docs/claude-tag/users/proactivity.md) are built in. +* **Governance and billing.** [Access controls](https://claude.com/docs/claude-tag/admins/restrict-access.md) and spend limits are set in claude.ai admin settings, and usage is [billed to the organization's usage balance](https://claude.com/docs/claude-tag/overview.md#billing-and-spend-limits). ## Related resources -* [How Claude Tag works](/docs/claude-tag/concepts/how-it-works.md): the session model this page maps your setup onto -* [How agent identity works](/docs/claude-tag/concepts/agent-identity.md): why a channel uses the agent's access and a one-to-one DM uses yours -* [Claude Tag settings map](/docs/claude-tag/concepts/settings-map.md): where each setting your organization owns is set -* [Configure GitHub access](/docs/claude-tag/admins/configure-github.md): what loads from a repository and how installs work in the sandbox +* [How Claude Tag works](https://claude.com/docs/claude-tag/concepts/how-it-works.md): the session model this page maps your setup onto +* [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md): why a channel uses the agent's access and a one-to-one DM uses yours +* [Claude Tag settings map](https://claude.com/docs/claude-tag/concepts/settings-map.md): where each setting your organization owns is set +* [Configure GitHub access](https://claude.com/docs/claude-tag/admins/configure-github.md): what loads from a repository and how installs work in the sandbox diff --git a/content/claude/claude-tag/concepts/glossary.md b/content/claude/claude-tag/concepts/glossary.md index 57b0be94b..a569f485f 100644 --- a/content/claude/claude-tag/concepts/glossary.md +++ b/content/claude/claude-tag/concepts/glossary.md @@ -12,27 +12,27 @@ ## Agent identity -The service accounts Claude acts with: the Claude app in Slack, the Claude GitHub App on code, and the credentials an admin provisions for every other tool. See [How agent identity works](/docs/claude-tag/concepts/agent-identity.md). +The service accounts Claude acts with: the Claude app in Slack, the Claude GitHub App on code, and the credentials an admin provisions for every other tool. See [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md). ## Agent Proxy -The network layer that injects credentials into Claude's outbound requests. The model and the sandbox are not given the key; Agent Proxy adds the credential at the network boundary when a request matches the rules an admin set. See [How agent identity works](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). +The network layer that injects credentials into Claude's outbound requests. The model and the sandbox are not given the key; Agent Proxy adds the credential at the network boundary when a request matches the rules an admin set. See [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). ## Bundle -A named set of connectors, repositories, [allowed domains](/docs/claude-tag/admins/add-connections.md#add-a-domain), plugins, and instructions that Claude uses for one kind of work, such as support triage. An Owner or a [Claude Tag admin](#claude-tag-admin) creates bundles on the **Bundles** tab under **Claude's access** at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), then adds the places where each one applies: all of Slack, a workspace, or a channel. One bundle can apply in many places, and an Owner can also apply one to every channel whose name matches a pattern. See [Give Claude access](/docs/claude-tag/admins/add-connections.md). +A named set of connectors, repositories, [allowed domains](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-domain), plugins, and instructions that Claude uses for one kind of work, such as support triage. An Owner or a [Claude Tag admin](#claude-tag-admin) creates bundles on the **Bundles** tab under **Claude's access** at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag), then adds the places where each one applies: all of Slack, a workspace, or a channel. One bundle can apply in many places, and an Owner can also apply one to every channel whose name matches a pattern. See [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md). ## Channel manager -A member of your Claude organization named to set up specific channels. For each channel assigned to them, a channel manager sets the default model, adds repositories their own GitHub account is an admin of, and manages credentials and plugins in the channel's own bundle, without holding the Owner role. See [Delegate channel setup to channel managers](/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers). +A member of your Claude organization named to set up specific channels. For each channel assigned to them, a channel manager sets the default model, adds repositories their own GitHub account is an admin of, and manages credentials and plugins in the channel's own bundle, without holding the Owner role. See [Delegate channel setup to channel managers](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers). ## Channel memory -Facts Claude retains while working in a channel, including facts you told it to remember and notes it writes itself. Each channel keeps its own entries. From a public channel Claude can also save workspace notes, which it reads in every channel in the workspace. See [What Claude Tag remembers](/docs/claude-tag/users/memory.md). +Facts Claude retains while working in a channel, including facts you told it to remember and notes it writes itself. Each channel keeps its own entries. From a public channel Claude can also save workspace notes, which it reads in every channel in the workspace. See [What Claude Tag remembers](https://claude.com/docs/claude-tag/users/memory.md). ## Claude Tag admin -A member of your Claude organization whose custom role includes the **Claude Tag Admin** permission, available on the Enterprise plan. A Claude Tag admin manages [bundles](#bundle), chooses where they apply, and edits workspace and channel settings, without holding the Owner role. A Claude Tag admin whose role also sets **Identity & Access** to **Can manage** can add and remove [channel managers](#channel-manager). See [Delegate Claude Tag administration](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration). +A member of your Claude organization whose custom role includes the **Claude Tag Admin** permission, available on the Enterprise plan. A Claude Tag admin manages [bundles](#bundle), chooses where they apply, and edits workspace and channel settings, without holding the Owner role. A Claude Tag admin whose role also sets **Identity & Access** to **Can manage** can add and remove [channel managers](#channel-manager). See [Delegate Claude Tag administration](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration). ## The earlier Claude in Slack @@ -45,13 +45,13 @@ Claude Tag is the second generation of the Claude app in Slack: | Memory | None | Per-channel memory, plus workspace notes shared from public channels | | Proactive work | None | Routines and channel watching | -Your admin chooses which generation answers `@Claude` in a given channel, so two channels in the same workspace can work differently. See [Migrate from the earlier Claude in Slack](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope). +Your admin chooses which generation answers `@Claude` in a given channel, so two channels in the same workspace can work differently. See [Migrate from the earlier Claude in Slack](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope). ## Connector -A service Claude Tag reaches with a credential of its own. An Owner or a [Claude Tag admin](#claude-tag-admin) adds connectors on the **Connectors** tab under **Claude's access**, and each connector holds one or more credentials, such as an API key for the service, that belong to the agent identity rather than to any user. To add a connector and choose where its credentials apply, see [Add a connector](/docs/claude-tag/admins/add-connections.md#add-a-connection). The [federated access](/docs/claude-tag/admins/federated-access/overview) pages and their console screens say **connection** for a gateway, cloud role, or authorization server Claude reaches with a token instead of a stored key. +A service Claude Tag reaches with a credential of its own. An Owner or a [Claude Tag admin](#claude-tag-admin) adds connectors on the **Connectors** tab under **Claude's access**, and each connector holds one or more credentials, such as an API key for the service, that belong to the agent identity rather than to any user. To add a connector and choose where its credentials apply, see [Add a connector](https://claude.com/docs/claude-tag/admins/add-connections.md#add-a-connection). The [federated access](https://claude.com/docs/claude-tag/admins/federated-access/overview) pages and their console screens say **connection** for a gateway, cloud role, or authorization server Claude reaches with a token instead of a stored key. -A channel session uses the Claude Tag connectors that apply to its channel. Claude can also [use your personal connectors there](/docs/claude-tag/concepts/personal-connectors.md) for your own tasks, after you allow it. A one-to-one DM uses your own account instead, as [how DMs work in this model](/docs/claude-tag/concepts/agent-identity.md#direct-message-channels) describes. +A channel session uses the Claude Tag connectors that apply to its channel. Claude can also [use your personal connectors there](https://claude.com/docs/claude-tag/concepts/personal-connectors.md) for your own tasks, after you allow it. A one-to-one DM uses your own account instead, as [how DMs work in this model](https://claude.com/docs/claude-tag/concepts/agent-identity.md#direct-message-channels) describes. ## Environment @@ -59,11 +59,11 @@ The sandboxed compute configuration a session runs in, including its network acc ## Personal connector -A tool you add to your own claude.ai account, like Gmail, Google Drive, or a custom MCP server, listed under [Customize > Connectors](https://claude.ai/customize/connectors). Personal connectors apply in your one-to-one DMs with Claude. Claude can also [use them in a channel](/docs/claude-tag/concepts/personal-connectors.md) for your own tasks, after you allow it. For the connectors an admin adds for Claude Tag, see [Connector](#connection). +A tool you add to your own claude.ai account, like Gmail, Google Drive, or a custom MCP server, listed under [Customize > Connectors](https://claude.ai/customize/connectors). Personal connectors apply in your one-to-one DMs with Claude. Claude can also [use them in a channel](https://claude.com/docs/claude-tag/concepts/personal-connectors.md) for your own tasks, after you allow it. For the connectors an admin adds for Claude Tag, see [Connector](#connection). ## Plugin -A package of skills that teaches Claude how to use a specific tool or follow a specific process. An Owner or a [Claude Tag admin](#claude-tag-admin) adds a plugin to a bundle, or to all of Slack, a workspace, or a channel directly. Anthropic provides plugins for common tools; you can add your own. See [Attach plugins](/docs/claude-tag/admins/add-connections.md#attach-plugins). +A package of skills that teaches Claude how to use a specific tool or follow a specific process. An Owner or a [Claude Tag admin](#claude-tag-admin) adds a plugin to a bundle, or to all of Slack, a workspace, or a channel directly. Anthropic provides plugins for common tools; you can add your own. See [Attach plugins](https://claude.com/docs/claude-tag/admins/add-connections.md#attach-plugins). ## Routine @@ -73,18 +73,18 @@ Claude Code also has a feature named routines. Those run under an individual use ## Rule -The match conditions Agent Proxy checks against each outbound request. Each credential has a rule that decides when to inject it, and a request that matches the rule gets the credential attached at the boundary. A request that nothing allows (no rule, no domain entry, no [environment](#environment) network access setting) is blocked. See [Agent Proxy](/docs/claude-tag/concepts/agent-identity.md#agent-proxy). +The match conditions Agent Proxy checks against each outbound request. Each credential has a rule that decides when to inject it, and a request that matches the rule gets the credential attached at the boundary. A request that nothing allows (no rule, no domain entry, no [environment](#environment) network access setting) is blocked. See [Agent Proxy](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy). ## Scope -One of three levels Claude's settings can target: all of Slack (the **Slack** page, the organization-wide root), one Slack workspace, or one channel (public or private). Scopes inherit downward, so a channel gets its workspace's settings plus any of its own. In Claude Tag admin settings, all of Slack, each workspace, and each channel have their own pages, which you open from the **Channels** tab under **Claude's access**. An Owner or a [Claude Tag admin](#claude-tag-admin) adds [bundles](#bundle), connectors, plugins, and instructions there. See [Attach the bundle to a scope](/docs/claude-tag/admins/attach-to-scope.md). +One of three levels Claude's settings can target: all of Slack (the **Slack** page, the organization-wide root), one Slack workspace, or one channel (public or private). Scopes inherit downward, so a channel gets its workspace's settings plus any of its own. In Claude Tag admin settings, all of Slack, each workspace, and each channel have their own pages, which you open from the **Channels** tab under **Claude's access**. An Owner or a [Claude Tag admin](#claude-tag-admin) adds [bundles](#bundle), connectors, plugins, and instructions there. See [Attach the bundle to a scope](https://claude.com/docs/claude-tag/admins/attach-to-scope.md). ## Session -The unit of work behind one conversation. Each Slack thread binds to one persistent session, and anyone in the channel can continue it by replying in the thread. A channel where Claude works at the top level, outside threads, also carries one session for the channel itself, separate from every thread's. See [How Claude Tag works](/docs/claude-tag/concepts/how-it-works.md) and [Restart a stuck or wrong-context session](/docs/claude-tag/users/commands.md#restart-a-stuck-or-wrong-context-session). +The unit of work behind one conversation. Each Slack thread binds to one persistent session, and anyone in the channel can continue it by replying in the thread. A channel where Claude works at the top level, outside threads, also carries one session for the channel itself, separate from every thread's. See [How Claude Tag works](https://claude.com/docs/claude-tag/concepts/how-it-works.md) and [Restart a stuck or wrong-context session](https://claude.com/docs/claude-tag/users/commands.md#restart-a-stuck-or-wrong-context-session). ## Related resources -* [How Claude Tag works](/docs/claude-tag/concepts/how-it-works.md): the scope, channel, and thread model in action -* [How agent identity works](/docs/claude-tag/concepts/agent-identity.md): how connectors, scopes, and Agent Proxy fit together when Claude runs a task -* [Set up Claude Tag](/docs/claude-tag/admins/setup-overview): where bundles and connectors get set up in Claude Tag admin settings +* [How Claude Tag works](https://claude.com/docs/claude-tag/concepts/how-it-works.md): the scope, channel, and thread model in action +* [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md): how connectors, scopes, and Agent Proxy fit together when Claude runs a task +* [Set up Claude Tag](https://claude.com/docs/claude-tag/admins/setup-overview): where bundles and connectors get set up in Claude Tag admin settings diff --git a/content/claude/claude-tag/concepts/how-it-works.md b/content/claude/claude-tag/concepts/how-it-works.md index f3d55ed57..4d1760f64 100644 --- a/content/claude/claude-tag/concepts/how-it-works.md +++ b/content/claude/claude-tag/concepts/how-it-works.md @@ -12,7 +12,7 @@ Claude Tag is Claude, working inside your team's Slack channels. An organization Owner gives it its own accounts to the tools your team uses, so it arrives already able to act, and anyone in a channel can tag it into a problem without setting anything up. -When someone tags Claude in at a channel's top level, the channel's own [session](/docs/claude-tag/concepts/glossary.md#session) picks the message up. A task that needs investigation, tools, or a longer exchange gets a working session in a thread under the message, and that thread binds to its own session from then on. Claude works through the task and posts the result back into the conversation. The work runs in an ephemeral cloud sandbox, not on your local machine. +When someone tags Claude in at a channel's top level, the channel's own [session](https://claude.com/docs/claude-tag/concepts/glossary.md#session) picks the message up. A task that needs investigation, tools, or a longer exchange gets a working session in a thread under the message, and that thread binds to its own session from then on. Claude works through the task and posts the result back into the conversation. The work runs in an ephemeral cloud sandbox, not on your local machine. This page covers: @@ -81,7 +81,7 @@ Editing or deleting an earlier message doesn't steer the session the way a reply * **Editing a message**: Claude receives a note each time you edit, showing what the message said before the edit and what it says now. Both versions become part of the session's transcript, so editing a message doesn't remove the earlier text from what Anthropic stores. An edit doesn't start a new task or re-address Claude, even if you add `@Claude` to it. * **Deleting a reply**: Claude gets no notification and keeps the version it already read. Deleting the reply in Slack doesn't remove it from the session's transcript. -* **Deleting the thread's first message**: Claude stops working in that thread and the session closes, whether or not the thread has replies. Anything Claude already pushed or posted persists, per [what survives between replies](#what-survives-between-replies), and you start a new thread to pick the task back up. Closing the session archives it rather than deleting it, so its transcript, including the message you deleted, stays with the channel's Claude data until that data is [deleted](/docs/claude-tag/admins/workspaces.md#revoke-a-pairing). +* **Deleting the thread's first message**: Claude stops working in that thread and the session closes, whether or not the thread has replies. Anything Claude already pushed or posted persists, per [what survives between replies](#what-survives-between-replies), and you start a new thread to pick the task back up. Closing the session archives it rather than deleting it, so its transcript, including the message you deleted, stays with the channel's Claude data until that data is [deleted](https://claude.com/docs/claude-tag/admins/workspaces.md#revoke-a-pairing). * **Correcting course**: Claude responds to replies; edits reach it only as notes, and a deleted reply not at all. Say the change in a new reply; the reply is also how you walk back a message it already read. ## Team channels and personal DMs @@ -96,7 +96,7 @@ Where you message Claude determines whose tools and accounts it uses. In a chann The Access column is about external systems. A channel session reaches what the channel was granted, and a one-to-one DM session reaches what your own account is connected to. -Everything below describes channel sessions, where most of the model lives. For one-to-one DMs, see [direct message channels](/docs/claude-tag/concepts/agent-identity.md#direct-message-channels). For group DMs, see [Use Claude Tag in a group DM](/docs/claude-tag/users/group-dms.md). For choosing where to ask, see [pick the right surface](/docs/claude-tag/users/good-habits.md#pick-the-right-surface). +Everything below describes channel sessions, where most of the model lives. For one-to-one DMs, see [direct message channels](https://claude.com/docs/claude-tag/concepts/agent-identity.md#direct-message-channels). For group DMs, see [Use Claude Tag in a group DM](https://claude.com/docs/claude-tag/users/group-dms.md). For choosing where to ask, see [pick the right surface](https://claude.com/docs/claude-tag/users/good-habits.md#pick-the-right-surface). ## How Claude Tag differs from Cowork and Claude Code @@ -115,15 +115,15 @@ The short version: **team work → Claude Tag; personal work → Cowork or Claud Three ideas recur across this page and the rest of these docs. -* **Agent identity**: in channels, Claude acts under its own service accounts that an admin provisions, not as the person who asked. What it can reach is set per channel, so everyone in a channel works with the same access. See [How agent identity works](/docs/claude-tag/concepts/agent-identity.md). -* **Scheduling and long-running work**: a task can run on a schedule, follow a pull request and act when it changes, or keep going across many turns in one thread. The same channel access applies whether a person or a schedule started it. See [Set up routines](/docs/claude-tag/users/proactivity.md). -* **Memory**: Claude keeps notes for each channel, and the workspace notes it saves from public channels are read in every channel in the workspace. See [What Claude remembers](/docs/claude-tag/users/memory.md). +* **Agent identity**: in channels, Claude acts under its own service accounts that an admin provisions, not as the person who asked. What it can reach is set per channel, so everyone in a channel works with the same access. See [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md). +* **Scheduling and long-running work**: a task can run on a schedule, follow a pull request and act when it changes, or keep going across many turns in one thread. The same channel access applies whether a person or a schedule started it. See [Set up routines](https://claude.com/docs/claude-tag/users/proactivity.md). +* **Memory**: Claude keeps notes for each channel, and the workspace notes it saves from public channels are read in every channel in the workspace. See [What Claude remembers](https://claude.com/docs/claude-tag/users/memory.md). ## Lifecycle of a request Every session, in any channel, follows the same five-step loop. -1. **The session starts.** Someone tags `@Claude` with a task that needs a working session, or a [scheduled routine](/docs/claude-tag/users/proactivity.md) runs. At a channel's top level, the channel's own session picks the message up and starts the thread's session. +1. **The session starts.** Someone tags `@Claude` with a task that needs a working session, or a [scheduled routine](https://claude.com/docs/claude-tag/users/proactivity.md) runs. At a channel's top level, the channel's own session picks the message up and starts the thread's session. 2. **A sandbox builds.** Each thread gets its own isolated working environment. 3. **The working loop runs.** Claude works through the task with the channel's access, editing its checklist in place. 4. **The result lands in the thread.** An answer, a doc, a chart, or a pull request. @@ -137,7 +137,7 @@ Every session runs in an ephemeral sandbox, a real working environment where Cla Two threads in the same channel are two separate sessions with separate sandboxes; sessions don't share state directly. -A channel where Claude works at the top level, outside threads, also carries one session for the channel itself, separate from every thread's. That session reads the channel's top-level messages and handles top-level @-mentions, so context carries across separate top-level asks in the same channel; [What survives between replies](#what-survives-between-replies) covers how long it lives. For a task that needs investigation, tools, or a longer exchange, it starts a dedicated session in a thread under the message. At the channel's top level, [`!restart`](/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session) replaces the channel's session. +A channel where Claude works at the top level, outside threads, also carries one session for the channel itself, separate from every thread's. That session reads the channel's top-level messages and handles top-level @-mentions, so context carries across separate top-level asks in the same channel; [What survives between replies](#what-survives-between-replies) covers how long it lives. For a task that needs investigation, tools, or a longer exchange, it starts a dedicated session in a thread under the message. At the channel's top level, [`!restart`](https://claude.com/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session) replaces the channel's session. Even with nothing connected, every session starts from the same baseline. @@ -156,7 +156,7 @@ Claude posts each session's result in the thread you asked in, choosing the form | A page kept current | Any of the above, edited in place over time | Digests, indexes, standing reports | | A hosted page | A web page published on claude.ai, linked in the thread | Dashboards, prototypes, reports | -A hosted page stays available after the session ends, and Claude updates it when you ask in the thread. Anyone with access to the channel can open it. [Artifact visibility](/docs/claude-tag/concepts/security-and-data.md#artifact-visibility) covers the access model. These are the same artifacts [Claude Code publishes](https://code.claude.com/docs/en/artifacts), with channel-based access in place of owner-controlled sharing. +A hosted page stays available after the session ends, and Claude updates it when you ask in the thread. Anyone with access to the channel can open it. [Artifact visibility](https://claude.com/docs/claude-tag/concepts/security-and-data.md#artifact-visibility) covers the access model. These are the same artifacts [Claude Code publishes](https://code.claude.com/docs/en/artifacts), with channel-based access in place of owner-controlled sharing. For code work, the result is usually a draft pull request opened under the Claude GitHub App, with the link posted in the thread. @@ -164,11 +164,11 @@ For code work, the result is usually a draft pull request opened under the Claud For a longer task, Claude's first reply is a checklist, a live task list that it edits in place as it goes. Slack does not send notifications when a message is edited, so the thread can look frozen while the list is still moving. -A quiet thread usually means Claude is mid-task, not stuck. Open the thread. Checklist items checked off since you last looked mean the work is moving. In the walkthrough, nothing new arrived in anyone's notifications between 9:02 and 9:06, while the checklist ticked through fourteen threads of reading. If the work hits a wall, Claude usually says so in a reply rather than going silent. When a thread stays silent well past what the task should need, treat it as a stuck session; see [Claude reacted or started thinking, then never replied](/docs/claude-tag/users/troubleshooting.md#claude-reacted-or-started-thinking-then-never-replied). +A quiet thread usually means Claude is mid-task, not stuck. Open the thread. Checklist items checked off since you last looked mean the work is moving. In the walkthrough, nothing new arrived in anyone's notifications between 9:02 and 9:06, while the checklist ticked through fourteen threads of reading. If the work hits a wall, Claude usually says so in a reply rather than going silent. When a thread stays silent well past what the task should need, treat it as a stuck session; see [Claude reacted or started thinking, then never replied](https://claude.com/docs/claude-tag/users/troubleshooting.md#claude-reacted-or-started-thinking-then-never-replied). ### Channel access -Claude Tag connectors extend a session's reach into your own systems. An organization admin applies access to all of Slack, to one workspace, or to a single channel, either directly or through a [bundle](/docs/claude-tag/concepts/glossary.md#bundle), so the same request can do more in one channel than in another, and everyone in a given channel works with the same capability. +Claude Tag connectors extend a session's reach into your own systems. An organization admin applies access to all of Slack, to one workspace, or to a single channel, either directly or through a [bundle](https://claude.com/docs/claude-tag/concepts/glossary.md#bundle), so the same request can do more in one channel than in another, and everyone in a given channel works with the same capability. A thread locks in its skills, plugins, and custom instructions when it starts, and a running thread keeps that set. Connectors and domain rules are enforced on each request, so one an admin adds mid-thread works in a running thread. Claude doesn't announce a new connector in an existing thread; ask it to use the service by name. A new thread picks up every kind of change, so after a configuration change, start a new top-level thread. @@ -177,8 +177,8 @@ A thread locks in its skills, plugins, and custom instructions when it starts, a Because access is set per channel rather than per person, the way to find out what a session can reach is to ask it, not to guess from your own permissions. * **Ask what Claude can reach.** In any channel, `@Claude what can you access from this channel?` lists its current reach. -* **If Claude cannot reach something, the channel was not granted access.** Another channel may have the access, and an Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) of your Claude organization can add it. [How agent identity works](/docs/claude-tag/concepts/agent-identity.md) covers the model. -* **Personal connectors are separate from Claude Tag connectors.** A connector an admin applies to a channel is separate from a connector on your personal claude.ai account. Your own connectors work in your one-to-one DMs. Claude can also [use them in a channel](/docs/claude-tag/concepts/personal-connectors.md) for your own tasks, after you allow it. +* **If Claude cannot reach something, the channel was not granted access.** Another channel may have the access, and an Owner or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) of your Claude organization can add it. [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md) covers the model. +* **Personal connectors are separate from Claude Tag connectors.** A connector an admin applies to a channel is separate from a connector on your personal claude.ai account. Your own connectors work in your one-to-one DMs. Claude can also [use them in a channel](https://claude.com/docs/claude-tag/concepts/personal-connectors.md) for your own tasks, after you allow it. ### What Claude can do in other channels @@ -196,13 +196,13 @@ Where you ask decides what Claude can do in the other channel: * **Attribution line**: every message Claude posts outside the conversation you asked from carries a line under it that names where it came from. When you ask in a thread, the line links back to that thread and names whoever last addressed Claude there, as in "Sent by Claude in #team-eng on behalf of @jordan". When you ask in a DM, the line names the person who approved the post, as in "Sent by Claude, approved by @jordan". * **Replies**: when you ask from a channel, Claude follows the thread it posted into, so replies there reach the session you asked in. Claude reads them and responds in the conversation where you asked, not in the other thread. Replies don't reach it while the conversation where you asked includes guests or is shared with another organization. When you ask from a one-to-one DM, replies under the post don't reach your DM; reply in the DM to follow up. * **Following a channel or thread**: ask Claude to watch another public channel or a thread in one, for example `@Claude follow #incidents and tell me here if anything mentions billing`. Claude must be a member of that channel. Claude reads new messages there and acts in the conversation where you asked, without posting in the followed channel. It doesn't receive them while the conversation where you asked includes guests or is shared with another organization. Ask Claude to stop following when it no longer matters. A follow you set up from a thread ends once that thread goes 7 days without a new message. -* **Which channels Claude can post into**: a public channel in the same Slack workspace that Claude is already a member of. Claude can't post into a Slack Connect channel or a [channel shared across workspaces](/docs/claude-tag/admins/restrict-access.md#channels-shared-across-workspaces-in-your-enterprise-grid), wherever you ask from. +* **Which channels Claude can post into**: a public channel in the same Slack workspace that Claude is already a member of. Claude can't post into a Slack Connect channel or a [channel shared across workspaces](https://claude.com/docs/claude-tag/admins/restrict-access.md#channels-shared-across-workspaces-in-your-enterprise-grid), wherever you ask from. * **If Claude isn't a member of the target channel**: when you ask from a channel, add Claude by sending `/invite @Claude` from inside the target channel. When you ask from a DM, approving the post adds Claude to the target channel. -* **Channels with guests**: Claude can post into a [channel that includes guests](/docs/claude-tag/admins/restrict-access.md#restrict-guest-channels) only when the **How should Claude work in channels with guests** setting covering that channel is **Full access**. +* **Channels with guests**: Claude can post into a [channel that includes guests](https://claude.com/docs/claude-tag/admins/restrict-access.md#restrict-guest-channels) only when the **How should Claude work in channels with guests** setting covering that channel is **Full access**. ### One-off and scheduled tasks -A session starts the same way whether a person triggers it or a schedule does. A tagged task runs in its thread's session, and the sandbox is released once the work finishes. A routine runs the same loop on a schedule, a channel watch, or a repository event, with the channel's connections, so a recurring digest or watcher gets the same access a typed request would. See [set up routines](/docs/claude-tag/users/proactivity.md). +A session starts the same way whether a person triggers it or a schedule does. A tagged task runs in its thread's session, and the sandbox is released once the work finishes. A routine runs the same loop on a schedule, a channel watch, or a repository event, with the channel's connections, so a recurring digest or watcher gets the same access a typed request would. See [set up routines](https://claude.com/docs/claude-tag/users/proactivity.md). ## Session context and memory @@ -212,7 +212,7 @@ Every session runs the same lifecycle; what varies by place and thread is [what A session reads its own thread and its channel. Mentioning `@Claude` partway into an existing thread gives it a window of the thread's messages, not the whole thread, with other bots' replies filtered out. In long threads, restate anything critical. -Claude works in channels it has been added to, but workspace search can still find messages by keyword from public channels it's not a member of (the same search any Slack user has). Workspace search is unavailable in [channels that include guests](/docs/claude-tag/admins/restrict-access.md#restrict-guest-channels), and an admin can [limit search to channels Claude is in](/docs/claude-tag/admins/restrict-access.md#limit-which-channels-claude-can-search). Finding something is broader than being able to act somewhere; to have it participate in a channel directly, invite it with `/invite @Claude`. +Claude works in channels it has been added to, but workspace search can still find messages by keyword from public channels it's not a member of (the same search any Slack user has). Workspace search is unavailable in [channels that include guests](https://claude.com/docs/claude-tag/admins/restrict-access.md#restrict-guest-channels), and an admin can [limit search to channels Claude is in](https://claude.com/docs/claude-tag/admins/restrict-access.md#limit-which-channels-claude-can-search). Finding something is broader than being able to act somewhere; to have it participate in a channel directly, invite it with `/invite @Claude`. ### What survives between replies @@ -220,8 +220,8 @@ A thread is durable, but the sandbox behind it is not. Durable means the thread | When | What Claude does | | :- | :- | -| Someone sends [`@Claude !restart`](/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session) | Archives the session right away and starts a fresh one that rereads the thread | -| The session [gets stuck and fails](/docs/claude-tag/users/troubleshooting.md#claude-reacted-or-started-thinking-then-never-replied) | Starts the replacement when the next message arrives in the thread | +| Someone sends [`@Claude !restart`](https://claude.com/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session) | Archives the session right away and starts a fresh one that rereads the thread | +| The session [gets stuck and fails](https://claude.com/docs/claude-tag/users/troubleshooting.md#claude-reacted-or-started-thinking-then-never-replied) | Starts the replacement when the next message arrives in the thread | ![Timeline with two lanes. The Slack thread lane is one continuous bar that persists from the moment a task starts. The sandbox lane below it is segmented, built when the task starts, released while the thread goes quiet, and rebuilt fresh when someone replies.](https://mintcdn.com/claude-ai/5JFKyLlO7sHMMf5J/images/claude-tag/diagrams/session-lifecycle.svg?fit=max\&auto=format\&n=5JFKyLlO7sHMMf5J\&q=85\&s=9a56231787b03f179e8d552d887778fc) @@ -232,13 +232,13 @@ A thread is durable, but the sandbox behind it is not. Durable means the thread | Work pushed, posted, or opened as a PR | Yes, in the external system | | Files that exist only in the sandbox | No. Claude recreates them if asked. | -For long tasks, ask it to push branches and post drafts as it goes, so deliverables are saved somewhere durable while the work is still running. See [Good habits](/docs/claude-tag/users/good-habits.md#give-every-task-a-definition-of-done). +For long tasks, ask it to push branches and post drafts as it goes, so deliverables are saved somewhere durable while the work is still running. See [Good habits](https://claude.com/docs/claude-tag/users/good-habits.md#give-every-task-a-definition-of-done). A running thread isn't told about configuration changes an admin makes after it started, such as a new connection, plugin, skill, repository grant, or custom instruction. A new thread starts from the scope's current configuration, so after changing a scope, start a fresh thread to see the change. The channel's own session, the one that handles top-level messages outside any thread, lives longer than a thread's. Claude replaces it with a fresh one after about an hour with no activity in the channel or its threads, or when the channel's configuration has changed since the session started. Claude also replaces a session once it's about a day old, but waits until the channel and the threads it's working in have gone quiet. Channel memory and the channel's history are unaffected, so the only visible effect is that Claude no longer carries what the previous session had been working on. -Claude also stops reading a channel's top-level messages once about 100 of them have arrived since it last posted or replied there. An `@Claude` mention in the channel starts it reading again; see [When Claude stops reading a channel](/docs/claude-tag/users/when-claude-responds.md#when-claude-stops-reading-a-channel). These thresholds are defaults and can change, so treat the numbers as approximate. +Claude also stops reading a channel's top-level messages once about 100 of them have arrived since it last posted or replied there. An `@Claude` mention in the channel starts it reading again; see [When Claude stops reading a channel](https://claude.com/docs/claude-tag/users/when-claude-responds.md#when-claude-stops-reading-a-channel). These thresholds are defaults and can change, so treat the numbers as approximate. ### Channel and workspace memory @@ -248,25 +248,25 @@ Each channel, public or private, has its own notes, which Claude reads while wor A private channel reads the workspace notes but can't add to them. Everything Claude saves there goes to that channel's own notes. -To see what it holds, ask `@Claude what do you remember about this channel?`. Anyone in the channel can correct or remove entries. [What Claude Tag remembers](/docs/claude-tag/users/memory.md) covers reading, correcting, and adding to memory. +To see what it holds, ask `@Claude what do you remember about this channel?`. Anyone in the channel can correct or remove entries. [What Claude Tag remembers](https://claude.com/docs/claude-tag/users/memory.md) covers reading, correcting, and adding to memory. The whole model so far fits in one picture, with access set at the scope, memory kept per channel, work in progress per thread, and one-to-one DMs outside all of it. ![Diagram showing three nested levels. A scope container holds two channels, #platform-eng and #gtm-west, and each channel holds its own threads, like 'fix checkout latency' or 'pull deal state'. The private channel is marked with a lock. Callouts mark what lives at each level (identity and access at the scope, memory at the channel plus workspace notes shared from public channels, and work in progress at the thread). A DM with Claude sits below, outside every scope, and runs on your own account.](https://mintcdn.com/claude-ai/ZNX07pWnPReWiLwB/images/claude-tag/diagrams/three-levels.svg?fit=max\&auto=format\&n=ZNX07pWnPReWiLwB\&q=85\&s=78dfe70e5cf12007485d19baf47b803b) -One-to-one DMs are outside this picture; they run on your own account, as covered in [Team channels and personal DMs](#team-channels-and-personal-dms). An Owner can turn off DMs for the whole organization; see [Allow or disable direct messages](/docs/claude-tag/admins/restrict-access.md#allow-or-disable-direct-messages). +One-to-one DMs are outside this picture; they run on your own account, as covered in [Team channels and personal DMs](#team-channels-and-personal-dms). An Owner can turn off DMs for the whole organization; see [Allow or disable direct messages](https://claude.com/docs/claude-tag/admins/restrict-access.md#allow-or-disable-direct-messages). ## What admins can see of your conversations with Claude Admins have no page or export that shows the individual messages people send Claude. * **Analytics:** the [analytics page](https://claude.ai/analytics/claude-tag) reports spend by channel and by kind of work -* **Activity page:** the [**Activity** page](/docs/claude-tag/admins/audit.md) in Claude Tag admin settings, available to Owners, lists scheduled work, memory files, and network events +* **Activity page:** the [**Activity** page](https://claude.com/docs/claude-tag/admins/audit.md) in Claude Tag admin settings, available to Owners, lists scheduled work, memory files, and network events * **Slack threads:** everyone in a channel can read the threads where Claude works, admins included -* **Session transcripts:** Anthropic keeps a [transcript of each session](/docs/claude-tag/concepts/data-lifecycle.md#what-anthropic-stores) +* **Session transcripts:** Anthropic keeps a [transcript of each session](https://claude.com/docs/claude-tag/concepts/data-lifecycle.md#what-anthropic-stores) ## Related resources -* [Getting started](/docs/claude-tag/users/getting-started.md): hand Claude your first task -* [How agent identity works](/docs/claude-tag/concepts/agent-identity.md): why an admin sets access per channel, and how credentials stay out of the sandbox -* [Good habits](/docs/claude-tag/users/good-habits.md): write tasks that survive the sandbox lifecycle +* [Getting started](https://claude.com/docs/claude-tag/users/getting-started.md): hand Claude your first task +* [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md): why an admin sets access per channel, and how credentials stay out of the sandbox +* [Good habits](https://claude.com/docs/claude-tag/users/good-habits.md): write tasks that survive the sandbox lifecycle diff --git a/content/claude/claude-tag/concepts/personal-connectors.md b/content/claude/claude-tag/concepts/personal-connectors.md index d0f2d3cab..37dc05c07 100644 --- a/content/claude/claude-tag/concepts/personal-connectors.md +++ b/content/claude/claude-tag/concepts/personal-connectors.md @@ -12,7 +12,7 @@ Personal connectors are the tools you add to your own claude.ai account, like your calendar or your email. When a task you ask for in a Slack channel needs one of your own tools, Claude can offer to use your connector for it. -Personal connectors in channels are on for every organization on the Team plan, with nothing for an admin to set up. On the Enterprise plan, an admin manages them in the **Personal connectors** dialog, which opens with **Edit** on the **Personal connectors** row at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag); see [Admin controls for personal connectors](#admin-controls-for-personal-connectors). A channel also keeps working with the Claude Tag connectors an admin attached to it, as described in [how agent identity works](/docs/claude-tag/concepts/agent-identity.md). +Personal connectors in channels are on for every organization on the Team plan, with nothing for an admin to set up. On the Enterprise plan, an admin manages them in the **Personal connectors** dialog, which opens with **Edit** on the **Personal connectors** row at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag); see [Admin controls for personal connectors](#admin-controls-for-personal-connectors). A channel also keeps working with the Claude Tag connectors an admin attached to it, as described in [how agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md). ## Where your connectors apply @@ -27,11 +27,11 @@ Claude uses your connectors only while working on a request you made yourself. * **You ask in a channel.** When your task needs one of your own tools, Claude can use your connector for it. The channel also uses the Claude Tag connectors an admin attached to it, and everyone who asks there gets the same access. * **Someone else asks in a channel.** Your connectors serve only you. Their request doesn't control or use your connectors, even in a shared channel. -* **Claude starts work on its own.** [Routines](/docs/claude-tag/users/proactivity.md) and other work Claude starts on its own in a channel use the channel's own access, never your connectors. -* **You ask in a [group DM](/docs/claude-tag/users/group-dms.md).** Claude uses your connectors after you allow it, and only your own requests use them. -* **You ask in a one-to-one direct message (DM).** Your connectors apply on their own, because a DM runs on [your own claude.ai account](/docs/claude-tag/concepts/agent-identity.md#direct-message-channels). +* **Claude starts work on its own.** [Routines](https://claude.com/docs/claude-tag/users/proactivity.md) and other work Claude starts on its own in a channel use the channel's own access, never your connectors. +* **You ask in a [group DM](https://claude.com/docs/claude-tag/users/group-dms.md).** Claude uses your connectors after you allow it, and only your own requests use them. +* **You ask in a one-to-one direct message (DM).** Your connectors apply on their own, because a DM runs on [your own claude.ai account](https://claude.com/docs/claude-tag/concepts/agent-identity.md#direct-message-channels). -To add or remove connectors on your account, open the **Customize > Connectors** page on claude.ai; see [connectors on claude.ai](/docs/connectors/getting-started.md) for setup. +To add or remove connectors on your account, open the **Customize > Connectors** page on claude.ai; see [connectors on claude.ai](https://claude.com/docs/connectors/getting-started.md) for setup. ### Example calendar request in a channel @@ -49,7 +49,7 @@ If a teammate posts the same request, Claude can offer to use the calendar conne Claude Tag connectors an admin attached to the channel give everyone in the channel the same access. They use the account the admin set up for Claude in each service, so Claude reaches whatever that account can reach, whoever asks. -If a Claude Tag connector in the channel can open a document your own account can't, Claude can still read and summarize it in that channel when you ask. See [agent access](/docs/claude-tag/concepts/agent-identity.md#agent-access) for how admins limit what a channel can reach. +If a Claude Tag connector in the channel can open a document your own account can't, Claude can still read and summarize it in that channel when you ask. See [agent access](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-access) for how admins limit what a channel can reach. ## Control connector use @@ -93,9 +93,9 @@ To manage personal connectors for the whole organization, an admin goes to [`cla * **Require human review of every message.** On the Enterprise plan, an admin can turn this switch on so that Claude holds every result for the requester's review, not only the ones the [sensitive-content check](#review-results-before-posting) flags. With it on, the prompt no longer offers **Allow** and the **Home** tab no longer offers **Auto mode**. With it off, and on the Team plan, which has no such switch, each member's own [choice](#approve-connector-use) decides which results Claude holds. * **Sensitive information requiring review.** Shows examples of what the check looks for. An Owner can add topics of their own under **Additional topics**, for example "Board meeting notes are confidential", and Claude holds results that touch them. -There is no setting that turns personal connectors in channels off for an organization. To keep a service out of channels entirely, manage the connector itself in your organization's [connector settings](/docs/connectors/getting-started.md). +There is no setting that turns personal connectors in channels off for an organization. To keep a service out of channels entirely, manage the connector itself in your organization's [connector settings](https://claude.com/docs/connectors/getting-started.md). -On the Enterprise plan, keep Claude Opus 5 turned on under **Model access** on your organization's [**Models**](https://claude.ai/admin-settings/models) page, which an Owner or Admin can edit. With Claude Opus 5 turned off for the organization, Claude declines tasks that need a member's personal connectors, whichever model the thread runs on. Claude runs the checks on those tasks on Claude Opus 5, and other channel work continues. For the member's side of this, see [Claude says it needs Claude Opus 5 to use my personal connectors](/docs/claude-tag/users/troubleshooting.md#claude-says-it-needs-claude-opus-5-to-use-my-personal-connectors). +On the Enterprise plan, keep Claude Opus 5 turned on under **Model access** on your organization's [**Models**](https://claude.ai/admin-settings/models) page, which an Owner or Admin can edit. With Claude Opus 5 turned off for the organization, Claude declines tasks that need a member's personal connectors, whichever model the thread runs on. Claude runs the checks on those tasks on Claude Opus 5, and other channel work continues. For the member's side of this, see [Claude says it needs Claude Opus 5 to use my personal connectors](https://claude.com/docs/claude-tag/users/troubleshooting.md#claude-says-it-needs-claude-opus-5-to-use-my-personal-connectors). ### Stop connector use @@ -115,6 +115,6 @@ Results stay visible in the channel. What Claude posts back to a channel thread ## Related resources -* [How agent identity works](/docs/claude-tag/concepts/agent-identity.md): whose identity and access Claude uses in channels and DMs -* [Connectors](/docs/connectors/getting-started.md): set up and manage connectors on your claude.ai account -* [Get started](/docs/claude-tag/users/getting-started.md): hand Claude your first task in a channel +* [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md): whose identity and access Claude uses in channels and DMs +* [Connectors](https://claude.com/docs/connectors/getting-started.md): set up and manage connectors on your claude.ai account +* [Get started](https://claude.com/docs/claude-tag/users/getting-started.md): hand Claude your first task in a channel diff --git a/content/claude/claude-tag/concepts/security-and-data.md b/content/claude/claude-tag/concepts/security-and-data.md index c9692e873..b0ace4d49 100644 --- a/content/claude/claude-tag/concepts/security-and-data.md +++ b/content/claude/claude-tag/concepts/security-and-data.md @@ -10,11 +10,11 @@ > > Claude Tag is in public beta. Features and behavior described here may change before general availability. -In channels, Claude acts under its own service accounts. By default it can read and post in Slack channels it's been added to and search public channels by keyword; it has no access to your external systems until an Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) adds Claude Tag connectors. An admin chooses where each connector applies, from every channel down to one, and the actions Claude takes in connected tools are attributable to its own service accounts. +In channels, Claude acts under its own service accounts. By default it can read and post in Slack channels it's been added to and search public channels by keyword; it has no access to your external systems until an Owner or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) adds Claude Tag connectors. An admin chooses where each connector applies, from every channel down to one, and the actions Claude takes in connected tools are attributable to its own service accounts. Every channel request, whether a person typed it or a schedule triggered it, follows the same path: it runs in an isolated sandbox, and the credentials you provision aren't placed in that sandbox. In an Anthropic-hosted environment, requests leave that sandbox only through Agent Proxy and reach your systems under the agent's own accounts. Sessions in a [self-hosted environment](https://code.claude.com/docs/en/self-hosted-environments) run on runners inside your network, and Claude can't use the connectors an admin adds in those sessions. -One-to-one DMs from members who have connected a Claude account run on the member's own claude.ai account instead and are covered separately on [How agent identity works](/docs/claude-tag/concepts/agent-identity.md#direct-message-channels). For DMs from members who haven't, see [Direct messages from members without a Claude account](/docs/claude-tag/admins/restrict-access.md#access-in-a-direct-message-from-a-member-without-a-claude-account). +One-to-one DMs from members who have connected a Claude account run on the member's own claude.ai account instead and are covered separately on [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#direct-message-channels). For DMs from members who haven't, see [Direct messages from members without a Claude account](https://claude.com/docs/claude-tag/admins/restrict-access.md#access-in-a-direct-message-from-a-member-without-a-claude-account). ## How a request travels @@ -25,7 +25,7 @@ Each Slack thread runs in its own sandbox. In an Anthropic-hosted environment, e | Checkpoint | The guarantee | | :- | :- | | The sandbox | Holds none of the credentials you provision | -| Agent Proxy | Injects credentials from the credential store at request time, and blocks a request that no [credential's allowed websites](/docs/claude-tag/admins/add-connections.md#set-allowed-websites), [allowed domain](/docs/claude-tag/admins/add-connections.md#allow-a-host-without-a-credential), or [environment network access level](/docs/claude-tag/admins/add-connections.md#broad-web-access-through-the-environment) allows | +| Agent Proxy | Injects credentials from the credential store at request time, and blocks a request that no [credential's allowed websites](https://claude.com/docs/claude-tag/admins/add-connections.md#set-allowed-websites), [allowed domain](https://claude.com/docs/claude-tag/admins/add-connections.md#allow-a-host-without-a-credential), or [environment network access level](https://claude.com/docs/claude-tag/admins/add-connections.md#broad-web-access-through-the-environment) allows | | Your systems | See the agent's own accounts, so its actions there are attributable | ### Compute and the sandbox @@ -37,37 +37,37 @@ When a thread goes quiet, its sandbox is released; replying in the thread builds * **Persists:** The thread, its visible work, and anything pushed to a branch, opened as a pull request, or posted into Slack. * **Does not persist:** Files that existed only inside the sandbox. To keep generated files, ask Claude to push them to a branch or post them in the thread. -Claude Tag retains channel memory and session transcripts. Because of that retention, Claude Tag isn't available to organizations with Zero Data Retention (ZDR) enabled. Claude Tag also isn't available to organizations with a customer-managed encryption (CMEK) policy, or to organizations that have the [HIPAA configuration applied to Claude Code (local mode) and Cowork (local mode)](/docs/claude-tag/admins/healthcare.md#plan-and-organization-requirements). +Claude Tag retains channel memory and session transcripts. Because of that retention, Claude Tag isn't available to organizations with Zero Data Retention (ZDR) enabled. Claude Tag also isn't available to organizations with a customer-managed encryption (CMEK) policy, or to organizations that have the [HIPAA configuration applied to Claude Code (local mode) and Cowork (local mode)](https://claude.com/docs/claude-tag/admins/healthcare.md#plan-and-organization-requirements). ### Credential storage -Credentials you provision are kept in a separate credential store, not in the proxy itself. When an outbound request matches a rule, [Agent Proxy](/docs/claude-tag/concepts/agent-identity.md#agent-proxy), the network layer between the sandbox and any external host, retrieves the credential from that store and injects it at the boundary, so the model and the sandbox are not given the key. +Credentials you provision are kept in a separate credential store, not in the proxy itself. When an outbound request matches a rule, [Agent Proxy](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy), the network layer between the sandbox and any external host, retrieves the credential from that store and injects it at the boundary, so the model and the sandbox are not given the key. This means: * **A saved credential is not displayed again.** The setup screens are write-only. * **The credential travels only to the hosts you named** when you added it. -* **You can narrow the credential further**, to one host, one path prefix, or read-only methods; see [Restrict by path or method](/docs/claude-tag/admins/add-connections.md#restrict-by-path-or-method). +* **You can narrow the credential further**, to one host, one path prefix, or read-only methods; see [Restrict by path or method](https://claude.com/docs/claude-tag/admins/add-connections.md#restrict-by-path-or-method). ### Network egress -In an Anthropic-hosted environment, outbound traffic from a channel session's sandbox is default-deny. Requests go only to hosts an allow layer covers, and the layers are a [credential's allowed websites](/docs/claude-tag/admins/connections/custom.md#fill-out-the-custom-tool-form), the [allowed domains](/docs/claude-tag/admins/add-connections.md#allow-a-host-without-a-credential) that apply to the channel, and the network access setting of the [environment](/docs/claude-tag/concepts/glossary.md#environment) the scope's sessions run on. A new environment's default level, Trusted access, already covers a [documented set of package registries and developer hosts](https://code.claude.com/docs/en/cloud-environments#default-allowed-domains). See [Agent Proxy](/docs/claude-tag/concepts/agent-identity.md#agent-proxy) for what happens to a request under each layer. +In an Anthropic-hosted environment, outbound traffic from a channel session's sandbox is default-deny. Requests go only to hosts an allow layer covers, and the layers are a [credential's allowed websites](https://claude.com/docs/claude-tag/admins/connections/custom.md#fill-out-the-custom-tool-form), the [allowed domains](https://claude.com/docs/claude-tag/admins/add-connections.md#allow-a-host-without-a-credential) that apply to the channel, and the network access setting of the [environment](https://claude.com/docs/claude-tag/concepts/glossary.md#environment) the scope's sessions run on. A new environment's default level, Trusted access, already covers a [documented set of package registries and developer hosts](https://code.claude.com/docs/en/cloud-environments#default-allowed-domains). See [Agent Proxy](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy) for what happens to a request under each layer. ![Flow diagram across two zones, labeled Anthropic's infrastructure and your systems. In the first zone, a session sandbox that holds no stored credentials sends every outbound request to Agent Proxy, which matches it against admin rules. Three outcomes branch toward your systems: on a rule match, the credential is attached at the boundary and the request proceeds; on an allowlist-only match, from an allowed domain or the environment's network access setting, the request is sent without credentials; on no match, the request is blocked entirely (the default-deny outcome) and the host is unreachable.](https://mintcdn.com/claude-ai/f29MqpCRlPctgTn5/images/claude-tag/diagrams/proxy-decision.svg?fit=max\&auto=format\&n=f29MqpCRlPctgTn5\&q=85\&s=f87bc9ca2d2de09e4feda0a60695e9bd) -Because requests to any other host are blocked, data can only leave the sandbox to hosts an allow layer covers. An admin sets the allowed websites on each credential and the allowed domains. An admin sets the environment's network access level, which defaults to Trusted access, from the **Cloud environments** page in [admin settings](https://claude.ai/admin-settings). See [Set allowed websites](/docs/claude-tag/admins/add-connections.md#set-allowed-websites) and [Allow a host without a credential](/docs/claude-tag/admins/add-connections.md#allow-a-host-without-a-credential). +Because requests to any other host are blocked, data can only leave the sandbox to hosts an allow layer covers. An admin sets the allowed websites on each credential and the allowed domains. An admin sets the environment's network access level, which defaults to Trusted access, from the **Cloud environments** page in [admin settings](https://claude.ai/admin-settings). See [Set allowed websites](https://claude.com/docs/claude-tag/admins/add-connections.md#set-allowed-websites) and [Allow a host without a credential](https://claude.com/docs/claude-tag/admins/add-connections.md#allow-a-host-without-a-credential). -Allow-all egress is a `*` domain. The entry admits requests to any host on the ports it lists, still without credentials. Private and internal network addresses and cloud metadata endpoints remain blocked. See [Allow all hosts](/docs/claude-tag/admins/add-connections.md#allow-all-hosts). +Allow-all egress is a `*` domain. The entry admits requests to any host on the ports it lists, still without credentials. Private and internal network addresses and cloud metadata endpoints remain blocked. See [Allow all hosts](https://claude.com/docs/claude-tag/admins/add-connections.md#allow-all-hosts). ### Service accounts -In channels, Claude acts under service credentials of its own, not under the account of the person who tagged it. The Slack surface is the Claude app, code work goes through the Claude GitHub App, and every other connected tool uses a service account whose credential a [connector](/docs/claude-tag/concepts/glossary.md#connection) holds. See [How agent identity works](/docs/claude-tag/concepts/agent-identity.md) for the full model. +In channels, Claude acts under service credentials of its own, not under the account of the person who tagged it. The Slack surface is the Claude app, code work goes through the Claude GitHub App, and every other connected tool uses a service account whose credential a [connector](https://claude.com/docs/claude-tag/concepts/glossary.md#connection) holds. See [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md) for the full model. -A connector's credential belongs to that agent identity and is shared by everyone in the channels where it applies. Anyone in one of those channels can ask Claude to act with the credential, so whatever the connected account can read or write is available to every member of those channels. Connect a dedicated identity you control for each service, such as a `claude@yourcompany.example.com` seat or a native service account, rather than a personal login. A dedicated account keeps the agent's actions separately auditable in each tool's logs and lets you revoke its access without affecting a person; see [Create a dedicated account per service](/docs/claude-tag/admins/add-connections.md#create-a-dedicated-account-per-service). +A connector's credential belongs to that agent identity and is shared by everyone in the channels where it applies. Anyone in one of those channels can ask Claude to act with the credential, so whatever the connected account can read or write is available to every member of those channels. Connect a dedicated identity you control for each service, such as a `claude@yourcompany.example.com` seat or a native service account, rather than a personal login. A dedicated account keeps the agent's actions separately auditable in each tool's logs and lets you revoke its access without affecting a person; see [Create a dedicated account per service](https://claude.com/docs/claude-tag/admins/add-connections.md#create-a-dedicated-account-per-service). -One-to-one DMs with `@Claude` from a member who has connected a Claude account run on that member's own claude.ai account instead, with that member's personal connectors, and work there is attributed to them, except pull requests, which the Claude GitHub App authors from DMs as well. For DMs from members who haven't, see [Direct messages from members without a Claude account](/docs/claude-tag/admins/restrict-access.md#access-in-a-direct-message-from-a-member-without-a-claude-account). An Owner can turn off DMs for the whole organization; see [Allow or disable direct messages](/docs/claude-tag/admins/restrict-access.md#allow-or-disable-direct-messages). +One-to-one DMs with `@Claude` from a member who has connected a Claude account run on that member's own claude.ai account instead, with that member's personal connectors, and work there is attributed to them, except pull requests, which the Claude GitHub App authors from DMs as well. For DMs from members who haven't, see [Direct messages from members without a Claude account](https://claude.com/docs/claude-tag/admins/restrict-access.md#access-in-a-direct-message-from-a-member-without-a-claude-account). An Owner can turn off DMs for the whole organization; see [Allow or disable direct messages](https://claude.com/docs/claude-tag/admins/restrict-access.md#allow-or-disable-direct-messages). -Claude uses a user's [personal connectors in a channel](/docs/claude-tag/concepts/personal-connectors.md) only for that user's own tasks, after the user allows it. The work runs with that user's permissions and is recorded under their name. Requests other people make to Claude in the task's thread run with the channel's own access, not with that user's connectors. Claude is designed to take direction from the connector's owner, treating what other people post in the thread as information for the task rather than as instructions, and the owner can tell Claude in the task's thread to stop. On the Enterprise plan, an admin can require [the user's review of every result](/docs/claude-tag/concepts/personal-connectors.md#admin-controls-for-personal-connectors) before it posts. See [Personal connectors in channels](/docs/claude-tag/concepts/personal-connectors.md). +Claude uses a user's [personal connectors in a channel](https://claude.com/docs/claude-tag/concepts/personal-connectors.md) only for that user's own tasks, after the user allows it. The work runs with that user's permissions and is recorded under their name. Requests other people make to Claude in the task's thread run with the channel's own access, not with that user's connectors. Claude is designed to take direction from the connector's owner, treating what other people post in the thread as information for the task rather than as instructions, and the owner can tell Claude in the task's thread to stop. On the Enterprise plan, an admin can require [the user's review of every result](https://claude.com/docs/claude-tag/concepts/personal-connectors.md#admin-controls-for-personal-connectors) before it posts. See [Personal connectors in channels](https://claude.com/docs/claude-tag/concepts/personal-connectors.md). ### Isolate credentials between channels @@ -75,7 +75,7 @@ A channel session can use only the access an admin applied in one of these place * **The channel itself.** Access added on the channel's page, or a bundle applied to the channel, reaches that channel only. * **The channel's workspace.** Access added on the workspace's page, or a bundle applied to the workspace, reaches every channel of that workspace. -* **All of Slack.** Access added on the **Slack** page, or a bundle applied there, reaches every channel of every paired workspace. The first credential you add for a service on the **Connectors** tab is on here as soon as you save it. See [how scopes inherit](/docs/claude-tag/admins/attach-to-scope.md#how-scopes-inherit). +* **All of Slack.** Access added on the **Slack** page, or a bundle applied there, reaches every channel of every paired workspace. The first credential you add for a service on the **Connectors** tab is on here as soon as you save it. See [how scopes inherit](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#how-scopes-inherit). * **A channel rule.** A bundle an Owner applies to a channel name pattern reaches every matching channel in all of Slack or in one workspace, including channels created or renamed later. Access applied anywhere else in your organization is invisible to the session, and no request from the session's sandbox can carry a credential that doesn't apply to its channel. @@ -88,20 +88,20 @@ To confine a credential to one channel: * In a bundle whose **Where it applies** list holds only that channel. * From the channel's page. Under **Claude's access**, click **Add** and select **Connector**. On the dialog's **Connectors** tab, select the service under **Connect new** and click **Continue**. The credential you enter in the connect form applies in that channel only. * On the page of a connector already on the **Connectors** tab, select **Add credential** from the **⋮** menu at the top of the page. The new credential is off everywhere until you pick it in the channel's row under **Assign access**, selecting **Add place** if the channel isn't listed. -2. Keep the channel private. Access on a public channel [reaches anyone who joins](/docs/claude-tag/admins/attach-to-scope.md#attach-to-a-channel). +2. Keep the channel private. Access on a public channel [reaches anyone who joins](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#attach-to-a-channel). 3. Open the channel from the **Channels** tab under **Claude's access** at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag) and check its **Claude's access** table. It lists the access that reaches the channel, and an item a bundle brings is listed under that bundle's row. The **Inheritance** column shows whether each bundle, and each item outside a bundle, was added on the channel's page or inherited from the workspace or from **Slack**. -In a channel shared with another company through [Slack Connect](/docs/claude-tag/admins/restrict-access.md#slack-connect-channels), once Claude is turned on there, it has the connector credentials from the [bundles attached directly to that channel](/docs/claude-tag/admins/restrict-access.md#what-access-claude-has-in-a-slack-connect-channel), including bundles attached before the channel was shared. It also has those from any bundle attached specifically for Slack Connect channels, and it can use them for anyone it answers there, including the other company's people. Credentials inherited from the workspace or the **Slack** page don't reach that channel, and neither do members' [personal connectors](/docs/claude-tag/concepts/personal-connectors.md). Before you share a channel that already has bundles, check its **Claude's access** table and [remove the channel from any bundle](/docs/claude-tag/admins/attach-to-scope.md#choose-where-a-bundle-applies) you don't want used for the other company's people. +In a channel shared with another company through [Slack Connect](https://claude.com/docs/claude-tag/admins/restrict-access.md#slack-connect-channels), once Claude is turned on there, it has the connector credentials from the [bundles attached directly to that channel](https://claude.com/docs/claude-tag/admins/restrict-access.md#what-access-claude-has-in-a-slack-connect-channel), including bundles attached before the channel was shared. It also has those from any bundle attached specifically for Slack Connect channels, and it can use them for anyone it answers there, including the other company's people. Credentials inherited from the workspace or the **Slack** page don't reach that channel, and neither do members' [personal connectors](https://claude.com/docs/claude-tag/concepts/personal-connectors.md). Before you share a channel that already has bundles, check its **Claude's access** table and [remove the channel from any bundle](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#choose-where-a-bundle-applies) you don't want used for the other company's people. -When you ask Claude in one channel to post into another, Claude works with the access and instructions of the channel you asked in, not the target channel's. From a private channel, Claude doesn't post anywhere else, and nothing asked elsewhere makes Claude post into a private channel. [What Claude can do in other channels](/docs/claude-tag/concepts/how-it-works.md#what-claude-can-do-in-other-channels) covers where Claude can post from each place you ask. +When you ask Claude in one channel to post into another, Claude works with the access and instructions of the channel you asked in, not the target channel's. From a private channel, Claude doesn't post anywhere else, and nothing asked elsewhere makes Claude post into a private channel. [What Claude can do in other channels](https://claude.com/docs/claude-tag/concepts/how-it-works.md#what-claude-can-do-in-other-channels) covers where Claude can post from each place you ask. -Isolating a credential doesn't isolate what Claude knows. The [workspace notes](/docs/claude-tag/users/memory.md) it saves from a public channel are read by sessions in every channel of the workspace, and it can [search public channels by keyword](/docs/claude-tag/admins/restrict-access.md#controls-that-aren%E2%80%99t-available) without being added to them, the same way any workspace member can. +Isolating a credential doesn't isolate what Claude knows. The [workspace notes](https://claude.com/docs/claude-tag/users/memory.md) it saves from a public channel are read by sessions in every channel of the workspace, and it can [search public channels by keyword](https://claude.com/docs/claude-tag/admins/restrict-access.md#controls-that-aren%E2%80%99t-available) without being added to them, the same way any workspace member can. ## Artifact visibility -A session can publish an artifact, a web page hosted on claude.ai with the link posted in the thread, and the page stays available after the sandbox is released. Anyone with access to the source Slack channel can open it, which in a public channel covers everyone in the workspace. Someone who opens the link without that access can't see the page and has no option to request access. There is no share setting for anyone to change. Updates go through Claude: ask in the Slack thread, or [send Claude a comment on the page](/docs/claude-tag/users/use-cases/create-artifacts.md#comment-on-the-page-to-ask-for-changes), which anyone who can post in the channel can do. +A session can publish an artifact, a web page hosted on claude.ai with the link posted in the thread, and the page stays available after the sandbox is released. Anyone with access to the source Slack channel can open it, which in a public channel covers everyone in the workspace. Someone who opens the link without that access can't see the page and has no option to request access. There is no share setting for anyone to change. Updates go through Claude: ask in the Slack thread, or [send Claude a comment on the page](https://claude.com/docs/claude-tag/users/use-cases/create-artifacts.md#comment-on-the-page-to-ask-for-changes), which anyone who can post in the channel can do. -While a Slack guest is in a channel set to [**Channel only**](/docs/claude-tag/admins/restrict-access.md#how-channel-only-works), Claude doesn't publish artifacts there. +While a Slack guest is in a channel set to [**Channel only**](https://claude.com/docs/claude-tag/admins/restrict-access.md#how-channel-only-works), Claude doesn't publish artifacts there. Artifacts you publish from your own Claude Code sessions work differently: they belong to you, and you control who can open them, with sharing options that depend on your plan and organization settings. See the [Claude Code artifacts documentation](https://code.claude.com/docs/en/artifacts). @@ -112,11 +112,11 @@ By default, anyone in a connected Slack workspace can invoke Claude in channels, * **Team plans**: **Restrict to your organization** limits Claude to people with a Claude account in your organization * **Enterprise plans**: **Restrict to roles with Claude Tag access** limits Claude to members whose role grants the **Claude Tag in Slack** capability -See [Restrict who can use Claude](/docs/claude-tag/admins/restrict-access.md#restrict-who-can-use-claude). The restriction governs DMs as well as channels. +See [Restrict who can use Claude](https://claude.com/docs/claude-tag/admins/restrict-access.md#restrict-who-can-use-claude). The restriction governs DMs as well as channels. ## Related resources -* [How agent identity works](/docs/claude-tag/concepts/agent-identity.md): the identity model in full, including DM attribution -* [Data lifecycle and deletion](/docs/claude-tag/concepts/data-lifecycle.md): what Anthropic stores, how long it's kept, and what each action deletes -* [Restrict where Claude Tag operates](/docs/claude-tag/admins/restrict-access.md): the controls that exist and the ones that don't -* [Audit Claude Tag activity](/docs/claude-tag/admins/audit.md): the trails for tracing what it did +* [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md): the identity model in full, including DM attribution +* [Data lifecycle and deletion](https://claude.com/docs/claude-tag/concepts/data-lifecycle.md): what Anthropic stores, how long it's kept, and what each action deletes +* [Restrict where Claude Tag operates](https://claude.com/docs/claude-tag/admins/restrict-access.md): the controls that exist and the ones that don't +* [Audit Claude Tag activity](https://claude.com/docs/claude-tag/admins/audit.md): the trails for tracing what it did diff --git a/content/claude/claude-tag/concepts/settings-map.md b/content/claude/claude-tag/concepts/settings-map.md index 95c530b3e..329e3d29b 100644 --- a/content/claude/claude-tag/concepts/settings-map.md +++ b/content/claude/claude-tag/concepts/settings-map.md @@ -14,51 +14,51 @@ Claude Tag's settings live on claude.ai, split across a few pages that each own | Surface | Who changes it | What it controls | | :- | :- | :- | -| [**Organization settings > Claude Tag**](https://claude.ai/admin-settings/claude-tag) | An Owner in your Claude organization, or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) on the Enterprise plan | Access, behavior, and restrictions for channels, mostly per [workspace and channel](/docs/claude-tag/concepts/glossary.md#scope) | +| [**Organization settings > Claude Tag**](https://claude.ai/admin-settings/claude-tag) | An Owner in your Claude organization, or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) on the Enterprise plan | Access, behavior, and restrictions for channels, mostly per [workspace and channel](https://claude.com/docs/claude-tag/concepts/glossary.md#scope) | | [Usage page](https://claude.ai/admin-settings/usage/claude-tag) | An admin | Spend limits and each channel's spend against them | | [Analytics page](https://claude.ai/analytics/claude-tag) | Anyone who can view the Analytics dashboard | Spend trends, projections, and per-channel reports; read-only | -| The **Configure** link in the footer of any Claude reply in a channel | Channel members (unless an admin restricts editing) and [channel managers](/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) for their assigned channels | One channel's instructions and whether Claude replies there without an @-mention. Channel managers also set the channel's default model, repositories, connections, and plugins | -| [Customize > Connectors](https://claude.ai/customize/connectors) on your own claude.ai account | You | Which of your personal tools apply in [one-to-one DMs](/docs/claude-tag/concepts/agent-identity.md#direct-message-channels) and for [your own tasks in a channel](/docs/claude-tag/concepts/personal-connectors.md) | +| The **Configure** link in the footer of any Claude reply in a channel | Channel members (unless an admin restricts editing) and [channel managers](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) for their assigned channels | One channel's instructions and whether Claude replies there without an @-mention. Channel managers also set the channel's default model, repositories, connections, and plugins | +| [Customize > Connectors](https://claude.ai/customize/connectors) on your own claude.ai account | You | Which of your personal tools apply in [one-to-one DMs](https://claude.com/docs/claude-tag/concepts/agent-identity.md#direct-message-channels) and for [your own tasks in a channel](https://claude.com/docs/claude-tag/concepts/personal-connectors.md) | -Channel memory and routines aren't in the table because you change them by talking to Claude in the channel; see [what anyone can change from the channel](/docs/claude-tag/admins/customize.md#change-behavior-from-the-channel). Owners can review both on the **Scheduled work** and **Memory** tabs of the [**Activity** page](/docs/claude-tag/admins/audit.md). Only an Owner can edit or delete memory entries. +Channel memory and routines aren't in the table because you change them by talking to Claude in the channel; see [what anyone can change from the channel](https://claude.com/docs/claude-tag/admins/customize.md#change-behavior-from-the-channel). Owners can review both on the **Scheduled work** and **Memory** tabs of the [**Activity** page](https://claude.com/docs/claude-tag/admins/audit.md). Only an Owner can edit or delete memory entries. ## Claude Tag admin settings -Everything an admin configures for channels lives at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag). Most settings there apply per scope (a channel, a workspace, or the whole organization), and each scope has its own page on the **Channels** tab under **Claude's access**. A scope without its own setting inherits from its parent, and a channel's setting overrides its workspace's, so two channels can run with different connectors, models, and instructions. Most controls need the Owner role or, on the Enterprise plan, the [**Claude Tag Admin** permission](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration); the [permissions table](/docs/claude-tag/admins/restrict-access.md#permissions-by-role) lists each action and who can take it. +Everything an admin configures for channels lives at [`claude.ai/admin-settings/claude-tag`](https://claude.ai/admin-settings/claude-tag). Most settings there apply per scope (a channel, a workspace, or the whole organization), and each scope has its own page on the **Channels** tab under **Claude's access**. A scope without its own setting inherits from its parent, and a channel's setting overrides its workspace's, so two channels can run with different connectors, models, and instructions. Most controls need the Owner role or, on the Enterprise plan, the [**Claude Tag Admin** permission](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration); the [permissions table](https://claude.com/docs/claude-tag/admins/restrict-access.md#permissions-by-role) lists each action and who can take it. -* **Bundles**: the connectors, domains, repositories, plugins, and instructions Claude uses in the workspaces and channels a bundle applies to. The **Connectors** and **Skills and plugins** tabs add a new connector, plugin, or skill. See [Give Claude access](/docs/claude-tag/admins/add-connections.md). -* **Custom instructions**: standing guidance Claude reads in every session on a scope. See [Add custom instructions](/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions). -* **Model**: the model new sessions in a scope start on, set in the **Model** row on the main Claude Tag page for the whole organization and on each workspace's and channel's page. The picker shows the models your organization allows for Claude Code, leaving out any that Claude Tag doesn't support, so it can be missing models you see in Claude Code itself. See [Choose the model for a scope](/docs/claude-tag/admins/customize.md#choose-the-model-for-a-scope). -* **Auto mode allow rules**: plain sentences that pre-approve actions Claude's permission checker would otherwise flag or stop in a scope's sessions. See [Auto mode allow rules](/docs/claude-tag/admins/customize.md#auto-mode-allow-rules). -* **Workspace pairing and restrictions**: which Slack workspaces are paired, whether DMs are allowed, guest-channel behavior, which channels Claude can search, who can invoke Claude, and which generation of the app answers in each scope (some Team plan organizations have a [single on-or-off switch](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-on-the-team-plan) in place of the per-scope setting). See [Restrict where Claude Tag operates](/docs/claude-tag/admins/restrict-access.md). -* **Channel name rules**: channel-name patterns that keep Claude out of matching channels, join it automatically to new public ones, or attach a bundle to every matching channel. See [Block or auto-join channels by name](/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name). -* **Personal connectors**: on the Enterprise plan, whether Claude holds every result of a member's connector task for that member's review before posting it, and the topics an Owner adds to the sensitive-content check. These settings apply to the whole organization rather than per scope, and you reach them with **Edit** on the **Personal connectors** row of the main Claude Tag page. See [Admin controls for personal connectors](/docs/claude-tag/concepts/personal-connectors.md#admin-controls-for-personal-connectors). +* **Bundles**: the connectors, domains, repositories, plugins, and instructions Claude uses in the workspaces and channels a bundle applies to. The **Connectors** and **Skills and plugins** tabs add a new connector, plugin, or skill. See [Give Claude access](https://claude.com/docs/claude-tag/admins/add-connections.md). +* **Custom instructions**: standing guidance Claude reads in every session on a scope. See [Add custom instructions](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions). +* **Model**: the model new sessions in a scope start on, set in the **Model** row on the main Claude Tag page for the whole organization and on each workspace's and channel's page. The picker shows the models your organization allows for Claude Code, leaving out any that Claude Tag doesn't support, so it can be missing models you see in Claude Code itself. See [Choose the model for a scope](https://claude.com/docs/claude-tag/admins/customize.md#choose-the-model-for-a-scope). +* **Auto mode allow rules**: plain sentences that pre-approve actions Claude's permission checker would otherwise flag or stop in a scope's sessions. See [Auto mode allow rules](https://claude.com/docs/claude-tag/admins/customize.md#auto-mode-allow-rules). +* **Workspace pairing and restrictions**: which Slack workspaces are paired, whether DMs are allowed, guest-channel behavior, which channels Claude can search, who can invoke Claude, and which generation of the app answers in each scope (some Team plan organizations have a [single on-or-off switch](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-on-the-team-plan) in place of the per-scope setting). See [Restrict where Claude Tag operates](https://claude.com/docs/claude-tag/admins/restrict-access.md). +* **Channel name rules**: channel-name patterns that keep Claude out of matching channels, join it automatically to new public ones, or attach a bundle to every matching channel. See [Block or auto-join channels by name](https://claude.com/docs/claude-tag/admins/restrict-access.md#block-or-auto-join-channels-by-name). +* **Personal connectors**: on the Enterprise plan, whether Claude holds every result of a member's connector task for that member's review before posting it, and the topics an Owner adds to the sensitive-content check. These settings apply to the whole organization rather than per scope, and you reach them with **Edit** on the **Personal connectors** row of the main Claude Tag page. See [Admin controls for personal connectors](https://claude.com/docs/claude-tag/concepts/personal-connectors.md#admin-controls-for-personal-connectors). ## Spend limits and usage -Spend limits live on the usage page at [`claude.ai/admin-settings/usage/claude-tag`](https://claude.ai/admin-settings/usage/claude-tag), separate from Claude Tag admin settings. The usage page holds the organization-wide spend limit, the default spend limit for channels, per-channel limits, and each channel's spend against its limit. If your organization bills through a reseller, this page is not available. See [Set a spend limit](/docs/claude-tag/admins/set-spend-limit.md) for funding the usage balance and what users see when a limit is reached. +Spend limits live on the usage page at [`claude.ai/admin-settings/usage/claude-tag`](https://claude.ai/admin-settings/usage/claude-tag), separate from Claude Tag admin settings. The usage page holds the organization-wide spend limit, the default spend limit for channels, per-channel limits, and each channel's spend against its limit. If your organization bills through a reseller, this page is not available. See [Set a spend limit](https://claude.com/docs/claude-tag/admins/set-spend-limit.md) for funding the usage balance and what users see when a limit is reached. Usage covered by a promotional credit isn't counted on the usage page and shows as \$0.00 there. To see each channel's list-price spend for the current month including covered usage, use the **List price** column of the **Spend by channel** table at [`claude.ai/analytics/claude-tag`](https://claude.ai/analytics/claude-tag). -Spend trends live at [`claude.ai/analytics/claude-tag`](https://claude.ai/analytics/claude-tag), the Claude Tag section of the Analytics dashboard. It shows total and projected spend, spend by channel, and [spend by kind of work](/docs/claude-tag/admins/set-spend-limit.md#see-spend-by-kind-of-work) for the period you pick, and anyone with permission to view the Analytics dashboard can open it. It has no controls; see [Usage analytics](/docs/claude-tag/admins/restrict-access.md#usage-analytics). +Spend trends live at [`claude.ai/analytics/claude-tag`](https://claude.ai/analytics/claude-tag), the Claude Tag section of the Analytics dashboard. It shows total and projected spend, spend by channel, and [spend by kind of work](https://claude.com/docs/claude-tag/admins/set-spend-limit.md#see-spend-by-kind-of-work) for the period you pick, and anyone with permission to view the Analytics dashboard can open it. It has no controls; see [Usage analytics](https://claude.com/docs/claude-tag/admins/restrict-access.md#usage-analytics). ## The Configure page -Every Claude reply in a channel ends with a footer, and its **Configure** link opens a claude.ai page for that channel; replies in DMs have no Configure link. You can also send [`@Claude !configure`](/docs/claude-tag/users/commands#get-the-link-to-configure-a-channel) in the channel, and Claude replies with a link to the same page. +Every Claude reply in a channel ends with a footer, and its **Configure** link opens a claude.ai page for that channel; replies in DMs have no Configure link. You can also send [`@Claude !configure`](https://claude.com/docs/claude-tag/users/commands#get-the-link-to-configure-a-channel) in the channel, and Claude replies with a link to the same page. -Anyone in the channel who is also a member of your Claude organization can edit the **Channel instructions** field on that page, unless an admin has [restricted editing to admins](/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions). The page's **Respond automatically** toggle controls whether Claude replies in the channel without an @-mention; see [Turn automatic replies on or off](/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off). +Anyone in the channel who is also a member of your Claude organization can edit the **Channel instructions** field on that page, unless an admin has [restricted editing to admins](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions). The page's **Respond automatically** toggle controls whether Claude replies in the channel without an @-mention; see [Turn automatic replies on or off](https://claude.com/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off). The page's **Tools and access** tab shows the channel's resolved connections and any allowed domains. Members can see those lists but not change them there. The same tab's **Plugins** card lists the channel's plugins, and members can add plugins there unless an admin has restricted editing to admins. A **Routines** tab lists the channel's routines with each one's schedule, status, and last run. -The Configure page and the **Channel instructions** field on the channel's page in admin settings write the same instructions, so a change from either place is visible in the other. See [Configure Claude for a channel](/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel). +The Configure page and the **Channel instructions** field on the channel's page in admin settings write the same instructions, so a change from either place is visible in the other. See [Configure Claude for a channel](https://claude.com/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel). -On the Enterprise plan, an Owner can name [channel managers](/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) for a channel, and so can a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) whose role also sets **Identity & Access** to **Can manage**. For channel managers, the same page adds editable cards: the channel's default model on the **General** tab, and **GitHub repositories** and **Access bundles** on the **Tools and access** tab. +On the Enterprise plan, an Owner can name [channel managers](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) for a channel, and so can a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) whose role also sets **Identity & Access** to **Can manage**. For channel managers, the same page adds editable cards: the channel's default model on the **General** tab, and **GitHub repositories** and **Access bundles** on the **Tools and access** tab. ## Personal connectors on claude.ai -Connectors you add to your own claude.ai account, under **Customize > Connectors**, apply in one-to-one DMs with Claude, because [a DM runs on your own account](/docs/claude-tag/concepts/agent-identity.md#direct-message-channels). A channel session uses the connections an admin attached to it. Claude can also [use your personal connectors there](/docs/claude-tag/concepts/personal-connectors.md) for your own tasks, after you allow it. Slack has no connector settings of its own. +Connectors you add to your own claude.ai account, under **Customize > Connectors**, apply in one-to-one DMs with Claude, because [a DM runs on your own account](https://claude.com/docs/claude-tag/concepts/agent-identity.md#direct-message-channels). A channel session uses the connections an admin attached to it. Claude can also [use your personal connectors there](https://claude.com/docs/claude-tag/concepts/personal-connectors.md) for your own tasks, after you allow it. Slack has no connector settings of its own. -See [connectors on claude.ai](/docs/connectors/getting-started.md) for setting one up, and [the troubleshooting entry](/docs/claude-tag/users/troubleshooting.md#a-connector-works-on-claude-ai-but-not-in-slack) if a connector you use on claude.ai is missing in Slack. +See [connectors on claude.ai](https://claude.com/docs/connectors/getting-started.md) for setting one up, and [the troubleshooting entry](https://claude.com/docs/claude-tag/users/troubleshooting.md#a-connector-works-on-claude-ai-but-not-in-slack) if a connector you use on claude.ai is missing in Slack. ## Claude Tag versus Claude Managed Agents @@ -68,6 +68,6 @@ The two products don't share settings. Nothing in Claude Tag admin settings conf ## Related resources -* [Customize Claude Tag](/docs/claude-tag/admins/customize.md): the layers that shape Claude's behavior in a channel and who sets each one -* [How agent identity works](/docs/claude-tag/concepts/agent-identity.md): why channels and DMs use different access -* [Set up Claude Tag](/docs/claude-tag/admins/setup-overview): pair a workspace, launch, and give Claude access +* [Customize Claude Tag](https://claude.com/docs/claude-tag/admins/customize.md): the layers that shape Claude's behavior in a channel and who sets each one +* [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md): why channels and DMs use different access +* [Set up Claude Tag](https://claude.com/docs/claude-tag/admins/setup-overview): pair a workspace, launch, and give Claude access diff --git a/content/claude/claude-tag/overview.md b/content/claude/claude-tag/overview.md index 2124698ce..18c2b3111 100644 --- a/content/claude/claude-tag/overview.md +++ b/content/claude/claude-tag/overview.md @@ -10,7 +10,7 @@ Public Beta Tag @Claude in. Get results back in the thread. Anyone in a Slack channel can tag Claude into a problem and hand it work: reproduce a bug and open a pull request, turn a decision thread into a doc, assemble the state of a project. It posts a checklist in the thread as it goes, and the whole exchange stays visible to the channel. -[I'm setting it up →](/docs/claude-tag/admins/setup-overview) +[I'm setting it up →](https://claude.com/docs/claude-tag/admins/setup-overview) [Use it in your channel ↓](#put-claude-tag-to-work) \# platform-eng @@ -35,41 +35,41 @@ In progress: Opening a pull request with the fix… ## Plans that include Claude Tag -Claude Tag is available on Team and Enterprise plans, on Anthropic's first-party service. It isn't available on individual plans (Free, Pro, or Max), or for third-party deployments. To use it, your organization pairs its Slack workspace with its Claude organization; see [the setup overview](/docs/claude-tag/admins/setup-overview) for the full prerequisites. +Claude Tag is available on Team and Enterprise plans, on Anthropic's first-party service. It isn't available on individual plans (Free, Pro, or Max), or for third-party deployments. To use it, your organization pairs its Slack workspace with its Claude organization; see [the setup overview](https://claude.com/docs/claude-tag/admins/setup-overview) for the full prerequisites. -If you're choosing between Claude products for Slack-shaped work, [how Claude Tag differs from Cowork and Claude Code](/docs/claude-tag/concepts/how-it-works.md#how-claude-tag-differs-from-cowork-and-claude-code) compares them directly: team work in shared channels is Claude Tag; personal work on your own files is Cowork or Claude Code. +If you're choosing between Claude products for Slack-shaped work, [how Claude Tag differs from Cowork and Claude Code](https://claude.com/docs/claude-tag/concepts/how-it-works.md#how-claude-tag-differs-from-cowork-and-claude-code) compares them directly: team work in shared channels is Claude Tag; personal work on your own files is Cowork or Claude Code. ### Who needs a Claude seat Slack users don't each need a Claude seat to work with Claude in channels. -* **In channels**: by default, anyone in the paired Slack workspace can tag `@Claude` in a channel, and an Owner can [restrict who can use Claude](/docs/claude-tag/admins/restrict-access.md#restrict-who-can-use-claude) to people in your Claude organization or, on Enterprise, to specific roles. Channel work bills by usage to your organization's usage balance, under a [spend limit](/docs/claude-tag/admins/set-spend-limit.md) an Owner sets. -* **In group DMs**: the same restriction on who can use Claude applies, and the work bills to your organization's usage balance. See [Group DMs](/docs/claude-tag/admins/restrict-access.md#group-dms). -* **In one-to-one DMs**: a DM from a member who has connected a Claude account runs on that account and bills to that person's seat. The seat must include Claude Code, or, on the Enterprise plan, be a **Standard** or **Usage-Based Chat** seat held by someone who also has Cowork. A [DM from a member who hasn't connected a Claude account](/docs/claude-tag/admins/restrict-access.md#direct-messages-from-members-without-a-claude-account) can bill to your organization for a limited time. +* **In channels**: by default, anyone in the paired Slack workspace can tag `@Claude` in a channel, and an Owner can [restrict who can use Claude](https://claude.com/docs/claude-tag/admins/restrict-access.md#restrict-who-can-use-claude) to people in your Claude organization or, on Enterprise, to specific roles. Channel work bills by usage to your organization's usage balance, under a [spend limit](https://claude.com/docs/claude-tag/admins/set-spend-limit.md) an Owner sets. +* **In group DMs**: the same restriction on who can use Claude applies, and the work bills to your organization's usage balance. See [Group DMs](https://claude.com/docs/claude-tag/admins/restrict-access.md#group-dms). +* **In one-to-one DMs**: a DM from a member who has connected a Claude account runs on that account and bills to that person's seat. The seat must include Claude Code, or, on the Enterprise plan, be a **Standard** or **Usage-Based Chat** seat held by someone who also has Cowork. A [DM from a member who hasn't connected a Claude account](https://claude.com/docs/claude-tag/admins/restrict-access.md#direct-messages-from-members-without-a-claude-account) can bill to your organization for a limited time. ## Where Claude Tag runs Claude Tag works in Slack. You interact with it by writing in a Slack channel, thread, or direct message, and it replies there. Mention `@Claude` in a channel to guarantee it picks the message up. -When Claude works on a task, it runs in an ephemeral sandbox, not on your computer. The sandbox is created when a conversation starts, holds any code or files Claude is working with, and is discarded when the conversation goes idle. See [how Claude Tag works](/docs/claude-tag/concepts/how-it-works.md) for the full lifecycle. +When Claude works on a task, it runs in an ephemeral sandbox, not on your computer. The sandbox is created when a conversation starts, holds any code or files Claude is working with, and is discarded when the conversation goes idle. See [how Claude Tag works](https://claude.com/docs/claude-tag/concepts/how-it-works.md) for the full lifecycle. -You extend what Claude can reach, like your repositories, ticketing systems, data warehouses, and custom tools, through [Claude Tag connectors](/docs/claude-tag/admins/add-connections.md), [plugins, and skills](/docs/claude-tag/admins/customize.md). An Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) configures these for all of Slack, for one workspace, or for one channel. Members' own claude.ai connectors are separate from that configuration; Claude can use them in a channel for the member's own requests, as [personal connectors in channels](/docs/claude-tag/concepts/personal-connectors.md) describes. +You extend what Claude can reach, like your repositories, ticketing systems, data warehouses, and custom tools, through [Claude Tag connectors](https://claude.com/docs/claude-tag/admins/add-connections.md), [plugins, and skills](https://claude.com/docs/claude-tag/admins/customize.md). An Owner or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) configures these for all of Slack, for one workspace, or for one channel. Members' own claude.ai connectors are separate from that configuration; Claude can use them in a channel for the member's own requests, as [personal connectors in channels](https://claude.com/docs/claude-tag/concepts/personal-connectors.md) describes. For administrators Set up Claude Tag ![](https://mintcdn.com/claude-ai/5JFKyLlO7sHMMf5J/images/claude-tag/illustrations/Hand-Key.svg?fit=max\&auto=format\&n=5JFKyLlO7sHMMf5J\&q=85\&s=1b7a9675728f971bc7a4663c7f1ea599) -[Open](/docs/claude-tag/admins/setup-overview) +[Open](https://claude.com/docs/claude-tag/admins/setup-overview) [Where do I start? -Pair your Slack workspace, launch, and test that it works](/docs/claude-tag/admins/setup-overview) +Pair your Slack workspace, launch, and test that it works](https://claude.com/docs/claude-tag/admins/setup-overview) [What can Claude Tag access? -How admins set access per channel, and where credentials are stored](/docs/claude-tag/concepts/agent-identity.md) +How admins set access per channel, and where credentials are stored](https://claude.com/docs/claude-tag/concepts/agent-identity.md) [How do I connect each service? -Credential types, allowed hosts, and what each connection lets Claude reach](/docs/claude-tag/admins/add-connections.md) +Credential types, allowed hosts, and what each connection lets Claude reach](https://claude.com/docs/claude-tag/admins/add-connections.md) For end users Put Claude Tag to work @@ -79,54 +79,54 @@ Put Claude Tag to work [Open](#put-claude-tag-to-work) [How do I hand Claude Tag a task? -Mention Claude in any channel it's in, with nothing to install](/docs/claude-tag/users/getting-started.md) +Mention Claude in any channel it's in, with nothing to install](https://claude.com/docs/claude-tag/users/getting-started.md) [What is Claude Tag good at? -Use cases for coding, data, incidents, and go-to-market](/docs/claude-tag/users/use-cases.md) +Use cases for coding, data, incidents, and go-to-market](https://claude.com/docs/claude-tag/users/use-cases.md) [How do I get good results? -Good habits for scoping and reviewing work](/docs/claude-tag/users/good-habits.md) +Good habits for scoping and reviewing work](https://claude.com/docs/claude-tag/users/good-habits.md) [What does Claude Tag remember? -Channel memory, what's shared across the workspace, and who can see what](/docs/claude-tag/users/memory.md) +Channel memory, what's shared across the workspace, and who can see what](https://claude.com/docs/claude-tag/users/memory.md) [Can Claude Tag run tasks on a schedule? -Scheduled jobs, channel watching, and triggers](/docs/claude-tag/users/proactivity.md) +Scheduled jobs, channel watching, and triggers](https://claude.com/docs/claude-tag/users/proactivity.md) ## Billing and spend limits -Adding Claude to Slack doesn't add a per-seat charge. Channel, thread, and group DM work is billed by usage instead: it draws from a **usage balance**, an amount in your organization's billing currency that an Owner funds. A [spend limit](/docs/claude-tag/admins/set-spend-limit.md) caps how much of that balance Claude Tag can use each billing period. +Adding Claude to Slack doesn't add a per-seat charge. Channel, thread, and group DM work is billed by usage instead: it draws from a **usage balance**, an amount in your organization's billing currency that an Owner funds. A [spend limit](https://claude.com/docs/claude-tag/admins/set-spend-limit.md) caps how much of that balance Claude Tag can use each billing period. -One-to-one direct messages from members who have connected a Claude account don't draw from this balance. Such a DM runs on the sender's own claude.ai account and follows that seat's usual usage limits, so the organization spend limit doesn't apply to it. A [DM from a member who hasn't connected a Claude account](/docs/claude-tag/admins/restrict-access.md#direct-messages-from-members-without-a-claude-account) can draw from this balance. +One-to-one direct messages from members who have connected a Claude account don't draw from this balance. Such a DM runs on the sender's own claude.ai account and follows that seat's usual usage limits, so the organization spend limit doesn't apply to it. A [DM from a member who hasn't connected a Claude account](https://claude.com/docs/claude-tag/admins/restrict-access.md#direct-messages-from-members-without-a-claude-account) can draw from this balance. -To learn what your team's usage costs, run a pilot with a spend limit set and watch the per-channel breakdown on the [usage page in your admin settings](https://claude.ai/admin-settings/usage/claude-tag). [Set a spend limit](/docs/claude-tag/admins/set-spend-limit.md) covers how to fund the balance on each plan, set the limit, and what happens when usage reaches it. +To learn what your team's usage costs, run a pilot with a spend limit set and watch the per-channel breakdown on the [usage page in your admin settings](https://claude.ai/admin-settings/usage/claude-tag). [Set a spend limit](https://claude.com/docs/claude-tag/admins/set-spend-limit.md) covers how to fund the balance on each plan, set the limit, and what happens when usage reaches it. For end users ## Put Claude Tag to work -If Claude Tag is in your channel, you can use it now. (If it isn't there yet, an Owner in your Claude organization runs setup: see [Set up Claude Tag](/docs/claude-tag/admins/setup-overview).) Anyone in the channel can hand it work, and channel work bills to the organization, not to you. +If Claude Tag is in your channel, you can use it now. (If it isn't there yet, an Owner in your Claude organization runs setup: see [Set up Claude Tag](https://claude.com/docs/claude-tag/admins/setup-overview).) Anyone in the channel can hand it work, and channel work bills to the organization, not to you. -What it can reach starts with the channel you're in. The fastest way to find out is to ask it: `@Claude what can you access from this channel?` Or, if you're signed in to your Claude organization, click **Configure** in the footer of a Claude reply in the channel to see its [connections](/docs/claude-tag/concepts/glossary.md#connection), the external services an admin has connected for that channel. Replies in org-shared channels have no Configure link. +What it can reach starts with the channel you're in. The fastest way to find out is to ask it: `@Claude what can you access from this channel?` Or, if you're signed in to your Claude organization, click **Configure** in the footer of a Claude reply in the channel to see its [connections](https://claude.com/docs/claude-tag/concepts/glossary.md#connection), the external services an admin has connected for that channel. Replies in org-shared channels have no Configure link. -For your own requests, Claude can also [use the connectors on your claude.ai account](/docs/claude-tag/concepts/personal-connectors.md), after you allow it. +For your own requests, Claude can also [use the connectors on your claude.ai account](https://claude.com/docs/claude-tag/concepts/personal-connectors.md), after you allow it. -In a one-to-one DM, Claude runs on your own claude.ai account instead of a channel's setup. An Owner can turn off DMs for the whole organization; see [Allow or disable direct messages](/docs/claude-tag/admins/restrict-access.md#allow-or-disable-direct-messages). +In a one-to-one DM, Claude runs on your own claude.ai account instead of a channel's setup. An Owner can turn off DMs for the whole organization; see [Allow or disable direct messages](https://claude.com/docs/claude-tag/admins/restrict-access.md#allow-or-disable-direct-messages). ### Common uses Each link opens a guide with the prompts to paste and the connections the task needs. -* [Watch monitors and alerts](/docs/claude-tag/users/use-cases/watch-monitors.md): scheduled dashboard checks, and alerts investigated as they arrive. Needs a monitoring connection like Datadog, Sentry, or PagerDuty. -* [Triage requests](/docs/claude-tag/users/use-cases/triage-requests.md): an intake channel where Claude answers what it can, flags duplicates, and routes the rest. Works on Slack content alone. -* [Find answers in your docs](/docs/claude-tag/users/use-cases/find-answers.md): policy and runbook questions answered with the source. Needs a docs connection like Google Drive, Notion, or Confluence. -* [Answer data questions](/docs/claude-tag/users/use-cases/answer-data-questions.md): a plain-language question becomes a warehouse query and a chart. Needs a data warehouse connection. -* [Track projects and chase approvals](/docs/claude-tag/users/use-cases/track-projects.md): standing status digests and follow-ups that run until an approval lands -* [Turn threads into docs and tickets](/docs/claude-tag/users/use-cases/create-artifacts.md): a settled discussion becomes the decision doc, the customer reply, or the filed tickets -* [Fix bugs](/docs/claude-tag/users/use-cases/fix-bugs.md): a bug reported in the channel comes back as a draft pull request. Needs GitHub. -* [Work from your own channel](/docs/claude-tag/users/use-cases/your-own-channel.md): scratch questions, digests of channels you don't follow, and follow-ups on what you said you'd do +* [Watch monitors and alerts](https://claude.com/docs/claude-tag/users/use-cases/watch-monitors.md): scheduled dashboard checks, and alerts investigated as they arrive. Needs a monitoring connection like Datadog, Sentry, or PagerDuty. +* [Triage requests](https://claude.com/docs/claude-tag/users/use-cases/triage-requests.md): an intake channel where Claude answers what it can, flags duplicates, and routes the rest. Works on Slack content alone. +* [Find answers in your docs](https://claude.com/docs/claude-tag/users/use-cases/find-answers.md): policy and runbook questions answered with the source. Needs a docs connection like Google Drive, Notion, or Confluence. +* [Answer data questions](https://claude.com/docs/claude-tag/users/use-cases/answer-data-questions.md): a plain-language question becomes a warehouse query and a chart. Needs a data warehouse connection. +* [Track projects and chase approvals](https://claude.com/docs/claude-tag/users/use-cases/track-projects.md): standing status digests and follow-ups that run until an approval lands +* [Turn threads into docs and tickets](https://claude.com/docs/claude-tag/users/use-cases/create-artifacts.md): a settled discussion becomes the decision doc, the customer reply, or the filed tickets +* [Fix bugs](https://claude.com/docs/claude-tag/users/use-cases/fix-bugs.md): a bug reported in the channel comes back as a draft pull request. Needs GitHub. +* [Work from your own channel](https://claude.com/docs/claude-tag/users/use-cases/your-own-channel.md): scratch questions, digests of channels you don't follow, and follow-ups on what you said you'd do -[Get started](/docs/claude-tag/users/getting-started.md) covers your first message, what you see while Claude works, and how to shape Claude's behavior in your channel. +[Get started](https://claude.com/docs/claude-tag/users/getting-started.md) covers your first message, what you see while Claude works, and how to shape Claude's behavior in your channel. For administrators @@ -139,29 +139,29 @@ You set up Claude Tag once, at [`claude.ai/admin-settings/claude-tag`](https://c Once you launch, everyone in a channel Claude is in can use Claude Tag immediately, with no per-user setup. -Claude Tag starts with no access of its own to your external systems. After you launch, you connect the services Claude will work in, such as your issue tracker or data warehouse, and grant repositories to the Claude GitHub App. Members can also let Claude use their own [personal connectors](/docs/claude-tag/concepts/personal-connectors.md) for their requests. +Claude Tag starts with no access of its own to your external systems. After you launch, you connect the services Claude will work in, such as your issue tracker or data warehouse, and grant repositories to the Claude GitHub App. Members can also let Claude use their own [personal connectors](https://claude.com/docs/claude-tag/concepts/personal-connectors.md) for their requests. -[Set up Claude Tag](/docs/claude-tag/admins/setup-overview) walks through setup and connecting tools, with what to have ready, what each choice means, and how to verify Claude Tag works once you launch. +[Set up Claude Tag](https://claude.com/docs/claude-tag/admins/setup-overview) walks through setup and connecting tools, with what to have ready, what each choice means, and how to verify Claude Tag works once you launch. Security review -[Security and data handling](/docs/claude-tag/concepts/security-and-data.md) +[Security and data handling](https://claude.com/docs/claude-tag/concepts/security-and-data.md) The security model, what admins can and can't restrict, audit trails, and network requirements. ## Where to start with Claude Tag -> **[Set up Claude Tag](/docs/claude-tag/admins/setup-overview)** +> **[Set up Claude Tag](https://claude.com/docs/claude-tag/admins/setup-overview)** > > Admins: pair your Slack workspace and launch -> **[Hand Claude Tag your first task](/docs/claude-tag/users/getting-started.md)** +> **[Hand Claude Tag your first task](https://claude.com/docs/claude-tag/users/getting-started.md)** > > It's already in your channel: send your first message -> **[How Claude Tag works](/docs/claude-tag/concepts/how-it-works.md)** +> **[How Claude Tag works](https://claude.com/docs/claude-tag/concepts/how-it-works.md)** > > The session model, what it can read, and how memory follows places -> **[Use case library](/docs/claude-tag/users/use-cases.md)** +> **[Use case library](https://claude.com/docs/claude-tag/users/use-cases.md)** > > Prompts to paste, by team and connection diff --git a/content/claude/claude-tag/users/commands.md b/content/claude/claude-tag/users/commands.md index 3c67ba9b1..0aca2d2d1 100644 --- a/content/claude/claude-tag/users/commands.md +++ b/content/claude/claude-tag/users/commands.md @@ -22,7 +22,7 @@ A command is `@Claude` followed immediately by one of a few exact words starting Claude replies with the commands it understands in your workspace. The list can differ by workspace, since a command can be enabled for some workspaces and not others. -In a [Slack Connect channel](/docs/claude-tag/admins/restrict-access.md#slack-connect-channels), one shared with another company, only `!help`, `!mute`, `!unmute`, `!restart`, and `!fast` work, and people from the other company can use only `!help`. +In a [Slack Connect channel](https://claude.com/docs/claude-tag/admins/restrict-access.md#slack-connect-channels), one shared with another company, only `!help`, `!mute`, `!unmute`, `!restart`, and `!fast` work, and people from the other company can use only `!help`. ## Get the link to configure a channel @@ -30,7 +30,7 @@ In a [Slack Connect channel](/docs/claude-tag/admins/restrict-access.md#slack-co @Claude !configure ``` -Run `!configure` in a channel, and Claude replies in the thread with a link to that channel's Configure page on claude.ai. On that page you [tailor how Claude works in the channel](/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel), for example by editing its channel instructions, and it's the same page the **Configure** link in the footer of any Claude reply opens. In a DM with Claude there are no per-channel settings, so Claude replies there with a link to [Claude Tag admin settings](https://claude.ai/admin-settings/claude-tag) instead. +Run `!configure` in a channel, and Claude replies in the thread with a link to that channel's Configure page on claude.ai. On that page you [tailor how Claude works in the channel](https://claude.com/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel), for example by editing its channel instructions, and it's the same page the **Configure** link in the footer of any Claude reply opens. In a DM with Claude there are no per-channel settings, so Claude replies there with a link to [Claude Tag admin settings](https://claude.ai/admin-settings/claude-tag) instead. ## Restart a stuck or wrong-context session @@ -40,7 +40,7 @@ Run `!configure` in a channel, and Claude replies in the thread with a link to t Use this when a session is stuck, or when it's carrying context you don't want the next reply to build on. Claude archives the current session and starts a fresh one in its place. -Every thread Claude takes part in runs a session of its own, holding that one conversation. Some channels have one more session on top of the per-thread ones. That session belongs to the channel itself, and it's the session Claude works from at the channel's top level, outside any thread. When Claude [replies to a top-level message no one mentioned it in](/docs/claude-tag/users/when-claude-responds.md), the channel's session is the one replying. +Every thread Claude takes part in runs a session of its own, holding that one conversation. Some channels have one more session on top of the per-thread ones. That session belongs to the channel itself, and it's the session Claude works from at the channel's top level, outside any thread. When Claude [replies to a top-level message no one mentioned it in](https://claude.com/docs/claude-tag/users/when-claude-responds.md), the channel's session is the one replying. Where you run `!restart` picks which session gets replaced: @@ -73,7 +73,7 @@ I'm still working in this thread (started 6m ago). @Claude !mute ``` -Run `!mute` in a thread Claude is part of, and Claude stops replying there. Muting is per thread by design. Other threads, the channel's top level, [routine](/docs/claude-tag/users/proactivity.md) posts, and service notices are unaffected. +Run `!mute` in a thread Claude is part of, and Claude stops replying there. Muting is per thread by design. Other threads, the channel's top level, [routine](https://claude.com/docs/claude-tag/users/proactivity.md) posts, and service notices are unaffected. There's no channel-level mute. If you run `!mute` at a channel's top level, Claude posts this hint: @@ -81,7 +81,7 @@ There's no channel-level mute. If you run `!mute` at a channel's top level, Clau :mute: Muting works per thread — reply `@Claude !mute` (or `!unmute`) inside the thread you mean. ``` -To quiet unprompted replies across a whole channel, turn the channel's [**Respond automatically** setting](/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off) off. +To quiet unprompted replies across a whole channel, turn the channel's [**Respond automatically** setting](https://claude.com/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off) off. Unmute the same way: @@ -110,16 +110,16 @@ To get a corrected answer, @-mention Claude in the thread and say what was wrong @Claude !fast off ``` -`!fast` turns on [fast mode](/docs/claude-tag/users/models.md#run-a-thread-in-fast-mode), which gives faster output at a higher cost per token. `!fast on` does the same, and `!fast off` returns to standard speed. Any other text after `!fast` makes the message an ordinary prompt. +`!fast` turns on [fast mode](https://claude.com/docs/claude-tag/users/models.md#run-a-thread-in-fast-mode), which gives faster output at a higher cost per token. `!fast on` does the same, and `!fast off` returns to standard speed. Any other text after `!fast` makes the message an ordinary prompt. Fast mode runs on Opus models, so `!fast` can change the session's model as well as its speed. The footer of each Claude reply names the model the session is on. * **If the session is on an Opus model**, it stays on that model -* **If the session is on another model, such as Sonnet**, Claude switches it to the newest Opus model [you can use](/docs/claude-tag/users/models.md#which-models-you-can-use). The session stays on that model after `!fast off`. To go back, [ask Claude to switch models](/docs/claude-tag/users/models.md#switch-the-model-in-a-thread). +* **If the session is on another model, such as Sonnet**, Claude switches it to the newest Opus model [you can use](https://claude.com/docs/claude-tag/users/models.md#which-models-you-can-use). The session stays on that model after `!fast off`. To go back, [ask Claude to switch models](https://claude.com/docs/claude-tag/users/models.md#switch-the-model-in-a-thread). In both cases, replies speed up only if that Opus version [supports fast mode](https://code.claude.com/docs/en/fast-mode). -The command changes a different [session](/docs/claude-tag/concepts/glossary.md#session) depending on where you send it: +The command changes a different [session](https://claude.com/docs/claude-tag/concepts/glossary.md#session) depending on where you send it: * **In a thread**, it changes that thread's session. In a channel thread Claude isn't part of yet, `!fast` starts the thread's session in fast mode and switches its model the same way, so your next request there runs fast from the start. * **At a channel's top level**, it changes the channel's own session, the one Claude works from outside any thread. Thread sessions keep their speed. Claude's confirmation appears as a reply under your command. To turn fast mode off again, send `!fast off` at the top level, not in that reply thread. @@ -137,7 +137,7 @@ When Claude doesn't apply the command, its reply says why: | Claude replies | What to do | | :- | :- | -| `Fast mode isn't turned on for this organization. An organization owner can turn it on.` | Ask an Owner to [allow fast mode](/docs/claude-tag/admins/customize.md#allow-fast-mode) | +| `Fast mode isn't turned on for this organization. An organization owner can turn it on.` | Ask an Owner to [allow fast mode](https://claude.com/docs/claude-tag/admins/customize.md#allow-fast-mode) | | `Fast mode can't be changed for organizations with restricted compliance settings.` | Work at standard speed. Your organization's compliance settings don't allow fast mode. | | `Fast mode isn't available for this session.` | Run the command in a new thread. If Claude gives the same reply there, fast mode isn't available in this channel. | | `Only a workspace member who can use Claude here can change fast mode.` | Ask a full member of the workspace who can message Claude in this channel to run the command | @@ -163,7 +163,7 @@ Opens a form in Slack for sending feedback on Claude Tag to the team that builds @Claude !routines ``` -Claude replies in the thread with the [routines](/docs/claude-tag/users/proactivity.md) set up in the channel: the scheduled jobs, watched channels, and other standing work it runs there. The list covers only that channel's routines. +Claude replies in the thread with the [routines](https://claude.com/docs/claude-tag/users/proactivity.md) set up in the channel: the scheduled jobs, watched channels, and other standing work it runs there. The list covers only that channel's routines. * **For the current channel**, run `!routines` in that channel. * **For another channel**, add the channel mention or its ID, as in `@Claude !routines #other-channel`. You need to be a member of that channel, and it must belong to your organization. Claude sends the list in a reply only you can see, so that channel's routines aren't posted for everyone in the channel where you asked. @@ -194,6 +194,6 @@ If the fork can't be set up, Claude replies with a note only you can see, and no ## Related resources -* [Set up routines](/docs/claude-tag/users/proactivity.md): the standing work `!routines` lists, and how to create, edit, or disable it -* [Control when Claude Tag responds](/docs/claude-tag/users/when-claude-responds.md): what makes Claude reply without any command or mention at all -* [Restrict where Claude Tag operates](/docs/claude-tag/admins/restrict-access.md): the admin controls that decide who can message Claude at all, including its commands +* [Set up routines](https://claude.com/docs/claude-tag/users/proactivity.md): the standing work `!routines` lists, and how to create, edit, or disable it +* [Control when Claude Tag responds](https://claude.com/docs/claude-tag/users/when-claude-responds.md): what makes Claude reply without any command or mention at all +* [Restrict where Claude Tag operates](https://claude.com/docs/claude-tag/admins/restrict-access.md): the admin controls that decide who can message Claude at all, including its commands diff --git a/content/claude/claude-tag/users/getting-started.md b/content/claude/claude-tag/users/getting-started.md index da9d1d5f1..eae3f8276 100644 --- a/content/claude/claude-tag/users/getting-started.md +++ b/content/claude/claude-tag/users/getting-started.md @@ -10,22 +10,22 @@ > > Claude Tag is in public beta. Features and behavior described here may change before general availability. -Claude Tag is Claude working in your Slack workspace. You hand it work by writing a message where Claude is, and Claude carries it out in that thread. An `@Claude` mention guarantees a response in a channel, but it isn't required everywhere. One-to-one DMs and threads Claude is already in reach it without one. There's nothing for you to install or configure; if `@Claude` is in your channel, you can use it (unless your admin has [restricted who can invoke Claude](/docs/claude-tag/admins/restrict-access.md#restrict-who-can-use-claude)). +Claude Tag is Claude working in your Slack workspace. You hand it work by writing a message where Claude is, and Claude carries it out in that thread. An `@Claude` mention guarantees a response in a channel, but it isn't required everywhere. One-to-one DMs and threads Claude is already in reach it without one. There's nothing for you to install or configure; if `@Claude` is in your channel, you can use it (unless your admin has [restricted who can invoke Claude](https://claude.com/docs/claude-tag/admins/restrict-access.md#restrict-who-can-use-claude)). ## When to tag Claude in a channel versus a DM Where you tag Claude decides whose tools it uses and who sees the result. -* **Channel** for shared team work. The work happens in the open, so anything Claude does in the thread, including its checklist and results, is visible to everyone in the channel, and anyone can reply to steer the work. An admin sets what Claude can reach in each channel, and everyone who asks there gets the same access. By default you don't need a Claude account to tag Claude in a channel; the work bills to the organization. An admin can [restrict who can invoke Claude](/docs/claude-tag/admins/restrict-access.md#restrict-who-can-use-claude). +* **Channel** for shared team work. The work happens in the open, so anything Claude does in the thread, including its checklist and results, is visible to everyone in the channel, and anyone can reply to steer the work. An admin sets what Claude can reach in each channel, and everyone who asks there gets the same access. By default you don't need a Claude account to tag Claude in a channel; the work bills to the organization. An admin can [restrict who can invoke Claude](https://claude.com/docs/claude-tag/admins/restrict-access.md#restrict-who-can-use-claude). * Example: `@Claude where are we on the launch checklist? Pull what's still open from this channel and #design-review.` -* **DM** for personal tasks. A one-to-one DM with Claude runs on your own claude.ai account with [your own connectors](/docs/connectors/getting-started.md). Every DM message reaches Claude without an @-mention. You can also DM Claude questions about getting started, like how to word a task or what to try first. +* **DM** for personal tasks. A one-to-one DM with Claude runs on your own claude.ai account with [your own connectors](https://claude.com/docs/connectors/getting-started.md). Every DM message reaches Claude without an @-mention. You can also DM Claude questions about getting started, like how to word a task or what to try first. * Example: `Pull my afternoon meetings from my calendar and draft a one-line prep note for each.` -* **Group DM** for shared work among a few people, without creating a channel. Claude uses the access an admin set for the workspace and the organization, and the work bills to the organization. See [Use Claude Tag in a group DM](/docs/claude-tag/users/group-dms.md). +* **Group DM** for shared work among a few people, without creating a channel. Claude uses the access an admin set for the workspace and the organization, and the work bills to the organization. See [Use Claude Tag in a group DM](https://claude.com/docs/claude-tag/users/group-dms.md). * Example: `@Claude draft a rollout checklist for the pricing page change.` -See [team channels and personal DMs](/docs/claude-tag/concepts/how-it-works.md#team-channels-and-personal-dms) for the full comparison. +See [team channels and personal DMs](https://claude.com/docs/claude-tag/concepts/how-it-works.md#team-channels-and-personal-dms) for the full comparison. -If your workspace previously used the earlier Claude in Slack app, see [how Claude Tag differs](/docs/claude-tag/admins/migrate-from-earlier.md) for what has changed. +If your workspace previously used the earlier Claude in Slack app, see [how Claude Tag differs](https://claude.com/docs/claude-tag/admins/migrate-from-earlier.md) for what has changed. ## Add Claude to a channel @@ -55,13 +55,13 @@ A reply means it's running there, and the answer tells you what it can reach. When a person first invites Claude to a channel, it posts a short intro on its own: it reads the channel's history and suggests a few tasks it could pick up. The intro doesn't post when a bot adds Claude, in org-shared channels, or in channels that already have memory. -The footer under each reply names the model that handled it. You can [choose a different model](/docs/claude-tag/users/models.md) yourself, and admins [set the default model for each channel](/docs/claude-tag/admins/customize.md#choose-the-model-for-a-scope). In a channel, the footer also has a **Configure** link; open it to [tailor how Claude works in this channel](/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel). Replies in DMs and in org-shared channels have no Configure link. +The footer under each reply names the model that handled it. You can [choose a different model](https://claude.com/docs/claude-tag/users/models.md) yourself, and admins [set the default model for each channel](https://claude.com/docs/claude-tag/admins/customize.md#choose-the-model-for-a-scope). In a channel, the footer also has a **Configure** link; open it to [tailor how Claude works in this channel](https://claude.com/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel). Replies in DMs and in org-shared channels have no Configure link. | If you see | It means | Do this | | :- | :- | :- | -| Typing `@Claude` doesn't show **Claude** with an **APP** badge in the suggestion list | The Claude app isn't installed in your workspace | Ask your Slack admin to install the Claude app, and send them [the installation guide](/docs/claude-tag/admins/setup-overview#pair-your-slack-workspace) | -| The mention sends but Claude doesn't reply | Setup isn't finished for this channel | Ask your Claude organization admin to enable Claude Tag for this channel, and send them [the setup guide](/docs/claude-tag/admins/setup-overview) with the channel name | -| Claude replies "I couldn't find a Claude Code environment for your account" | Claude couldn't resolve an environment for this DM; one-to-one DMs run on your account rather than the organization's | Mention Claude again. If it keeps happening, see [I get an environment error in a DM](/docs/claude-tag/users/troubleshooting.md#i-get-an-environment-error-in-a-dm) | +| Typing `@Claude` doesn't show **Claude** with an **APP** badge in the suggestion list | The Claude app isn't installed in your workspace | Ask your Slack admin to install the Claude app, and send them [the installation guide](https://claude.com/docs/claude-tag/admins/setup-overview#pair-your-slack-workspace) | +| The mention sends but Claude doesn't reply | Setup isn't finished for this channel | Ask your Claude organization admin to enable Claude Tag for this channel, and send them [the setup guide](https://claude.com/docs/claude-tag/admins/setup-overview) with the channel name | +| Claude replies "I couldn't find a Claude Code environment for your account" | Claude couldn't resolve an environment for this DM; one-to-one DMs run on your account rather than the organization's | Mention Claude again. If it keeps happening, see [I get an environment error in a DM](https://claude.com/docs/claude-tag/users/troubleshooting.md#i-get-an-environment-error-in-a-dm) | ## Hand Claude a task @@ -79,7 +79,7 @@ Read Claude's work before you use it, in proportion to what's at stake. A summar Tasks run in the cloud, so Claude keeps working after you close Slack. -Replies in the thread reach Claude without re-mentioning. If the thread looks idle, Claude is usually still working; see [how to read its progress](/docs/claude-tag/concepts/how-it-works.md#track-claude%E2%80%99s-progress). +Replies in the thread reach Claude without re-mentioning. If the thread looks idle, Claude is usually still working; see [how to read its progress](https://claude.com/docs/claude-tag/concepts/how-it-works.md#track-claude%E2%80%99s-progress). ## What Claude can see @@ -91,9 +91,9 @@ After you've handed Claude a task, the first question is what it has to work wit | A file you attach (image, screenshot, PDF, or another type) | Yes, up to a size limit that depends on the file type. See [Files you attach](#files-you-attach) | | Other public channels in your workspace | By searching only, the same way a person searches Slack; Claude can find a message by keyword but can't read a channel's full history unless it's been added there | | Private channels and DMs | Only from inside them. Adding Claude to a private channel lets it work there, but the channel stays unreadable from any other channel or DM. | -| A link you paste, like a Google Doc or a webpage | If your admin allowed that site for this channel, or, for a file behind your own login, if you've [allowed Claude to use your connectors](/docs/claude-tag/concepts/personal-connectors.md). If neither applies, Claude tells you it can't reach it. | +| A link you paste, like a Google Doc or a webpage | If your admin allowed that site for this channel, or, for a file behind your own login, if you've [allowed Claude to use your connectors](https://claude.com/docs/claude-tag/concepts/personal-connectors.md). If neither applies, Claude tells you it can't reach it. | | A Slack canvas | No | -| A message you edited after sending | Yes. Each edit sends Claude a note showing the text before and after the edit. An edit never starts a new task on its own, so to be sure a correction is picked up, say it in a new reply; see [Reply in the thread to steer](/docs/claude-tag/concepts/how-it-works.md#reply-in-the-thread-to-steer) | +| A message you edited after sending | Yes. Each edit sends Claude a note showing the text before and after the edit. An edit never starts a new task on its own, so to be sure a correction is picked up, say it in a new reply; see [Reply in the thread to steer](https://claude.com/docs/claude-tag/concepts/how-it-works.md#reply-in-the-thread-to-steer) | The fastest way to find out for your channel is to ask: `@Claude can you read the doc I just linked?` gets you a yes or a "that site isn't allowed here." @@ -114,11 +114,11 @@ Claude can't read an image or PDF over its limit and answers from the rest of yo ### Which messages Claude reads -* An @-mention guarantees a response. Claude may also respond to a message that doesn't mention it when it judges a reply is warranted; include the mention to guarantee one. It receives the thread's root message and earlier replies for context when you mention it mid-thread; for details on the window, refer to [what Claude sees when you mention it](/docs/claude-tag/concepts/how-it-works.md#conversation-context). +* An @-mention guarantees a response. Claude may also respond to a message that doesn't mention it when it judges a reply is warranted; include the mention to guarantee one. It receives the thread's root message and earlier replies for context when you mention it mid-thread; for details on the window, refer to [what Claude sees when you mention it](https://claude.com/docs/claude-tag/concepts/how-it-works.md#conversation-context). * Once mentioned in a thread, Claude follows the rest of that thread and may reply without another mention. * While working on a task, Claude can search the workspace's public channels by keyword, the same way a person searches Slack. It can't read a channel's full history unless it's been added there. -To quiet Claude in a thread or remove it from a channel, see [Control when Claude Tag responds](/docs/claude-tag/users/when-claude-responds.md). +To quiet Claude in a thread or remove it from a channel, see [Control when Claude Tag responds](https://claude.com/docs/claude-tag/users/when-claude-responds.md). ## Give Claude standing instructions @@ -128,12 +128,12 @@ Set instructions for a channel by telling Claude there, the way you'd ask anyone @Claude remember for this channel: keep replies short, and always include a link to the source. ``` -The instruction saves to [channel memory](/docs/claude-tag/users/memory.md) and applies to everyone's threads in the channel. Verify with "what do you remember about this channel?" +The instruction saves to [channel memory](https://claude.com/docs/claude-tag/users/memory.md) and applies to everyone's threads in the channel. Verify with "what do you remember about this channel?" ## Related resources -* [Use case library](/docs/claude-tag/users/use-cases.md): every shape of work, each with the prompts to paste -* [Good habits](/docs/claude-tag/users/good-habits.md): how to write tasks that finish -* [Set up routines](/docs/claude-tag/users/proactivity.md): once a task works, have Claude run it on its own schedule -* [Commands](/docs/claude-tag/users/commands.md): exact words starting with `!` that run a fixed action, like `!restart` for a stuck session -* [Personal connectors in channels](/docs/claude-tag/concepts/personal-connectors.md): how Claude can use your own claude.ai connectors for a task you hand it in a channel +* [Use case library](https://claude.com/docs/claude-tag/users/use-cases.md): every shape of work, each with the prompts to paste +* [Good habits](https://claude.com/docs/claude-tag/users/good-habits.md): how to write tasks that finish +* [Set up routines](https://claude.com/docs/claude-tag/users/proactivity.md): once a task works, have Claude run it on its own schedule +* [Commands](https://claude.com/docs/claude-tag/users/commands.md): exact words starting with `!` that run a fixed action, like `!restart` for a stuck session +* [Personal connectors in channels](https://claude.com/docs/claude-tag/concepts/personal-connectors.md): how Claude can use your own claude.ai connectors for a task you hand it in a channel diff --git a/content/claude/claude-tag/users/good-habits.md b/content/claude/claude-tag/users/good-habits.md index c04b7e88f..459b11253 100644 --- a/content/claude/claude-tag/users/good-habits.md +++ b/content/claude/claude-tag/users/good-habits.md @@ -32,7 +32,7 @@ Claude can't add anyone to a channel, and it doesn't decide whether a mentioned Ask Claude to notify a user group, such as an on-call rotation. Claude mentions the group, and Slack notifies its members. If Claude writes the group's @handle as plain text instead of mentioning the group, Slack notifies no one, so ask Claude to notify the group rather than to include its handle. -If Claude replies with re-approval guidance instead of mentioning the group, your workspace's Claude app predates a Slack permission that group mentions need. Ask a Slack admin to re-approve the app, and send them [Slack app permissions](/docs/claude-tag/admins/troubleshooting.md#slack-app-permissions). +If Claude replies with re-approval guidance instead of mentioning the group, your workspace's Claude app predates a Slack permission that group mentions need. Ask a Slack admin to re-approve the app, and send them [Slack app permissions](https://claude.com/docs/claude-tag/admins/troubleshooting.md#slack-app-permissions). Claude never pings @channel, @here, or @everyone. @@ -46,7 +46,7 @@ A task like "post the project status and tag me when it's up" has an end state C ### How much detail to give -Claude [reads the thread you tag it in, can search the workspace's public channels, and works with the channel's connections](/docs/claude-tag/users/getting-started.md#what-claude-can-see). If the background for your task is already in a thread, channel, or connected tool, link to it and state the outcome you want in one sentence. You don't need to restate the background. +Claude [reads the thread you tag it in, can search the workspace's public channels, and works with the channel's connections](https://claude.com/docs/claude-tag/users/getting-started.md#what-claude-can-see). If the background for your task is already in a thread, channel, or connected tool, link to it and state the outcome you want in one sentence. You don't need to restate the background. ```text wrap theme={null} @Claude take over the bug in the thread linked above. Fix it and open a draft PR. @@ -82,7 +82,7 @@ Two refinements make the table work in practice: For tasks Claude closes itself, ask it to attach proof, such as the source link, the chart, the test output, or the diff. You read the proof, not the transcript. -For long-running work, make getting the deliverable somewhere durable part of the definition. Post the file to the thread, push the branch, or open the draft pull request as it goes. See [what survives between replies](/docs/claude-tag/concepts/how-it-works.md#what-survives-between-replies). +For long-running work, make getting the deliverable somewhere durable part of the definition. Post the file to the thread, push the branch, or open the draft pull request as it goes. See [what survives between replies](https://claude.com/docs/claude-tag/concepts/how-it-works.md#what-survives-between-replies). Calibrate over time. Check everything it produces in a new channel at first, and widen what it closes on its own as its output holds up under review. @@ -122,7 +122,7 @@ Claude adapts to instructions, but it won't guess that you want it to. Tell it h @Claude remember for this channel: keep replies to three sentences unless someone asks for detail. ``` -Verify what stuck by asking what it remembers about the channel. See [What Claude Tag remembers](/docs/claude-tag/users/memory.md). +Verify what stuck by asking what it remembers about the channel. See [What Claude Tag remembers](https://claude.com/docs/claude-tag/users/memory.md). ## Work in the right place @@ -132,13 +132,13 @@ Where you start a thread determines what Claude can reach, who else can pick the Each thread runs its own session, and the session carries the whole conversation into every reply. Keep follow-ups on the same task in the same thread, where Claude already has the context. -Start a new thread for each new task. The fresh session begins with full room for the work, picks up any configuration changes made since the old thread began, and keeps each piece of work reviewable on its own. A thread that accumulates many tasks eventually [grows past what one session can hold](/docs/claude-tag/users/troubleshooting.md#this-conversation-is-too-long-for-me-to-process). +Start a new thread for each new task. The fresh session begins with full room for the work, picks up any configuration changes made since the old thread began, and keeps each piece of work reviewable on its own. A thread that accumulates many tasks eventually [grows past what one session can hold](https://claude.com/docs/claude-tag/users/troubleshooting.md#this-conversation-is-too-long-for-me-to-process). -To start several independent tasks from inside an existing thread, [ask Claude to open a thread for each](/docs/claude-tag/users/prompt-library.md#fan-out-work-across-threads). To continue the current discussion in a fresh thread, run [`!fork`](/docs/claude-tag/users/commands#fork-a-thread). +To start several independent tasks from inside an existing thread, [ask Claude to open a thread for each](https://claude.com/docs/claude-tag/users/prompt-library.md#fan-out-work-across-threads). To continue the current discussion in a fresh thread, run [`!fork`](https://claude.com/docs/claude-tag/users/commands#fork-a-thread). ### Pick the right surface -Channel access belongs to the channel, and access in a one-to-one DM belongs to you. A channel can also be yours alone. Create one with just you and Claude in it, and it works the same way a team channel does. The table compares the three surfaces. For a group DM, see [Use Claude Tag in a group DM](/docs/claude-tag/users/group-dms.md). +Channel access belongs to the channel, and access in a one-to-one DM belongs to you. A channel can also be yours alone. Create one with just you and Claude in it, and it works the same way a team channel does. The table compares the three surfaces. For a group DM, see [Use Claude Tag in a group DM](https://claude.com/docs/claude-tag/users/group-dms.md). | | A team channel | Your own channel | A one-to-one DM | | :- | :- | :- | :- | @@ -148,21 +148,21 @@ Channel access belongs to the channel, and access in a one-to-one DM belongs to | Billing | The organization | The organization | Your seat | | Best for | Shared work the team should see and steer | Your own questions, digests, and follow-ups, kept where a teammate can pick them up | Personal tasks on your own connections, or data that shouldn't run through a shared channel connection | -[Routines](/docs/claude-tag/users/proactivity.md) belong to a channel too. You set standing work up in the channel where it should post, and it runs with that channel's connections. [Work from your own channel](/docs/claude-tag/users/use-cases/your-own-channel.md) shows what a channel of your own is good for. +[Routines](https://claude.com/docs/claude-tag/users/proactivity.md) belong to a channel too. You set standing work up in the channel where it should post, and it runs with that channel's connections. [Work from your own channel](https://claude.com/docs/claude-tag/users/use-cases/your-own-channel.md) shows what a channel of your own is good for. -A DM can still answer questions about a public channel when the answer should stay private. Name the channel in the DM, as in `summarize the last week of #product-feedback`. Claude's Slack search covers public channels in this workspace from a DM the same as from a channel, so the DM advantage is privacy of the answer, not broader reach. Workspace search is unavailable in [channels that include guests](/docs/claude-tag/admins/restrict-access.md#restrict-guest-channels), so ask from a DM or from a channel without guests. +A DM can still answer questions about a public channel when the answer should stay private. Name the channel in the DM, as in `summarize the last week of #product-feedback`. Claude's Slack search covers public channels in this workspace from a DM the same as from a channel, so the DM advantage is privacy of the answer, not broader reach. Workspace search is unavailable in [channels that include guests](https://claude.com/docs/claude-tag/admins/restrict-access.md#restrict-guest-channels), so ask from a DM or from a channel without guests. Reading a public channel's full history, rather than what search finds, needs Claude to be a member of that channel. If it says it can't read a public channel, `/invite @Claude` from inside that channel adds it. -Claude can also post into other public channels, and the rules depend on where you ask. See [What Claude can do in other channels](/docs/claude-tag/concepts/how-it-works.md#what-claude-can-do-in-other-channels). +Claude can also post into other public channels, and the rules depend on where you ask. See [What Claude can do in other channels](https://claude.com/docs/claude-tag/concepts/how-it-works.md#what-claude-can-do-in-other-channels). A private channel is readable only from inside it. Inviting Claude lets it work in that channel, but Claude can't read the private channel's messages from any other channel or DM. To ask about a private channel, ask in that channel. -Claude can't post into a channel in a different workspace. In a [Slack Connect channel](/docs/claude-tag/admins/restrict-access.md#slack-connect-channels), one shared with another company, Claude answers only if an Owner or a Claude Tag admin has turned it on there, and then with [limited access](/docs/claude-tag/admins/restrict-access.md#what-access-claude-has-in-a-slack-connect-channel). +Claude can't post into a channel in a different workspace. In a [Slack Connect channel](https://claude.com/docs/claude-tag/admins/restrict-access.md#slack-connect-channels), one shared with another company, Claude answers only if an Owner or a Claude Tag admin has turned it on there, and then with [limited access](https://claude.com/docs/claude-tag/admins/restrict-access.md#what-access-claude-has-in-a-slack-connect-channel). When more than one surface would work, prefer a channel. Work that happens there compounds, because Claude can draw on it in later threads and teammates can find it, redirect it, or build on it. -If Claude says it can't reach something in a channel, the channel likely wasn't granted that access. See [How agent identity works](/docs/claude-tag/concepts/agent-identity.md). +If Claude says it can't reach something in a channel, the channel likely wasn't granted that access. See [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md). ### Teach Claude something that sticks @@ -170,12 +170,12 @@ When Claude gets something wrong, or learns something worth keeping, where you p | You want Claude to know | Put it in | Who can write it | Reaches | | :- | :- | :- | :- | -| How this channel should behave: format, tone, when to respond | [**Channel memory**](/docs/claude-tag/users/memory.md) (say it and ask Claude to remember) | Anyone in the channel | This channel; the whole workspace only if Claude saves it as a workspace note from a public channel | -| Conventions and setup for one repository: file layout, PR labels, dependencies to install | **`CLAUDE.md`** at the repo root ([loaded when the repo is](/docs/claude-tag/admins/configure-github.md#what-loads-from-a-repository)) | Anyone with repo write | Any session that works in that repo, from any channel | -| Standing rules for this channel that outrank memory | The [**Configure** page](#configure-claude-for-a-channel), in the **Channel instructions** field | Channel members, unless an admin has [restricted it](/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) | This channel | -| A correction for this channel that you don't want to raise in the channel | [**Managed instructions**](/docs/claude-tag/admins/managed-by.md#correct-claude-privately-from-a-managing-channel), written from a private managing channel | Full workspace members in the managing channel who have a Claude account in your organization, after an Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) sets it up | This channel | -| How to use a tool correctly, or follow a specific process, org-wide | [**A skill**](/docs/claude-tag/admins/skills-repo.md) in your org's plugin marketplace | An organization Owner adds it; anyone can ask Claude to open a PR proposing the change | Every workspace and channel it's added to | -| Standing rules across many channels | [**Workspace instructions** or **Slack instructions**](/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions) in Claude Tag admin settings | An organization Owner, or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) for a workspace | Every channel in that workspace, or in all of Slack | +| How this channel should behave: format, tone, when to respond | [**Channel memory**](https://claude.com/docs/claude-tag/users/memory.md) (say it and ask Claude to remember) | Anyone in the channel | This channel; the whole workspace only if Claude saves it as a workspace note from a public channel | +| Conventions and setup for one repository: file layout, PR labels, dependencies to install | **`CLAUDE.md`** at the repo root ([loaded when the repo is](https://claude.com/docs/claude-tag/admins/configure-github.md#what-loads-from-a-repository)) | Anyone with repo write | Any session that works in that repo, from any channel | +| Standing rules for this channel that outrank memory | The [**Configure** page](#configure-claude-for-a-channel), in the **Channel instructions** field | Channel members, unless an admin has [restricted it](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) | This channel | +| A correction for this channel that you don't want to raise in the channel | [**Managed instructions**](https://claude.com/docs/claude-tag/admins/managed-by.md#correct-claude-privately-from-a-managing-channel), written from a private managing channel | Full workspace members in the managing channel who have a Claude account in your organization, after an Owner or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) sets it up | This channel | +| How to use a tool correctly, or follow a specific process, org-wide | [**A skill**](https://claude.com/docs/claude-tag/admins/skills-repo.md) in your org's plugin marketplace | An organization Owner adds it; anyone can ask Claude to open a PR proposing the change | Every workspace and channel it's added to | +| Standing rules across many channels | [**Workspace instructions** or **Slack instructions**](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#add-custom-instructions) in Claude Tag admin settings | An organization Owner, or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) for a workspace | Every channel in that workspace, or in all of Slack | The first three are yours to write. You can still ask Claude to draft a skill change as a pull request for an admin to review: @@ -183,21 +183,21 @@ The first three are yours to write. You can still ask Claude to draft a skill ch @Claude that worked. Open a PR to the skills repo so this query pattern is part of the Datadog skill. ``` -See [the admin guide to a skills repository](/docs/claude-tag/admins/skills-repo.md) for what that setup gives you. +See [the admin guide to a skills repository](https://claude.com/docs/claude-tag/admins/skills-repo.md) for what that setup gives you. -A `CLAUDE.md` carries setup as well as conventions. Sessions run in a sandbox with a standard set of preinstalled tools. If the repository needs more, such as a language runtime or a database client, put the install commands in `CLAUDE.md`, and Claude [runs them when its work needs them](/docs/claude-tag/admins/configure-github.md#install-project-dependencies). +A `CLAUDE.md` carries setup as well as conventions. Sessions run in a sandbox with a standard set of preinstalled tools. If the repository needs more, such as a language runtime or a database client, put the install commands in `CLAUDE.md`, and Claude [runs them when its work needs them](https://claude.com/docs/claude-tag/admins/configure-github.md#install-project-dependencies). -A `CLAUDE.md` is guidance; a required status check is a gate. If a pull request must carry a label or pass a check, make that a repository rule rather than a memory note or a skill. The same goes for review: to require an approval from someone other than the person who asked Claude for the change, see [Require a second approval on Claude's pull requests](/docs/claude-tag/admins/configure-github.md#require-a-second-approval-on-claude%E2%80%99s-pull-requests). +A `CLAUDE.md` is guidance; a required status check is a gate. If a pull request must carry a label or pass a check, make that a repository rule rather than a memory note or a skill. The same goes for review: to require an approval from someone other than the person who asked Claude for the change, see [Require a second approval on Claude's pull requests](https://claude.com/docs/claude-tag/admins/configure-github.md#require-a-second-approval-on-claude%E2%80%99s-pull-requests). ### Configure Claude for a channel -The **Configure** link in the footer of any Claude reply in a channel opens a page where you tailor how Claude behaves in that channel. You can also send [`@Claude !configure`](/docs/claude-tag/users/commands#get-the-link-to-configure-a-channel) in the channel, and Claude replies with a link to the same page. The page is on claude.ai, so you need to be signed in to your Claude organization to edit it, and an admin can [restrict editing](/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) so the page is read-only for members. +The **Configure** link in the footer of any Claude reply in a channel opens a page where you tailor how Claude behaves in that channel. You can also send [`@Claude !configure`](https://claude.com/docs/claude-tag/users/commands#get-the-link-to-configure-a-channel) in the channel, and Claude replies with a link to the same page. The page is on claude.ai, so you need to be signed in to your Claude organization to edit it, and an admin can [restrict editing](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) so the page is read-only for members. -The **Respond automatically** toggle on that page controls whether Claude replies in the channel without an @-mention. See [Turn automatic replies on or off](/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off) for what the setting does and the other places you can change it. +The **Respond automatically** toggle on that page controls whether Claude replies in the channel without an @-mention. See [Turn automatic replies on or off](https://claude.com/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off) for what the setting does and the other places you can change it. Use the **Channel instructions** field on that page to write standing guidance Claude reads in every new session in the channel: the channel's purpose, its conventions, the tone replies should take, and anything Claude should do or avoid there. Channel instructions outrank channel memory and sit alongside any instructions an admin has set for the workspace or organization. Save the field and the change applies to new sessions started in the channel. -The page's **Tools and access** tab shows **Connections**, the services Claude can reach from this channel, along with any allowed domains. You can see those lists but not change them on this page. The same tab's **Plugins** card lists the channel's plugins, and you can add plugins there unless an admin has restricted editing to admins. If you've been made a [channel manager](/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) for the channel, the tab also has **Access bundles** and **GitHub repositories** cards you can edit. +The page's **Tools and access** tab shows **Connections**, the services Claude can reach from this channel, along with any allowed domains. You can see those lists but not change them on this page. The same tab's **Plugins** card lists the channel's plugins, and you can add plugins there unless an admin has restricted editing to admins. If you've been made a [channel manager](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) for the channel, the tab also has **Access bundles** and **GitHub repositories** cards you can edit. ## Keep thread count and review rate matched @@ -209,5 +209,5 @@ Claude runs as many threads as you start. Your capacity to review them doesn't s ## Related resources -* [Use case library](/docs/claude-tag/users/use-cases.md): the full setups these habits make reliable -* [What Claude Tag remembers](/docs/claude-tag/users/memory.md): make corrections stick +* [Use case library](https://claude.com/docs/claude-tag/users/use-cases.md): the full setups these habits make reliable +* [What Claude Tag remembers](https://claude.com/docs/claude-tag/users/memory.md): make corrections stick diff --git a/content/claude/claude-tag/users/group-dms.md b/content/claude/claude-tag/users/group-dms.md index a9a395028..061138fed 100644 --- a/content/claude/claude-tag/users/group-dms.md +++ b/content/claude/claude-tag/users/group-dms.md @@ -12,9 +12,9 @@ A group DM is a Slack direct message among several people. Claude works in a group DM it has been added to, so a few people can share a task with Claude without creating a channel. -If Claude answers your mention with "Group DMs aren't supported yet. Try a channel or a 1:1 DM instead.", see [the causes of that reply](/docs/claude-tag/users/troubleshooting.md#group-dms-aren%E2%80%99t-supported-yet). +If Claude answers your mention with "Group DMs aren't supported yet. Try a channel or a 1:1 DM instead.", see [the causes of that reply](https://claude.com/docs/claude-tag/users/troubleshooting.md#group-dms-aren%E2%80%99t-supported-yet). -This page is for Slack members. It covers how to add Claude, what Claude can reach, when it replies, how to make it quieter, what differs from a channel, and what to do when Claude doesn't answer. If you administer Claude for your organization, see [the settings that apply to group DMs](/docs/claude-tag/admins/restrict-access.md#group-dms). +This page is for Slack members. It covers how to add Claude, what Claude can reach, when it replies, how to make it quieter, what differs from a channel, and what to do when Claude doesn't answer. If you administer Claude for your organization, see [the settings that apply to group DMs](https://claude.com/docs/claude-tag/admins/restrict-access.md#group-dms). ## Add Claude to a group DM @@ -26,15 +26,15 @@ Add Claude as one of the people when you start the group DM. Then mention `@Clau Claude replies in a thread under your message. -An admin decides [who can use Claude](/docs/claude-tag/admins/restrict-access.md#restrict-who-can-use-claude), and that choice covers group DMs as well as channels. +An admin decides [who can use Claude](https://claude.com/docs/claude-tag/admins/restrict-access.md#restrict-who-can-use-claude), and that choice covers group DMs as well as channels. ## Access and billing in a group DM -In a group DM, Claude acts with [its own service accounts](/docs/claude-tag/concepts/agent-identity.md). If you've connected a Claude account, a one-to-one DM with Claude runs on [your own account](/docs/claude-tag/concepts/agent-identity.md#direct-message-channels) instead. +In a group DM, Claude acts with [its own service accounts](https://claude.com/docs/claude-tag/concepts/agent-identity.md). If you've connected a Claude account, a one-to-one DM with Claude runs on [your own account](https://claude.com/docs/claude-tag/concepts/agent-identity.md#direct-message-channels) instead. * **Access.** Claude uses the connections, instructions, and repositories an admin set for the workspace and the organization. A connection an admin attached to one channel doesn't apply. * **Billing.** The work bills to your organization, not to your seat. -* **Your own connectors.** Where [personal connectors in channels](/docs/claude-tag/concepts/personal-connectors.md) are on for your organization, Claude can use the connectors on your claude.ai account for a task you ask for, after you allow it. Only your own requests use them. +* **Your own connectors.** Where [personal connectors in channels](https://claude.com/docs/claude-tag/concepts/personal-connectors.md) are on for your organization, Claude can use the connectors on your claude.ai account for a task you ask for, after you allow it. Only your own requests use them. ## When Claude replies in a group DM @@ -54,8 +54,8 @@ Ask Claude to reply only when someone mentions it. The change applies to everyon Claude can't make the change in these cases: -* **Channel-only access.** A guest is in the group DM, and Claude runs there with [channel-only access](/docs/claude-tag/admins/restrict-access.md#how-channel-only-works). -* **Blocked member edits.** An admin set [**Channel member edits**](/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) to **Block** for the workspace or the organization. +* **Channel-only access.** A guest is in the group DM, and Claude runs there with [channel-only access](https://claude.com/docs/claude-tag/admins/restrict-access.md#how-channel-only-works). +* **Blocked member edits.** An admin set [**Channel member edits**](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) to **Block** for the workspace or the organization. **1. Ask Claude** @@ -83,17 +83,17 @@ Claude posts a new card. Select **Confirm** on that card. ### Quiet Claude in one thread of a group DM -In a thread that started with an `@Claude` mention, send [`@Claude !mute`](/docs/claude-tag/users/commands#mute-or-unmute-a-thread). `!mute` works on one thread at a time. +In a thread that started with an `@Claude` mention, send [`@Claude !mute`](https://claude.com/docs/claude-tag/users/commands#mute-or-unmute-a-thread). `!mute` works on one thread at a time. ## Differences between a group DM and a channel These parts of working with Claude differ between a group DM and a channel: -* **Settings.** A group DM has no [Configure page](/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel), so you can't give it its own instructions or connections. -* **Memory.** Claude keeps notes for the group DM and reads only those notes there. It doesn't read or add to the [workspace notes](/docs/claude-tag/users/memory.md#channel-and-workspace-memory). -* **Routines.** A [routine](/docs/claude-tag/users/proactivity.md) you set up in a group DM posts its output in that group DM only. -* **Other channels.** Claude can't post, reply, or react outside the group DM. [What Claude can do in other channels](/docs/claude-tag/concepts/how-it-works.md#what-claude-can-do-in-other-channels) covers what it can read. -* **Forking.** You can't [fork a thread](/docs/claude-tag/users/commands.md#fork-a-thread) from a group DM. +* **Settings.** A group DM has no [Configure page](https://claude.com/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel), so you can't give it its own instructions or connections. +* **Memory.** Claude keeps notes for the group DM and reads only those notes there. It doesn't read or add to the [workspace notes](https://claude.com/docs/claude-tag/users/memory.md#channel-and-workspace-memory). +* **Routines.** A [routine](https://claude.com/docs/claude-tag/users/proactivity.md) you set up in a group DM posts its output in that group DM only. +* **Other channels.** Claude can't post, reply, or react outside the group DM. [What Claude can do in other channels](https://claude.com/docs/claude-tag/concepts/how-it-works.md#what-claude-can-do-in-other-channels) covers what it can read. +* **Forking.** You can't [fork a thread](https://claude.com/docs/claude-tag/users/commands.md#fork-a-thread) from a group DM. ## When Claude doesn't answer in a group DM @@ -101,16 +101,16 @@ When you mention `@Claude` at the top level of a group DM and Claude can't answe | What you see | Why Claude can't answer | What to do | | :- | :- | :- | -| "Group DMs aren't supported yet. Try a channel or a 1:1 DM instead." | Who is in the group DM, or how Slack shares it, keeps Claude from answering | See [Group DMs aren't supported yet](/docs/claude-tag/users/troubleshooting.md#group-dms-aren%E2%80%99t-supported-yet) | +| "Group DMs aren't supported yet. Try a channel or a 1:1 DM instead." | Who is in the group DM, or how Slack shares it, keeps Claude from answering | See [Group DMs aren't supported yet](https://claude.com/docs/claude-tag/users/troubleshooting.md#group-dms-aren%E2%80%99t-supported-yet) | | "Your Claude admin has disabled sending direct messages to Claude." | An admin turned off direct messages, which covers group DMs too | Ask in a channel, or ask your admin about turning direct messages on | | "Claude doesn't respond in channels that include guests." | The group DM includes a Slack guest, and your admin's guest setting keeps Claude from replying | Start a group DM without the guest, or ask your admin about the guest setting | | "Claude is disabled in this channel." | An admin turned Claude off for the workspace | Ask your admin about turning Claude on for the workspace | | "This workspace only lets people with a connected Claude account work with me." Only you can see this notice | An admin restricted who can use Claude | Connect your Claude account, then send your message again | | No reply and no notice | Claude isn't in the group DM | Start a new group DM that includes Claude | -| No reply and no notice | Your workspace uses the [earlier Claude in Slack](/docs/claude-tag/admins/migrate-from-earlier.md) | Ask your admin which version answers in your workspace | +| No reply and no notice | Your workspace uses the [earlier Claude in Slack](https://claude.com/docs/claude-tag/admins/migrate-from-earlier.md) | Ask your admin which version answers in your workspace | ## Related resources -* [Get started with Claude Tag](/docs/claude-tag/users/getting-started.md): choose between a channel, a group DM, and a one-to-one DM -* [Control when Claude Tag responds](/docs/claude-tag/users/when-claude-responds.md): what makes Claude reply without an @-mention -* [How agent identity works](/docs/claude-tag/concepts/agent-identity.md): whose accounts Claude acts with in each place +* [Get started with Claude Tag](https://claude.com/docs/claude-tag/users/getting-started.md): choose between a channel, a group DM, and a one-to-one DM +* [Control when Claude Tag responds](https://claude.com/docs/claude-tag/users/when-claude-responds.md): what makes Claude reply without an @-mention +* [How agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md): whose accounts Claude acts with in each place diff --git a/content/claude/claude-tag/users/memory.md b/content/claude/claude-tag/users/memory.md index d4ad2217d..8596d17ea 100644 --- a/content/claude/claude-tag/users/memory.md +++ b/content/claude/claude-tag/users/memory.md @@ -14,7 +14,7 @@ Claude keeps memory by channel. Each channel, public or private, has its own not Memory accumulates three ways: -* **You tell Claude.** Say "remember for this channel: reports go out as tables" and it saves the instruction. To save details from a document, [attach the file](/docs/claude-tag/users/getting-started.md#files-you-attach) and name what to remember. Claude saves those details, not the file. +* **You tell Claude.** Say "remember for this channel: reports go out as tables" and it saves the instruction. To save details from a document, [attach the file](https://claude.com/docs/claude-tag/users/getting-started.md#files-you-attach) and name what to remember. Claude saves those details, not the file. * **Claude saves facts on its own.** While working it keeps notes like decisions the channel made. * **Claude can read past sessions.** Ask it to look back and it lists earlier sessions in the channel and reads their transcripts; it can't full-text search across them, so name a timeframe or topic. @@ -32,7 +32,7 @@ Reading and saving follow different rules depending on where Claude is working: | Private channel | That channel's notes, plus the workspace notes (read-only) | That channel's notes only | | Group DM | That group DM's notes only | That group DM's notes only | -Other workspaces stay separate. One-to-one direct messages stay separate too. Claude keeps notes for each one-to-one direct-message conversation, stored with the workspace rather than with your Claude account. Those notes are deleted when an Owner [disconnects the workspace](/docs/claude-tag/admins/workspaces.md#revoke-a-pairing), not when you disconnect your own Claude account in Slack. +Other workspaces stay separate. One-to-one direct messages stay separate too. Claude keeps notes for each one-to-one direct-message conversation, stored with the workspace rather than with your Claude account. Those notes are deleted when an Owner [disconnects the workspace](https://claude.com/docs/claude-tag/admins/workspaces.md#revoke-a-pairing), not when you disconnect your own Claude account in Slack. If a channel switches between public and private, its channel notes stay with the channel, and Claude keeps reading and adding to them there. Workspace notes Claude saved from the channel while it was public stay in the workspace notes. If those shouldn't stay shared, ask an Owner to delete them from the workspace's memory files in [Claude Tag admin settings](https://claude.ai/admin-settings/claude-tag). @@ -65,11 +65,11 @@ If something is wrong or stale, tell it to update or forget the entry. Anyone in Two habits keep memory useful over time: * **After correcting an entry, have Claude record the fix.** "Update your memory for this channel so this doesn't happen again" turns a one-time fix into a standing one. -* **Prune what your work has outgrown.** Entries written weeks ago can describe a repository, owner, or convention that no longer exists. Ask Claude in the channel to review its memory and drop the entries that no longer apply. For ongoing upkeep, set up a [routine](/docs/claude-tag/users/proactivity.md) that repeats the review on a schedule; weekly works well. +* **Prune what your work has outgrown.** Entries written weeks ago can describe a repository, owner, or convention that no longer exists. Ask Claude in the channel to review its memory and drop the entries that no longer apply. For ongoing upkeep, set up a [routine](https://claude.com/docs/claude-tag/users/proactivity.md) that repeats the review on a schedule; weekly works well. -An Owner in your Claude organization can view, edit, or delete the [memory files](/docs/claude-tag/admins/audit.md) of a workspace and its channels. +An Owner in your Claude organization can view, edit, or delete the [memory files](https://claude.com/docs/claude-tag/admins/audit.md) of a workspace and its channels. ## Related resources -* [How Claude Tag works](/docs/claude-tag/concepts/how-it-works.md): the scope, channel, and thread model behind memory -* [Good habits](/docs/claude-tag/users/good-habits.md): habits that keep memory accurate +* [How Claude Tag works](https://claude.com/docs/claude-tag/concepts/how-it-works.md): the scope, channel, and thread model behind memory +* [Good habits](https://claude.com/docs/claude-tag/users/good-habits.md): habits that keep memory accurate diff --git a/content/claude/claude-tag/users/models.md b/content/claude/claude-tag/users/models.md index 819782a3d..0c539fa65 100644 --- a/content/claude/claude-tag/users/models.md +++ b/content/claude/claude-tag/users/models.md @@ -38,9 +38,9 @@ To change what new threads in a channel start on, ask for the channel, not just @Claude use Sonnet for this thread, and make it the default model for this channel. ``` -Claude sets the channel's default model. New threads in the channel start on it. If you asked for a family rather than a version, the default keeps following that family: when your organization gets a newer model in it, new threads start on the newer model without anyone changing the setting. A thread already underway switches to it at the next message anyone posts there, unless someone in that thread has already had Claude switch models. If an Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) has set **Channel member edits** to **Block** for the channel, Claude declines to set the channel default; ask for the thread alone instead. +Claude sets the channel's default model. New threads in the channel start on it. If you asked for a family rather than a version, the default keeps following that family: when your organization gets a newer model in it, new threads start on the newer model without anyone changing the setting. A thread already underway switches to it at the next message anyone posts there, unless someone in that thread has already had Claude switch models. If an Owner or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) has set **Channel member edits** to **Block** for the channel, Claude declines to set the channel default; ask for the thread alone instead. -An Owner sets the same default in Claude Tag admin settings for the whole organization or for one workspace or channel, and a Claude Tag admin can set it for a workspace or channel; see [choose the model for a scope](/docs/claude-tag/admins/customize.md#choose-the-model-for-a-scope). +An Owner sets the same default in Claude Tag admin settings for the whole organization or for one workspace or channel, and a Claude Tag admin can set it for a workspace or channel; see [choose the model for a scope](https://claude.com/docs/claude-tag/admins/customize.md#choose-the-model-for-a-scope). ## Choose the model for your direct messages @@ -52,7 +52,7 @@ The selector doesn't change a conversation already underway. To change one of th Fast mode gives a thread faster output at a higher cost per token. It's the same [fast mode as in Claude Code](https://code.claude.com/docs/en/fast-mode), and that page lists the models that support it and what it costs. Use it where response time matters more than cost, such as a thread working a live alert. -Fast mode is available once an Owner [allows it for your organization](/docs/claude-tag/admins/customize.md#allow-fast-mode). To turn it on, send the [`!fast` command](/docs/claude-tag/users/commands#turn-fast-mode-on-or-off) in the thread. +Fast mode is available once an Owner [allows it for your organization](https://claude.com/docs/claude-tag/admins/customize.md#allow-fast-mode). To turn it on, send the [`!fast` command](https://claude.com/docs/claude-tag/users/commands#turn-fast-mode-on-or-off) in the thread. ```text wrap theme={null} @Claude !fast @@ -66,7 +66,7 @@ Fast mode applies to the thread you turn it on in, and new threads start at stan * You send `@Claude !fast off` * You ask Claude to [switch models](#switch-the-model-in-a-thread) -* The thread's session is replaced, for example when you [restart it](/docs/claude-tag/users/commands.md#restart-a-stuck-or-wrong-context-session) +* The thread's session is replaced, for example when you [restart it](https://claude.com/docs/claude-tag/users/commands.md#restart-a-stuck-or-wrong-context-session) After `!fast off`, a thread that Claude switched to Opus stays on Opus. To return to the earlier model, ask Claude to switch. @@ -82,10 +82,10 @@ To see the current list, ask in the thread. If you ask for a model that isn't on the list, Claude tells you it isn't available, and the thread stays on the model it was already using. -For how your organization's model settings apply in Slack, see [Models your organization allows](/docs/claude-tag/admins/customize.md#models-your-organization-allows). +For how your organization's model settings apply in Slack, see [Models your organization allows](https://claude.com/docs/claude-tag/admins/customize.md#models-your-organization-allows). ## Related resources -* [Get started](/docs/claude-tag/users/getting-started.md): what else the reply footer links to -* [Commands](/docs/claude-tag/users/commands.md#turn-fast-mode-on-or-off): where `!fast` works and what Claude replies when it can't change the speed -* [Customize Claude Tag](/docs/claude-tag/admins/customize.md#choose-the-model-for-a-scope): how admins set a default model per workspace or channel, and how the organization's model policy applies +* [Get started](https://claude.com/docs/claude-tag/users/getting-started.md): what else the reply footer links to +* [Commands](https://claude.com/docs/claude-tag/users/commands.md#turn-fast-mode-on-or-off): where `!fast` works and what Claude replies when it can't change the speed +* [Customize Claude Tag](https://claude.com/docs/claude-tag/admins/customize.md#choose-the-model-for-a-scope): how admins set a default model per workspace or channel, and how the organization's model policy applies diff --git a/content/claude/claude-tag/users/proactivity.md b/content/claude/claude-tag/users/proactivity.md index 93e50001a..fb17112de 100644 --- a/content/claude/claude-tag/users/proactivity.md +++ b/content/claude/claude-tag/users/proactivity.md @@ -54,7 +54,7 @@ Claude posts a morning rollup of open threads and anything waiting on someone, b @Claude every weekday at 9am Pacific, post a summary of open threads in this channel and anything that looks like it's waiting on someone. ``` -"Waiting on someone" makes the rollup surface actions, not just a recap; [Catch up](/docs/claude-tag/users/use-cases/catch-up.md) has the one-off version. +"Waiting on someone" makes the rollup surface actions, not just a recap; [Catch up](https://claude.com/docs/claude-tag/users/use-cases/catch-up.md) has the one-off version. ### Weekly channel digest @@ -64,7 +64,7 @@ Claude posts one recap at the end of each week, so the channel has a single plac @Claude every Friday at 3pm Eastern, post a digest of this week in this channel: what got decided, what's still open, and anything waiting on someone. ``` -For an intake channel, the [Triage requests](/docs/claude-tag/users/use-cases/triage-requests.md) version of this rollup also sweeps posts that never tagged Claude. +For an intake channel, the [Triage requests](https://claude.com/docs/claude-tag/users/use-cases/triage-requests.md) version of this rollup also sweeps posts that never tagged Claude. ### Watch a pull request until it merges @@ -78,7 +78,7 @@ Claude subscribes to a single pull request and posts as it moves through CI, rev ### Alert investigation when a monitor fires -Claude checks the alerting dashboard on a schedule and posts a first pass at diagnosis for anything new, so the investigation is underway before anyone asks. This recipe needs a monitoring connection such as Datadog or PagerDuty; [Watch monitors and alerts](/docs/claude-tag/users/use-cases/watch-monitors.md) has the full setup. +Claude checks the alerting dashboard on a schedule and posts a first pass at diagnosis for anything new, so the investigation is underway before anyone asks. This recipe needs a monitoring connection such as Datadog or PagerDuty; [Watch monitors and alerts](https://claude.com/docs/claude-tag/users/use-cases/watch-monitors.md) has the full setup. ```text wrap theme={null} @Claude every two hours, check the alerting dashboard against its last state. For anything new, post when it started, what changed around then, and what to look at first. @@ -88,19 +88,19 @@ The routine posts only when something changed, not on every check. ### Automatic triage for new requests -Claude answers, deduplicates, and routes requests as they arrive. This recipe is a standing role rather than a schedule; "remember for this channel" saves it to [channel memory](/docs/claude-tag/users/memory.md), so it applies to everyone's threads. +Claude answers, deduplicates, and routes requests as they arrive. This recipe is a standing role rather than a schedule; "remember for this channel" saves it to [channel memory](https://claude.com/docs/claude-tag/users/memory.md), so it applies to everyone's threads. ```text wrap theme={null} @Claude remember for this channel: when someone tags you on a request, check whether it duplicates something already reported, answer it directly if the answer exists, and otherwise route it to the right owner with a one-line summary. ``` -Pair it with a weekly rollup so untagged posts are still swept; [Triage requests](/docs/claude-tag/users/use-cases/triage-requests.md) has both messages. +Pair it with a weekly rollup so untagged posts are still swept; [Triage requests](https://claude.com/docs/claude-tag/users/use-cases/triage-requests.md) has both messages. ## Where a routine posts its results -A routine you set up from inside a thread usually reports back in that thread each time it runs, for as long as the thread's [session](/docs/claude-tag/concepts/how-it-works.md#what-survives-between-replies) lasts. To keep the results in the thread, ask Claude to report back there when you set the routine up. If you send [`@Claude !restart`](/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session) in the thread, the routine moves to the thread's new session and keeps reporting there. +A routine you set up from inside a thread usually reports back in that thread each time it runs, for as long as the thread's [session](https://claude.com/docs/claude-tag/concepts/how-it-works.md#what-survives-between-replies) lasts. To keep the results in the thread, ask Claude to report back there when you set the routine up. If you send [`@Claude !restart`](https://claude.com/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session) in the thread, the routine moves to the thread's new session and keeps reporting there. -If the thread's session [gets stuck](/docs/claude-tag/users/troubleshooting.md#claude-reacted-or-started-thinking-then-never-replied), the routine doesn't move to the session that replaces it, and its later runs usually post at the channel's top level instead. To bring the results back into a thread, disable the routine and set it up again from that thread. +If the thread's session [gets stuck](https://claude.com/docs/claude-tag/users/troubleshooting.md#claude-reacted-or-started-thinking-then-never-replied), the routine doesn't move to the session that replaces it, and its later runs usually post at the channel's top level instead. To bring the results back into a thread, disable the routine and set it up again from that thread. For a routine you set up at the channel's top level, Claude usually announces each run in a short top-level message and does the work in the thread under it. To follow up on any routine post, mention `@Claude` in a reply under it. @@ -108,7 +108,7 @@ For a routine you set up at the channel's top level, Claude usually announces ea Anyone in the channel can manage its standing work: -* **List.** Ask "what routines do you have set up in this channel?", or send [`@Claude !routines`](/docs/claude-tag/users/commands#list-the-routines-in-a-channel). When you ask in plain language from inside a thread, Claude lists that thread's own routines first and may leave out the rest of the channel's; ask for "every routine in this channel" to get them all, or use `!routines`, which lists the channel's routines wherever you send it. Add a channel mention or its ID, as in `@Claude !routines #other-channel`, to list another channel's routines; pick the channel from Slack's autocomplete so it lands as a real mention, since a typed name on its own isn't accepted. +* **List.** Ask "what routines do you have set up in this channel?", or send [`@Claude !routines`](https://claude.com/docs/claude-tag/users/commands#list-the-routines-in-a-channel). When you ask in plain language from inside a thread, Claude lists that thread's own routines first and may leave out the rest of the channel's; ask for "every routine in this channel" to get them all, or use `!routines`, which lists the channel's routines wherever you send it. Add a channel mention or its ID, as in `@Claude !routines #other-channel`, to list another channel's routines; pick the channel from Slack's autocomplete so it lands as a real mention, since a typed name on its own isn't accepted. * **Reschedule, pause, or stop a routine.** Name the routine and the change, as in "disable the Friday rollup" or "move the standup summary to 10am Pacific" * **Change what a routine does.** Ask Claude to stop the routine, then set up a replacement from the channel where the results should post. @@ -118,14 +118,14 @@ A few boundaries apply: * A job runs with the channel's connections, the same as an interactive request. * Claude can post a job's output into another public channel in the same workspace only if the job's own channel is public and Claude has been added to the target channel. It labels the message with the channel it came from. -* A routine you set up in a [group DM](/docs/claude-tag/users/group-dms.md) posts its output in that group DM only. +* A routine you set up in a [group DM](https://claude.com/docs/claude-tag/users/group-dms.md) posts its output in that group DM only. * Claude doesn't post a channel job's output into a different channel that's private or externally shared, or into a DM or group DM, and doesn't message people directly. Claude does send a completion or failure notice to whoever set up the routine, when that person's Slack account is connected to their Claude account. -* Schedules run in UTC. Name the timezone when you set a schedule, as in "every weekday at 9am Pacific". With no timezone in your message, Claude uses the one on your Slack profile. To confirm the time Claude set, send [`@Claude !routines`](/docs/claude-tag/users/commands#list-the-routines-in-a-channel), which lists schedules in UTC. +* Schedules run in UTC. Name the timezone when you set a schedule, as in "every weekday at 9am Pacific". With no timezone in your message, Claude uses the one on your Slack profile. To confirm the time Claude set, send [`@Claude !routines`](https://claude.com/docs/claude-tag/users/commands#list-the-routines-in-a-channel), which lists schedules in UTC. * A routine runs at a fixed UTC time, so each daylight saving change shifts its local time by an hour, in the same direction the clocks move. A routine running at 9am Pacific moves to 10am after the clocks go forward, or to 8am after they go back. Ask Claude to reschedule the routine to the local time you want. -* A scheduled job that touches a github.com repository uses the same GitHub connection your admin set up for interactive work. See [Configure GitHub access](/docs/claude-tag/admins/configure-github.md#scheduled-work-uses-the-same-connection). +* A scheduled job that touches a github.com repository uses the same GitHub connection your admin set up for interactive work. See [Configure GitHub access](https://claude.com/docs/claude-tag/admins/configure-github.md#scheduled-work-uses-the-same-connection). ## Related resources -* [Use case library](/docs/claude-tag/users/use-cases.md): every entry has a proactive form to copy -* [Prompt library](/docs/claude-tag/users/prompt-library.md#manage-routines): prompts to create, audit, and stop routines -* [Good habits](/docs/claude-tag/users/good-habits.md): write schedules that keep working +* [Use case library](https://claude.com/docs/claude-tag/users/use-cases.md): every entry has a proactive form to copy +* [Prompt library](https://claude.com/docs/claude-tag/users/prompt-library.md#manage-routines): prompts to create, audit, and stop routines +* [Good habits](https://claude.com/docs/claude-tag/users/good-habits.md): write schedules that keep working diff --git a/content/claude/claude-tag/users/prompt-library.md b/content/claude/claude-tag/users/prompt-library.md index f87191ced..7acd72686 100644 --- a/content/claude/claude-tag/users/prompt-library.md +++ b/content/claude/claude-tag/users/prompt-library.md @@ -54,7 +54,7 @@ To hand over a discussion too long to forward, paste the thread's link instead: @Claude read the thread linked below and take over the fix it describes. Post your plan here before changing anything. ``` -**Why it works**: Claude works in the thread where you pasted the link, not in the thread you linked, so it uses this channel's connections and this channel can see the result. By asking Claude to post its plan first, you can redirect it before it starts. To read a linked thread in a public channel, Claude must be a member of that channel, and it can read a private channel's threads [only from inside that channel](/docs/claude-tag/users/good-habits.md#pick-the-right-surface). If Claude says it can't read the link, `/invite @Claude` in the linked public channel, or forward the messages instead. +**Why it works**: Claude works in the thread where you pasted the link, not in the thread you linked, so it uses this channel's connections and this channel can see the result. By asking Claude to post its plan first, you can redirect it before it starts. To read a linked thread in a public channel, Claude must be a member of that channel, and it can read a private channel's threads [only from inside that channel](https://claude.com/docs/claude-tag/users/good-habits.md#pick-the-right-surface). If Claude says it can't read the link, `/invite @Claude` in the linked public channel, or forward the messages instead. ## Shape how the channel works @@ -76,7 +76,7 @@ Use the prompts below to set channel-wide behavior that applies to every thread, @Claude remember for this channel: treat every top-level post as a task and pick it up without waiting for a mention. ``` -**Why it works**: Claude already [picks up untagged posts when it judges a reply is warranted](/docs/claude-tag/users/when-claude-responds.md), and it weighs this channel-memory rule in that judgment, so teammates don't have to remember to tag Claude on posts with a concrete ask. If you don't specify a need, or if a teammate has already claimed the task, Claude may not respond to the message. In [a channel Claude has stopped reading](/docs/claude-tag/users/when-claude-responds.md#when-claude-stops-reading-a-channel), mention `@Claude` so that it replies and starts reading the channel again. +**Why it works**: Claude already [picks up untagged posts when it judges a reply is warranted](https://claude.com/docs/claude-tag/users/when-claude-responds.md), and it weighs this channel-memory rule in that judgment, so teammates don't have to remember to tag Claude on posts with a concrete ask. If you don't specify a need, or if a teammate has already claimed the task, Claude may not respond to the message. In [a channel Claude has stopped reading](https://claude.com/docs/claude-tag/users/when-claude-responds.md#when-claude-stops-reading-a-channel), mention `@Claude` so that it replies and starts reading the channel again. ## Check and correct memory @@ -100,7 +100,7 @@ Use the prompts below to set channel-wide behavior that applies to every thread, ## Manage routines -Create, audit, and stop the scheduled jobs Claude runs in this channel. For paste-ready schedules by scenario, like a daily standup summary or a weekly digest, see [Routine recipes](/docs/claude-tag/users/proactivity.md#routine-recipes). +Create, audit, and stop the scheduled jobs Claude runs in this channel. For paste-ready schedules by scenario, like a daily standup summary or a weekly digest, see [Routine recipes](https://claude.com/docs/claude-tag/users/proactivity.md#routine-recipes). ```text wrap theme={null} @Claude every Friday at 3pm, post a summary of this week's requests: how many, top themes, and anything still unrouted. @@ -128,7 +128,7 @@ Give Claude a list of independent tasks in a channel thread, and ask it to open @Claude for each of these issues, start a new thread in this channel and fix it there. Open a draft PR in each, and post the links here when the threads are up. ``` -**Why it works**: each new thread [runs its own session](/docs/claude-tag/users/good-habits.md#start-a-new-thread-for-a-new-task) in its own sandbox, so the tasks run at the same time and you can review each one on its own. To continue one existing discussion in a new thread instead, use [`!fork`](/docs/claude-tag/users/commands#fork-a-thread). +**Why it works**: each new thread [runs its own session](https://claude.com/docs/claude-tag/users/good-habits.md#start-a-new-thread-for-a-new-task) in its own sandbox, so the tasks run at the same time and you can review each one on its own. To continue one existing discussion in a new thread instead, use [`!fork`](https://claude.com/docs/claude-tag/users/commands#fork-a-thread). ## Steer work mid-thread @@ -150,7 +150,7 @@ Change of plan: target the staging config instead, and post the diff here before Post the draft to the thread, or commit and push what you have, then keep going. ``` -**Why it works**: the thread is durable but [the isolated workspace behind it isn't](/docs/claude-tag/concepts/how-it-works.md#what-survives-between-replies). Anything Claude posts to the thread or pushes to a branch survives idle recycling; files that exist only in that workspace don't. +**Why it works**: the thread is durable but [the isolated workspace behind it isn't](https://claude.com/docs/claude-tag/concepts/how-it-works.md#what-survives-between-replies). Anything Claude posts to the thread or pushes to a branch survives idle recycling; files that exist only in that workspace don't. ## Task starters, by shape @@ -158,18 +158,18 @@ Each entry in the use case library gets one starter here; the linked page has th | To do this | Paste this | | :- | :- | -| [Triage requests](/docs/claude-tag/users/use-cases/triage-requests.md) | "remember for this channel: when someone tags you on a request, check whether it duplicates something already reported, answer it directly if the answer exists, and otherwise route it to the right owner with a one-line summary. Track recurring themes." | -| [Catch up](/docs/claude-tag/users/use-cases/catch-up.md) | "what got decided in this thread, and what's still open?" | -| [Create an artifact](/docs/claude-tag/users/use-cases/create-artifacts.md) | "turn this thread into a one-page decision doc" | -| [Track a project](/docs/claude-tag/users/use-cases/track-projects.md) | "where are we on the migration? What's blocked and on whom?" | -| [Answer a data question](/docs/claude-tag/users/use-cases/answer-data-questions.md) | "show signup growth by week, and explain the dips discussed above" | -| [Find an answer in the docs](/docs/claude-tag/users/use-cases/find-answers.md) | "what's our policy on data retention, and which doc says so?" | -| [Pull deal state](/docs/claude-tag/users/use-cases/pull-deal-state.md) | "what's the state of the Acme renewal?" | -| [Watch monitors](/docs/claude-tag/users/use-cases/watch-monitors.md) | "every morning at 7, check the dashboards and post one line per service" | -| [Fix a bug](/docs/claude-tag/users/use-cases/fix-bugs.md) | "in acme/data-pipeline, reproduce the bug in this thread, fix it, and open a draft PR" | +| [Triage requests](https://claude.com/docs/claude-tag/users/use-cases/triage-requests.md) | "remember for this channel: when someone tags you on a request, check whether it duplicates something already reported, answer it directly if the answer exists, and otherwise route it to the right owner with a one-line summary. Track recurring themes." | +| [Catch up](https://claude.com/docs/claude-tag/users/use-cases/catch-up.md) | "what got decided in this thread, and what's still open?" | +| [Create an artifact](https://claude.com/docs/claude-tag/users/use-cases/create-artifacts.md) | "turn this thread into a one-page decision doc" | +| [Track a project](https://claude.com/docs/claude-tag/users/use-cases/track-projects.md) | "where are we on the migration? What's blocked and on whom?" | +| [Answer a data question](https://claude.com/docs/claude-tag/users/use-cases/answer-data-questions.md) | "show signup growth by week, and explain the dips discussed above" | +| [Find an answer in the docs](https://claude.com/docs/claude-tag/users/use-cases/find-answers.md) | "what's our policy on data retention, and which doc says so?" | +| [Pull deal state](https://claude.com/docs/claude-tag/users/use-cases/pull-deal-state.md) | "what's the state of the Acme renewal?" | +| [Watch monitors](https://claude.com/docs/claude-tag/users/use-cases/watch-monitors.md) | "every morning at 7, check the dashboards and post one line per service" | +| [Fix a bug](https://claude.com/docs/claude-tag/users/use-cases/fix-bugs.md) | "in acme/data-pipeline, reproduce the bug in this thread, fix it, and open a draft PR" | ## Related resources -* [Use case library](/docs/claude-tag/users/use-cases.md): the full setup behind each starter -* [Good habits](/docs/claude-tag/users/good-habits.md): the habits these prompts are built from -* [Getting started](/docs/claude-tag/users/getting-started.md): the basics, if you haven't sent a first message yet +* [Use case library](https://claude.com/docs/claude-tag/users/use-cases.md): the full setup behind each starter +* [Good habits](https://claude.com/docs/claude-tag/users/good-habits.md): the habits these prompts are built from +* [Getting started](https://claude.com/docs/claude-tag/users/getting-started.md): the basics, if you haven't sent a first message yet diff --git a/content/claude/claude-tag/users/troubleshooting.md b/content/claude/claude-tag/users/troubleshooting.md index 9ac829ce4..2d01b520f 100644 --- a/content/claude/claude-tag/users/troubleshooting.md +++ b/content/claude/claude-tag/users/troubleshooting.md @@ -10,7 +10,7 @@ > > Claude Tag is in public beta. Features and behavior described here may change before general availability. -When something goes wrong mid-conversation, the cause is usually one of a small set. Each entry below has the same three parts: what you see, what it means, and how to resolve it. For setup and credential errors, see the [admin troubleshooting page](/docs/claude-tag/admins/troubleshooting.md). +When something goes wrong mid-conversation, the cause is usually one of a small set. Each entry below has the same three parts: what you see, what it means, and how to resolve it. For setup and credential errors, see the [admin troubleshooting page](https://claude.com/docs/claude-tag/admins/troubleshooting.md). Many fixes end with something to send your admin. On this page that means whoever manages your organization's Claude account at claude.ai, and it's often not the same person as your Slack administrator. If you don't know who that is, ask whoever set Claude up in your workspace. @@ -30,14 +30,14 @@ Total silence has several possible causes, from the app not being installed to t Work through these in order. Each step says what success looks like and where to go if it fails. -1. **Is the Claude app installed in this workspace?** Start typing `@Claude` in any channel. **Works**: Slack autocompletes to a Claude app with an app badge; if more than one Claude app appears, check with your admin which one to use. **Fails**: nothing autocompletes, or only a person named Claude appears. The app isn't installed; this needs your admin (send them the [setup overview](/docs/claude-tag/admins/setup-overview)). +1. **Is the Claude app installed in this workspace?** Start typing `@Claude` in any channel. **Works**: Slack autocompletes to a Claude app with an app badge; if more than one Claude app appears, check with your admin which one to use. **Fails**: nothing autocompletes, or only a person named Claude appears. The app isn't installed; this needs your admin (send them the [setup overview](https://claude.com/docs/claude-tag/admins/setup-overview)). 2. **Is Claude in this channel?** Type `/invite @Claude` in the channel's message box, not in a thread reply. Slack rejects `/invite` inside threads ("/invite is not supported in threads. Sorry!"). **Works**: Slack posts "Claude was added to #channel" (or "is already in this channel"). Mention it again. **Fails**: Slack says you can't add apps to this channel (a Slack Connect or guest-restricted channel); try an internal channel instead. If Slack says "You don't have permission to invite people to this channel", the channel or workspace limits who can add people. In Slack, open **Channel details** → **Agents & apps** (called **Integrations** in some Slack versions), select **Add**, and pick **Claude**. Or ask someone who can add people to the channel to add Claude. 3. **Is Claude Tag turned on for this channel?** Mention it again now that it's invited. **Works**: it reacts and replies. **Fails**: Claude replies in one of these ways, and each needs your admin: - * **A notice that starts "Claude isn't on in this channel yet"**: your admin hasn't finished setting up Claude Tag. Send them [Launch Claude Tag](/docs/claude-tag/admins/setup-overview#launch-claude-tag). - * **A notice that says "Claude is disabled in this channel"**: Claude Tag is turned off for the channel, its workspace, or the organization. Send them [Claude is disabled in this channel](/docs/claude-tag/admins/troubleshooting.md#claude-is-disabled-in-this-channel). - * **A notice that the legacy Claude in Slack bot is retired**: the channel is still set to **Legacy**. Send them [The legacy Claude in Slack bot is retired](/docs/claude-tag/admins/troubleshooting.md#the-legacy-claude-in-slack-bot-is-retired-effective-october-5-2026). + * **A notice that starts "Claude isn't on in this channel yet"**: your admin hasn't finished setting up Claude Tag. Send them [Launch Claude Tag](https://claude.com/docs/claude-tag/admins/setup-overview#launch-claude-tag). + * **A notice that says "Claude is disabled in this channel"**: Claude Tag is turned off for the channel, its workspace, or the organization. Send them [Claude is disabled in this channel](https://claude.com/docs/claude-tag/admins/troubleshooting.md#claude-is-disabled-in-this-channel). + * **A notice that the legacy Claude in Slack bot is retired**: the channel is still set to **Legacy**. Send them [The legacy Claude in Slack bot is retired](https://claude.com/docs/claude-tag/admins/troubleshooting.md#the-legacy-claude-in-slack-bot-is-retired-effective-october-5-2026). -If `@Claude` still gets no reaction and no reply after all three, send the [admin entries for a silent workspace](/docs/claude-tag/admins/troubleshooting.md#nothing-responds) to an admin. For silence in one channel, send them to your Claude admin. For silence across a whole workspace or a whole Enterprise Grid, send them to whoever administers Slack for you, because the fix usually needs a Slack admin. +If `@Claude` still gets no reaction and no reply after all three, send the [admin entries for a silent workspace](https://claude.com/docs/claude-tag/admins/troubleshooting.md#nothing-responds) to an admin. For silence in one channel, send them to your Claude admin. For silence across a whole workspace or a whole Enterprise Grid, send them to whoever administers Slack for you, because the fix usually needs a Slack admin. ### Claude replies to me but not to a teammate @@ -47,7 +47,7 @@ Claude answers your mentions in a channel, and a teammate's mentions in the same **What it means** -Mentioning Claude in a channel doesn't require the sender to have a Claude account or seat, so by default anyone in the workspace can use it. Your organization can restrict that with the [member access setting](/docs/claude-tag/admins/restrict-access.md#restrict-who-can-use-claude), in which case members outside the restriction are declined. +Mentioning Claude in a channel doesn't require the sender to have a Claude account or seat, so by default anyone in the workspace can use it. Your organization can restrict that with the [member access setting](https://claude.com/docs/claude-tag/admins/restrict-access.md#restrict-who-can-use-claude), in which case members outside the restriction are declined. **How to resolve** @@ -55,7 +55,7 @@ Have the teammate mention `@Claude` themselves and report the exact text of any * No reaction and no reply at all: unusual when it works for you in the same channel; send your admin the exact channel and person. * A message about guests: see [the guest entry below](#claude-doesn%E2%80%99t-respond-in-channels-that-include-guests). -* A message about permissions or access: your organization restricts who can use Claude; send your admin [the member access setting](/docs/claude-tag/admins/restrict-access.md#restrict-who-can-use-claude). +* A message about permissions or access: your organization restricts who can use Claude; send your admin [the member access setting](https://claude.com/docs/claude-tag/admins/restrict-access.md#restrict-who-can-use-claude). ### Claude reacted or started thinking, then never replied @@ -69,8 +69,8 @@ A reaction or a working indicator without a reply usually means Claude is still **How to resolve** -1. Send [`@Claude !status`](/docs/claude-tag/users/commands#check-whether-claude-is-still-working) in the same thread. Claude tells you, in a note only you can see, whether it's still working and for how long, without interrupting the work. If the note says Claude got disconnected, @-mention Claude in the thread and it picks up where it left off, with no restart needed. -2. If the silence has stretched well past what the task should need, send [`@Claude !restart`](/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session) in the thread; it archives the session and starts a fresh one that still reads the thread. Starting a new thread and restating the request also works. +1. Send [`@Claude !status`](https://claude.com/docs/claude-tag/users/commands#check-whether-claude-is-still-working) in the same thread. Claude tells you, in a note only you can see, whether it's still working and for how long, without interrupting the work. If the note says Claude got disconnected, @-mention Claude in the thread and it picks up where it left off, with no restart needed. +2. If the silence has stretched well past what the task should need, send [`@Claude !restart`](https://claude.com/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session) in the thread; it archives the session and starts a fresh one that still reads the thread. Starting a new thread and restating the request also works. > [!WARNING] > @@ -96,7 +96,7 @@ The second message means the session didn't start at all. The failure is usually **How to resolve** -* For the capacity message, wait a few minutes. To add context while waiting, @-mention Claude in the same thread rather than starting a new one. A new thread only queues a second session behind the first. If Claude still hasn't started after several more minutes, send your admin [Still waiting for available capacity](/docs/claude-tag/admins/troubleshooting.md#still-waiting-for-available-capacity). +* For the capacity message, wait a few minutes. To add context while waiting, @-mention Claude in the same thread rather than starting a new one. A new thread only queues a second session behind the first. If Claude still hasn't started after several more minutes, send your admin [Still waiting for available capacity](https://claude.com/docs/claude-tag/admins/troubleshooting.md#still-waiting-for-available-capacity). * For the failed-start message, mention Claude in the same thread to retry. If the session fails to start again, ask an admin. ### Claude didn't react to a message I edited @@ -123,7 +123,7 @@ A mention in a Slack Connect channel, one shared with another company, gets no a Find what you saw in this list: -* **No answer and no notice.** By default, Claude is off in Slack Connect channels and posts no notice there. An Owner or a Claude Tag admin can [turn Claude on for Slack Connect channels](/docs/claude-tag/admins/restrict-access.md#slack-connect-channels). If your admin has turned Claude on and it still doesn't answer, your admin can check the cases listed there. +* **No answer and no notice.** By default, Claude is off in Slack Connect channels and posts no notice there. An Owner or a Claude Tag admin can [turn Claude on for Slack Connect channels](https://claude.com/docs/claude-tag/admins/restrict-access.md#slack-connect-channels). If your admin has turned Claude on and it still doesn't answer, your admin can check the cases listed there. * **A reply only you can see.** If Claude's reply starts "This is a shared Slack Connect channel, and here I only act on requests from people in the host organization with a connected Claude account", the company that set up Claude in this channel has limited it to its own members. * **A notice about the thread's earlier session.** The notice "This channel is now shared with another organization through Slack Connect, so this thread's earlier session can't continue here" means Claude was working in this thread before the channel was shared. Mention `@Claude` in a new thread. @@ -131,11 +131,11 @@ A channel shared across workspaces inside your Enterprise Grid is different. Whe Where guest access is restricted, you may first see "This channel is shared across multiple workspaces, and Claude can't verify whether it includes guests, so Claude can't respond here." If you ask Claude from another conversation to act in one of these channels, such as posting a message there, you see a reply that ends "Claude isn't available in channels shared across your Enterprise Grid". -Each of these Enterprise Grid messages means the channel spans more than one workspace. The [admin entries on these messages](/docs/claude-tag/admins/troubleshooting.md#this-channel-is-shared-across-multiple-workspaces) explain what causes each one and what an admin can change. +Each of these Enterprise Grid messages means the channel spans more than one workspace. The [admin entries on these messages](https://claude.com/docs/claude-tag/admins/troubleshooting.md#this-channel-is-shared-across-multiple-workspaces) explain what causes each one and what an admin can change. **How to resolve** -Move the conversation to an internal channel that belongs to a single workspace, or to a DM, and mention Claude there. For a Slack Connect channel, you can also ask your admin to [turn Claude on there](/docs/claude-tag/admins/restrict-access.md#slack-connect-channels). +Move the conversation to an internal channel that belongs to a single workspace, or to a DM, and mention Claude there. For a Slack Connect channel, you can also ask your admin to [turn Claude on there](https://claude.com/docs/claude-tag/admins/restrict-access.md#slack-connect-channels). ### Couldn't check this channel just now @@ -151,7 +151,7 @@ When your organization restricts Claude in channels that include guests (the def **How to resolve** -Mention Claude again; the check usually passes on retry. If the same channel hits this repeatedly, send your admin [the admin entry on this message](/docs/claude-tag/admins/troubleshooting.md#couldn%E2%80%99t-check-this-channel-just-now). +Mention Claude again; the check usually passes on retry. If the same channel hits this repeatedly, send your admin [the admin entry on this message](https://claude.com/docs/claude-tag/admins/troubleshooting.md#couldn%E2%80%99t-check-this-channel-just-now). ### Claude doesn't respond in channels that include guests @@ -171,7 +171,7 @@ Any of these fixes works: * Remove the guests from the channel. In Slack, open **Channel details** → **Members** and filter by "guests"; guests show a **guest** badge on their Slack profile. * Move the conversation to a channel with no guests. -* Ask a claude.ai organization owner to change the guest setting for this channel, and send them [the guest access setting](/docs/claude-tag/admins/restrict-access.md#restrict-guest-channels). They can let Claude reply with only the channel's own setup, or with full access. If you don't know who your organization's owners are, ask whoever set Claude up in your workspace. +* Ask a claude.ai organization owner to change the guest setting for this channel, and send them [the guest access setting](https://claude.com/docs/claude-tag/admins/restrict-access.md#restrict-guest-channels). They can let Claude reply with only the channel's own setup, or with full access. If you don't know who your organization's owners are, ask whoever set Claude up in your workspace. The guest access setting restores replies, not workspace search. Claude can't search the workspace from a channel that includes guests, even when it's allowed to respond there. Removing the guests or moving the conversation to a channel with no guests restores search as well. @@ -193,7 +193,7 @@ Claude can be wrong, including when it sounds certain. The most common wrong ans Before you share or act on a result, check the source links it posted, and ask it to show its work ("which channels did you search?" or "show me the query you ran"). If the answer is wrong, say so in the same thread with the correct answer; correcting it there is also how you steer the next attempt. -For numbers and facts that matter, the [definition-of-done habit](/docs/claude-tag/users/good-habits.md#give-every-task-a-definition-of-done) helps. Make "include the source for every figure" or "show me the query" part of the ask. +For numbers and facts that matter, the [definition-of-done habit](https://claude.com/docs/claude-tag/users/good-habits.md#give-every-task-a-definition-of-done) helps. Make "include the source for every figure" or "show me the query" part of the ask. ### Claude replies to every message in a thread @@ -217,9 +217,9 @@ Someone posts a top-level message in the channel without mentioning Claude, and **What it means** -The channel's [**Respond automatically**](/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off) setting is on. The setting is on by default. +The channel's [**Respond automatically**](https://claude.com/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off) setting is on. The setting is on by default. -In a channel where someone has [told Claude which kinds of untagged messages to answer](/docs/claude-tag/users/when-claude-responds.md#what-claude-does-with-a-channel-message), it answers those kinds as well. +In a channel where someone has [told Claude which kinds of untagged messages to answer](https://claude.com/docs/claude-tag/users/when-claude-responds.md#what-claude-does-with-a-channel-message), it answers those kinds as well. **How to resolve** @@ -233,7 +233,7 @@ If Claude doesn't confirm the change, turn the setting off on the channel's Conf 2. Turn off the **Respond automatically** toggle. 3. Click **Save**. -If the Configure page says an admin has locked the channel's settings, ask an admin to [turn automatic replies off](/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off) for the channel. +If the Configure page says an admin has locked the channel's settings, ask an admin to [turn automatic replies off](https://claude.com/docs/claude-tag/users/when-claude-responds.md#turn-automatic-replies-on-or-off) for the channel. The **Respond automatically** setting doesn't quiet a thread Claude has already posted in. To quiet one of those threads, reply in it with an instruction such as "only respond when I @-mention you". @@ -259,7 +259,7 @@ Claude posted a message in a conversation you're in, and you want it removed. **What it means** -Claude can delete only messages that the conversation's current [session](/docs/claude-tag/concepts/glossary.md#session) posted, so it can't delete your messages, anyone else's, or a message it posted before that session started. +Claude can delete only messages that the conversation's current [session](https://claude.com/docs/claude-tag/concepts/glossary.md#session) posted, so it can't delete your messages, anyone else's, or a message it posted before that session started. **How to resolve** @@ -269,7 +269,7 @@ Deleting a message this way has the following effects: * The deletion is permanent. * When the deleted message started a thread that has replies, Slack keeps the replies. -* Deleting the message from Slack doesn't remove it from the session's transcript. See [What Anthropic stores](/docs/claude-tag/concepts/data-lifecycle.md#what-anthropic-stores). +* Deleting the message from Slack doesn't remove it from the session's transcript. See [What Anthropic stores](https://claude.com/docs/claude-tag/concepts/data-lifecycle.md#what-anthropic-stores). ### This conversation is too long for me to process @@ -347,7 +347,7 @@ Your organization's usage credit balance can't cover the request, so the turn st **How to resolve** -An admin enables or purchases usage credits in claude.ai for your organization. Once that's done, mention Claude in the same thread to retry (adding credits doesn't restart the work on its own). The retry continues with the thread's conversation and context. [What survives between replies](/docs/claude-tag/concepts/how-it-works.md#what-survives-between-replies) covers what else carries over. +An admin enables or purchases usage credits in claude.ai for your organization. Once that's done, mention Claude in the same thread to retry (adding credits doesn't restart the work on its own). The retry continues with the thread's conversation and context. [What survives between replies](https://claude.com/docs/claude-tag/concepts/how-it-works.md#what-survives-between-replies) covers what else carries over. ### Claude couldn't clone a repository for this session @@ -363,7 +363,7 @@ The clone failed when the session started. A one-off failure is transient; the s **How to resolve** -Wait a few minutes, then mention Claude in the same thread to retry. If the same repository fails every time, send your admin [the GitHub access entry](/docs/claude-tag/admins/troubleshooting.md#github-doesn%E2%80%99t-work-in-this-channel). +Wait a few minutes, then mention Claude in the same thread to retry. If the same repository fails every time, send your admin [the GitHub access entry](https://claude.com/docs/claude-tag/admins/troubleshooting.md#github-doesn%E2%80%99t-work-in-this-channel). ### I got disconnected partway through @@ -421,7 +421,7 @@ The isolated workspace where Claude works on a thread is recycled after a period **How to resolve** -Ask Claude to recreate the file, and for long-running work, ask it to commit and push early, or to post drafts into the thread as it goes, so nothing lives only in that workspace. The [definition-of-done habit](/docs/claude-tag/users/good-habits.md#give-every-task-a-definition-of-done) helps here. Make "push the branch" or "post the file" part of the task. +Ask Claude to recreate the file, and for long-running work, ask it to commit and push early, or to post drafts into the thread as it goes, so nothing lives only in that workspace. The [definition-of-done habit](https://claude.com/docs/claude-tag/users/good-habits.md#give-every-task-a-definition-of-done) helps here. Make "push the branch" or "post the file" part of the task. ### My old thread stopped working, but new threads are fine @@ -435,7 +435,7 @@ A thread keeps the skills, plugins, and custom instructions it started with, so **How to resolve** -Send [`@Claude !restart`](/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session) in the thread. It archives the stuck session and starts a fresh one with your organization's current configuration, and the fresh session still reads the thread. +Send [`@Claude !restart`](https://claude.com/docs/claude-tag/users/commands#restart-a-stuck-or-wrong-context-session) in the thread. It archives the stuck session and starts a fresh one with your organization's current configuration, and the fresh session still reads the thread. Starting a new thread and restating your request also works; paste a link to the old thread so Claude picks up the context. @@ -467,7 +467,7 @@ Channel memory is a small, curated note, not a transcript, and Claude decides wh To make an instruction stick, say so explicitly, as in `remember for this channel: always post reports as a table`. Keep saved instructions short; the per-channel memory budget is limited, and long entries crowd out everything else. For longer playbooks, store them in a repository Claude can read. -Verify what stuck by asking what it remembers about the channel. See [What Claude Tag remembers](/docs/claude-tag/users/memory.md). +Verify what stuck by asking what it remembers about the channel. See [What Claude Tag remembers](https://claude.com/docs/claude-tag/users/memory.md). ### A session link Claude posted shows a not-found page @@ -527,11 +527,11 @@ Claude says it has no connection for a service you expected it to reach. **What it means** -The channel likely hasn't been given a connection for that service; see [what each connection adds](/docs/claude-tag/admins/add-connections.md). +The channel likely hasn't been given a connection for that service; see [what each connection adds](https://claude.com/docs/claude-tag/admins/add-connections.md). **How to resolve** -Ask your admin to add one for this channel and send them [the connection scope entry](/docs/claude-tag/admins/troubleshooting.md#a-connection-works-in-one-channel-but-not-another). Once they have, ask Claude to use the service by name, or start a new thread, which picks up the connection on its own. If the fix worked, asking `@Claude what can you access from this channel?` in a new thread lists the service. +Ask your admin to add one for this channel and send them [the connection scope entry](https://claude.com/docs/claude-tag/admins/troubleshooting.md#a-connection-works-in-one-channel-but-not-another). Once they have, ask Claude to use the service by name, or start a new thread, which picks up the connection on its own. If the fix worked, asking `@Claude what can you access from this channel?` in a new thread lists the service. ### A connector works on claude.ai but not in Slack @@ -541,26 +541,26 @@ A connector you use on claude.ai is missing when you work with Claude in Slack, **What it means** -Where you message Claude determines which connectors apply. A channel session uses the connections an admin attached to it. Claude can also [use your personal connectors there](/docs/claude-tag/concepts/personal-connectors.md) for your own tasks, after you allow it. A one-to-one DM runs on your own claude.ai account and uses that account's connectors. +Where you message Claude determines which connectors apply. A channel session uses the connections an admin attached to it. Claude can also [use your personal connectors there](https://claude.com/docs/claude-tag/concepts/personal-connectors.md) for your own tasks, after you allow it. A one-to-one DM runs on your own claude.ai account and uses that account's connectors. -You set up and authenticate connectors on claude.ai under **Customize > Connectors**; Slack has no connector settings of its own. The [settings map](/docs/claude-tag/concepts/settings-map.md) covers every settings surface. +You set up and authenticate connectors on claude.ai under **Customize > Connectors**; Slack has no connector settings of its own. The [settings map](https://claude.com/docs/claude-tag/concepts/settings-map.md) covers every settings surface. **How to resolve** -For a channel, ask your admin to [add a connection](/docs/claude-tag/admins/add-connections.md) for the service. Claude can also use your [personal connectors](/docs/claude-tag/concepts/personal-connectors.md) for your own tasks in the channel, after you allow it. +For a channel, ask your admin to [add a connection](https://claude.com/docs/claude-tag/admins/add-connections.md) for the service. Claude can also use your [personal connectors](https://claude.com/docs/claude-tag/concepts/personal-connectors.md) for your own tasks in the channel, after you allow it. For a DM, work through these in order: 1. Check that your Claude account is connected. DM `@Claude` and it prompts you to connect if it isn't. 2. Check that the connector shows as connected under **Customize > Connectors** on claude.ai. -3. For a custom connector on a Team or Enterprise plan, an Owner adds it to the organization before you can connect it; see [add a connector by URL](/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url). +3. For a custom connector on a Team or Enterprise plan, an Owner adds it to the organization before you can connect it; see [add a connector by URL](https://claude.com/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url). 4. After connecting or reconnecting the connector on claude.ai, send Claude a new top-level direct message. A session loads its connectors when it starts, so your existing DM threads keep the set they started with and don't pick up the change. ### Claude says it needs Claude Opus 5 to use my personal connectors **What you see** -You ask Claude in a channel to do something that needs one of your [personal connectors](/docs/claude-tag/concepts/personal-connectors.md). Claude replies that it can't, because your Claude organization has turned off Claude Opus 5, which it needs to use your personal connectors in Slack. +You ask Claude in a channel to do something that needs one of your [personal connectors](https://claude.com/docs/claude-tag/concepts/personal-connectors.md). Claude replies that it can't, because your Claude organization has turned off Claude Opus 5, which it needs to use your personal connectors in Slack. **What it means** @@ -568,7 +568,7 @@ Tasks that use your personal connectors need Claude Opus 5 turned on for your or **How to resolve** -Ask your admin to turn Claude Opus 5 back on for your organization, and send them [the admin controls for personal connectors](/docs/claude-tag/concepts/personal-connectors.md#admin-controls-for-personal-connectors). Once it's on, ask Claude again in the thread. Your thread keeps running on the model it was already using. +Ask your admin to turn Claude Opus 5 back on for your organization, and send them [the admin controls for personal connectors](https://claude.com/docs/claude-tag/concepts/personal-connectors.md#admin-controls-for-personal-connectors). Once it's on, ask Claude again in the thread. Your thread keeps running on the model it was already using. ### Claude says it has no internet access or can't open a link @@ -582,7 +582,7 @@ Searching and opening a page take different paths. Web search runs on Anthropic' **How to resolve** -Send your admin the link you tried to open along with [the blocked host entry](/docs/claude-tag/admins/troubleshooting.md#claude-says-a-host-isn%E2%80%99t-allowed-or-it-can%E2%80%99t-reach-the-internet). While you wait, ask Claude to search for the page instead; a search often brings back enough of the content to answer. Once your admin has allowed the website, retry; if it's still blocked, start a fresh thread. +Send your admin the link you tried to open along with [the blocked host entry](https://claude.com/docs/claude-tag/admins/troubleshooting.md#claude-says-a-host-isn%E2%80%99t-allowed-or-it-can%E2%80%99t-reach-the-internet). While you wait, ask Claude to search for the page instead; a search often brings back enough of the content to answer. Once your admin has allowed the website, retry; if it's still blocked, start a fresh thread. ### Claude can't connect over SSH @@ -592,11 +592,11 @@ Claude reports it can't reach a host over SSH, or a database's native protocol t **What it means** -Every request Claude makes from a channel passes through [Agent Proxy](/docs/claude-tag/concepts/agent-identity.md#agent-proxy), which carries HTTP and HTTPS only. A protocol that isn't HTTP, such as SSH or a database's native wire protocol, can't cross the proxy to any host, so this isn't a connection your admin can add. +Every request Claude makes from a channel passes through [Agent Proxy](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-proxy), which carries HTTP and HTTPS only. A protocol that isn't HTTP, such as SSH or a database's native wire protocol, can't cross the proxy to any host, so this isn't a connection your admin can add. **How to resolve** -If the service exposes an HTTP API, ask your admin to [add a connection](/docs/claude-tag/admins/add-connections.md) for that instead. +If the service exposes an HTTP API, ask your admin to [add a connection](https://claude.com/docs/claude-tag/admins/add-connections.md) for that instead. ### You've reached a Claude Tag spend limit @@ -624,7 +624,7 @@ In a DM or a channel, when your organization's extra usage limit is the cap rath **What it means** -Usage hit a cap. For the **Claude Tag spend limit** message, the cap is a spend limit an admin set, either for the whole organization or [for this channel](/docs/claude-tag/admins/restrict-access.md#set-spend-limits), and the message reads the same for both. +Usage hit a cap. For the **Claude Tag spend limit** message, the cap is a spend limit an admin set, either for the whole organization or [for this channel](https://claude.com/docs/claude-tag/admins/restrict-access.md#set-spend-limits), and the message reads the same for both. A rate limit looks similar but is a different problem, and raising the spend limit doesn't clear it. If your message instead says "That message didn't get through to Claude." or begins "Rate-limited delivering that message", requests arrived faster than Claude accepts them at that moment. Wait a few seconds, then send your message again. @@ -673,7 +673,7 @@ One-to-one DMs run on your own claude.ai account rather than the organization's 1. Mention Claude again; the retry usually clears it. 2. If it keeps happening, the environment your account is set to use may no longer be available; check it at [`claude.ai/code`](https://claude.ai/code). -If a channel (not a DM) shows session-start failures that mention an environment, send your admin [the environment scope entry](/docs/claude-tag/admins/troubleshooting.md#channel-sessions-use-the-wrong-environment-or-can%E2%80%99t-find-one). +If a channel (not a DM) shows session-start failures that mention an environment, send your admin [the environment scope entry](https://claude.com/docs/claude-tag/admins/troubleshooting.md#channel-sessions-use-the-wrong-environment-or-can%E2%80%99t-find-one). ### Your Claude account is connected, but it doesn't have access in this organization @@ -691,7 +691,7 @@ Your seat doesn't qualify for one-to-one DMs. A seat that includes Claude Code a **How to resolve** -Channels keep working while you wait, so mention `@Claude` there if you need an answer now. Then ask your admin (whoever manages your organization's Claude account at claude.ai) about your seat assignment; the [admin entry on this message](/docs/claude-tag/admins/troubleshooting.md#your-claude-account-is-connected-but-it-doesn%E2%80%99t-have-access-in-this-organization) covers the fix. +Channels keep working while you wait, so mention `@Claude` there if you need an answer now. Then ask your admin (whoever manages your organization's Claude account at claude.ai) about your seat assignment; the [admin entry on this message](https://claude.com/docs/claude-tag/admins/troubleshooting.md#your-claude-account-is-connected-but-it-doesn%E2%80%99t-have-access-in-this-organization) covers the fix. ### Your Claude admin has disabled sending direct messages to Claude @@ -707,7 +707,7 @@ DMs are turned off organization-wide, which covers group DMs too. **How to resolve** -Use a channel instead, or ask an Owner of your Claude organization to [turn DMs back on](/docs/claude-tag/admins/restrict-access.md#allow-or-disable-direct-messages). +Use a channel instead, or ask an Owner of your Claude organization to [turn DMs back on](https://claude.com/docs/claude-tag/admins/restrict-access.md#allow-or-disable-direct-messages). ### Group DMs aren't supported yet @@ -726,7 +726,7 @@ Claude can't answer in this group DM. These are the usual causes: **How to resolve** -Ask Claude in a channel or a one-to-one DM instead. If you're an admin, [Group DMs](/docs/claude-tag/admins/restrict-access.md#group-dms) covers how who is in a group DM, and how Slack shares it, can change whether Claude answers. +Ask Claude in a channel or a one-to-one DM instead. If you're an admin, [Group DMs](https://claude.com/docs/claude-tag/admins/restrict-access.md#group-dms) covers how who is in a group DM, and how Slack shares it, can change whether Claude answers. ### Agents can only be added at the start of direct messages @@ -749,6 +749,6 @@ Choose where to continue with Claude: ## Related resources -* [Control when Claude Tag responds](/docs/claude-tag/users/when-claude-responds.md): what makes Claude reply without an @-mention, and the controls that turn those replies off -* [How Claude Tag works](/docs/claude-tag/concepts/how-it-works.md): why behavior differs by channel and thread +* [Control when Claude Tag responds](https://claude.com/docs/claude-tag/users/when-claude-responds.md): what makes Claude reply without an @-mention, and the controls that turn those replies off +* [How Claude Tag works](https://claude.com/docs/claude-tag/concepts/how-it-works.md): why behavior differs by channel and thread * [Give feedback](https://support.claude.com): report a bug from the thread where it happened diff --git a/content/claude/claude-tag/users/use-cases.md b/content/claude/claude-tag/users/use-cases.md index 3d92a2c27..39a62bd03 100644 --- a/content/claude/claude-tag/users/use-cases.md +++ b/content/claude/claude-tag/users/use-cases.md @@ -10,29 +10,29 @@ > > Claude Tag is in public beta. Features and behavior described here may change before general availability. -Each use case below links to a page with prompts to paste, what it needs connected, and how to set it up to [run on a schedule or watch the channel](/docs/claude-tag/users/proactivity.md) instead of asking each time. +Each use case below links to a page with prompts to paste, what it needs connected, and how to set it up to [run on a schedule or watch the channel](https://claude.com/docs/claude-tag/users/proactivity.md) instead of asking each time. > [!NOTE] > -> If typing `@Claude` doesn't show **Claude** with an **APP** badge, the Claude app isn't installed in your Slack workspace; ask your Slack admin to install it. If the mention sends but Claude doesn't reply, ask your Claude organization admin to enable Claude Tag for the channel and send them the [setup guide](/docs/claude-tag/admins/setup-overview). +> If typing `@Claude` doesn't show **Claude** with an **APP** badge, the Claude app isn't installed in your Slack workspace; ask your Slack admin to install it. If the mention sends but Claude doesn't reply, ask your Claude organization admin to enable Claude Tag for the channel and send them the [setup guide](https://claude.com/docs/claude-tag/admins/setup-overview). ## All use cases | Use case | Who it's for | What Claude does | Connections needed | | :- | :- | :- | :- | -| [Catch up](/docs/claude-tag/users/use-cases/catch-up.md) | Anyone | Summarizes a thread, a channel, or what's waiting on you | Nothing | -| [Work from your own channel](/docs/claude-tag/users/use-cases/your-own-channel.md) | Anyone | Answers scratch questions, digests channels you don't follow, and chases what you said you'd do | Nothing (issue tracker or GitHub optional) | -| [Triage requests](/docs/claude-tag/users/use-cases/triage-requests.md) | Support, ops, IT, any intake channel | Answers what it can, flags duplicates, routes the rest, rolls up themes | Nothing (issue tracker optional for filing) | -| [Turn threads into docs and tickets](/docs/claude-tag/users/use-cases/create-artifacts.md) | Anyone | Produces a decision doc, status memo, ticket, send-ready reply, or hosted web page from a discussion | Nothing (Drive or issue tracker optional) | -| [Track projects and chase approvals](/docs/claude-tag/users/use-cases/track-projects.md) | PMs, leads, anyone running a project channel | Posts standing status digests; follows up on stalled sign-offs | Nothing (issue tracker optional) | -| [Find answers in your docs](/docs/claude-tag/users/use-cases/find-answers.md) | Anyone | Looks up policies, runbooks, prior decisions; replies with the source | Google Drive, Notion, or Confluence | -| [Review documents against a checklist](/docs/claude-tag/users/use-cases/review-documents.md) | Ops, compliance, anyone reviewing against criteria | Checks documents in a connected tool against a checklist or policy; posts findings per item | Google Drive, Notion, or Confluence | -| [Answer data questions](/docs/claude-tag/users/use-cases/answer-data-questions.md) | Analysts, data-adjacent teams | Runs warehouse queries, returns charts; or charts from Slack history alone | BigQuery, Snowflake, or Redshift (charts from Slack need none) | -| [Fix bugs](/docs/claude-tag/users/use-cases/fix-bugs.md) | Engineering | Reproduces the bug, opens a draft PR, follows CI to green | GitHub (Datadog, Sentry optional) | -| [Work with GitHub](/docs/claude-tag/users/use-cases/work-with-github.md) | Engineering, anyone with repository questions | Answers repository questions in-thread, watches pull requests for you, turns postponed chores into draft PRs | GitHub | -| [Watch monitors and alerts](/docs/claude-tag/users/use-cases/watch-monitors.md) | On-call, SRE | Checks dashboards on a schedule; investigates alerts before anyone asks | Datadog, Sentry, or PagerDuty | -| [Pull deal and account state](/docs/claude-tag/users/use-cases/pull-deal-state.md) | Sales, customer success | Answers account questions in-thread; pre-call briefs; weekly pipeline digest | Salesforce, HubSpot, or Gong | -| [Claude Tag for marketing teams](/docs/claude-tag/users/use-cases/marketing-team.md) | Marketing | Answers policy questions from team docs, drafts from campaign threads, checks lead state, posts a weekly metrics digest | HubSpot or Salesforce, plus Google Drive, Notion, or Confluence; BigQuery or Snowflake for the metrics digest (varies by recipe) | +| [Catch up](https://claude.com/docs/claude-tag/users/use-cases/catch-up.md) | Anyone | Summarizes a thread, a channel, or what's waiting on you | Nothing | +| [Work from your own channel](https://claude.com/docs/claude-tag/users/use-cases/your-own-channel.md) | Anyone | Answers scratch questions, digests channels you don't follow, and chases what you said you'd do | Nothing (issue tracker or GitHub optional) | +| [Triage requests](https://claude.com/docs/claude-tag/users/use-cases/triage-requests.md) | Support, ops, IT, any intake channel | Answers what it can, flags duplicates, routes the rest, rolls up themes | Nothing (issue tracker optional for filing) | +| [Turn threads into docs and tickets](https://claude.com/docs/claude-tag/users/use-cases/create-artifacts.md) | Anyone | Produces a decision doc, status memo, ticket, send-ready reply, or hosted web page from a discussion | Nothing (Drive or issue tracker optional) | +| [Track projects and chase approvals](https://claude.com/docs/claude-tag/users/use-cases/track-projects.md) | PMs, leads, anyone running a project channel | Posts standing status digests; follows up on stalled sign-offs | Nothing (issue tracker optional) | +| [Find answers in your docs](https://claude.com/docs/claude-tag/users/use-cases/find-answers.md) | Anyone | Looks up policies, runbooks, prior decisions; replies with the source | Google Drive, Notion, or Confluence | +| [Review documents against a checklist](https://claude.com/docs/claude-tag/users/use-cases/review-documents.md) | Ops, compliance, anyone reviewing against criteria | Checks documents in a connected tool against a checklist or policy; posts findings per item | Google Drive, Notion, or Confluence | +| [Answer data questions](https://claude.com/docs/claude-tag/users/use-cases/answer-data-questions.md) | Analysts, data-adjacent teams | Runs warehouse queries, returns charts; or charts from Slack history alone | BigQuery, Snowflake, or Redshift (charts from Slack need none) | +| [Fix bugs](https://claude.com/docs/claude-tag/users/use-cases/fix-bugs.md) | Engineering | Reproduces the bug, opens a draft PR, follows CI to green | GitHub (Datadog, Sentry optional) | +| [Work with GitHub](https://claude.com/docs/claude-tag/users/use-cases/work-with-github.md) | Engineering, anyone with repository questions | Answers repository questions in-thread, watches pull requests for you, turns postponed chores into draft PRs | GitHub | +| [Watch monitors and alerts](https://claude.com/docs/claude-tag/users/use-cases/watch-monitors.md) | On-call, SRE | Checks dashboards on a schedule; investigates alerts before anyone asks | Datadog, Sentry, or PagerDuty | +| [Pull deal and account state](https://claude.com/docs/claude-tag/users/use-cases/pull-deal-state.md) | Sales, customer success | Answers account questions in-thread; pre-call briefs; weekly pipeline digest | Salesforce, HubSpot, or Gong | +| [Claude Tag for marketing teams](https://claude.com/docs/claude-tag/users/use-cases/marketing-team.md) | Marketing | Answers policy questions from team docs, drafts from campaign threads, checks lead state, posts a weekly metrics digest | HubSpot or Salesforce, plus Google Drive, Notion, or Confluence; BigQuery or Snowflake for the metrics digest (varies by recipe) | ## Use cases by connection @@ -40,17 +40,17 @@ A connection is a tool an admin linked for the channel. Each one adds a category | Connection | Examples | What it adds | | :- | :- | :- | -| Knowledge and docs | Google Drive, Notion, Confluence | [Find answers in your docs](/docs/claude-tag/users/use-cases/find-answers.md) | -| Issue tracking | Linear, Jira, Asana | [Turn threads into tickets](/docs/claude-tag/users/use-cases/create-artifacts.md), [track projects](/docs/claude-tag/users/use-cases/track-projects.md) | -| Data warehouse | BigQuery, Snowflake | [Answer data questions](/docs/claude-tag/users/use-cases/answer-data-questions.md) with charts | -| Go-to-market | Salesforce, HubSpot, Gong | [Pull deal and account state](/docs/claude-tag/users/use-cases/pull-deal-state.md) | -| Monitoring | Datadog, Sentry, PagerDuty | [Watch monitors and alerts](/docs/claude-tag/users/use-cases/watch-monitors.md) | -| Code | GitHub | [Fix bugs](/docs/claude-tag/users/use-cases/fix-bugs.md), open pull requests, follow CI | +| Knowledge and docs | Google Drive, Notion, Confluence | [Find answers in your docs](https://claude.com/docs/claude-tag/users/use-cases/find-answers.md) | +| Issue tracking | Linear, Jira, Asana | [Turn threads into tickets](https://claude.com/docs/claude-tag/users/use-cases/create-artifacts.md), [track projects](https://claude.com/docs/claude-tag/users/use-cases/track-projects.md) | +| Data warehouse | BigQuery, Snowflake | [Answer data questions](https://claude.com/docs/claude-tag/users/use-cases/answer-data-questions.md) with charts | +| Go-to-market | Salesforce, HubSpot, Gong | [Pull deal and account state](https://claude.com/docs/claude-tag/users/use-cases/pull-deal-state.md) | +| Monitoring | Datadog, Sentry, PagerDuty | [Watch monitors and alerts](https://claude.com/docs/claude-tag/users/use-cases/watch-monitors.md) | +| Code | GitHub | [Fix bugs](https://claude.com/docs/claude-tag/users/use-cases/fix-bugs.md), open pull requests, follow CI | -If a connection your work needs is missing, an admin can [add it](/docs/claude-tag/admins/add-connections.md). +If a connection your work needs is missing, an admin can [add it](https://claude.com/docs/claude-tag/admins/add-connections.md). ## Related resources -* [Prompt library](/docs/claude-tag/users/prompt-library.md): the prompts from every entry, plus the operational ones, on one page -* [Good habits](/docs/claude-tag/users/good-habits.md): make any of these reliable -* [Set up routines](/docs/claude-tag/users/proactivity.md): turn any entry into a scheduled job +* [Prompt library](https://claude.com/docs/claude-tag/users/prompt-library.md): the prompts from every entry, plus the operational ones, on one page +* [Good habits](https://claude.com/docs/claude-tag/users/good-habits.md): make any of these reliable +* [Set up routines](https://claude.com/docs/claude-tag/users/proactivity.md): turn any entry into a scheduled job diff --git a/content/claude/claude-tag/users/use-cases/answer-data-questions.md b/content/claude/claude-tag/users/use-cases/answer-data-questions.md index b9560d8c0..cf54e2cef 100644 --- a/content/claude/claude-tag/users/use-cases/answer-data-questions.md +++ b/content/claude/claude-tag/users/use-cases/answer-data-questions.md @@ -18,7 +18,7 @@ Each prompt below is a Slack message. You paste it in the channel where the metr ## Check the channel's connections -Check that the channel has the connections below. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](/docs/claude-tag/admins/add-connections.md) the channel is missing. +Check that the channel has the connections below. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](https://claude.com/docs/claude-tag/admins/add-connections.md) the channel is missing. | Connection | Examples | Why it matters here | | :- | :- | :- | @@ -42,7 +42,7 @@ When the team checks the same numbers every morning, schedule the post. One mess @Claude every morning at 8, post yesterday's key metrics as a chart with a two-line summary of anything unusual. ``` -Naming the format, here a chart plus two lines, keeps a recurring post scannable instead of letting it grow each day. To list or cancel scheduled work later, see [Manage standing work](/docs/claude-tag/users/proactivity.md#manage-standing-work). +Naming the format, here a chart plus two lines, keeps a recurring post scannable instead of letting it grow each day. To list or cancel scheduled work later, see [Manage standing work](https://claude.com/docs/claude-tag/users/proactivity.md#manage-standing-work). ### Chart from Slack alone @@ -56,11 +56,11 @@ Anyone in the thread can ask for a different cut of the same data. ## Related resources -> **[Watch monitors and alerts](/docs/claude-tag/users/use-cases/watch-monitors.md)** +> **[Watch monitors and alerts](https://claude.com/docs/claude-tag/users/use-cases/watch-monitors.md)** > > When the question is about systems, not metrics -> **[Set up routines](/docs/claude-tag/users/proactivity.md)** +> **[Set up routines](https://claude.com/docs/claude-tag/users/proactivity.md)** > > Recurring reports diff --git a/content/claude/claude-tag/users/use-cases/catch-up.md b/content/claude/claude-tag/users/use-cases/catch-up.md index 68ba5a896..e8d074f52 100644 --- a/content/claude/claude-tag/users/use-cases/catch-up.md +++ b/content/claude/claude-tag/users/use-cases/catch-up.md @@ -16,7 +16,7 @@ Each prompt below is a Slack message. You paste it in any channel Claude is in, ## Check the channel's connections -This use case needs no connections; it works on Slack history alone. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](/docs/claude-tag/admins/add-connections.md) the channel is missing. +This use case needs no connections; it works on Slack history alone. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](https://claude.com/docs/claude-tag/admins/add-connections.md) the channel is missing. ## Prompts to paste @@ -46,14 +46,14 @@ If the first stretch of every morning goes to re-reading channels, schedule the @Claude every weekday at 9am, post a summary of open threads in this channel and anything that looks like it's waiting on someone. ``` -"Waiting on someone" makes the rollup surface actions, not just a recap of yesterday. To list or cancel scheduled work later, see [Manage standing work](/docs/claude-tag/users/proactivity.md#manage-standing-work). +"Waiting on someone" makes the rollup surface actions, not just a recap of yesterday. To list or cancel scheduled work later, see [Manage standing work](https://claude.com/docs/claude-tag/users/proactivity.md#manage-standing-work). ## Related resources -> **[Turn threads into docs and tickets](/docs/claude-tag/users/use-cases/create-artifacts.md)** +> **[Turn threads into docs and tickets](https://claude.com/docs/claude-tag/users/use-cases/create-artifacts.md)** > > When the catch-up should become an artifact -> **[Set up routines](/docs/claude-tag/users/proactivity.md)** +> **[Set up routines](https://claude.com/docs/claude-tag/users/proactivity.md)** > > Scheduling and triggers diff --git a/content/claude/claude-tag/users/use-cases/create-artifacts.md b/content/claude/claude-tag/users/use-cases/create-artifacts.md index dcf08afc0..ed1586073 100644 --- a/content/claude/claude-tag/users/use-cases/create-artifacts.md +++ b/content/claude/claude-tag/users/use-cases/create-artifacts.md @@ -18,7 +18,7 @@ Each prompt below is a Slack message. You paste it in the thread or channel you ## Check the channel's connections -Check that the channel has the connections below. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](/docs/claude-tag/admins/add-connections.md) the channel is missing. +Check that the channel has the connections below. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](https://claude.com/docs/claude-tag/admins/add-connections.md) the channel is missing. | Connection | Examples | Why it matters here | | :- | :- | :- | @@ -53,7 +53,7 @@ When the deliverable is a page people open, like a dashboard or a status page, a @Claude build a status page from the open items in this channel and post the link here. ``` -Anyone with access to this channel can open the page; [artifact visibility](/docs/claude-tag/concepts/security-and-data.md#artifact-visibility) covers the access model. +Anyone with access to this channel can open the page; [artifact visibility](https://claude.com/docs/claude-tag/concepts/security-and-data.md#artifact-visibility) covers the access model. ### Comment on the page to ask for changes @@ -77,10 +77,10 @@ Planning inputs arrive over a month, not in one sitting. Forward messages and id ## Related resources -> **[Catch up](/docs/claude-tag/users/use-cases/catch-up.md)** +> **[Catch up](https://claude.com/docs/claude-tag/users/use-cases/catch-up.md)** > > When you need the summary, not the artifact -> **[Good habits](/docs/claude-tag/users/good-habits.md)** +> **[Good habits](https://claude.com/docs/claude-tag/users/good-habits.md)** > > How to specify outputs that come back right diff --git a/content/claude/claude-tag/users/use-cases/find-answers.md b/content/claude/claude-tag/users/use-cases/find-answers.md index 4d8fd303d..635d4f36e 100644 --- a/content/claude/claude-tag/users/use-cases/find-answers.md +++ b/content/claude/claude-tag/users/use-cases/find-answers.md @@ -16,7 +16,7 @@ Each prompt below is a Slack message. You paste it in the channel where the ques ## Check the channel's connections -Check that the channel has the connections below. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](/docs/claude-tag/admins/add-connections.md) the channel is missing. +Check that the channel has the connections below. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](https://claude.com/docs/claude-tag/admins/add-connections.md) the channel is missing. | Connection | Examples | Why it matters here | | :- | :- | :- | @@ -60,14 +60,14 @@ Without any connection, Claude can still answer from the channel's own history. @Claude what did this channel decide about the retention policy, and when? ``` -Answers come from this channel's history and [memory](/docs/claude-tag/users/memory.md). +Answers come from this channel's history and [memory](https://claude.com/docs/claude-tag/users/memory.md). ## Related resources -> **[Catch up](/docs/claude-tag/users/use-cases/catch-up.md)** +> **[Catch up](https://claude.com/docs/claude-tag/users/use-cases/catch-up.md)** > > The same mechanism pointed at "what did I miss" -> **[What Claude Tag remembers](/docs/claude-tag/users/memory.md)** +> **[What Claude Tag remembers](https://claude.com/docs/claude-tag/users/memory.md)** > > How channel knowledge accumulates diff --git a/content/claude/claude-tag/users/use-cases/fix-bugs.md b/content/claude/claude-tag/users/use-cases/fix-bugs.md index 8c2009de7..754c5a4c3 100644 --- a/content/claude/claude-tag/users/use-cases/fix-bugs.md +++ b/content/claude/claude-tag/users/use-cases/fix-bugs.md @@ -18,7 +18,7 @@ Each prompt below is a Slack message. You paste it in the channel or thread wher ## Check the channel's connections -Check that the channel has the connections below. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](/docs/claude-tag/admins/add-connections.md) the channel is missing. +Check that the channel has the connections below. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](https://claude.com/docs/claude-tag/admins/add-connections.md) the channel is missing. | Connection | Examples | Why it matters here | | :- | :- | :- | @@ -36,7 +36,7 @@ A bug report arrives with reproduction steps and nobody free to take it. This ge The done definition, CI green and the PR linking back, gives the session a finish line it can check itself against. -The pull request appears under the Claude GitHub App and links back to the Slack thread it came from. See [how agent identity works](/docs/claude-tag/concepts/agent-identity.md#agent-access). +The pull request appears under the Claude GitHub App and links back to the Slack thread it came from. See [how agent identity works](https://claude.com/docs/claude-tag/concepts/agent-identity.md#agent-access). ### Move a bug report to the owning team's channel @@ -46,7 +46,7 @@ A report that landed in a general channel belongs with the team that owns the co @Claude !fork #data-platform in acme/data-pipeline, reproduce the bug described in the linked thread, fix it, and open a draft PR. Done means CI is green and the PR links back here. ``` -Both channels must be public, and you and Claude must both be in the target. See [Fork a thread](/docs/claude-tag/users/commands.md#fork-a-thread). +Both channels must be public, and you and Claude must both be in the target. See [Fork a thread](https://claude.com/docs/claude-tag/users/commands.md#fork-a-thread). ### Watch a bug channel @@ -56,7 +56,7 @@ Reports arrive faster than the team triages them. The standing form watches the @Claude when a bug report lands in this channel, try to reproduce it. If you can, open a draft PR and tag the area owner; if you can't, reply with what you tried. ``` -With the if/can't branch, every report gets a reply, either a draft or a list of what was tried. To list or cancel scheduled work later, see [Manage standing work](/docs/claude-tag/users/proactivity.md#manage-standing-work). +With the if/can't branch, every report gets a reply, either a draft or a list of what was tried. To list or cancel scheduled work later, see [Manage standing work](https://claude.com/docs/claude-tag/users/proactivity.md#manage-standing-work). ### Diagnose a failure without a fix @@ -78,14 +78,14 @@ Once a pull request exists, one Claude opened or one a person did, Claude can wa "Tag me if anything failed" is the filter. Green runs land quietly in the thread, and only a failure interrupts you. -For repository conventions that should hold across every session that touches the code, like where files go or what a pull request must include, see [Make repo conventions stick](/docs/claude-tag/users/good-habits.md#teach-claude-something-that-sticks). +For repository conventions that should hold across every session that touches the code, like where files go or what a pull request must include, see [Make repo conventions stick](https://claude.com/docs/claude-tag/users/good-habits.md#teach-claude-something-that-sticks). ## Related resources -> **[Watch monitors and alerts](/docs/claude-tag/users/use-cases/watch-monitors.md)** +> **[Watch monitors and alerts](https://claude.com/docs/claude-tag/users/use-cases/watch-monitors.md)** > > Catching the problem before the bug report -> **[Good habits](/docs/claude-tag/users/good-habits.md)** +> **[Good habits](https://claude.com/docs/claude-tag/users/good-habits.md)** > > Definitions of done for code tasks diff --git a/content/claude/claude-tag/users/use-cases/marketing-team.md b/content/claude/claude-tag/users/use-cases/marketing-team.md index 18f18014a..9b8dd05cf 100644 --- a/content/claude/claude-tag/users/use-cases/marketing-team.md +++ b/content/claude/claude-tag/users/use-cases/marketing-team.md @@ -18,7 +18,7 @@ Each prompt below is a Slack message. You paste it in the channel where that wor ## Check the channel's connections -Check that the channel has the connections below. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](/docs/claude-tag/admins/add-connections.md) the channel is missing. Each recipe below names the connection it uses. +Check that the channel has the connections below. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](https://claude.com/docs/claude-tag/admins/add-connections.md) the channel is missing. Each recipe below names the connection it uses. | Connection | Examples | Why it matters here | | :- | :- | :- | @@ -45,7 +45,7 @@ To answer requests as they arrive instead of prompting each time, give the chann @Claude remember for this channel: when someone tags you on a request, answer it from the brand guidelines and the marketing process docs, name the doc you used, and route anything the docs don't cover to the right owner with a one-line summary. ``` -"Remember for this channel" saves the role to [channel memory](/docs/claude-tag/users/memory.md), so it applies to everyone's threads, not just yours. [Triage requests](/docs/claude-tag/users/use-cases/triage-requests.md) adds a weekly rollup that also sweeps posts that never tagged Claude. +"Remember for this channel" saves the role to [channel memory](https://claude.com/docs/claude-tag/users/memory.md), so it applies to everyone's threads, not just yours. [Triage requests](https://claude.com/docs/claude-tag/users/use-cases/triage-requests.md) adds a weekly rollup that also sweeps posts that never tagged Claude. Some questions have no doc to cite, and a person on the team answers in the thread. When that answer will come up again, tell Claude to save it: @@ -69,7 +69,7 @@ The time window bounds the recap, so it comes back in a shape you can check. @Claude turn this thread into an announcement draft I can send to the customer list. Keep it under 200 words and match the messaging doc linked above. ``` -Name the format, the length, and the source the draft should match. The same prompt shape produces a decision doc or a status memo; [Turn threads into docs and tickets](/docs/claude-tag/users/use-cases/create-artifacts.md) lists the variants. +Name the format, the length, and the source the draft should match. The same prompt shape produces a decision doc or a status memo; [Turn threads into docs and tickets](https://claude.com/docs/claude-tag/users/use-cases/create-artifacts.md) lists the variants. ### Check lead and campaign state in the CRM @@ -85,7 +85,7 @@ Asking how long each has waited tells you which lead to chase first. @Claude compare the leads the June campaign created against the ones that reached a queue, and post which ones stalled and at what stage. ``` -The reply lists the stalled records and the stage where each stopped. The [HubSpot connection](/docs/claude-tag/admins/connections/hubspot.md) is created with read scopes, so prompts in this channel pull records and don't change them. For account questions, pre-call briefs, and a pipeline digest, see [Pull deal and account state](/docs/claude-tag/users/use-cases/pull-deal-state.md). +The reply lists the stalled records and the stage where each stopped. The [HubSpot connection](https://claude.com/docs/claude-tag/admins/connections/hubspot.md) is created with read scopes, so prompts in this channel pull records and don't change them. For account questions, pre-call briefs, and a pipeline digest, see [Pull deal and account state](https://claude.com/docs/claude-tag/users/use-cases/pull-deal-state.md). ### Schedule a weekly campaign metrics digest @@ -95,7 +95,7 @@ When the team checks the same campaign numbers at the start of every week, sched @Claude every Monday at 9am Eastern, post last week's campaign metrics as a chart: signups by campaign, week-over-week change, and a two-line note on anything unusual. ``` -Name the timezone in the message, since schedules run in UTC. To list or cancel scheduled work later, see [Manage standing work](/docs/claude-tag/users/proactivity.md#manage-standing-work). +Name the timezone in the message, since schedules run in UTC. To list or cancel scheduled work later, see [Manage standing work](https://claude.com/docs/claude-tag/users/proactivity.md#manage-standing-work). ### Save brand voice rules to channel memory @@ -105,14 +105,14 @@ Claude follows the tone and terminology rules saved to a channel's memory, so a @Claude remember for this channel: headlines use sentence case, "sign up" is the verb and "signup" is the noun, and the product is never called a platform. ``` -Keep saved entries short, since long entries crowd out everything else. For a full style guide, link the document in the channel or store it in a connected tool Claude can read, instead of re-describing its contents in memory. [What Claude Tag remembers](/docs/claude-tag/users/memory.md) covers how to check and correct what's saved. +Keep saved entries short, since long entries crowd out everything else. For a full style guide, link the document in the channel or store it in a connected tool Claude can read, instead of re-describing its contents in memory. [What Claude Tag remembers](https://claude.com/docs/claude-tag/users/memory.md) covers how to check and correct what's saved. ## Related resources -> **[Pull deal and account state](/docs/claude-tag/users/use-cases/pull-deal-state.md)** +> **[Pull deal and account state](https://claude.com/docs/claude-tag/users/use-cases/pull-deal-state.md)** > > The full set of go-to-market prompts -> **[Set up routines](/docs/claude-tag/users/proactivity.md)** +> **[Set up routines](https://claude.com/docs/claude-tag/users/proactivity.md)** > > How the scheduled digest runs, and more recipes diff --git a/content/claude/claude-tag/users/use-cases/pull-deal-state.md b/content/claude/claude-tag/users/use-cases/pull-deal-state.md index 8eef81df3..5b4608649 100644 --- a/content/claude/claude-tag/users/use-cases/pull-deal-state.md +++ b/content/claude/claude-tag/users/use-cases/pull-deal-state.md @@ -18,7 +18,7 @@ Each prompt below is a Slack message. You paste it in the account or deal channe ## Check the channel's connections -Check that the channel has the connections below. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](/docs/claude-tag/admins/add-connections.md) the channel is missing. +Check that the channel has the connections below. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](https://claude.com/docs/claude-tag/admins/add-connections.md) the channel is missing. | Connection | Examples | Why it matters here | | :- | :- | :- | @@ -60,14 +60,14 @@ One message sets up a standing digest posted to the team channel every Monday. @Claude every Monday at 9am, post a pipeline digest: deals that moved stage last week, deals stalled more than two weeks, and renewals due in the next 30 days. ``` -The three lines cover what moved, what's stuck, and what's coming due, so the digest reads the same way every Monday. To list or cancel scheduled work later, see [Manage standing work](/docs/claude-tag/users/proactivity.md#manage-standing-work). +The three lines cover what moved, what's stuck, and what's coming due, so the digest reads the same way every Monday. To list or cancel scheduled work later, see [Manage standing work](https://claude.com/docs/claude-tag/users/proactivity.md#manage-standing-work). ## Related resources -> **[Answer data questions](/docs/claude-tag/users/use-cases/answer-data-questions.md)** +> **[Answer data questions](https://claude.com/docs/claude-tag/users/use-cases/answer-data-questions.md)** > > When the question is metrics, not accounts -> **[Set up routines](/docs/claude-tag/users/proactivity.md)** +> **[Set up routines](https://claude.com/docs/claude-tag/users/proactivity.md)** > > Scheduled digests diff --git a/content/claude/claude-tag/users/use-cases/review-documents.md b/content/claude/claude-tag/users/use-cases/review-documents.md index 2265353af..3ee371ecd 100644 --- a/content/claude/claude-tag/users/use-cases/review-documents.md +++ b/content/claude/claude-tag/users/use-cases/review-documents.md @@ -18,13 +18,13 @@ Read the findings before you act on them, in proportion to what's at stake. If a ## Check the channel's connections -Check that the channel has the connections below. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](/docs/claude-tag/admins/add-connections.md) the channel is missing. +Check that the channel has the connections below. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](https://claude.com/docs/claude-tag/admins/add-connections.md) the channel is missing. | Connection | Examples | Why it matters here | | :- | :- | :- | | Knowledge and docs | Google Drive, Notion, Confluence | Required. Claude reads the documents under review, and the checklist or policy they're checked against, from these tools | -Claude can reach only what the connected account can see in that tool. If a document is missing from a review, ask an admin to [share it with the connected account](/docs/claude-tag/admins/add-connections.md#limit-access-to-specific-resources). +Claude can reach only what the connected account can see in that tool. If a document is missing from a review, ask an admin to [share it with the connected account](https://claude.com/docs/claude-tag/admins/add-connections.md#limit-access-to-specific-resources). ## Prompts to paste @@ -76,16 +76,16 @@ New documents arrive every week, and the same check applies to each. Schedule th @Claude every Monday at 9am Pacific, check the shared folder for documents added in the past week, review each against the review checklist, and post the findings here. ``` -Include the timezone in the message, since schedules run in UTC. To list or cancel scheduled work later, see [Manage standing work](/docs/claude-tag/users/proactivity.md#manage-standing-work). +Include the timezone in the message, since schedules run in UTC. To list or cancel scheduled work later, see [Manage standing work](https://claude.com/docs/claude-tag/users/proactivity.md#manage-standing-work). -Keep the checklist as a document Claude can read, in the connected tool or linked in the channel, rather than re-describing its contents in [channel memory](/docs/claude-tag/users/memory.md). +Keep the checklist as a document Claude can read, in the connected tool or linked in the channel, rather than re-describing its contents in [channel memory](https://claude.com/docs/claude-tag/users/memory.md). ## Related resources -> **[Find answers in your docs](/docs/claude-tag/users/use-cases/find-answers.md)** +> **[Find answers in your docs](https://claude.com/docs/claude-tag/users/use-cases/find-answers.md)** > > The same connections pointed at a single question -> **[Set up routines](/docs/claude-tag/users/proactivity.md)** +> **[Set up routines](https://claude.com/docs/claude-tag/users/proactivity.md)** > > How the recurring review runs on a schedule diff --git a/content/claude/claude-tag/users/use-cases/track-projects.md b/content/claude/claude-tag/users/use-cases/track-projects.md index f66e554e3..14721c53b 100644 --- a/content/claude/claude-tag/users/use-cases/track-projects.md +++ b/content/claude/claude-tag/users/use-cases/track-projects.md @@ -18,7 +18,7 @@ Each prompt below is a Slack message. You paste it in the project channel, Claud ## Check the channel's connections -Check that the channel has the connections below. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](/docs/claude-tag/admins/add-connections.md) the channel is missing. +Check that the channel has the connections below. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](https://claude.com/docs/claude-tag/admins/add-connections.md) the channel is missing. | Connection | Examples | Why it matters here | | :- | :- | :- | @@ -45,7 +45,7 @@ One message sets up a digest that posts every weekday. @Claude every weekday at 5pm, post a project digest: what moved today, what's blocked, and what hasn't been touched in three days. ``` -Name the format in the prompt, like the three sections here, so every digest comes back in the same readable shape. "Hasn't been touched in three days" is a number, so stalled work surfaces itself instead of depending on someone's sense of what counts as stale. To list or cancel scheduled work later, see [Manage standing work](/docs/claude-tag/users/proactivity.md#manage-standing-work). +Name the format in the prompt, like the three sections here, so every digest comes back in the same readable shape. "Hasn't been touched in three days" is a number, so stalled work surfaces itself instead of depending on someone's sense of what counts as stale. To list or cancel scheduled work later, see [Manage standing work](https://claude.com/docs/claude-tag/users/proactivity.md#manage-standing-work). ### Chase an approval @@ -55,16 +55,16 @@ A contract sits with legal, a design review has no comments, a pull request wait @Claude every weekday, check the design review discussed in this thread. If it's gone two weekdays with no reviewer reply, nudge them here; when an approval lands, post that it's done. Done means approved, not just commented on. ``` -Define what "done" includes; see [the babysit caution](/docs/claude-tag/users/good-habits.md#give-every-task-a-definition-of-done). +Define what "done" includes; see [the babysit caution](https://claude.com/docs/claude-tag/users/good-habits.md#give-every-task-a-definition-of-done). Code approvals need the code connection. Scheduled follow-ups on repositories use that same GitHub connection, with nothing extra to set up. ## Related resources -> **[Set up routines](/docs/claude-tag/users/proactivity.md)** +> **[Set up routines](https://claude.com/docs/claude-tag/users/proactivity.md)** > > Schedules and event triggers -> **[Good habits](/docs/claude-tag/users/good-habits.md)** +> **[Good habits](https://claude.com/docs/claude-tag/users/good-habits.md)** > > Definitions of done that close threads diff --git a/content/claude/claude-tag/users/use-cases/triage-requests.md b/content/claude/claude-tag/users/use-cases/triage-requests.md index 6e3a5e92a..0e3e15c59 100644 --- a/content/claude/claude-tag/users/use-cases/triage-requests.md +++ b/content/claude/claude-tag/users/use-cases/triage-requests.md @@ -18,7 +18,7 @@ The two prompts below are Slack messages you paste in the request channel, in or ## Check the channel's connections -Check that the channel has the connections below. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](/docs/claude-tag/admins/add-connections.md) the channel is missing. +Check that the channel has the connections below. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](https://claude.com/docs/claude-tag/admins/add-connections.md) the channel is missing. | Connection | Examples | Why it matters here | | :- | :- | :- | @@ -36,7 +36,7 @@ Add Claude to the channel with `/invite @Claude` if it isn't there, then two mes @Claude remember for this channel: when someone tags you on a request, check whether it duplicates something already reported, answer it directly if the answer exists, and otherwise route it to the right owner with a one-line summary. Track recurring themes. ``` -"Remember for this channel" saves the role to [channel memory](/docs/claude-tag/users/memory.md), so it applies to everyone's threads, not just yours. Tell requesters to include `@Claude` when they post; pin the convention or add it to the channel topic. +"Remember for this channel" saves the role to [channel memory](https://claude.com/docs/claude-tag/users/memory.md), so it applies to everyone's threads, not just yours. Tell requesters to include `@Claude` when they post; pin the convention or add it to the channel topic. **2. Add a weekly rollup so nothing is missed** @@ -44,9 +44,9 @@ Add Claude to the channel with `/invite @Claude` if it isn't there, then two mes @Claude every Friday at 3pm, post a summary of this week's requests: how many, top themes, and anything still unrouted, including posts that didn't tag you. ``` -"Including posts that didn't tag you" turns the recap into a sweep, so requests that arrived without a mention are still caught. To list or cancel scheduled work later, see [Manage standing work](/docs/claude-tag/users/proactivity.md#manage-standing-work). +"Including posts that didn't tag you" turns the recap into a sweep, so requests that arrived without a mention are still caught. To list or cancel scheduled work later, see [Manage standing work](https://claude.com/docs/claude-tag/users/proactivity.md#manage-standing-work). -Answers draw on what the channel has already settled, meaning its [memory](/docs/claude-tag/users/memory.md) and its own past threads, and routing gets more accurate as corrections land in channel memory. +Answers draw on what the channel has already settled, meaning its [memory](https://claude.com/docs/claude-tag/users/memory.md) and its own past threads, and routing gets more accurate as corrections land in channel memory. ## Hand a request to the team that owns it @@ -56,15 +56,15 @@ When a request belongs to another team, fork its thread into that team's channel @Claude !fork #payments-eng take this request: the reporter needs refunds on partial orders, and their screenshots and the duplicate check are in the linked thread. ``` -The channel you name must be public, with both you and Claude in it. See [Fork a thread](/docs/claude-tag/users/commands.md#fork-a-thread) for the other rules. +The channel you name must be public, with both you and Claude in it. See [Fork a thread](https://claude.com/docs/claude-tag/users/commands.md#fork-a-thread) for the other rules. ## Give Claude a runbook of standing answers When people keep posting the same questions in a channel, give Claude the team's settled answers instead of leaving it to derive an answer from the channel's history each time. A runbook is the team's own document of those answers, kept in whatever form the team already uses, such as a Google Doc. It can say which requests have a standard answer, which route to an owner, and which the team answers itself. -To have Claude answer from the runbook, put the standing guidance in the **Channel instructions** field on the channel's [Configure page](/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel). The field needs no connection, and a short runbook can go in it whole. Claude [reads a channel's untagged messages and replies to some of them on its own](/docs/claude-tag/users/when-claude-responds.md), so name the cases to leave alone as explicitly as the answers. +To have Claude answer from the runbook, put the standing guidance in the **Channel instructions** field on the channel's [Configure page](https://claude.com/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel). The field needs no connection, and a short runbook can go in it whole. Claude [reads a channel's untagged messages and replies to some of them on its own](https://claude.com/docs/claude-tag/users/when-claude-responds.md), so name the cases to leave alone as explicitly as the answers. -For a runbook kept as a document, Claude can read it when an admin has [connected the app that holds it](/docs/claude-tag/admins/add-connections.md) and the connection's account can see the document. The instruction then points at the document: +For a runbook kept as a document, Claude can read it when an admin has [connected the app that holds it](https://claude.com/docs/claude-tag/admins/add-connections.md) and the connection's account can see the document. The instruction then points at the document: ```text wrap theme={null} Answer requests in this channel from the team's triage runbook: . Read it before answering. If a request isn't covered there, mention so they can pick it up. @@ -72,16 +72,16 @@ Answer requests in this channel from the team's triage runbook: **[Set up routines](/docs/claude-tag/users/proactivity.md)** +> **[Set up routines](https://claude.com/docs/claude-tag/users/proactivity.md)** > > How the weekly rollup runs on a schedule -> **[What Claude Tag remembers](/docs/claude-tag/users/memory.md)** +> **[What Claude Tag remembers](https://claude.com/docs/claude-tag/users/memory.md)** > > How the standing role persists and improves diff --git a/content/claude/claude-tag/users/use-cases/watch-monitors.md b/content/claude/claude-tag/users/use-cases/watch-monitors.md index cd998004c..a88a3403e 100644 --- a/content/claude/claude-tag/users/use-cases/watch-monitors.md +++ b/content/claude/claude-tag/users/use-cases/watch-monitors.md @@ -18,7 +18,7 @@ Each prompt below is a Slack message. You paste it in the channel that receives ## Check the channel's connections -Check that the channel has the connections below. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](/docs/claude-tag/admins/add-connections.md) the channel is missing. +Check that the channel has the connections below. Ask `@Claude what can you access from this channel?` to check; an admin can [add a connection](https://claude.com/docs/claude-tag/admins/add-connections.md) the channel is missing. | Connection | Examples | Why it matters here | | :- | :- | :- | @@ -34,7 +34,7 @@ One message sets up a standing check that posts every morning, one line per serv @Claude every morning at 7, check the service dashboards and post one line per service: green, or what's off and since when. ``` -Name the output format in the schedule, like "one line per service" above, so every post reads the same way. To list or cancel scheduled work later, see [Manage standing work](/docs/claude-tag/users/proactivity.md#manage-standing-work). +Name the output format in the schedule, like "one line per service" above, so every post reads the same way. To list or cancel scheduled work later, see [Manage standing work](https://claude.com/docs/claude-tag/users/proactivity.md#manage-standing-work). ### Investigate a single alert @@ -56,15 +56,15 @@ Set this up as a routine to get both: a scheduled check against the last known s ## Keep known false alarms out of Claude's checks -Open the channel's [**Configure** page](/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel). In the **Channel instructions** field, list the alerts your team already treats as false alarms, so Claude skips them. +Open the channel's [**Configure** page](https://claude.com/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel). In the **Channel instructions** field, list the alerts your team already treats as false alarms, so Claude skips them. ## Related resources -> **[Fix bugs](/docs/claude-tag/users/use-cases/fix-bugs.md)** +> **[Fix bugs](https://claude.com/docs/claude-tag/users/use-cases/fix-bugs.md)** > > When the investigation should end in a pull request -> **[Set up routines](/docs/claude-tag/users/proactivity.md)** +> **[Set up routines](https://claude.com/docs/claude-tag/users/proactivity.md)** > > Schedules and event triggers diff --git a/content/claude/claude-tag/users/use-cases/work-with-github.md b/content/claude/claude-tag/users/use-cases/work-with-github.md index cc272b6d6..df0044b13 100644 --- a/content/claude/claude-tag/users/use-cases/work-with-github.md +++ b/content/claude/claude-tag/users/use-cases/work-with-github.md @@ -20,19 +20,19 @@ Name the repository in the first message. A session starts with no repositories > [!NOTE] > -> An admin [grants a repository to the channels that need it](/docs/claude-tag/admins/attach-to-scope.md), and questions about the code work only in those channels. By default anyone in those channels can ask, and an admin can [restrict who can use Claude](/docs/claude-tag/admins/restrict-access.md#control-who-can-invoke-claude-tag). +> An admin [grants a repository to the channels that need it](https://claude.com/docs/claude-tag/admins/attach-to-scope.md), and questions about the code work only in those channels. By default anyone in those channels can ask, and an admin can [restrict who can use Claude](https://claude.com/docs/claude-tag/admins/restrict-access.md#control-who-can-invoke-claude-tag). ## Check the channel's connections -Check that the channel has the connection below. Ask `@Claude what can you access from this channel?` and the reply also lists which repositories the channel can reach. An admin can [add a connection](/docs/claude-tag/admins/add-connections.md) the channel is missing. +Check that the channel has the connection below. Ask `@Claude what can you access from this channel?` and the reply also lists which repositories the channel can reach. An admin can [add a connection](https://claude.com/docs/claude-tag/admins/add-connections.md) the channel is missing. | Connection | Examples | Why it matters here | | :- | :- | :- | | Code | GitHub | Required. Reads granted repositories and opens draft pull requests | -The GitHub connection is what lets Claude clone a repository. For GitLab, an admin [connects it with an access token](/docs/claude-tag/admins/connections/gitlab.md), and Claude reads projects, manages issues, and comments on merge requests through the GitLab API. +The GitHub connection is what lets Claude clone a repository. For GitLab, an admin [connects it with an access token](https://claude.com/docs/claude-tag/admins/connections/gitlab.md), and Claude reads projects, manages issues, and comments on merge requests through the GitLab API. -If Claude replies that a repository isn't configured, the repository wasn't granted for this channel. An admin can [verify GitHub access](/docs/claude-tag/admins/configure-github.md#verify-github-access). After the grant changes, start a fresh thread and name the repository in the first message. +If Claude replies that a repository isn't configured, the repository wasn't granted for this channel. An admin can [verify GitHub access](https://claude.com/docs/claude-tag/admins/configure-github.md#verify-github-access). After the grant changes, start a fresh thread and name the repository in the first message. ## Prompts to paste @@ -62,7 +62,7 @@ Your work is blocked on a pull request a teammate opened, and the only way to kn @Claude subscribe to PR #519 in acme/data-pipeline, the schema migration. When CI finishes or a review arrives, post here, and tag me if anything failed. ``` -Claude reads the pull request's workflow runs and logs, so the post says whether checks passed or failed. To list or cancel a subscription later, see [Manage standing work](/docs/claude-tag/users/proactivity.md#manage-standing-work). Because the prompt asks for a tag only on failure, passing runs post to the thread without notifying you. +Claude reads the pull request's workflow runs and logs, so the post says whether checks passed or failed. To list or cancel a subscription later, see [Manage standing work](https://claude.com/docs/claude-tag/users/proactivity.md#manage-standing-work). Because the prompt asks for a tag only on failure, passing runs post to the thread without notifying you. ### Hand off the change you keep postponing @@ -72,7 +72,7 @@ Small, well-understood changes sit on the list for weeks because they never beco @Claude in acme/data-pipeline, the CSV export docs still describe the old date format. Update them to match the code and open a draft PR. Done means CI is green and the PR links back here. ``` -Writing a [definition of done](/docs/claude-tag/users/good-habits.md#give-every-task-a-definition-of-done) into the task lets the session check its own work. The change comes back as a draft pull request in your review queue, opened under Claude's own GitHub identity. +Writing a [definition of done](https://claude.com/docs/claude-tag/users/good-habits.md#give-every-task-a-definition-of-done) into the task lets the session check its own work. The change comes back as a draft pull request in your review queue, opened under Claude's own GitHub identity. ### Triage a suspected bug where the report arrives @@ -82,7 +82,7 @@ A report arrives in the feedback channel, and nobody knows yet whether it's a bu @Claude a user reports that exports drop rows with empty dates. In acme/data-pipeline, is that a bug or intended behavior? If it's a bug, open a draft PR with a fix; if it's intended, explain here what the code does. ``` -For the full arc from a bug report to green CI, including a standing watch that triages a bug channel, see [Fix bugs](/docs/claude-tag/users/use-cases/fix-bugs.md). Because the prompt asks for either a fix or an explanation, the thread gets an answer even when the behavior turns out to be intended. +For the full arc from a bug report to green CI, including a standing watch that triages a bug channel, see [Fix bugs](https://claude.com/docs/claude-tag/users/use-cases/fix-bugs.md). Because the prompt asks for either a fix or an explanation, the thread gets an answer even when the behavior turns out to be intended. ### Hand off a change and follow its pull request in one message @@ -104,7 +104,7 @@ Claude can watch a pull request and address CI failures, review comments, and ch > [!WARNING] > -> If you don't want Claude to merge pull requests, turn on branch protection rules that restrict who can merge. These rules apply to Claude too. Claude can't approve a pull request it opened, but the person who asked for it can; to require a second approver, see [Require a second approval on Claude's pull requests](/docs/claude-tag/admins/configure-github.md#require-a-second-approval-on-claude%E2%80%99s-pull-requests). Also write "I do the approving and merging" into the task, as the example does. The task wording states your intent, but it's an instruction Claude can lose track of, not a control. The branch protection rule is what enforces it. +> If you don't want Claude to merge pull requests, turn on branch protection rules that restrict who can merge. These rules apply to Claude too. Claude can't approve a pull request it opened, but the person who asked for it can; to require a second approver, see [Require a second approval on Claude's pull requests](https://claude.com/docs/claude-tag/admins/configure-github.md#require-a-second-approval-on-claude%E2%80%99s-pull-requests). Also write "I do the approving and merging" into the task, as the example does. The task wording states your intent, but it's an instruction Claude can lose track of, not a control. The branch protection rule is what enforces it. Ask for a post after each push so you can follow the pull request from the thread instead of opening GitHub. @@ -112,18 +112,18 @@ Ask for a post after each push so you can follow the pull request from the threa If your repository has conventions Claude should follow, such as file layout, pull request labels, or dependencies to install, add them to a `CLAUDE.md` file at the repository root. When Claude clones the repository into a session, its `CLAUDE.md`, `.claude/CLAUDE.md`, and `.claude/rules/*.md` files load on the next turn, so the guidance arrives without further prompting. Skills in the repository's `.claude/skills/` folder also load, so Claude can use them in sessions that have the repository. Anyone with repository write access can edit these files, and they reach every session that works in that repository, from any channel. -Each session runs in an isolated sandbox with a standard set of preinstalled tools. Two threads are two sessions with two separate sandboxes. If the repository needs a tool that the standard set doesn't include, such as a language runtime or a database client, add the install commands to `CLAUDE.md`, and Claude [runs them when its work needs them](/docs/claude-tag/admins/configure-github.md#install-project-dependencies). +Each session runs in an isolated sandbox with a standard set of preinstalled tools. Two threads are two sessions with two separate sandboxes. If the repository needs a tool that the standard set doesn't include, such as a language runtime or a database client, add the install commands to `CLAUDE.md`, and Claude [runs them when its work needs them](https://claude.com/docs/claude-tag/admins/configure-github.md#install-project-dependencies). > [!NOTE] > -> A `CLAUDE.md` is guidance rather than a gate. If a pull request must carry a label or pass a check, make that a repository rule. For where `CLAUDE.md` sits among channel memory, channel instructions, and skills, see [Teach Claude something that sticks](/docs/claude-tag/users/good-habits.md#teach-claude-something-that-sticks). +> A `CLAUDE.md` is guidance rather than a gate. If a pull request must carry a label or pass a check, make that a repository rule. For where `CLAUDE.md` sits among channel memory, channel instructions, and skills, see [Teach Claude something that sticks](https://claude.com/docs/claude-tag/users/good-habits.md#teach-claude-something-that-sticks). ## Related resources -> **[Fix bugs](/docs/claude-tag/users/use-cases/fix-bugs.md)** +> **[Fix bugs](https://claude.com/docs/claude-tag/users/use-cases/fix-bugs.md)** > > The full arc from a bug report to a draft pull request and green CI -> **[Set up routines](/docs/claude-tag/users/proactivity.md)** +> **[Set up routines](https://claude.com/docs/claude-tag/users/proactivity.md)** > > Pull request subscriptions and other standing work diff --git a/content/claude/claude-tag/users/use-cases/your-own-channel.md b/content/claude/claude-tag/users/use-cases/your-own-channel.md index 4375cc0de..68e954925 100644 --- a/content/claude/claude-tag/users/use-cases/your-own-channel.md +++ b/content/claude/claude-tag/users/use-cases/your-own-channel.md @@ -16,14 +16,14 @@ A channel with just you and Claude in it works the same way any other channel do A one-to-one DM is the other place to work alone with Claude, and the two surfaces run on different accounts. A DM session runs with your own claude.ai connectors, the work is attributed to you (pull requests excepted; the Claude GitHub App authors those), and usage bills to your seat. What Claude does there sits outside channel and workspace memory. -Your own channel runs with the connections an admin set for it, usage bills to the organization, and what Claude learns there accumulates as [channel memory](/docs/claude-tag/users/memory.md) that later threads build on. [Routines](/docs/claude-tag/users/proactivity.md) can post there on a schedule. When scratch work turns into a team task, the thread is ready to [hand to a teammate](#hand-a-thread-to-a-teammate). +Your own channel runs with the connections an admin set for it, usage bills to the organization, and what Claude learns there accumulates as [channel memory](https://claude.com/docs/claude-tag/users/memory.md) that later threads build on. [Routines](https://claude.com/docs/claude-tag/users/proactivity.md) can post there on a schedule. When scratch work turns into a team task, the thread is ready to [hand to a teammate](#hand-a-thread-to-a-teammate). -Pick a DM for personal tasks on your own connections, or for data that shouldn't run through a shared channel connection. Pick your own channel for standing work, and for anything you might later hand off or show someone. [Pick the right surface](/docs/claude-tag/users/good-habits.md#pick-the-right-surface) compares both against a team channel. +Pick a DM for personal tasks on your own connections, or for data that shouldn't run through a shared channel connection. Pick your own channel for standing work, and for anything you might later hand off or show someone. [Pick the right surface](https://claude.com/docs/claude-tag/users/good-habits.md#pick-the-right-surface) compares both against a team channel. ## Set up the channel -1. Create a Slack channel and add Claude with `/invite @Claude`. Make the channel public unless the work needs to be private, so teammates can find and join the work. Either way, the channel keeps its own [memory](/docs/claude-tag/users/memory.md). -2. Ask `@Claude what can you access from this channel?`. None of the prompts below require a connection, and an admin can [add a connection](/docs/claude-tag/admins/add-connections.md) your work needs, like the issue tracker or GitHub. +1. Create a Slack channel and add Claude with `/invite @Claude`. Make the channel public unless the work needs to be private, so teammates can find and join the work. Either way, the channel keeps its own [memory](https://claude.com/docs/claude-tag/users/memory.md). +2. Ask `@Claude what can you access from this channel?`. None of the prompts below require a connection, and an admin can [add a connection](https://claude.com/docs/claude-tag/admins/add-connections.md) your work needs, like the issue tracker or GitHub. 3. Tell Claude how the channel should behave and ask it to remember, as in `@Claude remember for this channel: keep replies short, and format digests as tables`. Later sessions in the channel start from what you saved. ## Prompts to paste @@ -58,7 +58,7 @@ Open threads pile up here the way they do in any project channel. A scheduled di @Claude every Friday at 3pm Pacific, post a digest of this channel: what closed this week, what's still open, and what hasn't moved in five days. Skip anything with a ✅ reaction. ``` -Give the digest a concrete threshold, like five days without movement, and stalled work shows up without you asking for it. React ✅ to anything you consider done, and the digest drops it. Include the timezone in the message, since schedules run in UTC. To list, edit, or cancel scheduled work later, see [Manage standing work](/docs/claude-tag/users/proactivity.md#manage-standing-work). +Give the digest a concrete threshold, like five days without movement, and stalled work shows up without you asking for it. React ✅ to anything you consider done, and the digest drops it. Include the timezone in the message, since schedules run in UTC. To list, edit, or cancel scheduled work later, see [Manage standing work](https://claude.com/docs/claude-tag/users/proactivity.md#manage-standing-work). ### Hand a thread to a teammate @@ -76,7 +76,7 @@ If the work belongs in a team channel rather than yours, fork the thread there i @Claude !fork #export-team summarize the export-flow bug for the team: what's been tried, what's decided, and what's still open. ``` -The target must be a public channel that both you and Claude are in, and your own channel must be public for the fork to run. See [Fork a thread](/docs/claude-tag/users/commands.md#fork-a-thread). +The target must be a public channel that both you and Claude are in, and your own channel must be public for the fork to run. See [Fork a thread](https://claude.com/docs/claude-tag/users/commands.md#fork-a-thread). ### Chase your open follow-ups @@ -98,9 +98,9 @@ Your channel can cover for you while you're out. Before you leave, post one hand @Claude I'm out next week and Marta is covering. Where things stand: the billing migration is waiting on legal, the dashboard rebuild is paused until the design review closes, and the onboarding runbook is pinned in this channel. Leave the pricing config alone until I'm back. While I'm out, when anyone asks here, answer from this message and the channel's history. Pause this channel's scheduled posts until I say I'm back. ``` -While you're out, a teammate who needs to know where a piece of work stands, or who owns it, tags `@Claude` in your channel and gets the answer from the pinned handoff message, the channel's history, and [channel memory](/docs/claude-tag/users/memory.md). If you set a Slack status or an out-of-office reply, point people to this channel in it. +While you're out, a teammate who needs to know where a piece of work stands, or who owns it, tags `@Claude` in your channel and gets the answer from the pinned handoff message, the channel's history, and [channel memory](https://claude.com/docs/claude-tag/users/memory.md). If you set a Slack status or an out-of-office reply, point people to this channel in it. -The pause covers this channel's own routines, like the Friday digest and the Monday sweep this page sets up, so scheduled posts stop piling up unread. Anyone in the channel can [list, edit, or disable its standing work](/docs/claude-tag/users/proactivity.md#manage-standing-work), so a teammate can turn a routine back on early if the coverage needs it. +The pause covers this channel's own routines, like the Friday digest and the Monday sweep this page sets up, so scheduled posts stop piling up unread. Anyone in the channel can [list, edit, or disable its standing work](https://claude.com/docs/claude-tag/users/proactivity.md#manage-standing-work), so a teammate can turn a routine back on early if the coverage needs it. On your first morning back, ask Claude to catch you up. @@ -112,10 +112,10 @@ The reply is one list of everything that happened here while you were away, orde ## Related resources -> **[Set up routines](/docs/claude-tag/users/proactivity.md)** +> **[Set up routines](https://claude.com/docs/claude-tag/users/proactivity.md)** > > List, edit, or disable the standing work this page sets up -> **[Good habits](/docs/claude-tag/users/good-habits.md)** +> **[Good habits](https://claude.com/docs/claude-tag/users/good-habits.md)** > > Pick the right surface and write tasks that close diff --git a/content/claude/claude-tag/users/when-claude-responds.md b/content/claude/claude-tag/users/when-claude-responds.md index 05b67427d..8d3d5b85b 100644 --- a/content/claude/claude-tag/users/when-claude-responds.md +++ b/content/claude/claude-tag/users/when-claude-responds.md @@ -10,7 +10,7 @@ > > Claude Tag is in public beta. Features and behavior described here may change before general availability. -Claude replies without an @-mention in one-to-one DMs, in any thread it's already part of, and to channel and group DM messages it judges warrant a reply. In a channel, Claude reads the messages and replies to some of them on its own, so an @-mention is how you guarantee a reply, not a requirement for one. This page covers how Claude decides whether to reply to a message nobody tagged it in, how to turn those replies off for a thread or a whole channel, and which messages never get a reply. Work Claude does on a schedule rather than in reply to a message is a [routine](/docs/claude-tag/users/proactivity.md), which has its own controls. +Claude replies without an @-mention in one-to-one DMs, in any thread it's already part of, and to channel and group DM messages it judges warrant a reply. In a channel, Claude reads the messages and replies to some of them on its own, so an @-mention is how you guarantee a reply, not a requirement for one. This page covers how Claude decides whether to reply to a message nobody tagged it in, how to turn those replies off for a thread or a whole channel, and which messages never get a reply. Work Claude does on a schedule rather than in reply to a message is a [routine](https://claude.com/docs/claude-tag/users/proactivity.md), which has its own controls. ## What triggers a response @@ -21,10 +21,10 @@ Whether Claude replies to a message without an @-mention depends on where you se | A one-to-one DM with Claude | Always. Every message is addressed to Claude already | | A thread Claude is already in | Yes, unless you've [quieted the thread](#quiet-one-conversation). Once Claude has joined, every reply there reaches it without another mention | | A channel, top-level | Sometimes. [What Claude does with a channel message](#what-claude-does-with-a-channel-message) describes how it decides. Include `@Claude` to guarantee a reply, or [turn unprompted replies off](#quiet-the-whole-channel) | -| A group DM that includes Claude, top-level | Sometimes. See [When Claude replies in a group DM](/docs/claude-tag/users/group-dms.md#when-claude-replies-in-a-group-dm) | +| A group DM that includes Claude, top-level | Sometimes. See [When Claude replies in a group DM](https://claude.com/docs/claude-tag/users/group-dms.md#when-claude-replies-in-a-group-dm) | | A message another app or bot posted | No. Claude reads it as context. To get a reply, have the app include `@Claude` in its message. [Messages from other apps and bots](#messages-from-other-apps-and-bots) covers when that mention goes unanswered | -When you @-mention Claude in a channel, it reacts to your message with an emoji within a few seconds to show that it picked the message up. The message goes to the channel's own [session](/docs/claude-tag/concepts/glossary.md#session), the session Claude works from at the channel's top level. It then answers in a thread under your message, or starts a [working session](/docs/claude-tag/concepts/how-it-works.md) in that thread when the request needs investigation, tools, or a longer exchange. +When you @-mention Claude in a channel, it reacts to your message with an emoji within a few seconds to show that it picked the message up. The message goes to the channel's own [session](https://claude.com/docs/claude-tag/concepts/glossary.md#session), the session Claude works from at the channel's top level. It then answers in a thread under your message, or starts a [working session](https://claude.com/docs/claude-tag/concepts/how-it-works.md) in that thread when the request needs investigation, tools, or a longer exchange. Once a working session starts, a working indicator with a **Stop** button appears at the bottom of the thread. A reaction with no indicator means Claude picked your message up and is either still deciding or answering directly in the thread, not that it missed you. @@ -32,14 +32,14 @@ You can change how much Claude replies on its own. You can [quiet a single threa ## What Claude does with a channel message -Claude reads every top-level message in a channel it belongs to, and the replies in the channel's threads, whether or not anyone tagged it. For each message, it decides what to do from the channel's recent messages, the channel's [memory](/docs/claude-tag/users/memory.md), and any instructions your admin has set or a channel member has asked it to remember, and does one of four things. +Claude reads every top-level message in a channel it belongs to, and the replies in the channel's threads, whether or not anyone tagged it. For each message, it decides what to do from the channel's recent messages, the channel's [memory](https://claude.com/docs/claude-tag/users/memory.md), and any instructions your admin has set or a channel member has asked it to remember, and does one of four things. * **Nothing.** This is the usual outcome. In a channel where nobody has told Claude which kinds of messages to answer, Claude leaves untagged messages alone. The one exception is a message in which someone states a concrete need Claude can meet; Claude may then reply once, in a thread, offering to do it. * **A short reply in a thread under the message.** Claude replies on its own only when it already has the answer, from the channel's history or its memory, and the answer fits in one message. Replies of this kind carry the plain name **Claude**; see [The name on a reply](#the-name-on-a-reply). * **A working session in the message's thread.** When a message needs investigation, tools, or a longer exchange, Claude starts a working session there and posts the work in that thread. For an untagged message, Claude does this only when someone in the channel has told it to pick up that kind of work, as described below the list. * **A hand-off to work already in progress.** When a message adds to something Claude is already working on in another thread, for example a new detail about a bug it's investigating, Claude passes the message to that working session instead of replying. Claude posts nothing in the channel when it does this; anything the new information changes, it reports in the thread where the work is happening. -To have Claude answer more kinds of untagged messages in a channel, tell it which kinds, in the channel, and ask it to remember. For example, `@Claude remember for this channel: answer questions about the deploy process without waiting to be tagged` saves the instruction to channel memory, and Claude applies it to everyone's messages there. Claude also records in channel memory whether people in the channel act on its unprompted replies or ignore them, and replies less in a channel that ignores them. [What Claude Tag remembers](/docs/claude-tag/users/memory.md) covers how to see and change what it saved. +To have Claude answer more kinds of untagged messages in a channel, tell it which kinds, in the channel, and ask it to remember. For example, `@Claude remember for this channel: answer questions about the deploy process without waiting to be tagged` saves the instruction to channel memory, and Claude applies it to everyone's messages there. Claude also records in channel memory whether people in the channel act on its unprompted replies or ignore them, and replies less in a channel that ignores them. [What Claude Tag remembers](https://claude.com/docs/claude-tag/users/memory.md) covers how to see and change what it saved. ## Turn automatic replies on or off @@ -52,10 +52,10 @@ All three places below change the same setting, so a change you make in one appe | Where | How | | :- | :- | | In Slack | Ask Claude in the channel, for example "@Claude only respond in this channel when someone @-mentions you" or "@Claude respond to messages here even when nobody mentions you." Claude confirms the change. | -| The channel's Configure page | Open the **Configure** link in the footer of any Claude reply in the channel, switch the **Respond automatically** toggle, and click **Save**. See [Configure Claude for a channel](/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel). | +| The channel's Configure page | Open the **Configure** link in the footer of any Claude reply in the channel, switch the **Respond automatically** toggle, and click **Save**. See [Configure Claude for a channel](https://claude.com/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel). | | Claude Tag admin settings (Owners and Claude Tag admins) | Go to [**Organization settings > Claude Tag**](https://claude.ai/admin-settings/claude-tag?access=channels), select the channel on the **Channels** tab, and switch **Respond automatically** on the channel's **General** tab. | -An Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) can set [**Channel member edits**](/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) to **Block** for a channel, a workspace, or all of Slack. When the setting is **Block**, Claude declines to change **Respond automatically** when anyone asks in Slack, and channel members can't switch the toggle on the channel's Configure page. An Owner or a Claude Tag admin can still change the setting in Claude Tag admin settings, and a [channel manager](/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) can still switch the toggle on the Configure page of a channel assigned to them. +An Owner or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) can set [**Channel member edits**](https://claude.com/docs/claude-tag/admins/attach-to-scope.md#restrict-who-can-set-channel-instructions) to **Block** for a channel, a workspace, or all of Slack. When the setting is **Block**, Claude declines to change **Respond automatically** when anyone asks in Slack, and channel members can't switch the toggle on the channel's Configure page. An Owner or a Claude Tag admin can still change the setting in Claude Tag admin settings, and a [channel manager](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-channel-setup-to-channel-managers) can still switch the toggle on the Configure page of a channel assigned to them. The setting covers the channel's messages, not DMs. To quiet a single thread instead of the whole channel, [ask Claude in that thread](#quiet-one-conversation). @@ -63,7 +63,7 @@ Until Claude has joined a channel, you see "@-mention Claude in this channel to > [!NOTE] > -> Separately from **Respond automatically**, an Owner or a Claude Tag admin can [turn Claude off in channels](/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope). +> Separately from **Respond automatically**, an Owner or a Claude Tag admin can [turn Claude off in channels](https://claude.com/docs/claude-tag/admins/workspaces.md#turn-claude-tag-on-or-off-and-set-the-version-for-a-scope). ## Messages from other apps and bots @@ -73,18 +73,18 @@ A bot's `@Claude` at the channel's top level gets a reply in a thread under that * The channel's [**Respond automatically**](#turn-automatic-replies-on-or-off) setting is off. * Claude has [stopped reading the channel](#when-claude-stops-reading-a-channel) because of message volume. -* The channel is a [Slack Connect channel](/docs/claude-tag/admins/restrict-access.md#when-claude-does-not-answer-in-a-slack-connect-channel), shared with another company. Claude reads what apps, bots, and workflows post there as context but doesn't reply to them. +* The channel is a [Slack Connect channel](https://claude.com/docs/claude-tag/admins/restrict-access.md#when-claude-does-not-answer-in-a-slack-connect-channel), shared with another company. Claude reads what apps, bots, and workflows post there as context but doesn't reply to them. A person's mention reaches Claude in each of these cases. -Because Claude reads those messages, when a person asks about an alert a bot posted, Claude can answer from it. To have Claude act on what an integration posts, mention it in the channel or in the message's thread. For example, reply to a bot-posted alert with `@Claude triage this`. To have Claude check the channel on a schedule and post what needs attention, set up a [routine](/docs/claude-tag/users/proactivity.md). +Because Claude reads those messages, when a person asks about an alert a bot posted, Claude can answer from it. To have Claude act on what an integration posts, mention it in the channel or in the message's thread. For example, reply to a bot-posted alert with `@Claude triage this`. To have Claude check the channel on a schedule and post what needs attention, set up a [routine](https://claude.com/docs/claude-tag/users/proactivity.md). ## The name on a reply Claude doesn't post every reply under the same display name. The name shows which kind of work produced the reply, in two forms: * **Claude**, the name alone: the reply comes from Claude's ambient presence in the channel, including unprompted replies -* **Claude** followed by a short description of the task in square brackets: the reply comes from a [working session](/docs/claude-tag/concepts/how-it-works.md) handling that task in its thread. The description changes with every task, so a channel might show something like `Claude [reviewing the launch checklist]`, `Claude [debugging a failing deploy]`, or `Claude [summarizing customer feedback]`. +* **Claude** followed by a short description of the task in square brackets: the reply comes from a [working session](https://claude.com/docs/claude-tag/concepts/how-it-works.md) handling that task in its thread. The description changes with every task, so a channel might show something like `Claude [reviewing the launch checklist]`, `Claude [debugging a failing deploy]`, or `Claude [summarizing customer feedback]`. ## Make a channel quieter @@ -98,7 +98,7 @@ Tell Claude in the thread to respond only when mentioned. @Claude only respond when I @-mention you ``` -Claude stops following that thread, and the rest of the channel is unaffected. This is the fix when one busy thread is the noise. The [`!mute` command](/docs/claude-tag/users/commands#mute-or-unmute-a-thread) goes further and silences the thread entirely; `@Claude !unmute`, or an @-mention that carries a request, turns it back on. Selecting the thumbs-down button under one of Claude's replies also mutes the thread, as [Thumbs-down button and muting](/docs/claude-tag/users/commands.md#thumbs-down-button-and-muting) describes. +Claude stops following that thread, and the rest of the channel is unaffected. This is the fix when one busy thread is the noise. The [`!mute` command](https://claude.com/docs/claude-tag/users/commands#mute-or-unmute-a-thread) goes further and silences the thread entirely; `@Claude !unmute`, or an @-mention that carries a request, turns it back on. Selecting the thumbs-down button under one of Claude's replies also mutes the thread, as [Thumbs-down button and muting](https://claude.com/docs/claude-tag/users/commands.md#thumbs-down-button-and-muting) describes. ### Quiet the whole channel @@ -108,9 +108,9 @@ Turn the channel's [**Respond automatically**](#turn-automatic-replies-on-or-off @Claude only respond in this channel when someone @-mentions you directly. ``` -Claude confirms the change, which is channel-wide, not just for you. You can make the same change with the toggle on the channel's Configure page, and an Owner or a [Claude Tag admin](/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) can change it in [Claude Tag admin settings](https://claude.ai/admin-settings/claude-tag). If Claude declines because an Owner or a Claude Tag admin has locked the channel's settings, ask one of them to make the change in Claude Tag admin settings, as [Turn automatic replies on or off](#turn-automatic-replies-on-or-off) describes. +Claude confirms the change, which is channel-wide, not just for you. You can make the same change with the toggle on the channel's Configure page, and an Owner or a [Claude Tag admin](https://claude.com/docs/claude-tag/admins/restrict-access.md#delegate-claude-tag-administration) can change it in [Claude Tag admin settings](https://claude.ai/admin-settings/claude-tag). If Claude declines because an Owner or a Claude Tag admin has locked the channel's settings, ask one of them to make the change in Claude Tag admin settings, as [Turn automatic replies on or off](#turn-automatic-replies-on-or-off) describes. -Threads Claude already joined keep forwarding replies, so quiet those individually with the in-thread line above. The [`!mute` command](/docs/claude-tag/users/commands#mute-or-unmute-a-thread) quiets one thread at a time and does nothing at a channel's top level. +Threads Claude already joined keep forwarding replies, so quiet those individually with the in-thread line above. The [`!mute` command](https://claude.com/docs/claude-tag/users/commands#mute-or-unmute-a-thread) quiets one thread at a time and does nothing at a channel's top level. ### Remove Claude Tag from the channel @@ -120,7 +120,7 @@ When quieting isn't enough, end Claude's presence in the channel. /remove @Claude ``` -Claude can no longer read or post in that channel. Any member can run this unless your Slack admin restricts the command. Admins have further options, through full removal from the workspace, on [Restrict where Claude Tag operates](/docs/claude-tag/admins/restrict-access.md). +Claude can no longer read or post in that channel. Any member can run this unless your Slack admin restricts the command. Admins have further options, through full removal from the workspace, on [Restrict where Claude Tag operates](https://claude.com/docs/claude-tag/admins/restrict-access.md). ## When Claude stops reading a channel @@ -140,15 +140,15 @@ If unprompted replies don't come back after Claude answers a mention, the channe A few cases produce silence even when the message includes a mention: * **Editing a message to add the mention.** An edit doesn't trigger a response. Delete the message and send a new one with `@Claude` included. -* **Channels with guest accounts.** By default, Claude is off in channels that include guests; an Owner or a Claude Tag admin can turn it on for a channel, a workspace, or all of Slack. Ask whoever runs your Claude plan, or send them [the guest access setting](/docs/claude-tag/admins/restrict-access.md#restrict-guest-channels). +* **Channels with guest accounts.** By default, Claude is off in channels that include guests; an Owner or a Claude Tag admin can turn it on for a channel, a workspace, or all of Slack. Ask whoever runs your Claude plan, or send them [the guest access setting](https://claude.com/docs/claude-tag/admins/restrict-access.md#restrict-guest-channels). * **Channels shared across workspaces connected to different Claude organizations.** Every workspace where Claude runs is connected to a Claude organization, the account a company sets up for Claude. When a channel is shared across workspaces connected to different Claude organizations, Claude won't reply there and posts a refusal message instead. You can't tell from Slack how a workspace is connected; the refusal message itself is the signal. Use a channel that belongs to one workspace, or send Claude a DM. -* **Slack Connect channels.** By default, Claude is off in [channels shared with another company](/docs/claude-tag/admins/restrict-access.md#slack-connect-channels), and a mention there gets no reply and no notice. An Owner or a Claude Tag admin can turn it on for a channel, a workspace, or all of Slack. Ask whoever runs your Claude plan to change [**How should Claude work in channels with guests**](/docs/claude-tag/admins/restrict-access.md#slack-connect-channels). +* **Slack Connect channels.** By default, Claude is off in [channels shared with another company](https://claude.com/docs/claude-tag/admins/restrict-access.md#slack-connect-channels), and a mention there gets no reply and no notice. An Owner or a Claude Tag admin can turn it on for a channel, a workspace, or all of Slack. Ask whoever runs your Claude plan to change [**How should Claude work in channels with guests**](https://claude.com/docs/claude-tag/admins/restrict-access.md#slack-connect-channels). When the workspaces sharing a channel all belong to one Claude organization, Claude replies there, but with only your organization's default access and settings. The repositories, instructions, and memory set up for that channel or its workspaces don't apply, and Claude posts a notice in the thread explaining this from time to time. The guest check above still applies first where guest access is restricted. -To confirm a channel's setting, check the **Respond automatically** toggle on its [Configure page](/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel). To confirm an instruction Claude saved, ask `@Claude what do you remember about responding in this channel?`, and see [What Claude Tag remembers](/docs/claude-tag/users/memory.md) for where instructions are stored and how to change them. +To confirm a channel's setting, check the **Respond automatically** toggle on its [Configure page](https://claude.com/docs/claude-tag/users/good-habits.md#configure-claude-for-a-channel). To confirm an instruction Claude saved, ask `@Claude what do you remember about responding in this channel?`, and see [What Claude Tag remembers](https://claude.com/docs/claude-tag/users/memory.md) for where instructions are stored and how to change them. ## Related resources -* [Customize Claude Tag](/docs/claude-tag/admins/customize.md): the settings only an admin can change, if channel memory isn't enough -* [Restrict where Claude Tag operates](/docs/claude-tag/admins/restrict-access.md): the admin-side controls, from guest channels to full removal +* [Customize Claude Tag](https://claude.com/docs/claude-tag/admins/customize.md): the settings only an admin can change, if channel memory isn't enough +* [Restrict where Claude Tag operates](https://claude.com/docs/claude-tag/admins/restrict-access.md): the admin-side controls, from guest channels to full removal diff --git a/content/claude/connectors/building.md b/content/claude/connectors/building.md index 6509a14fe..d8b0842c8 100644 --- a/content/claude/connectors/building.md +++ b/content/claude/connectors/building.md @@ -6,15 +6,15 @@ > Build a remote MCP server that people use as a connector in Claude: where it runs, authentication, what it exposes, size and timeout limits, and distribution. -An MCP server gives Claude access to your product or data, and people who use Claude see it as a connector. It's the piece of your [plugin](/docs/build/overview.md) that reaches your product: the plugin's `.mcp.json` points at the server you build and host, and any skills you include teach Claude how to use it. Claude connects to your server from claude.ai, Claude Desktop, Claude mobile, Cowork, and Claude Code, and the same connector infrastructure backs all of them. +An MCP server gives Claude access to your product or data, and people who use Claude see it as a connector. It's the piece of your [plugin](https://claude.com/docs/build/overview.md) that reaches your product: the plugin's `.mcp.json` points at the server you build and host, and any skills you include teach Claude how to use it. Claude connects to your server from claude.ai, Claude Desktop, Claude mobile, Cowork, and Claude Code, and the same connector infrastructure backs all of them. This page is for developers building a remote MCP server for other people to use in Claude. It covers the decisions you make as you build, in the order you meet them, and what Claude's MCP client supports for each one. > [!NOTE] > -> * If you're new to the protocol itself, see [Model Context Protocol (MCP)](/docs/connectors/building/mcp.md) for a short orientation -> * If you want to build a minimal server first and watch Claude call it, see [Build your first MCP server for Claude](/docs/connectors/building/quickstart.md) -> * If you're not sure your plugin needs an MCP server, see [Decide what to include in your plugin](/docs/connectors/building/what-to-build.md) +> * If you're new to the protocol itself, see [Model Context Protocol (MCP)](https://claude.com/docs/connectors/building/mcp.md) for a short orientation +> * If you want to build a minimal server first and watch Claude call it, see [Build your first MCP server for Claude](https://claude.com/docs/connectors/building/quickstart.md) +> * If you're not sure your plugin needs an MCP server, see [Decide what to include in your plugin](https://claude.com/docs/connectors/building/what-to-build.md) ## Plan your server @@ -28,7 +28,7 @@ Claude implements a subset of the MCP specification, with its own callback URL a A remote server runs on infrastructure you host and is reachable over the internet. Claude connects to it from every Claude app, and a remote server is the recommended kind for a directory listing. -A local server runs on the user's computer. To package one for the Claude desktop app, see [Build a desktop extension with MCPB](/docs/connectors/building/mcpb.md). +A local server runs on the user's computer. To package one for the Claude desktop app, see [Build a desktop extension with MCPB](https://claude.com/docs/connectors/building/mcpb.md). A transport is how Claude and your server exchange MCP messages. Use [Streamable HTTP](https://modelcontextprotocol.io/specification/latest/basic/transports/streamable-http), which the MCP specification defines for remote servers. Claude also supports the legacy [HTTP+SSE transport](https://modelcontextprotocol.io/specification/2024-11-05/basic/transports#http-with-sse), which is being deprecated in favor of Streamable HTTP. @@ -36,19 +36,19 @@ A transport is how Claude and your server exchange MCP messages. Use [Streamable Decide on authentication before you write tool code. Claude's OAuth client differs from the generic MCP specification in a few places. -Your server can let Claude in with OAuth 2.0, where each user signs in with their own account; with a static credential that an organization Owner enters once and Claude sends as a request header; or with no authentication at all. [Supported authentication types](/docs/connectors/building/authentication.md#supported-authentication-types) lists each type and which ones you contact Anthropic to use. +Your server can let Claude in with OAuth 2.0, where each user signs in with their own account; with a static credential that an organization Owner enters once and Claude sends as a request header; or with no authentication at all. [Supported authentication types](https://claude.com/docs/connectors/building/authentication.md#supported-authentication-types) lists each type and which ones you contact Anthropic to use. If you use OAuth, check these parts of your setup against Claude's client: * **Specification version**: Claude follows the [2025-03-26](https://modelcontextprotocol.io/specification/2025-03-26/basic/authorization), [2025-06-18](https://modelcontextprotocol.io/specification/2025-06-18/basic/authorization), and [2025-11-25](https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization) authorization specifications -* **Client registration**: Claude can register itself with your authorization server through Dynamic Client Registration (DCR). If your server doesn't support DCR, [Register Claude as an OAuth client](/docs/connectors/building/authentication.md#register-claude-as-an-oauth-client) lists the other ways to give Claude a client identity -* **Redirect URI**: allow `https://claude.ai/api/mcp/auth_callback` for the hosted surfaces and a loopback redirect for Claude Code, as [Callback URLs](/docs/connectors/building/authentication.md#callback-urls) describes -* **Token refresh**: Claude refreshes access tokens when they expire. [Token refresh](/docs/connectors/building/authentication.md#token-refresh) has the requirements for your token endpoint +* **Client registration**: Claude can register itself with your authorization server through Dynamic Client Registration (DCR). If your server doesn't support DCR, [Register Claude as an OAuth client](https://claude.com/docs/connectors/building/authentication.md#register-claude-as-an-oauth-client) lists the other ways to give Claude a client identity +* **Redirect URI**: allow `https://claude.ai/api/mcp/auth_callback` for the hosted surfaces and a loopback redirect for Claude Code, as [Callback URLs](https://claude.com/docs/connectors/building/authentication.md#callback-urls) describes +* **Token refresh**: Claude refreshes access tokens when they expire. [Token refresh](https://claude.com/docs/connectors/building/authentication.md#token-refresh) has the requirements for your token endpoint If you need one of these related flows, follow its page: -* **[Lazy authentication](/docs/connectors/building/lazy-authentication.md)**: if some of your tools work without the user's account, people can use those right away and sign in only when Claude reaches a tool that needs it -* **[Enterprise Managed Auth](/docs/connectors/building/enterprise-managed-auth.md)**: lets enterprise users connect through their organization's SSO without a consent screen +* **[Lazy authentication](https://claude.com/docs/connectors/building/lazy-authentication.md)**: if some of your tools work without the user's account, people can use those right away and sign in only when Claude reaches a tool that needs it +* **[Enterprise Managed Auth](https://claude.com/docs/connectors/building/enterprise-managed-auth.md)**: lets enterprise users connect through their organization's SSO without a consent screen ### Decide what the server exposes @@ -64,7 +64,7 @@ Claude doesn't yet support these MCP features, so don't build a feature that dep * Sampling * Advanced or draft capabilities -If you plan to list the server in the directory, [Design tools that pass review](/docs/connectors/building/review-criteria.md#design-tools-that-pass-review) covers how to name, describe, and annotate tools. +If you plan to list the server in the directory, [Design tools that pass review](https://claude.com/docs/connectors/building/review-criteria.md#design-tools-that-pass-review) covers how to name, describe, and annotate tools. ### Design within the size and timeout limits @@ -77,21 +77,21 @@ Keep tool results and tool call durations within these limits. They differ betwe ### Decide whether to add interactive UI -An MCP App is interactive UI that your MCP server renders inside a Claude conversation, such as an interactive chart or map. It's optional, and you build it as part of the same server. [Get started with MCP Apps](/docs/connectors/building/mcp-apps/getting-started.md) shows an example and how to build your own. +An MCP App is interactive UI that your MCP server renders inside a Claude conversation, such as an interactive chart or map. It's optional, and you build it as part of the same server. [Get started with MCP Apps](https://claude.com/docs/connectors/building/mcp-apps/getting-started.md) shows an example and how to build your own. ## Test your server against Claude -You test against the real Claude client, not a staging environment. [Test your connector](/docs/connectors/building/testing.md) covers adding the server to Claude as a custom connector, validating auth flows with the MCP Inspector, tunneling a local server, and preparing test credentials for review. To connect and debug from the Claude Code command line, see the [Claude Code MCP quickstart](https://code.claude.com/docs/en/mcp-quickstart). +You test against the real Claude client, not a staging environment. [Test your connector](https://claude.com/docs/connectors/building/testing.md) covers adding the server to Claude as a custom connector, validating auth flows with the MCP Inspector, tunneling a local server, and preparing test credentials for review. To connect and debug from the Claude Code command line, see the [Claude Code MCP quickstart](https://code.claude.com/docs/en/mcp-quickstart). ## Decide how people get your server People add your server to Claude as a connector in one of these ways: * **As a custom connector**: a user or an organization Owner adds it by entering its URL, with no review by Anthropic -* **From the directory**: Anthropic lists it in the directory after review, so people find it in Claude. [Publish to the directory](/docs/directory/publish.md) covers who can submit and what review involves -* **Inside a plugin**: you bundle the server with the skills that teach Claude to use it, so people install both together. See [Plugin structure and testing](/docs/plugins/build.md) +* **From the directory**: Anthropic lists it in the directory after review, so people find it in Claude. [Publish to the directory](https://claude.com/docs/directory/publish.md) covers who can submit and what review involves +* **Inside a plugin**: you bundle the server with the skills that teach Claude to use it, so people install both together. See [Plugin structure and testing](https://claude.com/docs/plugins/build.md) -Directory and custom connectors run on the same infrastructure. [Directory connectors vs custom connectors](/docs/connectors/building/directory-vs-custom.md) compares the two and explains when to offer both. +Directory and custom connectors run on the same infrastructure. [Directory connectors vs custom connectors](https://claude.com/docs/connectors/building/directory-vs-custom.md) compares the two and explains when to offer both. ## Related resources @@ -104,7 +104,7 @@ These resources cover the MCP protocol itself rather than Claude's client: ## Next steps -* [Authentication for connectors](/docs/connectors/building/authentication.md): pick an authentication type and meet Claude's OAuth requirements -* [Test your connector](/docs/connectors/building/testing.md): add your server as a custom connector and debug connection failures -* [Plugin structure and testing](/docs/plugins/build.md): bundle your connector with skills so people install both together -* [Publish to the directory](/docs/directory/publish.md): submit your connector for review so people find it in claude.ai on the web, the desktop and mobile apps, and Cowork. Anyone on a paid Claude plan can submit, and on Team and Enterprise an Owner submits +* [Authentication for connectors](https://claude.com/docs/connectors/building/authentication.md): pick an authentication type and meet Claude's OAuth requirements +* [Test your connector](https://claude.com/docs/connectors/building/testing.md): add your server as a custom connector and debug connection failures +* [Plugin structure and testing](https://claude.com/docs/plugins/build.md): bundle your connector with skills so people install both together +* [Publish to the directory](https://claude.com/docs/directory/publish.md): submit your connector for review so people find it in claude.ai on the web, the desktop and mobile apps, and Cowork. Anyone on a paid Claude plan can submit, and on Team and Enterprise an Owner submits diff --git a/content/claude/connectors/building/after-publishing.md b/content/claude/connectors/building/after-publishing.md index 0e6d3943d..b2d822c06 100644 --- a/content/claude/connectors/building/after-publishing.md +++ b/content/claude/connectors/building/after-publishing.md @@ -12,7 +12,7 @@ This page is for the developer who owns a published listing. > [!NOTE] > -> If your submission isn't live yet, see [Track your directory submission](/docs/directory/submission-status.md), which explains what each status in the portal means and who acts next. +> If your submission isn't live yet, see [Track your directory submission](https://claude.com/docs/directory/submission-status.md), which explains what each status in the portal means and who acts next. You can [update what you've published](#update-a-published-connector-or-plugin), [track how a published plugin is used](#track-published-plugin-usage), [share your listing's permanent URL](#directory-listing-urls-are-permanent), or [delist](#delist-a-connector-or-plugin). @@ -22,23 +22,23 @@ You don't resubmit to Anthropic to change a listed MCP server's tools or a liste ### MCP server changes -To add, change, or remove tools, deploy the change to your server. The tool names shown on your directory listing are part of the listing details, so update them with a [listing edit](/docs/connectors/building/managing-your-listing.md#edit-your-listing), which a reviewer approves. +To add, change, or remove tools, deploy the change to your server. The tool names shown on your directory listing are part of the listing details, so update them with a [listing edit](https://claude.com/docs/connectors/building/managing-your-listing.md#edit-your-listing), which a reviewer approves. ### Plugin changes To update a listed plugin, push to the branch or tag the directory tracks for it. The directory picks up the new commit, runs the same validation and security scan as your first submission, and shows the result as a new version on the plugin's page in the portal. If you set `version` in `plugin.json`, raise it with each release, because installed copies use it to tell that an update exists. -A version that doesn't pass, or that is held for a reviewer, doesn't take your listing down: the directory keeps serving the last published version until a newer one is published. [Submit a plugin](/docs/plugins/submit.md#update-a-published-plugin) covers how the directory finds new commits, how to have GitHub notify it on push, and how to change the tracked branch or tag. +A version that doesn't pass, or that is held for a reviewer, doesn't take your listing down: the directory keeps serving the last published version until a newer one is published. [Submit a plugin](https://claude.com/docs/plugins/submit.md#update-a-published-plugin) covers how the directory finds new commits, how to have GitHub notify it on push, and how to change the tracked branch or tag. ### Listing details -For a connector, edit your description, categories, icon, and other listing details from the developer portal at [claude.ai/directory/manage](https://claude.ai/directory/manage). See [Manage your directory listing](/docs/connectors/building/managing-your-listing.md) for what you can edit directly and which changes require review. +For a connector, edit your description, categories, icon, and other listing details from the developer portal at [claude.ai/directory/manage](https://claude.ai/directory/manage). See [Manage your directory listing](https://claude.com/docs/connectors/building/managing-your-listing.md) for what you can edit directly and which changes require review. A plugin listing's name and short description come from `plugin.json` and the README of the version that's live. To change them, edit those files and publish a new version, as [Plugin changes](#plugin-changes) describes. If an Anthropic reviewer edited either field during review, the listing keeps the reviewer's text. From the plugin's **Settings** tab in the developer portal, you can change which surfaces the plugin is listed on, your contact email, and your answer on whether the plugin collects or transmits user data. ## Track published plugin usage -A published plugin's page in the developer portal has a **Usage** tab. The portal is open to the people who [can submit](/docs/directory/publish.md#confirm-you-can-submit-to-the-directory). Use it to see how many accounts install and use the plugin, which version they're on, and whether the plugin loads and its MCP servers respond without errors. +A published plugin's page in the developer portal has a **Usage** tab. The portal is open to the people who [can submit](https://claude.com/docs/directory/publish.md#confirm-you-can-submit-to-the-directory). Use it to see how many accounts install and use the plugin, which version they're on, and whether the plugin loads and its MCP servers respond without errors. The **Usage** tab covers a period you choose, up to 90 days, and you can export the figures as CSV. It shows these groups of figures: @@ -50,7 +50,7 @@ The **Usage** tab covers a period you choose, up to 90 days, and you can export Figures are computed once a day in UTC, and the tab shows the date the data runs through. Until usage is recorded for your plugin, the tab is marked **Preview** and shows sample numbers. -For a connector, [Manage your directory listing](/docs/connectors/building/managing-your-listing.md#server-health-and-usage-metrics) covers the health badge and usage metrics. +For a connector, [Manage your directory listing](https://claude.com/docs/connectors/building/managing-your-listing.md#server-health-and-usage-metrics) covers the health badge and usage metrics. ## Directory listing URLs are permanent @@ -72,5 +72,5 @@ You delist a plugin from the developer portal and a connector by email: ## Next steps -* [Manage your directory listing](/docs/connectors/building/managing-your-listing.md): for a connector, check submission status and health and usage metrics, and edit the listing -* [Connector verification](/docs/connectors/verification.md#list-your-own-connector): see how a listing becomes Verified and what each label means to people installing it +* [Manage your directory listing](https://claude.com/docs/connectors/building/managing-your-listing.md): for a connector, check submission status and health and usage metrics, and edit the listing +* [Connector verification](https://claude.com/docs/connectors/verification.md#list-your-own-connector): see how a listing becomes Verified and what each label means to people installing it diff --git a/content/claude/connectors/building/authentication.md b/content/claude/connectors/building/authentication.md index 2ee296358..75af8195a 100644 --- a/content/claude/connectors/building/authentication.md +++ b/content/claude/connectors/building/authentication.md @@ -25,8 +25,8 @@ If you already know MCP authorization, these are the places where Claude's OAuth > [!NOTE] > -> * If some of your tools work without the user's account, see [Lazy authentication](/docs/connectors/building/lazy-authentication.md) to let people use those right away and sign in only when Claude reaches a tool that needs their account -> * If you want enterprise users to connect through their organization's SSO without a consent screen, see [Enterprise Managed Auth](/docs/connectors/building/enterprise-managed-auth.md) +> * If some of your tools work without the user's account, see [Lazy authentication](https://claude.com/docs/connectors/building/lazy-authentication.md) to let people use those right away and sign in only when Claude reaches a tool that needs their account +> * If you want enterprise users to connect through their organization's SSO without a consent screen, see [Enterprise Managed Auth](https://claude.com/docs/connectors/building/enterprise-managed-auth.md) Use this page to [pick an authentication type](#supported-authentication-types), [register Claude as an OAuth client](#register-claude-as-an-oauth-client), [make discovery and redirects work](#oauth-discovery-and-redirect-uris), and [meet the token endpoint requirements](#token-endpoint-requirements). @@ -41,7 +41,7 @@ Claude supports the following authentication types for remote MCP servers. | `oauth_anthropic_creds` | OAuth 2.0 with [Anthropic-held client credentials](#anthropic-held-client-credentials) | Supported. [Enter the client in the developer portal](#enter-your-oauth-client-in-the-developer-portal) | | `custom_connection` | Custom URL or OAuth client credentials [entered at connection time](#credentials-entered-at-connection-time) | Contact `mcp-review@anthropic.com` | | `static_headers` | Fixed credential (API key or bearer token) entered by an organization Owner as a request header when adding the connector | Beta, for a limited set of organizations | -| `none` | No authentication (authless server) | Supported by default. To leave some tools open and require sign-in for others, see [Lazy authentication](/docs/connectors/building/lazy-authentication.md) | +| `none` | No authentication (authless server) | Supported by default. To leave some tools open and require sign-in for others, see [Lazy authentication](https://claude.com/docs/connectors/building/lazy-authentication.md) | If your server URL varies per customer, read [Servers with per-customer URLs](#servers-with-per-customer-urls) before you pick a type. @@ -52,7 +52,7 @@ With a static credential, an organization Owner enters an API key or bearer toke * **Read the credential from a request header**: standard authentication header names such as `authorization`, `x-api-key`, and `x-auth-token` work for every connector. If you need a different header name, Anthropic has to approve it before Owners can save the connector, so ask `mcp-review@anthropic.com` first * **Never accept it in the URL**: don't read tokens from query parameters such as `?token=` or `?apiKey=`. URLs end up in server logs, proxies, and browser history, and the MCP authorization specification [prohibits access tokens in the query string](https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization#token-requirements) * **Treat it as the organization's credential, not a person's**: every member's requests carry the same key, so don't use it to identify which user is calling. If your tools need to act as the individual user, use OAuth instead -* **Tell Owners what to enter**: document the header name and where they get the key. [Authenticate with request headers](/docs/connectors/custom/add-unlisted.md#authenticate-with-request-headers) shows what the Owner sees when adding the connector +* **Tell Owners what to enter**: document the header name and where they get the key. [Authenticate with request headers](https://claude.com/docs/connectors/custom/add-unlisted.md#authenticate-with-request-headers) shows what the Owner sees when adding the connector ### Servers with per-customer URLs @@ -89,7 +89,7 @@ For the OAuth types, Claude needs a client identity at your authorization server If your authorization server doesn't support DCR, meaning it exposes no `registration_endpoint`, you have these options: * Expose a `registration_endpoint` -* Support CIMD instead. Claude selects CIMD only when your authorization server metadata advertises both `"client_id_metadata_document_supported": true` and `"none"` in `token_endpoint_auth_methods_supported`. The second is required because Claude's CIMD client authenticates as a public client at your token endpoint. If either is missing, Claude falls back to DCR. See [lazy authentication](/docs/connectors/building/lazy-authentication.md#identify-claude-with-a-client-id-metadata-document) for a worked CIMD example +* Support CIMD instead. Claude selects CIMD only when your authorization server metadata advertises both `"client_id_metadata_document_supported": true` and `"none"` in `token_endpoint_auth_methods_supported`. The second is required because Claude's CIMD client authenticates as a public client at your token endpoint. If either is missing, Claude falls back to DCR. See [lazy authentication](https://claude.com/docs/connectors/building/lazy-authentication.md#identify-claude-with-a-client-id-metadata-document) for a worked CIMD example * Switch to `oauth_anthropic_creds`, if your listing doesn't use a URL pattern If your server URL varies per customer and DCR isn't available, CIMD is the recommended path. Every customer's authorization server must advertise both CIMD values. Otherwise Claude falls back to DCR for that customer, which needs a `registration_endpoint`. @@ -109,7 +109,7 @@ Before you enter the client in the portal: ### Enter your OAuth client in the developer portal -If your listing uses Anthropic-held client credentials, enter your OAuth client in the **How users authenticate** section when you [submit your connector](/docs/connectors/building/submission.md): +If your listing uses Anthropic-held client credentials, enter your OAuth client in the **How users authenticate** section when you [submit your connector](https://claude.com/docs/connectors/building/submission.md): 1. Under **Authentication requirement**, select **Always required** or **Required when the server asks**. 2. Under **Authentication methods**, find the **OAuth sign-in** card. If there's none, click **Add OAuth sign-in**. @@ -164,7 +164,7 @@ To use this flow, email `mcp-review@anthropic.com` with which fields you need, w Claude includes a [PKCE](https://datatracker.ietf.org/doc/html/rfc7636) `code_challenge` with `code_challenge_method=S256` on every authorization request, regardless of which registration mechanism it uses. Your authorization server must support S256 PKCE. The [MCP authorization spec](https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization#authorization-code-protection) also requires it to advertise `"code_challenge_methods_supported": ["S256"]` in its metadata so spec-compliant clients can verify support before starting the flow. -To control which scopes Claude requests, include a `scope` parameter in the `WWW-Authenticate` header on your `401` response. If you don't, Claude requests the scopes your protected resource metadata advertises in `scopes_supported`. Claude also appends `offline_access` when your authorization server metadata lists it in `scopes_supported`, to obtain a refresh token. See [lazy authentication](/docs/connectors/building/lazy-authentication.md#answer-a-protected-call-with-401-before-the-mcp-sdk-runs) for the canonical `401` shape. +To control which scopes Claude requests, include a `scope` parameter in the `WWW-Authenticate` header on your `401` response. If you don't, Claude requests the scopes your protected resource metadata advertises in `scopes_supported`. Claude also appends `offline_access` when your authorization server metadata lists it in `scopes_supported`, to obtain a refresh token. See [lazy authentication](https://claude.com/docs/connectors/building/lazy-authentication.md#answer-a-protected-call-with-401-before-the-mcp-sdk-runs) for the canonical `401` shape. ## OAuth discovery and redirect URIs @@ -179,7 +179,7 @@ Claude locates your authorization server through your [protected resource metada * **List your primary issuer first**: the document's `authorization_servers` field must list your authorization server's issuer URL. If you list more than one, Claude uses the first entry and doesn't fall back to later entries * **Serve authorization server metadata Claude can reach**: your authorization server must serve its own discovery metadata, either [RFC 8414](https://www.rfc-editor.org/rfc/rfc8414) authorization server metadata or [OpenID Connect Discovery 1.0](https://openid.net/specs/openid-connect-discovery-1_0.html), at its `/.well-known/` paths. That host must also be reachable from Anthropic's [published egress range](https://platform.claude.com/docs/en/api/ip-addresses). Discovery requests to the authorization server come from the same IP range as requests to your MCP server, so a WAF in front of your identity provider can break the flow even when your MCP server is reachable -The `401` response carries the pointer in its `WWW-Authenticate` header. This is the same handshake described in [Answer a protected call with 401 before the MCP SDK runs](/docs/connectors/building/lazy-authentication.md#answer-a-protected-call-with-401-before-the-mcp-sdk-runs): +The `401` response carries the pointer in its `WWW-Authenticate` header. This is the same handshake described in [Answer a protected call with 401 before the MCP SDK runs](https://claude.com/docs/connectors/building/lazy-authentication.md#answer-a-protected-call-with-401-before-the-mcp-sdk-runs): ```http theme={null} HTTP/1.1 401 Unauthorized @@ -192,13 +192,13 @@ If your `401` doesn't include a `resource_metadata` pointer, Claude can still in > [!NOTE] > -> If your authorization server is Microsoft Entra ID, you must also register the MCP server URL as an Application ID URI on your Entra app registration, or the token request fails with `AADSTS9010010`. By default, Entra accepts that URL as an Application ID URI only when it's on a domain your tenant has verified, as described in [Microsoft's identifier URI restrictions](https://learn.microsoft.com/en-us/entra/identity-platform/identifier-uri-restrictions), so an MCP server on a platform hostname such as `*.azurewebsites.net` needs a custom domain first. See [the troubleshooting entry](/docs/connectors/building/troubleshooting.md#microsoft-entra-id-rejects-the-resource-value) for the fix. +> If your authorization server is Microsoft Entra ID, you must also register the MCP server URL as an Application ID URI on your Entra app registration, or the token request fails with `AADSTS9010010`. By default, Entra accepts that URL as an Application ID URI only when it's on a domain your tenant has verified, as described in [Microsoft's identifier URI restrictions](https://learn.microsoft.com/en-us/entra/identity-platform/identifier-uri-restrictions), so an MCP server on a platform hostname such as `*.azurewebsites.net` needs a custom domain first. See [the troubleshooting entry](https://claude.com/docs/connectors/building/troubleshooting.md#microsoft-entra-id-rejects-the-resource-value) for the fix. If you control both hosts, an alternative is to serve the MCP endpoint and the authorization server behind a single custom domain that can route both `/.well-known/*` and your MCP path. > [!TIP] > -> A common symptom of a discovery failure is that your MCP server receives the initial request but your authorization server sees no traffic at all. That happens when neither path works: there's no `WWW-Authenticate: Bearer resource_metadata=…` header on your `401`, and the well-known paths on your MCP server's origin return `404`. With no metadata to read, Claude never learns where your authorization server is, and the connection fails with "Couldn't reach the MCP server." See [troubleshooting](/docs/connectors/building/troubleshooting.md) for the full diagnostic flow. +> A common symptom of a discovery failure is that your MCP server receives the initial request but your authorization server sees no traffic at all. That happens when neither path works: there's no `WWW-Authenticate: Bearer resource_metadata=…` header on your `401`, and the well-known paths on your MCP server's origin return `404`. With no metadata to read, Claude never learns where your authorization server is, and the connection fails with "Couldn't reach the MCP server." See [troubleshooting](https://claude.com/docs/connectors/building/troubleshooting.md) for the full diagnostic flow. ### Callback URLs @@ -216,7 +216,7 @@ For Claude Code, accept a loopback redirect on any port. Claude Code is a native http://localhost:3118/callback ``` -Claude Code declares `http://localhost/callback` and `http://127.0.0.1/callback` in its [Client ID Metadata Document](https://claude.ai/oauth/claude-code-client-metadata), so match both with the port component ignored. [RFC 8252 section 7.3](https://datatracker.ietf.org/doc/html/rfc8252#section-7.3) requires this for the IP-literal form (`127.0.0.1`). Apply the same port-agnostic match to `localhost` so Claude Code works, even though RFC 8252 section 8.3 discourages `localhost`. See [lazy authentication](/docs/connectors/building/lazy-authentication.md#match-loopback-redirect-uris-without-the-port) for implementation details. +Claude Code declares `http://localhost/callback` and `http://127.0.0.1/callback` in its [Client ID Metadata Document](https://claude.ai/oauth/claude-code-client-metadata), so match both with the port component ignored. [RFC 8252 section 7.3](https://datatracker.ietf.org/doc/html/rfc8252#section-7.3) requires this for the IP-literal form (`127.0.0.1`). Apply the same port-agnostic match to `localhost` so Claude Code works, even though RFC 8252 section 8.3 discourages `localhost`. See [lazy authentication](https://claude.com/docs/connectors/building/lazy-authentication.md#match-loopback-redirect-uris-without-the-port) for implementation details. On your consent screen, display the redirect URI's hostname clearly. The [MCP authorization spec](https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization#localhost-redirect-uri-risks) requires this and recommends an extra warning when the only registered redirect URIs are loopback addresses, because any local process can bind a port and claim to be the client. @@ -247,16 +247,16 @@ You don't need a separate OAuth application for each enterprise customer, but a Unless your listing asks for credentials at connection time, enterprise customers connect through the same OAuth application as everyone else. Scope what each user can reach with your service's own per-user permissions rather than with a per-tenant OAuth app. These cases work differently: -* **SSO without a consent screen**: organizations using SSO can connect their users with an identity assertion signed by their identity provider instead of an interactive OAuth consent step. See [Enterprise Managed Auth](/docs/connectors/building/enterprise-managed-auth.md) for what your authorization server needs to support +* **SSO without a consent screen**: organizations using SSO can connect their users with an identity assertion signed by their identity provider instead of an interactive OAuth consent step. See [Enterprise Managed Auth](https://claude.com/docs/connectors/building/enterprise-managed-auth.md) for what your authorization server needs to support * **Customer-supplied OAuth client**: a listing that asks for [credentials entered at connection time](#credentials-entered-at-connection-time) has each customer supply its own OAuth client, and an administrator who adds your server as a [custom connector](#custom-connectors) can enter one too ### Custom connectors -When a customer adds your server by URL as a custom connector, Claude identifies itself to your authorization server in one of three ways: with the Client ID Metadata Document that Anthropic hosts for it, through Dynamic Client Registration, or with an OAuth client ID the customer registered with you and enters in the dialog. [Choose authentication settings](/docs/connectors/custom/add-unlisted.md#choose-authentication-settings) shows the dialog the customer sees. On your side: +When a customer adds your server by URL as a custom connector, Claude identifies itself to your authorization server in one of three ways: with the Client ID Metadata Document that Anthropic hosts for it, through Dynamic Client Registration, or with an OAuth client ID the customer registered with you and enters in the dialog. [Choose authentication settings](https://claude.com/docs/connectors/custom/add-unlisted.md#choose-authentication-settings) shows the dialog the customer sees. On your side: * **Support CIMD or DCR**: customers can then connect without registering a client with you first. See [DCR and CIMD details](#dcr-and-cimd-details) for what each needs from your authorization server * **Require a client secret only for confidential clients**: the secret is optional in the dialog, so customers need one only if your authorization server requires confidential-client authentication -* **Use request headers for a fixed API key or token**: for servers that authenticate with a fixed credential rather than OAuth, request header authentication (`static_headers`) is available in beta. See [Supported authentication types](#supported-authentication-types) and [Authenticate with request headers](/docs/connectors/custom/add-unlisted.md#authenticate-with-request-headers) for what Owners see +* **Use request headers for a fixed API key or token**: for servers that authenticate with a fixed credential rather than OAuth, request header authentication (`static_headers`) is available in beta. See [Supported authentication types](#supported-authentication-types) and [Authenticate with request headers](https://claude.com/docs/connectors/custom/add-unlisted.md#authenticate-with-request-headers) for what Owners see ## Network reference @@ -264,7 +264,7 @@ Anthropic's outbound traffic to your server originates from `160.79.104.0/21`. S ## Next steps -* [Lazy authentication](/docs/connectors/building/lazy-authentication.md): let people use the tools that don't need their account right away, and ask them to sign in only when Claude reaches one that does -* [Enterprise Managed Auth](/docs/connectors/building/enterprise-managed-auth.md): accept identity assertions from enterprise SSO instead of an interactive consent step -* [Test your connector](/docs/connectors/building/testing.md): add your server as a custom connector and exercise the auth flow -* [Troubleshoot your connector](/docs/connectors/building/troubleshooting.md): diagnose "Couldn't reach the MCP server" and "Authorization with the MCP server failed" +* [Lazy authentication](https://claude.com/docs/connectors/building/lazy-authentication.md): let people use the tools that don't need their account right away, and ask them to sign in only when Claude reaches one that does +* [Enterprise Managed Auth](https://claude.com/docs/connectors/building/enterprise-managed-auth.md): accept identity assertions from enterprise SSO instead of an interactive consent step +* [Test your connector](https://claude.com/docs/connectors/building/testing.md): add your server as a custom connector and exercise the auth flow +* [Troubleshoot your connector](https://claude.com/docs/connectors/building/troubleshooting.md): diagnose "Couldn't reach the MCP server" and "Authorization with the MCP server failed" diff --git a/content/claude/connectors/building/directory-vs-custom.md b/content/claude/connectors/building/directory-vs-custom.md index d4e68268e..a51723c21 100644 --- a/content/claude/connectors/building/directory-vs-custom.md +++ b/content/claude/connectors/building/directory-vs-custom.md @@ -12,7 +12,7 @@ This page is for developers deciding whether to list a server in the directory, > [!NOTE] > -> If you want to know what directory and custom connectors look like to a Claude user, including the Verified and Community labels, see [connector verification](/docs/connectors/verification.md). +> If you want to know what directory and custom connectors look like to a Claude user, including the Verified and Community labels, see [connector verification](https://claude.com/docs/connectors/verification.md). ## Compare directory and custom connectors @@ -25,7 +25,7 @@ Directory and custom connectors differ only in what surrounds the runtime: who r | **In-product discovery** | Browse, search, Suggested Connectors | None | | **Distribution** | [Directory link](#share-an-install-link) | [Install link](#share-an-install-link) or manual URL entry | | **Anthropic-held client credentials** | Available | Not available | -| **[External link](/docs/connectors/building/mcp-apps/external-links.md) confirmation** | Can allowlist destinations to skip the modal | Always shows the modal | +| **[External link](https://claude.com/docs/connectors/building/mcp-apps/external-links.md) confirmation** | Can allowlist destinations to skip the modal | Always shows the modal | | **Appears as** | Named card with logo | **Custom** | ## Share an install link @@ -40,7 +40,7 @@ After publication, your connector has a permanent listing URL based on its slug: https://claude.ai/directory/connectors/SLUG ``` -For example, `https://claude.ai/directory/connectors/dovetail` opens the Dovetail listing with its description, screenshots, and a **Connect** button. You receive your slug when your submission is approved, and it [can't change afterward](/docs/connectors/building/after-publishing.md#directory-listing-urls-are-permanent). +For example, `https://claude.ai/directory/connectors/dovetail` opens the Dovetail listing with its description, screenshots, and a **Connect** button. You receive your slug when your submission is approved, and it [can't change afterward](https://claude.com/docs/connectors/building/after-publishing.md#directory-listing-urls-are-permanent). ### Custom connector install link @@ -86,7 +86,7 @@ Directory connectors are eligible for Suggested Connectors, which means Claude c ### The MCP Registry and the Anthropic Directory -The Anthropic Directory is independent of the open [MCP Registry](https://registry.modelcontextprotocol.io) and the `modelcontextprotocol/servers` GitHub repository. Publishing to those doesn't surface your server in Claude. Submit through the [directory submission form](/docs/connectors/building/submission.md) to appear in Claude products. +The Anthropic Directory is independent of the open [MCP Registry](https://registry.modelcontextprotocol.io) and the `modelcontextprotocol/servers` GitHub repository. Publishing to those doesn't surface your server in Claude. Submit through the [directory submission form](https://claude.com/docs/connectors/building/submission.md) to appear in Claude products. ## Listing patterns for enterprise and multi-tenant servers @@ -98,10 +98,10 @@ A supported pattern is to list a connector in the directory with safe, broadly a ### Per-tenant URLs -If your server URL varies per tenant, such as `{tenant}.mcp.example.com`, submit one directory listing with a URL pattern. Each user enters their own URL when they connect. A listing with a URL pattern can be published only once it has the **Verified** label. See [Servers with per-customer URLs](/docs/connectors/building/authentication.md#servers-with-per-customer-urls) for how this choice limits your authentication options. +If your server URL varies per tenant, such as `{tenant}.mcp.example.com`, submit one directory listing with a URL pattern. Each user enters their own URL when they connect. A listing with a URL pattern can be published only once it has the **Verified** label. See [Servers with per-customer URLs](https://claude.com/docs/connectors/building/authentication.md#servers-with-per-customer-urls) for how this choice limits your authentication options. ## Next steps -* [Authentication for connectors](/docs/connectors/building/authentication.md): the authentication types available to directory and custom connectors -* [Publish to the directory](/docs/directory/publish.md): who can submit, what review involves, and where to start -* [Add a connector by URL](/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url): how users and Owners add a custom connector by URL +* [Authentication for connectors](https://claude.com/docs/connectors/building/authentication.md): the authentication types available to directory and custom connectors +* [Publish to the directory](https://claude.com/docs/directory/publish.md): who can submit, what review involves, and where to start +* [Add a connector by URL](https://claude.com/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url): how users and Owners add a custom connector by URL diff --git a/content/claude/connectors/building/enterprise-managed-auth.md b/content/claude/connectors/building/enterprise-managed-auth.md index 9bbff4693..0e1cb3bae 100644 --- a/content/claude/connectors/building/enterprise-managed-auth.md +++ b/content/claude/connectors/building/enterprise-managed-auth.md @@ -8,7 +8,7 @@ > [!NOTE] > -> Enterprise Managed Auth is available on Claude Team and Enterprise plans. After your authorization server supports it, email `mcp-review@anthropic.com` to have [your directory listing](/docs/connectors/building/managing-your-listing.md) marked as supporting Enterprise Managed Auth. +> Enterprise Managed Auth is available on Claude Team and Enterprise plans. After your authorization server supports it, email `mcp-review@anthropic.com` to have [your directory listing](https://claude.com/docs/connectors/building/managing-your-listing.md) marked as supporting Enterprise Managed Auth. Enterprise Managed Auth (EMA) lets a user connect to your MCP server silently, using the single sign-on session they already have with their organization. Instead of showing each user an OAuth consent screen, Claude presents your authorization server with an identity assertion: a signed JSON Web Token (JWT), issued by the customer's identity provider, that vouches for the user's identity. @@ -28,9 +28,9 @@ The Enterprise Managed Auth flow is defined by the [MCP enterprise managed autho ### Enterprise Managed Auth with lazy authentication -Enterprise Managed Auth also works with [lazy authentication](/docs/connectors/building/lazy-authentication.md). When your server returns `401 Unauthorized` for a protected tool call, Claude normally shows the inline **Connect** card and runs the interactive OAuth flow. If the user's organization has Enterprise Managed Auth configured for your connector, Claude runs the silent JWT bearer exchange instead and retries the tool call without showing a prompt. +Enterprise Managed Auth also works with [lazy authentication](https://claude.com/docs/connectors/building/lazy-authentication.md). When your server returns `401 Unauthorized` for a protected tool call, Claude normally shows the inline **Connect** card and runs the interactive OAuth flow. If the user's organization has Enterprise Managed Auth configured for your connector, Claude runs the silent JWT bearer exchange instead and retries the tool call without showing a prompt. -Your MCP server returns the same `401` with a `WWW-Authenticate` header as described in the [lazy authentication guide](/docs/connectors/building/lazy-authentication.md#answer-a-protected-call-with-401-before-the-mcp-sdk-runs). Your authorization server must still meet the [authorization server requirements](#authorization-server-requirements). +Your MCP server returns the same `401` with a `WWW-Authenticate` header as described in the [lazy authentication guide](https://claude.com/docs/connectors/building/lazy-authentication.md#answer-a-protected-call-with-401-before-the-mcp-sdk-runs). Your authorization server must still meet the [authorization server requirements](#authorization-server-requirements). Enterprise Managed Auth doesn't apply to authless servers. A fully authless server never returns `401`, so there is no point at which Claude can exchange an assertion. @@ -38,8 +38,8 @@ Enterprise Managed Auth doesn't apply to authless servers. A fully authless serv Before adding Enterprise Managed Auth, make sure the following are already in place: -* Your MCP server implements [MCP authorization](https://modelcontextprotocol.io/specification/draft/basic/authorization), including Protected Resource Metadata (PRM) discovery, and follows the [MCP security best practices](https://modelcontextprotocol.io/docs/tutorials/security/security_best_practices). See the [authentication guide](/docs/connectors/building/authentication.md) for Claude-specific requirements -* Your authorization server registers Claude using either [Anthropic-held client credentials](/docs/connectors/building/authentication.md#anthropic-held-client-credentials) or a [Client ID Metadata Document](/docs/connectors/building/authentication.md#dcr-and-cimd-details) +* Your MCP server implements [MCP authorization](https://modelcontextprotocol.io/specification/draft/basic/authorization), including Protected Resource Metadata (PRM) discovery, and follows the [MCP security best practices](https://modelcontextprotocol.io/docs/tutorials/security/security_best_practices). See the [authentication guide](https://claude.com/docs/connectors/building/authentication.md) for Claude-specific requirements +* Your authorization server registers Claude using either [Anthropic-held client credentials](https://claude.com/docs/connectors/building/authentication.md#anthropic-held-client-credentials) or a [Client ID Metadata Document](https://claude.com/docs/connectors/building/authentication.md#dcr-and-cimd-details) > [!WARNING] > @@ -137,7 +137,7 @@ In your product's admin settings, give each customer's administrator a control t ### Provide setup documentation -You can publish documentation that walks an enterprise administrator through enabling Enterprise Managed Auth for your product and add its URL to [your directory listing](/docs/connectors/building/managing-your-listing.md). Claude shows the link in the Claude admin console when an administrator sets up Enterprise Managed Auth for your connector. +You can publish documentation that walks an enterprise administrator through enabling Enterprise Managed Auth for your product and add its URL to [your directory listing](https://claude.com/docs/connectors/building/managing-your-listing.md). Claude shows the link in the Claude admin console when an administrator sets up Enterprise Managed Auth for your connector. ### Okta Integration Network apps @@ -145,7 +145,7 @@ If your product has an app in the Okta Integration Network, work with Okta to en ## Related resources -* [Authentication for connectors](/docs/connectors/building/authentication.md): baseline OAuth requirements your server must already meet -* [Lazy authentication](/docs/connectors/building/lazy-authentication.md): ask users to sign in only when Claude reaches a tool that needs their account -* [Test your connector](/docs/connectors/building/testing.md): verify your connector works end to end in Claude -* [Troubleshoot your connector](/docs/connectors/building/troubleshooting.md): diagnose common authentication and connection issues +* [Authentication for connectors](https://claude.com/docs/connectors/building/authentication.md): baseline OAuth requirements your server must already meet +* [Lazy authentication](https://claude.com/docs/connectors/building/lazy-authentication.md): ask users to sign in only when Claude reaches a tool that needs their account +* [Test your connector](https://claude.com/docs/connectors/building/testing.md): verify your connector works end to end in Claude +* [Troubleshoot your connector](https://claude.com/docs/connectors/building/troubleshooting.md): diagnose common authentication and connection issues diff --git a/content/claude/connectors/building/lazy-authentication.md b/content/claude/connectors/building/lazy-authentication.md index c654477e8..9e44ce88c 100644 --- a/content/claude/connectors/building/lazy-authentication.md +++ b/content/claude/connectors/building/lazy-authentication.md @@ -10,7 +10,7 @@ A connector that uses OAuth sign-in normally asks each person to sign in as soon When Claude reaches a protected tool, it shows the sign-in prompt inline in the conversation, and after the person signs in it retries the same tool call. The challenge your server sends to trigger that prompt follows the [MCP authorization specification](https://modelcontextprotocol.io/specification/latest/basic/authorization). -This page is for developers whose MCP server has some tools that work without the user's identity. It walks through excerpts from an example Express server, a single `src/index.ts` file built on `@modelcontextprotocol/sdk` over Streamable HTTP, to show what your own server needs at each step. For the OAuth requirements every server must meet regardless of when it asks for sign-in, see [Authentication for connectors](/docs/connectors/building/authentication.md). +This page is for developers whose MCP server has some tools that work without the user's identity. It walks through excerpts from an example Express server, a single `src/index.ts` file built on `@modelcontextprotocol/sdk` over Streamable HTTP, to show what your own server needs at each step. For the OAuth requirements every server must meet regardless of when it asks for sign-in, see [Authentication for connectors](https://claude.com/docs/connectors/building/authentication.md). ## See what the user experiences @@ -23,7 +23,7 @@ A user of a lazy-auth connector goes through these steps: > [!NOTE] > -> If the user's organization has [Enterprise Managed Auth](/docs/connectors/building/enterprise-managed-auth.md) configured for your connector, the same refusal triggers a silent token exchange instead of the **Connect** card. Claude retries the tool call automatically and the user sees no prompt. +> If the user's organization has [Enterprise Managed Auth](https://claude.com/docs/connectors/building/enterprise-managed-auth.md) configured for your connector, the same refusal triggers a silent token exchange instead of the **Connect** card. Claude retries the tool call automatically and the user sees no prompt. ## Build lazy authentication on your server @@ -308,7 +308,7 @@ Claude reaches custom connectors from Anthropic's infrastructure, so `localhost` 2. In Claude, go to [**Customize > Connectors**](https://claude.ai/customize/connectors) and select **Add custom connector**. 3. Enter the tunnel's `/mcp` URL. -See [Test a local server](/docs/connectors/building/testing.md#test-a-local-server) for details. If your app comes from the SDK's `createMcpExpressApp()`, that section also shows the `allowedHosts` option you need before requests through the tunnel succeed. +See [Test a local server](https://claude.com/docs/connectors/building/testing.md#test-a-local-server) for details. If your app comes from the SDK's `createMcpExpressApp()`, that section also shows the `allowedHosts` option you need before requests through the tunnel succeed. **5. Try both paths in a conversation** @@ -317,7 +317,7 @@ See [Test a local server](/docs/connectors/building/testing.md#test-a-local-serv ## Next steps -* [Authentication for connectors](/docs/connectors/building/authentication.md): check the OAuth requirements your authorization server must meet, including redirect URIs and token refresh -* [Enterprise Managed Auth](/docs/connectors/building/enterprise-managed-auth.md): let organizations with SSO answer the same `401` with a silent token exchange -* [Test your connector](/docs/connectors/building/testing.md): expose the server through a tunnel and add it as a custom connector -* [Troubleshoot your connector](/docs/connectors/building/troubleshooting.md): diagnose discovery and authorization failures +* [Authentication for connectors](https://claude.com/docs/connectors/building/authentication.md): check the OAuth requirements your authorization server must meet, including redirect URIs and token refresh +* [Enterprise Managed Auth](https://claude.com/docs/connectors/building/enterprise-managed-auth.md): let organizations with SSO answer the same `401` with a silent token exchange +* [Test your connector](https://claude.com/docs/connectors/building/testing.md): expose the server through a tunnel and add it as a custom connector +* [Troubleshoot your connector](https://claude.com/docs/connectors/building/troubleshooting.md): diagnose discovery and authorization failures diff --git a/content/claude/connectors/building/managing-your-listing.md b/content/claude/connectors/building/managing-your-listing.md index 218a57de1..87307e3c6 100644 --- a/content/claude/connectors/building/managing-your-listing.md +++ b/content/claude/connectors/building/managing-your-listing.md @@ -6,7 +6,7 @@ > Track submissions, monitor server health and usage metrics, and edit your directory listing -Organizations that submit a connector to the [directory](/docs/connectors/directory.md) get a submissions dashboard in the developer portal at [claude.ai/directory/manage](https://claude.ai/directory/manage). This page is for connector authors who have already [submitted a connector](/docs/connectors/building/submission.md). Use the dashboard to [track a submission through review](#track-submission-status), [monitor your published server's health and usage](#server-health-and-usage-metrics), and [edit your listing](#edit-your-listing). +Organizations that submit a connector to the [directory](https://claude.com/docs/connectors/directory.md) get a submissions dashboard in the developer portal at [claude.ai/directory/manage](https://claude.ai/directory/manage). This page is for connector authors who have already [submitted a connector](https://claude.com/docs/connectors/building/submission.md). Use the dashboard to [track a submission through review](#track-submission-status), [monitor your published server's health and usage](#server-health-and-usage-metrics), and [edit your listing](#edit-your-listing). > [!NOTE] > @@ -14,13 +14,13 @@ Organizations that submit a connector to the [directory](/docs/connectors/direct ## Access the dashboard -The dashboard uses the same access as submitting. [Who can submit to the directory](/docs/directory/publish.md#confirm-you-can-submit-to-the-directory) lists the plan and role requirements. That access covers everything on this page: viewing submissions, metrics, and reviewer feedback, and editing and submitting listings. +The dashboard uses the same access as submitting. [Who can submit to the directory](https://claude.com/docs/directory/publish.md#confirm-you-can-submit-to-the-directory) lists the plan and role requirements. That access covers everything on this page: viewing submissions, metrics, and reviewer feedback, and editing and submitting listings. ## Track submission status -The dashboard lists each of your organization's submissions with its current status. [Track your submission](/docs/directory/submission-status.md#mcp-connector-statuses) says what each status means and who acts next. Open a submission to see its full details and any reviewer feedback. When reviewers request changes, their feedback appears on the submission's detail page, where you address it and resubmit. +The dashboard lists each of your organization's submissions with its current status. [Track your submission](https://claude.com/docs/directory/submission-status.md#mcp-connector-statuses) says what each status means and who acts next. Open a submission to see its full details and any reviewer feedback. When reviewers request changes, their feedback appears on the submission's detail page, where you address it and resubmit. -A published connector is listed with the **Community** label by default. [Connector verification](/docs/connectors/verification.md#list-your-own-connector) explains how a listing becomes Verified. +A published connector is listed with the **Community** label by default. [Connector verification](https://claude.com/docs/connectors/verification.md#list-your-own-connector) explains how a listing becomes Verified. ## Server health and usage metrics @@ -87,12 +87,12 @@ Save your edits as you go, then submit them for review. Submitted changes show a The URL slug is locked. It's permanent after publication because it determines your listing URL. -To change how users sign in, including the OAuth client ID and secret that Anthropic holds, go to **Connection & authentication** on the listing's submission detail page and click **Edit authentication** or **Author authentication**, whichever the section shows. [Enter your OAuth client in the developer portal](/docs/connectors/building/authentication.md#enter-your-oauth-client-in-the-developer-portal) covers the client fields. +To change how users sign in, including the OAuth client ID and secret that Anthropic holds, go to **Connection & authentication** on the listing's submission detail page and click **Edit authentication** or **Author authentication**, whichever the section shows. [Enter your OAuth client in the developer portal](https://claude.com/docs/connectors/building/authentication.md#enter-your-oauth-client-in-the-developer-portal) covers the client fields. For other edits or escalations, email `mcp-review@anthropic.com`. ## Next steps -* [After publishing](/docs/connectors/building/after-publishing.md): release updates to your server, and delist -* [Connector verification](/docs/connectors/verification.md#list-your-own-connector): see how a Community listing becomes Verified -* [Troubleshoot your connector](/docs/connectors/building/troubleshooting.md): diagnose the errors behind a degraded health badge or high error rate +* [After publishing](https://claude.com/docs/connectors/building/after-publishing.md): release updates to your server, and delist +* [Connector verification](https://claude.com/docs/connectors/verification.md#list-your-own-connector): see how a Community listing becomes Verified +* [Troubleshoot your connector](https://claude.com/docs/connectors/building/troubleshooting.md): diagnose the errors behind a degraded health badge or high error rate diff --git a/content/claude/connectors/building/mcp-apps/design-guidelines.md b/content/claude/connectors/building/mcp-apps/design-guidelines.md index 5e45cc6bd..1f3d7ac96 100644 --- a/content/claude/connectors/building/mcp-apps/design-guidelines.md +++ b/content/claude/connectors/building/mcp-apps/design-guidelines.md @@ -10,7 +10,7 @@ MCP Apps are interactive interfaces that appear within Claude's conversational f > [!NOTE] > -> If you haven't built and connected an MCP App yet, see [Get started with MCP Apps](/docs/connectors/building/mcp-apps/getting-started.md). +> If you haven't built and connected an MCP App yet, see [Get started with MCP Apps](https://claude.com/docs/connectors/building/mcp-apps/getting-started.md). Use the guidelines to [pick a display mode](#display-modes), [adapt to mobile](#mobile-guidelines), match Claude's [visual design](#visual-design) with the host's [style variables](#style-variables), and decide which [interactions](#interaction-patterns) belong in your app and which belong in chat. @@ -291,7 +291,7 @@ Prefer controls with visible options, such as segmented buttons, toggle chips, a ## Style variables -MCP Apps automatically receive style variables from the host client. Reference these CSS custom properties to create interfaces that feel native to Claude. [Blend your MCP App with Claude's theme](/docs/connectors/building/mcp-apps/transparent-theming.md) shows how to apply them at runtime. +MCP Apps automatically receive style variables from the host client. Reference these CSS custom properties to create interfaces that feel native to Claude. [Blend your MCP App with Claude's theme](https://claude.com/docs/connectors/building/mcp-apps/transparent-theming.md) shows how to apply them at runtime. ### Color tokens @@ -440,6 +440,6 @@ This CSS applies the host tokens to an app container, a card, and a button: ## Related resources -* [Blend your MCP App with Claude's theme](/docs/connectors/building/mcp-apps/transparent-theming.md): apply the style variables and keep your background transparent -* [Set `ui.domain` for Claude](/docs/connectors/building/mcp-apps/getting-started#set-ui-domain-for-claude): compute the sandbox origin Claude expects for your app -* [Submit a connector](/docs/connectors/building/submission.md#carousel-screenshots-for-mcp-apps): screenshot specifications for listing an MCP App in the directory +* [Blend your MCP App with Claude's theme](https://claude.com/docs/connectors/building/mcp-apps/transparent-theming.md): apply the style variables and keep your background transparent +* [Set `ui.domain` for Claude](https://claude.com/docs/connectors/building/mcp-apps/getting-started#set-ui-domain-for-claude): compute the sandbox origin Claude expects for your app +* [Submit a connector](https://claude.com/docs/connectors/building/submission.md#carousel-screenshots-for-mcp-apps): screenshot specifications for listing an MCP App in the directory diff --git a/content/claude/connectors/building/mcp-apps/external-links.md b/content/claude/connectors/building/mcp-apps/external-links.md index 49f6ad3e6..bb2c497b6 100644 --- a/content/claude/connectors/building/mcp-apps/external-links.md +++ b/content/claude/connectors/building/mcp-apps/external-links.md @@ -8,7 +8,7 @@ When your MCP App sends a `ui/open-link` request, Claude shows an **Open external link** confirmation modal before navigating. The modal protects users from being silently redirected by an embedded app. -If your connector is published in the [Connectors Directory](/docs/connectors/directory.md), you can declare a set of trusted destinations that open immediately without the modal. Custom connectors and locally configured servers always show it. To skip the modal for a directory connector, [allowlist your destinations](#allowlist-link-destinations) and send each request after a [real user gesture](#user-activation-requirement), then [design your app](#design-for-the-modal) for the cases where the modal still appears. +If your connector is published in the [Connectors Directory](https://claude.com/docs/connectors/directory.md), you can declare a set of trusted destinations that open immediately without the modal. Custom connectors and locally configured servers always show it. To skip the modal for a directory connector, [allowlist your destinations](#allowlist-link-destinations) and send each request after a [real user gesture](#user-activation-requirement), then [design your app](#design-for-the-modal) for the cases where the modal still appears. ## Default link behavior @@ -16,7 +16,7 @@ A `ui/open-link` request displays a confirmation modal showing the destination U ## Allowlist link destinations -A directory connector declares the destinations that skip the modal in its directory listing. Provide them in the **Allowed link URIs** field when you [submit](/docs/connectors/building/submission.md#allowed-link-uris) or update your listing. +A directory connector declares the destinations that skip the modal in its directory listing. Provide them in the **Allowed link URIs** field when you [submit](https://claude.com/docs/connectors/building/submission.md#allowed-link-uris) or update your listing. Each entry must be an HTTPS origin or a custom URI scheme: @@ -75,6 +75,6 @@ Provide enough context in your UI that the destination URL shown in the modal is ## Next steps -* [Submit a connector](/docs/connectors/building/submission.md#allowed-link-uris): where the **Allowed link URIs** field fits in your directory submission -* [Design guidelines](/docs/connectors/building/mcp-apps/design-guidelines.md#interaction-patterns): which interactions belong in your app and which belong in chat -* [Troubleshoot MCP Apps](/docs/connectors/building/mcp-apps/troubleshooting.md): developer tools for inspecting your app's requests +* [Submit a connector](https://claude.com/docs/connectors/building/submission.md#allowed-link-uris): where the **Allowed link URIs** field fits in your directory submission +* [Design guidelines](https://claude.com/docs/connectors/building/mcp-apps/design-guidelines.md#interaction-patterns): which interactions belong in your app and which belong in chat +* [Troubleshoot MCP Apps](https://claude.com/docs/connectors/building/mcp-apps/troubleshooting.md): developer tools for inspecting your app's requests diff --git a/content/claude/connectors/building/mcp-apps/getting-started.md b/content/claude/connectors/building/mcp-apps/getting-started.md index 80a86a8d1..3f8a1ee64 100644 --- a/content/claude/connectors/building/mcp-apps/getting-started.md +++ b/content/claude/connectors/building/mcp-apps/getting-started.md @@ -12,7 +12,7 @@ This page is for developers who have an MCP server, or are building one, and wan > [!NOTE] > -> If you haven't built the server yet, see [Build an MCP server for Claude](/docs/connectors/building/index.md). +> If you haven't built the server yet, see [Build an MCP server for Claude](https://claude.com/docs/connectors/building/index.md). To see how an MCP App looks and behaves, [try an example in Claude Desktop](#try-an-example-mcp-app-in-claude-desktop) first, then [build your own](#build-your-own-mcp-app) from the SDK quickstart, the examples, or the agent skills. @@ -103,7 +103,7 @@ Claude asks for permission to display the app. Click **Allow**, or **Always allo To add an MCP App to your own MCP server, start from the SDK documentation and examples: -* [Add an interactive UI to your MCP server](/docs/connectors/building/mcp-apps/quickstart.md): add a one-tool MCP App to the quickstart server on this site, in plain JavaScript with no build step +* [Add an interactive UI to your MCP server](https://claude.com/docs/connectors/building/mcp-apps/quickstart.md): add a one-tool MCP App to the quickstart server on this site, in plain JavaScript with no build step * [MCP Apps Quickstart](https://modelcontextprotocol.github.io/ext-apps/api/documents/Quickstart.html): step-by-step guide to building your first MCP App * [SDK API documentation](https://modelcontextprotocol.github.io/ext-apps/api/index.html): full API reference * [Example implementations](https://github.com/modelcontextprotocol/ext-apps/tree/main/examples): vanilla JS, React, Vue, Svelte, and more @@ -130,7 +130,7 @@ For `https://example.com/mcp`, the command prints: c3d80a4ed901ee05b21755a88273b4a4.claudemcpcontent.com ``` -If Claude reports `Invalid ui.domain format` or `ui.domain mismatch`, see [Troubleshoot MCP Apps](/docs/connectors/building/mcp-apps/troubleshooting.md#ui-domain-validation-fails). +If Claude reports `Invalid ui.domain format` or `ui.domain mismatch`, see [Troubleshoot MCP Apps](https://claude.com/docs/connectors/building/mcp-apps/troubleshooting.md#ui-domain-validation-fails). ### Build with an AI coding agent @@ -153,6 +153,6 @@ To report a problem or suggest a change to MCP Apps, email [mcp-apps@anthropic.c ## Next steps -* [Design guidelines](/docs/connectors/building/mcp-apps/design-guidelines.md): display modes, mobile layout, and style variables for an app that feels native to Claude -* [Troubleshoot MCP Apps](/docs/connectors/building/mcp-apps/troubleshooting.md): developer tools and fixes for an app that doesn't render -* [Submit a connector](/docs/connectors/building/submission.md): list your server and its MCP App screenshots in the directory +* [Design guidelines](https://claude.com/docs/connectors/building/mcp-apps/design-guidelines.md): display modes, mobile layout, and style variables for an app that feels native to Claude +* [Troubleshoot MCP Apps](https://claude.com/docs/connectors/building/mcp-apps/troubleshooting.md): developer tools and fixes for an app that doesn't render +* [Submit a connector](https://claude.com/docs/connectors/building/submission.md): list your server and its MCP App screenshots in the directory diff --git a/content/claude/connectors/building/mcp-apps/instance-supersession.md b/content/claude/connectors/building/mcp-apps/instance-supersession.md index c641562bc..94d2fe58f 100644 --- a/content/claude/connectors/building/mcp-apps/instance-supersession.md +++ b/content/claude/connectors/building/mcp-apps/instance-supersession.md @@ -243,6 +243,6 @@ The snippets on this page use the SDK's [`App`](https://modelcontextprotocol.git ## Next steps -* [Set `ui.domain` for Claude](/docs/connectors/building/mcp-apps/getting-started#set-ui-domain-for-claude): how to compute `_meta.ui.domain` for Claude -* [Troubleshoot MCP Apps](/docs/connectors/building/mcp-apps/troubleshooting.md): developer tools and fixes when a widget doesn't render +* [Set `ui.domain` for Claude](https://claude.com/docs/connectors/building/mcp-apps/getting-started#set-ui-domain-for-claude): how to compute `_meta.ui.domain` for Claude +* [Troubleshoot MCP Apps](https://claude.com/docs/connectors/building/mcp-apps/troubleshooting.md): developer tools and fixes when a widget doesn't render * [SDK API reference](https://modelcontextprotocol.github.io/ext-apps/api/index.html): `registerAppTool`, `App`, and `McpUiResourceMeta` diff --git a/content/claude/connectors/building/mcp-apps/quickstart.md b/content/claude/connectors/building/mcp-apps/quickstart.md index 37f1de8e3..009132b51 100644 --- a/content/claude/connectors/building/mcp-apps/quickstart.md +++ b/content/claude/connectors/building/mcp-apps/quickstart.md @@ -6,15 +6,15 @@ > Add an MCP App to the quickstart MCP server: register a ui:// resource with the MCP Apps SDK, link it to a tool, and check that the server advertises the UI. -An [MCP App](/docs/connectors/building/mcp-apps/getting-started.md) is interactive UI that your MCP server renders inside a Claude conversation, such as an interactive chart or map. In this quickstart you give the `roll_dice` tool from [Build your first MCP server for Claude](/docs/connectors/building/quickstart.md) a small UI that draws each die and has a **Roll again** button, by adding about 50 lines to the same `server.mjs` and no build tooling. At the end your server advertises the UI the way an MCP Apps host expects, and you've checked that from the command line. +An [MCP App](https://claude.com/docs/connectors/building/mcp-apps/getting-started.md) is interactive UI that your MCP server renders inside a Claude conversation, such as an interactive chart or map. In this quickstart you give the `roll_dice` tool from [Build your first MCP server for Claude](https://claude.com/docs/connectors/building/quickstart.md) a small UI that draws each die and has a **Roll again** button, by adding about 50 lines to the same `server.mjs` and no build tooling. At the end your server advertises the UI the way an MCP Apps host expects, and you've checked that from the command line. This quickstart is for developers who finished the first quickstart and have its server on their machine. It stops at what you can verify locally: seeing the UI render needs the server hosted where Claude can reach it, which the last section covers. > [!NOTE] > -> * If you haven't built the quickstart server yet, start with [Build your first MCP server for Claude](/docs/connectors/building/quickstart.md) -> * If you want to see finished MCP Apps running in Claude first, see [Try an example MCP App in Claude Desktop](/docs/connectors/building/mcp-apps/getting-started.md#try-an-example-mcp-app-in-claude-desktop) -> * If you're adding UI to your own production server, see [Build your own MCP App](/docs/connectors/building/mcp-apps/getting-started.md#build-your-own-mcp-app) for the SDK documentation and full examples +> * If you haven't built the quickstart server yet, start with [Build your first MCP server for Claude](https://claude.com/docs/connectors/building/quickstart.md) +> * If you want to see finished MCP Apps running in Claude first, see [Try an example MCP App in Claude Desktop](https://claude.com/docs/connectors/building/mcp-apps/getting-started.md#try-an-example-mcp-app-in-claude-desktop) +> * If you're adding UI to your own production server, see [Build your own MCP App](https://claude.com/docs/connectors/building/mcp-apps/getting-started.md#build-your-own-mcp-app) for the SDK documentation and full examples ## Install the MCP Apps SDK @@ -313,14 +313,14 @@ Claude Code still works with the server after these edits, as a text-only client Rendering the UI takes a host that supports MCP Apps, such as the Claude desktop app. Claude Code calls the tool as text and doesn't render the UI. When you add a server by its URL on claude.ai or in the desktop app, Claude connects to it from Anthropic's infrastructure over the internet, so a `localhost` address isn't reachable that way. To see an MCP App render, take one of these routes: -* **Host this server and add it as a custom connector**: give the server a public HTTPS URL, or expose it through a tunnel while you iterate as [Test a local server](/docs/connectors/building/testing.md#test-a-local-server) describes. Then [add it by URL](/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url), turn the connector on in a chat, and ask Claude to roll dice. If the tool runs but no UI appears, [Troubleshoot MCP Apps](/docs/connectors/building/mcp-apps/troubleshooting.md) lists what to check -* **Run a finished example locally in Claude Desktop**: [Try an example MCP App in Claude Desktop](/docs/connectors/building/mcp-apps/getting-started.md#try-an-example-mcp-app-in-claude-desktop) connects one of the SDK's example servers through the desktop app's configuration file, with nothing to host +* **Host this server and add it as a custom connector**: give the server a public HTTPS URL, or expose it through a tunnel while you iterate as [Test a local server](https://claude.com/docs/connectors/building/testing.md#test-a-local-server) describes. Then [add it by URL](https://claude.com/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url), turn the connector on in a chat, and ask Claude to roll dice. If the tool runs but no UI appears, [Troubleshoot MCP Apps](https://claude.com/docs/connectors/building/mcp-apps/troubleshooting.md) lists what to check +* **Run a finished example locally in Claude Desktop**: [Try an example MCP App in Claude Desktop](https://claude.com/docs/connectors/building/mcp-apps/getting-started.md#try-an-example-mcp-app-in-claude-desktop) connects one of the SDK's example servers through the desktop app's configuration file, with nothing to host -Before you host this server for other people, add authentication, because as written it lets anyone who can reach it call its tools. [Authentication for connectors](/docs/connectors/building/authentication.md) covers the options. +Before you host this server for other people, add authentication, because as written it lets anyone who can reach it call its tools. [Authentication for connectors](https://claude.com/docs/connectors/building/authentication.md) covers the options. ## Next steps -* [Design guidelines](/docs/connectors/building/mcp-apps/design-guidelines.md): choose a display mode and use Claude's style variables so the UI looks native in the conversation -* [Set `ui.domain` for Claude](/docs/connectors/building/mcp-apps/getting-started#set-ui-domain-for-claude): give the UI a stable sandbox origin, which it needs if it runs its own OAuth flow -* [Troubleshoot MCP Apps](/docs/connectors/building/mcp-apps/troubleshooting.md): open developer tools in Claude and fix a UI that doesn't appear -* [Submit a connector](/docs/connectors/building/submission.md): list the server in the directory, including the screenshots an MCP App listing needs +* [Design guidelines](https://claude.com/docs/connectors/building/mcp-apps/design-guidelines.md): choose a display mode and use Claude's style variables so the UI looks native in the conversation +* [Set `ui.domain` for Claude](https://claude.com/docs/connectors/building/mcp-apps/getting-started#set-ui-domain-for-claude): give the UI a stable sandbox origin, which it needs if it runs its own OAuth flow +* [Troubleshoot MCP Apps](https://claude.com/docs/connectors/building/mcp-apps/troubleshooting.md): open developer tools in Claude and fix a UI that doesn't appear +* [Submit a connector](https://claude.com/docs/connectors/building/submission.md): list the server in the directory, including the screenshots an MCP App listing needs diff --git a/content/claude/connectors/building/mcp-apps/transparent-theming.md b/content/claude/connectors/building/mcp-apps/transparent-theming.md index a274cf4cd..b76de8fd9 100644 --- a/content/claude/connectors/building/mcp-apps/transparent-theming.md +++ b/content/claude/connectors/building/mcp-apps/transparent-theming.md @@ -6,7 +6,7 @@ > Make your MCP App's background transparent and style it with Claude's host style variables so it blends into the conversation in light and dark mode. -Claude renders MCP Apps inside a sandboxed iframe, and every frame between your widget and the chat surface already has a transparent background so the conversation can show through. If you leave your own background transparent and style text and borders with the host's [style variables](/docs/connectors/building/mcp-apps/design-guidelines.md#style-variables), your app looks like part of the conversation rather than an embedded box. It also follows the user's light or dark mode automatically. +Claude renders MCP Apps inside a sandboxed iframe, and every frame between your widget and the chat surface already has a transparent background so the conversation can show through. If you leave your own background transparent and style text and borders with the host's [style variables](https://claude.com/docs/connectors/building/mcp-apps/design-guidelines.md#style-variables), your app looks like part of the conversation rather than an embedded box. It also follows the user's light or dark mode automatically. This page is for developers who already have an MCP App rendering in Claude and want it to match the host theme. The snippets assume you have registered a UI resource and created an `App` instance from `@modelcontextprotocol/ext-apps`. If you haven't, start with the [SDK Quickstart](https://modelcontextprotocol.github.io/ext-apps/api/documents/Quickstart.html). To match the host theme, [let the host background show through](#let-the-host-background-show-through), then [apply the host style variables](#apply-the-host-style-variables) at runtime. @@ -72,7 +72,7 @@ Claude passes a [`hostContext`](https://modelcontextprotocol.github.io/ext-apps/ | `styles.variables` | CSS custom properties: `--color-background-*`, `--color-text-*`, `--color-border-*`, `--color-ring-*`, `--font-*`, `--border-radius-*`, `--border-width-*` | | `styles.css.fonts` | `@font-face` rules for Anthropic Sans, served from `https://assets.claude.ai` | -The [Style variables](/docs/connectors/building/mcp-apps/design-guidelines.md#style-variables) section of the design guidelines lists every variable and its light- and dark-mode value. +The [Style variables](https://claude.com/docs/connectors/building/mcp-apps/design-guidelines.md#style-variables) section of the design guidelines lists every variable and its light- and dark-mode value. ### Read `hostContext` and listen for changes @@ -154,7 +154,7 @@ For `applyHostFonts` to load the `@font-face` files, your resource's [`_meta.ui. ## Next steps -* [Style variables](/docs/connectors/building/mcp-apps/design-guidelines.md#style-variables): the full variable palette in the design guidelines -* [Visual design](/docs/connectors/building/mcp-apps/design-guidelines.md#visual-design): usage guidance for color, typography, and spacing in the design guidelines -* [Supersede older widget instances](/docs/connectors/building/mcp-apps/instance-supersession.md): keep only the newest copy of your widget active in a conversation +* [Style variables](https://claude.com/docs/connectors/building/mcp-apps/design-guidelines.md#style-variables): the full variable palette in the design guidelines +* [Visual design](https://claude.com/docs/connectors/building/mcp-apps/design-guidelines.md#visual-design): usage guidance for color, typography, and spacing in the design guidelines +* [Supersede older widget instances](https://claude.com/docs/connectors/building/mcp-apps/instance-supersession.md): keep only the newest copy of your widget active in a conversation * [SDK API reference](https://modelcontextprotocol.github.io/ext-apps/api/index.html): `App`, `McpUiHostContext`, and `McpUiResourceMeta` diff --git a/content/claude/connectors/building/mcp-apps/troubleshooting.md b/content/claude/connectors/building/mcp-apps/troubleshooting.md index 7ed3b1a77..fbb6c7e3c 100644 --- a/content/claude/connectors/building/mcp-apps/troubleshooting.md +++ b/content/claude/connectors/building/mcp-apps/troubleshooting.md @@ -111,7 +111,7 @@ If your app loads on desktop and web but fails to fetch scripts, images, or API WebKit on iOS, in both Safari and the Claude iOS app, omits the `Referer` header on cross-origin subresource requests as part of its tracking prevention, per WebKit bugs [206521](https://bugs.webkit.org/show_bug.cgi?id=206521) and [179053](https://bugs.webkit.org/show_bug.cgi?id=179053#c8). A server that requires a `Referer` to allow the request rejects iOS traffic even though the same app works elsewhere. -To fix the iOS failures, allowlist on the `Origin` header instead of `Referer`, because WebKit does send `Origin`. Requests from your app carry an `Origin` of `{hash}.claudemcpcontent.com`, and [Set `ui.domain` for Claude](/docs/connectors/building/mcp-apps/getting-started#set-ui-domain-for-claude) shows how to compute the hash for your server URL. Configure your infrastructure to allow requests whose `Origin` matches `*.claudemcpcontent.com` and return a corresponding `Access-Control-Allow-Origin` header. +To fix the iOS failures, allowlist on the `Origin` header instead of `Referer`, because WebKit does send `Origin`. Requests from your app carry an `Origin` of `{hash}.claudemcpcontent.com`, and [Set `ui.domain` for Claude](https://claude.com/docs/connectors/building/mcp-apps/getting-started#set-ui-domain-for-claude) shows how to compute the hash for your server URL. Configure your infrastructure to allow requests whose `Origin` matches `*.claudemcpcontent.com` and return a corresponding `Access-Control-Allow-Origin` header. > [!NOTE] > @@ -132,10 +132,10 @@ A mismatch usually has one of these causes: * **The URL you hashed differs from the URL Claude connects to**: the hash covers the full URL string including scheme, path, and any trailing slash, so `https://example.com/mcp` and `https://example.com/mcp/` produce different values. Hash the exact URL configured in **Customize > Connectors** * **The connector is a local stdio server**: local connectors have no URL to hash, so `ui.domain` isn't available for them. Remove the field, or deploy the server as a remote connector to use a stable origin -[Set `ui.domain` for Claude](/docs/connectors/building/mcp-apps/getting-started#set-ui-domain-for-claude) explains how the origin is used across platforms. +[Set `ui.domain` for Claude](https://claude.com/docs/connectors/building/mcp-apps/getting-started#set-ui-domain-for-claude) explains how the origin is used across platforms. ## Next steps -* [Set `ui.domain` for Claude](/docs/connectors/building/mcp-apps/getting-started#set-ui-domain-for-claude): compute the sandbox origin Claude expects for your app -* [Design guidelines](/docs/connectors/building/mcp-apps/design-guidelines.md#mobile-guidelines): mobile layout, safe areas, and sizing rules that prevent clipped or invisible content -* [Get started with MCP Apps](/docs/connectors/building/mcp-apps/getting-started.md#build-your-own-mcp-app): SDK quickstart, examples, and agent skills +* [Set `ui.domain` for Claude](https://claude.com/docs/connectors/building/mcp-apps/getting-started#set-ui-domain-for-claude): compute the sandbox origin Claude expects for your app +* [Design guidelines](https://claude.com/docs/connectors/building/mcp-apps/design-guidelines.md#mobile-guidelines): mobile layout, safe areas, and sizing rules that prevent clipped or invisible content +* [Get started with MCP Apps](https://claude.com/docs/connectors/building/mcp-apps/getting-started.md#build-your-own-mcp-app): SDK quickstart, examples, and agent skills diff --git a/content/claude/connectors/building/mcp.md b/content/claude/connectors/building/mcp.md index ef181e9ce..0abbc41f0 100644 --- a/content/claude/connectors/building/mcp.md +++ b/content/claude/connectors/building/mcp.md @@ -6,9 +6,9 @@ > Get oriented to the Model Context Protocol, the open standard behind Claude's connectors: local and remote servers, tools, resources, and prompts. -The Model Context Protocol (MCP) is an open standard created by Anthropic for AI applications to connect with tools and data sources. When you build an MCP server and someone adds it to Claude, they see it as a [connector](/docs/connectors/getting-started.md). +The Model Context Protocol (MCP) is an open standard created by Anthropic for AI applications to connect with tools and data sources. When you build an MCP server and someone adds it to Claude, they see it as a [connector](https://claude.com/docs/connectors/getting-started.md). -This page is a short orientation for developers who are new to MCP. The [MCP documentation](https://modelcontextprotocol.io/docs) is the source of truth for building MCP servers, and [Build an MCP server for Claude](/docs/connectors/building/index.md) lists what Claude's client supports once you're ready to build. +This page is a short orientation for developers who are new to MCP. The [MCP documentation](https://modelcontextprotocol.io/docs) is the source of truth for building MCP servers, and [Build an MCP server for Claude](https://claude.com/docs/connectors/building/index.md) lists what Claude's client supports once you're ready to build. ## Understand what MCP provides @@ -69,11 +69,11 @@ The [MCP documentation](https://modelcontextprotocol.io/docs) is the source of t * [TypeScript SDK](https://github.com/modelcontextprotocol/typescript-sdk) and [Python SDK](https://github.com/modelcontextprotocol/python-sdk) * Cloudflare hosting support with OAuth -Organizations can [submit MCP servers](/docs/connectors/building/submission.md) to the Connectors Directory for broader availability. +Organizations can [submit MCP servers](https://claude.com/docs/connectors/building/submission.md) to the Connectors Directory for broader availability. ## Next steps -* [Build an MCP server for Claude](/docs/connectors/building/index.md): the transports, authentication, protocol features, and limits Claude's client supports -* [Authentication for connectors](/docs/connectors/building/authentication.md): OAuth requirements and supported auth types +* [Build an MCP server for Claude](https://claude.com/docs/connectors/building/index.md): the transports, authentication, protocol features, and limits Claude's client supports +* [Authentication for connectors](https://claude.com/docs/connectors/building/authentication.md): OAuth requirements and supported auth types * [MCP in Claude Code](https://code.claude.com/docs/en/mcp): connect MCP servers to Claude Code from the command line -* [Submitting to the Connectors Directory](/docs/connectors/building/submission.md): review requirements and submit your connector +* [Submitting to the Connectors Directory](https://claude.com/docs/connectors/building/submission.md): review requirements and submit your connector diff --git a/content/claude/connectors/building/mcpb.md b/content/claude/connectors/building/mcpb.md index 868827ce2..8fcb67dcd 100644 --- a/content/claude/connectors/building/mcpb.md +++ b/content/claude/connectors/building/mcpb.md @@ -10,12 +10,12 @@ An MCP Bundle (`.mcpb`) is a zip archive containing a local MCP server and a `ma This page is for developers packaging a local MCP server for Claude Desktop, whether for internal use or private distribution. It covers when to choose MCPB over a remote server, building and packing the bundle, the manifest, and how users install the result. -For a directory listing, build a remote MCP server, which reaches people on every surface, or include the local server in a plugin, as [Decide what to include in your plugin](/docs/connectors/building/what-to-build.md) explains. +For a directory listing, build a remote MCP server, which reaches people on every surface, or include the local server in a plugin, as [Decide what to include in your plugin](https://claude.com/docs/connectors/building/what-to-build.md) explains. > [!NOTE] > -> * If you're building a remote server, see [Build an MCP server for Claude](/docs/connectors/building/index.md) -> * If you're deploying desktop extensions across a Team or Enterprise organization, see [Install a local connector in the desktop app](/docs/connectors/custom/add-unlisted.md#install-a-local-connector-in-the-desktop-app) +> * If you're building a remote server, see [Build an MCP server for Claude](https://claude.com/docs/connectors/building/index.md) +> * If you're deploying desktop extensions across a Team or Enterprise organization, see [Install a local connector in the desktop app](https://claude.com/docs/connectors/custom/add-unlisted.md#install-a-local-connector-in-the-desktop-app) ## Decide when to build an MCPB @@ -132,7 +132,7 @@ Define a `user_config` section in `manifest.json` and Claude Desktop automatical ## Distribute your MCPB -Users install the `.mcpb` file themselves in Claude Desktop. Desktop extension listings in the directory are deprecated, and the directory no longer accepts MCPB submissions. To distribute a local MCP server through the directory, include it in a [plugin](/docs/plugins/overview.md). +Users install the `.mcpb` file themselves in Claude Desktop. Desktop extension listings in the directory are deprecated, and the directory no longer accepts MCPB submissions. To distribute a local MCP server through the directory, include it in a [plugin](https://claude.com/docs/plugins/overview.md). ### Understand how users install your MCPB @@ -177,5 +177,5 @@ These external references cover the MCPB format, the MCP protocol, and Claude De ## Next steps -* [Install a local connector in the desktop app](/docs/connectors/custom/add-unlisted.md#install-a-local-connector-in-the-desktop-app): deploy local MCP servers for Claude Desktop across a Team or Enterprise organization -* [Submit your plugin](/docs/plugins/submit.md): list a plugin that includes your local MCP server in the directory +* [Install a local connector in the desktop app](https://claude.com/docs/connectors/custom/add-unlisted.md#install-a-local-connector-in-the-desktop-app): deploy local MCP servers for Claude Desktop across a Team or Enterprise organization +* [Submit your plugin](https://claude.com/docs/plugins/submit.md): list a plugin that includes your local MCP server in the directory diff --git a/content/claude/connectors/building/quickstart.md b/content/claude/connectors/building/quickstart.md index f974b4839..5459dc812 100644 --- a/content/claude/connectors/building/quickstart.md +++ b/content/claude/connectors/building/quickstart.md @@ -6,15 +6,15 @@ > Build a minimal MCP server with one tool in JavaScript, run it on your machine, and connect it to Claude Code so Claude calls your tool. -An MCP server is a program that gives Claude tools it can call, and people who use Claude see it as a connector. In this quickstart you write one in about 50 lines of JavaScript with no build step: a server with a single `roll_dice` tool that runs on your machine, which you then connect to [Claude Code](https://code.claude.com/docs/en/setup), Anthropic's command-line coding tool, and watch Claude call. At the end you have a working server you understand line by line, ready to grow into your own product's tools, wrap in a [plugin](/docs/plugins/quickstart.md), or host for people on claude.ai. +An MCP server is a program that gives Claude tools it can call, and people who use Claude see it as a connector. In this quickstart you write one in about 50 lines of JavaScript with no build step: a server with a single `roll_dice` tool that runs on your machine, which you then connect to [Claude Code](https://code.claude.com/docs/en/setup), Anthropic's command-line coding tool, and watch Claude call. At the end you have a working server you understand line by line, ready to grow into your own product's tools, wrap in a [plugin](https://claude.com/docs/plugins/quickstart.md), or host for people on claude.ai. This quickstart is for developers who haven't built an MCP server before and want to see every piece working before they add authentication, hosting, and real tools. > [!NOTE] > -> * If you already have a server and want to know what Claude's client supports, see [Build an MCP server for Claude](/docs/connectors/building/index.md) -> * If your server is running and you want to try it in Claude, see [Test your connector](/docs/connectors/building/testing.md) -> * If you want to package skills and an existing connector rather than write a server, see [Build your first plugin](/docs/plugins/quickstart.md) +> * If you already have a server and want to know what Claude's client supports, see [Build an MCP server for Claude](https://claude.com/docs/connectors/building/index.md) +> * If your server is running and you want to try it in Claude, see [Test your connector](https://claude.com/docs/connectors/building/testing.md) +> * If you want to package skills and an existing connector rather than write a server, see [Build your first plugin](https://claude.com/docs/plugins/quickstart.md) ## Before you begin @@ -267,10 +267,10 @@ Claude Code reached your server because both run on your machine. When someone a Once the server has a public URL, these pages cover each step: -* [Add a connector by URL](/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url): add the server to your own Claude account as a custom connector -* [Test in Claude as a custom connector](/docs/connectors/building/testing.md#test-in-claude-as-a-custom-connector): check the connection, the tool list, and a real call from a chat, including how to expose a server that's still on your machine through a tunnel -* [Authentication for connectors](/docs/connectors/building/authentication.md): add sign-in before real users connect, because this quickstart server lets anyone who can reach it call its tools -* [Publish to the directory](/docs/directory/publish.md): submit the server for review so people can find it in Claude +* [Add a connector by URL](https://claude.com/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url): add the server to your own Claude account as a custom connector +* [Test in Claude as a custom connector](https://claude.com/docs/connectors/building/testing.md#test-in-claude-as-a-custom-connector): check the connection, the tool list, and a real call from a chat, including how to expose a server that's still on your machine through a tunnel +* [Authentication for connectors](https://claude.com/docs/connectors/building/authentication.md): add sign-in before real users connect, because this quickstart server lets anyone who can reach it call its tools +* [Publish to the directory](https://claude.com/docs/directory/publish.md): submit the server for review so people can find it in Claude ## Clean up @@ -284,7 +284,7 @@ Claude Code confirms with `Removed MCP server "quickstart" from local config`. ## Next steps -* [Add an interactive UI to your MCP server](/docs/connectors/building/mcp-apps/quickstart.md): give `roll_dice` a small UI that shows the dice inside the conversation -* [Build an MCP server for Claude](/docs/connectors/building/index.md): plan a real server around what Claude's client supports, including authentication, result size limits, and timeouts -* [Test your connector](/docs/connectors/building/testing.md): add your hosted server to Claude as a custom connector and debug connection failures -* [Build your first plugin](/docs/plugins/quickstart.md): bundle your connector with a skill that teaches Claude when to use it, and submit both to the directory +* [Add an interactive UI to your MCP server](https://claude.com/docs/connectors/building/mcp-apps/quickstart.md): give `roll_dice` a small UI that shows the dice inside the conversation +* [Build an MCP server for Claude](https://claude.com/docs/connectors/building/index.md): plan a real server around what Claude's client supports, including authentication, result size limits, and timeouts +* [Test your connector](https://claude.com/docs/connectors/building/testing.md): add your hosted server to Claude as a custom connector and debug connection failures +* [Build your first plugin](https://claude.com/docs/plugins/quickstart.md): bundle your connector with a skill that teaches Claude when to use it, and submit both to the directory diff --git a/content/claude/connectors/building/review-criteria.md b/content/claude/connectors/building/review-criteria.md index 3c5608ba6..d7b6c8f39 100644 --- a/content/claude/connectors/building/review-criteria.md +++ b/content/claude/connectors/building/review-criteria.md @@ -6,11 +6,11 @@ > Check your MCP connector against what Anthropic reviewers test, including tool design, prompt-injection patterns, and functional quality, before you submit. -This checklist covers what Anthropic checks on an MCP connector submitted to the directory, organized around the most common rejection reasons so you can correct them before you submit. It's for connector authors preparing a [directory submission](/docs/connectors/building/submission.md). For the full legal text behind these criteria, see the [Software Directory Policy](https://support.claude.com/en/articles/13145358-anthropic-software-directory-policy). +This checklist covers what Anthropic checks on an MCP connector submitted to the directory, organized around the most common rejection reasons so you can correct them before you submit. It's for connector authors preparing a [directory submission](https://claude.com/docs/connectors/building/submission.md). For the full legal text behind these criteria, see the [Software Directory Policy](https://support.claude.com/en/articles/13145358-anthropic-software-directory-policy). > [!NOTE] > -> If you're submitting a plugin, see the [plugin pre-submission checklist](/docs/plugins/pre-submission-checklist.md) instead. +> If you're submitting a plugin, see the [plugin pre-submission checklist](https://claude.com/docs/plugins/pre-submission-checklist.md) instead. Work through [tool design](#design-tools-that-pass-review), [server behavior](#server-behavior-and-scope), and [what to include with your submission](#gather-what-to-include-with-your-submission), then [test every tool](#test-before-you-submit) before you open the portal. [How Anthropic reviews connectors](#understand-how-anthropic-reviews-connectors) covers the Community and Verified labels. @@ -82,19 +82,19 @@ Design tools that produce diagrams, charts, or UI mockups are allowed. Alongside the server itself, a submission carries credentials, links, and terms acknowledgments that reviewers check: * **Test credentials**: required, and they must be for a fully populated account -* **Allowed link URIs**: recommended if your server calls `ui/open-link`. Declared HTTPS origins and custom URI schemes open without a confirmation prompt, and anything else still prompts the user. See [Allowed link URIs](/docs/connectors/building/submission.md#allowed-link-uris) +* **Allowed link URIs**: recommended if your server calls `ui/open-link`. Declared HTTPS origins and custom URI schemes open without a confirmation prompt, and anything else still prompts the user. See [Allowed link URIs](https://claude.com/docs/connectors/building/submission.md#allowed-link-uris) * **Public documentation**: required by your publish date. A blog post or help-center article is sufficient, and you can share docs privately with Anthropic during review ## Test before you submit -Exercise every tool through the [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector) and as a [custom connector in Claude](/docs/connectors/building/testing.md) before you submit. The portal's **Test & launch** step asks you to confirm you've done this. +Exercise every tool through the [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector) and as a [custom connector in Claude](https://claude.com/docs/connectors/building/testing.md) before you submit. The portal's **Test & launch** step asks you to confirm you've done this. ## Understand how Anthropic reviews connectors -When you submit a server, Anthropic scans it automatically for policy compliance and, by default, lists it in the directory as a [Community connector](/docs/connectors/verification.md). Anthropic may then escalate listings flagged as highly useful to Claude users to Verified review, which is higher touch and slower, and in which reviewers run a functional test of each tool. That escalation is assessed automatically, and you don't need to take any action. Every server in the directory must meet the criteria on this page, whichever label it carries. The label is a quality signal shown to users and doesn't change how your connector runs once connected. +When you submit a server, Anthropic scans it automatically for policy compliance and, by default, lists it in the directory as a [Community connector](https://claude.com/docs/connectors/verification.md). Anthropic may then escalate listings flagged as highly useful to Claude users to Verified review, which is higher touch and slower, and in which reviewers run a functional test of each tool. That escalation is assessed automatically, and you don't need to take any action. Every server in the directory must meet the criteria on this page, whichever label it carries. The label is a quality signal shown to users and doesn't change how your connector runs once connected. ## Next steps -* [Submit a connector](/docs/connectors/building/submission.md): what the developer portal asks for at each step -* [Connector verification](/docs/connectors/verification.md): what the Community and Verified labels mean to the people who install your connector -* [Manage your directory listing](/docs/connectors/building/managing-your-listing.md): track review status and reviewer feedback after you submit +* [Submit a connector](https://claude.com/docs/connectors/building/submission.md): what the developer portal asks for at each step +* [Connector verification](https://claude.com/docs/connectors/verification.md): what the Community and Verified labels mean to the people who install your connector +* [Manage your directory listing](https://claude.com/docs/connectors/building/managing-your-listing.md): track review status and reviewer feedback after you submit diff --git a/content/claude/connectors/building/submission.md b/content/claude/connectors/building/submission.md index 457403853..f5e861ad7 100644 --- a/content/claude/connectors/building/submission.md +++ b/content/claude/connectors/building/submission.md @@ -6,26 +6,26 @@ > Submit a remote MCP server or MCP App to the Connectors Directory through the developer portal: requirements, screenshot specs, and what each step asks for. -You submit a remote MCP server to the [Connectors Directory](/docs/connectors/directory.md) through the developer portal at [claude.ai/directory/manage](https://claude.ai/directory/manage), where you choose **MCP connector**. +You submit a remote MCP server to the [Connectors Directory](https://claude.com/docs/connectors/directory.md) through the developer portal at [claude.ai/directory/manage](https://claude.ai/directory/manage), where you choose **MCP connector**. -This page is for connector authors who are ready to submit. It starts with a [checklist](#pre-submission-checklist-for-connectors), then covers [where to submit your connector](#choose-where-to-submit-your-connector), the [requirements every submission must meet](#meet-the-submission-requirements), and [what to have ready for each step of the portal](#submit-through-the-developer-portal). [Connector review criteria](/docs/connectors/building/review-criteria.md) explains what reviewers look for in your tools and server, so read it alongside the checklist. +This page is for connector authors who are ready to submit. It starts with a [checklist](#pre-submission-checklist-for-connectors), then covers [where to submit your connector](#choose-where-to-submit-your-connector), the [requirements every submission must meet](#meet-the-submission-requirements), and [what to have ready for each step of the portal](#submit-through-the-developer-portal). [Connector review criteria](https://claude.com/docs/connectors/building/review-criteria.md) explains what reviewers look for in your tools and server, so read it alongside the checklist. > [!NOTE] > -> If you're submitting a plugin rather than a connector, see [Submit a plugin](/docs/plugins/submit.md) instead. +> If you're submitting a plugin rather than a connector, see [Submit a plugin](https://claude.com/docs/plugins/submit.md) instead. ## Pre-submission checklist for connectors Work through this list before you open the portal. Each item links to where it is explained, and the rest of this page covers the requirements and the portal steps in detail. -* **Your server is remote and reachable over HTTPS**: the portal asks for an `https://` URL. A local server can't be submitted on its own; include it in a [plugin](/docs/plugins/submit.md) instead -* **Authentication works for Claude's client**: OAuth 2.0 if your tools act on a user's account, or no authentication for public data, as [Authentication for connectors](/docs/connectors/building/authentication.md) describes. You don't need Verified status or any separate approval for authentication to work -* **Every tool has a `title` and a `readOnlyHint` or `destructiveHint` annotation**: the portal flags tools that are missing them, and [review criteria](/docs/connectors/building/review-criteria.md#design-tools-that-pass-review) explain how reviewers read tool names and descriptions -* **You've tested it in Claude**: add the server as a [custom connector](/docs/connectors/building/testing.md#test-in-claude-as-a-custom-connector) and call each tool from a conversation; the portal's **Test & launch** step asks you to confirm this -* **You have the listing materials**: documentation URL, privacy policy URL, support contact, an icon, and for an [MCP App](/docs/connectors/building/mcp-apps/getting-started.md) the [carousel screenshots](#carousel-screenshots-for-mcp-apps) +* **Your server is remote and reachable over HTTPS**: the portal asks for an `https://` URL. A local server can't be submitted on its own; include it in a [plugin](https://claude.com/docs/plugins/submit.md) instead +* **Authentication works for Claude's client**: OAuth 2.0 if your tools act on a user's account, or no authentication for public data, as [Authentication for connectors](https://claude.com/docs/connectors/building/authentication.md) describes. You don't need Verified status or any separate approval for authentication to work +* **Every tool has a `title` and a `readOnlyHint` or `destructiveHint` annotation**: the portal flags tools that are missing them, and [review criteria](https://claude.com/docs/connectors/building/review-criteria.md#design-tools-that-pass-review) explain how reviewers read tool names and descriptions +* **You've tested it in Claude**: add the server as a [custom connector](https://claude.com/docs/connectors/building/testing.md#test-in-claude-as-a-custom-connector) and call each tool from a conversation; the portal's **Test & launch** step asks you to confirm this +* **You have the listing materials**: documentation URL, privacy policy URL, support contact, an icon, and for an [MCP App](https://claude.com/docs/connectors/building/mcp-apps/getting-started.md) the [carousel screenshots](#carousel-screenshots-for-mcp-apps) * **You have a test account for reviewers**: credentials for a fully populated account, which you enter in the portal and which only reviewers see -* **Your account can submit**: any paid Claude plan. See [who can submit](/docs/directory/publish.md#confirm-you-can-submit-to-the-directory) -* **If a plugin of yours points at this server, submit the server anyway**: the connector listing gives your organization the server's details, authentication configuration, and dashboard, and lets you pair it with the plugin. See [Submit your plugin, and your MCP server as a connector](/docs/directory/publish.md#submit-your-plugin-and-your-mcp-server-as-a-connector) +* **Your account can submit**: any paid Claude plan. See [who can submit](https://claude.com/docs/directory/publish.md#confirm-you-can-submit-to-the-directory) +* **If a plugin of yours points at this server, submit the server anyway**: the connector listing gives your organization the server's details, authentication configuration, and dashboard, and lets you pair it with the plugin. See [Submit your plugin, and your MCP server as a connector](https://claude.com/docs/directory/publish.md#submit-your-plugin-and-your-mcp-server-as-a-connector) Then open the [developer portal](https://claude.ai/directory/manage), select **Submit new**, and choose **MCP connector**. @@ -34,12 +34,12 @@ Then open the [developer portal](https://claude.ai/directory/manage), select **S A connector submission is an MCP server, and where you submit it depends on whether the server is remote or local: * **Remote MCP servers**: internet-hosted servers that provide tools and data to Claude. Submit them through the [developer portal](https://claude.ai/directory/manage) and choose **MCP connector** -* **MCP Apps**: remote MCP servers that [surface interactive UI](/docs/connectors/building/mcp-apps/getting-started.md). Submit them through the portal as remote servers, and include [carousel screenshots](#carousel-screenshots-for-mcp-apps) for the directory listing -* **Local MCP servers**: desktop extension listings in the directory are deprecated, and the directory no longer accepts local servers packaged as [MCP Bundles (MCPB)](/docs/connectors/building/mcpb.md). To distribute a local server through the directory, include it in a [plugin](/docs/plugins/submit.md) +* **MCP Apps**: remote MCP servers that [surface interactive UI](https://claude.com/docs/connectors/building/mcp-apps/getting-started.md). Submit them through the portal as remote servers, and include [carousel screenshots](#carousel-screenshots-for-mcp-apps) for the directory listing +* **Local MCP servers**: desktop extension listings in the directory are deprecated, and the directory no longer accepts local servers packaged as [MCP Bundles (MCPB)](https://claude.com/docs/connectors/building/mcpb.md). To distribute a local server through the directory, include it in a [plugin](https://claude.com/docs/plugins/submit.md) -Skills aren't a standalone submission type. Bundle them in a [plugin](/docs/plugins/submit.md). +Skills aren't a standalone submission type. Bundle them in a [plugin](https://claude.com/docs/plugins/submit.md). -Anyone on a paid Claude plan can submit through the portal. [Who can submit to the directory](/docs/directory/publish.md#confirm-you-can-submit-to-the-directory) has the plan, role, and organization requirements, which are the same for connectors and plugins. +Anyone on a paid Claude plan can submit through the portal. [Who can submit to the directory](https://claude.com/docs/directory/publish.md#confirm-you-can-submit-to-the-directory) has the plan, role, and organization requirements, which are the same for connectors and plugins. ## Meet the submission requirements @@ -101,7 +101,7 @@ Provide each entry in one of these forms: * **HTTPS origin**: `https://example.com`. Only the scheme and hostname are matched, and paths, ports, and query strings are ignored. Subdomains aren't implied, so list each one, such as `https://app.example.com` and `https://docs.example.com` * **Custom URI scheme**: `myapp:` for deep links into a native app you own. Only the scheme is matched -Every origin and scheme you list must be owned by you, the submitting organization. You may not list third-party domains or URI schemes registered to apps you don't publish. Entries you don't own are removed during review. [Open external links from MCP Apps](/docs/connectors/building/mcp-apps/external-links.md) explains how Claude matches entries and when the prompt still appears. +Every origin and scheme you list must be owned by you, the submitting organization. You may not list third-party domains or URI schemes registered to apps you don't publish. Entries you don't own are removed during review. [Open external links from MCP Apps](https://claude.com/docs/connectors/building/mcp-apps/external-links.md) explains how Claude matches entries and when the prompt still appears. ### Carousel screenshots for MCP Apps @@ -135,7 +135,7 @@ Your progress saves automatically in your browser as you move between steps, so **1. Connection** -Connect the server you're submitting, by pasting its `https://` URL or choosing a custom connector you've already added to Claude. If your users connect to different URLs, select **Users connect to different URLs** and choose **Multiple URLs** or **URL pattern**. A listing that uses one of these options can be published only once it has the **Verified** label, as [Servers with per-customer URLs](/docs/connectors/building/authentication.md#servers-with-per-customer-urls) explains. +Connect the server you're submitting, by pasting its `https://` URL or choosing a custom connector you've already added to Claude. If your users connect to different URLs, select **Users connect to different URLs** and choose **Multiple URLs** or **URL pattern**. A listing that uses one of these options can be published only once it has the **Verified** label, as [Servers with per-customer URLs](https://claude.com/docs/connectors/building/authentication.md#servers-with-per-customer-urls) explains. **2. Tools** @@ -155,7 +155,7 @@ Company name and website, plus a primary contact for review updates. **6. Authentication** -In the **How users authenticate** section, choose whether users must sign in under **Authentication requirement**, and how they sign in under **Authentication methods**. Choose **Required when the server asks** if your server starts without sign-in and only some tools need it. To have Anthropic hold your OAuth client, enter its client ID and secret here, as [Enter your OAuth client in the developer portal](/docs/connectors/building/authentication.md#enter-your-oauth-client-in-the-developer-portal) describes. [Authentication for connectors](/docs/connectors/building/authentication.md) covers each option. +In the **How users authenticate** section, choose whether users must sign in under **Authentication requirement**, and how they sign in under **Authentication methods**. Choose **Required when the server asks** if your server starts without sign-in and only some tools need it. To have Anthropic hold your OAuth client, enter its client ID and secret here, as [Enter your OAuth client in the developer portal](https://claude.com/docs/connectors/building/authentication.md#enter-your-oauth-client-in-the-developer-portal) describes. [Authentication for connectors](https://claude.com/docs/connectors/building/authentication.md) covers each option. If you chose **URL pattern** in the Connection step, Anthropic-held client credentials can't be used. If you chose **Multiple URLs**, a custom connection can't be used. @@ -177,14 +177,14 @@ Everything you've entered, for a final check before you submit. Any quality warn ## After you submit -Anthropic scans your submission automatically for policy compliance and, by default, lists it as a Community connector with no action from you. A listing that uses an option under **Users connect to different URLs** can be published only once it has the **Verified** label. Some submissions also get a review from a person, and those review times vary with queue volume. The portal is always open for new submissions. Your submission's status and any reviewer feedback appear in the portal at [claude.ai/directory/manage](https://claude.ai/directory/manage), and [Track your directory submission](/docs/directory/submission-status.md#mcp-connector-statuses) explains what each status in the portal means. [Manage your directory listing](/docs/connectors/building/managing-your-listing.md) covers reviewer feedback, listing edits, and the server health and usage metrics you get after publication. +Anthropic scans your submission automatically for policy compliance and, by default, lists it as a Community connector with no action from you. A listing that uses an option under **Users connect to different URLs** can be published only once it has the **Verified** label. Some submissions also get a review from a person, and those review times vary with queue volume. The portal is always open for new submissions. Your submission's status and any reviewer feedback appear in the portal at [claude.ai/directory/manage](https://claude.ai/directory/manage), and [Track your directory submission](https://claude.com/docs/directory/submission-status.md#mcp-connector-statuses) explains what each status in the portal means. [Manage your directory listing](https://claude.com/docs/connectors/building/managing-your-listing.md) covers reviewer feedback, listing edits, and the server health and usage metrics you get after publication. For escalations, email `mcp-review@anthropic.com`. -If a submission is stuck, [Contact Anthropic about a submission](/docs/directory/submission-status.md#contact-anthropic-about-a-submission) gives the channel for an MCP connector. +If a submission is stuck, [Contact Anthropic about a submission](https://claude.com/docs/directory/submission-status.md#contact-anthropic-about-a-submission) gives the channel for an MCP connector. ## Next steps -* [Manage your directory listing](/docs/connectors/building/managing-your-listing.md): track review status, respond to reviewer feedback, and edit your listing -* [After publishing](/docs/connectors/building/after-publishing.md): release updates to your server, and delist -* [Connector verification](/docs/connectors/verification.md#list-your-own-connector): see how a Community listing becomes Verified and what each label means to users +* [Manage your directory listing](https://claude.com/docs/connectors/building/managing-your-listing.md): track review status, respond to reviewer feedback, and edit your listing +* [After publishing](https://claude.com/docs/connectors/building/after-publishing.md): release updates to your server, and delist +* [Connector verification](https://claude.com/docs/connectors/verification.md#list-your-own-connector): see how a Community listing becomes Verified and what each label means to users diff --git a/content/claude/connectors/building/testing.md b/content/claude/connectors/building/testing.md index 4209a1604..88d019a92 100644 --- a/content/claude/connectors/building/testing.md +++ b/content/claude/connectors/building/testing.md @@ -8,23 +8,23 @@ You test an MCP server against the real Claude client by adding it to Claude as a custom connector. There is no separate staging environment, so you test in production. Custom connectors use the exact same runtime as directory connectors, and what works as a custom connector will work after publication. -This page is for developers with a running server, whether it's deployed or still on your machine. It covers adding the server to Claude, validating it with MCP Inspector, detecting Claude as the client, and preparing test credentials for directory review. If a connection fails while you test, [Troubleshoot your connector](/docs/connectors/building/troubleshooting.md) walks through each error message. +This page is for developers with a running server, whether it's deployed or still on your machine. It covers adding the server to Claude, validating it with MCP Inspector, detecting Claude as the client, and preparing test credentials for directory review. If a connection fails while you test, [Troubleshoot your connector](https://claude.com/docs/connectors/building/troubleshooting.md) walks through each error message. ## Test in Claude as a custom connector -To test your server the way users will reach it, add it to your own Claude account as a custom connector by its URL. Any Claude account can do this, on Free, Pro, Max, Team, or Enterprise; [Add a connector that isn't in the directory](/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url) has the steps for each plan, starting from [**Customize > Connectors**](https://claude.ai/customize/connectors). +To test your server the way users will reach it, add it to your own Claude account as a custom connector by its URL. Any Claude account can do this, on Free, Pro, Max, Team, or Enterprise; [Add a connector that isn't in the directory](https://claude.com/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url) has the steps for each plan, starting from [**Customize > Connectors**](https://claude.ai/customize/connectors). Once the connector is added, check these: * **The connection**: the connector shows **Connected** under **Your connectors**. If it shows **Connect** or **Reconnect** instead, sign-in didn't finish, and [Debug connection failures](#debug-connection-failures) covers the usual causes * **Your tools**: open the connector's page and look under **Tool permissions**. Every tool your server advertises should be listed with the name and description you gave it, because those are what Claude reads when it decides to call a tool -* **A real call**: in a chat, turn the connector on from **+ > Connectors**, ask for something that needs one of your tools, and approve the call when Claude asks. Confirm on your server that the request arrived with the arguments you expected, and in Claude that the result reads well. [Use the connector in a conversation](/docs/connectors/getting-started.md#use-the-connector-in-a-conversation) shows what the user sees at each point +* **A real call**: in a chat, turn the connector on from **+ > Connectors**, ask for something that needs one of your tools, and approve the call when Claude asks. Confirm on your server that the request arrived with the arguments you expected, and in Claude that the result reads well. [Use the connector in a conversation](https://claude.com/docs/connectors/getting-started.md#use-the-connector-in-a-conversation) shows what the user sees at each point ### Test a local server Claude reaches your server from Anthropic's infrastructure, so a server running on your machine needs a public URL. Expose it with a tunnel such as [Cloudflare Tunnel](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/) or `ngrok`, then add the tunnel URL as a custom connector. This is the recommended pattern for iterating on MCP Apps as well. -If your server uses the TypeScript SDK's `createMcpExpressApp()`, as the [quickstart server](/docs/connectors/building/quickstart.md) does, its DNS rebinding protection accepts only `localhost`, `127.0.0.1`, and `[::1]` in the `Host` header. A request that arrives with the tunnel's hostname in that header gets `403` with `Invalid Host: `, and the connection fails. While you test through the tunnel, pass the tunnel's hostname in `allowedHosts`, replacing `abc123.example.com` with your tunnel's hostname: +If your server uses the TypeScript SDK's `createMcpExpressApp()`, as the [quickstart server](https://claude.com/docs/connectors/building/quickstart.md) does, its DNS rebinding protection accepts only `localhost`, `127.0.0.1`, and `[::1]` in the `Host` header. A request that arrives with the tunnel's hostname in that header gets `403` with `Invalid Host: `, and the connection fails. While you test through the tunnel, pass the tunnel's hostname in `allowedHosts`, replacing `abc123.example.com` with your tunnel's hostname: ```js theme={null} const app = createMcpExpressApp({ allowedHosts: ['localhost', '127.0.0.1', 'abc123.example.com'] }); @@ -62,16 +62,16 @@ Directory submission requires test credentials. Provide a fully populated accoun Use server-side logging on your end and the MCP Inspector to diagnose connection failures. An `initialize` timeout commonly has one of these causes: -* **Slow OAuth endpoints**: keep discovery, registration, and token responses under ten seconds, as described in [endpoint latency](/docs/connectors/building/authentication.md#endpoint-latency) +* **Slow OAuth endpoints**: keep discovery, registration, and token responses under ten seconds, as described in [endpoint latency](https://claude.com/docs/connectors/building/authentication.md#endpoint-latency) * **Strict `Origin`-header validation**: an overly strict check rejects Anthropic's requests * **Firewalls**: a firewall drops Anthropic's egress traffic -If your infrastructure logs show `403 Forbidden` responses your application didn't generate, your CDN or WAF is likely blocking Anthropic's traffic. See [firewall or WAF blocks traffic from Anthropic](/docs/connectors/building/troubleshooting.md#firewall-or-waf-blocks-traffic-from-anthropic) for the fix. +If your infrastructure logs show `403 Forbidden` responses your application didn't generate, your CDN or WAF is likely blocking Anthropic's traffic. See [firewall or WAF blocks traffic from Anthropic](https://claude.com/docs/connectors/building/troubleshooting.md#firewall-or-waf-blocks-traffic-from-anthropic) for the fix. -For a structured walkthrough of the "Couldn't reach the MCP server" and "Authorization failed" errors, see [Troubleshoot your connector](/docs/connectors/building/troubleshooting.md). It includes DNS resolution checks, OAuth discovery diagnostics, and how to find the `ofid_` reference ID to include in a support request. +For a structured walkthrough of the "Couldn't reach the MCP server" and "Authorization failed" errors, see [Troubleshoot your connector](https://claude.com/docs/connectors/building/troubleshooting.md). It includes DNS resolution checks, OAuth discovery diagnostics, and how to find the `ofid_` reference ID to include in a support request. ## Next steps -* [Troubleshoot your connector](/docs/connectors/building/troubleshooting.md): diagnose each error message Claude shows for a failed connection or tool call -* [Plugin structure and testing](/docs/plugins/build.md): bundle your tested connector with skills so people install both together -* [Publish to the directory](/docs/directory/publish.md): submit your connector for review and listing +* [Troubleshoot your connector](https://claude.com/docs/connectors/building/troubleshooting.md): diagnose each error message Claude shows for a failed connection or tool call +* [Plugin structure and testing](https://claude.com/docs/plugins/build.md): bundle your tested connector with skills so people install both together +* [Publish to the directory](https://claude.com/docs/directory/publish.md): submit your connector for review and listing diff --git a/content/claude/connectors/building/troubleshooting.md b/content/claude/connectors/building/troubleshooting.md index bd538eecd..f713ecdbf 100644 --- a/content/claude/connectors/building/troubleshooting.md +++ b/content/claude/connectors/building/troubleshooting.md @@ -6,7 +6,7 @@ > Diagnose and resolve common connection, authorization, and tool-call failures for custom and directory MCP connectors -These errors appear in Claude, on claude.ai or in the desktop app, when someone uses your MCP server as a connector: either when they select **Connect** and sign in, or later when Claude calls one of your tools in a conversation. You usually meet them first yourself while [testing your server as a custom connector](/docs/connectors/building/testing.md#test-in-claude-as-a-custom-connector) before you submit it, and the same messages are what your users see after it's listed. Each message covers several causes on your side. +These errors appear in Claude, on claude.ai or in the desktop app, when someone uses your MCP server as a connector: either when they select **Connect** and sign in, or later when Claude calls one of your tools in a conversation. You usually meet them first yourself while [testing your server as a custom connector](https://claude.com/docs/connectors/building/testing.md#test-in-claude-as-a-custom-connector) before you submit it, and the same messages are what your users see after it's listed. Each message covers several causes on your side. This page is for the developer of the MCP server. Start with the section for the message Claude showed: @@ -40,7 +40,7 @@ These setups commonly produce a non-routable address: **How to check:** Run `dig +short your-server.example.com` from a machine outside your network, or use a public DNS lookup service. Every returned address must be globally routable. -**How to fix:** Expose your server through a publicly routable endpoint, such as a cloud host with a public IP, a public reverse proxy, or a tunnel. See [test a local server](/docs/connectors/building/testing.md#test-a-local-server) for the recommended tunnel setup. +**How to fix:** Expose your server through a publicly routable endpoint, such as a cloud host with a public IP, a public reverse proxy, or a tunnel. See [test a local server](https://claude.com/docs/connectors/building/testing.md#test-a-local-server) for the recommended tunnel setup. ### Firewall or WAF blocks traffic from Anthropic @@ -65,8 +65,8 @@ The dropped `Authorization` header on a redirect also explains the common report If your server requires authentication, Claude performs OAuth discovery before it can connect. A discovery failure can surface as "Couldn't reach" even though your MCP endpoint itself is reachable, or as a sign-in that redirects to `/authorize` on your MCP server's host and fails there. The redirect happens when Claude can't read your [RFC 9728](https://www.rfc-editor.org/rfc/rfc9728) protected resource metadata and falls back to treating your MCP server's origin as the authorization server, so the browser opens a sign-in page that doesn't exist on your server. These are the most common causes: * **Discovery metadata returns 404**: if your `401` response doesn't include a `WWW-Authenticate` header with a `resource_metadata` pointer, Claude looks for protected resource metadata and authorization server metadata at the standard `/.well-known/` paths on your MCP server's origin. If those paths return `404` and you haven't pointed Claude elsewhere, Claude can't locate your authorization server -* **No way to register a client**: Claude needs one of [RFC 7591 dynamic client registration](https://www.rfc-editor.org/rfc/rfc7591) (a `registration_endpoint` in your authorization server metadata), [Client ID Metadata Documents](/docs/connectors/building/authentication.md#dcr-and-cimd-details) (`"client_id_metadata_document_supported": true`), or a pre-registered client. Without any of these, Claude can't obtain a client identity. See [supported authentication types](/docs/connectors/building/authentication.md#supported-authentication-types) -* **Authorization server is on a different host than the MCP server**: Claude discovers protected resource metadata from your MCP server, then makes a second round of discovery requests against the authorization server host listed in `authorization_servers`. If that host is behind a different CDN or WAF, it must also be reachable from Anthropic's egress range. See [Serve discovery metadata](/docs/connectors/building/authentication.md#serve-discovery-metadata) +* **No way to register a client**: Claude needs one of [RFC 7591 dynamic client registration](https://www.rfc-editor.org/rfc/rfc7591) (a `registration_endpoint` in your authorization server metadata), [Client ID Metadata Documents](https://claude.com/docs/connectors/building/authentication.md#dcr-and-cimd-details) (`"client_id_metadata_document_supported": true`), or a pre-registered client. Without any of these, Claude can't obtain a client identity. See [supported authentication types](https://claude.com/docs/connectors/building/authentication.md#supported-authentication-types) +* **Authorization server is on a different host than the MCP server**: Claude discovers protected resource metadata from your MCP server, then makes a second round of discovery requests against the authorization server host listed in `authorization_servers`. If that host is behind a different CDN or WAF, it must also be reachable from Anthropic's egress range. See [Serve discovery metadata](https://claude.com/docs/connectors/building/authentication.md#serve-discovery-metadata) * **A proxy or hosting platform alters the discovery response**: a layer in front of your server can rename or drop the `WWW-Authenticate` header, or answer `403` on the `/.well-known/` paths before the request reaches your application. Check the response at the deployed edge with `curl` from a public network, not with a tool that runs inside your platform **How to check:** From a public network, request each discovery document: @@ -90,8 +90,8 @@ This error usually appears after the OAuth flow has started. These are the most * **Issuer mismatch**: the `issuer` value in your authorization server metadata must match the issuer that signs your tokens. If your tokens come from a third-party identity provider but your metadata advertises a different issuer URL, validation can fail * **Audience mismatch**: the [MCP authorization spec](https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization#token-handling) requires your server to verify each access token was issued for it. Claude sends the [RFC 8707](https://www.rfc-editor.org/rfc/rfc8707) `resource` parameter on authorization and token requests, set to the canonical form of your MCP server URL, including any path component. The canonical form has a lowercase scheme and host, no trailing slash, no fragment, and no default port. Your authorization server should issue tokens with that audience, and your MCP server should accept the canonical value when checking `aud` rather than doing a strict byte-for-byte comparison against what the user typed. Or use whatever audience-binding mechanism your token format supports, as long as it confirms the token was minted for your server and not another service * **PKCE not supported**: Claude includes a PKCE `code_challenge` with `code_challenge_method=S256` in every authorization request. If your authorization server doesn't implement S256 PKCE, the flow fails at the token endpoint. The [MCP authorization spec](https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization#authorization-code-protection) also requires authorization servers to advertise `"code_challenge_methods_supported": ["S256"]` so spec-compliant clients can verify support before starting the flow -* **Refresh failures**: use RFC 6749-compliant error codes when a refresh token expires. See [token refresh](/docs/connectors/building/authentication.md#token-refresh) -* **Slow token endpoint**: Claude waits up to 10 seconds for your `/token` response. If no response bytes arrive in that window, the flow fails here even if your server eventually issues the token. Check the end-to-end latency of your token handler and any proxy or gateway in front of it. See [endpoint latency](/docs/connectors/building/authentication.md#endpoint-latency) +* **Refresh failures**: use RFC 6749-compliant error codes when a refresh token expires. See [token refresh](https://claude.com/docs/connectors/building/authentication.md#token-refresh) +* **Slow token endpoint**: Claude waits up to 10 seconds for your `/token` response. If no response bytes arrive in that window, the flow fails here even if your server eventually issues the token. Check the end-to-end latency of your token handler and any proxy or gateway in front of it. See [endpoint latency](https://claude.com/docs/connectors/building/authentication.md#endpoint-latency) * **Your server URL redirects to a different host**: when the URL you registered redirects to another hostname, Claude drops the `Authorization` header as it follows the redirect, the redirect target returns `401`, and the connection fails with this message. See [Your server URL redirects to a different host](#your-server-url-redirects-to-a-different-host) for how to find and fix the redirect ### Microsoft Entra ID rejects the resource value @@ -164,7 +164,7 @@ Confirm `/.well-known/oauth-protected-resource` returns `200` with valid JSON, a **6. Cross-host hint** -If your authorization server is on a different host than your MCP server, confirm your protected resource metadata's `authorization_servers` field points at it, and that the authorization server's host is reachable from Anthropic's egress range and answers `/.well-known/openid-configuration` or `/.well-known/oauth-authorization-server`. See [Serve discovery metadata](/docs/connectors/building/authentication.md#serve-discovery-metadata). +If your authorization server is on a different host than your MCP server, confirm your protected resource metadata's `authorization_servers` field points at it, and that the authorization server's host is reachable from Anthropic's egress range and answers `/.well-known/openid-configuration` or `/.well-known/oauth-authorization-server`. See [Serve discovery metadata](https://claude.com/docs/connectors/building/authentication.md#serve-discovery-metadata). **7. Collect the reference ID** @@ -182,7 +182,7 @@ Include that ID, your server URL, and what your server-side logs show during the ## Related resources -* [Authentication for connectors](/docs/connectors/building/authentication.md): OAuth requirements and supported auth types -* [Lazy authentication](/docs/connectors/building/lazy-authentication.md): the `401` and `WWW-Authenticate` discovery handshake -* [Test your connector](/docs/connectors/building/testing.md): how to test your server before publishing +* [Authentication for connectors](https://claude.com/docs/connectors/building/authentication.md): OAuth requirements and supported auth types +* [Lazy authentication](https://claude.com/docs/connectors/building/lazy-authentication.md): the `401` and `WWW-Authenticate` discovery handshake +* [Test your connector](https://claude.com/docs/connectors/building/testing.md): how to test your server before publishing * [IP address reference](https://platform.claude.com/docs/en/api/ip-addresses): Anthropic's published IP ranges for allowlisting diff --git a/content/claude/connectors/building/what-to-build.md b/content/claude/connectors/building/what-to-build.md index bfa504df1..5040f1308 100644 --- a/content/claude/connectors/building/what-to-build.md +++ b/content/claude/connectors/building/what-to-build.md @@ -15,16 +15,16 @@ When you build for people who use Claude, you build a plugin. A plugin can packa A plugin with only a connector or only skills is complete. -This page is for developers deciding which of those pieces their plugin needs. Once you've decided, [Plugin structure and testing](/docs/plugins/build.md), [Build an MCP server for Claude](/docs/connectors/building/index.md), and [Publish to the directory](/docs/directory/publish.md) cover the work. +This page is for developers deciding which of those pieces their plugin needs. Once you've decided, [Plugin structure and testing](https://claude.com/docs/plugins/build.md), [Build an MCP server for Claude](https://claude.com/docs/connectors/building/index.md), and [Publish to the directory](https://claude.com/docs/directory/publish.md) cover the work. > [!NOTE] > -> * If you're choosing what to add to your own Claude rather than what to build, see [Connectors, skills, and plugins](/docs/extend/overview.md), which compares the three from the user's side -> * If you're building for your own organization and not listing publicly, the same decisions apply, and you distribute the result as a [custom connector](/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url) and an [organization plugin](/docs/plugins/admin.md) instead of through the directory +> * If you're choosing what to add to your own Claude rather than what to build, see [Connectors, skills, and plugins](https://claude.com/docs/extend/overview.md), which compares the three from the user's side +> * If you're building for your own organization and not listing publicly, the same decisions apply, and you distribute the result as a [custom connector](https://claude.com/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url) and an [organization plugin](https://claude.com/docs/plugins/admin.md) instead of through the directory ## Reach your product with an MCP connector -Include an MCP connector when Claude needs to read from or act in your product or data. The connector points at a remote MCP server that you build and host, with [OAuth sign-in](/docs/connectors/building/authentication.md) if your tools act on the user's own account. [Build an MCP server for Claude](/docs/connectors/building/index.md) covers the server, and [Build your first MCP server for Claude](/docs/connectors/building/quickstart.md) is the place to start if you haven't written one. +Include an MCP connector when Claude needs to read from or act in your product or data. The connector points at a remote MCP server that you build and host, with [OAuth sign-in](https://claude.com/docs/connectors/building/authentication.md) if your tools act on the user's own account. [Build an MCP server for Claude](https://claude.com/docs/connectors/building/index.md) covers the server, and [Build your first MCP server for Claude](https://claude.com/docs/connectors/building/quickstart.md) is the place to start if you haven't written one. Once the server is live, people can use your product in chat on web, desktop, and mobile, in Cowork, and in Claude Code. Tools you add to the server later reach every plugin that references it without a new plugin release. @@ -43,14 +43,14 @@ A connector with a few well-named tools that Claude can use without guidance may Commands, agents, and UI are optional pieces, and each fits a particular need: * **Commands**: named actions people run themselves, such as `/your-plugin:weekly-report`, for tasks they start deliberately rather than describe -* **Agents**: specialists Claude can delegate part of a task to. Cowork and Claude Code run them; chat doesn't, as [Plugin feature support across platforms](/docs/plugins/platform-support.md) lists -* **An MCP App**: interactive UI that your connector shows in the conversation, such as a form or a chart. [Add interactive UI with MCP Apps](/docs/connectors/building/mcp-apps/getting-started.md) covers building one +* **Agents**: specialists Claude can delegate part of a task to. Cowork and Claude Code run them; chat doesn't, as [Plugin feature support across platforms](https://claude.com/docs/plugins/platform-support.md) lists +* **An MCP App**: interactive UI that your connector shows in the conversation, such as a form or a chart. [Add interactive UI with MCP Apps](https://claude.com/docs/connectors/building/mcp-apps/getting-started.md) covers building one ## Package and list the plugin Most plugins for a product include both an MCP connector and skills: the connector so Claude can reach the product, and the skills so Claude uses it the way you intend. Everything in the plugin is packaged together, so one listing gives people all of it. -When you list the plugin, submit the server too: the plugin as a plugin bundle and the server as an MCP connector. Submitting the server as a connector gives your organization the connector's listing and its dashboard, and lets you pair the two listings. [Submit your plugin, and your MCP server as a connector](/docs/directory/publish.md#submit-your-plugin-and-your-mcp-server-as-a-connector) explains the pairing. +When you list the plugin, submit the server too: the plugin as a plugin bundle and the server as an MCP connector. Submitting the server as a connector gives your organization the connector's listing and its dashboard, and lets you pair the two listings. [Submit your plugin, and your MCP server as a connector](https://claude.com/docs/directory/publish.md#submit-your-plugin-and-your-mcp-server-as-a-connector) explains the pairing. The diagram shows what the server and the plugin each give people. The server gives them your connector. The plugin adds your skills and points to that same server. @@ -62,6 +62,6 @@ If your plugin references an MCP URL that isn't in the directory, the user first ## Next steps -* [Plugin structure and testing](/docs/plugins/build.md): write the folder that packages your connector, skills, and the rest, and installs on every surface -* [Build an MCP server for Claude](/docs/connectors/building/index.md): implement the server and its authentication, and test it against Claude -* [Publish to the directory](/docs/directory/publish.md): submit the plugin, and its MCP server as a connector, from the [developer portal](https://claude.ai/directory/manage). Anyone on a paid Claude plan can submit, and on Team and Enterprise an Owner submits +* [Plugin structure and testing](https://claude.com/docs/plugins/build.md): write the folder that packages your connector, skills, and the rest, and installs on every surface +* [Build an MCP server for Claude](https://claude.com/docs/connectors/building/index.md): implement the server and its authentication, and test it against Claude +* [Publish to the directory](https://claude.com/docs/directory/publish.md): submit the plugin, and its MCP server as a connector, from the [developer portal](https://claude.ai/directory/manage). Anyone on a paid Claude plan can submit, and on Team and Enterprise an Owner submits diff --git a/content/claude/connectors/custom/add-unlisted.md b/content/claude/connectors/custom/add-unlisted.md index c3ef00da4..89e9ae4ab 100644 --- a/content/claude/connectors/custom/add-unlisted.md +++ b/content/claude/connectors/custom/add-unlisted.md @@ -6,15 +6,15 @@ > Connect Claude to an MCP server that isn't in the Connectors Directory, by its URL or as a local desktop extension. -You can connect Claude to a [Model Context Protocol (MCP)](/docs/connectors/building/mcp.md) server that isn't listed in the [Connectors Directory](/docs/connectors/directory.md). You add a remote server by its URL as a custom connector. In Claude Desktop, you can also use a desktop extension, which runs the server on your own computer. +You can connect Claude to a [Model Context Protocol (MCP)](https://claude.com/docs/connectors/building/mcp.md) server that isn't listed in the [Connectors Directory](https://claude.com/docs/connectors/directory.md). You add a remote server by its URL as a custom connector. In Claude Desktop, you can also use a desktop extension, which runs the server on your own computer. This page is for people adding a connector to their own Claude and for Team and Enterprise Owners adding one for their organization. > [!NOTE] > -> * If you want a service that's already in the directory, see the [Connectors Directory](/docs/connectors/directory.md) and connect it from there -> * If you're building the server yourself, see [Build an MCP server for Claude](/docs/connectors/building/index.md) -> * If your server runs inside your private network, see [MCP tunnels](/docs/connectors/mcp-tunnels/overview) +> * If you want a service that's already in the directory, see the [Connectors Directory](https://claude.com/docs/connectors/directory.md) and connect it from there +> * If you're building the server yourself, see [Build an MCP server for Claude](https://claude.com/docs/connectors/building/index.md) +> * If your server runs inside your private network, see [MCP tunnels](https://claude.com/docs/connectors/mcp-tunnels/overview) If you have a server URL, go to [Add a connector by URL](#add-a-connector-by-url). If you have a desktop extension, go to [Install a local connector in the desktop app](#install-a-local-connector-in-the-desktop-app). @@ -119,7 +119,7 @@ For **OAuth client**, choose how Claude identifies itself to the server's author * **Use Claude's published identity**: the recommended option. The server reads Claude's client details from a Client ID Metadata Document that Anthropic hosts. You set nothing up, and the server must support this method * **Register automatically**: Claude registers OAuth clients with the server as users connect, using Dynamic Client Registration. This works with most servers and adds client registrations over time -* **Use your own OAuth client**: enter a client ID you registered with the server. Leave the secret blank unless your authorization server requires one. See [Authentication for connectors](/docs/connectors/building/authentication.md) +* **Use your own OAuth client**: enter a client ID you registered with the server. Leave the secret blank unless your authorization server requires one. See [Authentication for connectors](https://claude.com/docs/connectors/building/authentication.md) For **Request headers**, add fixed credentials such as API keys that Claude sends on every request. See [Authenticate with request headers](#authenticate-with-request-headers). @@ -224,11 +224,11 @@ On Team and Enterprise plans, your organization can build its own desktop extens ### Build and package a desktop extension -If you're authoring the extension, follow [Build a desktop extension with MCPB](/docs/connectors/building/mcpb.md) and the [MCPB documentation](https://github.com/modelcontextprotocol/mcpb). You build your MCP server, bundle it with MCPB, test it locally, and then deploy it to your organization. +If you're authoring the extension, follow [Build a desktop extension with MCPB](https://claude.com/docs/connectors/building/mcpb.md) and the [MCPB documentation](https://github.com/modelcontextprotocol/mcpb). You build your MCP server, bundle it with MCPB, test it locally, and then deploy it to your organization. ## Security and privacy -Some connectors in the directory are verified by Anthropic and others are community connectors, as [connector verification](/docs/connectors/verification.md) explains. A connector you add yourself connects Claude to an unverified service. +Some connectors in the directory are verified by Anthropic and others are community connectors, as [connector verification](https://claude.com/docs/connectors/verification.md) explains. A connector you add yourself connects Claude to an unverified service. ### Connectors you add by URL @@ -262,6 +262,6 @@ Report malicious MCP servers to [Anthropic's Bug Bounty Program](https://www.ant ## Next steps -* [Build an MCP server for Claude](/docs/connectors/building/index.md): build your own remote MCP server for any tool -* [Connector verification](/docs/connectors/verification.md): which directory connectors Anthropic verifies and which are community connectors +* [Build an MCP server for Claude](https://claude.com/docs/connectors/building/index.md): build your own remote MCP server for any tool +* [Connector verification](https://claude.com/docs/connectors/verification.md): which directory connectors Anthropic verifies and which are community connectors * [MCP in Claude Code](https://code.claude.com/docs/en/mcp-quickstart): add the same server to Claude Code from the command line diff --git a/content/claude/connectors/directory.md b/content/claude/connectors/directory.md index 2896b6a93..c1e967a25 100644 --- a/content/claude/connectors/directory.md +++ b/content/claude/connectors/directory.md @@ -6,9 +6,9 @@ > Browse verified and community MCP connectors in the Connectors Directory, one catalog for claude.ai, Claude Desktop, mobile, Claude Code, and Cowork -The Connectors Directory is a catalog of [MCP](/docs/connectors/building/mcp.md) servers that work across all Claude products: claude.ai, Claude Desktop, Claude Mobile, Claude Code, and Cowork. +The Connectors Directory is a catalog of [MCP](https://claude.com/docs/connectors/building/mcp.md) servers that work across all Claude products: claude.ai, Claude Desktop, Claude Mobile, Claude Code, and Cowork. -The directory contains both verified connectors and community connectors. Verification isn't a security audit. [Connector verification](/docs/connectors/verification.md) explains what each label means. +The directory contains both verified connectors and community connectors. Verification isn't a security audit. [Connector verification](https://claude.com/docs/connectors/verification.md) explains what each label means. > [!NOTE] > @@ -22,7 +22,7 @@ The directory contains both verified connectors and community connectors. Verifi * No domain-ownership proof (DNS or `.well-known`) is required. That requirement applies only to the open MCP Registry, not the Anthropic Directory * The help-docs link shown in the in-product connector setup flow is not partner-customizable -Directory connectors and custom connectors run on the same infrastructure. See [directory vs custom](/docs/connectors/building/directory-vs-custom.md). +Directory connectors and custom connectors run on the same infrastructure. See [directory vs custom](https://claude.com/docs/connectors/building/directory-vs-custom.md). ## Browse the directory @@ -60,7 +60,7 @@ Organizations can submit their MCP servers for review and inclusion in the direc **1. Review the submission guidelines** -Review the [submission guidelines](/docs/connectors/building/submission.md). +Review the [submission guidelines](https://claude.com/docs/connectors/building/submission.md). **2. Meet the standards** @@ -70,10 +70,10 @@ Ensure your server meets security and compatibility standards. Submit through the developer portal at [claude.ai/directory/manage](https://claude.ai/directory/manage). -Anyone on a paid Claude plan can submit, and on Team and Enterprise an Owner submits; see [who can submit to the directory](/docs/directory/publish.md#confirm-you-can-submit-to-the-directory) for the role and organization requirements. After publication, the same dashboard shows your server's health and usage; see [Manage your directory listing](/docs/connectors/building/managing-your-listing.md). +Anyone on a paid Claude plan can submit, and on Team and Enterprise an Owner submits; see [who can submit to the directory](https://claude.com/docs/directory/publish.md#confirm-you-can-submit-to-the-directory) for the role and organization requirements. After publication, the same dashboard shows your server's health and usage; see [Manage your directory listing](https://claude.com/docs/connectors/building/managing-your-listing.md). ## Next steps -* [Connector verification](/docs/connectors/verification.md): what the Verified and Community labels mean -* [Get started with connectors](/docs/connectors/getting-started.md): set up a connector and use it in conversations -* [Build an MCP server for Claude](/docs/connectors/building/index.md): create your own MCP server +* [Connector verification](https://claude.com/docs/connectors/verification.md): what the Verified and Community labels mean +* [Get started with connectors](https://claude.com/docs/connectors/getting-started.md): set up a connector and use it in conversations +* [Build an MCP server for Claude](https://claude.com/docs/connectors/building/index.md): create your own MCP server diff --git a/content/claude/connectors/getting-started.md b/content/claude/connectors/getting-started.md index f53565c73..8d8b3f143 100644 --- a/content/claude/connectors/getting-started.md +++ b/content/claude/connectors/getting-started.md @@ -14,9 +14,9 @@ If you already know which connector you want, open [**Customize > Connectors**]( > [!NOTE] > -> * If the service you want isn't in the directory and you have its server URL, see [Add a connector that isn't in the directory](/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url) -> * If you're building a connector, see [Build an MCP server for Claude](/docs/connectors/building/index.md) -> * If you're a Team or Enterprise Owner deciding which connectors your organization offers, see [Browse the directory](/docs/connectors/directory.md#browse-the-directory) to add them from organization settings and handle member requests +> * If the service you want isn't in the directory and you have its server URL, see [Add a connector that isn't in the directory](https://claude.com/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url) +> * If you're building a connector, see [Build an MCP server for Claude](https://claude.com/docs/connectors/building/index.md) +> * If you're a Team or Enterprise Owner deciding which connectors your organization offers, see [Browse the directory](https://claude.com/docs/connectors/directory.md#browse-the-directory) to add them from organization settings and handle member requests ## Before you begin @@ -39,7 +39,7 @@ Go to [**Customize > Connectors**](https://claude.ai/customize/connectors). In t Select **Discover** to browse the directory. Enter a service name in **Search connectors**, or look through the categories, then select a connector to open its page. -Each listing carries a Verified or Community label. [Connector verification](/docs/connectors/verification.md) explains what each one means. +Each listing carries a Verified or Community label. [Connector verification](https://claude.com/docs/connectors/verification.md) explains what each one means. **3. Start the connection** @@ -47,7 +47,7 @@ Select **Connect to Claude**. Some connectors first ask for details such as a se On a Team or Enterprise plan, what you see depends on whether the connector has been added for your organization: -* If it hasn't, you see **Request** or a note to ask an organization Owner instead of a connect button. [Request a connector on a Team plan](/docs/connectors/directory.md#request-a-connector-on-a-team-plan) covers what happens next +* If it hasn't, you see **Request** or a note to ask an organization Owner instead of a connect button. [Request a connector on a Team plan](https://claude.com/docs/connectors/directory.md#request-a-connector-on-a-team-plan) covers what happens next * If you're an Owner, the button reads **Connect for your team** and adds the connector for everyone in your organization. You then connect your own account with **Connect to Claude**. To try the connector without adding it for everyone, select the arrow next to **Connect for your team**, then **Connect just for me** **4. Sign in to the service** @@ -103,11 +103,11 @@ Connectors work across the Claude apps. Each app supports these kinds: * **Claude Code**: the connectors you add in claude.ai are available in Claude Code, in the terminal and in cloud sessions, when you sign in with your Claude account. See [Use MCP servers from claude.ai](https://code.claude.com/docs/en/mcp#use-mcp-servers-from-claude-ai) * **Cowork**: connectors and plugins -Most connectors are remote services that you sign in to, as the steps on this page describe. A local connector is a desktop extension, packaged as an MCP Bundle (MCPB), that runs on your computer in the Claude desktop app. To add one, see [Install a local connector in the desktop app](/docs/connectors/custom/add-unlisted.md#install-a-local-connector-in-the-desktop-app). +Most connectors are remote services that you sign in to, as the steps on this page describe. A local connector is a desktop extension, packaged as an MCP Bundle (MCPB), that runs on your computer in the Claude desktop app. To add one, see [Install a local connector in the desktop app](https://claude.com/docs/connectors/custom/add-unlisted.md#install-a-local-connector-in-the-desktop-app). ## Next steps -* [Connectors directory](/docs/connectors/directory.md): how the directory is organized and how requests work on a Team plan -* [Add a connector that isn't in the directory](/docs/connectors/custom/add-unlisted.md): connect Claude to any remote MCP server by its URL, or install a desktop extension -* [Install and use plugins](/docs/plugins/overview.md#bundled-connectors): add a plugin that bundles connectors with the skills that use them -* [Connectors, skills, and plugins](/docs/extend/overview.md): decide which of the three fits what you want Claude to do +* [Connectors directory](https://claude.com/docs/connectors/directory.md): how the directory is organized and how requests work on a Team plan +* [Add a connector that isn't in the directory](https://claude.com/docs/connectors/custom/add-unlisted.md): connect Claude to any remote MCP server by its URL, or install a desktop extension +* [Install and use plugins](https://claude.com/docs/plugins/overview.md#bundled-connectors): add a plugin that bundles connectors with the skills that use them +* [Connectors, skills, and plugins](https://claude.com/docs/extend/overview.md): decide which of the three fits what you want Claude to do diff --git a/content/claude/connectors/github.md b/content/claude/connectors/github.md index e4641d9f2..2b07a919e 100644 --- a/content/claude/connectors/github.md +++ b/content/claude/connectors/github.md @@ -148,5 +148,5 @@ Claude couldn't reach the repository you picked or pasted. If the repository exi ## Next steps -* [Add a connector from the directory](/docs/connectors/getting-started.md#add-a-connector-from-the-directory): find a connector for another service in the directory and connect it -* [Connectors directory](/docs/connectors/directory.md): browse verified and community integrations +* [Add a connector from the directory](https://claude.com/docs/connectors/getting-started.md#add-a-connector-from-the-directory): find a connector for another service in the directory and connect it +* [Connectors directory](https://claude.com/docs/connectors/directory.md): browse verified and community integrations diff --git a/content/claude/connectors/google/calendar.md b/content/claude/connectors/google/calendar.md index be9489764..960522a86 100644 --- a/content/claude/connectors/google/calendar.md +++ b/content/claude/connectors/google/calendar.md @@ -12,7 +12,7 @@ By the end of this page you have connected your Google account and asked Claude > [!NOTE] > -> If your organization uses Outlook or Teams calendars, see [Microsoft 365](/docs/connectors/microsoft/365.md) instead. +> If your organization uses Outlook or Teams calendars, see [Microsoft 365](https://claude.com/docs/connectors/microsoft/365.md) instead. ## Connect Google Calendar @@ -32,7 +32,7 @@ Sign in to your Google account and grant the requested permissions. When the connection succeeds, the **Connect** button on the Google Calendar connector changes to **Disconnect**. -On Team and Enterprise plans, Google Calendar doesn't appear in your connector list until an Owner or Primary Owner enables it for your organization. For the full walkthrough, including troubleshooting, see [Get started with connectors](/docs/connectors/getting-started.md). +On Team and Enterprise plans, Google Calendar doesn't appear in your connector list until an Owner or Primary Owner enables it for your organization. For the full walkthrough, including troubleshooting, see [Get started with connectors](https://claude.com/docs/connectors/getting-started.md). ## Try the connector @@ -64,7 +64,7 @@ The connector is read-only: ## Next steps -* [Gmail](/docs/connectors/google/gmail.md): search and analyze your emails -* [Google Drive](/docs/connectors/google/drive.md): search and read your Drive files -* [Add a connector from the directory](/docs/connectors/getting-started.md#add-a-connector-from-the-directory): find a connector for another service in the directory and connect it -* [Connectors directory](/docs/connectors/directory.md): browse verified and community integrations +* [Gmail](https://claude.com/docs/connectors/google/gmail.md): search and analyze your emails +* [Google Drive](https://claude.com/docs/connectors/google/drive.md): search and read your Drive files +* [Add a connector from the directory](https://claude.com/docs/connectors/getting-started.md#add-a-connector-from-the-directory): find a connector for another service in the directory and connect it +* [Connectors directory](https://claude.com/docs/connectors/directory.md): browse verified and community integrations diff --git a/content/claude/connectors/google/drive.md b/content/claude/connectors/google/drive.md index 5b8455a56..54f11b13c 100644 --- a/content/claude/connectors/google/drive.md +++ b/content/claude/connectors/google/drive.md @@ -12,7 +12,7 @@ To get going, [connect Google Drive](#connect-google-drive) and then [try a firs > [!NOTE] > -> If you want Claude to search your email or calendar rather than your files, see [Gmail](/docs/connectors/google/gmail.md) or [Google Calendar](/docs/connectors/google/calendar.md). +> If you want Claude to search your email or calendar rather than your files, see [Gmail](https://claude.com/docs/connectors/google/gmail.md) or [Google Calendar](https://claude.com/docs/connectors/google/calendar.md). ## Connect Google Drive @@ -32,7 +32,7 @@ Sign in to your Google account and grant the requested permissions. When the connection succeeds, the **Connect** button on the Google Drive connector changes to **Disconnect**. -On Team and Enterprise plans, Google Drive doesn't appear in your connector list until an Owner adds it for your organization. Each member then connects their own Google account. For the full walkthrough, including troubleshooting, see [Get started with connectors](/docs/connectors/getting-started.md). +On Team and Enterprise plans, Google Drive doesn't appear in your connector list until an Owner adds it for your organization. Each member then connects their own Google account. For the full walkthrough, including troubleshooting, see [Get started with connectors](https://claude.com/docs/connectors/getting-started.md). ## What Claude can read from Drive @@ -123,8 +123,8 @@ If a reconnection error keeps coming back, select **Disconnect**, then **Connect ## Next steps -* [Gmail](/docs/connectors/google/gmail.md): search and analyze your emails -* [Google Calendar](/docs/connectors/google/calendar.md): access your calendar information -* [Get started with connectors](/docs/connectors/getting-started.md#manage-or-disconnect-a-connector): set tool permissions and manage any connector -* [Add a connector from the directory](/docs/connectors/getting-started.md#add-a-connector-from-the-directory): find a connector for another service in the directory and connect it -* [Connectors directory](/docs/connectors/directory.md): browse verified and community integrations +* [Gmail](https://claude.com/docs/connectors/google/gmail.md): search and analyze your emails +* [Google Calendar](https://claude.com/docs/connectors/google/calendar.md): access your calendar information +* [Get started with connectors](https://claude.com/docs/connectors/getting-started.md#manage-or-disconnect-a-connector): set tool permissions and manage any connector +* [Add a connector from the directory](https://claude.com/docs/connectors/getting-started.md#add-a-connector-from-the-directory): find a connector for another service in the directory and connect it +* [Connectors directory](https://claude.com/docs/connectors/directory.md): browse verified and community integrations diff --git a/content/claude/connectors/google/gmail.md b/content/claude/connectors/google/gmail.md index 76dd58503..402630fb0 100644 --- a/content/claude/connectors/google/gmail.md +++ b/content/claude/connectors/google/gmail.md @@ -12,7 +12,7 @@ By the end of this page you have connected your Google account and asked Claude > [!NOTE] > -> If your organization uses Outlook, see [Microsoft 365](/docs/connectors/microsoft/365.md) instead. +> If your organization uses Outlook, see [Microsoft 365](https://claude.com/docs/connectors/microsoft/365.md) instead. ## Connect Gmail @@ -32,7 +32,7 @@ Sign in to your Google account and grant the requested permissions. When the connection succeeds, the **Connect** button on the Gmail connector changes to **Disconnect**. -On Team and Enterprise plans, Gmail doesn't appear in your connector list until an Owner or Primary Owner enables it for your organization. For the full walkthrough, including troubleshooting, see [Get started with connectors](/docs/connectors/getting-started.md). +On Team and Enterprise plans, Gmail doesn't appear in your connector list until an Owner or Primary Owner enables it for your organization. For the full walkthrough, including troubleshooting, see [Get started with connectors](https://claude.com/docs/connectors/getting-started.md). ## Try the connector @@ -63,7 +63,7 @@ The connector is read-only, and some email content isn't visible to Claude: ## Next steps -* [Google Calendar](/docs/connectors/google/calendar.md): access your calendar information -* [Google Drive](/docs/connectors/google/drive.md): search and read your Drive files -* [Add a connector from the directory](/docs/connectors/getting-started.md#add-a-connector-from-the-directory): find a connector for another service in the directory and connect it -* [Connectors directory](/docs/connectors/directory.md): browse verified and community integrations +* [Google Calendar](https://claude.com/docs/connectors/google/calendar.md): access your calendar information +* [Google Drive](https://claude.com/docs/connectors/google/drive.md): search and read your Drive files +* [Add a connector from the directory](https://claude.com/docs/connectors/getting-started.md#add-a-connector-from-the-directory): find a connector for another service in the directory and connect it +* [Connectors directory](https://claude.com/docs/connectors/directory.md): browse verified and community integrations diff --git a/content/claude/connectors/mcp-tunnels/oauth.md b/content/claude/connectors/mcp-tunnels/oauth.md index 20f88821b..0908ca366 100644 --- a/content/claude/connectors/mcp-tunnels/oauth.md +++ b/content/claude/connectors/mcp-tunnels/oauth.md @@ -14,7 +14,7 @@ An MCP tunnel carries Claude's requests to an MCP server inside your network, bu > [!NOTE] > -> If your authorization server is reachable from the public internet and its metadata advertises public URLs, you don't need anything on this page. Add the connector as described in [Set up an MCP tunnel](/docs/connectors/mcp-tunnels/setup.md#add-tunneled-servers-as-connectors), and members sign in as they would for any other connector. +> If your authorization server is reachable from the public internet and its metadata advertises public URLs, you don't need anything on this page. Add the connector as described in [Set up an MCP tunnel](https://claude.com/docs/connectors/mcp-tunnels/setup.md#add-tunneled-servers-as-connectors), and members sign in as they would for any other connector. ## Understand how OAuth works through a tunnel @@ -29,7 +29,7 @@ You fix this sign-in failure by routing Claude's server-to-server calls through ## Route the authorization server through the tunnel -Add a route for the authorization server to the proxy configuration, next to the routes for your MCP servers, and apply it as described in [Add more servers later](/docs/connectors/mcp-tunnels/setup.md#add-more-servers-later). +Add a route for the authorization server to the proxy configuration, next to the routes for your MCP servers, and apply it as described in [Add more servers later](https://claude.com/docs/connectors/mcp-tunnels/setup.md#add-more-servers-later). ```yaml theme={null} routes: @@ -53,7 +53,7 @@ When you add the tunneled MCP server as a custom connector in [**Organization se The paths after the hostname (`/authorize`, `/oauth/token`, and so on) are whatever your authorization server uses. Copy them from its metadata document, usually served at `/.well-known/oauth-authorization-server` or `/.well-known/openid-configuration`, and change only the scheme and host. -After you save the connector, connect it yourself from your own connector settings. Your browser should open your sign-in page, and after you approve access the connector should show as connected. If either step fails, see [Troubleshooting](/docs/connectors/mcp-tunnels/troubleshooting.md#sign-in-redirects-to-a-tunnel-address-that-does-not-load). +After you save the connector, connect it yourself from your own connector settings. Your browser should open your sign-in page, and after you approve access the connector should show as connected. If either step fails, see [Troubleshooting](https://claude.com/docs/connectors/mcp-tunnels/troubleshooting.md#sign-in-redirects-to-a-tunnel-address-that-does-not-load). ## Publish split metadata instead @@ -84,5 +84,5 @@ Use **Tunnel OAuth configuration** when the authorization server is a product wh ## Next steps -* [Add tunneled servers as connectors](/docs/connectors/mcp-tunnels/setup.md#add-tunneled-servers-as-connectors): where you add the connector and turn on **Tunnel OAuth configuration** -* [Troubleshoot OAuth sign-in](/docs/connectors/mcp-tunnels/troubleshooting.md#oauth-sign-in): fix sign-in redirects that don't load and token exchanges that fail +* [Add tunneled servers as connectors](https://claude.com/docs/connectors/mcp-tunnels/setup.md#add-tunneled-servers-as-connectors): where you add the connector and turn on **Tunnel OAuth configuration** +* [Troubleshoot OAuth sign-in](https://claude.com/docs/connectors/mcp-tunnels/troubleshooting.md#oauth-sign-in): fix sign-in redirects that don't load and token exchanges that fail diff --git a/content/claude/connectors/mcp-tunnels/overview.md b/content/claude/connectors/mcp-tunnels/overview.md index 8330de09f..2b1599dd5 100644 --- a/content/claude/connectors/mcp-tunnels/overview.md +++ b/content/claude/connectors/mcp-tunnels/overview.md @@ -10,7 +10,7 @@ > > MCP tunnels are in research preview and are available to organizations on the Claude Enterprise plan by request. To request access, [submit the MCP tunnels interest form](https://claude.com/form/mcp-tunnels) or contact your Anthropic account team. The preview is provided as-is, without uptime, support, or continuity commitments, and it depends on a third-party network provider (Cloudflare) that makes no availability commitment for the underlying transport. Anthropic may modify or discontinue MCP tunnels at any time. -MCP tunnels connect Claude to [Model Context Protocol (MCP)](/docs/connectors/building/mcp.md) servers that run inside your private network. You run a small tunnel stack on a host in your network, the stack opens an outbound-only connection to Anthropic, and Claude sends MCP requests to your servers over that connection. Your firewall needs no inbound rules and your MCP servers need no public endpoint. Members of your organization use the tunneled servers as [custom connectors](/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url) in Claude, the same way they use any other remote MCP server. +MCP tunnels connect Claude to [Model Context Protocol (MCP)](https://claude.com/docs/connectors/building/mcp.md) servers that run inside your private network. You run a small tunnel stack on a host in your network, the stack opens an outbound-only connection to Anthropic, and Claude sends MCP requests to your servers over that connection. Your firewall needs no inbound rules and your MCP servers need no public endpoint. Members of your organization use the tunneled servers as [custom connectors](https://claude.com/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url) in Claude, the same way they use any other remote MCP server. This section is for administrators of claude.ai organizations on the Enterprise plan and the infrastructure teams they work with. To use MCP tunnels with the Claude Console, Claude Managed Agents, or the Messages API, see [MCP tunnels in the Claude Platform docs](https://platform.claude.com/docs/en/agents-and-tools/mcp-tunnels/overview). A tunnel belongs to the organization that created it, so a tunnel created from a Console organization can't serve connectors in claude.ai, and a tunnel created from claude.ai can't serve the API. @@ -18,7 +18,7 @@ This section is for administrators of claude.ai organizations on the Enterprise Use a tunnel when the MCP server your organization wants to reach from Claude is only reachable inside your network, and your security policy rules out giving it a public endpoint or allowlisting Anthropic's IP ranges at your edge. Internal knowledge bases, ticketing systems, and data services wrapped in an MCP server are typical candidates. -If the MCP server is already reachable from the internet, you don't need a tunnel. Add it as a [custom connector](/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url) directly. +If the MCP server is already reachable from the internet, you don't need a tunnel. Add it as a [custom connector](https://claude.com/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url) directly. ## Understand how tunnel traffic flows @@ -67,7 +67,7 @@ Three independent layers protect every request through a tunnel. The proxy terminates inner TLS with a certificate signed by a certificate authority (CA) that the setup component generates inside your environment and registers with Anthropic. Only your deployment holds the private keys, so Cloudflare carries ciphertext and cannot read MCP requests or responses. Anthropic does not connect to a tunnel until a CA certificate is registered for it. Cloudflare does receive connection metadata: the egress IP address and a host fingerprint of the machine running cloudflared, connection timing and byte volume, and the `tunnel.anthropic.com` subdomain assigned to your tunnel. Cloudflare acts as a subprocessor for this research preview. -The tunnel carries traffic to your MCP servers but does not authenticate to them. Configure each MCP server to require OAuth as described in the [MCP authorization specification](https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization), and see [Authenticate to MCP servers behind a tunnel](/docs/connectors/mcp-tunnels/oauth.md) for how sign-in works when the authorization server is also inside your network. +The tunnel carries traffic to your MCP servers but does not authenticate to them. Configure each MCP server to require OAuth as described in the [MCP authorization specification](https://modelcontextprotocol.io/specification/2025-11-25/basic/authorization), and see [Authenticate to MCP servers behind a tunnel](https://claude.com/docs/connectors/mcp-tunnels/oauth.md) for how sign-in works when the authorization server is also inside your network. ### Shared responsibility @@ -82,7 +82,7 @@ The tunnel carries traffic to your MCP servers but does not authenticate to them > [!WARNING] > -> An attacker who obtains your tunnel token and one of your TLS private keys could impersonate your proxy and read MCP request payloads, including OAuth tokens. Store both with your organization's secrets-management controls, restrict file permissions, and rotate them on a schedule and immediately after any suspected exposure. See [Rotate credentials](/docs/connectors/mcp-tunnels/setup.md#rotate-credentials). +> An attacker who obtains your tunnel token and one of your TLS private keys could impersonate your proxy and read MCP request payloads, including OAuth tokens. Store both with your organization's secrets-management controls, restrict file permissions, and rotate them on a schedule and immediately after any suspected exposure. See [Rotate credentials](https://claude.com/docs/connectors/mcp-tunnels/setup.md#rotate-credentials). ## Limits @@ -93,7 +93,7 @@ The tunnel carries traffic to your MCP servers but does not authenticate to them ## Next steps -* [Set up an MCP tunnel](/docs/connectors/mcp-tunnels/setup.md): create the API key, deploy the tunnel stack with Helm or Docker Compose, and add your servers as connectors -* [Authenticate through a tunnel](/docs/connectors/mcp-tunnels/oauth.md): make OAuth sign-in work when your authorization server is inside your network -* [Troubleshooting](/docs/connectors/mcp-tunnels/troubleshooting.md): diagnose connection, certificate, routing, and sign-in failures +* [Set up an MCP tunnel](https://claude.com/docs/connectors/mcp-tunnels/setup.md): create the API key, deploy the tunnel stack with Helm or Docker Compose, and add your servers as connectors +* [Authenticate through a tunnel](https://claude.com/docs/connectors/mcp-tunnels/oauth.md): make OAuth sign-in work when your authorization server is inside your network +* [Troubleshooting](https://claude.com/docs/connectors/mcp-tunnels/troubleshooting.md): diagnose connection, certificate, routing, and sign-in failures * [Platform reference](https://platform.claude.com/docs/en/agents-and-tools/mcp-tunnels/reference): proxy configuration fields, certificate requirements, and the setup component diff --git a/content/claude/connectors/mcp-tunnels/setup.md b/content/claude/connectors/mcp-tunnels/setup.md index 12766036d..04a0ad190 100644 --- a/content/claude/connectors/mcp-tunnels/setup.md +++ b/content/claude/connectors/mcp-tunnels/setup.md @@ -10,7 +10,7 @@ > > MCP tunnels are in research preview and are available to organizations on the Claude Enterprise plan by request. To request access, [submit the MCP tunnels interest form](https://claude.com/form/mcp-tunnels) or contact your Anthropic account team. -This page covers the full setup of an MCP tunnel for a claude.ai Enterprise organization, from creating the API key that provisioning uses to members calling a tunneled MCP server from Claude. You need the Owner or Primary Owner role in claude.ai, and someone who can deploy containers to a Kubernetes cluster or a Docker host inside your network. Read [MCP tunnels](/docs/connectors/mcp-tunnels/overview) first if the tunnel stack, the tunnel domain, and routes are unfamiliar. +This page covers the full setup of an MCP tunnel for a claude.ai Enterprise organization, from creating the API key that provisioning uses to members calling a tunneled MCP server from Claude. You need the Owner or Primary Owner role in claude.ai, and someone who can deploy containers to a Kubernetes cluster or a Docker host inside your network. Read [MCP tunnels](https://claude.com/docs/connectors/mcp-tunnels/overview) first if the tunnel stack, the tunnel domain, and routes are unfamiliar. ## Create a Tunnels API key @@ -67,7 +67,7 @@ gateway: search: http://10.0.12.7:9000 ``` -With these routes, Claude reaches the servers at `docs.` and `search.`. If a route targets an address outside the RFC 1918 private ranges (some managed Kubernetes distributions allocate Service IPs elsewhere), add the range under `gateway.config.upstream.allowed_ips` as described in [Troubleshooting](/docs/connectors/mcp-tunnels/troubleshooting.md#proxy-logs-ip-validation-failed). +With these routes, Claude reaches the servers at `docs.` and `search.`. If a route targets an address outside the RFC 1918 private ranges (some managed Kubernetes distributions allocate Service IPs elsewhere), add the range under `gateway.config.upstream.allowed_ips` as described in [Troubleshooting](https://claude.com/docs/connectors/mcp-tunnels/troubleshooting.md#proxy-logs-ip-validation-failed). **3. Review the rendered manifests** @@ -98,7 +98,7 @@ helm install mcp-tunnel \ --set api.token="$API_TOKEN" ``` -The setup component runs as a pre-install hook, so `helm install` blocks until the tunnel is created, the CA is registered, and the credentials are stored in the `mcp-tunnel` Secret. If the install fails with a hook error, see [Troubleshooting](/docs/connectors/mcp-tunnels/troubleshooting.md#helm-install-fails-with-a-hook-error). +The setup component runs as a pre-install hook, so `helm install` blocks until the tunnel is created, the CA is registered, and the credentials are stored in the `mcp-tunnel` Secret. If the install fails with a hook error, see [Troubleshooting](https://claude.com/docs/connectors/mcp-tunnels/troubleshooting.md#helm-install-fails-with-a-hook-error). > [!WARNING] > @@ -271,7 +271,7 @@ docker compose logs cloudflared | grep "Registered tunnel connection" docker compose logs mcp-proxy | grep "route configured" ``` -The containers take a few seconds to start, so rerun the commands if they come back empty. If cloudflared never registers, see [Troubleshooting](/docs/connectors/mcp-tunnels/troubleshooting.md#the-tunnel-stack-starts-but-cloudflared-never-connects). The end-to-end check happens from Claude, in the next section. +The containers take a few seconds to start, so rerun the commands if they come back empty. If cloudflared never registers, see [Troubleshooting](https://claude.com/docs/connectors/mcp-tunnels/troubleshooting.md#the-tunnel-stack-starts-but-cloudflared-never-connects). The end-to-end check happens from Claude, in the next section. ## Add tunneled servers as connectors @@ -291,13 +291,13 @@ Enter the server URL, for example `https://docs.abc123.tunnel.anthropic.com/mcp` **4. Configure authentication** -Configure authentication for the server. If its OAuth authorization server is also inside your network, turn on **Tunnel OAuth configuration** and follow [Authenticate to MCP servers behind a tunnel](/docs/connectors/mcp-tunnels/oauth.md). +Configure authentication for the server. If its OAuth authorization server is also inside your network, turn on **Tunnel OAuth configuration** and follow [Authenticate to MCP servers behind a tunnel](https://claude.com/docs/connectors/mcp-tunnels/oauth.md). **5. Add the connector** Select **Add**. -Members then find the connector in their own connector settings and select **Connect** to sign in, as described in [Add a connector by URL](/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url). To confirm the tunnel end to end, connect the server yourself and ask Claude to use one of its tools while you watch the proxy logs for the request. +Members then find the connector in their own connector settings and select **Connect** to sign in, as described in [Add a connector by URL](https://claude.com/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url). To confirm the tunnel end to end, connect the server yourself and ask Claude to use one of its tools while you watch the proxy logs for the request. ### Add more servers later @@ -468,6 +468,6 @@ If you archived the tunnel because of a suspected compromise, also notify your A ## Next steps -* [Authenticate to MCP servers behind a tunnel](/docs/connectors/mcp-tunnels/oauth.md): make OAuth sign-in work when your authorization server is inside your network -* [Troubleshoot MCP tunnels](/docs/connectors/mcp-tunnels/troubleshooting.md): diagnose connection, certificate, routing, and sign-in failures +* [Authenticate to MCP servers behind a tunnel](https://claude.com/docs/connectors/mcp-tunnels/oauth.md): make OAuth sign-in work when your authorization server is inside your network +* [Troubleshoot MCP tunnels](https://claude.com/docs/connectors/mcp-tunnels/troubleshooting.md): diagnose connection, certificate, routing, and sign-in failures * [MCP tunnels reference](https://platform.claude.com/docs/en/agents-and-tools/mcp-tunnels/reference): proxy configuration fields, certificate requirements, and the setup component diff --git a/content/claude/connectors/mcp-tunnels/troubleshooting.md b/content/claude/connectors/mcp-tunnels/troubleshooting.md index 7a3d9e7e8..6fc41cd5f 100644 --- a/content/claude/connectors/mcp-tunnels/troubleshooting.md +++ b/content/claude/connectors/mcp-tunnels/troubleshooting.md @@ -10,7 +10,7 @@ > > MCP tunnels are in research preview and are available to organizations on the Claude Enterprise plan by request. To request access, [submit the MCP tunnels interest form](https://claude.com/form/mcp-tunnels) or contact your Anthropic account team. -A request through an [MCP tunnel](/docs/connectors/mcp-tunnels/overview) can fail at three points, and it helps to check them in order. First the outbound connection from cloudflared to the tunnel edge, then the inner TLS handshake between Anthropic and your proxy, then the proxy's routing to your MCP server. The cloudflared and proxy logs on your side show which point a request reached. If the proxy logs nothing at all for a request, it never arrived in your network. +A request through an [MCP tunnel](https://claude.com/docs/connectors/mcp-tunnels/overview) can fail at three points, and it helps to check them in order. First the outbound connection from cloudflared to the tunnel edge, then the inner TLS handshake between Anthropic and your proxy, then the proxy's routing to your MCP server. The cloudflared and proxy logs on your side show which point a request reached. If the proxy logs nothing at all for a request, it never arrived in your network. ```bash Helm theme={null} kubectl -n mcp-tunnel logs deploy/mcp-tunnel -c cloudflared @@ -43,7 +43,7 @@ The setup component authenticates to the Tunnels API with the key in `API_TOKEN` ### Setup fails with `Organization already has the maximum of 10 non-archived Tunnels` -Each organization can have at most 10 tunnels that are not archived, and every setup run with an empty `tunnel.id` (Helm) or no `--tunnel-id` (Docker Compose) creates a new one. Archive tunnels you no longer use, as described in [Remove a tunnel](/docs/connectors/mcp-tunnels/setup.md#remove-a-tunnel), then run setup again. To attach a new deployment to an existing tunnel instead of creating one, set `tunnel.id` in `values.yaml` or pass `--tunnel-id` to the setup command. +Each organization can have at most 10 tunnels that are not archived, and every setup run with an empty `tunnel.id` (Helm) or no `--tunnel-id` (Docker Compose) creates a new one. Archive tunnels you no longer use, as described in [Remove a tunnel](https://claude.com/docs/connectors/mcp-tunnels/setup.md#remove-a-tunnel), then run setup again. To attach a new deployment to an existing tunnel instead of creating one, set `tunnel.id` in `values.yaml` or pass `--tunnel-id` to the setup command. ### Helm install fails with a hook error @@ -98,7 +98,7 @@ A route value includes a path or omits the port. Each upstream must be exactly ` ### Proxy logs `tls handshake failed` -Anthropic rejected the certificate the proxy presented. Check that the server certificate has not passed its 90-day validity, that its Subject Alternative Name covers `*.`, and that it was signed by the CA the setup component registered for this tunnel. On Docker Compose, also confirm the files in `data/` are readable by user ID `65532`. To renew an expired certificate, see [Rotate credentials](/docs/connectors/mcp-tunnels/setup.md#rotate-credentials). +Anthropic rejected the certificate the proxy presented. Check that the server certificate has not passed its 90-day validity, that its Subject Alternative Name covers `*.`, and that it was signed by the CA the setup component registered for this tunnel. On Docker Compose, also confirm the files in `data/` are readable by user ID `65532`. To renew an expired certificate, see [Rotate credentials](https://claude.com/docs/connectors/mcp-tunnels/setup.md#rotate-credentials). ## Connectors and tools @@ -108,7 +108,7 @@ Work through these checks in order. **1. Confirm the stack is connected** -Confirm the stack is connected, using the log checks in [Verify the connection](/docs/connectors/mcp-tunnels/setup.md#verify-the-connection). +Confirm the stack is connected, using the log checks in [Verify the connection](https://claude.com/docs/connectors/mcp-tunnels/setup.md#verify-the-connection). **2. Confirm the tunnel's organization** @@ -124,11 +124,11 @@ Watch the proxy logs while you retry. `no route for host` and `IP validation fai ## OAuth sign-in -See [Authenticate to MCP servers behind a tunnel](/docs/connectors/mcp-tunnels/oauth.md) for how the sign-in flow splits between the member's browser and Claude's servers. +See [Authenticate to MCP servers behind a tunnel](https://claude.com/docs/connectors/mcp-tunnels/oauth.md) for how the sign-in flow splits between the member's browser and Claude's servers. ### Sign-in redirects to a tunnel address that does not load -The authorization server's metadata advertises an authorization endpoint on the `tunnel.anthropic.com` hostname or an internal hostname, and the member's browser can't load it. Turn on **Tunnel OAuth configuration** for the connector and set **Authorization endpoint** to the sign-in URL members' browsers can reach, or publish split metadata from the authorization server. Both are described on the [OAuth page](/docs/connectors/mcp-tunnels/oauth.md#set-the-tunnel-oauth-configuration). +The authorization server's metadata advertises an authorization endpoint on the `tunnel.anthropic.com` hostname or an internal hostname, and the member's browser can't load it. Turn on **Tunnel OAuth configuration** for the connector and set **Authorization endpoint** to the sign-in URL members' browsers can reach, or publish split metadata from the authorization server. Both are described on the [OAuth page](https://claude.com/docs/connectors/mcp-tunnels/oauth.md#set-the-tunnel-oauth-configuration). ### Sign-in succeeds in the browser but the connector never connects @@ -136,7 +136,7 @@ Claude could not complete the token exchange, usually because the token endpoint ### The Token endpoint field rejects the URL -**Token endpoint** and **Registration endpoint** accept an `https://` URL that is either under `tunnel.anthropic.com` or on the same origin (scheme, host, and port) as the **Authorization endpoint**. Any other URL is rejected, because Claude sends the token exchange and the client credentials to it. Add a route for your authorization server as shown in [Route the authorization server through the tunnel](/docs/connectors/mcp-tunnels/oauth.md#route-the-authorization-server-through-the-tunnel) and enter the resulting tunnel URL. The **Authorization endpoint** field has no such restriction, because browsers load it directly. +**Token endpoint** and **Registration endpoint** accept an `https://` URL that is either under `tunnel.anthropic.com` or on the same origin (scheme, host, and port) as the **Authorization endpoint**. Any other URL is rejected, because Claude sends the token exchange and the client credentials to it. Add a route for your authorization server as shown in [Route the authorization server through the tunnel](https://claude.com/docs/connectors/mcp-tunnels/oauth.md#route-the-authorization-server-through-the-tunnel) and enter the resulting tunnel URL. The **Authorization endpoint** field has no such restriction, because browsers load it directly. ### The Tunnel OAuth configuration toggle is missing @@ -148,6 +148,6 @@ If these steps don't resolve the problem, contact your Anthropic account team wi ## Related resources -* [Set up an MCP tunnel](/docs/connectors/mcp-tunnels/setup.md): the deployment, verification, and credential rotation steps -* [Authenticate to MCP servers behind a tunnel](/docs/connectors/mcp-tunnels/oauth.md): the Tunnel OAuth configuration fields and the split-metadata alternative +* [Set up an MCP tunnel](https://claude.com/docs/connectors/mcp-tunnels/setup.md): the deployment, verification, and credential rotation steps +* [Authenticate to MCP servers behind a tunnel](https://claude.com/docs/connectors/mcp-tunnels/oauth.md): the Tunnel OAuth configuration fields and the split-metadata alternative * [MCP tunnels reference](https://platform.claude.com/docs/en/agents-and-tools/mcp-tunnels/reference): proxy configuration fields, certificate requirements, and the setup component diff --git a/content/claude/connectors/microsoft/365.md b/content/claude/connectors/microsoft/365.md index 495ab9ef5..6c06d3961 100644 --- a/content/claude/connectors/microsoft/365.md +++ b/content/claude/connectors/microsoft/365.md @@ -12,8 +12,8 @@ By the end of this page you have the connector set up for your organization and > [!NOTE] > -> * If your organization runs Claude Desktop on third-party inference, see [Connect to Microsoft 365](/docs/third-party/claude-desktop/connectors-m365.md) instead -> * If you're in a US government deployment, see [Set up the Microsoft 365 connector](/docs/government/connectors/microsoft-365.md) in the government section +> * If your organization runs Claude Desktop on third-party inference, see [Connect to Microsoft 365](https://claude.com/docs/third-party/claude-desktop/connectors-m365.md) instead +> * If you're in a US government deployment, see [Set up the Microsoft 365 connector](https://claude.com/docs/government/connectors/microsoft-365.md) in the government section ## Review what Claude can do @@ -182,5 +182,5 @@ If something isn't working, start with the case that matches what you see. ## Next steps -* [Add a connector from the directory](/docs/connectors/getting-started.md#add-a-connector-from-the-directory): find a connector for another service in the directory and connect it -* [Connectors directory](/docs/connectors/directory.md): browse verified and community integrations +* [Add a connector from the directory](https://claude.com/docs/connectors/getting-started.md#add-a-connector-from-the-directory): find a connector for another service in the directory and connect it +* [Connectors directory](https://claude.com/docs/connectors/directory.md): browse verified and community integrations diff --git a/content/claude/connectors/slack.md b/content/claude/connectors/slack.md index 621380b8e..1044f00d8 100644 --- a/content/claude/connectors/slack.md +++ b/content/claude/connectors/slack.md @@ -12,7 +12,7 @@ By the end of this page you have installed the app, connected your account, and, > [!NOTE] > -> This page covers the earlier per-user Claude in Slack app. The current product is [Claude Tag](/docs/claude-tag/overview.md), which gives your team one Claude identity set up by an admin. If your organization used the earlier app, see [Migrate from the earlier Claude in Slack](/docs/claude-tag/admins/migrate-from-earlier.md). +> This page covers the earlier per-user Claude in Slack app. The current product is [Claude Tag](https://claude.com/docs/claude-tag/overview.md), which gives your team one Claude identity set up by an admin. If your organization used the earlier app, see [Migrate from the earlier Claude in Slack](https://claude.com/docs/claude-tag/admins/migrate-from-earlier.md). ## Use the earlier Claude in Slack app @@ -118,6 +118,6 @@ Conversations with Claude in Slack are kept apart from your claude.ai history: ## Next steps -* [Claude Tag](/docs/claude-tag/overview.md): the current product, which gives your team one Claude identity set up by an admin -* [Add a connector from the directory](/docs/connectors/getting-started.md#add-a-connector-from-the-directory): find a connector for another service in the directory and connect it -* [Connectors directory](/docs/connectors/directory.md): browse verified and community integrations +* [Claude Tag](https://claude.com/docs/claude-tag/overview.md): the current product, which gives your team one Claude identity set up by an admin +* [Add a connector from the directory](https://claude.com/docs/connectors/getting-started.md#add-a-connector-from-the-directory): find a connector for another service in the directory and connect it +* [Connectors directory](https://claude.com/docs/connectors/directory.md): browse verified and community integrations diff --git a/content/claude/connectors/verification.md b/content/claude/connectors/verification.md index 96e399983..a7966cb09 100644 --- a/content/claude/connectors/verification.md +++ b/content/claude/connectors/verification.md @@ -6,7 +6,7 @@ > How Anthropic reviews connectors in the directory, what the Verified, Community, and Custom labels mean, and how to stay safe with third-party connectors. -The [Connectors Directory](/docs/connectors/directory.md) lists connectors from Anthropic and from third-party developers, and each one shows how much Anthropic has reviewed it. Use this page to understand what those labels mean before you connect one. +The [Connectors Directory](https://claude.com/docs/connectors/directory.md) lists connectors from Anthropic and from third-party developers, and each one shows how much Anthropic has reviewed it. Use this page to understand what those labels mean before you connect one. > [!NOTE] > @@ -30,13 +30,13 @@ Community connectors show a **Community** label in the directory and in [**Custo ### Custom -You added a Custom connector yourself, and Anthropic hasn't reviewed it. [Custom connectors](/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url) explains how to add one. +You added a Custom connector yourself, and Anthropic hasn't reviewed it. [Custom connectors](https://claude.com/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url) explains how to add one. ## Directory listing versus custom connectors The directory is a catalog of connectors, and listing is optional. Connectors in the directory and custom connectors you add yourself use the same technology, so if you have a connector's URL, you can add it as a custom connector whether or not it's in the directory. -Listing a connector in the directory makes it discoverable by other people and gives it a review label: a checkmark if Anthropic has verified it, or **Community** if Anthropic has screened it but not reviewed it in depth. Listing doesn't change the tools the connector exposes. [Directory vs custom](/docs/connectors/building/directory-vs-custom.md) has a detailed comparison. +Listing a connector in the directory makes it discoverable by other people and gives it a review label: a checkmark if Anthropic has verified it, or **Community** if Anthropic has screened it but not reviewed it in depth. Listing doesn't change the tools the connector exposes. [Directory vs custom](https://claude.com/docs/connectors/building/directory-vs-custom.md) has a detailed comparison. ## Stay safe with third-party connectors @@ -49,16 +49,16 @@ Whatever the label, this advice applies to any connector built by someone other * Stay aware of prompt injection risks, even though Claude has built-in protections * Monitor for unexpected changes in tool behavior -For more, see [security and privacy](/docs/connectors/custom/add-unlisted.md#security-and-privacy) for custom connectors. +For more, see [security and privacy](https://claude.com/docs/connectors/custom/add-unlisted.md#security-and-privacy) for custom connectors. ## List your own connector -If you build connectors and want yours in the directory, start with the [connector pre-submission checklist](/docs/connectors/building/review-criteria.md) and then [submit your connector](/docs/connectors/building/submission.md). +If you build connectors and want yours in the directory, start with the [connector pre-submission checklist](https://claude.com/docs/connectors/building/review-criteria.md) and then [submit your connector](https://claude.com/docs/connectors/building/submission.md). When you submit a server, Anthropic scans it automatically for policy compliance and, by default, lists it in the directory as a Community connector. Anthropic may then escalate listings flagged as highly useful to Claude users to Verified review, which is higher touch and slower, and in which reviewers run a functional test of each tool. That escalation is assessed automatically. There's no separate application for the **Verified** label, and you don't need to take any action. ## Related resources -* [Connectors Directory](/docs/connectors/directory.md): browse and connect Verified and Community connectors -* [Custom connectors](/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url): add a connector by URL, and the security and privacy guidance that applies -* [Publish to the directory](/docs/directory/publish.md): the developer's overview of submitting a connector or plugin +* [Connectors Directory](https://claude.com/docs/connectors/directory.md): browse and connect Verified and Community connectors +* [Custom connectors](https://claude.com/docs/connectors/custom/add-unlisted.md#add-a-connector-by-url): add a connector by URL, and the security and privacy guidance that applies +* [Publish to the directory](https://claude.com/docs/directory/publish.md): the developer's overview of submitting a connector or plugin diff --git a/content/claude/cowork/guide/dispatch.md b/content/claude/cowork/guide/dispatch.md index 6ded074d3..b8a383b7f 100644 --- a/content/claude/cowork/guide/dispatch.md +++ b/content/claude/cowork/guide/dispatch.md @@ -43,7 +43,7 @@ The Dispatch agent routes each child task to the surface that fits it. | Task type | Runs in | Examples | | - | - | - | | Coding work | Code, against a workspace you've already set up | Fix a bug, open a pull request, run tests | -| Knowledge work | Cowork, in the [project](/docs/cowork/guide/projects.md) you specify (or your default project) | Research, write a document, organize files | +| Knowledge work | Cowork, in the [project](https://claude.com/docs/cowork/guide/projects.md) you specify (or your default project) | Research, write a document, organize files | When starting a task, you can tell the agent which Code workspace or Cowork project to use. If you don't, it lists what's available and chooses. @@ -90,5 +90,5 @@ mobile app. ## Related -* [Organize work with projects](/docs/cowork/guide/projects.md) for the project context Dispatch routes knowledge work into -* [Cowork overview](/docs/cowork/overview.md) for how Dispatch fits alongside sessions and projects +* [Organize work with projects](https://claude.com/docs/cowork/guide/projects.md) for the project context Dispatch routes knowledge work into +* [Cowork overview](https://claude.com/docs/cowork/overview.md) for how Dispatch fits alongside sessions and projects diff --git a/content/claude/cowork/guide/plugins.md b/content/claude/cowork/guide/plugins.md index 2e83272cc..77d21c478 100644 --- a/content/claude/cowork/guide/plugins.md +++ b/content/claude/cowork/guide/plugins.md @@ -8,7 +8,7 @@ A plugin is a package that extends what Claude can do in Cowork. Installing one can add skills, MCP connectors, subagents, commands, or hooks in a single step. Plugins come from the marketplace, from your organization, or from a file you upload. -A plugin you install is saved to your account, so its skills and connectors are also available in chat and in Claude Code. [Plugins](/docs/plugins/overview.md) covers what each surface loads; this page covers the Cowork side. +A plugin you install is saved to your account, so its skills and connectors are also available in chat and in Claude Code. [Plugins](https://claude.com/docs/plugins/overview.md) covers what each surface loads; this page covers the Cowork side. To get started, [install a plugin](#install-a-plugin) from **Customize**, or [add a Git repository as a marketplace](#use-a-git-repository-as-a-marketplace) to share plugins without publishing them. @@ -50,7 +50,7 @@ To install from a file instead, select the upload option on the Plugins page and ## Use a Git repository as a marketplace -A Git repository that contains plugin packages can serve as a marketplace, which lets you share plugins without publishing to the public catalog. For a marketplace you add yourself, repositories on GitHub, including GitHub Enterprise, are supported, and public repositories on GitLab and Bitbucket also work. To distribute plugins to everyone in a Team or Enterprise organization, an Owner syncs the repository from organization settings instead, as [Manage plugins for your organization](/docs/plugins/admin.md#add-your-own-plugins) describes. +A Git repository that contains plugin packages can serve as a marketplace, which lets you share plugins without publishing to the public catalog. For a marketplace you add yourself, repositories on GitHub, including GitHub Enterprise, are supported, and public repositories on GitLab and Bitbucket also work. To distribute plugins to everyone in a Team or Enterprise organization, an Owner syncs the repository from organization settings instead, as [Manage plugins for your organization](https://claude.com/docs/plugins/admin.md#add-your-own-plugins) describes. **1. Add the repository** @@ -65,7 +65,7 @@ marketplaces. Install them the same way. Select **Check for updates** on a marketplace to pull the latest plugins from its repository, or turn on **Sync automatically**. -For marketplaces your organization manages, see [Manage plugins for your organization](/docs/plugins/admin.md), or [MCP, plugins, skills, and hooks](/docs/cowork/3p/extensions.md) if your organization deploys Claude Desktop with its own model provider. +For marketplaces your organization manages, see [Manage plugins for your organization](https://claude.com/docs/plugins/admin.md), or [MCP, plugins, skills, and hooks](https://claude.com/docs/cowork/3p/extensions.md) if your organization deploys Claude Desktop with its own model provider. ## Limits @@ -85,7 +85,7 @@ The in-app skill viewer previews individual files up to 1 MB. Larger files appea On Team and Enterprise plans, administrators can require certain plugins for everyone in the organization. Required plugins install automatically and show **This plugin is required by your organization**; you can't remove them. -For how administrators provision plugins, see [Manage plugins for your organization](/docs/plugins/admin.md). +For how administrators provision plugins, see [Manage plugins for your organization](https://claude.com/docs/plugins/admin.md). ## Update and remove plugins @@ -95,7 +95,7 @@ To remove a plugin you installed, open it under **Customize > Plugins** and sele ## Next steps -* [Plugins](/docs/plugins/overview.md): how plugins work across Claude products -* [Manage plugins for your organization](/docs/plugins/admin.md): administrator provisioning on Team and Enterprise plans -* [Submit a plugin](/docs/plugins/submit.md): publish your own to the marketplace -* [MCP, plugins, skills, and hooks](/docs/third-party/claude-desktop/extensions.md): for organizations that deploy Claude Desktop with their own model provider +* [Plugins](https://claude.com/docs/plugins/overview.md): how plugins work across Claude products +* [Manage plugins for your organization](https://claude.com/docs/plugins/admin.md): administrator provisioning on Team and Enterprise plans +* [Submit a plugin](https://claude.com/docs/plugins/submit.md): publish your own to the marketplace +* [MCP, plugins, skills, and hooks](https://claude.com/docs/third-party/claude-desktop/extensions.md): for organizations that deploy Claude Desktop with their own model provider diff --git a/content/claude/cowork/guide/projects.md b/content/claude/cowork/guide/projects.md index 9b96432d2..5431fc5ef 100644 --- a/content/claude/cowork/guide/projects.md +++ b/content/claude/cowork/guide/projects.md @@ -49,7 +49,7 @@ You can attach more folders, links, or projects from Chat at any time from the p Select a project in the sidebar to start a new Cowork session with that project's folders mounted and instructions applied. Files Claude creates land in the project's folders; what Claude learns during the session is saved to the project's memory for next time. -[Dispatch](/docs/cowork/guide/dispatch.md) can also route background tasks into a project, so long-running work picks up the same folders, instructions, and memory. +[Dispatch](https://claude.com/docs/cowork/guide/dispatch.md) can also route background tasks into a project, so long-running work picks up the same folders, instructions, and memory. When you drag files or folders into a project, individual files are copied into the project's first folder and folders are mounted as additional project folders. Claude reads individual files up to 50 MB. @@ -73,6 +73,6 @@ To archive, open the project's menu in the sidebar and choose **Archive**. ## Related -* [Run tasks in the background with Dispatch](/docs/cowork/guide/dispatch.md) to run work inside a project without watching each step -* [Install plugins](/docs/cowork/guide/plugins.md) to extend what Claude can do in a project's sessions -* [Cowork overview](/docs/cowork/overview.md) for how projects relate to sessions and Dispatch +* [Run tasks in the background with Dispatch](https://claude.com/docs/cowork/guide/dispatch.md) to run work inside a project without watching each step +* [Install plugins](https://claude.com/docs/cowork/guide/plugins.md) to extend what Claude can do in a project's sessions +* [Cowork overview](https://claude.com/docs/cowork/overview.md) for how projects relate to sessions and Dispatch diff --git a/content/claude/cowork/hipaa-setup.md b/content/claude/cowork/hipaa-setup.md index b3102dc17..f9c07e5ad 100644 --- a/content/claude/cowork/hipaa-setup.md +++ b/content/claude/cowork/hipaa-setup.md @@ -18,11 +18,11 @@ The HIPAA configuration is an organization setting on Claude Enterprise plans, f > > The Claude Code extensions for VS Code and JetBrains aren't part of (local mode). They keep working with the HIPAA configuration applied, but your BAA doesn't cover them. See the [Implementation Guide](https://trust.anthropic.com/resources?s=l1wrssd9hsbi4gak0tp5a6\&name=%5Banthropic%5D-hipaa-ready-offering-implementation-guide) for the full list of Eligible Services. -This page is for the IT or security administrator who manages the macOS and Windows computers where members run [Cowork](/docs/cowork/overview.md) in Claude Desktop. Other readers start on a different page: +This page is for the IT or security administrator who manages the macOS and Windows computers where members run [Cowork](https://claude.com/docs/cowork/overview.md) in Claude Desktop. Other readers start on a different page: * **The Primary Owner, who applies the HIPAA configuration**: see [Use Claude Code (local mode) and Cowork (local mode) on a HIPAA-ready Enterprise plan](https://support.claude.com/en/articles/17318731) for what your BAA covers and how to apply the configuration * **Administrators who prepare computers for Claude Code in the terminal**: see [Set up Claude Code (local mode) for a HIPAA-ready organization](https://code.claude.com/docs/en/hipaa-setup) -* **Administrators of a third-party deployment**: see [Legal and compliance](/docs/third-party/claude-desktop/legal.md). The HIPAA configuration doesn't apply to [Claude Desktop on third-party platforms](/docs/third-party/claude-desktop/overview.md) +* **Administrators of a third-party deployment**: see [Legal and compliance](https://claude.com/docs/third-party/claude-desktop/legal.md). The HIPAA configuration doesn't apply to [Claude Desktop on third-party platforms](https://claude.com/docs/third-party/claude-desktop/overview.md) The table shows when to do each part of the setup: @@ -52,7 +52,7 @@ For organizations with the HIPAA configuration, Anthropic's servers reject reque On an older version, members see an **Update required** dialog that tells them to update Claude Desktop. The dialog's text names Code, but members see it in Cowork too. What the dialog offers depends on whether automatic updates are on: * **Automatic updates are on**: the dialog has an **Update now** button -* **You turned off automatic updates** with the [`disableAutoUpdates`](/docs/third-party/claude-desktop/configuration#disableautoupdates) key: the dialog tells the member to ask their administrator. Deploy each new version with your device management tool. On macOS, and on Windows where Claude Desktop was installed from the `.msix` package, once the newer version is on the device the dialog has an **Update now** button instead. +* **You turned off automatic updates** with the [`disableAutoUpdates`](https://claude.com/docs/third-party/claude-desktop/configuration#disableautoupdates) key: the dialog tells the member to ask their administrator. Deploy each new version with your device management tool. On macOS, and on Windows where Claude Desktop was installed from the `.msix` package, once the newer version is on the device the dialog has an **Update now** button instead. ### Allow network access for Claude Desktop @@ -66,7 +66,7 @@ Allow the Anthropic hosts listed in [Desktop network access requirements](https: ### Deploy the Claude Desktop policy -A Claude Desktop policy is a set of settings that your device management tool installs on each computer, as a configuration profile on macOS or as registry values on Windows. You can use one to restrict sign-in to your organization, turn off local MCP servers and desktop extensions, and keep session content out of [Cowork monitoring](/docs/cowork/monitoring.md) events. +A Claude Desktop policy is a set of settings that your device management tool installs on each computer, as a configuration profile on macOS or as registry values on Windows. You can use one to restrict sign-in to your organization, turn off local MCP servers and desktop extensions, and keep session content out of [Cowork monitoring](https://claude.com/docs/cowork/monitoring.md) events. The policy in this section is a sample that we recommend as a starting point. Your organization is responsible for deciding what its own environment needs and for confirming that its configuration meets those needs. @@ -101,7 +101,7 @@ Windows Registry Editor Version 5.00 "otlpContentCapture"="[]" ``` -The sample writes every value as a string, including `false` and `[]`. [Value types](/docs/third-party/claude-desktop/configuration-format.md#value-types) lists the other encodings Claude Desktop accepts. +The sample writes every value as a string, including `false` and `[]`. [Value types](https://claude.com/docs/third-party/claude-desktop/configuration-format.md#value-types) lists the other encodings Claude Desktop accepts. > [!NOTE] > @@ -109,14 +109,14 @@ The sample writes every value as a string, including `false` and `[]`. [Value ty #### What each Claude Desktop key does -The table shows what to set each key to and what Claude Desktop enforces for it. The key names link to the [configuration reference](/docs/third-party/claude-desktop/configuration.md), which describes third-party deployments. Some of its keys apply only to third-party deployments, such as `coworkEgressAllowedHosts` and `otlpEndpoint`. +The table shows what to set each key to and what Claude Desktop enforces for it. The key names link to the [configuration reference](https://claude.com/docs/third-party/claude-desktop/configuration.md), which describes third-party deployments. Some of its keys apply only to third-party deployments, such as `coworkEgressAllowedHosts` and `otlpEndpoint`. | Key | Value | What Claude Desktop enforces | | :- | :- | :- | | `forceLoginOrgUUID` | Your organization ID, which an Owner can copy from [claude.ai admin settings](https://claude.ai/admin-settings/organization) | After a member of your organization signs in, Claude Desktop switches them to your organization. Anyone else sees a page that reads "This account is not approved by your enterprise admin" and can only log out | -| [`isLocalDevMcpEnabled`](/docs/third-party/claude-desktop/configuration#islocaldevmcpenabled) | `false` | Members can't add local MCP servers to chat or Cowork. Local MCP servers that plugins provide stop loading too, including plugins your organization distributes. Claude Desktop also skips the setup that connects it to the Claude in Chrome extension | -| [`isDesktopExtensionEnabled`](/docs/third-party/claude-desktop/configuration#isdesktopextensionenabled) | `false` | Installed desktop extensions stop loading, and members can't install new ones | -| [`otlpContentCapture`](/docs/third-party/claude-desktop/configuration#otlpcontentcapture) | `[]` | Cowork monitoring events carry metadata only | +| [`isLocalDevMcpEnabled`](https://claude.com/docs/third-party/claude-desktop/configuration#islocaldevmcpenabled) | `false` | Members can't add local MCP servers to chat or Cowork. Local MCP servers that plugins provide stop loading too, including plugins your organization distributes. Claude Desktop also skips the setup that connects it to the Claude in Chrome extension | +| [`isDesktopExtensionEnabled`](https://claude.com/docs/third-party/claude-desktop/configuration#isdesktopextensionenabled) | `false` | Installed desktop extensions stop loading, and members can't install new ones | +| [`otlpContentCapture`](https://claude.com/docs/third-party/claude-desktop/configuration#otlpcontentcapture) | `[]` | Cowork monitoring events carry metadata only | Cowork monitoring sends events to the OpenTelemetry collector that your organization sets up. When `otlpContentCapture` isn't set, those events can include prompt text, model responses, and tool inputs. @@ -136,7 +136,7 @@ Claude Desktop applies these keys when it starts, so quit Claude Desktop on a ma | `isLocalDevMcpEnabled` | Open **Settings** in Claude Desktop. The list of entries has no **Developer** entry | | `isDesktopExtensionEnabled` | Open **Settings** in Claude Desktop. The list of entries has no **Extensions** entry | | `forceLoginOrgUUID` | Sign in with an account that isn't in your organization. Claude Desktop shows "This account is not approved by your enterprise admin" | -| `otlpContentCapture` | Run a Cowork task and read the events your [Cowork monitoring](/docs/cowork/monitoring.md) collector receives. They contain no prompt text, model responses, or tool inputs | +| `otlpContentCapture` | Run a Cowork task and read the events your [Cowork monitoring](https://claude.com/docs/cowork/monitoring.md) collector receives. They contain no prompt text, model responses, or tool inputs | ### Check which Claude Code managed settings apply in Cowork @@ -172,7 +172,7 @@ Cowork runs shell commands in a virtual machine (VM) on the member's computer. A To restrict which hosts the VM reaches, you can ask an Owner to go to [**Organization settings > Capabilities**](https://claude.ai/admin-settings/capabilities) and turn off the **Allow network egress** toggle under **Code execution**. Turning the toggle off has these effects: -* **Cowork**: the VM reaches only `anthropic.com` and `claude.com` hosts, plus your OpenTelemetry collector if [Cowork monitoring](/docs/cowork/monitoring.md) is set up +* **Cowork**: the VM reaches only `anthropic.com` and `claude.com` hosts, plus your OpenTelemetry collector if [Cowork monitoring](https://claude.com/docs/cowork/monitoring.md) is set up * **Chat**: the toggle also applies to code execution in chat * **[Web search](#turn-off-web-search-in-cowork) and connectors**: neither goes through the VM, so the toggle doesn't limit them @@ -188,7 +188,7 @@ If **All domains** is still selected when your organization applies the HIPAA co Web search in Cowork follows your organization's web search setting. Applying the HIPAA configuration doesn't change it. If web search is on and your organization's own policy forbids it, turn it off at one of these levels: * **For your whole organization, in chat and Cowork**: ask an Owner to go to [**Organization settings > Capabilities**](https://claude.ai/admin-settings/capabilities) and turn off the **Web search** toggle under **Data sources** -* **For Cowork and the Code tab on managed computers**: add the [`disabledBuiltinTools`](/docs/third-party/claude-desktop/configuration#disabledbuiltintools) key to the [Claude Desktop policy](#deploy-the-claude-desktop-policy) +* **For Cowork and the Code tab on managed computers**: add the [`disabledBuiltinTools`](https://claude.com/docs/third-party/claude-desktop/configuration#disabledbuiltintools) key to the [Claude Desktop policy](#deploy-the-claude-desktop-policy) The `disabledBuiltinTools` key takes a list of tool names, written as a string: @@ -233,7 +233,7 @@ Confirm that the title bar shows a **HIPAA configured** label. On a Mac, open th **4. Check your monitoring events** -If your organization uses [Cowork monitoring](/docs/cowork/monitoring.md), run a Cowork task. Confirm that the events your collector receives contain no prompt text, model responses, or tool inputs. +If your organization uses [Cowork monitoring](https://claude.com/docs/cowork/monitoring.md), run a Cowork task. Confirm that the events your collector receives contain no prompt text, model responses, or tool inputs. The [HIPAA feature availability table](https://support.claude.com/en/articles/8114513-business-associate-agreements-baa-for-commercial-customers) lists which Cowork features are off with the HIPAA configuration applied, and which ones an Owner can turn back on. @@ -318,5 +318,5 @@ Restart Claude Desktop. After Claude Desktop has run under the HIPAA configurati ## Related resources * [Set up Claude Code (local mode) for a HIPAA-ready organization](https://code.claude.com/docs/en/hipaa-setup) -* [Cowork monitoring](/docs/cowork/monitoring.md) +* [Cowork monitoring](https://claude.com/docs/cowork/monitoring.md) * [Claude Code managed settings](https://code.claude.com/docs/en/managed-settings) diff --git a/content/claude/cowork/monitoring.md b/content/claude/cowork/monitoring.md index 4a772b062..07e642136 100644 --- a/content/claude/cowork/monitoring.md +++ b/content/claude/cowork/monitoring.md @@ -38,20 +38,20 @@ Configure monitoring from the Cowork admin settings: ## Events -Cowork exports the following events to your OTel collector. The collector settings in [Setup](#setup) apply to every Cowork session that runs on a user's computer in Claude Desktop, including Cowork tasks that [Dispatch](/docs/cowork/guide/dispatch.md) starts. They don't apply to Code tab sessions, including Code sessions that Dispatch starts. Whether events include user prompt text, model response text, and tool inputs depends on the [`otlpContentCapture`](/docs/third-party/claude-desktop/configuration#otlpcontentcapture) managed configuration key on each user's device. When the key isn't set, current versions of Claude Desktop send metadata only, and [some older versions](#content-capture) on first-party deployments send content. +Cowork exports the following events to your OTel collector. The collector settings in [Setup](#setup) apply to every Cowork session that runs on a user's computer in Claude Desktop, including Cowork tasks that [Dispatch](https://claude.com/docs/cowork/guide/dispatch.md) starts. They don't apply to Code tab sessions, including Code sessions that Dispatch starts. Whether events include user prompt text, model response text, and tool inputs depends on the [`otlpContentCapture`](https://claude.com/docs/third-party/claude-desktop/configuration#otlpcontentcapture) managed configuration key on each user's device. When the key isn't set, current versions of Claude Desktop send metadata only, and [some older versions](#content-capture) on first-party deployments send content. ### Content capture Events can carry user prompt text, model response text, and tool inputs in addition to metadata. You set which of these the events carry with the `otlpContentCapture` managed configuration key on each user's device. -To set the key, deploy it with your device management tool to the [managed configuration location for each operating system](/docs/third-party/claude-desktop/configuration-format.md#how-keys-are-read). To export metadata only, set `otlpContentCapture` to an empty list, written as the two characters `[]`. Claude Desktop reads an empty string as if the key weren't set. The key takes effect when Claude Desktop restarts. +To set the key, deploy it with your device management tool to the [managed configuration location for each operating system](https://claude.com/docs/third-party/claude-desktop/configuration-format.md#how-keys-are-read). To export metadata only, set `otlpContentCapture` to an empty list, written as the two characters `[]`. Claude Desktop reads an empty string as if the key weren't set. The key takes effect when Claude Desktop restarts. The table shows what events carry on current versions of Claude Desktop, for a Cowork session that runs on the user's computer. | `otlpContentCapture` on the device | Content that events carry | | - | - | | Not set | No content. Events carry metadata only | -| Set to a list of [categories](/docs/third-party/claude-desktop/telemetry.md#content-capture) | By default, the content in the listed categories, and model response text when `userPrompts` is listed | +| Set to a list of [categories](https://claude.com/docs/third-party/claude-desktop/telemetry.md#content-capture) | By default, the content in the listed categories, and model response text when `userPrompts` is listed | | Set to an empty list, `[]` | No content. Events carry metadata only | On first-party deployments, some older versions of Claude Desktop send user prompt text, model response text, and the [`toolDetails` content](#security-and-privacy) when the key isn't set. To make sure a device sends metadata only, set the key to `[]`, which works on every version that supports the key. @@ -68,7 +68,7 @@ When a user submits a prompt, Cowork may make multiple API calls and run several To trace all activity triggered by a single prompt, filter your events by a specific `prompt.id` value. -On third-party deployments, you can additionally enable OpenTelemetry trace export with the [`otlpTracesEnabled`](/docs/third-party/claude-desktop/telemetry#traces-beta) setting (beta). When it is enabled, events emitted while a prompt is processed also carry `trace_id` and `span_id`, linking them to the session's trace spans for end-to-end correlation in your observability backend. +On third-party deployments, you can additionally enable OpenTelemetry trace export with the [`otlpTracesEnabled`](https://claude.com/docs/third-party/claude-desktop/telemetry#traces-beta) setting (beta). When it is enabled, events emitted while a prompt is processed also carry `trace_id` and `span_id`, linking them to the session's trace spans for end-to-end correlation in your observability backend. ### Standard attributes @@ -87,7 +87,7 @@ All events include these attributes: > [!NOTE] > -> The account attributes — `organization.id`, `user.account_uuid`, `user.account_id`, and `user.email` — are populated from the user's Anthropic account, so they appear on first-party deployments only. On [third-party deployments](/docs/third-party/claude-desktop/overview.md) there is no Anthropic account and these attributes are absent; instead, the export carries the signed-in user's identity as the `enduser.id` resource attribute, described under [User attribution](/docs/third-party/claude-desktop/telemetry.md#user-attribution). The `process.owner` resource attribute (the operating-system login name) is standard OpenTelemetry process metadata and is present on all deployments. +> The account attributes — `organization.id`, `user.account_uuid`, `user.account_id`, and `user.email` — are populated from the user's Anthropic account, so they appear on first-party deployments only. On [third-party deployments](https://claude.com/docs/third-party/claude-desktop/overview.md) there is no Anthropic account and these attributes are absent; instead, the export carries the signed-in user's identity as the `enduser.id` resource attribute, described under [User attribution](https://claude.com/docs/third-party/claude-desktop/telemetry.md#user-attribution). The `process.owner` resource attribute (the operating-system login name) is standard OpenTelemetry process metadata and is present on all deployments. ### User prompt event @@ -125,7 +125,7 @@ All [standard attributes](#standard-attributes), plus: | `response_length` | Length of the response | | `response` | Model response text. Includes text output only; thinking content is excluded. Truncated to 60 KB. When model response capture is disabled, the value is the literal string ``. | -By default, model responses are captured when [`otlpContentCapture`](/docs/third-party/claude-desktop/telemetry#content-capture) includes `assistantResponses`, and also whenever user prompts are captured. +By default, model responses are captured when [`otlpContentCapture`](https://claude.com/docs/third-party/claude-desktop/telemetry#content-capture) includes `assistantResponses`, and also whenever user prompts are captured. ### Tool result event @@ -247,13 +247,13 @@ All events are exported with the following resource attributes: | `host.arch` | Host architecture (e.g., `arm64`) | | `os.type` | Operating system type (e.g., `darwin`) | | `os.version` | Operating system version string | -| `enduser.id` | The signed-in user's identity, on third-party deployments only. Controlled by the [`endUserAttribution`](/docs/third-party/claude-desktop/configuration#enduserattribution) setting; see [User attribution](/docs/third-party/claude-desktop/telemetry.md#user-attribution). | +| `enduser.id` | The signed-in user's identity, on third-party deployments only. Controlled by the [`endUserAttribution`](https://claude.com/docs/third-party/claude-desktop/configuration#enduserattribution) setting; see [User attribution](https://claude.com/docs/third-party/claude-desktop/telemetry.md#user-attribution). | | `process.owner` | Operating-system login name | ## Security and privacy * Events are only exported when an admin configures the OTLP endpoint -* The [`otlpContentCapture`](#content-capture) key on each device sets which content events carry. Each category you list in the key adds its content. The [full category list](/docs/third-party/claude-desktop/telemetry.md#content-capture) has two more than these three: +* The [`otlpContentCapture`](#content-capture) key on each device sets which content events carry. Each category you list in the key adds its content. The [full category list](https://claude.com/docs/third-party/claude-desktop/telemetry.md#content-capture) has two more than these three: * `userPrompts`: user prompt text * `assistantResponses`: model response text * `toolDetails`: the arguments a tool was called with, in `tool_input` and `tool_parameters`, such as shell commands, file paths, URLs, and search patterns. It also covers the text of a failed tool's error message, in `error` on the [tool result event](#tool-result-event) @@ -261,4 +261,4 @@ All events are exported with the following resource attributes: * When `otlpContentCapture` isn't set, current versions of Claude Desktop send metadata only. To make sure a device sends metadata only, set the key to `[]` * Metadata includes `workspace.host_paths`, the paths of the folders a user connects to a task. `otlpContentCapture` doesn't control this attribute, so events carry the paths even when the key is `[]`. If folder names can be sensitive, configure your telemetry backend to filter or redact it * On first-party deployments, `user.email` is always included in event attributes, so configure your telemetry backend to filter or redact it if this is a concern -* On third-party deployments, `user.email` is absent; the export identifies users with the `enduser.id` resource attribute, controlled by the [`endUserAttribution`](/docs/third-party/claude-desktop/configuration#enduserattribution) setting +* On third-party deployments, `user.email` is absent; the export identifies users with the `enduser.id` resource attribute, controlled by the [`endUserAttribution`](https://claude.com/docs/third-party/claude-desktop/configuration#enduserattribution) setting diff --git a/content/claude/cowork/overview.md b/content/claude/cowork/overview.md index c6bb2115b..fe3681c45 100644 --- a/content/claude/cowork/overview.md +++ b/content/claude/cowork/overview.md @@ -19,19 +19,19 @@ Cowork uses the same agentic architecture that powers Claude Code, accessible wi Cowork supports the same extensibility features available across Claude products: -> **[Connectors](/docs/connectors/overview.md)** +> **[Connectors](https://claude.com/docs/connectors/overview.md)** > > Connect Claude to your tools and data sources using MCP. -> **[Skills](/docs/skills/overview.md)** +> **[Skills](https://claude.com/docs/skills/overview.md)** > > Teach Claude reusable workflows with custom instructions. -> **[Plugins](/docs/plugins/overview.md)** +> **[Plugins](https://claude.com/docs/plugins/overview.md)** > > Bundle skills, connectors, and more into shareable packages. -> **[Monitoring](/docs/cowork/monitoring.md)** +> **[Monitoring](https://claude.com/docs/cowork/monitoring.md)** > > Track usage and activity across your organization. diff --git a/content/claude/directory/publish.md b/content/claude/directory/publish.md index 8eec342bf..86feaf00f 100644 --- a/content/claude/directory/publish.md +++ b/content/claude/directory/publish.md @@ -14,9 +14,9 @@ If you're ready to submit, open the [developer portal](https://claude.ai/directo > [!NOTE] > -> * If you're still deciding what goes in your plugin, see [Decide what to include in your plugin](/docs/connectors/building/what-to-build.md) -> * If you want to build a small example plugin and submit it, see [Build your first plugin](/docs/plugins/quickstart.md) -> * If you want to share a plugin without a public listing, use [your own marketplace](https://code.claude.com/docs/en/plugins/publish) for Claude Code or [roll it out to your whole organization](/docs/plugins/org-rollout.md) +> * If you're still deciding what goes in your plugin, see [Decide what to include in your plugin](https://claude.com/docs/connectors/building/what-to-build.md) +> * If you want to build a small example plugin and submit it, see [Build your first plugin](https://claude.com/docs/plugins/quickstart.md) +> * If you want to share a plugin without a public listing, use [your own marketplace](https://code.claude.com/docs/en/plugins/publish) for Claude Code or [roll it out to your whole organization](https://claude.com/docs/plugins/org-rollout.md) > * If you came here from [Claude Marketplace](https://claude.com/marketplace), the website where you browse plugins, connectors, partner products, and service partners, you're in the right place: there's no separate Claude Marketplace submission, and you submit to the directory instead ## Before you submit to the directory @@ -52,8 +52,8 @@ Under **What would you like to submit?**, choose **Plugin bundle** or **MCP conn Work through the checklist and submit pages for that kind: -* [Plugin pre-submission checklist](/docs/plugins/pre-submission-checklist.md), then [Submit a plugin](/docs/plugins/submit.md): for a plugin bundle -* [Connector pre-submission checklist](/docs/connectors/building/review-criteria.md), then [Submit a connector](/docs/connectors/building/submission.md): for an MCP connector +* [Plugin pre-submission checklist](https://claude.com/docs/plugins/pre-submission-checklist.md), then [Submit a plugin](https://claude.com/docs/plugins/submit.md): for a plugin bundle +* [Connector pre-submission checklist](https://claude.com/docs/connectors/building/review-criteria.md), then [Submit a connector](https://claude.com/docs/connectors/building/submission.md): for an MCP connector ## Submit your plugin, and your MCP server as a connector @@ -73,7 +73,7 @@ If you have a remote MCP server, always submit it as an MCP connector, even when For your own product, make two submissions: the server as an MCP connector, then the plugin bundle whose skills teach Claude how to use it. Point the bundle's MCP server configuration at the same URL, so people who have both see one set of tools rather than two. -Desktop extension listings in the directory are deprecated, and the directory no longer accepts local MCP servers packaged as desktop extensions (MCPB). To distribute a local MCP server through the directory, include it in a plugin bundle. [Compare component support by app](/docs/plugins/platform-support.md#compare-component-support-by-app) shows where a plugin's local servers run. +Desktop extension listings in the directory are deprecated, and the directory no longer accepts local MCP servers packaged as desktop extensions (MCPB). To distribute a local MCP server through the directory, include it in a plugin bundle. [Compare component support by app](https://claude.com/docs/plugins/platform-support.md#compare-component-support-by-app) shows where a plugin's local servers run. Skills aren't a submission type on their own. Put them in a bundle. @@ -81,14 +81,14 @@ Skills aren't a submission type on their own. Put them in a bundle. Anthropic checks every submission before it's listed, and checks a plugin bundle again with each new version. -* **Plugin bundles**: every version gets automated validation and a security scan, and a person reviews a new listing before it goes live. The [plugin pre-submission checklist](/docs/plugins/pre-submission-checklist.md) lists what validation checks -* **MCP connectors**: every submission is scanned automatically for policy compliance and, by default, listed as a Community connector. Anthropic may escalate a listing to Verified review, in which a reviewer tests each tool against the [connector pre-submission checklist](/docs/connectors/building/review-criteria.md) +* **Plugin bundles**: every version gets automated validation and a security scan, and a person reviews a new listing before it goes live. The [plugin pre-submission checklist](https://claude.com/docs/plugins/pre-submission-checklist.md) lists what validation checks +* **MCP connectors**: every submission is scanned automatically for policy compliance and, by default, listed as a Community connector. Anthropic may escalate a listing to Verified review, in which a reviewer tests each tool against the [connector pre-submission checklist](https://claude.com/docs/connectors/building/review-criteria.md) Every listing is subject to the [Anthropic Software Directory Terms](https://support.claude.com/en/articles/13145338-anthropic-software-directory-terms) and [Software Directory Policy](https://support.claude.com/en/articles/13145358-anthropic-software-directory-policy). -There's no separate application for the **Verified** label or for where in the directory a listing is placed. Anthropic decides both during review, and [Connector verification](/docs/connectors/verification.md#list-your-own-connector) explains how a listing becomes Verified and what each label means to people installing it. +There's no separate application for the **Verified** label or for where in the directory a listing is placed. Anthropic decides both during review, and [Connector verification](https://claude.com/docs/connectors/verification.md#list-your-own-connector) explains how a listing becomes Verified and what each label means to people installing it. -Review time isn't fixed. Your submission's current state shows in the portal, and [Track your directory submission](/docs/directory/submission-status.md) explains what each status in the portal means and who acts next. +Review time isn't fixed. Your submission's current state shows in the portal, and [Track your directory submission](https://claude.com/docs/directory/submission-status.md) explains what each status in the portal means and who acts next. ## Move an earlier submission to the developer portal @@ -101,7 +101,7 @@ A listing you submitted before the developer portal existed stays as it is. Move The earlier Claude Console form for plugin submissions is no longer supported. To move a submission you made through it, open [**Plugin submissions**](https://platform.claude.com/plugins/submissions) in the Claude Console: * **A submission with a Withdraw button**: select **Withdraw**. Then submit the plugin again at [claude.ai/directory/manage](https://claude.ai/directory/manage) from a claude.ai account -* **A submission with no Withdraw button**: email `directory@anthropic.com` to have it moved to the developer portal instead of starting a new submission there. If you already saved a draft in the developer portal for the same repository and folder, [delete the draft](/docs/plugins/submit.md#withdraw-or-delist-a-plugin) first +* **A submission with no Withdraw button**: email `directory@anthropic.com` to have it moved to the developer portal instead of starting a new submission there. If you already saved a draft in the developer portal for the same repository and folder, [delete the draft](https://claude.com/docs/plugins/submit.md#withdraw-or-delist-a-plugin) first Until the Console submission is withdrawn or moved, the portal can refuse **Submit for review** for the same repository and folder with **Already submitted by another organization**. @@ -109,17 +109,17 @@ Until the Console submission is withdrawn or moved, the portal can refuse **Subm A directory listing gives you: -* **One listing across Claude's apps**: you submit once, and the listing appears in each app that [supports what your plugin contains](/docs/plugins/platform-support.md) -* **One developer portal for the whole life of a listing**: at [claude.ai/directory/manage](https://claude.ai/directory/manage) you submit, follow each submission's status, publish new versions, see usage, and change or delist the listing. [Track your directory submission](/docs/directory/submission-status.md) explains each status -* **Updates without resubmitting**: after the first submission, you keep the listing current by merging to the tracked branch as you normally release. The directory picks up each commit, scans it, and once it's published serves it to the people who have your plugin. [Update a published plugin](/docs/plugins/submit.md#update-a-published-plugin) covers the steps -* **Usage figures**: a published plugin's **Usage** tab shows installs, versions, how often each skill and MCP server runs, and error rates. A listed connector has a dashboard with server health and usage by tool. [Track published plugin usage](/docs/connectors/building/after-publishing.md#track-published-plugin-usage) and [Manage your directory listing](/docs/connectors/building/managing-your-listing.md) cover each +* **One listing across Claude's apps**: you submit once, and the listing appears in each app that [supports what your plugin contains](https://claude.com/docs/plugins/platform-support.md) +* **One developer portal for the whole life of a listing**: at [claude.ai/directory/manage](https://claude.ai/directory/manage) you submit, follow each submission's status, publish new versions, see usage, and change or delist the listing. [Track your directory submission](https://claude.com/docs/directory/submission-status.md) explains each status +* **Updates without resubmitting**: after the first submission, you keep the listing current by merging to the tracked branch as you normally release. The directory picks up each commit, scans it, and once it's published serves it to the people who have your plugin. [Update a published plugin](https://claude.com/docs/plugins/submit.md#update-a-published-plugin) covers the steps +* **Usage figures**: a published plugin's **Usage** tab shows installs, versions, how often each skill and MCP server runs, and error rates. A listed connector has a dashboard with server health and usage by tool. [Track published plugin usage](https://claude.com/docs/connectors/building/after-publishing.md#track-published-plugin-usage) and [Manage your directory listing](https://claude.com/docs/connectors/building/managing-your-listing.md) cover each ## Next steps These pages cover building and submitting a first plugin and, once a listing is published, maintaining it from the same portal: -* [Build your first plugin](/docs/plugins/quickstart.md): build a small example plugin and submit it to the directory -* [Track your submission](/docs/directory/submission-status.md): check what your submission's status means and who acts next -* [After publishing](/docs/connectors/building/after-publishing.md): update your server or plugin, and delist -* [Track published plugin usage](/docs/connectors/building/after-publishing.md#track-published-plugin-usage): see installs, versions, runs, and error rates on the plugin's **Usage** tab -* [Manage your directory listing](/docs/connectors/building/managing-your-listing.md): for an MCP connector, check health and usage metrics and edit the listing +* [Build your first plugin](https://claude.com/docs/plugins/quickstart.md): build a small example plugin and submit it to the directory +* [Track your submission](https://claude.com/docs/directory/submission-status.md): check what your submission's status means and who acts next +* [After publishing](https://claude.com/docs/connectors/building/after-publishing.md): update your server or plugin, and delist +* [Track published plugin usage](https://claude.com/docs/connectors/building/after-publishing.md#track-published-plugin-usage): see installs, versions, runs, and error rates on the plugin's **Usage** tab +* [Manage your directory listing](https://claude.com/docs/connectors/building/managing-your-listing.md): for an MCP connector, check health and usage metrics and edit the listing diff --git a/content/claude/directory/submission-status.md b/content/claude/directory/submission-status.md index 851ed9373..60d857542 100644 --- a/content/claude/directory/submission-status.md +++ b/content/claude/directory/submission-status.md @@ -12,7 +12,7 @@ This page is for anyone with a submission in the portal. Review time isn't fixed > [!NOTE] > -> If you haven't submitted yet, see [Publish to the directory](/docs/directory/publish.md). +> If you haven't submitted yet, see [Publish to the directory](https://claude.com/docs/directory/publish.md). Find your status in the table for your submission's kind: [plugin bundle](#plugin-bundle-statuses) or [MCP connector](#mcp-connector-statuses). If nothing is waiting on you and you still need an answer, see [Contact Anthropic about a submission](#contact-anthropic-about-a-submission). @@ -24,9 +24,9 @@ Open the plugin from **Submissions** in the developer portal. The status appears | :- | :- | :- | | **Draft** | Nothing has been sent to Anthropic yet | You. Select **Continue submission**. | | **Scanning** | You submitted, and the security scan is waiting to start or running. If a scan attempt fails on Anthropic's side or GitHub's, the directory retries it. | Anthropic. There's nothing to do on your side. | -| **Needs changes** | The newest version didn't pass, or the scanner couldn't fetch or accept the plugin. The plugin's page names what to change. | You. [Fix a failed version](/docs/plugins/submit.md#fix-a-failed-version) covers pushing a fix and resubmitting. | +| **Needs changes** | The newest version didn't pass, or the scanner couldn't fetch or accept the plugin. The plugin's page names what to change. | You. [Fix a failed version](https://claude.com/docs/plugins/submit.md#fix-a-failed-version) covers pushing a fix and resubmitting. | | **In review** | An Anthropic reviewer is checking the listing. When the version was held, the card names the category it's held for. The reviewer's decision appears on the plugin's page. | Anthropic | -| **Approved** | The version passed, and it isn't live yet. The card says who publishes it: an Anthropic reviewer, you, or the directory by itself. | Whoever the card names. [Publish a passing version](/docs/plugins/submit.md#publish-a-passing-version) explains the publish settings. | +| **Approved** | The version passed, and it isn't live yet. The card says who publishes it: an Anthropic reviewer, you, or the directory by itself. | Whoever the card names. [Publish a passing version](https://claude.com/docs/plugins/submit.md#publish-a-passing-version) explains the publish settings. | | **Published** | A version is live in the directory. The card also says what is happening with any newer version, such as being scanned, waiting with a reviewer, or not passing. A newer version that doesn't pass leaves the published one unaffected. | Nobody, unless the card names a newer version that needs changes | | **Not live yet** | The submission is marked published, and nothing is listed yet. The directory team has to list it. | Anthropic | | **Delisted** | The plugin isn't visible in the directory. Select **Relist plugin** to ask for it back. | You, if you want it listed again | @@ -38,7 +38,7 @@ Open the plugin from **Submissions** in the developer portal. The status appears Open the connector from the developer portal's list of submissions. A card at the top of the connector's page shows the status, one sentence about it, and the next step when there is one. -A submission doesn't pass through every status in the table. Anthropic scans each connector submission automatically and, by default, lists it as a Community connector with no action from you. Some submissions also get a review from a person, and the statuses that mention a reviewer apply to those. [How Anthropic reviews directory submissions](/docs/directory/publish.md#prepare-for-review) describes both. +A submission doesn't pass through every status in the table. Anthropic scans each connector submission automatically and, by default, lists it as a Community connector with no action from you. Some submissions also get a review from a person, and the statuses that mention a reviewer apply to those. [How Anthropic reviews directory submissions](https://claude.com/docs/directory/publish.md#prepare-for-review) describes both. | Status | What it means | Who acts next | | :- | :- | :- | @@ -49,7 +49,7 @@ A submission doesn't pass through every status in the table. Anthropic scans eac | **Approved** | The review team cleared the listing, and it isn't in the directory yet. It goes live when someone who can edit the listing publishes it. If you edit the listing before you publish, it returns to draft for another review. | You. Select **Publish**. | | **Published** | The connector is live in the directory. If you submitted an edit, the card says whether that edit is in review, and the live listing stays until the edit is approved. | Nobody | -[Manage your directory listing](/docs/connectors/building/managing-your-listing.md) covers reviewer feedback, listing edits, and the health and usage metrics for a published connector. +[Manage your directory listing](https://claude.com/docs/connectors/building/managing-your-listing.md) covers reviewer feedback, listing edits, and the health and usage metrics for a published connector. ## Contact Anthropic about a submission @@ -62,12 +62,12 @@ Include the listing's name, the organization you submitted from, and the status ## After your listing is published -A published listing appears in the directory that claude.ai, the Claude desktop and mobile apps, and Cowork share. [Plugin feature support across platforms](/docs/plugins/platform-support.md) lists which of a plugin's components load on each surface. +A published listing appears in the directory that claude.ai, the Claude desktop and mobile apps, and Cowork share. [Plugin feature support across platforms](https://claude.com/docs/plugins/platform-support.md) lists which of a plugin's components load on each surface. -A published connector is listed with the **Community** label by default. There's no application for the **Verified** label. [Connector verification](/docs/connectors/verification.md#list-your-own-connector) explains how a listing becomes Verified and what each label means to people installing it. +A published connector is listed with the **Community** label by default. There's no application for the **Verified** label. [Connector verification](https://claude.com/docs/connectors/verification.md#list-your-own-connector) explains how a listing becomes Verified and what each label means to people installing it. ## Next steps -* [After publishing](/docs/connectors/building/after-publishing.md): update your server or plugin, and delist -* [Submit your plugin](/docs/plugins/submit.md#after-you-submit-a-plugin): follow each new plugin version through the scan, review, and publishing -* [Manage your directory listing](/docs/connectors/building/managing-your-listing.md): for a connector, read reviewer feedback, edit the listing, and check its metrics +* [After publishing](https://claude.com/docs/connectors/building/after-publishing.md): update your server or plugin, and delist +* [Submit your plugin](https://claude.com/docs/plugins/submit.md#after-you-submit-a-plugin): follow each new plugin version through the scan, review, and publishing +* [Manage your directory listing](https://claude.com/docs/connectors/building/managing-your-listing.md): for a connector, read reviewer feedback, edit the listing, and check its metrics diff --git a/content/claude/extend/overview.md b/content/claude/extend/overview.md index 9841ba3ba..0c71d649d 100644 --- a/content/claude/extend/overview.md +++ b/content/claude/extend/overview.md @@ -6,39 +6,39 @@ > Choose how to customize Claude: MCP connectors give it access to your tools, skills teach it how you do a task, and plugins package both as one install. -You can customize Claude with [MCP connectors](/docs/connectors/getting-started.md), [skills](/docs/skills/overview.md), and [plugins](/docs/plugins/overview.md). MCP connectors give Claude access to a tool or data source, and skills teach it how to do a task the way you or your team does it. Plugins package skills, MCP connectors, commands, and agents into one unit that you can install once and share with others. +You can customize Claude with [MCP connectors](https://claude.com/docs/connectors/getting-started.md), [skills](https://claude.com/docs/skills/overview.md), and [plugins](https://claude.com/docs/plugins/overview.md). MCP connectors give Claude access to a tool or data source, and skills teach it how to do a task the way you or your team does it. Plugins package skills, MCP connectors, commands, and agents into one unit that you can install once and share with others. -You add all three from the [**Customize**](https://claude.ai/customize) page in claude.ai or the Claude desktop app. [Plugin feature support across platforms](/docs/plugins/platform-support.md) lists which parts of a plugin work in chat, Cowork, and Claude Code. +You add all three from the [**Customize**](https://claude.ai/customize) page in claude.ai or the Claude desktop app. [Plugin feature support across platforms](https://claude.com/docs/plugins/platform-support.md) lists which parts of a plugin work in chat, Cowork, and Claude Code. > [!NOTE] > -> If you want to make a connector or plugin for other people to install, see [Build for Claude](/docs/build/overview.md). Anyone on a paid Claude plan can submit one to Anthropic's directory for review without applying to a partner program first; on Team and Enterprise, an Owner submits it. +> If you want to make a connector or plugin for other people to install, see [Build for Claude](https://claude.com/docs/build/overview.md). Anyone on a paid Claude plan can submit one to Anthropic's directory for review without applying to a partner program first; on Team and Enterprise, an Owner submits it. ## Choose plugins, connectors, or skills Each card below leads to the setup page for one of the three. The last card is for Owners who manage plugins for a Team or Enterprise organization. -> **[Plugins](/docs/plugins/overview.md)** +> **[Plugins](https://claude.com/docs/plugins/overview.md)** > > Add a set of connectors, skills, and commands with one install, such as everything for one tool, or your team's standard setup. -> **[MCP connectors](/docs/connectors/getting-started.md)** +> **[MCP connectors](https://claude.com/docs/connectors/getting-started.md)** > > Give Claude access to a tool or data source, such as your files, calendar, issue tracker, or an internal API. -> **[Skills](/docs/skills/how-to.md)** +> **[Skills](https://claude.com/docs/skills/how-to.md)** > > Have Claude do a task a particular way, such as your release-note format, your contract checklist, or your weekly report. -> **[Plugins for your organization](/docs/plugins/admin.md)** +> **[Plugins for your organization](https://claude.com/docs/plugins/admin.md)** > > If you're an Owner on a Team or Enterprise plan, choose which plugins members can add, install some for everyone, and add your organization's own. ## Compare connectors, skills, and plugins -* **[MCP connectors](/docs/connectors/getting-started.md)** connect Claude to an external service, such as your files, calendar, issue tracker, or an internal API, so Claude can read from it and act in it. Each one is a connection to an MCP server, which the service runs so Claude can reach it. In Claude's settings, connectors appear under **Connectors** -* **[Skills](/docs/skills/overview.md)** are written instructions, optionally with scripts and reference files, that Claude loads when the task you give it calls for them. Use a skill when you want Claude to follow your process for a task -* **[Plugins](/docs/plugins/overview.md)** are installable packages. One plugin can hold skills, MCP connectors, commands you run by name, and agents Claude delegates parts of a task to. You can add a skill or a connector on its own. Use a plugin when you want several of them installed and shared as one unit +* **[MCP connectors](https://claude.com/docs/connectors/getting-started.md)** connect Claude to an external service, such as your files, calendar, issue tracker, or an internal API, so Claude can read from it and act in it. Each one is a connection to an MCP server, which the service runs so Claude can reach it. In Claude's settings, connectors appear under **Connectors** +* **[Skills](https://claude.com/docs/skills/overview.md)** are written instructions, optionally with scripts and reference files, that Claude loads when the task you give it calls for them. Use a skill when you want Claude to follow your process for a task +* **[Plugins](https://claude.com/docs/plugins/overview.md)** are installable packages. One plugin can hold skills, MCP connectors, commands you run by name, and agents Claude delegates parts of a task to. You can add a skill or a connector on its own. Use a plugin when you want several of them installed and shared as one unit When a plugin exists for a product you use, it bundles that product's connector with the skills that use it. After you add the plugin, you sign in to its connector from the plugin's page. @@ -50,12 +50,12 @@ The diagram shows where each of the three acts when you send one request. Connectors, skills, and plugins you add in claude.ai or the desktop app are saved to your account, so you have them in chat on the web, desktop, and mobile wherever you sign in. Claude Code picks them up when you sign in there with the same account. A plugin on your account also loads in your Cowork tasks. Things you add from the Claude Code command line stay on that machine. -In chat, you can use a plugin's skills, commands, and connectors. Cowork and Claude Code also run its agents. [Plugin feature support across platforms](/docs/plugins/platform-support.md) lists each component by app. +In chat, you can use a plugin's skills, commands, and connectors. Cowork and Claude Code also run its agents. [Plugin feature support across platforms](https://claude.com/docs/plugins/platform-support.md) lists each component by app. ## Next steps -* [Add your first connector](/docs/connectors/getting-started.md): connect one from the directory and use it in a conversation -* [Skills overview](/docs/skills/overview.md): turn on a skill Anthropic provides or add one of your own -* [Plugins](/docs/plugins/overview.md): find a plugin and add it to your account -* [Plugin feature support across platforms](/docs/plugins/platform-support.md): check whether a plugin's parts work where you use Claude -* [Build for Claude](/docs/build/overview.md): build a plugin or MCP server for other people and list it in Anthropic's directory +* [Add your first connector](https://claude.com/docs/connectors/getting-started.md): connect one from the directory and use it in a conversation +* [Skills overview](https://claude.com/docs/skills/overview.md): turn on a skill Anthropic provides or add one of your own +* [Plugins](https://claude.com/docs/plugins/overview.md): find a plugin and add it to your account +* [Plugin feature support across platforms](https://claude.com/docs/plugins/platform-support.md): check whether a plugin's parts work where you use Claude +* [Build for Claude](https://claude.com/docs/build/overview.md): build a plugin or MCP server for other people and list it in Anthropic's directory diff --git a/content/claude/government/account/overview.md b/content/claude/government/account/overview.md index 7a00f5920..89f990526 100644 --- a/content/claude/government/account/overview.md +++ b/content/claude/government/account/overview.md @@ -38,9 +38,9 @@ Video: Your account, usage limits, and getting help (1 min 57 s). Narrated with > > Who to ask: your organization's owner for a seat, a larger allowance, or a wrong organization or role. Your IT help desk for anything about the app on your computer. Your administrators can take it from there. -* The [**Account**](/docs/government/account/profile.md) tab shows who you are, including your name, email address, organization, role, and seat tier. Everything on this tab is read-only. Your name and email come from your agency's directory; your organization, role, and seat tier are set by your directory or by an administrator. -* The [**Usage**](/docs/government/account/usage.md) tab shows how much of your personal allowance you have used in the current 5-hour and 7-day windows, and when each one next resets. If you have hit a limit and Claude is paused, this tab is marked with a pulsing indicator in the navigation so you can spot it at a glance. -* The [**Sessions**](/docs/government/account/sessions.md) tab lists every browser and desktop application where you are currently signed in, with the option to sign any of them out remotely. +* The [**Account**](https://claude.com/docs/government/account/profile.md) tab shows who you are, including your name, email address, organization, role, and seat tier. Everything on this tab is read-only. Your name and email come from your agency's directory; your organization, role, and seat tier are set by your directory or by an administrator. +* The [**Usage**](https://claude.com/docs/government/account/usage.md) tab shows how much of your personal allowance you have used in the current 5-hour and 7-day windows, and when each one next resets. If you have hit a limit and Claude is paused, this tab is marked with a pulsing indicator in the navigation so you can spot it at a glance. +* The [**Sessions**](https://claude.com/docs/government/account/sessions.md) tab lists every browser and desktop application where you are currently signed in, with the option to sign any of them out remotely. ## The page footer @@ -50,6 +50,6 @@ At the bottom of every page in this portal you will find your email address and ## Things to know -* **Nothing here is editable.** Your name, email, organization, role, and seat tier are all set in your agency's directory or by an administrator, and they flow into Claude for Government automatically. If any of these details are wrong, the [Account](/docs/government/account/profile.md) page explains where each one comes from and who to contact. +* **Nothing here is editable.** Your name, email, organization, role, and seat tier are all set in your agency's directory or by an administrator, and they flow into Claude for Government automatically. If any of these details are wrong, the [Account](https://claude.com/docs/government/account/profile.md) page explains where each one comes from and who to contact. * **The three tabs are independent.** Looking at your usage or your sessions has no effect on the other tabs, and the Sign out button in the footer works from any of them. * **The pulsing indicator on the Usage tab is the only alert in this portal.** It appears while either of your usage limits is full and disappears on its own once the limit resets. diff --git a/content/claude/government/account/profile.md b/content/claude/government/account/profile.md index 11312857d..fd1bdedb7 100644 --- a/content/claude/government/account/profile.md +++ b/content/claude/government/account/profile.md @@ -19,7 +19,7 @@ The **Account** tab is the landing page of the user area. It shows the basics of | **Email** | The address you sign in with. It is the unique identifier for your account, and notifications such as sign-in links are sent to it. | Your agency's identity provider. | | **Organization** | The organization you belong to within your agency's tenant. A tenant is your agency's overall space in Claude for Government, and it can contain several organizations (for example, one per bureau or office). Your organization determines which administrators manage your access and which usage pool your activity draws from. | Set when your account was created or when directory sync placed you. | | **Role** | What you are allowed to manage. **User** means you can use Claude but do not administer anything. **Owner** means you can manage your organization's users, seats, and settings. **Primary Owner** is the same as Owner with a few additional safeguards: a primary owner cannot be removed by other owners, and each organization can have at most three of them. | Assigned by an organization owner or by directory sync. | -| **Seat tier** | The allowance you have been given. A seat tier is a named package that sets two things for you: how much Claude usage you get (shown on the [Usage](/docs/government/account/usage.md) tab) and which Claude models you are allowed to use. The tiers themselves, their names, and what each one includes are defined by your agency, so the name you see here is specific to your deployment. | Assigned to you by an organization owner. | +| **Seat tier** | The allowance you have been given. A seat tier is a named package that sets two things for you: how much Claude usage you get (shown on the [Usage](https://claude.com/docs/government/account/usage.md) tab) and which Claude models you are allowed to use. The tiers themselves, their names, and what each one includes are defined by your agency, so the name you see here is specific to your deployment. | Assigned to you by an organization owner. | The name and avatar at the top come from your agency's directory. The avatar is generated from your name; you cannot upload a custom picture. @@ -42,7 +42,7 @@ None of these fields can be edited on this page. Where to go instead depends on > > This section only appears when you do not have a seat tier. If a tier name is shown in the Seat tier field, you can skip this section. -Without a seat tier you can sign in and see the portal, but you cannot send any messages to Claude, and the [Usage](/docs/government/account/usage.md) tab will show "No seat tier assigned" instead of your allowance. This is the expected state for a brand-new account that has not yet been given a seat, or for an account whose seat was deliberately removed. +Without a seat tier you can sign in and see the portal, but you cannot send any messages to Claude, and the [Usage](https://claude.com/docs/government/account/usage.md) tab will show "No seat tier assigned" instead of your allowance. This is the expected state for a brand-new account that has not yet been given a seat, or for an account whose seat was deliberately removed. Ask your organization's owner to assign you a seat. Once they do, the tier name appears here immediately and you can start using Claude straight away without signing out and back in. diff --git a/content/claude/government/config/overview.md b/content/claude/government/config/overview.md index 487d72a78..5659073c6 100644 --- a/content/claude/government/config/overview.md +++ b/content/claude/government/config/overview.md @@ -8,7 +8,7 @@ > **Who this is for:** Tenant administrators and organization owners who set product behavior for the people they manage. -The **Config** page in the admin portal is where you set product behavior such as the session timeout, Claude Desktop banner, product availability, and telemetry for the people you manage. The same page appears at both the tenant and the organization level, with the same list of settings, and this page explains how the two levels fit together. For the settings themselves, see [Available settings](/docs/government/config/settings.md). +The **Config** page in the admin portal is where you set product behavior such as the session timeout, Claude Desktop banner, product availability, and telemetry for the people you manage. The same page appears at both the tenant and the organization level, with the same list of settings, and this page explains how the two levels fit together. For the settings themselves, see [Available settings](https://claude.com/docs/government/config/settings.md).