Один агент на нескольких машинах
Агент, который работает на нескольких компьютерах (Mac, второй Mac, сервер), должен помнить одно и то же. Для этого вся память и все настройки живут в одном Git-репозитории, а синхронизация автоматическая.
Что хранить в репозитории
- файлы личности и памяти агента (
SOUL.md,MEMORY.md,GOALS.mdи другие); - дневники (
memory/) и справочники (knowledge/); - собственные скиллы (
skills/), подключаемые ссылками в~/.claude/skills; - список плагинов (
agent/plugins.txt) и команды установки MCP-серверов (agent/mcp.sh) без ключей.
Что в репозиторий не класть
- Секреты. API-ключи и токены лежат в
.envили~/.agent-secretsна каждой машине отдельно. - Тяжёлые медиа. Видео, PNG каруселей, большие PDF остаются на той машине, где созданы.
Скрипт синхронизации
Один скрипт sync.sh, одинаковый на всех машинах. Порядок действий:
- закоммитить локальные изменения (
git add -A, затемgit commit); - подтянуть чужие (
git pull --rebase --autostash); - отправить свои (
git push).
Правила скрипта:
- Блокировка (
flock), чтобы два запуска не шли одновременно. - Тишина, если менять нечего.
- При ошибке (конфликт, незавершённый merge или rebase, нет сети) скрипт пишет файл
.sync-errorи останавливается. Агент, увидев этот файл, сообщает об этом и ничего не делает молча. Конфликт не разрешается автоматически.
Когда запускать
- Mac: хуки Claude Code в начале сессии и после каждого ответа.
- Сервер: по расписанию (cron).
Руками синхронизацию запускать не нужно, пока нет .sync-error.
Новая машина
Один идемпотентный скрипт setup-agent.sh: создаёт ссылки на скиллы, ставит плагины из списка, добавляет MCP. Повторный запуск безопасен, поэтому его же запускают после добавления нового скилла или плагина.
Правило для новых скиллов
Новый скилл класть в skills/ репозитория, а не напрямую в ~/.claude/skills: иначе он останется на одной машине.