kage (影, «sombra») es una herramienta de línea de comandos de código abierto (MIT) y Go puro que clona un sitio web completo en una carpeta simple de archivos .html con todos los scripts eliminados. Controla Chrome headless página por página, espera a que la página se estabilice, toma una instantánea del DOM renderizado, borra todas las etiquetas script, los manejadores de eventos y las URL javascript:, y descarga CSS, imágenes y fuentes reescritas a rutas locales relativas. Los comandos abarcan clone, serve, pack y open; un espejo puede compactarse en un archivo ZIM (el formato abierto detrás de Kiwix) o en un binario autocontenido de unos 13 MiB más el contenido que sirve el sitio offline sin instalar nada, con una compilación de escritorio opcional --app y una compilación webview que se abre en una ventana nativa. Se distribuye como contenedor ghcr con Chromium incluido, además de paquetes Homebrew, Scoop, apt y dnf.

Los usuarios quieren sitios completos, no páginas sueltas: renderizar con Chrome headless, capturar el DOM que ve una persona, eliminar todos los scripts y mantener el resultado navegable offline.

Duc-Tam Nguyen (tamnd) creó kage a partir del fallo habitual de «Guardar como»: meses después, una página guardada se abre en blanco, muestra un indicador de carga interminable o sigue llamando a un servidor de analítica muerto. Describió la página como algo que nunca es realmente tuyo —un cliente ligero para el JavaScript de otra persona— y publicó la herramienta como Show HN el 2026-06-14 con el lema «Shadow any website to a single binary for offline viewing».

El hilo despegó con 712 puntos y 141 comentarios. Los comentaristas compararon kage con SingleFile y preguntaron en qué se diferenciaba de Guardar como; Nguyen aclaró que kage replica un sitio web completo con todas sus subpáginas —su ejemplo fueron todos los ensayos de Paul Graham para lectura offline— mientras que SingleFile empaqueta una sola página. También mencionó una ambición paraguas mayor: construir un «Google desde cero» de código abierto con capas de rastreador, indexador, almacenamiento y servicio. Gigazine cubrió kage en inglés el 2026-07-25, recorriendo un clon con Docker de gigazine.biz, el empaquetado ZIM y un visor Windows de binario único de 24,4 MiB construido a partir de la versión 0.3.10.

A fecha de 2026-09-02, kage sigue siendo un proyecto de código abierto independiente con licencia MIT, sin empresa ni financiación; el repositorio documenta instalaciones mediante gestores de paquetes, un contenedor con Chrome incluido y una suite de pruebas completa que incluye pruebas de extremo a extremo impulsadas por Chrome, y el sitio de documentación kage.tamnd.com sigue creciendo.

Guardar como produce copias que siguen llamando a casa o se renderizan en blanco cuando el marcado se construye con JavaScript en tiempo de ejecución.

SingleFile resolvió las páginas individuales, dejando la réplica de sitios completos —el caso de uso real de archivo— a herramientas menos fieles.

Chrome headless permite que el espejo capture lo que ve una persona antes de eliminar cualquier JavaScript.

Los formatos abiertos como ZIM mantienen el archivo legible por otras herramientas (Kiwix) en lugar de encerrar a los usuarios en el proyecto.

Un binario autocontenido significa que el destinatario no necesita nada instalado para leer el espejo.

Renderizar primero, eliminar después: captura lo que ve una persona, luego retira el entorno de ejecución, y una copia de «Guardar como» se convierte en un artefacto duradero que cualquiera puede abrir offline.

A fecha de 2026-09-02, kage sigue siendo un proyecto MIT independiente, sin empresa ni financiación. El desarrollo está activo: el rastreador lee robots.txt, se inicializa desde sitemap.xml, reanuda ejecuciones interrumpidas y obtiene cada URL una sola vez; el empaquetado es determinista y las rutas relativas al espejo se asignan al archivo. La automatización de versiones distribuye binarios multiplataforma, paquetes, un contenedor con Chrome incluido, SBOM y firmas. El autor vincula kage con una pila de búsqueda de código abierto más amplia. Compensaciones conocidas: el rastreo necesita Chrome/Chromium, los paquetes ZIM omiten el índice de texto completo de Kiwix y un binario añade unos 13 MiB antes del contenido.

CONSULTA LAS PRUEBAS

Las fuentes

  1. tamnd/kage: Shadow any website for offline viewing, with the JavaScript stripped out GitHub · github.com
  2. Show HN: Kage - Shadow any website to a single binary for offline viewing Hacker News · news.ycombinator.com ·
  3. 'kage' removes JavaScript from web pages, saves the entire site locally, and allows you to view it offline Gigazine · gigazine.net ·
  4. About - Duc-Tam Nguyen tamnd.github.io · tamnd.github.io