
tracethat.dev
Kacper Pietrzak · Programación
La depuración sin configuración es la promesa de tracethat.dev, una herramienta de depuración remota: envuelves funciones en JavaScript, Python o Go y la herramienta transmite sus argumentos, valores de retorno, tiempos y errores a una interfaz de depuración en vivo.

Acerca de tracethat.dev
About
Qué es tracethat.dev
tracethat.dev es una herramienta de depuración remota de código abierto creada por Kacper Pietrzak para quienes están hartos de repartir print por todo el código. En lugar de imprimir una pared de registros y desplazarte por salidas que no vienen al caso, envuelves una función y la herramienta recoge los detalles útiles por su cuenta. Apunta a equipos y a desarrolladores que trabajan solos y depuran código que corre en un sitio donde no pueden enganchar un depurador tradicional, como un servidor remoto, un contenedor o un proceso en segundo plano.
La idea de fondo es sencilla. Depurar con print te obliga a decidir de antemano qué registrar y a volver a ejecutar el código cada vez que te equivocas. tracethat.dev le da la vuelta. El reporter captura los argumentos, los valores de retorno, el tiempo de ejecución, la pila de llamadas y cualquier excepción lanzada, así que una sola ejecución suele bastar para dar con el problema.
El precio a pagar es el alcance. El reporter de Go no puede envolver funciones arbitrarias por cómo funciona su sistema de tipos, de modo que los usuarios de Go registran eventos a mano. Los eventos solo viven en el servidor un tiempo limitado, así que no sirve como archivo de registros a largo plazo. Y aun así tienes que añadir el reporter a tu código tú mismo.
Primeros pasos
- Entra en tracethat.dev y abre una sesión nueva. El sitio genera un token que funciona a la vez como identificador de sala y como clave de cifrado.
- Instala el reporter de tu lenguaje:
npm install tracethat.dev,pip install tracethatogo get github.com/pietrzakacper/tracethat.dev/reporters/golang/tt. - Registra el token en tu app con
registerToken("tu-token")(JavaScript) oregister_token('tu-token')(Python). - Envuelve la función que quieres observar, o registra un evento suelto con
tracethat.log, y luego ejecuta tu código. - Mira cómo los eventos llegan al navegador en tiempo real y expande, contrae o filtra para centrarte en lo que importa.
Información del producto
Un vistazo rápido a los precios, las plataformas compatibles y el rendimiento de tracethat.dev.
Ideal para
Los usuarios, tareas y casos de uso en los que esta herramienta encaja mejor.
Usuarios
- Desarrolladores de backend
- Desarrolladores de JavaScript y TypeScript
- Desarrolladores de Python
Tareas
- Depurar una función que no consigues reproducir en local
- Medir rutas de código lentas
- Cazar excepciones silenciosas
Casos de uso
- Un proceso en segundo plano en un servidor de pruebas lanza un error que no reproduces en tu portátil; envolver el paso que falla manda las entradas reales directas a tu navegador.
- Una app web se comporta mal solo en producción; el reporter de etiqueta `script` se inserta en tu HTML y empieza a transmitir sin paso de compilación.
- Estás depurando en pareja o pides ayuda a un compañero; compartir el token de sesión deja que ambos veáis el mismo flujo en vivo.
Funciones clave
Traza de funciones en una línea
El movimiento central del reporter es envolver una función para que cada llamada quede registrada como evento de traza. En JavaScript escribes traceThat(hello)("world") y la herramienta recoge los argumentos, el valor de retorno, cuánto duró la llamada, la pila de llamadas y cualquier excepción lanzada. Python usa la misma idea con un decorador @tracethat. Lo consigues sin escribir ni un solo print.
Interfaz web que emite en vivo
Los eventos no esperan a que refresques. El cliente web mantiene un socket con el servidor y empuja cada evento nuevo a tu sala conforme ocurre. Puedes expandir una llamada para ver todos sus detalles, contraer las que no te interesan y filtrar por valores concretos. Está pensada para leer una lista acotada de eventos en vez de un búfer de desplazamiento.
Cifrado con token
Tu token cumple doble función: identificador de sala y clave de cifrado. El reporter cifra cada evento antes de que salga de tu app, y el cliente web solo puede descifrarlos si le das el mismo token. La sala se identifica con el hash SHA-256 del token, así que el servidor entrega a tu sesión únicamente los eventos que le corresponden.
Reporters para varios lenguajes
Hay reporters para JavaScript/TypeScript, Python y Go. El de JS se instala desde npm y también puede correr desde una etiqueta script suelta, lo que viene bien cuando no tienes una cadena de compilación. Python se instala desde PyPI. Go se instala directo desde GitHub. Todos hablan con el mismo servidor y la misma interfaz, así que un stack mixto acaba en un solo sitio.
Registro manual de eventos
Cuando no quieres envolver una función entera, puedes colocar una marca en un punto concreto. tracethat.log('hello function started') registra un evento y puedes pasarle datos extra. Esta es la opción de cabecera para Go, cuyo reporter no envuelve funciones de forma genérica, y para cualquiera que solo quiera un punto de control entre dos líneas.
Servidor en memoria con limpieza automática
El servidor guarda los eventos en memoria en lugar de escribirlos en almacenamiento duradero, y luego los borra al cabo de un rato. Eso mantiene la configuración ligera y evita que quede un registro del que ocuparse. También implica que los eventos son para depurar en vivo, no para revisar lo que pasó la semana pasada.
Ventajas y desventajas
Ventajas
- La depuración sin configuración se limita a añadir el reporter: no montas un agente, un colector ni un almacén de datos.
- Los datos capturados son más amplios que los `print` y cubren argumentos, valores de retorno, tiempos, pilas de llamadas y excepciones en una sola pasada.
- La interfaz en vivo con filtros y expandir/contraer hace que una ejecución se lea mucho mejor que unos registros en crudo.
- Código abierto bajo licencia MIT, así que puedes leerlo, alojarlo tú mismo o contribuir.
- Funciona con JavaScript, Python y Go, lo que encaja en equipos con un backend mixto.
Desventajas
- El reporter de Go no puede envolver funciones arbitrarias, así que quienes usan Go registran eventos a mano, lo que implica más trabajo manual que en JS o Python.
- Los eventos se guardan en memoria y se borran al cabo de un rato, así que no puedes tratarlo como un registro duradero para revisar un incidente pasado.
- Aun así tienes que tocar tu código fuente para añadir el reporter, de modo que no es cero intervención en apps que no puedes editar.
- Es un proyecto pequeño, de un solo mantenedor y con base de usuarios modesta, así que el soporte de la comunidad es más delgado que en una plataforma comercial grande, y puede que acabes resolviendo casos raros por tu cuenta.
Preguntas frecuentes
Es una herramienta de depuración remota para ver qué hace realmente una app en ejecución. Envuelves funciones y la herramienta transmite sus argumentos, valores de retorno, tiempos y errores a una interfaz de navegador, así que puedes depurar código al que cuesta llegar con un depurador normal.
Contenido relacionado
Explora herramientas, habilidades y artículos relacionados con tracethat.dev.
Alternativas a tracethat.dev

Udon
Udon · Programación · ProductividadUdon convierte un Mac con Apple Silicon en un servidor doméstico que se gestiona desde el navegador, con contenedores, archivos compartidos y un administrador de sistemas con IA opcional.

offstage
offstage cloud · Programación · Productividadoffstage da a los agentes de IA y a los trabajos de CI un Mac de verdad: una cuenta de macOS 27 sobre Apple silicon, manejada por API y cobrada por segundo.
BotBus
Chengdu Tuyang Tusen Technology Co., Ltd. · Programación · ProductividadBotBus te deja controlar desde el móvil y el reloj los agentes de programación con IA que corren en tu ordenador: apruebas comandos, lanzas tareas y lees resultados sin volver al escritorio.
