Skip to content

Latest commit

 

History

History
383 lines (255 loc) · 40.1 KB

File metadata and controls

383 lines (255 loc) · 40.1 KB

Claude Code Studio

Claude Code Studio

Браузерный интерфейс для Claude Code CLI. Общайтесь с ИИ, запускайте задачи на автопилоте и управляйте проектами — всё в одной вкладке.

English | Українська | Русский

📖 От терминала к дашборду | Революция удалённого доступа

Работает на Windows, macOS и Linux — никакой платформозависимой настройки.


Зачем нужен Claude Code Studio?

Claude Code CLI — мощный инструмент: пишет код, запускает тесты, редактирует файлы, выпускает фичи. Но он живёт в терминале, а у терминала есть ограничения: контекст теряется между сессиями, параллельная работа превращается в жонглирование вкладками, и нет способа поставить задачи в очередь и отойти.

Claude Code Studio решает эти проблемы:

  • Ставьте задачи в очередь и уходите — Kanban-доска + Планировщик. Claude работает пока вы спите. Возвращаетесь — всё готово.
  • Управляйте откуда угодно — Telegram-бот + удалённый доступ. Проверяйте результаты с телефона в спортзале.
  • Автономные пайплайны — задачи создают дочерние задачи в процессе выполнения. Одна задача «проверить issues» автоматически порождает задачи на исправление.
  • Контекст не теряется — сессии на SQLite с самовосстанавливающимся воспроизведением. Возобновляйте работу через несколько дней с того места, где остановились.
  • Настоящее параллельное выполнение — несколько задач работают одновременно в одном проекте. Никакого ручного переключения вкладок.

Запуск за 60 секунд

Требования: Node.js 18+ + установленный и авторизованный Claude Code CLI (подписка Claude Pro или Max)

Node.js 22.5+ — нулевая нативная компиляция. Используется встроенный node:sqlite, C++ тулчейн не нужен. Старые версии Node.js используют better-sqlite3 (требуются build tools).

npx github:Lexus2016/claude-code-studio

Откройте http://localhost:3000, установите пароль, начинайте общаться.

Другие способы установки

Обновление:

npx github:Lexus2016/claude-code-studio@latest

Глобальная установка:

npm install -g github:Lexus2016/claude-code-studio

Клонирование репозитория:

git clone https://github.com/Lexus2016/claude-code-studio.git
cd claude-code-studio
npm install && node server.js

Docker:

git clone https://github.com/Lexus2016/claude-code-studio.git
cd claude-code-studio
cp .env.example .env
docker compose up -d --build

# Enterprise: базовый образ из приватного реестра (Artifactory, Nexus, Harbor)
MIRROR=my-registry.company.com docker compose up -d --build
Решение проблем: npm install из GitHub падает с ошибкой

Некоторые версии npm (особенно 10.x) падают при установке git-зависимостей с ошибкой:

npm error --prefer-online cannot be provided when using --prefer-offline

Это известный баг npm, где при подготовке git-пакета передаются взаимоисключающие флаги.

Обходной путь — установить вручную:

git clone https://github.com/Lexus2016/claude-code-studio.git
cd claude-code-studio
npm install
npm install -g .   # опционально: зарегистрировать CLI-команду `claude-code-studio` глобально

Или обновить npm:

npm install -g npm@latest

Chat Interface


Возможности

💬 Чат в реальном времени

Это не чат-бот. «Отрефактори эту функцию и добавь тесты» → Claude открывает файлы, редактирует их, запускает тесты, исправляет ошибки, докладывает о результатах — в реальном времени. Вставляйте скриншоты через Ctrl+V. Когда Claude задаёт вопрос в середине задачи, карточка сворачивается в компактный пузырь после вашего ответа. Нажмите Compact & New — разговор сожмётся через Haiku и продолжится в новой сессии с сохранённым контекстом, без траты токенов.

Быстрый фильтр боковой панели — в каждой секции (Проекты, Чаты, MCP-серверы, Навыки, Команды) есть кнопка 🔽. Нажмите, введите несколько букв — список мгновенно сужается. Esc для сброса.

Импорт сессий Claude CLI — импортируйте существующие сессии Claude Code CLI из ~/.claude/projects/ прямо в Studio. Нажмите кнопку ↓ в шапке, укажите путь к проекту, выберите сессии, импортируйте. Уже импортированные сессии отмечаются, чтобы не было дублей. Работает на Windows (C:\...), macOS и Linux; поддерживается раскрытие ~.

Расширенное мышление — когда Claude использует extended thinking, каждый блок размышлений отображается как бейдж «Chain of thought» с оценкой количества слов. Нажмите, чтобы открыть полную цепочку рассуждений в модальном окне с кнопкой копирования. Модальные окна импорта CLI и цепочки рассуждений полностью локализованы (EN/UA/RU) — все надписи, сообщения статуса и формат дат адаптируются к выбранному языку интерфейса.

Блоки размышлений теперь полностью персистентны: переключение вкладок в процессе генерации больше не теряет цепочку рассуждений — она сохраняется в SQLite по завершении. Живые бейджи мышления появляются в реальном времени прямо в чате — можно наблюдать за процессом рассуждения. Импортированные CLI-сессии также сохраняют блоки размышлений. Восстановление сессий корректно: блоки размышлений исключаются из контекста при возобновлении. Закрыть модальное окно мышления можно клавишей ESC.

Нажмите Перевести внутри модального окна мышления — и цепочка рассуждений появится на языке интерфейса, который вы выбрали. Перевод выполняется через Claude haiku и кешируется — повторный вызов мгновенный. Кнопка Копировать всегда копирует то, что отображается на экране — оригинал или перевод.

Прерывание задачи — отправьте уточнение или новую инструкцию пока Claude активно работает, не останавливая текущую задачу. Компактная пилюля ⚡ Уточнить появляется в строке ввода во время генерации — нажмите, чтобы переключиться между Уточнить (инжектировать в живой поток) и Очередь (запланировать после текущей задачи). Доставка теперь гарантирована через хук PreToolUse: Studio перехватывает каждый вызов инструмента и доставляет сообщение до следующего действия Claude. Бейдж в реальном времени показывает статус доставки. Статус доставки теперь сохраняется в SQLite — перезагрузите страницу, вернитесь к сессии через несколько дней, и каждое прерывание в истории корректно покажет, дошло ли оно до Claude или истекло. Состояние бейджей сверяется с авторитетным счётчиком сервера при завершении задачи — корректно в любом сценарии, включая несколько вкладок и пропущенные события. Текст пилюли обновляется мгновенно при смене языка интерфейса — перезагрузка страницы не нужна. Пилюля учитывает тип сессии: остаётся скрытой для удалённых SSH-сессий (где функция не применима) и исчезает немедленно при переключении с локального проекта на SSH — никаких устаревших элементов в строке ввода.

Вложения в прерывание — прикрепите файл, скриншот или SSH-конфиг к любому уточнению прямо во время задачи. Claude получает изображения как визуальный контент (полные мультимодальные MCP-блоки), файлы — как читаемые пути, SSH-конфиги — с заполненными учётными данными. Не нужно останавливать задачу, чтобы поделиться контекстом — всё доставляется в той же контрольной точке. Работает и из веб-интерфейса, и из Telegram.

Автоожидание при rate limit — когда API Claude отвечает rate limit или перегрузкой (429), Studio автоматически ждёт сброса и повторяет запрос — без ручного обновления, без потери сессии. Живой обратный отсчёт отображается прямо в чате: «Rate limited — повтор через 4 мин 30 сек». До 3 автоматических повторов, максимум 30 минут ожидания.

Форк сессии — нажмите ↗ рядом с любым чатом и создайте полную копию с той же историей Claude CLI. Исследуйте альтернативные подходы, не теряя исходный тред. Работает и на SSH-хостах.

Экспорт / импорт сессий — берите историю чата куда угодно. Экспортируйте любую сессию в портативный JSON одним кликом — полная история сообщений, вызовы инструментов, временны́е метки и вложения. Импортируйте обратно в любой экземпляр Studio, чтобы продолжить с того места, где остановились. Кнопка импорта расположена прямо на экране приветствия — сессию можно восстановить, не создавая новую.

Сценарии использования:

  • Перенос между компьютерами — экспортируйте на десктопе, импортируйте на ноутбуке или сервере. Тот же разговор, другая машина.
  • Загрузить в любой AI-агент — бросьте экспортированный JSON в ChatGPT, Gemini или любой другой AI и скажите «разберись, что мы обсуждали, и давай продолжим». Формат понятен человеку и самодостаточен.
  • Импорт из любого AI — продуктивная сессия в другом инструменте? Попросите его сохранить диалог в формате { "session": { "title": "..." }, "messages": [{ "role": "user"|"assistant", "type": "text", "content": "..." }] } и импортируйте результат в Studio. Ваши разговоры не привязаны к одной платформе.

📋 Kanban-доска

Создайте карточку, опишите что нужно сделать, переместите в «К выполнению» — Claude подхватит её автоматически.

Kanban workflow

Поставьте в очередь 10 задач, уйдите, вернитесь — всё готово. Карточки выполняются параллельно (независимые задачи) или последовательно (связанные сессии — Claude помнит, что сделала предыдущая задача). Синхронизация между вкладками мгновенно обновляет все открытые вкладки браузера. Настоящее параллельное выполнение — никаких искусственных блокировок директорий для независимых задач.

Kanban Board

🕐 Планировщик — ИИ на автопилоте

Создайте задачу, задайте время — Claude выполнит её точно в нужный момент. Никакого cron, никаких скриптов, никакого контроля.

  • Разовые: «Задеплоить на staging в 6 утра» — готово ровно в 6:00
  • Повторяющиеся: ежечасно, ежедневно, еженедельно, ежемесячно — с опциональной датой окончания
  • До 5 параллельных воркеров — пропущенные запуски после перезапуска пропускаются корректно

Повторяющиеся задачи теперь перевооружаются на месте — тот же запись задачи сбрасывается к следующему времени после каждого запуска, вместо создания нового ряда в базе данных. ID задач остаются стабильными между повторениями, база данных не растёт бесконечно, а восстановление после сбоя корректно перевооружает прерванные повторяющиеся задачи вместо того, чтобы помечать их завершёнными.

60-секундный сторожевой таймер сканирует задачи, застрявшие в in_progress без живого воркера — если воркер завершился аварийно без очистки, сторож автоматически восстанавливает задачу (перевооружает повторяющиеся, сбрасывает разовые в todo). Форма создания задачи предзаполняет дату/время прямо сейчас — не нужно заполнять пустой picker перед планированием.

Цветовая индикация расписания: просроченные (красный), сегодня (оранжевый), предстоящие (синий), повторяющиеся (фиолетовый). Кнопка Run Now для немедленного тестирования.

🤖 Автономный менеджер задач

В процессе выполнения задачи Claude имеет доступ к встроенному MCP-серверу для автономного управления задачами — превращая одиночные задачи в самоуправляемые пайплайны.

Инструмент Что делает
create_task Создать следующую задачу. Нашёл 5 багов? Создай 5 задач на исправление автоматически
create_chain Создать последовательные пайплайны (Сборка → Тест → Деплой) за один вызов
list_tasks Проверить существующие задачи — избежать дублирования, отслеживать прогресс
get_current_task Прочитать задание и контекст из родительской задачи
report_result Сохранить структурированные результаты для последующих задач
get_task_result Прочитать вывод завершённых задач-зависимостей
cancel_task Отменить лишние задачи (баг уже исправлен, дублирующаяся работа)

Пример: Запланируйте ночную задачу «проверить GitHub issues». Она читает открытые issues, создаёт задачу на исправление для каждого бага, связывает задачу верификации с каждым исправлением и формирует итоговый отчёт. Без участия человека.

Задачи наследуют директорию проекта. Контекст передаётся явно — дочерние задачи точно знают, что делать. Глубина цепочек ограничена для предотвращения бесконтрольной рекурсии.

📱 Telegram-бот — управление с телефона

Привязка за 30 секунд (6-значный код в Настройках). Ваш телефон становится полноценным пультом управления:

  • Очередь и мониторинг: /projects, /chats, /tasks, /chat, /new
  • Просмотр результатов: /last, /full — плюс push-уведомления о завершении или сбое задач
  • Управление: /files, /cat, /diff, /log, /stop, /tunnel, /url
  • Очередь прерываний во время работы: отправьте сообщение, пока Claude занят — оно попадёт прямо в очередь прерываний, а не в тупиковый ответ «занят». Claude подхватит его на следующей контрольной точке. Можно приложить файлы.
  • Перенаправление Ask User: вопросы Claude в середине задачи появляются как кнопки Telegram — нажмите для ответа или отправьте файл/изображение в качестве ответа
  • Кнопка Стоп: кнопка 🛑 на каждом сообщении о прогрессе — одно нажатие для отмены
  • Мост сессий: сообщения синхронизируются одновременно на телефон и в браузер
  • Несколько устройств: привяжите телефон, планшет, ноутбук — все одновременно
  • ✉ Кнопка «Написать»: быстрый доступ в постоянной клавиатуре — начинайте печатать без навигации по меню
  • Прикрепление файлов: отправляйте фото/файлы прямо в бот — получайте подтверждение с размером, затем прикрепляйте вопрос

Режим Форума — Telegram-супергруппа с Темами. Каждый проект получает свой тред с deep-link навигацией между топиками. Богатые inline-кнопки действий на каждом сообщении — полностью локализованы (EN/UA/RU) — Continue, Diff, Files, History, New session. Автоматическое создание проектных топиков. Тема задач для управления Kanban. Тема активности с прямыми URL-кнопками для перехода в любой проект.

Режим Форума теперь реализован в выделенном самостоятельном модуле (telegram-bot-forum.js). Каждый проектный топик работает в полностью изолированном состоянии — переключение между проектами в разных тредах никогда не смешивает контекст и сессии. Надёжная работа с дюжиной активных Форум-топиков одновременно. Кнопка Открыть чат теперь всегда использует callback — бот корректно переключает контекст сессии и показывает превью чата, а не просто перебрасывает в URL топика.

Telegram Forum Mode

👥 Режимы агентов

Одиночный Мультиагент Dispatch
Где Чат Чат Kanban-доска
Агенты 1 2–5 параллельно 2–5 как карточки задач
Зависимости Базовые Полный DAG
Автоповтор Нет Нет Да (с задержкой)
Выживает перезапуск Нет Нет Да (SQLite)
Лучше всего для Сфокусированная работа Сложные задачи для наблюдения Фоновая пакетная работа

Мультиагент — оркестратор декомпозирует на 2–5 подзадач со стримингом в реальном времени. Отправьте план на Kanban кнопкой 📋. Dispatch — подзадачи уходят на Kanban как постоянные карточки с графами зависимостей, автоповтором и каскадной отменой.

⇗ Кросс-агентное делегирование

Передавайте задачи внешним AI CLI — OpenAI Codex, Gemini CLI, opencode, Aider — прямо из интерфейса чата. Два режима:

Handoff Sync
Процесс Передал и забыл Параллельная совместная работа
Коммуникация Односторонняя передача контекста Двусторонняя через DIALOG.md
Мониторинг Ручная проверка Авто-опрос каждые 15с + fs.watch
Лучше всего для Независимых задач Задач, требующих обратной связи

Как работает: нажмите Делегировать в панели сессии, выберите агента и режим, опишите задачу. Studio генерирует CONTEXT.md с историей разговора и открывает терминал с внешним агентом. В режиме Sync оба агента общаются через общий DIALOG.md — ответы появляются прямо в основном чате с уведомлениями в реальном времени.

Панель агентов — управление внешними агентами теперь встроено прямо в боковую панель. Добавляйте, редактируйте и удаляйте агентов без правки config.json. Codex, Gemini CLI и opencode настроены по умолчанию — создаются автоматически при первом запуске. Кнопка Тест рядом с каждым агентом проверяет подключение до делегирования. ID агента генерируется из названия автоматически (с транслитерацией кириллицы). Полностью локализовано EN/UA/RU. Работает на Windows — делегирование через cmd.exe с правильным экранированием. Делегирования сохраняются после перезапуска сервера.

🎛 Режимы чата

Auto — полный доступ к инструментам (по умолчанию). Plan — анализ только для чтения; создаёт кнопку Execute Plan для переключения в Auto и запуска. Автоопределение режима плана переключает режимы автоматически, когда Claude сигнализирует о завершении. Task — явный режим выполнения.

🧠 Навыки и Auto-навыки

28 встроенных специализированных персон (frontend, security, devops, kubernetes, debugging, code-review...). Режим Auto (⚡) классифицирует каждое сообщение и автоматически активирует 1–4 релевантных навыка:

  • «Исправь этот React-баг» → frontend + debugging-master
  • «Настрой деплой K8s» → devops + kubernetes + docker

Навыки плагинов автоматически обнаруживаются из установленных плагинов Claude Code. Добавляйте собственные .md-файлы в skills/.

⚡ Слэш-команды

Введите / — выберите сохранённый промпт. 8 встроенных:

/check /review /fix /explain
Синтаксис и баги Полное code review Найти и исправить баг Объяснить с примерами
/refactor /test /docs /optimize
Почистить код Написать тесты Написать документацию Найти узкие места

Добавляйте свои, редактируйте, удаляйте. Сколько угодно.

⚙️ Модели и итерации

Модель Контекст Лучше всего для
Haiku Стандартный Быстро — простые вопросы, быстрые проверки
Sonnet 1М токенов Сбалансированно (по умолчанию) — большинство повседневных задач
Opus 1М токенов Максимальные возможности — сложная архитектура, сложные баги

Sonnet и Opus работают с контекстным окном в 1 миллион токенов — огромные кодовые базы, длинные истории разговоров и массивные наборы файлов умещаются в одну сессию без ограничений.

Бюджет итераций: 1–200 (по умолчанию 50). Автопродолжение до 3х — так что 50 итераций фактически означает до 200 шагов.

🌐 Удалённый доступ и SSH

SSH — добавьте удалённые серверы, создайте проекты, указывающие на директории на них. Claude работает там как локально. Введите # в чате для быстрого подключения к нескольким серверам. Скриншоты и файлы автоматически загружаются через SFTP.

Удалённый доступ — один клик: cloudflared (без регистрации) или ngrok. Публичный HTTPS URL за секунды. Работает за NAT, файрволами, корпоративными VPN. URL автоматически отправляется в Telegram.

📊 Дашборд

Dashboard

Тепловая карта активности (90 дней), разбивка по использованию инструментов, распределение по моделям, Индекс автоматизации (0–100), пиковые часы, топ сессий с навигацией в один клик. Каждая цифра ведёт к реальным данным.

📱 Мобильная версия

Откройте URL на телефоне — интерфейс с нативным ощущением. Мобильный хедер с индикатором статуса в реальном времени, настройки в нижнем листе, Kanban-колонки со scroll-snap, тач-оптимизированные цели 44px, безопасность iOS. Не «мобильная версия» — настоящий интерфейс, переработанный для сенсорного управления.


Для кого это?

Разработчики — несколько проектов, очереди задач, непрерывность сессий. Планируйте ночные тесты. Пусть Claude работает в ночную смену.

Команды — общий инстанс с видимостью проектов, журнал аудита Kanban, повторяющиеся code review по понедельникам.

Системные администраторы — управление парком серверов из одной вкладки. Плановые проверки состояния, сканирование безопасности, многосерверные операции с Telegram-оповещениями.

ML/AI-инженеры — удалённые GPU-серверы через SSH. Очереди задач обучения. Плановые data pipeline'ы. Мониторинг с телефона через Telegram.


Что это такое (и чем не является)

  • Не SaaS — работает на вашей машине. Без аккаунта, без телеметрии, без vendor lock-in.
  • Не IDE — управляет сессиями Claude. Продолжайте использовать VS Code, Cursor или что вам нравится.
  • Не форк — оборачивает официальный CLI. Обновления Anthropic применяются автоматически.

Лицензия MIT. Ваша инфраструктура, ваши данные.


Использование моделей OpenRouter

Используйте Claude Flow для маршрутизации через OpenRouter — GPT-4o, Gemini, Llama, Mistral и другие:

npx github:Lexus2016/claude-flow          # однократная настройка
npx github:Lexus2016/claude-code-studio    # запуск как обычно

Справочник возможностей

Категория Возможности
Чат Потоковая передача в реальном времени, вставка скриншотов, прикрепление файлов (@file), ветвление разговора, автопродолжение (3x), сжатие сессий, быстрый фильтр боковой панели, импорт сессий CLI, отображение extended thinking, экспорт/импорт сессий (JSON), прерывание задачи (хук PreToolUse + вложения), форк сессии, автоожидание rate limit
Kanban Очередь задач, параллельное + последовательное выполнение, синхронизация между вкладками, drag-and-drop вкладок, графы зависимостей
Планировщик Разовые + повторяющиеся (ежечасно/ежедневно/еженедельно/ежемесячно), 5 параллельных воркеров, Run Now, хранение в SQLite
Менеджер задач Автономные дочерние задачи, цепочки, передача контекста, отчётность о результатах, отмена (MCP)
Telegram Управление через бота, push-уведомления, перенаправление ask_user (+ ответ файлом), мост сессий, режим Форума, встроенная остановка, deep-link навигация, rich action buttons (EN/UA/RU), кнопка «Написать», прикрепление файлов, очередь прерываний во время работы
Делегирование Кросс-агентный handoff/sync (Codex, Gemini, opencode), протокол CONTEXT.md + DIALOG.md, fs.watch + polling, персистентность после перезапуска, Windows, панель агентов в сайдбаре, auto-seeded defaults, кнопка тест
Агенты Одиночный, мультиагент (2–5 в чате), Dispatch (Kanban), автоповтор, каскадная отмена
Режимы Auto, Plan (только чтение + Execute Plan), Task, автоматическое переключение режимов
Навыки 28 встроенных, автоклассификация, обнаружение плагинов, пользовательские .md-файлы
Команды 8 встроенных слэш-команд, пользовательские команды
Удалённый доступ SSH-серверы, SFTP-загрузка, быстрое подключение #, туннели cloudflared/ngrok
Мобильные Интерфейс с нативным ощущением, нижний лист, Kanban со scroll-snap, безопасность iOS, тач-оптимизация
Дашборд Тепловая карта активности, использование инструментов, распределение моделей, Индекс автоматизации, пиковые часы
Надёжность Самовосстанавливающиеся сессии, защита от сбоев, атомарные записи, мгновенная остановка, автоожидание rate limit, безопасность конкурентного доступа (блокировка сессий + busy_timeout), авто-очистка зависших блокировок сессий
Безопасность bcrypt-аутентификация, AES-256-GCM для SSH, Helmet.js, защита от path traversal, предотвращение XSS/SQLi
Платформа Windows/macOS/Linux, Docker (non-root, registry mirror), LLM proxy/gateway, 3 языка (EN/UA/RU), поддержка OpenRouter

Технические подробности

Архитектура — единый процесс Node.js. Без шага сборки. Без TypeScript. Без фреймворка.

server.js              — Express HTTP + WebSocket
auth.js                — bcrypt-пароли, 32-байтные токены сессий
claude-cli.js          — запускает подпроцесс `claude`, разбирает JSON-поток
telegram-bot.js        — Telegram-бот (прямой режим)
telegram-bot-forum.js  — Самостоятельный модуль Форум-режима (паттерн композиции)
mcp-task-manager.js    — MCP-сервер для автономного управления задачами
mcp-notify.js          — MCP-сервер для неблокирующих уведомлений
public/index.html      — весь фронтенд (HTML + CSS + JS)
config.json            — MCP-серверы + каталог навыков
data/chats.db          — SQLite (режим WAL)
skills/                — .md-файлы навыков → системный промпт

Переменные окружения:

PORT=3000
WORKDIR=./workspace
MAX_TASK_WORKERS=5
CLAUDE_TIMEOUT_MS=1800000
TRUST_PROXY=false
LOG_LEVEL=info
ANTHROPIC_BASE_URL=       # LLM proxy/gateway (LiteLLM, Bifrost, OpenRouter)

Безопасность: bcrypt (12 раундов), 32-байтные токены (TTL 30 дней), AES-256-GCM для SSH-паролей, заголовки Helmet.js, защита от path traversal, XSS-фильтрация, параметризованные SQL-запросы, ограничения буфера 2MB.

Разработка:

npm run dev   # автоперезагрузка (node --watch)
npm start     # продакшн

Лицензия

MIT