KittyClaw
KittyClaw
KittyClaw es un plano de control local para el trabajo de software realizado por agentes de IA. Envía un ticket de software, observa cómo se mueve por el tablero en vivo, lee la ejecución que cambió el código, inspecciona su verificación y toma la decisión final de publicación tú mismo.
El producto demuestra tres cosas en un solo recorrido: un tablero en vivo, una ejecución legible y validación humana antes de la publicación externa. Los tableros nuevos comienzan con Backlog, Todo, InProgress, Blocked, Scheduled, Review y Done (las columnas siguen siendo personalizables). Las ejecuciones pueden usar Claude Code, OpenAI Codex, Grok Build o un modelo local de Ollama.
Sigue la demostración guiada de cinco minutos para repetir el recorrido con un ticket de software realista. El protocolo de prueba de activación complementario mide si los usuarios de prueba calificados alcanzan su primera ejecución en diez minutos.
Un proyecto puede dividirse en pipelines con nombres independientes cuyas identidades estables sobreviven a los cambios de nombre. Las columnas pueden tener procesadores genéricos con memoria persistente, habilidades de proyecto reutilizables, selección ordenada de tickets, reintentos duraderos y enrutamiento tipo interruptor hacia columnas en cualquier pipeline. Haz clic derecho en una columna y elige Configurar columna para editar su nombre, color, rol, posición, guía de tickets, procesador y enrutamiento sin perder el contexto visual del tablero. Los tickets en columnas Waiting o OwnerAction siempre muestran un bloque contextual destacado entre su descripción y su actividad, que explica si el propietario debe comentar o mover el ticket a una columna específica de validación/rechazo, o si KittyClaw lo reanudará automáticamente. Las columnas también pueden insertarse entre carriles existentes o añadirse al final directamente desde el Kanban; la página Workflows sigue siendo la vista global de pipelines y habilidades. El estado de ejecución es independiente de las columnas de negocio, por lo que una columna InProgress es opcional. El legado AutomationEngine sigue disponible para reglas basadas en disparadores, trabajo programado por cron/intervalos y compatibilidad hacia atrás. Los agentes se ejecutan a través de Claude Code, OpenAI Codex, Grok Build, Mistral Vibe o un modelo local de Ollama mientras su salida se transmite en vivo a la aplicación.
Cada procesador tiene versiones asociadas a su proyecto en
.agents/processors/column-<id>/processor.json. Esta definición autoritativa contiene su
misión, prompt explícito, modelo, habilidades, orden de tickets, política de reintentos y enrutamiento. SQLite guarda
solo una proyección sincronizada en tiempo de ejecución y el estado de ejecución. Las lecciones persistentes viven junto a la
definición en .agents/processors/column-<id>/memory/MEMORY.md.
Pila tecnológica
.NET 10 / Blazor Server (SSR interactivo)
SQLite mediante Entity Framework Core (una base de datos por proyecto)
OpenAPI con documentación Markdown generada automáticamente
Ejecución de agentes: al menos una CLI compatible — Claude Code CLI, OpenAI Codex CLI, Grok Build o Mistral Vibe. Ollama también es compatible para modelos locales a través de la CLI de Claude Code (configuración de modelo local).
Opcional para la inicialización de repositorios, automatizaciones conscientes de Git y commits de agentes: Git
Requisitos previos
Al menos una CLI de agente en tu
PATH: Claude Code (claude), OpenAI Codex (codex), Grok Build (grok) o Mistral Vibe (vibe). La ejecución con modelos locales requiere tanto la CLI de Claude Code como un servidor Ollama accesible.Opcional: Git (
giten tuPATH) para la inicialización de repositorios, automatizaciones conscientes de Git y commits de agentes.
En el primer inicio, la ventana de bienvenida verifica Git y cada CLI de proveedor compatible usando las mismas rutas de ejecutables resueltas que se usan para el despacho: Claude Code (claude / KITTYCLAW_CLAUDE_BIN), OpenAI Codex (codex / KITTYCLAW_CODEX_BIN), Grok Build (grok, ~/.grok/bin o KITTYCLAW_GROK_BIN) y Mistral Vibe (vibe / KITTYCLAW_MISTRAL_BIN). También informa sobre la disponibilidad opcional de Ollama. Cualquier proveedor de agente es suficiente; las sondas que fallan o expiran no bloquean, y las funciones que dependen de Git siguen requiriéndolo.
Ejecución
Desde la raíz del repositorio:
run.bat (Windows)
./run.sh (macOS / Linux)Ambos ejecutan dotnet watch --project KittyClaw.Web --non-interactive y sirven la aplicación en http://localhost:5230 con recarga en caliente habilitada.
Creación de un proyecto
Desde la página de inicio, selecciona Crear proyecto, ingresa un nombre y elige su espacio de trabajo. El explorador de carpetas integrado funciona en Windows, macOS y Linux sin abrir un diálogo nativo del sistema detrás del navegador. Expone el directorio de inicio, las unidades montadas o las raíces del sistema de archivos, las rutas de navegación, la navegación al directorio padre y la entrada directa de rutas. También puedes escribir una ruta absoluta y crear la carpeta si no existe.
Haz clic en Inicializar para:
Crear la entrada del registro del proyecto + la base de datos SQLite específica del proyecto.
Copiar la plantilla del proyecto desde
ProjectTemplate/(preamble.md,{agent}/SKILL.md, índice de{agent}/memory/MEMORY.md,memory-consolidation.md,automations.json,CLAUDE.md) al espacio de trabajo — archivos de agente en<workspace>/.agents/,CLAUDE.mden la raíz del espacio de trabajo.Ejecutar
git initsi el espacio de trabajo no es ya un repositorio git (se omite sigitno está instalado).Crear un miembro para cada slug de agente encontrado en la plantilla.
Abrir el asistente de configuración del proyecto.
El asistente de configuración analiza un espacio de trabajo existente y propone pipelines, columnas, traspasos humanos, procesadores, enrutamiento y horarios distintos. Para una carpeta vacía, primero hace algunas preguntas sobre el propósito del proyecto, los entregables, las decisiones humanas y el trabajo recurrente. Las propuestas son gráficas: puedes añadir o quitar pipelines, revisar las columnas de cada pipeline, refinar un paso con un prompt y volver atrás antes de la aprobación. No se crea nada durante esta preparación; Crear el flujo de trabajo aplica y verifica el plan aprobado y luego abre el tablero.
Esta configuración de proyecto nuevo está deliberadamente separada del asistente de migración del tablero legado. La terminología de migración y la limpieza de automatizaciones legadas solo se muestran cuando un tablero existente basado en automatizaciones necesita conversión.
La carpeta del espacio de trabajo nunca se elimina con KittyClaw, incluso cuando eliminas un proyecto.
Almacenamiento de datos
Todos los datos de KittyClaw se almacenan localmente en %APPDATA%/KittyClaw/:
registry.db— registro de proyectosprojects/{slug}.db— base de datos específica del proyecto (tickets, comentarios, etiquetas, columnas, miembros)uploads/— imágenes subidasruns/{runId}.json— instantáneas de ejecución de agentes (eventos, estado, código de salida)settings.json— idioma + indicador de incorporación
El estado del agente específico del proyecto vive en el espacio de trabajo: <workspace>/.agents/{agent}/memory/ (índice MEMORY.md + archivos de lecciones por tema), <workspace>/.agents/channel/ (estado de sesión), etc.
Estructura del proyecto
Ruta | Descripción |
KittyClaw.Core | Modelos de dominio, contextos de EF Core, servicios, motor de automatización, plantilla de proyecto integrada |
KittyClaw.Core.Tests | Pruebas xUnit (condiciones, disparadores, señales, polimorfismo JSON) |
KittyClaw.Web | UI de Blazor Server + API REST |
KittyClaw.QaRunner | Lanzador de instancias de prueba aislado (Playwright + ejecutor de escenarios) utilizado por el agente qa-tester |
KittyClaw.ClaudeMock | CLI |
ProjectTemplate/ | Fuente de verdad para la inicialización de proyectos nuevos. Los archivos en |
tools/ | Utilidades del repositorio (p. ej. |
Arquitectura
La documentación de arquitectura por función vive en doc/. Comienza con procesamiento de pipelines y columnas para el modelo de múltiples pipelines, o doc/index.md para el mapa completo de la arquitectura.
API
Todos los endpoints están bajo /api. La documentación se genera automáticamente a partir de la especificación OpenAPI en vivo:
Markdown legible por humanos:
GET http://localhost:5230/api/docsJSON legible por máquinas:
GET http://localhost:5230/openapi/v1.json
Servidor MCP
KittyClaw puede exponer un endpoint MCP integrado en http://localhost:5230/mcp (HTTP Streamable), de modo que cualquier cliente MCP pueda manejar el tablero — listar proyectos, crear y mover tickets, comentar y leer el diseño del tablero — sin tocar la API REST. Establece KITTYCLAW_MCP_ENABLED=1 antes de iniciar KittyClaw y luego conéctalo a Claude Code con:
claude mcp add --transport http kittyclaw http://localhost:5230/mcpSiete herramientas se incluyen en v1: list_projects, list_tickets, get_ticket, create_ticket, comment_ticket, move_ticket, board_overview. El endpoint está deshabilitado por defecto y usa el mismo límite de confianza de localhost que la API REST. Detalles en doc/mcp.md.
Para agentes de IA
Esta aplicación está diseñada para ser operada por agentes de IA a través de su API REST. Así es como empezar:
Lee la documentación de la API en vivo en
http://localhost:5230/api/docs— cada endpoint, ejemplo de solicitud/respuesta y esquema, siempre actualizado con el servidor en ejecución.Identifícate —
authores obligatorio en cada endpoint de mutación; omitirlo devuelve HTTP 400. Usa tu nombre de agente simple (p. ej."programmer","groomer"). El usuario humano es"owner".Descubre el tablero — llama a
GET /api/projectsprimero, luegoGET /api/projects/{slug}/columnspara conocer las etapas del flujo de trabajo yGET /api/projects/{slug}/memberspara los miembros asignables.Usa el estado correcto — los estados de los tickets deben coincidir con los nombres de columna existentes. Obtén las columnas antes de mover tickets.
Registra tu trabajo — añade comentarios en los tickets para explicar lo que hiciste o lo que necesitas. Usa
@mencionespara notificar a miembros,#idpara referenciar tickets en el mismo proyecto y#{slug}:{id}para referenciar tickets en otro proyecto.Etiquetas y prioridad — usa
GET /api/projects/{slug}/labelspara descubrir las etiquetas disponibles y establece la prioridad enIdea,NiceToHave,RequiredoCritical.Consulta menciones — llama a
GET /api/projects/{slug}/mentions/{tu-handle}para encontrar tickets que te mencionan.Sub-tickets — establece
parentIdal crear un ticket para convertirlo en hijo. UsaPUT /api/projects/{slug}/tickets/{id}/parentpara reasignar el padre, oDELETEpara desvincularlo. Lista los sub-tickets con?parentId={id}.Transferencias entre proyectos — usa
POST /api/projects/{slug}/tickets/{id}/transfersolo después de verificar que el proyecto de destino tiene columnas, asignados y etiquetas compatibles. La operación preserva el árbol de tickets y su historial, o rechaza la transferencia sin modificar ninguno de los dos proyectos. Consulta Transferencia de tickets sin pérdida.
Convenciones
Formato de autor:
"owner"para el usuario humano, nombre de agente simple (p. ej."programmer") para agentes de IANiveles de prioridad:
Idea,NiceToHave,Required,CriticalColumna predeterminada:
Backlog
Funciones de la interfaz
Ventana emergente de bienvenida en el primer inicio que comprueba Git, Claude Code, OpenAI Codex, Grok Build, Mistral Vibe y Ollama
Explorador de espacios de trabajo integrado multiplataforma con raíces, rutas de navegación, entrada directa de rutas y creación de carpetas
Configuración guiada de nuevos proyectos que analiza el espacio de trabajo y propone pipelines y columnas editables antes de crear el flujo de trabajo
Migración guiada de tableros heredados que conserva los tickets completados y retira las automatizaciones sustituidas solo tras la verificación
Inicio unificado multiproyecto con tarjetas de proyecto y carriles kanban
Kanban multipipeline con destinos de colocación permitidos y prohibidos visualmente diferenciados según el enrutamiento del procesador
Editor contextual de columnas para estructura, rol, orientación del propietario, procesador, acciones ordenadas, tareas programadas y enrutamiento
Vista de panel personalizable con mosaicos de arrastre libre (Markdown, KPI, gráficos, Heatmap, Timeline, …), creación de mosaicos mediante chat de IA y actualización automática mediante prompts de LLM
Panel de detalle de tickets con comentarios y cronología de actividad
Cajón de ejecución de agente en vivo (flujo SSE de la salida del proveedor, controles de dirección y detención)
Cajón de chat de nuevas instrucciones para enviar un prompt ad hoc a un agente
Renderizado de Markdown con soporte de referencias a tickets entre proyectos mediante
@mention,#idy#{slug}:{id}Sintaxis de búsqueda avanzada:
#42,@owner,>date,priority:critical,label:bug,by:ownerSubtickets con relaciones padre/hijo y seguimiento de progreso
Transferencias atómicas y sin pérdidas de árboles de tickets entre proyectos mediante la API REST
Gestión de columnas directamente desde el tablero (insertar, duplicar, reordenar, configurar y marcar como leída)
Gestión de etiquetas y miembros
Subida de imágenes en descripciones y comentarios
Soporte de modelos locales (Ollama): URL base por proyecto con autodescubrimiento de modelos, modelo predeterminado por miembro y configuración por acción en
.agents/automations.jsonDespacho consciente del proveedor mediante Claude Code, OpenAI Codex, Grok Build, Mistral Vibe u Ollama, con traspaso de conversación y respaldo ante modelos no disponibles
Dashboard
Cada proyecto tiene una vista de Dashboard personalizable junto al tablero kanban. Los mosaicos se arrastran libremente, se actualizan automáticamente según un horario y pueden crearse o editarse desde el panel de chat de IA integrado: el agente escribe la carpeta del mosaico por ti.
Tipos de mosaico
Template id | Qué renderiza |
| Contenido Markdown de formato libre |
| Datos tabulares con encabezados y filas |
| Un único número grande con etiqueta y delta opcional |
| Cuadrícula de varias tarjetas KPI |
| Barra de progreso con valores actual / objetivo |
| Línea de tendencia compacta en línea |
| Gráfico de barras vertical u horizontal |
| Gráfico de donut / tarta de proporciones categóricas |
| Indicador radial para un valor acotado |
| Cuadrícula de píldoras de estado de colores (activo/inactivo/aviso) |
| Mapa de calor estilo calendario de intensidad a lo largo del tiempo |
| Lista clasificada con puntuaciones |
| Lista cronológica de eventos |
| Imagen estática o actualizada |
| Diagrama Mermaid (diagrama de flujo, secuencia, …) |
Estructura de carpetas
Cada mosaico reside en su propia carpeta dentro de .dashboard/ en el espacio de trabajo del proyecto:
.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 templateCampos clave de tile.yaml
template— uno de los ids de la tabla anterior.title— nombre mostrado en el encabezado del mosaico.refresh— intervalo (p. ej.5m,1h) para la actualización periódica.refreshAt— actualización a una hora del día en formato cron (alternativa arefresh).prompt— instrucciones enviadas al agente al (re)generaroutput.json.
Los mosaicos pueden crearse desde el panel de chat de IA del dashboard describiendo lo que deseas: el agente elige una plantilla, escribe tile.yaml, genera el script de actualización y produce el output.json inicial.
Informe de costes
La página Costs ofrece una vista en caché del uso de agentes por proyecto, de modo que abrir el informe es inmediato incluso con un historial de ejecuciones largo. Los ajustes predefinidos de fecha permiten seleccionar rápidamente los periodos habituales, mientras que los filtros de proyecto, pipeline y modelo pueden combinarse; las opciones de pipeline siguen automáticamente a los proyectos seleccionados. Una leyenda visible distingue los costes medidos de los costes estimados en los gráficos diarios.
Modelo de automatización
Disparadores:
interval,ticketInColumn,statusChange,subTicketStatus,ticketCommentAdded,gitCommit,boardIdle,agentInactivity.Condiciones:
ticketInColumn,ticketCountInColumn,fieldLength,priority,labels,assignedTo,hasParent,allSubTicketsInStatus,ticketAge.Acciones:
runAgent,moveTicketStatus,setLabels,assignTicket,addComment,consolidateAgentMemory,commitAgentMemory,executePowerShell,createTicket,httpRequest(webhooks salientes; los destinos de bucle local o enlace local están bloqueados salvo que se indiqueallowLocalTargets).El marcador de posición
{assignee}enrunAgent.agent/runAgent.concurrencyGroupse resuelve a partir delassignedTodel ticket que lo activa.Cadena canónica posterior a la ejecución:
runAgent→consolidateAgentMemory(pasada claude centrada que selecciona el índicememory/del agente y los archivos de temas) →commitAgentMemory(confirma el resultado).
Telemetría
KittyClaw envía un latido anónimo al día a un servicio de analítica compatible con autoalojamiento (Umami) para que sepamos cuántas instancias están activas y qué versiones se ejecutan en producción. La carga útil contiene exactamente tres campos y nada más:
un id de instancia aleatorio (un GUID generado localmente en el primer inicio, no vinculado a ningún usuario, máquina ni dato de proyecto)
la versión de KittyClaw
la familia de sistema operativo (
Windows/macOS/Linux)
Nunca se envían contenidos de tickets, nombres de proyectos, nombres de host ni detalles de uso. Los fallos son silenciosos y nunca afectan a la aplicación. Las instancias de desarrollo nunca envían telemetría.
Licencia
KittyClaw está licenciado bajo AGPL-3.0-or-later. El autoalojamiento y el uso personal no tienen restricciones; si distribuyes una versión modificada u ofreces una como servicio de red, debes publicar tu código fuente bajo la misma licencia.
Términos adicionales según AGPL §7 (texto completo en NOTICE.md): las obras derivadas deben mantener visible la atribución a KittyClaw (el aviso legal integrado y una declaración de «basado en KittyClaw» en su README), no deben tergiversar su origen y no reciben derechos sobre el nombre ni los logotipos de KittyClaw.
Dos cosas que la AGPL no afecta (consulta NOTICE.md):
Tus proyectos: los archivos de plantilla que KittyClaw copia en tu espacio de trabajo (
.agents/,CLAUDE.md, …) tienen además licencia MIT, y todo lo que la aplicación produce para ti (tickets, registros, commits de agentes, …) es tuyo, sin licencia. Gestionar un proyecto con KittyClaw nunca coloca ese proyecto bajo la AGPL.El pasado: las versiones hasta la v0.11 inclusive se publicaron bajo MIT y siguen disponibles bajo esos términos.
Más proyectos y contacto
→ Sitio + demo: kittyclaw.dev
Echa un vistazo a mis otros proyectos en ekioo.com.
Sígueme en X: @DamienHOFFSCHIR
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Control plane for autonomous software labor. Agents claim objectives over MCP with audit trail.
Task manager your agent can fully operate: boards, tasks, sprints, roles, worklogs, day planner.
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Ekioo/KittyClaw'
If you have feedback or need assistance with the MCP directory API, please join our Discord server