Vigila cualquier proceso
Algunas cosas corren durante horas sin que nadie las mire: un rastreo nocturno, un entrenamiento, una migración, una tubería de CI, un agente abriéndose paso por una tarea larga. Progress Watch les da un sitio al que reportar, y a ti un sitio donde mirar, más un aviso cuando terminan.
Tres comandos desde dentro del trabajo
Crea una tarea donde empieza el trabajo, repórtala según avanza, ciérrala cuando esté hecho. El del medio es la llamada que va en tu bucle, y es lo único que conoce los números.
Cuentas, no porcentajes: la pantalla muestra 1200 / 50000 pages, que te dice algo que 2.4% no dice. El total puede cambiar según el trabajo descubre más faena: manda el número nuevo y la barra se recalcula. La página CLI tiene los tres, listos para pegar.
Cuando el proceso no está en tu mano cambiarlo, progresswatch run "python train.py" lo envuelve entero: crea la tarea, deja pasar la salida intacta y la cierra con el código de salida, así que un trabajo que falla también te avisa. Reporta inicio y fin en vez de cuentas, porque nada fuera de un proceso sabe cuánto lleva hecho.
O una petición, desde cualquier cosa
Debajo de todo hay una sola petición HTTP, y esa es toda la API. No hay SDK que instalar ni nada que importar, porque envolver un PUT no añadiría nada que no pudieras escribir tú en menos tiempo del que se tarda en leer su documentación.
La referencia de la API es la referencia contra la que construir, y pegar los ejemplos de curl es la forma más rápida de ver la cosa funcionar antes de comprometerte.
Los agentes reportan su propio trabajo
Un agente de IA divide un trabajo en pasos y luego trabaja largo rato sin nada que enseñar. Conecta uno por MCP y obtiene herramientas para crear una tarea y reportar contra ella: una tarea para el trabajo, una subtarea por paso, actualizadas sobre la marcha. MCP no necesita instalar nada en ninguna parte; para un cliente que no lo habla, un skill de agente enseña lo mismo a través de la CLI.
El agente decide cuándo merece la pena seguir algo y con qué frecuencia reportar. Las descripciones de las herramientas le dicen para qué sirve una tarea, no un horario que seguir.
Sin cuentas
Un espacio es un contenedor de tareas, y su UUID es la credencial. Quien tenga el enlace puede leerlo y escribirlo; compartir es dar el enlace a alguien. No hay nada que registrar, nada donde entrar y ninguna contraseña que perder, lo que también significa que el enlace es la única vía de vuelta a un espacio, así que conviene guardarlo como un token de API.
El progreso no se almacena
El estado actual vive en memoria y caduca solo. Un rastreador que reporta cada segundo durante tres meses no hace crecer ninguna base de datos, y no queda nada que limpiar después. El trato es deliberado: no hay historial ni gráficas, solo lo que está pasando ahora.
Lo que no va a hacer
- Devolver órdenes. Es un panel de salidas, no un orquestador. Un proceso reporta; nada le reporta a él.
- Guardar un registro. Una línea, la última, por tarea. Almacenar registros es un problema resuelto y esto no es la solución.
- Anidar más de un nivel. Una tarea puede tener pasos; un paso no.
Ejecútalo tú
El servidor es de código abierto y alojarlo tú es un contenedor más un Redis: mira el fragmento de Docker para arrancarlo y alojarlo tú mismo para llevarlo como es debido. El servicio alojado existe para que no tengas que hacerlo, no porque el software esté capado sin él.
Nada que registrar
Crea un espacio, guarda su enlace y empieza a reportar en él desde cualquier cosa.
Crear un espacio