Files
ai-setup/README.md

123 lines
7.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AI Setup
Набор shell-лаунчеров для локальной установки и запуска нескольких AI coding CLI из единой точки входа.
Главный скрипт - `ai-setup.sh`. Он настраивает пользовательские директории, обновляет глобальные правила агентов и полностью перегенерирует 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`.
- Глобальные правила пишутся в `~/.config/ai-setup/global_rules.md`.
При запуске лаунчеры вызывают helper `_build_ai_sys_prompt`. Он обновляет native rule-файлы:
- `~/.codex/AGENTS.md`
- `~/.kimi-code/AGENTS.md`
- `~/.claude/CLAUDE.md`
- `~/.gemini/GEMINI.md`
В 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 для недоверенного кода.
## Правила агентов
Действуют правила Карпати как есть: английский блок из `CLAUDE.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`.