Abrir el REPL
Esto lanza un TUI (text user interface) construido con Ink + React donde puedes conversar con Studio en tiempo real. Cada respuesta se transmite por Server-Sent Events y se renderiza palabra por palabra.
Flags disponibles
| Flag | Tipo | Descripcion |
|---|
--dev | bool | Apunta al backend local http://localhost:5090 |
-a, --agent-id <id> | string | Pre-carga un agente al iniciar la sesion |
-w, --workspace-id <id> | string | Sobrescribe el workspace del config |
-m, --message <text> | string | Envia un mensaje inicial automaticamente |
--no-color | bool | Desactiva colores ANSI (util en CI o logs) |
Ejemplos
# REPL contra produccion (zona del config)
plazbot studio
# REPL apuntando a un agente especifico
plazbot studio -a age_TZiOY...
# REPL contra backend local de desarrollo
plazbot studio --dev
# REPL con mensaje inicial automatico
plazbot studio -m "lista mis agentes"
Layout del TUI
┌─ Studio · workspace acme · LA · catalogo-wa ──────────────────────┐
│ │ │
│ Tu > Cambia el saludo a algo mas cercano │ Panel Agente │
│ │ [preview|json] │
│ ✓ Consultando agentes · 0.4s │ │
│ ✓ Actualizando prompt · 0.8s │ { │
│ │ "name": ... │
│ Plazbot > Listo. El nuevo saludo es │ "prompt": .. │
│ "¡Hola! Soy Cata 👋" │ } │
│ │ │
├──────────────────────────────────────────────────┴─────────────────┤
│ > _ │
├─────────────────────────────────────────────────────────────────────┤
│ tokens: 1.2k in / 845 out · /help · Tab panel · Esc cancel · Ctrl+C│
└─────────────────────────────────────────────────────────────────────┘
Componentes
| Zona | Descripcion |
|---|
| Header | Muestra workspace activo, zona (LA/EU) y agente cargado |
| ChatLog | Mensajes de usuario, assistant y tool-calls con spinner / check |
| Panel Agente | Vista lateral con la config del agente activo (JSON o preview) |
| Input | Caja de texto con autocompletado de slash commands |
| Footer | Contador de tokens, hints de teclado y estado de streaming |
Flujo de una interaccion
- Escribes un mensaje y presionas Enter.
- Studio muestra
Tu > ... y comienza a streamear la respuesta.
- Si necesita ejecutar herramientas (listar agentes, actualizar prompt, etc.), aparecen tarjetas con spinner
▸ Consultando agentes….
- Cuando la herramienta termina, la tarjeta cambia a
✓ Consultados · 0.4s.
- El assistant continua streameando el texto final con markdown renderizado.
- El footer actualiza el contador de tokens al recibir el chunk
usage.
Tipos de chunks que veras
| Chunk | UI |
|---|
text | Texto streameado del assistant (markdown renderizado) |
tool_call | Tarjeta ▸ {herramienta}… con spinner |
tool_result | Tarjeta cambia a ✓ o ✗ con duracion |
usage | Footer actualiza tokens in/out |
done | Footer pasa de streaming… a estado idle |
error | Mensaje rojo con icono ✖ y razon |
Cuando una tool_result trae data.config (por ejemplo al cargar un agente con /load), el panel lateral se llena automaticamente con el JSON de la config.
Panel del agente
El panel lateral muestra la config del agente actualmente activo en la conversacion.
| Tab | Atajo | Descripcion |
|---|
preview | p | Vista renderizada amigable: nombre, prompt, herramientas, fallback |
json | j | Config completa en JSON con syntax highlight |
diagnose | d | Resultado de /diagnose con issues priorizadas |
Toggle del panel con Tab. Util para sesiones largas en pantallas anchas.
Comandos de sesion
Dentro del REPL puedes usar slash commands para acciones rapidas:
> /help # ayuda inline
> /agents # lista mis agentes
> /load age_T # cargar agente por id
> /diagnose # diagnosticar el agente cargado
> /save # persistir cambios pendientes
> /compact # comprimir historial para sesiones largas
> /clear # limpiar pantalla preservando contexto
> /reset # reiniciar sesion completa
> /export # exportar la conversacion a archivo
> /quit # salir
Cancelar y salir
| Accion | Atajo |
|---|
| Cancelar respuesta en streaming | Esc |
| Salir del REPL | Ctrl+C (dos veces) o /quit |
| Limpiar pantalla | /clear o Ctrl+L |
Cuando cancelas con Esc, el AbortController aborta el fetch SSE limpiamente, el mensaje queda truncado y puedes seguir escribiendo sin reiniciar.
Ctrl+C una sola vez no sale — confirma con un segundo Ctrl+C para evitar perder la sesion accidentalmente.