LinuxCommandLibrary
GitHubF-DroidGoogle Play Store

bitbang

peer-to-peer remote shell, files, and proxy without accounts

TLDR

Serve shell, files, and proxy (prints URL, QR, pairing code)
$ bitbang serve
copy
Serve shell only
$ bitbang serve shell
copy
Serve a files share (add -upload to allow uploads)
$ bitbang serve files [~/share]
copy
Serve HTTP proxy to a fixed local target
$ bitbang serve proxy [localhost:8080]
copy
Connect an interactive shell from another machine
$ bitbang connect [url-or-code-or-name]
copy
Run a remote command non-interactively
$ bitbang connect [url] -- [tail -f /var/log/syslog]
copy
Copy a file scp-style
$ bitbang cp [url]:[/var/log/app.log] [./app.log]
copy
Pair once and save a short device name
$ bitbang connect [482731] -name [nas1]
copy

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.

SEE ALSO

ssh(1), scp(1), ngrok(1), tailscale(1)

RESOURCES

Braincup
Open source brain training for math, memory and focus
Braincup mini-games
41 mini-games · Apache-2.0
No ads · No tracking
Play in browser
Download Braincup on the App StoreGet Braincup on Google PlayGet Braincup on F-Droid
276 stars
From the maker of Linux Command Library
Copied to clipboard
Braincup
Open source brain training for math, memory and focus. 41 mini-games, from mental arithmetic to Sudoku, N-Back and Solo Chess.
Apache-2.0 licensed · No ads · No tracking · No account
From the maker of Linux Command Library
Download Braincup on the App StoreGet Braincup on Google PlayGet Braincup on F-Droid