gadak
Mantiene Jira Cloud, Jira Server, Linear o su propio rastreador integrado (además de páginas de Confluence) en un único archivo SQLite local en tu máquina. Las herramientas MCP responden desde ese archivo: SQL, búsqueda de texto completo en incidencias, comentarios y páginas wiki, detalle de incidencias, lecturas de sprints y retrospectivas. También se distribuye como extensión de Claude Desktop (.mcpb).
Documentación
Consulta tu backlog de Jira con SQL.
gadak refleja los proyectos de Jira Cloud y los espacios de Confluence que elijas en un único archivo SQLite en tu máquina. Los títulos de incidencias, cuerpos, comentarios y páginas wiki se almacenan en un único índice de búsqueda, y buscarlo no abre ninguna conexión. SQL sobre el mismo archivo responde a los recuentos que JQL no puede expresar. La aplicación de escritorio, la pestaña del navegador, la CLI y un agente de codificación leen ese archivo; las escrituras van a Jira primero, y el archivo es una caché que puedes eliminar.
Instala Homebrew en macOS, Microsoft Store en Windows, una CLI para Linux que abre la misma interfaz en una pestaña del navegador. Demo en vivo con 534 incidencias en tu navegador. Sin instalación, sin cuenta.
Grabación: búsqueda sobre un espejo de 20,000 incidencias construido a partir de la instantánea de la demo. Captura de pantalla, no una animación.
En comparación con el servidor MCP oficial de Atlassian
¿Por qué no Rovo MCP?
Rovo MCP está alojado por Atlassian y no requiere instalación local de un servidor MCP. Busca en Jira y Confluence y tiene herramientas de escritura, pero no una herramienta nativa de agregación ni lecturas sin conexión. gadak ejecuta SQL contra un espejo local sincronizado, por lo que un recuento sobre todo el backlog o una unión a través del historial de cambios es una sola consulta. Los costos son un binario local, una sincronización inicial y lecturas que van un intervalo de sincronización por detrás de Jira.
| Rovo MCP (alojado) | gadak (espejo local) | |
|---|---|---|
| Dónde se ejecuta la consulta | La nube de Atlassian | tu máquina, en SQLite |
| Incidencias abiertas por épica | sin herramienta nativa de agregación | un GROUP BY; 22 ms en 3,296 incidencias (2026-08-26) |
| Red necesaria para buscar | sí | no, una vez que los datos seleccionados están sincronizados |
| Busca en Jira y Confluence | sí | sí, para los espacios que selecciones |
| Escrituras: comentario, transición, asignación | sí | sí, a través de Jira primero |
| Frescura | Datos alojados de Atlassian | el último estado sincronizado, un intervalo por detrás |
| Configuración local | ninguna | un binario local y una sincronización inicial |
| Límites de tasa | 429 y un Retry-After | ninguno en lecturas: salen de tu disco |
| Quién lo mantiene | Atlassian | una persona, y Apache-2.0 |
La misma comparación para jira-cli, Linear y la propia interfaz de Jira: docs/FAQ.md#how-it-compares
Cuenta incidencias sin resolver por épica
JQL no tiene GROUP BY.
La API REST devuelve incidencias página a página, y sin totales. Una vez que los datos son un archivo local, el recuento es una sola consulta:
gadak sql "select epic_key, count(*) from issues_full where resolved_at is null
and epic_key <> '' group by epic_key order by 2 desc"
Ejecuta esta consulta en la instantánea de la demo en tu navegador (Datasette Lite, sin instalar nada) →
En un sitio Cloud en vivo con 3,296 incidencias (2026-08-26, medianas): 4,761 ms sobre 8 páginas de API agregadas en el cliente, frente a 22 ms para esta consulta.
Lecturas locales comparadas con la API REST de Jira
Las mismas preguntas, medidas
| API REST de Jira | gadak | ||
|---|---|---|---|
| Filtro simple, 100 incidencias | 583 ms | 19 ms | 31× |
| Una incidencia + historial de cambios completo | 710 ms | 28 ms | 25× |
| Búsqueda de texto libre | 543 ms | 41 ms | 13× |
| Incidencias abiertas por épica (GROUP BY) | 4,761 ms | 22 ms | 214× |
| Un recuento sobre el historial de cambios | sin agregado nativo | 14 ms | — |
| Límite de tasa en lecturas del espejo | 429 + Retry-After | ninguno | — |
Medido el 2026-08-26 contra un sitio Atlassian Cloud en vivo: un proyecto de trabajo real, 3,296 incidencias. Medianas. Los números de gadak incluyen el arranque completo del proceso CLI. En esta medición, el recuento de épicas tomó 8 páginas de API, agregadas en el cliente, frente a una consulta en el espejo. El recuento del historial no tiene agregado nativo; rastrearlo y contarlo en el cliente toma unos 28 minutos. La fila de límite de tasa trata sobre lecturas, que permanecen locales. Una primera sincronización completa de ese sitio tomó 3.7 minutos (2026-09-09), y el espejo va un intervalo de sincronización por detrás de Jira. Método, re-mediciones y las filas donde gadak pierde: docs/BENCHMARKS.md.
Agentes de codificación en el mismo espejo
Usa la CLI desde tu agente de codificación
Tú y tu agente leen el mismo archivo. La CLI es la interfaz del agente: crear, reclamar, transicionar y SQL sobre el espejo, mientras el tablero frente a ti se actualiza. Las escrituras van a través de Jira primero, y los comentarios de un agente y las incidencias que crea llevan su nombre. Un agente que lee tu espejo envía lo que lee al modelo con el que habla; limita el espejo a lo que el agente debería ver.
Una sesión de Claude Code en el propio panel de terminal de gadak filtra la lista de incidencias, luego guarda y abre un panel en la misma ventana. Con lapso de tiempo mientras el agente trabaja.
Instala la habilidad para Claude Code:
gadak skill install
Para Claude Desktop, registra el servidor MCP:
gadak mcp install claude-desktop
Un pegado por host → docs/AGENT_SETUP.md
Más grabaciones: paneles, un tema de equipo, un lanzador, una sesión MCP en vivo → docs/SHOWCASE.md
Antes de conectar datos de trabajo
Qué se copia, dónde vive y qué sale de tu máquina
- Qué Jira. Atlassian Cloud con un token de API, o Jira Server / Data Center con
gadak init --servery un token de acceso personal. Un token de Cloud cubre Jira y Confluence en el mismo sitio; Confluence Server no tiene cliente, por lo que un espacio de trabajo de Server refleja solo incidencias. - Cuánto se copia. Los proyectos que nombres con
--projects, tal como tu cuenta ya los ve. La wiki permanece apagada hasta que nombres espacios con--spaces. - Qué permanece aquí y qué tan fresco. Un único archivo SQLite en tu máquina. Una primera sincronización completa, luego un intervalo de sincronización por detrás de Jira. Elimínalo y sincroniza de nuevo; nada se pierde.
- Qué sale de esta máquina. Sin telemetría, sin análisis, sin cuenta de gadak. gadak solo abre las conexiones que configuraste, y las lecturas salen del archivo. Cuatro verbos aún preguntan al origen: ver un adjunto,
gadak issue --editmeta,gadak fieldsygadak api. - Dónde está el token.
~/.gadak/config.json, modo0600, enviado solo a tu propio sitio. Nunca llega a SQLite, a un registro o a una instantánea. - Qué hace una escritura. Va a Jira primero, y la caché se actualiza después de que Jira acepta. Una escritura que Jira rechaza falla en ese momento; nada se pone en cola localmente.
- Qué cambia con un agente. Un agente que lee la caché envía lo que lee a su propio modelo. gadak no envía nada. Limita la caché a lo que el agente debería ver.
Cada destino saliente y su condición → SECURITY.md
Cada conexión y su interruptor de apagado → docs/NETWORK.md
Instalación y primera sincronización
Instalación
La aplicación de escritorio, CLI incluida:
brew install --cask midagedev/tap/gadak
Solo CLI, en macOS o Linux. La misma interfaz se abre en una pestaña del navegador mediante gadak serve:
brew install midagedev/tap/gadak-cli
En Windows, la aplicación de escritorio está en Microsoft Store.
Conéctate al sitio de Jira Cloud de tu equipo. Pide el sitio, tu correo electrónico, un token de API y los proyectos a reflejar; agrega --spaces para incluir la wiki:
gadak init && gadak serve
Dónde está el proyecto
Estado y límites
- Estado: 0.22, todavía 0.x. Sincronización, lecturas, escritura directa, escritorio, web, CLI y MCP están verificados contra un sitio en vivo.
- Un mantenedor, actualmente. Apache-2.0. El espejo es SQLite ordinario: si gadak desapareciera mañana, el archivo se abre en cualquier cliente SQLite y tus incidencias siguen en él.
- Mantén la planificación de sprints, la administración, la edición de páginas en una interfaz, y cualquier cosa que no pueda tolerar un intervalo de sincronización de retraso en Jira.
- Cuatro orígenes, un conjunto de verbos: Atlassian Cloud, Jira Server / Data Center, Linear y el rastreador integrado. Lo que cada uno rechaza está en una tabla, medido celda por celda.
Qué admite cada origen · Proyectos anteriores en esta área · Preguntas difíciles · Quién mantiene esto · Fuente
Informa lo que sucedió
Si lo usaste en tu propio proyecto, dilo
¿Qué pregunta respondió gadak, y volviste a él?
Mantén datos reales de incidencias, tokens y URLs de sitios fuera de los informes públicos.
Abre un issue en GitHub · Correo electrónico midagedev@gmail.com