Gratis durante la beta · Servidores Linux y macOSGratis durante la beta

Tus agentes corren en tus servidores. Contestales desde cualquier lado.

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

  1. Te necesita. Tu agente en build-01 quiere correr la migración. El pedido te llega al teléfono.
  2. Contestás. Lo permitís con Face ID, estés donde estés.
  3. Sigue. La migración corre: ✓ 3 migrations applied.

Leé la escena

Tu 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.

Funciona con

  • Claude Code
  • Codexbeta
  • Qwen Codebeta
  • Grok Buildbeta
  • Gemini CLIpronto
  • OpenCodepronto

esperándote

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á

Una línea en cada servidor.

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.

Seguís escribiendo 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.

Tu historial ya está.

Onetty encuentra las sesiones que corriste antes de instalar. Retomás cualquiera en tmux, desde el teléfono.

0 puertos de entrada · Linux x86_64/arm64 · macOS Apple Silicon

ssh · build-01mac-mini
$ curl -fsSL https://onetty.app/install.sh | sh -s -- --token •••••• --owner ••••••
$ curl -fsSL https://onetty.app/install.sh \
| sh -s -- --token •••••• --owner ••••••
→ bajando onetty 0.3.0…
✓ onetty 0.3.0 en /home/alex/.local/share/onetty
✓ Dado de alta como Xk3P9aQ2mV7tL0dR5wYb1c · organización q7Lx2Vd9Hs0Kp4Tz8NmW3e
◆ Setup de onetty · build-01
✓ tmux (para controlar las sesiones)
✓ Hooks de Claude Code (estado en vivo y avisos)
✓ Wrapper de claude (abre en tmux)
✓ Servicio serve activo
✓ Actualización automática
✓ Seguir corriendo sin sesión abierta (linger)
✓ build-01 está listo.
$ curl -fsSL https://onetty.app/install.sh | sh -s -- --token •••••• --owner ••••••
$ curl -fsSL https://onetty.app/install.sh \
| sh -s -- --token •••••• --owner ••••••
→ bajando onetty 0.3.0…
✓ onetty 0.3.0 en /Users/alex/.local/share/onetty
✓ Dado de alta como Xk3P9aQ2mV7tL0dR5wYb1c · organización q7Lx2Vd9Hs0Kp4Tz8NmW3e
◆ Setup de onetty · mac-mini
✓ tmux (para controlar las sesiones)
✓ Hooks de Claude Code (estado en vivo y avisos)
✓ Wrapper de claude (abre en tmux)
✓ Servicio serve activo
✓ Actualización automática
✓ mac-mini está listo.

Llegó build-01 · 2 en vivo · 137 en tu historial

En vivo · 2

  • Trabajando: Claude Code · Migrar la tabla de pagospayments-api · 7m
  • Trabajando: Claude Code · Reintentar las firmas de los webhookspayments-api · 3m

Recientes

  • Codex · Documentar la API públicacli-tools · 4d
  • Claude Code · Pasar la config a variables de entornoauth-service · 6d
  • Codex · Arreglar el test que falla a vecesdesign-system · 9d
  • Claude Code · Arreglar el build de CIadmin-panel · 12d
  • Claude Code · Agregar logs al job nocturnodocs-site · 12d

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á

Tres servidores. Una sola pantalla para lo que te necesita.

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.

te necesitan · terminaron · trabajando

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.

Probalo en la demo →

03 · Metete

Una terminal de verdad, no un chat.

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.

Shells
Siguen vivas aunque cierres la app, en cualquier servidor.
Archivos sin scp
Navegás, bajás y subís, con reanudación y verificados de punta a punta.
En el escritorio
K para ir a cualquier lado, ↩ para permitir.

04 · Las llaves son tuyas

El hub pasa bytes que no puede leer.

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.

  • Sin puertos de entrada.

    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

  • El hub no puede leer tus sesiones.

    Noise IK de punta a punta entre tu dispositivo y tu servidor.

    Noise_IK_25519_AESGCM_SHA256

  • Face ID verificado por tu servidor. No por nuestra app.

    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é confiás

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?

Comprobalo vos

  1. En /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.
  2. En tu servidor, onetty agent devices lista los dispositivos que pueden entrar, y onetty agent devices rm <id> revoca uno.
  3. El código que cifra corre en tu servidor como JS legible: ~/.local/share/onetty/current/app/src/noise.js.
  4. Que no escucha en la red: los comandos de Lo que queda escuchando.
Descifralo vos

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 \
  c825ffa9858ed935b9974e4b64624e055836bc6b145a124a096274800d4dc7a767dc5e56b4b0eea078180bb50cf57d80ba8c000e

Salida esperada: → Migrar la tabla de pagos

Onetty y las alternativas (octubre de 2026)

Primero, donde ganan ellos.

Onetty y las alternativas (octubre de 2026)
QuéOnettyRemote ControlCodex RemoteHappyPaseoSSH + tmux
Viene incluido en tu plangratis en betasísíno gratis, abiertono gratis, abiertosí
Corre en tus servidores sin pantallasínoen parte (SSH)nosísí
Arrancás tus agentes como siempresí Claude Code; los demás con wrapen parte (/rc)síno happy claudesin datosí
Varios agentes en una listasínonosísíen parte
Terminal real, shells y archivossínonoen partesísí
El proveedor no puede leer el contenidosí 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 Anthropicdeclarado (sin auditoría)sísí relaysí
Aprobaciones verificadas por tu propio servidorsí WebAuthnnonononono
Lista del equipo firmada por tus dispositivossínonononono
Código que podés leeren parte (el agente es JS legible en tu servidor)nonosísísí

Onetty

Viene incluido en tu plan
gratis en beta
Corre en tus servidores sin pantalla
sí
Arrancás tus agentes como siempre
sí Claude Code; los demás con wrap
Varios agentes en una lista
sí
Terminal real, shells y archivos
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 →
Aprobaciones verificadas por tu propio servidor
sí WebAuthn
Lista del equipo firmada por tus dispositivos
sí
Código que podés leer
en parte (el agente es JS legible en tu servidor)

Remote Control

1 de 9
Viene incluido en tu plan
sí
Corre en tus servidores sin pantalla
no
Arrancás tus agentes como siempre
en parte (/rc)
Varios agentes en una lista
no
Terminal real, shells y archivos
no
El proveedor no puede leer el contenido
no TLS vía Anthropic
Aprobaciones verificadas por tu propio servidor
no
Lista del equipo firmada por tus dispositivos
no
Código que podés leer
no

Codex Remote

2 de 9
Viene incluido en tu plan
sí
Corre en tus servidores sin pantalla
en parte (SSH)
Arrancás tus agentes como siempre
sí
Varios agentes en una lista
no
Terminal real, shells y archivos
no
El proveedor no puede leer el contenido
declarado (sin auditoría)
Aprobaciones verificadas por tu propio servidor
no
Lista del equipo firmada por tus dispositivos
no
Código que podés leer
no

Happy

3 de 9
Viene incluido en tu plan
no gratis, abierto
Corre en tus servidores sin pantalla
no
Arrancás tus agentes como siempre
no happy claude
Varios agentes en una lista
sí
Terminal real, shells y archivos
en parte
El proveedor no puede leer el contenido
sí
Aprobaciones verificadas por tu propio servidor
no
Lista del equipo firmada por tus dispositivos
no
Código que podés leer
sí

Paseo

5 de 9
Viene incluido en tu plan
no gratis, abierto
Corre en tus servidores sin pantalla
sí
Arrancás tus agentes como siempre
sin dato
Varios agentes en una lista
sí
Terminal real, shells y archivos
sí
El proveedor no puede leer el contenido
sí relay
Aprobaciones verificadas por tu propio servidor
no
Lista del equipo firmada por tus dispositivos
no
Código que podés leer
sí

SSH + tmux

6 de 9
Viene incluido en tu plan
sí
Corre en tus servidores sin pantalla
sí
Arrancás tus agentes como siempre
sí
Varios agentes en una lista
en parte
Terminal real, shells y archivos
sí
El proveedor no puede leer el contenido
sí
Aprobaciones verificadas por tu propio servidor
no
Lista del equipo firmada por tus dispositivos
no
Código que podés leer
sí

✓ 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

Quién entra lo firman tus admins. El hub solo reparte la lista.

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.

Dueño · Admin · Miembro · Lector · actividad sin contenido

Lista v7 · firmada por Alex (iPhone)

  • Alex RiveraDueñotodos los servidores
  • Lucía RomeroAdmintodos los servidores
  • Sam ChenMiembrobuild-01 · gpu-box
  • Jordan ParkLectorbuild-01

aplicada en 3 de 3 servidores

Preguntas

¿Por qué no uso Remote Control?

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é ve el hub?

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.

¿Por qué entro con Google?

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.

¿Onetty ve mi clave de API o mi cuenta de Claude?

No. Tu agente corre en tu servidor igual que antes, con su propio login. Onetty no lo toca.

¿Tengo que cambiar cómo arranco mis agentes?

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.

Me pedís que corra un script con | 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 →

¿Se actualiza solo?

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.

¿Y si se cae el hub?

Tus agentes siguen corriendo; perdés el acceso remoto hasta que vuelva. No se pierde nada: las sesiones viven en tu servidor.

¿Me avisa el teléfono?

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.

¿Qué agentes?

Claude Code; Codex, Qwen Code y Grok Build en beta; Gemini CLI y OpenCode, pronto.

¿Puedo aprobar desde un escritorio Linux?

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.

¿Es código abierto?

Todavía no. El agente corre como JavaScript legible en tu propio servidor, y podés leer el JavaScript exacto que corre tu navegador.

¿Y si hackean a Onetty?

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>.

¿Y si alguien entra a mi cuenta de Google?

Google dice quién sos. No mete a nadie: un dispositivo nuevo solo genera un pedido que tiene que aprobar uno de tus dispositivos.

¿Es gratis?

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

Conectá tu primer servidor.

Una línea. Cero puertos de entrada. Gratis durante la beta.

tu-servidor

$ 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.

Prefer English? View in English →