
bitbang-cli v0.5.0
Establece acceso remoto seguro a una máquina con shell interactivo, transferencia de archivos y proxy web a través de WebRTC peer-to-peer cifrado de extremo a extremo, usando un navegador o CLI sin reenvío de puertos ni cuentas.
BitBang CLI
bitbang es una herramienta multiusos de acceso remoto en un único binario estático. Desde cualquier navegador: acceso a un shell interactivo y a un explorador de archivos de la máquina remota. También puedes acceder a aplicaciones web en la red de esa máquina. Más allá del navegador, realiza reenvío de puertos TCP, copia de archivos y compartición de terminal. No requiere cuenta ni configuración: simplemente funciona.

En la máquina a la que quieres acceder:
curl -sSfL bitba.ng/install | sh
bitbang serve
serve imprime una URL. Ábrela en cualquier navegador y obtendrás un terminal, un explorador de archivos y un proxy hacia la red de esa máquina -- o accede a la misma máquina desde otro terminal con bitbang connect <url>, que añade reenvío de puertos (-L) y copia de archivos (bitbang cp). La conexión está cifrada de extremo a extremo y es peer-to-peer; el servidor bitba.ng presenta los dos extremos y luego se aparta.
bitbang es un único binario estático de Go. Forma parte del proyecto BitBang; este whitepaper cubre el diseño en profundidad.
Cómo se compara
| ngrok | Tailscale | bitbang | |
|---|---|---|---|
| Configuración antes del primer uso | Cuenta + authtoken | Cuenta + inicio de sesión en cada dispositivo | Ejecutar un comando |
| Para compartir algo, ejecutas | un servidor web, más ngrok | su cliente en ambas máquinas | bitbang serve |
| Lo que obtiene un navegador en el extremo remoto | el servidor web que ya estabas ejecutando | nada -- necesita su cliente | un terminal, un explorador de archivos y aplicaciones web en la red remota |
| Ruta de los datos | sus servidores | P2P (con respaldo por relay) | P2P (con respaldo por relay) |
| Cifrado de extremo a extremo | No por defecto | Sí | Sí |
Recetas rápidas
Acceder a un servicio en casa
- Monta tu NAS doméstico desde cualquier lugar (SMB)
- Ve tu biblioteca multimedia desde cualquier lugar (Jellyfin)
- Usa tu propio LLM desde cualquier lugar (Ollama, Open WebUI)
- Consulta tus cámaras de seguridad (Frigate)
- Accede a tu domótica sin exponerla (Home Assistant)
- Imprime en tu impresora doméstica (IPP, CUPS)
Acceder a una máquina
- Obtén una shell en una máquina detrás de NAT
- Obtén una shell desde tu teléfono
- Escritorio remoto a una máquina Windows (RDP)
- Accede a un escritorio Linux o Mac (VNC)
- SSH a una máquina sin puerto abierto (OpenSSH)
- Configura una Raspberry Pi sin monitor
Compartir con otra persona
Compartir consiste simplemente en dar a alguien una URL única o un código QR que le dé acceso. Los permisos se pueden personalizar y configurar para que caduquen en minutos, horas, etc.
- Compartir archivos sin subirlos a ningún sitio
- Mostrar tu proyecto a alguien
- Mostrar a alguien el error en el que estás atascado
- Dar a alguien un acceso que caduca
- Consultar tu sesión de agente desde tu teléfono (Claude Code, tmux)
- Arreglar el router de otra persona
Desarrollo y dispositivos
- Acceder a una base de datos desde tu máquina de desarrollo (Postgres, MySQL)
- Sincronizar dispositivos que no pueden encontrarse entre sí (Syncthing)
- Observar un robot desde un navegador (ROS, Foxglove)
Técnicas
- Qué expone un listener de reenvío
- Permitir que otras máquinas de tu LAN usen un reenvío
- Se sabe que no funciona
Uso de bitbang
Toda conexión tiene dos extremos: un listener (bitbang serve, ejecutándose en la máquina a la que se accede) y un connector (un navegador, o la CLI bitbang, en la máquina que realiza el acceso). Una única URL de listener sirve a ambos tipos de connector.
El listener: bitbang serve
bitbang serve # everything: shell + proxy + files + forward
bitbang serve shell # just a terminal
bitbang serve files ~/share # just a directory (-files-upload to allow uploads)
bitbang serve proxy localhost:8080 # just one web app, straight at the URL
bitbang serve proxy a.lan:80,b.lan:80 # ...or several, chosen in the browser
bitbang serve forward 127.0.0.1:22 # just TCP, for `connect -L`
bitbang serve shell files ~/share proxy nas.lan:8096 # any combination
Cada uno imprime un código QR, una URL y un código de emparejamiento. El modo determina qué puede hacer el listener en absoluto: serve shell no tiene forwarding que conceder, y un listener de solo forwarding nunca inicia un shell, así que no hay nada a lo que escalar.