🌐 Сайт и обзор возможностей: weiesky.github.io/cc-viewer — доступно на 18 языках.
Инструмент Vibe Coding, построенный на основе Claude Code и дистиллированный из собственного опыта разработки:
- Повышение потолка возможностей — можно локально запускать /ultraPlan и /ultraReview, при этом избегая полного раскрытия кода вашего проекта в облаке Claude;
- Адаптация к нескольким устройствам одновременно — позволяет программировать на мобильных устройствах (в локальной сети), веб-версия адаптируется к различным сценариям, легко встраивается в расширения браузера и разделённый экран ОС, также предоставляется нативный установочный пакет;
- Полное сохранение логов — обеспечивает возможность полного перехвата и анализа payload claude code, удобно для логирования, анализа проблем, обучения и реверс-инжиниринга;
- Обмен опытом обучения — накоплено множество учебных материалов и опыта разработки (см. иконки «?» в различных местах системы);
- Сохранение нативного опыта — лишь расширяет возможности claude code без каких-либо существенных изменений ядра, сохраняя нативный опыт;
- Поддержка сторонних моделей — совместим с deepseek-v4-*, GLM 5.1, Kimi K2.6, встроена функциональность cc-switch, позволяющая в любой момент переключать сторонние инструменты на лету;
English | 简体中文 | 繁體中文 | 한국어 | 日本語 | Deutsch | Español | Français | Italiano | Dansk | Polski | Русский | العربية | Norsk | Português (Brasil) | ไทย | Türkçe | Українська
- Убедитесь, что установлен nodejs 20.0.0+; Скачать и установить
- Убедитесь, что установлен claude code; Руководство по установке
npm install -g cc-viewer --registry=https://registry.npmjs.orgbrew tap weiesky/cc-viewer
brew install cc-viewer
brew upgrade cc-viewer # используйте это для обновления; ccv, установленный через brew, не обновляйте с помощью npm install -gccv — это прямой заменитель claude: все параметры передаются в claude, и одновременно запускается Web Viewer.
ccv # == claude (интерактивный режим)Самая часто используемая автором команда:
ccv -c --d # == claude --continue --dangerously-skip-permissions
# ccv передаёт все параметры запуска claude code, вы можете произвольно комбинировать их по своему усмотрениюПосле запуска режима программирования веб-страница откроется автоматически.
cc-viewer также предоставляет клиентскую версию: Адрес для загрузки
Начиная с версии 1.7.0 логи хранятся в формате каталога на каждую сессию (wire-format v2) вместо отдельных файлов .jsonl — это примерно на 90% меньше места на диске. Существующие файлы .jsonl v1 никогда не изменяются и не удаляются; диалог логов по умолчанию показывает сессии v2, а небольшой пункт «Показать устаревшие логи (v1)» (отображается, пока существуют старые файлы) открывает представление v1, где их можно просмотреть, мигрировать или удалить. При запуске cc-viewer предлагает миграцию в один клик, если обнаружены устаревшие логи (настоятельно рекомендуется при продолжении старого разговора командой claude -c, первая половина которого хранится в старых файлах). Мигрировать можно и из терминала:
ccv convert <project> # мигрировать один проект
ccv convert --all # мигрировать все проекты
ccv verify <v1-file> # проверить файл v1 по его сконвертированным сессиямЕсли сессия не проходит golden-проверку, она откладывается в sessions-quarantine/ для проверки вместо срыва всей миграции — остальные сессии мигрируют как обычно.
Если вы по-прежнему привыкли пользоваться нативным инструментом claude или плагином VS code, используйте этот режим.
В этом режиме при запуске claude
автоматически запускается процесс логирования, который записывает логи запросов в каталоги на каждую сессию в ~/.claude/cc-viewer/yourproject/sessions/ (wire-format v2)
Запуск режима логирования:
ccv -loggerКогда консоль не может вывести конкретный порт, по умолчанию первый порт запуска — 127.0.0.1:7008. При одновременном существовании нескольких экземпляров порты продолжаются по порядку: 7009, 7010 и т. д.
Удаление режима логирования:
ccv --uninstallЕсли вы столкнулись с проблемой невозможности запуска, существует окончательный способ диагностики: Шаг первый: откройте claude code в любом каталоге; Шаг второй: дайте claude code следующую инструкцию:
我已经安装了cc-viewer这个npm包,但是执行ccv以后仍然无法有效运行。查看cc-viewer的cli.js 和 findcc.js,根据具体的环境,适配本地的claude code的部署方式。适配的时候修改范围尽量约束在findcc.js中。Позволить Claude Code самому проверить ошибки — это эффективнее, чем консультироваться с кем-либо или читать любую документацию!
После выполнения вышеуказанной инструкции файл findcc.js будет обновлён. Если ваш проект часто требует локального развёртывания или если форкнутый код часто должен решать проблемы установки, сохраните этот файл. В следующий раз вы можете просто скопировать его. На данном этапе многие проекты и компании, использующие claude code, развёртывают его не на mac, а на хостинге серверных сред, поэтому автор выделил файл findcc.js, чтобы в дальнейшем было удобно отслеживать обновления исходного кода cc-viewer.
Примечание: данное приложение конфликтует с claude-code-switch и claude-code-router, существует проблема конкуренции за proxy, поэтому при использовании обязательно отключите claude-code-switch и claude-code-router; внутри cc-viewer предоставляется функция горячего обновления прокси как равноценная замена.
См.:
ccv -hПо умолчанию ccv при оборачивании claude работает в тихом режиме, обеспечивая чистый вывод терминала и соответствие нативному опыту. Все логи захватываются в фоновом режиме и могут быть просмотрены по адресу http://localhost:7008.
После настройки используйте команду claude как обычно. Посетите http://localhost:7008 для просмотра интерфейса мониторинга.
После запуска с помощью ccv вы увидите:
Вы можете сразу после завершения редактирования просмотреть diff кода:
Хотя вы можете открывать файлы и программировать вручную, ручное программирование не рекомендуется — это старомодное программирование!
Вы можете даже отсканировать QR-код, чтобы реализовать программирование на мобильных устройствах:
Удовлетворите своё воображение о мобильном программировании. Кроме того, существует механизм плагинов — если вам нужно настроить под собственные привычки программирования, можете в дальнейшем следить за обновлениями hooks плагинов.
Модальное окно Изменить системный промпт (гамбургер-меню → Изменить системный промпт) разделено на вкладки:
- Вкладка По умолчанию сохраняет классическое поведение: она записывает
CC_SYSTEM.md(переопределение) илиCC_APPEND_SYSTEM.md(добавление) в текущую рабочую область; файл внедряется как--system-prompt-file/--append-system-prompt-fileпри следующем запуске ccv. - Вкладки моделей: нажмите + Добавить модель, введите имя, например
opusилиGemini3, и выберите область действия — Глобально (~/.claude/cc-viewer/system_prompt/, применяется ко всем рабочим областям) или Рабочая область (<project>/system_prompt/). У каждой вкладки есть собственный переключатель «Добавить/Переопределить» и предпросмотр Markdown. - Записи хранятся в виде файлов с именами в верхнем регистре:
OPUS_SYSTEM.md(переопределение) илиOPUS_APPEND_SYSTEM.md(добавление). Сопоставление нечёткое — ищется нечувствительная к регистру подстрока идентификатора модели, определённого из АКТИВНОЙ конфигурации (сопоставление модели активного стороннего proxy profile > переменные окруженияANTHROPIC_MODEL/CLAUDE_MODELпри запуске >modelизsettings.json; без сигнала конфигурации запись не внедряется), поэтомуopusсовпадает сclaude-opus-4-8[1m]независимо от версии. Совпадение в рабочей области имеет приоритет над глобальным; в пределах одной области побеждает самое длинное имя; совпавшая запись полностью заменяет файлы «По умолчанию» для этого запуска. Известные ограничения: смена proxy profile посреди сессии учитывается только после перезапуска сессии claude; флаг--model, переданный через дополнительные аргументы, не учитывается. - Сохранение пустой вкладки удаляет запись. Смена модели в середине сессии вступает в силу при следующем перезапуске. Установите
CCV_DISABLE_AUTO_SYSTEM_PROMPT=1, чтобы отключить любое автоматическое внедрение. Каталог<project>/system_prompt/можно закоммитить, чтобы делиться промптами с командой, или добавить в.gitignore, чтобы оставить их приватными.
- Захват в реальном времени всех API-запросов от Claude Code с гарантией оригинального текста, а не урезанных логов (это очень важно!!!)
- Автоматическое распознавание и маркировка запросов Main Agent и Sub Agent (подтипы: Plan, Search, Bash)
- Запросы MainAgent поддерживают Body Diff JSON, отображают свёрнутые различия с предыдущим запросом MainAgent (показываются только изменённые/новые поля)
- Каждый запрос встроенно отображает статистику использования Token (входные/выходные Token, создание/чтение кэша, частоту попаданий)
- Совместим с Claude Code Router (CCR) и другими прокси-сценариями — резервное сопоставление запросов по шаблонам путей API
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/chart?repos=weiesky/cc-viewer&type=date&legend=top-left" />

MIT