# 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`. Старое содержимое не сливается и не дописывается. Также скрипт при отсутствии скачивает `~/.local/bin/claude-code-proxy`, но текущий `ai-gpt` запускает нативный Codex CLI и не использует старую proxy-логику через `ANTHROPIC_BASE_URL`. ## Установка Запускать от обычного пользователя, не через `sudo`: ```bash bash ai-setup.sh ``` Скрипт прямо запрещает запуск от root. При этом, если Node.js не найден, он может попытаться установить Node.js через `apt-get` или `dnf` и тогда попросит `sudo` уже внутри этого шага. После установки, если shell ещё не видит новые команды: ```bash exec bash ``` ## Требования - `bash` - `curl` - `python3` - 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` - запускает нативный Kimi Code CLI, при отсутствии пытается поставить его через `https://code.kimi.com/kimi-code/install.sh`, настраивает Artemox provider и модель `kimi-k2.6`. - `ai-gemini` - запускает нативный Antigravity CLI `agy`, при отсутствии пытается поставить его через `https://antigravity.google/cli/install.sh`. Для `ai-gemini` скрипт в конце отдельно предупреждает использовать отдельный Google-аккаунт. ## Ключи и конфиги - DeepSeek key хранится в `~/.config/ai-setup/deepseek_key` с правами `600`. - Artemox/Kimi key хранится в `~/.config/ai-setup/kimi_key` с правами `600`. - Kimi config пишется в `${KIMI_CODE_HOME:-$HOME/.kimi-code}/config.toml`. - Исходник глобальных правил лежит в `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-gemini` используют `--dangerously-skip-permissions`. - `ai-kimi` использует `--yolo`. Это удобно для локального coding workflow, но это не sandbox для недоверенного кода. ## Правила агентов Действуют правила Карпати как есть: английский блок из `GLOBAL_RULES.md` устанавливается в `~/.config/ai-setup/global_rules.md` без перевода и смысловых правок. Кратко правила Карпати: 1. Think Before Coding - не гадать, явно проговаривать допущения, варианты и неясности. 2. Simplicity First - писать минимальный код без speculative features и лишней конфигурируемости. 3. Surgical Changes - трогать только нужное, не рефакторить соседний код, чистить только свои следы. 4. Goal-Driven Execution - формулировать проверяемую цель и доводить работу до верификации. Пользовательские глобальные правила: 1. Всегда отвечать по-русски, на "ты", дружелюбно и как живой программист. 2. Не выполнять `git commit` без прямой и однозначной просьбы. 3. Не выполнять `git add` без прямой просьбы, чтобы изменения оставались видны через обычный `git diff`. 4. Использовать обычный дефис `-`, не em dash. 5. В начале работы внимательно учитывать все проектные `.md` файлы. Правило этого проекта: 1. При каждом запуске `ai-setup.sh` все генерируемые standalone-скрипты в `~/.local/bin` должны полностью перезаписываться актуальными версиями. Merge и append старого содержимого запрещены. ## Тесты В репозитории есть shell-тесты: ```bash 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`.