Повторяемое, наблюдаемое и воспроизводимое окружение для разработки с Claude Code.
- Запускаем
docker-composeлокально или в VM - Из терминала IDE подключаемся к удалённому Docker
- Ведём разработку внутри контейнера с Claude Code
┌───────────────────────────────────────┐
│ Ваш Mac / IDE (Warp, VS Code) │
│ │
│ DOCKER_HOST=ssh://user@vm │
└─────────────────┬─────────────────────┘
│ SSH
▼
┌───────────────────────────────────────┐
│ Docker Container (VM/Local) │
│ ┌───────────────────────────────────┐ │
│ │ claude-code CLI │ │
│ │ + CCR (local sidecar proxy) │ │
│ │ │ │
│ │ /workspace → ваш проект │ │
│ │ /root/.claude → персистентно │ │
│ └───────────────────────────────────┘ │
└───────────────────────────────────────┘
│
▼ Anthropic API
# 1. Собрать и запустить
just build
just up
# 2. Войти в контейнер
just shell
# 3. Запустить Claude Code (авторизация по подписке)
claudejust build # Собрать Docker образ
just up # Запустить контейнер
just down # Остановить контейнер
just shell # Войти в zsh
just claude # Запустить claude code
just code # Запустить CCR + claude
just logs # Просмотр логов
just status # Статус контейнера
just rebuild # Пересобрать и перезапустить
just clean # Очистить volumesДля работы с удалённым Docker на VM:
export DOCKER_HOST=ssh://user@vm.example.com
just up
just shell.claudeсохраняется в./volumes/claude.claude-code-routerсохраняется в./volumes/ccr- Рабочая директория монтируется в
/workspace - Можно указать
WORKSPACE_PATHв.envдля другого проекта
CCR работает как локальный сайдкар внутри контейнера для:
- Логирования токенов API
- Роутинга между моделями
Конфигурация в volumes/ccr/config.json.
CCR трансформер token-logger.js перехватывает все ответы API и логирует:
- input/output токены
- cache read/write токены
- модель, stop_reason
Лог файл: volumes/ccr/logs/token-usage.jsonl