Claude Code теперь бежит на твоём железе. Код остаётся у тебя, а всё, что Claude прочитал, нет
Anthropic открыла публичную бету self-hosted environments: облачные сессии Claude Code теперь можно запускать на своём железе, внутри своей сети, рядом с внутренними сервисами. И в том же тексте написано, что именно всё равно уезжает в Anthropic. Вторая часть важнее первой.
TL;DR: Self-hosted environments позволяют запускать сессии Claude Code на своей инфраструктуре: чекауты репозитория, артефакты сборки, секреты и созданные файлы остаются у тебя. Но сам разговор, то есть промпты, ответы и результаты тулов, включая код, который Claude прочитал, уходит в Anthropic на инференс, а транскрипт сессии хранится. Фича выключена по умолчанию, доступна на планах Team и Enterprise и недоступна организациям на нулевом хранении данных.
Что такое self-hosted environments
Способ запустить облачную сессию Claude Code на своей инфраструктуре, а не на инфраструктуре Anthropic. Стартуешь сессию из веба, с мобильного, с десктопа или из routine, а исполняется она внутри твоей сети.
Anthropic при этом сама отговаривает от этого варианта по умолчанию: в тексте объявления прямо сказано, что большинству компаний рекомендуют хостед-вариант ради операционной простоты, потому что там нет инфраструктуры, которую надо держать. Self-hosted для тех, у кого сеть, тулинг или комплаенс требуют держать исполнение агента у себя.
Три названные причины перейти. Сетевой доступ: сессия ходит к внутренним сервисам, базам и реестрам, не выставляя их в интернет. Кастомизация: компиляторы, SDK и внутренние CLI ставятся в образ заранее, и каждая сессия стартует готовой к сборке. Комплаенс: исходники и артефакты сборки лежат на инфраструктуре, которую контролируешь ты.
Что реально остаётся у тебя, а что уходит
У тебя остаются чекауты репозитория, артефакты сборки, секреты и любые файлы, которые сессия создала или изменила. Это в объявлении сказано явно.
Уезжает разговор. Цитирую формулировку Anthropic: сам разговор, включая промпты, ответы и результаты вызова инструментов (которые могут содержать код, прочитанный Claude), отправляется в Anthropic для инференса, а транскрипт сессии хранится, чтобы сессию можно было подхватить с любой поверхности.
Стоит прочитать эту фразу ещё раз, потому что для кодинг-агента она означает почти всё. Результат вызова инструмента у Claude Code, это содержимое файлов, которые он открыл, вывод тестов, диффы, логи сборки. Агент, разбирающийся в твоём репозитории, читает много. Всё прочитанное становится частью разговора, а разговор уходит на инференс и хранится в транскрипте.
Так что «код остаётся у тебя» здесь верно ровно в том смысле, что git-чекаут физически лежит на твоём диске. Своего инференса ты не получаешь, и это не претензия к Anthropic, это просто разная вещь от той, которую многие услышат в слове self-hosted.
Как это устроено внутри
Разворачиваешь раннеры: долгоживущие процессы, которые подхватывают сессии и стартуют под каждую отдельный процесс Claude Code.
Режимов два. Fixed: держишь фиксированное число раннеров, сессии распределяются между ними. On-demand: оркестратор смотрит очередь, поднимает раннер под приходящую сессию и гасит по завершении работы, так что мощность следует за спросом.
Один раннер может обслуживать несколько сессий, но каждая сессия работает в своём чекауте, поэтому работа изолирована между разработчиками и аккаунтами. Сессии со всех поддерживаемых поверхностей попадают в одно и то же окружение: настраиваешь один раз, работает везде, откуда команда стартует сессии.
Отдельно Anthropic просит не путать это с Remote Control. Там сессия крутится на машине разработчика, а телефон или браузер к ней просто подключаются: сессия умирает вместе с машиной и привязана к тому, кто запустил claude. Self-hosted окружения живут на общей инфраструктуре, которую держит платформенная команда, и доступны любому пользователю.
Кому нельзя
Организациям на ZDR, то есть на нулевом хранении данных. Фича им недоступна, и это самая ироничная строчка объявления: те, кому политика запрещает оставлять данные у вендора, и есть самые очевидные кандидаты на исполнение агента у себя. Причина, впрочем, логично вытекает из предыдущего раздела: транскрипт сессии обязан храниться, иначе сессию нельзя подхватить с другой поверхности.
Остальные условия: публичная бета, планы Claude Team и Enterprise, по умолчанию выключено. И требование, которое стоит воспринимать как оценку трудозатрат: Anthropic пишет, что настройкой и дальнейшей эксплуатацией должна владеть платформенная команда или команда developer experience, включая сборку и обновление образа раннера и содержание оркестратора, если выбран режим on-demand.
Причём тут вся остальная неделя
Потому что это не отдельная фича, а часть одного движения. За несколько дней Anthropic выкатила подряд: 5 августа inference hooks в бете для Enterprise, когда каждый управляемый промпт по claude.ai, Cowork и Claude Code задерживается до вердикта allow или deny с твоего сервера безопасности, запросы подписаны, обработка отказов настраивается, а каждый отказ пишется в журнал соответствия. 6 августа бета-сканирование сторонних скиллов и плагинов на злонамеренное содержимое при загрузке и правке. 7 августа на платформе разработчика появились лимиты бюджета и контроль географии для Managed Agents. 8 августа в Claude Code 2.1.225 добавили поддержку лимита расходов из корпоративного шлюза: сообщение о достижении лимита называет и сам лимит, и время сброса, и текст оператора.
Собирается ровно тот шлюз, который Databricks описала как обязательный паттерн управления расходами: прокси, бюджеты, конфиги конечных инструментов, логи сессий. Только теперь часть этого делает вендор, а не только платформенная команда.
И контекст, объясняющий сканирование скиллов, тоже свежий. npm-червь ChainDrop лез в конфиги кодинг-агентов, а Claude Code за одну неделю закрыл четыре обхода собственных разрешений. Сторонний скилл, это исполняемое доверие, и его наконец начали проверять хотя бы на Enterprise.
Подводные камни
Промпты и результаты тулов уходят на инференс. Это не мелкий шрифт, это написано в объявлении, но оно противоречит первому впечатлению от слова self-hosted. Если у тебя запрет на передачу исходников третьей стороне, эта фича его не решает.
ZDR-организациям недоступно. Тем, кому это нужнее всего, нельзя, потому что транскрипт обязан храниться для подхвата сессии с другой поверхности.
Ты берёшь на себя образ раннера. Компиляторы, SDK, внутренние CLI, обновления, безопасность базового образа. Anthropic прямо говорит, что нужна владеющая команда. Это не переключатель в настройках, это новый компонент в инфраструктуре, который начнёт ломаться в самый неудобный момент.
On-demand режим означает оркестратор. Отдельный процесс, который следит за очередью и управляет жизненным циклом раннеров. Ещё один сервис в критическом пути между разработчиком и его агентом.
Изоляция на уровне чекаута, а не на уровне раннера. Один раннер обслуживает несколько сессий, изоляция обеспечивается отдельным чекаутом на сессию. Для многих это нормально, но если у тебя разные уровни доступа к секретам внутри одной команды, стоит подумать про раздельные раннеры, а не полагаться на разделение чекаутов.
Публичная бета. Никаких обещаний по стабильности API раннеров, и на бете такие вещи меняются.
Альтернативы
Хостед-вариант Anthropic. Тот, который сама Anthropic рекомендует большинству: нет инфраструктуры, нет образа раннера, нет оркестратора. Всё, что ты теряешь, это сетевой доступ во внутренний контур и физическое расположение чекаутов.
Remote Control. Сессия на машине разработчика, управление с телефона или браузера. Ноль инфраструктуры, но сессия живёт, пока жива машина, и привязана к одному пользователю.
Inference hooks вместо своего компьюта. Если задача не в том, где исполняется код, а в том, что можно спрашивать у модели, то держать промпты на вердикте у своего сервера безопасности дешевле, чем поднимать раннеры.
Своя модель на своём железе. Единственный вариант, где инференс тоже твой. Цена известна: качество ниже фронтира и вся эксплуатация на тебе.
Вердикт
Включай, если агенту нужен доступ во внутренний контур к базам, реестрам и внутренним сервисам, и открывать их наружу нельзя. Это единственная причина, ради которой стоит брать на себя образ раннера и оркестратор.
Не включай ради комплаенса, пока не перечитал, что уходит на инференс: промпты, ответы и результаты тулов вместе с содержимым прочитанных файлов. Если у службы безопасности вопрос звучит как «покидает ли наш код периметр», ответ здесь по-прежнему «да».
И держи в голове, что это часть большего движения. За одну неделю Anthropic добавила лимиты расходов из шлюза, вердикты allow и deny на своём сервере безопасности, сканирование сторонних скиллов и исполнение на своём железе. Claude Code перестаёт быть инструментом разработчика и становится инструментом, который настраивает платформенная команда.
Как попробовать
- Проверь план: нужен Claude Team или Enterprise, фича по умолчанию выключена, на ZDR недоступна.
- Прочитай документацию по раннерам и определись с режимом. Fixed проще, on-demand требует оркестратора, но не жжёт мощности в простое.
- Собери минимальный образ раннера с одним компилятором и одним внутренним CLI. Не тащи в первый образ весь тулчейн: обновлять его придётся тебе.
- Прогони на песочничном репозитории сессию, стартовав её из веба, и убедись, что она видит внутренний сервис, ради которого всё затевалось.
- Параллельно покажи безопасности абзац про то, что уходит в Anthropic. Лучше обсудить это до раскатки, чем после первого аудита.