При выборе N (direct mode) теперь корректно откатываются: - Системный прокси (gsettings mode 'none') - Firefox прокси (network.proxy.type = 0) - IPv6 включается обратно (удаление 99-disable-ipv6.conf + sysctl) - xray стопается и дизейблится Раньше браузеры оставались настроенными на мёртвый прокси после переключения с Y на N. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
AI Setup
Набор shell-лаунчеров для локальной установки и запуска нескольких AI coding CLI из единой точки входа.
Главный скрипт - ai-setup.sh. Он настраивает пользовательские директории, устанавливает глобальные правила агентов из GLOBAL_RULES.md и полностью перегенерирует standalone-скрипты в ~/.local/bin.
Что реально устанавливается и генерируется
ai-setup.sh работает с такими путями:
~/.local/bin- standalone-лаунчеры и вспомогательные скрипты.~/.config/ai-setup- сохранённые ключи и глобальные правила.~/.npm-global- пользовательский npm prefix.
После запуска генерируются или обновляются:
~/.local/bin/ai-claude~/.local/bin/ai-gpt~/.local/bin/ai-deepseek~/.local/bin/ai-kimi~/.local/bin/ai-gemini~/.local/bin/ai-api-helpers.sh~/.local/bin/claude-gpt-effort-proxy.py
Все генерируемые standalone-скрипты полностью перезаписываются текущей эталонной версией из ai-setup.sh. Старое содержимое не сливается и не дописывается.
Структура конфигов
Все конфиги, которые разворачиваются в домашнюю директорию, живут в папке home-configs/:
home-configs/
├── GLOBAL_RULES.md # глобальные правила для всех агентов
└── claude/
└── skills/ # кастомные скиллы для Claude Code
├── el-review/
│ └── SKILL.md
└── el-review-heavy/
└── SKILL.md
При запуске ai-setup.sh:
GLOBAL_RULES.mdкопируется в~/.config/ai-setup/global_rules.mdи рассылается в нативные rule-файлы (~/.claude/CLAUDE.md,~/.codex/AGENTS.mdи т.д.)- Скиллы из
home-configs/claude/skills/копируются в~/.claude/skills/
Также скрипт при отсутствии скачивает ~/.local/bin/claude-code-proxy, но текущий ai-gpt запускает нативный Codex CLI и не использует старую proxy-логику через ANTHROPIC_BASE_URL.
Установка
Запускать от обычного пользователя, не через sudo:
bash ai-setup.sh
Скрипт прямо запрещает запуск от root. При этом, если Node.js не найден, он может попытаться установить Node.js через apt-get или dnf и тогда попросит sudo уже внутри этого шага.
После установки, если shell ещё не видит новые команды:
exec bash
Требования
bashcurlpython3- Node.js/npm для npm-глобальных инструментов
Если Node.js отсутствует, скрипт пытается поставить его автоматически для систем с apt-get или dnf. Для остальных систем Node.js нужно поставить вручную.
Команды
ai-claude- запускает оригинальный Claude Code черезclaude.ai-gpt- запускает нативный OpenAI Codex CLI, при отсутствии пытается поставить его черезhttps://chatgpt.com/codex/install.sh.ai-deepseek- запускает Claude Code через DeepSeek Anthropic-compatible API, проверяет и сохраняет DeepSeek API key.ai-kimi- запускает Claude Code через официальный Kimi Code API (https://api.kimi.com/coding/), проверяет и сохраняет Kimi API key.ai-gemini- запускает нативный Antigravity CLIagy, при отсутствии пытается поставить его черезhttps://antigravity.google/cli/install.sh.
Для ai-gemini скрипт в конце отдельно предупреждает использовать отдельный Google-аккаунт.
Ключи и конфиги
- DeepSeek key хранится в
~/.config/ai-setup/deepseek_keyс правами600. - Kimi key хранится в
~/.config/ai-setup/kimi_keyс правами600. - Исходник глобальных правил лежит в
home-configs/GLOBAL_RULES.md. - При запуске глобальные правила пишутся в
~/.config/ai-setup/global_rules.md.
При запуске ai-setup.sh сразу обновляются native rule-файлы:
~/.codex/AGENTS.md~/.kimi-code/AGENTS.md~/.claude/CLAUDE.md~/.gemini/GEMINI.md
Лаунчеры дополнительно обновляют эти файлы через helper _build_ai_sys_prompt при своём запуске.
В native rule-файлы попадают только глобальные правила. Полный prompt с проектными .md используется в ai-claude, ai-deepseek и ai-gemini; ai-gpt и ai-kimi полагаются на native rule-файлы своих CLI.
Права запуска агентов
Лаунчеры запускают CLI в максимально свободном режиме:
ai-gptиспользует--dangerously-bypass-approvals-and-sandbox.ai-claude,ai-deepseek,ai-kimiиai-geminiиспользуют--dangerously-skip-permissions.
Это удобно для локального coding workflow, но это не sandbox для недоверенного кода.
Правила агентов
Действуют правила Карпати как есть: английский блок из GLOBAL_RULES.md устанавливается в ~/.config/ai-setup/global_rules.md без перевода и смысловых правок.
Кратко правила Карпати:
- Think Before Coding - не гадать, явно проговаривать допущения, варианты и неясности.
- Simplicity First - писать минимальный код без speculative features и лишней конфигурируемости.
- Surgical Changes - трогать только нужное, не рефакторить соседний код, чистить только свои следы.
- Goal-Driven Execution - формулировать проверяемую цель и доводить работу до верификации.
Пользовательские глобальные правила:
- Всегда отвечать по-русски, на "ты", дружелюбно и как живой программист.
- Не выполнять
git commitбез прямой и однозначной просьбы. - Не выполнять
git addбез прямой просьбы, чтобы изменения оставались видны через обычныйgit diff. - Использовать обычный дефис
-, не em dash. - В начале работы внимательно учитывать все проектные
.mdфайлы. - При повторяющихся инструкциях предлагать reusable skill, но создавать или менять skill-файлы только после явного согласия.
Правило этого проекта:
- При каждом запуске
ai-setup.shвсе генерируемые standalone-скрипты в~/.local/binдолжны полностью перезаписываться актуальными версиями. Merge и append старого содержимого запрещены.
Тесты
В репозитории есть shell-тесты:
bash tests/test_fixes.sh
bash test_isolated.sh
tests/test_fixes.sh проверяет структуру ai-setup.sh и синтаксис bash. test_isolated.sh проверяет автоустановочные URL для ai-gpt и ai-kimi через mock curl.