yusepe-bento
$ cockpit de código para gente que vive entre proyectos

Cada proyecto es un caos.
Dale su propio bento.

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.

descargar para escritorio ↵
electron · macOS · windows · linux node-pty — terminales reales, no emuladas 0 telemetría · todo local
● frontend-app cwd ~/dev/app :sort caos → orden
terminal · zsh
~/dev/app ❯ npm run dev
✓ vite ready in 312 ms
➜ local: http://localhost:5173
~/dev/app ❯
webview
◀ ▶ ↻app.local/docs
git ⑂ main
src/layout.js+42
style.css+8 -3
README.md+11
calc
7
8
9
/
4
5
6
*
1
2
3
-
tasks · .ybento/tasks/
[x]Panel de git: fetch + pull
[ ]Fijar PDF como tile▸ launch
[ ]El buscador encuentra dotfiles
▸ launch → prompt listo para tu agente
explorer
src/
layout.js
· bentoGrid.js
· style.css
.github/
agent · claude
you ❯
Refactoriza el push/pull del resize sin romper los tests.
claude ❯
Hecho. resolveColGrowth ahora encoge al vecino. 4/4 tests ✓
README.md · fijado
1
2
3
4
# YUSEPE Bento

Cockpit de código en un **Bento Grid** dinámico: espacios de trabajo locales,
terminales reales (node-pty), webapps embebidas, explorador de archivos…
321
tests sobre la lógica crítica
5
tipos de tile: term · web · calc · file · tasks
0
procesos muertos al cambiar de espacio
12
columnas de grid, resize a mano
capacidades

Tu caos, pero organizado como tú quieres.

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.

layout.js

Bento Grid con push & pull

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.

explorerFs.js

Explorador con CRUD real

Árbol del workspace con iconos por tipo y buscador que 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.

gitOps.js

El ciclo de sync completo

Status, diff, stage/unstage, descartar, commit, push, fetch, pull y ramas — sin salir a lazygit ni a la terminal.

node-pty

Terminales reales

Shells de verdad vía node-pty — no un emulador. xterm.js, scrollback completo y el cwd del workspace.

agentOps.js

Panel de agentes

Detecta y edita CLAUDE.md, AGENTS.md, .cursorrules y compañía. Lista tus subagentes de .claude/agents/.

snippetsOps.js
{}

Snippets que se tipean solos

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.

theme · wallpaper

Tema claro/oscuro que llega hasta el fondo

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.

novedad · loop multiagente

Un agente codea. Otro revisa. Se hablan solos.

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.

.ybento/loop/status.json
el estado es el disco: messages.jsonl append-only · status.json con lock · skill.md con el protocolo que leen los agentes
hilo del workspace — grupal
Una línea, y el Enter aparte

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.

Nunca a un agente ocupado

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.

Cruces y desfase de código

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.

Un CLI para el agente

ybento bandeja, ybento enviar @qa …, ybento estado. Acepta stdin y -f archivo para reportes largos, porque el shell del agente también expande backticks.

el puente que un webview no puede cruzar

Tus tareas le hablan a tu agente de código.

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.

.ybento/tasks/
frontmatter mínimo: title · done · createdAt + cuerpo libre en Markdown
launch-template.md — resuelto
variables: {{task_title}} {{task_route}} {{task_notes}} {{project_root}}/Users/tu/dev/app
la feature estrella

Cambia de proyecto sin matar tu trabajo.

La mayoría de las herramientas te hacen empezar de cero cada vez que cambias de contexto. Aquí no.

  • Tus terminales siguen corriendo en background — el build, el server, el proceso de larga duración: intactos.
  • Los webviews conservan su sesión y su scroll; no se recargan.
  • Vuelves al workspace y todo está tal cual lo dejaste. Nada se destruye en un simple cambio de perfil.
  • Un chip en la barra te muestra qué workspaces siguen vivos en segundo plano.
processes
↑ cambia de workspace — el proceso del otro sigue vivo.
todo desde el teclado

Las manos nunca dejan el teclado.

P
Ir a archivo (Quick Open)
P
Command Palette
K
Agregar al espacio
T
Nueva terminal
1…9
Ir al espacio 1…9
←↑→↓
Mover el foco entre tiles
←↑→↓
Mover el tile enfocado
/
Cheatsheet de atajos
,
Configuración
W
Cerrar el tile enfocado
C/V
Copiar y pegar en la terminal (win · linux)
B
Explorador de archivos
get-started.sh

Ordena el caos. Un bento por proyecto.

Gratis y de código abierto. Todo vive en tu máquina — cero telemetría, cero nube obligatoria.

git clone · npm install · npm run dev

macOS no está firmado todavía (no hay cuenta de Apple Developer): la primera vez, abrí el .app con click derecho → Abrir.