Agentes de IA corren tu proceso de desarrollo. Vos decidís qué se mergea.

Cada etapa de tu tablero tiene su agente. Un auditor que prendés puede revisar el trabajo antes de avanzar, un agente de QA te entrega el video de cada prueba y, por default, ningún agente puede mergear.

Gratis, sin límite de workspaces. Corre en tus servidores y habla con el modelo con tu propia key.

Un dibujo del tablero: una tarea pasa por el agente, el auditor y QA, y vuelve con su PR. Las capturas de más abajo muestran el dashboard en inglés.

Cómo funciona

Una tarea, del tablero vacío al merge

  1. Armás el tablero con tus etapas.

    Un tablero nuevo arranca con Backlog, In progress y Done. Lo convertís en Backlog, Desarrollo, QA, Review humano y Done, o en lo que use tu equipo. Decidís cuáles tienen agente, cuáles avanzan solas y cuáles esperan la aprobación de una persona.

  2. Le asignás un agente a cada etapa.

    Los agentes los escribís vos o los importás; no viene ninguno instalado. Cada agente tiene su prompt, su modelo, sus herramientas y sus permisos en cada etapa. El de desarrollo puede hacer push en Desarrollo; el de QA abre un browser en QA.

  3. Creás la tarea y el agente trabaja.

    Trabaja en su propia rama y su propio sandbox, donde levanta tu app con el script de arranque del proyecto. Su key dura 24 horas como máximo, muere cuando termina el run y sólo puede cambiar su propia tarea.

  4. El auditor la devuelve si falta algo.

    Si lo prendiste para esa etapa, un auditor revisa el resultado contra tu definición de terminado, en su propio contenedor y con el repo montado en sólo lectura. La tarea vuelve con el motivo y el siguiente run sigue desde ahí.

  5. Recibís el video de cada prueba.

    El agente de QA prueba la app en un navegador real, graba cada caso y registra si pasa o falla. Ves dónde hizo clic y qué estaba comprobando.

  6. Una persona aprueba y mergea.

    La tarea te muestra el PR con su CI y su review. Una persona de tu equipo revisa y mergea. Los agentes pueden pedir aprobaciones pero nunca darlas, y mergear es una herramienta que ningún permiso de escritura incluye: un admin tiene que nombrarla en la etapa.

Dibujos con datos inventados. Las capturas de más abajo son el dashboard real.

Probalo con dos comandos

curl -fsSL https://github.com/MisterDonnuts/thulu/releases/latest/download/install.sh | sh
thulu init

Necesitás Docker con Compose. El asistente pregunta lo que tiene que saber y la página Setup te muestra lo que falta: agentes, una credencial de GitHub, una key del modelo y tu primer proyecto.

Pipeline gobernado

Tu proceso, con agentes que lo respetan

Tu equipo ya tiene reglas: qué se revisa, quién aprueba, qué no se mergea sin pruebas. En Thulu esas reglas son parte del tablero.

  • Etapas a tu medida. Hasta 32 por tablero y 64 tableros por workspace. Tipos de tarea que saltean etapas, como un hotfix que no pasa por refinamiento.
  • Un auditor en las etapas que elegís. Lo prendés por agente y etapa; ninguno viene prendido. Corre en su propio container, con el repo en sólo lectura. Aprueba, devuelve la tarea a otra etapa, la bloquea o pide más turnos.
  • Gates de aprobación. Una etapa puede exigir que una persona apruebe antes de que la tarea salga, y un agente que detecta una decisión de arquitectura o un impacto en infraestructura puede pedir una aprobación. La tarea no avanza hasta que una persona apruebe. Los agentes piden aprobaciones pero nunca las dan. Si pedís cambios, el agente retoma el trabajo.
  • El PR adentro de la tarea. Cada PR muestra cuántos checks de CI pasaron, el estado del review, si está listo para mergear y por qué está bloqueado, sin abrir GitHub (el conteo completo usa el permiso Checks de la GitHub App).
  • Los agentes preguntan en vez de adivinar. Cuando un agente necesita algo que sólo sabe una persona, pregunta en la tarea y espera. Cuando contestás, el run sigue donde quedó.
Ver 6 más
  • Hablás con el agente mientras trabaja. Le escribís en la tarea o lo arrobás en un hilo, y contesta ahí mismo (con Claude Code en Docker; en Kubernetes, o con Codex y OpenCode, el mensaje espera a que termine la corrida).
  • El agente atiende el review. Responde y resuelve los hilos de review, pide reviewers, maneja labels y lee los checks del PR (con el mismo permiso Checks; sin él, sólo los jobs de Actions). Cerrar un PR no puede.
  • Un chat que trabaja por vos. Con "Actuar por mí", un chat sin tarea crea, edita y mueve tareas en todos tus tableros durante 8 horas, y con la GitHub App abre PRs en tus repos. Lo que borra, un merge o la aprobación de un deploy esperan tu confirmación. Un owner lo puede apagar para todo el workspace.
  • Dependencias. Una tarea no arranca hasta que la que la bloquea llegue a una etapa terminal, como Done.
  • Subtareas y tablero con teclado. Las subtareas tienen su orden y pueden esperar a una hermana. El tablero se maneja entero con el teclado: flechas, Space levanta y suelta la tarjeta, M la mueve, P cambia la prioridad. Modo claro y oscuro.
  • Automatizaciones. Tareas que se crean solas por cron, por un evento de GitHub o cuando una métrica cruza un umbral.
Pestaña Reports de una tarea, en inglés. El veredicto del auditor la devuelve a In progress porque de tres criterios de aceptación se cumple uno; arriba, la segunda corrida del agente y un veredicto para seguir.
El auditor devuelve la tarea con lo que falta y la segunda corrida lo resuelve. Deslizá de costado para ver el resto.

QA con video

Cada prueba llega con su video

El agente de QA levanta tu app en el sandbox de la tarea, la prueba en un browser real y graba lo que hace. No tenés que creerle a un "lo probé".

La misma prueba del checkout lado a lado, en inglés. Antes, en staging, el cupón figura aplicado pero el total sigue en $240.00 y el check falla. Después, en la rama del pull request, el total baja a $216.00 y el check pasa.
Un cuadro recreado de un video de QA, en una tienda inventada: la misma prueba contra staging y contra la rama del PR.
  • Video con cursor y subtítulos. Ves dónde hizo clic y qué estaba probando. Se recortan los tiempos muertos.
  • Pasa o falla, medido. Cada caso tiene su check, que la herramienta mide y vuelve a medir cada vez que se reproduce la prueba.
  • Antes y después. La misma prueba contra la versión anterior y contra la nueva, lado a lado.
  • La app arriba en cada tarea. Cada proyecto tiene un script de arranque con sus parámetros, puertos y chequeo de "listo". El agente lo corre cuando lo necesita; si tu app cambió y el script falla, lo corrige y la revisión queda en la auditoría con el agente como autor.
  • Casos de prueba con historia. TC-1, TC-2: cada uno con sus pasos, el resultado esperado y cada corrida con su veredicto y su video.
Ver 4 más
  • Pruebas que se repiten. La toma se guarda en tu repo como JSON y se vuelve a correr en otra tarea.
  • Capturas anotadas. Con los pasos numerados y los datos sensibles tachados.
  • Todo en una vista. La pestaña "Desde tareas" de Evidencia junta los casos de todo el workspace, con filtros por estado, tablero y proyecto.
  • Sin reinstalar todo en cada tarea. Cada workspace guarda las cachés de npm, Go y pip y los toolchains en un volumen propio. Con la fase setup del script de arranque del proyecto, Thulu precalienta las dependencias de la rama principal y la tarea las restaura en vez de instalarlas; si tu rama cambió el lock file, instala sólo lo que falta.
Pestaña From tasks de Evidence, en inglés: siete casos de prueba de dos tareas con su prioridad, estado y última corrida. Cuatro pasan, uno falla, uno está pendiente y uno se omitió.
Los casos de prueba de todo el workspace, con su estado y su última corrida. Deslizá de costado para ver el resto.

Seguridad y control

Corre en tus servidores y habla con el modelo con tu propia key

Qué corre dónde

Tu infraestructura

  • Thulu
  • Postgres
  • Containers de agentes
  • Proveedor de LLM, con tu key
  • GitHub
  • Tu key del modelo. Claude por Anthropic, Bedrock o Vertex. El código que lee el agente va al proveedor que elegiste, con tu key. Nosotros no vemos tus tokens ni los revendemos.
  • La key no entra al agente. Un gateway dentro de Thulu le da a cada run un token propio y lo revoca al terminar. Un token OAuth de Claude Pro/Max no pasa por el gateway.
  • Una key por run. Cada container recibe una key que dura 24 horas como máximo, se revoca al terminar y sólo puede cambiar su propia tarea.
  • Por default ningún agente mergea. Mergear es una herramienta que ningún permiso de escritura incluye: un admin la tiene que nombrar en la etapa.
  • Audit log con cadena de hashes. 62 tipos de evento, cada uno encadenado al anterior, con verificación por API y copia a stdout, stderr o un archivo NDJSON.
Ver 6 más
  • Tu token de GitHub no entra al agente. Thulu publica la rama en GitHub con un token acotado al repo. En Docker, commit y push los hace Thulu; en Kubernetes el agente usa git normal en su copia (commit, rebase, push) y el push pasa por Thulu, que nunca descarta un commit.
  • SSO de tu IdP. Okta, Entra ID, Google, Keycloak o cualquier IdP OIDC, o GitHub. Thulu no guarda contraseñas.
  • Tu equipo entra por invitación. Cargás el email y el rol, y compartís el link: Thulu no manda el mail. La persona entra con ese rol la primera vez que inicia sesión, y la invitación ocupa un asiento.
  • Aislación fuerte en Kubernetes. Namespace por equipo, NetworkPolicy deny-by-default y Kata o gVisor obligatorios. Validado en un solo nodo; pide una licencia paga (Team o Enterprise).
  • Binarios firmados. El instalador verifica el SHA-256 y, si tenés cosign, la firma.
  • Hoy self-hosted; nube gestionada: beta cerrada, sólo con invitación. Self-hosted con Docker Compose o Kubernetes. Cómo es la beta de la nube.

Métricas y costo

Cuánto costó cada tarea y dónde se trabó

  • Costo por tarea. Costo y tokens por agente, modelo, proyecto, tool y skill, y las 20 tareas que más costaron.
  • Métricas de flujo. Lead time, tiempo por etapa, rework, tareas devueltas por el auditor, first-pass rate y costo por tarea terminada.
  • Métricas de tu app. Mandá las tuyas por OTLP; entran a un gráfico cuando un admin las aprueba.
  • Prometheus. /metrics con las métricas del daemon para tu monitoreo.
Tabla Top tasks by cost de la página de uso, en inglés, con sesiones, turnos, tokens, costo y duración de cada tarea.
Las tareas que más costaron, en la página de uso. Deslizá de costado para ver el resto.

Precios

En tus servidores (self-hosted)

Precios en USD. Team se paga por mes, o por año con dos meses gratis ($3.990/año hasta 10 personas). Enterprise es un contrato anual, por factura o transferencia.

FreeTeamEnterprise
PrecioGratis$399/mes hasta 10 personas, más $20/mes por cada persona desde la 11ª$15.000/año hasta 25 personas, más $30/mes por cada persona desde la 26ª
EquipoHasta 4 personasDesde la 5ª personaCualquier tamaño
Tablero, etapas, agentes, auditor y QA con videoSíSíSí
Sandbox DockerSíSíSí
Audit log en la UI y SSO por OIDC o GitHubSíSíSí
Varios workspacesSíSíSí
Export del audit log (CSV/NDJSON)No incluidoSíSí
Runtime Kubernetes (Kata/gVisor, namespace por equipo)No incluidoSíSí
SoporteDocumentación y GitHubEmail, horario laboralSLA por contrato y contacto nombrado
Versiones soportadas por contratoNo incluidoNo incluidoSí

Free

Precio
Gratis
Equipo
Hasta 4 personas
Tablero, etapas, agentes, auditor y QA con video
Sí
Sandbox Docker
Sí
Audit log en la UI y SSO por OIDC o GitHub
Sí
Varios workspaces
Sí
Export del audit log (CSV/NDJSON)
No incluido
Runtime Kubernetes (Kata/gVisor, namespace por equipo)
No incluido
Soporte
Documentación y GitHub
Versiones soportadas por contrato
No incluido

Team

Precio
$399/mes hasta 10 personas, más $20/mes por cada persona desde la 11ª
Equipo
Desde la 5ª persona
Tablero, etapas, agentes, auditor y QA con video
Sí
Sandbox Docker
Sí
Audit log en la UI y SSO por OIDC o GitHub
Sí
Varios workspaces
Sí
Export del audit log (CSV/NDJSON)
Sí
Runtime Kubernetes (Kata/gVisor, namespace por equipo)
Sí
Soporte
Email, horario laboral
Versiones soportadas por contrato
No incluido

Enterprise

Precio
$15.000/año hasta 25 personas, más $30/mes por cada persona desde la 26ª
Equipo
Cualquier tamaño
Tablero, etapas, agentes, auditor y QA con video
Sí
Sandbox Docker
Sí
Audit log en la UI y SSO por OIDC o GitHub
Sí
Varios workspaces
Sí
Export del audit log (CSV/NDJSON)
Sí
Runtime Kubernetes (Kata/gVisor, namespace por equipo)
Sí
Soporte
SLA por contrato y contacto nombrado
Versiones soportadas por contrato
Sí

Thulu no controla los tamaños de equipo. Lo único que pide una clave de licencia es lo que está en ee/.

Para comprar Team o Enterprise, abrí una pregunta en GitHub.

Nube gestionada (SaaS)

Por seat, con tu key del modelo. La nube gestionada es una beta cerrada, sólo con invitación.

FreeTeamBusinessEnterprise
Precio$0$39/seat/mes ($32 anual)$79/seat/mes ($65 anual)A medida
SeatsHasta 4Hasta 20IlimitadosIlimitados
Agentes a la vez1515Pool dedicado
Runs por mes1001.0005.000A medida
Varios workspaces y export del auditNo incluidoNo incluidoSíSí
Contrato y DPANo incluidoNo incluidoNo incluidoSí

Free

Precio
$0
Seats
Hasta 4
Agentes a la vez
1
Runs por mes
100
Varios workspaces y export del audit
No incluido
Contrato y DPA
No incluido

Team

Precio
$39/seat/mes ($32 anual)
Seats
Hasta 20
Agentes a la vez
5
Runs por mes
1.000
Varios workspaces y export del audit
No incluido
Contrato y DPA
No incluido

Business

Precio
$79/seat/mes ($65 anual)
Seats
Ilimitados
Agentes a la vez
15
Runs por mes
5.000
Varios workspaces y export del audit
Sí
Contrato y DPA
No incluido

Enterprise

Precio
A medida
Seats
Ilimitados
Agentes a la vez
Pool dedicado
Runs por mes
A medida
Varios workspaces y export del audit
Sí
Contrato y DPA
Sí

El consumo del modelo lo pagás vos directo a tu proveedor. Thulu te muestra cuánto se fue en cada tarea.

¿Querés que lo instalemos nosotros? Implementación de $3.000 a $6.000: instalación, etapas y agentes para tu stack, GitHub conectado y los primeros flujos de QA. O un piloto de 60 días por $2.500, que se descuenta si firmás el año. Preguntanos en GitHub.

Preguntas frecuentes

Las respuestas largas están en la documentación.

¿Qué modelos usa?

Claude a través de Claude Code, el motor principal: Sonnet, Opus y Haiku, con la API de Anthropic, con Bedrock, con Vertex o detrás de un proxy propio como LiteLLM. Codex usa los modelos de OpenAI con tu clave de OpenAI, y OpenCode llega a APIs compatibles con OpenAI como DeepSeek. Cada agente elige su motor y su modelo, y su auditor puede usar otros.

¿Dónde corre?

En tus servidores, con Docker Compose o con Kubernetes. Hoy self-hosted; nube gestionada: beta cerrada, sólo con invitación. En self-hosted necesitás Postgres; el instalador te lo arma con Docker Compose si no tenés uno.

¿Qué pasa con mi código?

Si Thulu corre en tus servidores, el repo se clona ahí y cada tarea trabaja en su propio worktree. El código que el agente lee va al proveedor de LLM que elegiste, con tu key, igual que cuando un desarrollador usa un agente de código. A Mister.D no le llega.

¿Cuánto cuesta el modelo?

Lo pagás vos directo a tu proveedor, según lo que consumen tus agentes. La página de usage te muestra el costo de cada tarea, agente y modelo desde el primer día.

¿Necesito Kubernetes?

No. Con Docker Compose alcanza para empezar. Kubernetes con Kata o gVisor suma aislación fuerte por equipo y control del tráfico de salida; pide una licencia paga (Team o Enterprise) y está validado en un solo nodo. En Kubernetes, una corrida que no entra en la cuota del workspace espera en fila y arranca sola cuando se libera lugar.

¿Funciona con GitLab o Bitbucket?

No. De los proveedores de Git, sólo GitHub, incluido GitHub Enterprise Server para el login. Se conecta con una GitHub App que da tokens acotados a cada repo. También podés crear un proyecto subiendo una carpeta o un .zip (hasta 200 MiB comprimido): Thulu aloja el repo, los agentes trabajan sobre él igual que sobre un clon de GitHub, y la rama de la tarea se integra con "Integrar en", sin PR, dentro del repo que aloja Thulu.

¿Qué no hace?

No es un enjambre: cada tarea tiene un agente por etapa, más el auditor. No hay GitLab ni Bitbucket. Evidencia cubre aplicaciones web en Chromium, también en tamaño de teléfono, no apps móviles nativas. No hay integración nativa con Slack o Jira, sólo webhooks salientes y automatizaciones con pasos HTTP. No tiene certificación SOC 2 ni ISO. Y no publicamos una cifra de costo del modelo ni de cuánto más rápido vas a entregar: las dos cosas las medís en tus propias tareas.

¿Qué agentes trae?

Ninguno viene instalado: tu equipo define sus agentes (prompts por etapa, skills y herramientas) para tu stack, o los importa con un comando. Desde el Workshop, un admin instala agentes y skills de un catálogo y ve el plan antes de aplicarlo, y exporta un agente como JSON para importarlo en otro workspace. Hoy ese catálogo trae dos agentes y una skill de ejemplo. Lo que sí viene con Thulu son skills del sistema que le enseñan a cualquier agente a trabajar adentro de Thulu: cómo es un run, cómo preguntarle a una persona o pedir una aprobación, cómo escribir casos de prueba y grabar evidencia en el browser.

¿Un agente puede mergear?

Por default no. Mergear es una herramienta (pr_merge) que ningún permiso de escritura incluye: un admin la tiene que nombrar en la etapa donde la quiere. En un chat, el merge queda esperando a que lo confirmes vos.

¿Está en castellano?

Sí. El dashboard, la API, el CLI y los mensajes que Thulu escribe en las tareas están en castellano y en inglés. Cada persona elige el idioma del dashboard en Settings.

¿Cómo se instala?

curl -fsSL https://github.com/MisterDonnuts/thulu/releases/latest/download/install.sh | sh
thulu init

El wizard te pregunta si vas con Docker Compose o Helm (el runtime Kubernetes pide una licencia paga), tu IdP, la base y qué herramientas instalar. Después, la página Setup te marca qué falta: agentes, credencial de GitHub, key del modelo y el primer proyecto. La guía de instalación tiene cada paso.

¿Es open source?

Sí. El núcleo es open source (AGPL-3.0). Con él corrés Thulu en Docker gratis, con todos los workspaces que quieras. Lo que se cobra pide una clave de licencia: export del audit, runtime Kubernetes y billing de Stripe para un servicio alojado. Los tres están en la carpeta ee/, con el código a la vista y la Thulu Enterprise License. Usar Thulu no te obliga a publicar tu código; la AGPL alcanza a los cambios que le hagas a Thulu si lo ofrecés como servicio. El código está en GitHub.

¿Qué soporte tengo?

El plan Free tiene la documentación y soporte en GitHub. Team incluye soporte por email en horario laboral; Enterprise, SLA por contrato y un contacto nombrado. Toda licencia paga incluye actualizaciones y parches de seguridad mientras esté activa.

Probalo con una tarea tuya

Instalá Thulu gratis y armá tu primer tablero, o pedinos en GitHub un piloto de 60 días con un repo de tu equipo.