Quiere correr un comando
Permitido · esperó 7 min
Rechazado · Decile qué hacer en cambio…
Gratis durante la beta · Servidores Linux y macOSGratis durante la beta
Una línea en cada servidor y tus sesiones aparecen en el teléfono. Cuando un agente pregunta, contestás, cifrado de punta a punta y a través de nuestro hub, que no puede leerlo.Una línea en cada servidor. Cuando un agente pregunta, contestás desde el teléfono.
una línea · se instala en tu home · sin puertos de entrada · sin VPNServidores Linux y macOS
✓ 3 migrations applied.claudeclaude → tmux, soloTu agente en build-01 quiere correr npm run db:migrate -- --env staging. El pedido te llega al teléfono. Lo permitís con Face ID. La migración corre: 3 migraciones aplicadas.
Esperándote desde hace cuarenta minutos.
Son las 2 de la mañana. Hace cuarenta minutos que tu agente espera que le digas que sí. Para contestarle necesitás VPN, una app de SSH y el panel de tmux correcto, con el teclado del teléfono.
El agente no falla. Se queda esperando.
Vos contestaste en 0:04.
01 · Conectá
Pegala donde corren tus agentes. Se instala en tu home, solo sale por HTTPS, se actualiza sola y, si una actualización falla, vuelve atrás.
claude, como siempre.Las sesiones nuevas de Claude Code aparecen solas, dentro de tmux: cerrar la laptop nunca las mata. Codex, Qwen y Grok también, con onetty wrap install.
Onetty encuentra las sesiones que corriste antes de instalar. Retomás cualquiera en tmux, desde el teléfono.
Llegó build-01 · 2 en vivo · 137 en tu historial
En vivo · 2
Recientes
Sin actividad reciente · 23 proyectos
Onetty ya conoce tus 137 sesiones de los últimos 6 meses. Retomá cualquiera en tmux desde el teléfono.
02 · Contestá
Un permiso o una pregunta van aparte, arriba. Después, lo que terminó y lo que sigue trabajando. Lo demás puede esperar. Se llama Ahora.
Leé el pedido antes de permitir: el comando exacto y cada opción en criollo.
Avisos en el teléfono: en el iPhone, con la app web agregada a la pantalla de inicio (iOS 16.4 o posterior); en Android, con Chrome. En la Mac, avisos nativos.
03 · Metete
Permitís, rechazás, respondés o interrumpís desde la tarjeta. O abrís el tmux de la sesión, una shell nueva o sus archivos. Cerrar la app nunca mata al agente.
04 · Las llaves son tuyas
Las llaves las tienen tus dispositivos. Nuestro hub no tiene copia: no puede leer tus sesiones, y por eso tampoco podemos devolverte el acceso si los perdés todos. Guardá tu código de recuperación.
AES-256-GCM real con una clave de demostración publicada, no tu tráfico. Tu propio cifrado: DevTools › Network › WS en /app. Esto sí lo ve: qué servidor, cuándo y cuánto.
Cada punta cifra lo que manda; el hub pasa texto cifrado; solo la otra punta lo descifra.
Tu servidor solo sale. Lo único que escucha está en 127.0.0.1, para los hooks de tu agente.
Linuxss -tlnp | grep "pid=$(systemctl --user show -p MainPID --value onetty),"macOSlsof -nP -iTCP -sTCP:LISTEN -a -p "$(launchctl list | awk '/app.onetty.serve$/{print $1}')"→ esperado: una línea en 127.0.0.1
Noise IK de punta a punta entre tu dispositivo y tu servidor.
Noise_IK_25519_AESGCM_SHA256
Prueba que sos vos en este dispositivo; todavía no firma el comando en particular. Vale 10 minutos y se renueva mientras lo usás.
WebAuthn ES256 · lo verifica tu servidor
Qué ve el hub: qué dispositivo habla con qué servidor, desde qué IP, cuándo y cuánto (incluido el ritmo con que tecleás en la terminal), y la lista de tu equipo.
Qué no puede leer: sesiones, comandos, archivos, lo que tecleás, el texto de los avisos.
En qué no tenés que confiar: el hub. No tiene las llaves de tus sesiones: pasa texto cifrado.
En qué sí confiás hoy: nuestro código. Las actualizaciones del agente, todavía sin firmar (cómo apagarlas), y la app web, que servimos desde onetty.app: quien controle ese código podría usar la clave de tu navegador. Las apps nativas y tus servidores no dependen de eso.
Hoy el hub le pasa a tu dispositivo la clave de cada servidor: un hub hostil podría hacerse pasar por un servidor ante vos, pero no leer tus sesiones reales. La ficha del servidor en la app muestra la huella de esa clave; pronto vas a poder compararla con la que imprime el servidor. ¿Y si hackean a Onetty?
/app, DevTools › Network › WS: lo de tus sesiones viaja en frames binarios cifrados. En texto van solo los mensajes de control (entrar, abrir y cerrar un canal, ping), sin contenido.onetty agent devices lista los dispositivos que pueden entrar, y onetty agent devices rm <id> revoca uno.~/.local/share/onetty/current/app/src/noise.js.Con los ojos del hub prendidos, todo el contenido de sesiones de esta página muestra su cifrado AES-256-GCM real (nonce ‖ cifrado ‖ tag), hecho con esta clave de demostración publicada. Acá está el título de la tarjeta del principio, y tres líneas de Node para descifrarlo:
Clave de demostración5423704c442705b6ebdd2d1c271a26ce3201ce1e47845ce303bc45328e47aa0e
Cifradoc825ffa9858ed935b9974e4b64624e055836bc6b145a124a096274800d4dc7a767dc5e56b4b0eea078180bb50cf57d80ba8c000e
node -e 'const c=require("crypto"),k=Buffer.from(process.argv[1],"hex"),b=Buffer.from(process.argv[2],"hex");
const d=c.createDecipheriv("aes-256-gcm",k,b.subarray(0,12));d.setAuthTag(b.subarray(-16));
console.log(Buffer.concat([d.update(b.subarray(12,-16)),d.final()]).toString())' \
5423704c442705b6ebdd2d1c271a26ce3201ce1e47845ce303bc45328e47aa0e \
c825ffa9858ed935b9974e4b64624e055836bc6b145a124a096274800d4dc7a767dc5e56b4b0eea078180bb50cf57d80ba8c000eSalida esperada: → Migrar la tabla de pagos
Primero, donde ganan ellos.
| Qué | Onetty | Remote Control | Codex Remote | Happy | Paseo | SSH + tmux |
|---|---|---|---|---|---|---|
| Viene incluido en tu plan | gratis en beta | sí | sí | no gratis, abierto | no gratis, abierto | sí |
| Corre en tus servidores sin pantalla | sí | no | en parte (SSH) | no | sí | sí |
| Arrancás tus agentes como siempre | sí Claude Code; los demás con wrap | en parte (/rc) | sí | no happy claude | sin dato | sí |
| Varios agentes en una lista | sí | no | no | sí | sí | en parte |
| Terminal real, shells y archivos | sí | no | no | en parte | sí | sí |
| El proveedor no puede leer el contenido | sí Noise IK de punta a punta. verificable en parte en la web: el JS de la app web lo servimos nosotros desde onetty.app; las apps nativas y tu servidor no dependen de eso. cómo comprobarlo → | no TLS vía Anthropic | declarado (sin auditoría) | sí | sí relay | sí |
| Aprobaciones verificadas por tu propio servidor | sí WebAuthn | no | no | no | no | no |
| Lista del equipo firmada por tus dispositivos | sí | no | no | no | no | no |
| Código que podés leer | en parte (el agente es JS legible en tu servidor) | no | no | sí | sí | sí |
wrap/rc)happy claude✓ documentado y verificable con código abierto o probándolo · «verificable en parte» = hay algo que se puede comprobar, y qué · «declarado» = lo dice el proveedor y no hay nada que comprobar · — = no
Revisado el 8 de octubre de 2026 contra la documentación de cada producto. Si algo cambió, escribinos a soporte y lo corregimos.
05 · Sumá a tu equipo
Invitás con un link, elegís su rol y sus servidores, y compartís una sesión para ver o para usar. Cada servidor verifica la firma de la lista. Tus compañeros no instalan nada.
Lista v7 · firmada por Alex (iPhone)
aplicada en 3 de 3 servidores
Si solo usás Claude en la laptop que tenés adelante, Remote Control anda muy bien y viene con tu plan. Onetty es para agentes en servidores que no tenés adelante, para más de un agente, para no cambiar cómo los arrancás, y para la terminal de verdad, shells y archivos. Comparar →
Qué dispositivo habla con qué servidor, desde qué IP, cuándo y cuánto, y la lista de tu equipo. No puede leer sesiones, comandos, archivos, lo que tecleás ni el texto de los avisos. Lo que todavía no podés verificar vos, y lo que un hub hostil igual podría hacer, está en En qué confiás: hoy el hub le pasa a tu dispositivo la clave de cada servidor, así que un hub que se volviera hostil podría hacerse pasar por un servidor ante vos, pero igual no podría leer tus sesiones reales.
Solo le dice al hub quién sos. No mete a nadie: cada dispositivo nuevo lo tiene que aprobar uno que ya tenés. Con GitHub: todavía no.
No. Tu agente corre en tu servidor igual que antes, con su propio login. Onetty no lo toca.
No. Seguí escribiendo claude: en las terminales nuevas arranca solo dentro de tmux. Para Codex, Qwen y Grok, corré una vez onetty wrap install. Las sesiones que abriste antes de instalar aparecen en tu historial y retomás cualquiera en tmux con un toque.
| sh.Es razonable dudar. Leelo primero: bajalo, leelo y corrélo, con su chequeo de sha256 adentro. Escribe solo en tu home, y el token que queda en el historial vale una vez, durante una hora. Qué escribe y dónde →
Sí, cada 15 minutos, y si una actualización falla vuelve atrás. Las actualizaciones todavía no están firmadas, así que hoy confiás en nuestro código; acá está cómo apagarlas.
Tus agentes siguen corriendo; perdés el acceso remoto hasta que vuelva. No se pierde nada: las sesiones viven en tu servidor.
Sí: en el iPhone, con la app web agregada a la pantalla de inicio (iOS 16.4 o posterior); en Android, con Chrome. La app nativa de iPhone está en TestFlight y todavía no manda avisos.
Claude Code; Codex, Qwen Code y Grok Build en beta; Gemini CLI y OpenCode, pronto.
Aprobar pide la biometría o el bloqueo de tu dispositivo. Si tu navegador en Linux no tiene, aprobás desde el teléfono: la app te lo deja listo apenas se conecta tu servidor.
Todavía no. El agente corre como JavaScript legible en tu propio servidor, y podés leer el JavaScript exacto que corre tu navegador.
Un hub hackeado igual no puede leer tus sesiones ni firmar tu lista de miembros. Quien controla onetty.app controla el código de la app web y, hoy, las actualizaciones del agente. Las dos cosas se pueden acotar: apagás las actualizaciones, usás la app de Mac en lugar de la web, y quitás un dispositivo con onetty agent devices rm <id>.
Google dice quién sos. No mete a nadie: un dispositivo nuevo solo genera un pedido que tiene que aprobar uno de tus dispositivos.
Gratis durante la beta. Cuando haya precios, lo avisamos acá con al menos 60 días de anticipación.
3 migraciones aplicadas · esperó 7 min · contestado desde el iPhone 3 migraciones aplicadas · contestaste en 0:04
Una línea. Cero puertos de entrada. Gratis durante la beta.
$ curl -fsSL https://onetty.app/install.sh | sh -s -- --token •••••• --owner ••••••
Entrá con Google para tener tu token
Conectá tu primer servidorTu línea te espera en la app →
Entrás con Google y tu línea, con su token de un solo uso, ya está lista.