# consola — cliente Android del daemon shuma App del rizoma (`com.rizoma.consola`) para administrar y operar **sesiones PTY persistentes** del `shuma-daemon` (de `~/tawasuyu`) a través del `shuma-gateway`. Cada sesión es típicamente un `claude code` (o un shell) que vive en el daemon desacoplado de la app: cerrar el terminal = DETACH, la sesión sigue corriendo y puedes volver a adjuntarte. ## Qué hace - **Lista de sesiones** (`POST /rpc` → `PtyList`): vivas/muertas, comando, tamaño, adjuntos. Crear (`PtySpawn`) y matar/reapear (`PtyKill`). - **Terminal** (`GET /ws/pty`): emulador vt100/xterm propio (colores 16/256/ truecolor, negrita/inverso, pantalla alterna, región de scroll, cursor). Entrada por teclado virtual + fila de teclas especiales (esc/tab/^C/^D/^L/ flechas/⌫/↩). Al crear, el WS hace spawn+attach y devuelve el id. - **Ajustes**: URL del gateway + token (DataStore). ## Conectar 1. En la máquina del daemon, levanta el gateway apuntando al socket del daemon: ```sh # opcional: token export SHIPOTE_GATEWAY_TOKEN=... # si quieres auth export SHIPOTE_GATEWAY_LISTEN=0.0.0.0:7378 # para alcanzarlo desde el móvil cargo run -p shuma-gateway ``` 2. En la app → ⚙ ajustes → URL: - Emulador de Android: `http://10.0.2.2:7378` (loopback del host). - Dispositivo real: `http://:7378` (misma LAN o túnel). - Token: el mismo de `SHIPOTE_GATEWAY_TOKEN`, o vacío si no se usó. ## Notas de la v0.1 - Sin scrollback propio en el cliente: el daemon reenvía su scrollback al adjuntarse y el emulador reconstruye la pantalla visible. - Texto plano (`usesCleartextTraffic`) para LAN/túnel; para internet, poner el gateway detrás de TLS y usar `https://`. - Transporte: OkHttp (WS + HTTP); JSON con `org.json`. Sin postcard/Noise directos (eso lo cubre el gateway).