bitbang
peer-to-peer remote shell, files, and proxy without accounts
TLDR
SYNOPSIS
bitbang command [options] [args...]
DESCRIPTION
bitbang is a single static Go binary for remote access over WebRTC: open a shell, browse/transfer files, and reverse-proxy HTTP to the remote machine's network—without port forwarding, VPN setup, or an account.On the machine you want to reach, run bitbang serve. It prints a URL (and QR/pairing code). Anyone who opens the URL in a browser gets the capabilities you enabled; another bitbang client can connect or cp with the same credential.The public bitba.ng host only brokers signaling. Data is end-to-end encrypted (DTLS). After ICE succeeds, traffic is peer-to-peer when possible; otherwise a TURN relay carries ciphertext only. Device identity is an RSA key under ~/.bitbang/; successful connects are remembered in ~/.bitbang/devices.json for short names.
PARAMETERS
serve [mode] [args]
Start a listener. Modes: bare serve (shell + files + proxy), shell, files [PATH], proxy [HOST:PORT].connect target [-- command...]
Connect as client. target may be a URL, 6-digit pair code, or saved device name. With -- command, run that command and exit.cp src dst
Copy files; exactly one side is remote as `url:/path`. - means stdin/stdout.version
Print version (also --version).help
Usage (also -h, --help).-server HOST
Signaling server hostname (default bitba.ng).-pin PIN
Require (serve) or send (connect/cp) a PIN.-ephemeral
Throwaway identity: fresh URL each serve run.-nocode
Disable spoken 6-digit pairing on the listener (URL still works).-name NAME
Save a newly paired/connected host under NAME (first time only).-relay
Prefer TURN relay up front (ICE still tries direct paths).-timeout DUR
Dial timeout (default 30s).-v
Verbose logging.
CONFIGURATION
Identity and known hosts live under ~/.bitbang/ (mode-restricted files). Keypair path is ~/.bitbang/program/identity.pem (default program name bitbang). Saved devices: ~/.bitbang/devices.json.
CAVEATS
The serve URL is a bearer credential—anyone with it gets the served capabilities (including a full shell). Prefer short-lived/ephemeral listeners and -pin for standing hosts. Official install targets Linux (`amd64`/`arm64`/`armv7`) via GitHub releases; macOS/Windows builds may lag. Requires outbound connectivity to the signaling (and possibly TURN) server unless you self-host BitBang signaling.
HISTORY
bitbang is part of the open-source BitBang project by richlegrand, MIT-licensed. The CLI maps roughly to sshd/ssh/scp with WebRTC instead of TCP, emphasizing zero-config reach through NAT and browser clients without installing software on the connector.