KittyClaw

by EKIOO (open source) · Claude Desktop, Claude Code, OpenCode, OpenAI Codex, Grok Build, локальные модели через Ollama, macOS, Linux

MCP MCP Servers Open Source v0.17.0 · 20.08.2026 активный

Kanban-доска для управления проектами с тикетами, колонками, метками и трекингом активности — спроектирована для управления AI-агентами через API.

v0.17.0
20.08.2026 current

Установка
# Windows
run.bat
# macOS / Linux
./run.sh
показать оригинал переведено ИИ

KittyClaw

Демонстрация KittyClaw

kittyclaw.dev · Получить ранний доступ

KittyClaw — это локальная панель управления для работы с программным обеспечением, выполняемой ИИ-агентами. Создайте задачу для ПО, наблюдайте за её перемещением по живой доске, изучайте выполненный запуск, изменивший код, проверяйте доказательства верификации и самостоятельно принимайте окончательное решение о релизе.

Продукт доказывает три вещи в одном процессе: живую доску, читаемый запуск и проверку человеком перед внешним релизом. Новые доски начинаются с колонок Backlog, Todo, InProgress, Blocked, Scheduled, Review и Done (колонки остаются настраиваемыми). Запуски могут использовать Claude Code, OpenAI Codex, Grok Build или локальную модель Ollama.

Следуйте пятиминутной демонстрации с руководством, чтобы повторить процесс с реалистичной задачей для ПО. Сопровождающий протокол тестирования активации измеряет, достигают ли квалифицированные пользователи пробной версии своего первого запуска в течение десяти минут.

Проект можно разделить на независимые пайплайны с устойчивыми именами, которые сохраняются при переименовании. Колонки могут иметь общие процессоры с постоянной памятью, повторно используемыми навыками проекта, упорядоченным выбором задач, устойчивыми повторными попытками и маршрутизацией по типу переключателя в колонки любого пайплайна. Щёлкните правой кнопкой мыши на колонке и выберите Настроить колонку, чтобы изменить её название, цвет, роль, положение, рекомендации по задачам, процессор и маршрутизацию, не теряя визуального контекста доски. Задачи в колонках Waiting или OwnerAction всегда отображают заметный контекстный блок между описанием и активностью, объясняющий, должен ли владелец оставить комментарий или переместить задачу в определённую колонку подтверждения/отказа, либо KittyClaw возобновит её автоматически. Колонки также можно вставлять между существующими полосами или добавлять в конец прямо из Канбан; страница Workflows остаётся глобальным обзором пайплайнов и навыков. Состояние выполнения отделено от бизнес-колонок, поэтому колонка InProgress необязательна. Устаревший AutomationEngine остаётся доступным для правил на основе триггеров, работы по расписанию/интервалу и обратной совместимости. Агенты работают через Claude Code, OpenAI Codex, Grok Build, Mistral Vibe или локальную модель Ollama, а их вывод транслируется в приложение.

Каждый процессор версионируется вместе с проектом в файле .agents/processors/column-<id>/processor.json. Это авторитетное определение содержит его миссию, явный промпт, модель, навыки, порядок задач, политику повторных попыток и маршрутизацию. SQLite хранит только синхронизированную проекцию времени выполнения и состояние выполнения. Постоянные уроки хранятся рядом с определением в .agents/processors/column-<id>/memory/MEMORY.md.

Технологический стек

Начало работы

Предварительные требования

  • .NET 10 SDK
  • Хотя бы один CLI агента в вашем PATH: Claude Code (claude), OpenAI Codex (codex), Grok Build (grok) или Mistral Vibe (vibe). Выполнение локальных моделей и DeepSeek использует Claude Code в качестве транспорта; для DeepSeek дополнительно требуется DEEPSEEK_API_KEY в защищённом хранилище проекта.
  • Опционально: Git (git в вашем PATH) для инициализации репозитория, Git-осведомлённых автоматизаций и коммитов агентов
  • Опционально: Rust Token Killer (RTK) (rtk в вашем PATH) для явной оптимизации вывода оболочки в каждом проекте. KittyClaw никогда не устанавливает и не настраивает его автоматически, а также принудительно отключает его телеметрию для запусков с подключённым RTK.

При первом запуске всплывающее окно онбординга проверяет Git и каждый поддерживаемый CLI-провайдер, используя те же разрешенные пути к исполняемым файлам, что и диспетчер: Claude Code (claude / KITTYCLAW_CLAUDE_BIN), OpenAI Codex (codex / KITTYCLAW_CODEX_BIN), Grok Build (grok, ~/.grok/bin или KITTYCLAW_GROK_BIN) и Mistral Vibe (vibe / KITTYCLAW_MISTRAL_BIN). Также сообщается о доступности опционального Ollama. Достаточно одного агента-провайдера, неудачные или прерванные по тайм-ауту проверки не блокируют работу, а функции, зависящие от Git, всё равно требуют его наличия.

Запуск

Из корня репозитория:

run.bat        (Windows)
./run.sh       (macOS / Linux)

Обе команды запускают dotnet watch --project KittyClaw.Web --non-interactive и разворачивают приложение на http://localhost:5230 с включённой горячей перезагрузкой.

Создание проекта

На главной странице выберите Создать проект, введите название и выберите рабочую область. Встроенный обозреватель папок работает на Windows, macOS и Linux без открытия системного диалога за браузером. Он отображает домашнюю директорию, смонтированные диски или корни файловой системы, навигационные цепочки, переход к родительской папке и возможность прямого ввода пути. Также можно ввести абсолютный путь и создать папку, если она не существует.

Нажмите Инициализировать, чтобы:

  1. Создать запись реестра проекта + отдельную базу данных SQLite для проекта.
  2. Скопировать шаблон проекта из ProjectTemplate/ (preamble.md, {agent}/SKILL.md, {agent}/memory/MEMORY.md индекс, memory-consolidation.md, automations.json, CLAUDE.md) в рабочую область — файлы агентов в <рабочая_область>/.agents/, CLAUDE.md в корне рабочей области.
  3. Выполнить git init, если рабочая область ещё не является репозиторием Git (пропускается, если git не установлен).
  4. Создать участника для каждого идентификатора агента, найденного в шаблоне.
  5. Открыть мастер настройки проекта.

Мастер настройки анализирует существующую рабочую область и предлагает отдельные пайплайны, колонки, передачи задач человеку, процессоры, маршрутизацию и расписания. Для пустой папки сначала задаётся несколько вопросов о цели проекта, ожидаемых результатах, решениях, принимаемых человеком, и повторяющейся работе. Предложения представлены графически: можно добавлять или удалять пайплайны, просматривать колонки каждого пайплайна, уточнять шаг с помощью подсказки и возвращаться назад перед подтверждением. Ничего не создаётся на этапе подготовки; Создать рабочий процесс применяет и проверяет утверждённый план, затем открывает доску.

Этот процесс настройки нового проекта намеренно отделён от мастера миграции устаревшей доски. Терминология миграции и очистка устаревших автоматизаций отображаются только при необходимости конвертации существующей доски на основе автоматизаций.

Сама папка рабочей области никогда не удаляется KittyClaw, даже при удалении проекта.

Хранение данных

Все данные KittyClaw хранятся локально в %APPDATA%/KittyClaw/:

  • registry.db — реестр проектов
  • projects/{slug}.db — база данных для каждого проекта (тикеты, комментарии, метки, колонки, участники)
  • uploads/ — загруженные изображения
  • runs/{runId}.json — снимки запусков агентов (события, статус, код завершения)
  • settings.json — язык + флаг онбординга

Состояние агентов для каждого проекта хранится в рабочей области: <рабочая_область>/.agents/{agent}/memory/ (оценённый индекс MEMORY.md + файлы уроков по темам), <рабочая_область>/.agents/channel/ (состояние сессии) и т. д.

Структура проекта

Путь Описание
KittyClaw.Core Доменные модели, контексты EF Core, сервисы, движок автоматизации, встроенный шаблон проекта
KittyClaw.Core.Tests Тесты xUnit (условия, триггеры, сигналы, полиморфизм JSON)
KittyClaw.Web Пользовательский интерфейс Blazor Server + REST API
KittyClaw.QaRunner Изолированный запускатель тестовых экземпляров (Playwright + сценарии тестирования), используемый агентом qa-tester
KittyClaw.ClaudeMock Имитация CLI claude, используемая KittyClaw.QaRunner для герметичного диспетчеризации агентов в тестах
ProjectTemplate/ Эталонный источник для инициализации новых проектов. Файлы в Agents/ записываются в <рабочая_область>/.agents/; CLAUDE.md записывается в корень рабочей области.
tools/ Вспомогательные скрипты репозитория (например, publish-stable.ps1 для сборки Web + QaRunner + ClaudeMock в стабильный канал)

Архитектура

Документация по архитектуре для каждой функции находится в каталоге doc/. Начните с конвейеров и обработки колонок для модели с несколькими конвейерами или с doc/index.md для полной карты архитектуры.

API

Все конечные точки находятся в /api. Документация генерируется автоматически на основе актуальной спецификации OpenAPI:

  • Человекочитаемая версия в Markdown: GET http://localhost:5230/api/docs
  • Машинночитаемая версия в JSON: GET http://localhost:5230/openapi/v1.json

Сервер MCP

KittyClaw может предоставлять встроенную конечную точку MCP по адресу http://localhost:5230/mcp (потоковый HTTP), благодаря чему любой MCP-клиент может управлять доской — просматривать проекты, создавать и перемещать тикеты, комментировать и читать структуру доски — без обращения к REST API. Откройте Настройки на главной странице и включите сервер MCP, затем подключите его к Claude Code с помощью:

claude mcp add --transport http kittyclaw http://localhost:5230/mcp

В версии 1 доступно семь инструментов: list_projects, list_tickets, get_ticket, create_ticket, comment_ticket, move_ticket, board_overview. Конечная точка отключена по умолчанию, её можно переключать без перезапуска KittyClaw, и она использует тот же локальный периметр доверия, что и REST API. Подробности в doc/mcp.md.

Для ИИ-агентов

Это приложение разработано для управления ИИ-агентами через REST API. Вот как начать:

  1. Читайте актуальную документацию API по адресу http://localhost:5230/api/docs — все конечные точки, примеры запросов/ответов и схемы всегда соответствуют работающему серверу.
  2. Представляйтесь — параметр author обязателен для всех изменяющих конечных точек; его отсутствие возвращает HTTP 400. Используйте простое имя агента (например, "programmer", "groomer"). Человек обозначается как "owner".
  3. Изучайте доску — сначала вызовите GET /api/projects, затем GET /api/projects/{slug}/columns, чтобы узнать этапы рабочего процесса, и GET /api/projects/{slug}/members для получения списка назначаемых участников.
  4. Используйте правильный статус — статусы тикетов должны совпадать с названиями существующих колонок. Запрашивайте колонки перед перемещением тикетов.
  5. Отслеживайте свою работу — добавляйте комментарии к тикетам, чтобы объяснить, что вы сделали или что вам нужно. Используйте @упоминания для уведомления участников, #id для ссылок на тикеты в том же проекте и #{slug}:{id} для ссылок на тикеты в другом проекте.
  6. Метки и приоритет — используйте GET /api/projects/{slug}/labels для получения доступных меток, а приоритет устанавливайте как Idea, NiceToHave, Required или Critical.
  7. Проверяйте упоминания — вызывайте GET /api/projects/{slug}/mentions/{ваш-ник} для поиска тикетов, где вас упомянули.
  8. Подтикеты — устанавливайте parentId при создании тикета, чтобы сделать его дочерним. Используйте PUT /api/projects/{slug}/tickets/{id}/parent для изменения родителя или DELETE для открепления. Список подтикетов можно получить с помощью ?parentId={id}.
  9. Межпроектные переносы — используйте POST /api/projects/{slug}/tickets/{id}/transfer только после проверки совместимости колонок, исполнителей и меток в целевом проекте. Операция сохраняет дерево тикетов и его историю либо отклоняет перенос без изменений в проектах. Подробности в Lossless ticket transfer.

Соглашения

  • Формат автора: "owner" для пользователя-человека, простое имя агента (например, "programmer") для ИИ-агентов
  • Уровни приоритета: Idea, NiceToHave, Required, Critical
  • Колонка по умолчанию: Backlog

Возможности интерфейса

  • Всплывающее окно онбординга при первом запуске, проверяющее Git, Claude Code, OpenAI Codex, Grok Build, Mistral Vibe и Ollama
  • Кроссплатформенный встроенный обозреватель рабочей области с корневыми папками, навигационной цепочкой, прямым вводом пути и созданием папок
  • Пошаговая настройка нового проекта с анализом рабочей области и предложением редактируемых конвейеров и колонок перед созданием рабочего процесса
  • Пошаговая миграция устаревших досок с сохранением завершённых тикетов и удалением заменённых автоматизаций только после проверки
  • Единая главная страница с несколькими проектами, карточками проектов и канбан-дорожками
  • Канбан с несколькими конвейерами и визуальным выделением разрешённых и запрещённых целей перетаскивания на основе маршрутизации процессоров
  • Контекстный редактор колонок для настройки структуры, роли, руководства владельца, процессора, упорядоченных действий, запланированных задач и маршрутизации
  • Настраиваемый дашборд с плитками свободного перетаскивания (Markdown, KPI, графики, Heatmap, Timeline и др.), созданием плиток через чат с ИИ и автообновлением по подсказкам LLM
  • Панель деталей тикета с комментариями и временной шкалой активности

  • Панель запуска живых агентов (поток SSE вывода провайдера, управление + остановка)
  • Новая панель чата с инструкциями для отправки ad-hoc-промпта агенту
  • Рендеринг Markdown с поддержкой @упоминаний, #id и #{slug}:{id} для ссылок на тикеты между проектами
  • Расширенный синтаксис поиска: #42, @владелец, >дата, приоритет:критический, метка:ошибка, от:владелец
  • Подтикеты с отношениями родитель/потомок и отслеживанием прогресса
  • Безопасная атомарная передача дерева тикетов между проектами через REST API
  • Управление колонками прямо с доски (вставка, дублирование, изменение порядка, настройка и отметка как прочитанное)
  • Управление метками и участниками
  • Загрузка изображений в описания и комментарии
  • Поддержка локальных моделей (Ollama): базовый URL для каждого проекта с автообнаружением моделей, модель по умолчанию для каждого участника и конфигурация для каждого действия в .agents/automations.json
  • Диспетчеризация с учётом провайдера через Claude Code, OpenAI Codex, Grok Build, Mistral Vibe или Ollama с передачей диалога и резервным вариантом при недоступности модели
  • Опциональное RTK-руководство для каждого проекта для компактного вывода в оболочке с ограниченным обнаружением, принудительно отключённой телеметрией и резервным вариантом в виде неизменённой исходной команды

Панель управления

Каждый проект имеет настраиваемое представление Панели управления наряду с канбан-доской. Тайлы можно свободно перетаскивать, они автоматически обновляются по расписанию и могут быть созданы или отредактированы из панели чата с ИИ в приложении — агент создаёт папку тайла за вас.

Панель управления KittyClaw

Типы тайлов

Идентификатор шаблона Что отображается
markdown Свободный контент в формате Markdown
table Табличные данные с заголовками и строками
kpi Одиночное большое число с меткой и необязательным изменением
kpi-grid Сетка из нескольких карточек KPI
progress Индикатор прогресса с текущим / целевым значениями
sparkline Компактная встроенная линия тренда
bar-chart Вертикальная или горизонтальная столбчатая диаграмма
donut Кольцевая / круговая диаграмма пропорций категорий
gauge Радиальный индикатор для ограниченного значения
status-grid Сетка цветных индикаторов статуса (вверх/вниз/предупреждение)
heatmap Календарная тепловая карта интенсивности во времени
leaderboard Рейтинговый список с оценками
timeline Хронологический список событий
image Статическое или обновляемое изображение
mermaid Диаграмма Mermaid (блок-схема, последовательность и т. д.)

Структура папок

Каждый тайл находится в своей папке внутри .dashboard/ в рабочей области проекта:

.dashboard/
  <tile-slug>/
    tile.yaml        # template, title, refresh schedule, prompt
    script.ps1       # optional refresh script (or script.sh, script.py, …)
    output.json      # last refresh output consumed by the template

Ключевые поля tile.yaml

  • template — один из идентификаторов из таблицы выше.
  • title — отображаемое имя, показываемое в заголовке тайла.
  • refresh — интервал (например, 5m, 1h) для периодического обновления.
  • refreshAt — обновление по времени в формате cron (альтернатива refresh).
  • prompt — инструкции, отправляемые агенту при (пере)генерации output.json.

Тайлы можно создавать из панели чата с ИИ на панели управления, описывая желаемое — агент выбирает шаблон, пишет tile.yaml, генерирует скрипт обновления и создаёт начальный output.json.

Отчёт о затратах

Страница Затраты предоставляет кэшированное представление использования агентов для каждого проекта, поэтому открытие отчёта происходит мгновенно даже при длительной истории запусков. Предустановленные даты позволяют быстро выбрать распространённые периоды, а фильтры по проекту, конвейеру и модели можно комбинировать; выбор конвейеров автоматически следует за выбранными проектами. Видимая легенда различает измеренные и оценочные затраты на ежедневных графиках.

Страница затрат KittyClaw с фильтрами по дате, проекту, пайплайну и модели, карточками затрат по проектам и легендой измеренных и оценочных значений

Модель автоматизации

  • Триггеры: interval, ticketInColumn, statusChange, subTicketStatus, ticketCommentAdded, gitCommit, boardIdle, agentInactivity.
  • Условия: ticketInColumn, ticketCountInColumn, fieldLength, priority, labels, assignedTo, hasParent, allSubTicketsInStatus, ticketAge.
  • Действия: runAgent, moveTicketStatus, setLabels, assignTicket, addComment, consolidateAgentMemory, commitAgentMemory, executePowerShell, createTicket, httpRequest (исходящие вебхуки; локальные/loopback-цели заблокированы, если не указано allowLocalTargets).
  • Заполнитель {assignee} в runAgent.agent / runAgent.concurrencyGroup разрешается из поля assignedTo тикета, вызвавшего срабатывание.
  • Каноническая цепочка после выполнения: runAgent → consolidateAgentMemory (целевой проход claude, который курирует индекс memory/ агента и файлы тем) → commitAgentMemory (фиксирует результат).

Телеметрия

KittyClaw отправляет один анонимный сигнал активности в день в сервис аналитики, дружественный к самостоятельному хостингу (Umami), чтобы мы знали, сколько экземпляров запущено и какие версии используются. Полезная нагрузка содержит ровно три поля и ничего больше:

  • случайный идентификатор экземпляра (GUID, генерируемый локально при первом запуске — не привязан к пользователю, машине или данным проекта)
  • версия KittyClaw
  • семейство ОС (Windows / macOS / Linux)

Никакой информации о тикетах, названиях проектов, именах хостов или деталях использования никогда не отправляется. Ошибки отправки молча игнорируются и не влияют на работу приложения. Экземпляры в режиме разработки никогда не отправляют телеметрию.


Лицензия

KittyClaw распространяется под лицензией AGPL-3.0-or-later. Самостоятельное хостинг и личное использование не ограничены; если вы распространяете изменённую версию или предоставляете её как сетевую службу, вы обязаны опубликовать исходный код под той же лицензией.

Дополнительные условия по AGPL §7 (полный текст в NOTICE.md): производные работы должны сохранять видимое упоминание KittyClaw (юридическое уведомление в приложении и заявление "основано на KittyClaw" в README), не искажать происхождение и не получают прав на название или логотипы KittyClaw.

Два аспекта, на которые AGPL не распространяется (см. NOTICE.md):

  • Ваши проекты: файлы шаблонов, которые KittyClaw копирует в ваше рабочее пространство (.agents/, CLAUDE.md, …), дополнительно лицензируются под MIT, а всё, что создаёт приложение для вас (тикеты, логи, коммиты агентов, …), принадлежит вам без каких-либо лицензионных ограничений. Управление проектом с помощью KittyClaw никогда не подчиняет этот проект лицензии AGPL.
  • Прошлое: версии до v0.11 включительно были выпущены под MIT и остаются доступными на этих условиях.

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

→ Сайт + демо: kittyclaw.dev

Ознакомьтесь с другими моими проектами на ekioo.com.

Подписывайтесь на X: @DamienHOFFSCHIR

Войдите, чтобы оставить комментарий