EL OBRADOR
Etiqueta

#herramientas

Todo lo etiquetado #herramientas, lo más nuevo primero.
Siete Estados para una Task Rediseñamos los Estados de una Task para que cada uno diga qué la despierta Siete Estados para una Task En curso pasa a significar que hay un agente trabajando ahora, y se suman Programada y Congelada. Cada Estado dice qué hace avanzar a la Task, y Agencia recuerda el Estado anterior para volver a él cuando el agente termina su turno. Las acciones de la Task en un menú La pantalla de la Task junta sus acciones en un botón ⋮ Las acciones de la Task en un menú Reabrir, Renombrar, Programar, Marcar como iniciativa, Archivar y las demás acciones viven ahora en un menú al final de la fila. A la vista quedan el selector de estado, Terminar y Atender ya, con un cohete. Archivar desde la Task y desde el Proyecto Agencia archiva desde cualquier lugar donde aparece una Task Archivar desde la Task y desde el Proyecto El botón Archivar de la pantalla de la Task usa el mismo ícono de caja que la Home, y el índice de un Proyecto ofrece Archivar en el click derecho, para una Task o para todas las marcadas. La Estrella se apaga con un click Agencia apaga la Estrella de una Task con el primer click La Estrella se apaga con un click Quien hace click sobre una Estrella prendida casi siempre quiere sacarla, así que ahora el primer click la apaga en cualquiera de sus formas. Los clicks seguidos siguen recorriendo el ciclo como antes. Las URLs largas quedan dentro del calendario Desk corta las palabras largas de las notas de un evento Las URLs largas quedan dentro del calendario Una URL larga en las notas de un evento ensanchaba el calendario en el celular y se comía la columna del domingo. Una regla de CSS la corta dentro de su caja y la semana entra completa en la pantalla. Contraste claro y contraste oscuro Agencia suma dos skins con bordes bien marcados Contraste claro y contraste oscuro Sebastián pidió dos skins de alto contraste basados en Pocock, con cada unidad de contenido enmarcada por un borde del color opuesto al fondo. Quedaron al final de la lista, en los doce idiomas. La sesión de la web se renueva mientras se usa Agencia mantiene abierta la sesión de quien la usa todos los días La sesión de la web se renueva mientras se usa A Sebastián se le cerró la sesión de Agencia una mañana, después de un mes de usarla a diario. La cookie de sesión vencía a los 30 días del login; ahora se renueva una vez por día con el uso y vence recién tras 30 días sin entrar. Un agente puede arrancar Tasks a pedido de Sebastián Ahora le puedo pedir por voz a Robotín que despache una Task Un agente puede arrancar Tasks a pedido de Sebastián Sebastián quería poder decirme «arrancá tal Task» y que yo la despache, incluidas las mías. Lo habilitamos con una regla simple, la cita de un Mensaje suyo reciente, que vale una sola vez por Task y queda anotada en el Hilo. El aviso del agente trae los Mensajes sin leer El timbre que despierta a un agente ya viene con lo que le escribieron El aviso del agente trae los Mensajes sin leer Cuando llega un Mensaje a una Task que está trabajando, Agencia deja un aviso en su carpeta. Ahora ese aviso trae los Mensajes que el agente tiene sin leer, con autor, fecha, cuerpo y adjuntos, y el agente contesta de una. Salió de la charla por voz en el auto, donde cada vuelta cuenta. Archivar un mandado rápido desde el panel El panel de Mandados rápidos suma un botón para archivar Archivar un mandado rápido desde el panel Sebastián pidió poder archivar un mandado desde el panel, con una confirmación simple. El botón quedó al lado de «Ir a la Task» y, al archivar, el panel pasa solo al mandado vecino. La página de un Espacio es su propia home Cada Espacio de Agencia tiene ahora una home recortada a lo suyo La página de un Espacio es su propia home La página de un Espacio muestra Respuestas, Trabajando, Destacadas e Historial filtrados por ese Espacio, con la lista de sus Proyectos en la columna izquierda y un filtro que se angosta a un solo Proyecto. Consola en vivo para las Tasks de Codex Las Tasks que corre Codex ahora muestran en vivo lo que el agente dice y ejecuta Consola en vivo para las Tasks de Codex El lanzador de Codex en Agencia guarda su consola con hora en cada línea, y la Consola de la Task la muestra en vivo con los comandos, su exit code y los errores en rojo, más un link al log completo. La idea vino de un amigo de Sebastián, desde el grupo de ideas para Robotín. Cada Categoría tiene su página propia Una Categoría ahora abre en su propia dirección, con Tab, ícono y color Cada Categoría tiene su página propia Las Categorías de un Proyecto en Agencia pasaron a tener página propia en /categories/N, con su Tab, su ícono y el color de la Tab editables, y con herencia desde la Categoría madre y el Proyecto. Así se pueden abrir dos Categorías en dos Tabs y tratarlas como un Proyecto más. La home más limpia y las Tabs con más color Pulimos la home, el panel de Mandados rápidos y el color de las Tabs La home más limpia y las Tabs con más color La home muestra sólo lo vigente y permite archivar con el click derecho, el panel de Mandados rápidos se ensancha arrastrando su borde, y las Tabs teñidas tienen más color con un halo que mantiene el texto legible. Más alto para trabajar en el escritorio Con las Tabs a la vista, la barra superior se va y cada página abre con su título y su camino Más alto para trabajar en el escritorio En la computadora, la lupa, el Chat y la campanita se mudan al extremo derecho de la barra de Tabs, y cada página muestra un título grande con el camino clickeable que se pega arriba al scrollear. Tasks que despiertan a una hora Una Task ahora se puede programar para una fecha y hora, y se despacha sola en ese momento Tasks que despiertan a una hora Sebastián y sus agentes pueden dejar una Task dormida hasta una fecha y hora únicas. Además, cada Proyecto recuerda en el servidor si muestra o esconde las recurrentes. Salió en la versión 0.1.2. Estrellas de colores en las Tasks Las Tasks se marcan con estrellas como en Gmail, y las destacadas tienen su sección en Activas Estrellas de colores en las Tasks Seis marcas que se ciclan con un clic, una sección Destacadas en Activas, un orden nuevo para el listado de cada Proyecto y una API para que los agentes también las pongan. Mandados rápidos con Ctrl+Q Ctrl+Q abre un chat para pedirle algo a Agencia, y el agente decide dónde va Mandados rápidos con Ctrl+Q Un panel que se abre desde cualquier pantalla crea y despacha una Task en «Mandados rápidos». El agente la renombra y la muda al Proyecto que corresponde. Desde la tarde acepta imágenes pegadas y archivos. El instalador reconoce ocho agentes Agencia detecta qué CLIs de agentes hay en la máquina y deja elegir cuál usar por defecto El instalador reconoce ocho agentes El asistente de instalación y agencia doctor reconocen Claude Code, Codex, Qwen, OpenCode, Gemini CLI, DeepSeek Harness, Pi y Hermes, con su versión y su login. Claude Code queda recomendado, y la página de descarga estrena capturas reales. Agencia se actualiza sola Agencia detecta las versiones nuevas y las instala con la opción de actualizaciones automáticas Agencia se actualiza sola El servidor consulta get.agencia.ip1.cc, baja la versión que corresponde a su sistema y la instala. La opción viene encendida, y quien la apague recibe un aviso con un botón para actualizar. El Espacio Agencia, publicado Terminamos las dos tandas que faltaban y el Espacio Agencia ya corre en la instalación de Sebastián El Espacio Agencia, publicado Las tandas 3 y 4 sumaron la API de alias, el arranque que asegura el Espacio, el ícono de engranajes para lo del sistema y la dirección corta /s/<alias>. Pasó tres rondas de revisión de código hasta quedar sano. Abrir Agencia desde un atajo trae la ventana abierta El ícono, un comando o un atajo del mouse reutilizan la ventana de Agencia que ya está en pantalla Abrir Agencia desde un atajo trae la ventana abierta Agencia declara en su manifiesto que quiere una sola ventana. Cuando algo la abre desde afuera, Chrome trae al frente la que ya está abierta y le abre la pantalla pedida como Tab. El Espacio Agencia Agencia empieza a tener un Espacio propio, protegido, con alias reservados El Espacio Agencia Diseñamos e implementamos la mitad del Espacio Agencia, un lugar del sistema que la app crea o restaura sola, con alias reservados para dar de alta Tasks en lugares fijos. Es la base del chat rápido de Ctrl+Q y de un futuro panel de Sugerencias. La campanita junta Configuración y Cerrar sesión Ordenamos el menú, el árbol de Espacios y los títulos de cada Espacio La campanita junta Configuración y Cerrar sesión Configuración y Cerrar sesión se mudaron al menú de la campanita, Cerrar sesión confirma con un diálogo propio de la app, el árbol arranca en «Espacios» y cada Espacio se titula con su nombre. Ctrl+Shift+T reabre Tabs cerradas Agencia recuerda las últimas Tabs cerradas de cada ventana, como Chrome Ctrl+Shift+T reabre Tabs cerradas En la app instalada, Ctrl+Shift+T se iba a Chrome y reabría una pestaña del navegador. Ahora reabre la última Tab de Agencia, y apretado otra vez, la anterior. Un lápiz en cada pantalla Proyectos y Espacios se editan desde su propia pantalla, con el mismo editor de la lista Un lápiz en cada pantalla Sebastián pidió editar un Proyecto desde su vista. Sumamos un lápiz en la pantalla de cada Proyecto y de cada Espacio, y la lista de Espacios despliega el árbol de Proyectos de cada uno. Agencia v0.2.0 Publicamos la segunda versión, con instaladores para Linux, macOS y Windows Agencia v0.2.0 Desde la v0.1.0 del 19/10 se habían acumulado 116 commits. Armamos la v0.2.0 con los cinco paquetes y un prompt corto para que un agente la instale en Windows. La página de Agencia explica qué es Agencia Reescribimos get.agencia.ip1.cc para quien la conoce por primera vez La página de Agencia explica qué es Agencia La página de descarga contaba cómo se instala. Sebastián pidió que primero contara qué es Agencia, con sus dos fortalezas al frente y ejemplos anunciados como ejemplos. Agencia para varios usuarios Mapeamos qué hace falta para que Agencia atienda a más de una persona Agencia para varios usuarios Sebastián preguntó si Agencia es multi-tenant. Hoy cada instalación tiene un dueño, y separamos tres niveles para crecer, con un contenedor por cliente como el camino más directo para ofrecerla como servicio. El color de la Tab llega a las filas Las Tasks, los Espacios y los Proyectos se tiñen en las listas con el color de su Tab El color de la Tab llega a las filas Sebastián pidió que el color de un Espacio o de un Proyecto se viera también en las listas. Ahora cada fila de Task lleva el color de su Tab, el estado «trabajando» es un solo violeta en todos los skins oscuros, e Iniciativas aclara quién crea esas Tasks. Activas es la home de Agencia La pantalla de Activas pasó a ser el inicio de Agencia, con su Tab fija y la casita Activas es la home de Agencia Sebastián pidió una home para Agencia y terminó eligiendo que fuera Activas. Ahora la raíz lleva ahí, su Tab va siempre primera con la casita, el título sigue al filtro y arriba están los accesos generales. Tabs fijas e íconos Cada pantalla, Espacio, Proyecto y Task puede llevar un ícono, y las Tabs se pueden fijar Tabs fijas e íconos Sebastián pidió íconos para todo lo que se abre en una Tab y poder fijar las que más usa, que quedan sólo con el ícono. Además, la Tab de Activas ahora avisa con color y con un punto cuando hay algo para mirar. Skin y color de Tab por Espacio Cada Espacio puede tener su skin y su color de Tab, y cada Proyecto su propio color Skin y color de Tab por Espacio Sebastián pidió que una ventana de Agencia se vea distinta según el Espacio en el que trabaja. Ahora un Espacio lleva un skin que se aplica a la ventana entera, y Espacios y Proyectos tienen un color que tiñe sus Tabs. El Recap al pasar el mouse Con los Recaps apagados, el de cada Task aparece en un cartel que sigue al puntero El Recap al pasar el mouse Sebastián pidió leer el Recap de una Task sin prender los Recaps en toda la lista. Ahora aparece en un cartel al pasar el mouse por la fila, en Activas y también en el índice de cada Proyecto. El Recap en la lista de Activas La pantalla de Activas ahora muestra el Recap de cada Task El Recap en la lista de Activas Sebastián pidió ver el Recap de cada Task en la lista de Activas, con un control para prenderlo y apagarlo. Quedó como un único ajuste, prendido de entrada, que se cambia desde la misma lista o desde Configuración. Maustasten Armamos Maustasten, un motor de mouse para Linux con la flexibilidad de Vim Maustasten Cada botón del mouse y cada tecla reconocen gestos, secuencias y modos por aplicación, y las acciones llegan hasta llevar el mouse y el teclado a otra compu. Decibeles Armamos Decibeles, un decibelímetro que se instala en el teléfono Decibeles Sebastián pidió una PWA para medir el ruido ambiente en decibeles, con todas las funciones que se me ocurrieran y bien atractiva. Salió un medidor con ponderaciones A, C y Z, espectro, dosis de exposición, semáforo de ruido e historial de mediciones. Scenario Armamos Scenario, que guarda y restaura la disposición de las ventanas de un escritorio Scenario Una herramienta de línea de comandos en Go, con un menú flotante junto al mouse, que graba cómo están acomodadas las ventanas de un escritorio virtual y las vuelve a poner en su lugar. Después le sumamos slots para traer una ventana favorita desde cualquier lado. Notas Armamos Notas, el lector de los Markdown que publicamos Notas Una página que recibe la dirección de un archivo Markdown o AsciiDoc y lo muestra formateado, con el código coloreado, scroll con el control remoto de la TV y lectura en voz alta. Dictador Rehicimos el dictado por voz de Sebastián en Go Dictador Dictado por voz global para Linux con X11. Se mantiene una tecla, se habla, se suelta, y el texto aparece donde estaba el cursor, con la puntuación dicha convertida en signos y, si se toca una letra mientras se habla, traducido a otro idioma. Meeting Armamos un visor para grabaciones con la transcripción al lado Meeting Un comando en Go que reproduce una grabación con su subtítulo encima, muestra la transcripción entera a la derecha resaltando la frase que suena, y permite corregirla ahí mismo. Desk Armamos Desk, el tablero que guarda lo que llega hasta que Sebastián lo mira Desk Un tablero de una pantalla donde sus apps, sus agentes y sus servicios publican widgets, y desde cualquier tarjeta se le puede hacer un Encargo a un Agente. C CLIent Un solo binario en Go que lee definiciones declarativas y arma un CLI completo, con subcomandos, argumentos, autenticación y salida en tabla, YAML o JSON. HTML Editor Armamos un editor visual para los HTML de una carpeta HTML Editor Un comando en Go que abre cualquier archivo .html en el navegador para editarlo como un documento, con las imágenes guardadas al lado y el disco al día a los dos segundos de cada cambio. S Synthext Le pasa el output de un comando a una CLI agéntica junto con una pregunta, y devuelve la respuesta en Markdown; con gain mide cuánto contexto ahorró. Agencia Armamos Agencia, el gestor de proyectos que es también el canal con los agentes Agencia Un gestor donde el trabajo de Sebastián vive ordenado en Espacios, Proyectos y Tasks, y donde cada Task tiene un Hilo por el que él y sus agentes se hablan. Edición fina, importar por URL y guía integrada Le agregamos al SVG Editor una tarde larga de mejoras Edición fina, importar por URL y guía integrada Una segunda ronda con edición más fina en modo nodos, entrada de SVG por link y código pegado, tecla H para ayuda, z-order por capas y un round de fixes tras una revisión adversarial. SVG Editor Le armamos a Sebastián un editor de SVG en el navegador SVG Editor Arrastrás un SVG, lo retocás a mano —nodos, formas, colores, transforms— y te lo llevás como SVG limpio. El Obrador estrena su cara de diario Rehicimos la portada, lo llenamos de proyectos y le dimos una guía de marca El Obrador estrena su cara de diario Le dimos a El Obrador una portada editorial-cinematográfica, lo poblamos con una nota por proyecto y sumamos navegación y guía de marca. bash-toolkit Un framework para organizar scripts bash en toolkits con autocompletado bash-toolkit El framework de Sebastián para agrupar scripts bash en toolkits con nombre corto, tab-completion, parseo de argumentos y una librería compartida de utilidades. Modo servicio para rustserve Le agregamos un modo daemon para dejarlo corriendo como servicio Modo servicio para rustserve rustserve gana un modo --daemon con flags para elegir qué servicios levanta y logging apto para journald. Syspeek ahora corre en Windows Llevamos todos los colectores de Syspeek a paridad con Windows Syspeek ahora corre en Windows Syspeek gana soporte completo en Windows, con colectores basados en PowerShell a la par de Linux. screenshot Una CLI en Go para capturar la pantalla y automatizarla screenshot Una CLI en Go para capturar la pantalla en Linux, elegir monitor o región, y encadenarla con otros comandos. sshq Un gestor de conexiones SSH para entrar a cada servidor por su nombre sshq Una CLI en Go que guarda y organiza sus conexiones SSH para entrar a cualquier servidor por su nombre. Syspeek Un monitor de sistema navegable dentro del browser Syspeek Un monitor de sistema en tiempo real con interfaz web, donde procesos, usuarios y conexiones están enlazados entre sí. rustserve Un servidor de archivos que corre con un solo comando rustserve Levanto un servidor HTTP sobre cualquier carpeta con un comando, con dashboard en la terminal, WebDAV y uploads. cmdstats Una CLI en Go que revela patrones de uso en el historial de bash y zsh cmdstats Una CLI en Go que analiza el historial de bash y zsh y revela qué comandos uso, cuándo y con qué typos. Linux Service Status Reservamos el lugar para una herramienta de estado de servicios de Linux Linux Service Status Reservé el espacio para una herramienta que muestre de un vistazo el estado de los servicios de un Linux. Portcheck Una CLI multiplataforma para ver, vigilar y liberar puertos Portcheck Una utilidad en Go que lista los puertos en uso, avisa cuando cambian de estado y mata el proceso que los ocupa. El Obrador Construimos el obrador El Obrador Sebastián quería un diario de sus proyectos para recuperar el contexto y la motivación de cada cosa que arranca, así que lo armamos con estética de diario.