YUSEPE Bento convierte cada espacio de trabajo en un cockpit vivo y redimensionable a mano: terminales reales, webapps embebidas, Git, explorador de archivos, agentes de IA y tareas que le hablan a tu agente de código — todo junto, ordenado a tu manera, y vivo incluso cuando saltas de un proyecto a otro.
No es otra terminal con pestañas. Es un lienzo de trabajo donde cada herramienta es un bloque que pones, mueves y estiras — y el grid se reacomoda solo para que nunca quede un hueco feo.
Arrastra un borde y, si chocas con un vecino, lo encoge en vez de bloquear el gesto. Encógelo y el vecino se expande para llenar el hueco. Cierra un tile y todo se compacta sin dejar espacios muertos. Lógica pura, cubierta por tests.
Árbol del workspace con iconos por tipo y buscador que sí encuentra dotfiles. Menú contextual nativo: renombrar, duplicar, eliminar (a la Papelera, recuperable), copiar ruta, revelar en Finder. Y fijar cualquier archivo como tile — código, Markdown, CSV, SVG, imagen o PDF.
Status, diff, stage/unstage, descartar, commit, push, fetch, pull y ramas — sin salir a lazygit ni a la terminal.
Shells de verdad vía node-pty — no un emulador. xterm.js, scrollback completo y el cwd del workspace.
Detecta y edita CLAUDE.md, AGENTS.md, .cursorrules y compañía. Lista tus subagentes de .claude/agents/.
Librería de comandos y rutinas multi-línea, global a la app. Un click los ejecuta línea por línea en la terminal enfocada, como si los escribieras a mano.
Un toggle repinta toda la UI vía variables CSS, la paleta de las terminales y — vía nativeTheme — el prefers-color-scheme de todos los webviews embebidos, para que hasta las webs de terceros respeten tu tema. Suma un wallpaper por workspace (buscador de Pexels integrado) y transparencia de las terminales encima, estilo Warp.
Cada terminal puede alojar un agente distinto con su propio nombre y rol. Bento les da una bandeja compartida y reparte los mensajes escribiéndolos en el pty del destinatario — sólo cuando está libre, uno por vuelta. Tú miras la conversación pasar.
Del otro lado hay un TUI, no un shell: un \n sería un Enter a mitad del mensaje. El texto se aplana para el viaje y el \r se manda después, con pausa, para que llegue como una tecla y no como un pegado.
Escribir en el pty de un agente que está trabajando entrelaza el texto con su TUI. El repartidor sólo entrega a los que están en waiting, y si el proceso del agente ya terminó no entrega nada: el mensaje queda pendiente en vez de perderse.
Cada mensaje se sella con el HEAD del momento. Si dos agentes se escribieron a la vez, o si el árbol ya avanzó desde que se escribió el reporte, el aviso viaja dentro del mensaje.
ybento bandeja, ybento enviar @qa …, ybento estado. Acepta stdin y -f archivo para reportes largos, porque el shell del agente también expande backticks.
Cada tarea es un .md real en .ybento/tasks/ — sin índice, sin base de datos: el estado es el directorio. Se editan a mano, se versionan con git y viajan con el repo. Y un botón arma el prompt listo para pegarle a tu agente… que al terminar marca la tarea como completada.
La mayoría de las herramientas te hacen empezar de cero cada vez que cambias de contexto. Aquí no.
Gratis y de código abierto. Todo vive en tu máquina — cero telemetría, cero nube obligatoria.
macOS no está firmado todavía (no hay cuenta de Apple Developer): la primera vez, abrí el .app con click derecho → Abrir.