Кратко
- Claude Code и Codex CLI на одном хосте, но не один рабочий каталог — жёстко
git worktree. - Три слоя: конфиг → worktree → tmux; один MCP Server.
- Claude Code — длинные сессии; Codex — скрипты/OpenAI.
- 16GB: «одна длинная + одна короткая»; две длинные → 24GB +
memory_pressure. - Приёмка:
tools/call≥95%, жёлтый ≤2ч, перекрёстных записей 0.
1. Зачем архитектура двух AI-агентов на облачном Mac?
В 2026 тикеты kvmboot про облачный Mac сместились с «есть ли SSH» на «сколько агентов на машине». Аренда Mac mini M4 24GB фиксирует стоимость железа; токены — по факту. Ноутбук с закрытой крышкой рвёт оба CLI; на облачном Mac локально только SSH-клиент.
Цепочка: Claude Code на облачном Mac, размещение MCP; здесь — два CLI без взаимного вреда.
Документация: Claude Code · Codex · worktree.
tmux / worktree / MCP впервые? Одна фраза: 2 агента = 2 копии репо + 2 терминала + 1 MCP-сервис. Ниже — каталоги, абсолютные пути, измеримая приёмка.
2. Пять типовых сбоев (частые тикеты)
«Два агента настроены, не работает»—два пункта: сначала изоляция, потом фичи.
- Общий каталог, борьба за
.git/index: Claude наmain, Codex делаетcheckoutв том же дереве—гонка ФС, не «глупая модель». - Пути MCP на ноутбуке: после SSH на облачный Mac агенты падают по-разному.
- Смешение tmux: думаете, Codex правит A, а жив shell Claude.
- API-ключи в одном HOME:
export→ неверная модель и счёт. - Две длинные сессии на 16GB: жёлтый
memory_pressure→ «MCP сломан».
Лечение — границы (репо, сессия, конфиг), не «умнее модель».
3. Матрица ролей
| Измерение | Claude Code | Codex CLI |
|---|---|---|
| Сильные стороны | Длинные сессии, refactor, Hooks, MCP Git | Мелкие задачи, скрипты, стек OpenAI |
| Слабое | Параллельная запись в одном каталоге | Codesign/Xcode в одиночку |
| Типичный слот | cc-main + feature worktree | codex-hotfix + hotfix worktree |
| Стоимость | Токены; лимит на длинные сессии | Токены; циклы скриптов |
Оба «весь репо + крупные правки» → двойные токены, один throughput. Один длинный агент, второй — узкие задачи. AI-стек · ECC.
4. Топология (три слоя)
Визуальный якорь двух AI-агентов на облачном Mac: две цепочки, один MCP Server.
5. Isolation setup: каталог, worktree, tmux
5.1 Слой конфигурации
На облачном Mac раздельные корни конфига (один Unix-пользователь ок, разный env при старте):
- Claude Code: напр.
CLAUDE_CONFIG_DIR=/Users/agent/.claude-cc. - Codex CLI: учётные данные и
config.tomlотдельно—не вsettings.jsonClaude.
5.2 Слой репо: ферма worktree (обязательно)
# On the cloud Mac — example paths
/opt/worktrees/my-app-cc-refactor # Claude Code only
/opt/worktrees/my-app-codex-hotfix # Codex CLI only
git worktree add /opt/worktrees/my-app-cc-refactor feature/refactor
git worktree add /opt/worktrees/my-app-codex-hotfix hotfix/config
Краткая аренда worktree—cd до старта в скрипте tmux.
5.3 Слой сессии: 1 агент = 1 окно tmux
tmux new-session -s agents -n cc -c /opt/worktrees/my-app-cc-refactor
tmux new-window -t agents -n codex -c /opt/worktrees/my-app-codex-hotfix
tmux attach -t agents—крышка рвёт только локальный клиент; сессии на облачном Mac живут. FAQ launchd: свой worktree.
6. MCP: один Server, два Client
- MCP Git Server на облачном Mac—родитель worktree или порт на worktree (зафиксировать в доке).
- Абсолютные пути на SSH-хосте—MCP на той же машине.
- Запрещено: Claude→MCP на VPS, Codex→локальный stdio.
Приёмка: в каждом окне «три последних коммита»—tools/call и ветка worktree.
7. 16GB vs 24GB
Unified Memory + индексация/LS:
- 16GB: одна длинная + одна короткая; два Xcode/Docker часто упираются в потолок.
- 24GB: две интерактивные длинные; память и swap.
Регион/RTT на суточной аренде, затем стресс memory_pressure.
8. Чеклист приёмки двух агентов
48 часов суточной аренды как стандарт: таймлайн = процесс, таблица = pass/fail. Логи (с маскировкой) на хосте.
| Метрика | Порог | Как мерить |
|---|---|---|
| tools/call | ≥ 95% | 48ч: ≥20 MCP-вызовов на агента, верная ветка/коммиты |
| memory_pressure | ≤ 2h | memory_pressure каждые 5 мин, смотреть 16GB |
| worktree cross-write | = 0 | Запрет cd между A/B; git -C |
8.1 Таймлайн 48 ч
- 0–2ч Setup: SSH; worktree A/B; tmux; MCP.
- 2–8ч Isolation: только A/B; перекрёстный
cd=0. - 8–16ч MCP: доля успешных
tools/call. - 16–32ч Resilience: крышка ≥8ч, затем attach.
- 32–48ч Decision: 3 метрики; только память → 24GB или 2×16GB; pass → месячная аренда Mac.
Pass: все 3 + RTT. Fail сначала: общий каталог, MCP не на облачном Mac.
9. FAQ
9.1 Один worktree на двоих?
Только строго последовательно—интерактивный параллель нельзя.
9.2 Два облачных Mac?
Две длинные + Xcode: часто 2×16GB лучше 1×24GB; длинная+короткая: обычно 24GB.
9.3 Codex только на macOS?
С codesign/Xcode: тот же облачный Mac, что Claude, проще split Linux+Mac.
10. Итог
Два AI-агента на облачном Mac — мини-мультитенант: worktree + tmux + один MCP. Схема + 3 метрики вместо «вроде работает»—потом аренда Mac и RAM.