- Установка android CLI из dl.google.com для linux/mac/windows - Запуск android init для деплоя skills в агентов - Кастомный skill android-cli в home-configs/claude/skills/ - Пункт меню 8) Android CLI в setup.sh - Тесты и документация Co-Authored-By: Claude <noreply@anthropic.com>
14 KiB
AI Setup
Набор shell-скриптов для установки AI coding CLI и настройки сети с Amnezia VPN.
Точка входа - setup.sh (мастер-скрипт с меню). Он вызывает нужный скрипт из scripts/.
Структура репозитория
setup.sh # мастер-скрипт с меню
scripts/
├── ai-setup.sh # устанавливает AI-инструменты в выбранный BIN_DIR
├── fuck-rkn.sh # серверный установщик nginx + telemt + xray
├── ru-bypass.sh # .ru трафик напрямую, kill switch для остального
├── ks-off.sh # временно отключить kill switch
└── ks-on.sh # восстановить kill switch
home-configs/
├── GLOBAL_RULES.md # глобальные правила для всех агентов
├── claude/
│ ├── hooks/ # хуки аккаунтов Claude Code
│ ├── skills/ # кастомные скиллы для Claude Code (и Gemini)
│ └── statusline-command.sh # статусная строка Claude Code
├── network/
│ └── README.md # подробная документация по сетевой настройке
├── vless/
│ └── servers.conf # список VLESS-серверов для прокси
└── proxychains/
└── proxychains-xray.conf # конфиг proxychains (SOCKS5 через xray)
tests/
├── test_fixes.sh # юнит-тесты структуры ai-setup.sh
└── test_network.sh # тесты маршрутизации
test_isolated.sh # проверка автоустановки ai-gpt и ai-kimi
test_sigint.sh # ручной тест поведения SIGINT
Установка
Запускать от обычного пользователя, не через sudo:
bash setup.sh
Мастер-скрипт показывает меню:
Шаги для новой машины:
1) AI-инструменты
2) Сеть: ru-bypass + kill switch
Дополнительно (по необходимости):
3) Отключить kill switch
4) Включить kill switch
5) Статус
6) Проверить сеть
7) Обновить # git pull + перегенерация AI-лаунчеров
После установки, если shell ещё не видит новые команды:
exec bash
Сеть: ru-bypass + kill switch
Полная документация: home-configs/network/README.md
Что это
- .ru сайты (ozon.ru, госуслуги и др.) - идут напрямую через провайдера с российским IP
- *.loc офисные адреса - тоже напрямую через локальный роутер
- Всё остальное - только через Amnezia VPN
- Если Amnezia упала - не-.ru трафик блокируется UFW (kill switch), .ru и *.loc продолжают работать
Как работает
Amnezia захватывает весь трафик двумя широкими маршрутами (0.0.0.0/1 и 128.0.0.0/1 через amn0).
ru-bypass.sh добавляет тысячи более специфичных маршрутов для .ru IP-блоков через локальный роутер.
Ядро Linux выбирает самый специфичный маршрут - .ru идёт напрямую, остальное в amn0.
UFW настроен так:
default deny outgoing — запрещено всё по умолчанию
allow out on amn0 — через Amnezia можно всё
before.rules: ipset ru-direct — для .ru IP разрешён прямой выход
before.rules: RFC1918 — 10/8, 172.16/12, 192.168/16 тоже напрямую (*.loc)
Первый запуск
Через меню (bash setup.sh → пункт 2) - он автоматически определит GATEWAY и DEV
из ip route show default, предложит профиль и сохранит настройки в
~/.config/ai-setup/network_<profile>.conf (по умолчанию профиль равен $(hostname)).
Или напрямую:
sudo bash scripts/ru-bypass.sh
# для другой сети:
sudo GATEWAY=10.0.0.1 DEV=eth0 bash scripts/ru-bypass.sh
Что устанавливается при первом запуске
ipset(если не установлен)- Скрипт копируется в
/usr/local/bin/ru-bypass.sh ru-ipset-restore.service- восстанавливает ipset из файла до старта UFW при загрузкеru-bypass.service- обновляет RIPE-список и маршруты после network-onlineru-bypass.timer- ежедневно запускает обновление RIPE-списка и маршрутов- NM dispatcher
/etc/NetworkManager/dispatcher.d/99-ru-bypass- перезапускает скрипт при поднятии amn0 /etc/ru-bypass.conf- root-конфиг для запусков из systemd/NM dispatcher/etc/hostsблок для локальных Eltex-доменов
При каждом запуске:
- Скачивает список .ru IP-блоков из RIPE (кэш 24ч,
/var/cache/ru-delegations.txt) - Обновляет ipset
ru-direct(~11000 записей) - Добавляет в ipset встроенные и пользовательские kill switch исключения
- Сохраняет ipset в
/etc/ipset.confдля восстановления после ребута - Добавляет маршруты через GATEWAY для всех .ru блоков и RFC1918
- Обновляет UFW
before.rules, добавляет прямые iptables-правила и отключает IPv6 при активном kill switch
ks-off / ks-on
Для ситуаций когда нужен временный доступ без VPN (сайты, блокирующие нероссийский IP):
# 1. Выйти из Claude Code
# 2. Отключить kill switch
sudo bash scripts/ks-off.sh
# 3. Отключить Amnezia в GUI
# Возврат:
# 4. Подключить Amnezia в GUI (дождаться amn0)
sudo bash scripts/ks-on.sh
# 5. Войти в Claude Code
Проверка
ip route get 8.8.8.8 # -> dev amn0 (Google через VPN)
ip route get 77.88.8.8 # -> dev <DEV> (ya.ru напрямую)
ip route get 10.10.0.1 # -> dev <DEV> (*.loc напрямую)
bash tests/test_network.sh # полные тесты
AI инструменты
scripts/ai-setup.sh устанавливает и настраивает все AI CLI.
После запуска генерируются или обновляются в выбранном BIN_DIR: ~/bin, если он уже есть
в PATH, иначе ~/.local/bin.
ai-claude- Claude Code (Anthropic API)ai-gpt- нативный OpenAI Codex CLIai-deepseek- Claude Code через DeepSeek APIai-kimi- Claude Code через официальный Kimi Code API (api.kimi.com/coding)ai-openrouter- Claude Code через OpenRouter (GPT-5.5, Grok, Qwen, MiniMax, Llama и др.)ai-gemini- нативный Antigravity CLIagyai-api-helpers.sh- вспомогательные функции для лаунчеровclaude-gpt-effort-proxy.py- совместимый helper для старого GPT/claude-code-proxy backend
Все генерируемые скрипты полностью перезаписываются при каждом запуске scripts/ai-setup.sh.
Также устанавливается:
~/.config/ai-setup/global_rules.mdи native rule-файлы (~/.claude/CLAUDE.md,~/.codex/AGENTS.md,~/.kimi-code/AGENTS.md,~/.gemini/GEMINI.md)- Скиллы из
home-configs/claude/skills/в~/.claude/skills/и~/.gemini/config/plugins/local-setup/skills/
Android CLI
scripts/ai-setup.sh также устанавливает Google Android CLI (preview) - официальный терминальный инструмент для Android-разработки, заточенный под AI-агентов.
Что устанавливается:
android- бинарь CLI в~/.local/bin/(или~/binчерез symlink)android-cliskill в~/.claude/skills/для Claude Code
Поддерживаемые платформы:
- Linux:
x86_64,arm64 - macOS:
x86_64,arm64 - Windows:
x86_64(ограниченная поддержка,android emulatorотключён в v0.7)
Ключевые команды:
android --version # версия CLI
android info # информация об SDK и путях
android sdk list # список доступных SDK-пакетов
android sdk install ... # установить пакеты SDK
android create ... # создать новый Android-проект
android emulator start # запустить эмулятор
android run --apks ... # установить и запустить APK
android update # обновить сам Android CLI
Интеграция с Claude Code:
# После установки ai-setup.sh выполняется автоматически:
android init
Это разворачивает android-cli skill в ~/.claude/skills/, после чего Claude Code понимает Android CLI и может использовать его для SDK, эмулятора и сборок.
Ограничения:
- Android CLI находится в preview, API/команды могут меняться.
- На Windows в v0.7 отключена команда
android emulator. - Если уже установлен Android Studio, Android CLI может использовать тот же SDK или создать новый в
~/.android/sdk. Проверяй активный путь черезandroid info. - Android CLI - нативный бинарь, который спавнит дочерние процессы (emulator, gradle, adb), поэтому он не оборачивается в
proxychains4.
VLESS / Xray (опционально)
При запуске scripts/ai-setup.sh спрашивает, нужен ли VLESS-прокси для AI API запросов.
Если выбрать Y:
- Читает список серверов из
home-configs/vless/servers.conf - Проверяет каждый сервер реальным curl'ом через SOCKS5
- Устанавливает Xray, генерирует конфиг, создаёт systemd сервис
- Все лаунчеры оборачиваются в
proxychains4
Если выбрать n - VLESS отключается, xray останавливается, системный/Firefox прокси сбрасываются в direct. IPv6 включается обратно только если UFW kill switch не активен.
Ключи и конфиги
~/.config/ai-setup/deepseek_key- DeepSeek API key (права 600)~/.config/ai-setup/kimi_key- Kimi API key (права 600)~/.config/ai-setup/openrouter_key- OpenRouter API key (права 600)~/.config/ai-setup/global_rules.md- глобальные правила агентов~/.config/ai-setup/network_<profile>.conf- сохранённые сетевые профили (GATEWAY,DEV,LOCAL_DNS,AMNEZIA_SERVER,KILL_SWITCH_EXCEPTIONS)
Права запуска агентов
ai-gptиспользует--dangerously-bypass-approvals-and-sandboxai-claude,ai-deepseek,ai-kimi,ai-openrouter,ai-geminiиспользуют--dangerously-skip-permissions
Удобно для локального coding workflow, но это не sandbox для недоверенного кода.
Правила агентов
В home-configs/GLOBAL_RULES.md - правила Карпати (Think Before Coding, Simplicity First,
Surgical Changes, Goal-Driven Execution) плюс пользовательские правила (отвечать по-русски,
не коммитить без команды, не делать git add без команды и др.).
scripts/ai-setup.sh копирует их в native rule-файлы всех CLI. Лаунчеры обновляют их при каждом запуске.
Effort Mapping
EFFORT_MAPPING.md - таблица effort-уровней (low/medium/high/xhigh/max)
для Claude Code лаунчеров (ai-claude, ai-deepseek, ai-kimi, ai-openrouter).
Нативные ai-gpt и ai-gemini живут отдельно.
claude-gpt-effort-proxy.py маппит xhigh -> high для совместимости со старым
GPT/claude-code-proxy backend; текущие лаунчеры его напрямую не вызывают.
Требования
bash,curl,python3- Node.js/npm (для ai-gpt через Codex CLI и ai-gemini через agy)
ipset(устанавливается автоматически при запуске ru-bypass.sh)- (опционально)
proxychains-ng- для VLESS-режима - (опционально)
gsettings- для автонастройки системного прокси GNOME
Тесты
bash tests/test_fixes.sh # структура ai-setup.sh и синтаксис bash
bash test_isolated.sh # автоустановка ai-gpt и ai-kimi через mock curl
bash tests/test_network.sh # маршрутизация (нужен активный ru-bypass)
# test_sigint.sh # ручной диагностический тест SIGINT