feat(agents): прокси для Codex и Claude задаётся в их настройках

- Зачем: прокси из окружения запуска до API не доходил. Запросы Codex
  отправляет общий демон app-server, и маршрут зависел от того, кто запустил
  демон первым. Нужно было и обратное: Codex и Claude должны работать без
  прокси, даже если запускающее приложение его задало.
- Что: шаблоны codex/proxy.env (копируется в ~/.codex/.env) и
  claude/proxy-settings.json (блок env добавляется в ~/.claude/settings.json).
  По умолчанию прокси 127.0.0.1:12334. install.sh не трогает выбор, уже
  сделанный на машине. В README описано, как переключить машину на работу
  без прокси.
- Проверка: tests/test_install.sh и tests/test_proxy_env_sync.py проходят.
  Вручную: значения из ~/.codex/.env и из env в настройках Claude перекрывают
  унаследованные переменные; codex doctor проходит через Xray; очищенные
  адреса вместе с NO_PROXY=* дают прямое подключение.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ddadminandClaude Opus 5.5 committed 2026-10-14 18:00:55 +02:00
1 parent d19239bf31
commit d65403efb5
5 files changed
+213 -4

No files matched your search

+22 -3
View File
@@ -76,9 +76,9 @@ Chezmoi использует отдельный source dir `chezmoi/` внутр
| Инструмент | Что настраивается |
|------------|-------------------|
| **Agents** | Каноничное хранилище скиллов: `~/.agents/skills/<name>/SKILL.md` |
| **Claude** | `~/.claude/skills` -> симлинк на agents; настройки (`settings.json`, `settings.local.json`) - управляются Claude Code на машине |
| **Claude** | `~/.claude/skills` -> симлинк на agents; настройки (`settings.json`, `settings.local.json`) - управляются Claude Code на машине; в `settings.json` один раз добавляется блок `env` с прокси |
| **[Opencode](https://github.com/anomalyco/opencode)** | MCP-серверы (context7, web-reader, playwright и др.), `~/.config/opencode/skills` -> симлинк на agents |
| **Codex** | `~/.codex` - обычный каталог, управляется Codex; скиллы - из общего хранилища agents |
| **Codex** | `~/.codex` - обычный каталог, управляется Codex; скиллы - из общего хранилища agents; `~/.codex/.env` - прокси по умолчанию, если файла ещё нет |
| **Gemini** | Политики для CLI: pre-approved readonly команды |
## Настройка
@@ -114,6 +114,25 @@ Linux/Bash-интерфейс `proxy-client` поддерживает внешн
Windows не меняется. Если Codex уже запущен, его нужно полностью закрыть перед
запуском через `Codex Proxy`.
На Linux `install.sh` задаёт прокси для Codex и Claude Code прямо в их
настройках, а не в окружении запуска. Поэтому маршрут не зависит от того,
откуда агент запущен:
- Codex: `~/.codex/.env` создаётся из `codex/proxy.env`, если файла ещё нет;
- Claude Code: блок `env` из `claude/proxy-settings.json` добавляется в
`~/.claude/settings.json`, если там ещё нет ни одной proxy-переменной.
Шаблон — прокси `127.0.0.1:12334` и короткий список исключений. Значения из
этих файлов перекрывают переменные, унаследованные от запускающего
приложения. Установщик не трогает уже сделанный на машине выбор.
Чтобы агент на машине ходил без прокси, очистите в его файле адреса
(`HTTP_PROXY`, `HTTPS_PROXY`, `ALL_PROXY` в обоих регистрах) и задайте
`NO_PROXY=*` и `no_proxy=*`. Демон Codex читает `.env` только при старте:
после правки выполните `codex app-server daemon restart`. Claude Code
подхватывает настройки при следующем запуске. С такими настройками `pcodex` и
`pclaude` уже не обязательны.
`Claude Proxy` поддерживает как обычную установку в
`%LOCALAPPDATA%\AnthropicClaude`, так и пакет из Microsoft Store. В обоих
случаях он передает параметры Electron `--proxy-server` и
@@ -201,7 +220,7 @@ PowerShell и VS Code: одного общего файла у Windows и WSL н
| Файл | Назначение |
|------|------------|
| `~/.env.secrets` | API-ключи, подгружается bash и VS Code Server |
| `~/.codex/.env` | Общие proxy-переменные для Codex CLI, Codex Desktop и их дочерних процессов |
| `~/.codex/.env` | Proxy-переменные для Codex CLI, Codex Desktop и их дочерних процессов. Перекрывают унаследованное окружение. На Linux `install.sh` создаёт его из `codex/proxy.env` |
| `~/.bash_aliases` | Персональные алиасы bash |
| `~/.gitconfig.local` | Персональные Git-настройки (`user.name`, `core.editor` и т.д.) |
| `~/.local/bin/start-claude-proxy.ps1` | Скрипт запуска Claude Desktop для Windows с переменными прокси и параметрами Electron |