diff --git a/decisions/2026-06-01-claude-remote-control-mobile.md b/decisions/2026-06-01-claude-remote-control-mobile.md new file mode 100644 index 0000000..0b2d966 --- /dev/null +++ b/decisions/2026-06-01-claude-remote-control-mobile.md @@ -0,0 +1,41 @@ +# Claude Code Remote Control с iPhone/iPad (Max-аккаунт) + +**Дата:** 2026-06-01 +**Хост:** code-server LXC 132 (10.0.0.179) + +## Задача +Управлять сессией Claude Code на LXC 132 из официального приложения Claude на iPhone/iPad. + +## Ключевая проблема +Remote Control (`claude.ai/code`) **требует настоящий логин claude.ai (Pro/Max)** и **прямой Anthropic API**. +Не работает с прокси: кастомный `ANTHROPIC_BASE_URL` (OmniRoute `omni.dttb.ru`) + `ANTHROPIC_AUTH_TOKEN`/`ANTHROPIC_API_KEY` ломают его. + +Но рабочий сетап code-server использует именно прокси для бесплатных моделей — его трогать нельзя. + +## Решение: изолированный конфиг + systemd +Отдельный `CLAUDE_CONFIG_DIR=/root/.claude-rc` с Max-логином, без прокси-переменных. Не конфликтует с рабочим `~/.claude`. + +### Что в /root/.claude-rc +- `.credentials.json` — Max OAuth (скоуп `user:sessions:claude_code` = full-scope token, обязателен для RC). Скопирован из `~/.claude/.credentials.json`. +- `.claude.json` — содержит `oauthAccount` (org UUID `d76aa101...`, аккаунт batlaew@gmail.com). **Без него** RC падает с *"Unable to determine your organization"*. Сюда же добавлен trust для рабочей папки: `projects["/root/knowledge-base/projects/niikn"].hasTrustDialogAccepted=true`. +- `start-rc.sh` — врапер: `unset` всех `ANTHROPIC_*` прокси-переменных, `cd niikn`, `claude remote-control --name niikn --spawn same-dir <<< "y"` (y подтверждает промпт «Enable Remote Control?»). + +### systemd +`/etc/systemd/system/claude-rc.service` — `enabled`, автостарт, `Restart=on-failure`. `UnsetEnvironment=` всех `ANTHROPIC_*` на уровне unit. + +## Подключение с телефона +1. Приложение Claude (iOS) → войти **тем же** Max-аккаунтом (batlaew@gmail.com). +2. Вкладка **Code** → сессия `niikn` (зелёный индикатор = онлайн) → подключиться. +3. Альтернатива из браузера: `https://claude.ai/code` или прямой URL окружения. +4. Доступ снаружи НЕ зависит от ai.dttb.ru/NPM — RC ходит через инфраструктуру Anthropic. + +## Управление +- Статус: `systemctl status claude-rc` +- Логи/URL: `journalctl -u claude-rc -f` +- Стоп: `systemctl stop claude-rc` +- Обновить креды (если протухнут): перелогиниться в `~/.claude`, затем `cp ~/.claude/.credentials.json /root/.claude-rc/` + +## Грабли +- Версия CLI ≥ 2.1.51 (стоит 2.1.92). ✓ +- API-ключ / Console-аккаунт / `CLAUDE_CODE_USE_BEDROCK|VERTEX|FOUNDRY` блокируют RC. +- `oauthAccount` хранится в `.claude.json`, а НЕ в `.credentials.json` — копировать оба файла.