Как это работает
Три вложенных понятия: сессия (долгоживущая нить, привязанная к одному git-репозиторию), её ветки (линейные цепочки снимков — откатились и продолжили иначе, родилась новая ветка) и снимки (неизменяемая запись одного хода: журнал сообщений, состояние рабочей копии в виде коммита, ввод-вывод инструментов, параметры модели, стоимость — только на добавление).
Если это звучит по-гитовому, то намеренно. Состояние рабочей копии живёт коммитами в выделенных ветках forge/session/…, поэтому каждый снимок можно смотреть любым git-инструментом, сравнения и слияния уже существуют, а дерево сессии — на расстоянии одного git log --all --graph.
flowchart TD
L[Claude Code · локально] -->|каждый ход: транскрипт + SHA| S[(Сессии Forge
снимки = коммиты git)]
S -->|"Продолжить в облаке"| C[Ход в облачной песочнице]
C -->|новый снимок, живая трансляция| S
S -->|выбрать любой снимок| B[Откат / ветвление]
B -->|новая ветка в дереве| S
S -->|cloud-pull + resume| M[Claude Code · любая машина]
M -->|продолжает синхронизацию| S
classDef endpoint fill:#0a1a33,stroke:#22d3ee,stroke-width:2px,color:#67e8f9;
class L,M endpoint;С чего начать
CLI forge поставляется одним бинарником под платформу — тот же способ установки, что у sc
, без зависимостей рантайма. Как только он в вашем PATH:
| |
Предпочитаете явный контроль вместо хуков? forge sync разом отправляет текущее состояние локальной сессии наверх — это движение «локально закончил, передаю в облако». А на другой машине:
| |
Модель безопасности
Транскрипты шифруются при передаче и при хранении ключом KMS на организацию — уничтожьте ключ, и все блобы станут нечитаемыми. Срок хранения настраивается для каждой организации; для точечного удаления есть forge session forget <id>. Что именно выгружается, определено явно: транскрипт, SHA коммита, статистика прогона — но никогда ваше рабочее дерево или окружение.
Секреты вообще не попадают в транскрипт. Агенты дотягиваются до доступов только через ограниченные инструменты — secret_list возвращает метаданные, но не значения, — а путь secure-curl раскрывает плейсхолдеры {{alias}} на прокси исходящего трафика, вне адресного пространства агента. Открытый текст не попадает в контекст агента, а значит, не может оказаться и в синхронизированном снимке. Каждое обращение оставляет строку аудита без открытого текста.
Это складывается с остальным
Та же механика сессий лежит под прогонами процессов , с тем же аудитом на основе git внизу, и исполняется локально или в облаке через forge-cli . Пост о запуске: Introducing Cloud Session Sync .