← Все гайды AI Release
EN Подписаться на @ai_release1

Как запретить Claude Code отправлять ваш email и данные на сторонние сайты: настройки приватности

Обновлено: 09.11.2026 · AI Release · @ai_release1
Как запретить Claude Code отправлять ваш email и данные на сторонние сайты: настройки приватности

TL;DR

Требования и подготовка

Иллюстрация к разделу «Требования и подготовка»
Иллюстрация к разделу «Требования и подготовка»

Что сделать: проверьте, что установлено и где лежат файлы конфигурации.

claude --version
ls -la ~/.claude/settings.json .claude/settings.json .claude/settings.local.json 2>&1
git config --get user.email

Зачем: Claude Code читает настройки из трёх уровней — пользовательский ~/.claude/settings.json, проектный .claude/settings.json и локальный .claude/settings.local.json (его обычно не коммитят). Более конкретный уровень перекрывает общий, поэтому важно знать, какой файл существует у вас: править несуществующий бессмысленно.

Как проверить: ls выведет пути существующих файлов или No such file or directory — последнее значит, что файл нужно создать. Если ни одного файла нет, создайте пользовательский:

mkdir -p ~/.claude && cp /dev/null ~/.claude/settings.json
cp ~/.claude/settings.json ~/.claude/settings.json.bak

Пример: вывод git config --get user.email вида ivan.petrov@company.ru — это ровно та строка, которая попадёт в поле Author каждого коммита, сделанного агентом. Если там личный адрес, его и увидит любой, кто откроет git log.

Шаг 1. Аудит: что уже разрешено агенту

Что сделать: посмотрите, какие инструменты выданы Claude Code сейчас, и какие сетевые вызовы он реально делает.

env | grep -E 'ANTHROPIC|CLAUDE'
cat ~/.claude/settings.json

Внутри запущенной сессии проверьте список разрешений командой /permissions — она показывает действующие правила allow/ask/deny.

Зачем: у Claude Code есть инструменты с выходом в сеть — WebFetch (загрузка страницы по URL и её разбор моделью), WebSearch (поиск) и Bash, через который агент может выполнить curl, wget, ssh. Плюс MCP-серверы (внешние плагины-инструменты, которые вы подключаете сами) со своим сетевым доступом. Пока вы не видите список, вы не знаете, что именно блокировать.

Как проверить: /permissions выводит таблицу правил. Пустой список deny означает, что сетевые инструменты не ограничены ничем, кроме запроса подтверждения.

Пример: в выводе env строка ANTHROPIC_BASE_URL=https://api.anthropic.com — значит, запросы к модели идут на официальный эндпоинт. Если там сторонний адрес (прокси, реселлер), весь ваш код уходит через него — этот параметр надо осознанно подтвердить или убрать.

Шаг 2. Блокировка сетевых инструментов, телеметрии и email в коммитах

Иллюстрация к разделу «Шаг 2. Блокировка сетевых инструментов, телеметрии и email в коммитах»
Иллюстрация к разделу «Шаг 2. Блокировка сетевых инструментов, телеметрии и email в коммитах»

Что сделать: внесите правила в ~/.claude/settings.json.

{
  "permissions": {
    "deny": [
      "WebFetch",
      "WebSearch",
      "Bash(curl:*)",
      "Bash(wget:*)",
      "Bash(nc:*)",
      "Bash(ssh:*)",
      "Bash(scp:*)",
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(./**/*.pem)"
    ],
    "ask": [
      "Bash(git push:*)"
    ]
  },
  "env": {
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
    "DISABLE_TELEMETRY": "1",
    "DISABLE_ERROR_REPORTING": "1"
  },
  "includeCoAuthoredBy": false
}

Зачем: каждая строка закрывает свой канал.

Что уходитЧерез чтоЧем закрывается
Содержимое файлов на сторонний сайт`WebFetch`, `Bash(curl:*)``permissions.deny`
Поисковые запросы (фрагменты кода в них)`WebSearch``permissions.deny`
Секреты из `.env` в контекст модели`Read``Read(./.env)` в `deny`
Метрики использования и отчёты об ошибкахвстроенная телеметрия`DISABLE_TELEMETRY`, `DISABLE_ERROR_REPORTING`
Личный email в истории gitстрока `Co-Authored-By``includeCoAuthoredBy: false`

Bash(curl:*) — правило с двоеточием означает «команда curl с любыми аргументами»; звёздочка тут обязательна. includeCoAuthoredBy: false убирает из сообщения коммита подпись соавтора, но не меняет поле Author — его берёт из git config.

Поэтому отдельно поправьте авторство, если не хотите светить личный адрес:

git config --global user.email "<ваш-noreply@users.noreply.github.com>"
git config --global user.name "<Ваше Имя>"

Как проверить: файл остаётся валидным JSON и правила подхватились.

python3 -m json.tool ~/.claude/settings.json > /dev/null && echo "JSON OK"

Пример: JSON OK — синтаксис верный. Запятая после последнего элемента массива даст Expecting property name enclosed in double quotes — это самая частая поломка, из-за которой настройки молча не применяются.

Для полного отказа от внешнего трафика есть более радикальный вариант — направить Claude Code на локальную модель через OpenAI-совместимый API: см. как подключить локальную модель к Claude Code. А если настройку нужно раскатать на всю команду, а не на свою машину, используйте managed-настройки из гайда Claude Code для команды — они имеют приоритет над пользовательскими.

Шаг 3. Проверка, что данные не уходят

Иллюстрация к разделу «Шаг 3. Проверка, что данные не уходят»
Иллюстрация к разделу «Шаг 3. Проверка, что данные не уходят»

Что сделать: прогоните три проверки — сеть, телеметрия, коммит.

claude -p "Открой https://example.com и перескажи первую строку"

Зачем: это живой тест блокировки. Флаг -p (print mode) выполняет один запрос без интерактивной сессии, поэтому отказ видно сразу и воспроизводимо.

Как проверить: ожидаемый результат — отказ, а не текст страницы. Claude Code сообщит, что использование WebFetch запрещено настройками; формулировка зависит от версии — сверьтесь с документацией. Если вместо отказа пришёл пересказ Example Domain, правило не применилось: проверьте, в тот ли файл вы писали и нет ли перекрывающего .claude/settings.local.json.

Второй тест — коммит:

git commit --allow-empty -m "test privacy"
git log -1 --format='%an <%ae>%n%b'
git reset --hard HEAD~1

Ожидаемо: в поле автора — адрес из git config, в теле коммита нет строки Co-Authored-By: Claude. Третья команда откатывает тестовый коммит.

Чек-лист приёмки:

Возможные проблемы и решения

Проблема. Агент вместо ответа пишет, что инструмент запрещён

"allow": ["WebFetch(domain:docs.anthropic.com)"]

Правило WebFetch(domain:<домен>) разрешает загрузку только с указанного хоста; остальные остаются заблокированными.

Проблема. После включения приватности падают тесты

set -a && . ./.env && set +a && npm test

Ключи попадут в процесс, но не в контекст модели и не в историю переписки.

Проблема. В истории git остался рабочий email

git config user.email "<ваш-noreply@users.noreply.github.com>"
git commit --amend --reset-author --no-edit

Уже запушенные коммиты так не исправить — там нужен git filter-repo, и это отдельная операция с согласованием в команде.

Резюме и следующие шаги

Сетевые инструменты, телеметрия и подпись в коммитах закрываются одним файлом ~/.claude/settings.json, а проверяются тремя командами из Шага 3. Дальше имеет смысл разобраться, что провайдер делает с уже отправленными данными — см. как отключить обучение на своих данных в ChatGPT, Claude и Gemini.

FAQ

Передаёт ли Claude Code мой код на сторонние сайты по умолчанию?

Запросы к модели идут на эндпоинт из ANTHROPIC_BASE_URL. Отдельно существует риск через инструменты с выходом в сеть (WebFetch, Bash(curl:*)) и через MCP-серверы, которые вы подключили сами — их список и поведение сверьте с документацией.

Достаточно ли выставить DISABLE_TELEMETRY=1?

Нет. Эта переменная выключает метрики использования, но не запрещает агенту загружать страницы. Нужны ещё правила permissions.deny на WebFetch/WebSearch и сетевые команды в Bash.

Где настройки имеют наименьший приоритет?

Пользовательский ~/.claude/settings.json. Проектный .claude/settings.json и managed-конфиг перекрывают его, поэтому правило, добавленное в проект, может отменить ваш запрет — проверяйте /permissions внутри рабочей папки.

Можно ли вообще убрать внешний трафик?

Да, если направить клиент на локальную модель через ANTHROPIC_BASE_URL — тогда запросы не покидают вашу машину. Ограничения и рабочие конфиги — в гайде по локальной модели.

🤖 Кратко для ИИ