
bitbang-cli v0.5.0
Établissez un accès distant sécurisé à une machine avec un shell interactif, le transfert de fichiers et un proxy web via WebRTC peer-to-peer chiffré de bout en bout, en utilisant un navigateur ou une CLI, sans redirection de ports ni comptes.
BitBang CLI
bitbang est un multitool d'accès à distance sous forme d'un unique binaire statique. Depuis n'importe quel navigateur : un shell interactif et un navigateur de fichiers pour accéder à la machine distante. Vous pouvez également atteindre les applications web sur le réseau de cette machine. Au-delà du navigateur, il effectue du transfert de ports TCP, de la copie de fichiers et du partage de terminal. Il ne nécessite aucun compte ni configuration -- il fonctionne tout simplement.

Sur la machine que vous souhaitez atteindre :
curl -sSfL bitba.ng/install | sh
bitbang serve
serve affiche une URL. Ouvrez-la dans n'importe quel navigateur et vous obtenez un terminal, un navigateur de fichiers et un proxy vers le réseau de cette machine -- ou atteignez la même machine depuis un autre terminal avec bitbang connect <url>, qui ajoute le transfert de ports (-L) et la copie de fichiers (bitbang cp). La connexion est chiffrée de bout en bout et pair-à-pair ; le serveur bitba.ng met les deux extrémités en relation, puis s'efface.
bitbang est un unique binaire Go statique. Il fait partie du projet BitBang ; ce livre blanc couvre la conception en profondeur.
Comparaison
| ngrok | Tailscale | bitbang | |
|---|---|---|---|
| Configuration avant la première utilisation | Compte + authtoken | Compte + connexion sur chaque appareil | Exécuter une seule commande |
| Pour partager quelque chose, vous exécutez | un serveur web, plus ngrok | leur client sur les deux machines | bitbang serve |
| Ce qu'obtient un navigateur à l'autre bout | le serveur web que vous exécutiez déjà | rien -- il faut leur client | un terminal, un navigateur de fichiers et des applications web sur le réseau distant |
| Chemin des données | leurs serveurs | P2P (repli sur relais) | P2P (repli sur relais) |
| Chiffré de bout en bout | Pas par défaut | Oui | Oui |
Recettes rapides
Atteindre un service à la maison
- Monter votre NAS domestique depuis n'importe où (SMB)
- Regarder votre bibliothèque multimédia depuis n'importe où (Jellyfin)
- Utiliser votre propre LLM depuis n'importe où (Ollama, Open WebUI)
- Consulter vos caméras de sécurité (Frigate)
- Atteindre votre domotique sans l'exposer (Home Assistant)
- Imprimer sur votre imprimante domestique (IPP, CUPS)
Accéder à une machine
- Obtenir un shell sur une machine derrière un NAT
- Obtenir un shell depuis votre téléphone
- Bureau à distance vers une machine Windows (RDP)
- Atteindre un bureau Linux ou Mac (VNC)
- SSH vers une machine sans port ouvert (OpenSSH)
- Configurer un Raspberry Pi sans écran
Partager avec quelqu'un d'autre
Le partage consiste simplement à donner à quelqu'un une URL unique ou un QR code qui lui donne accès. Les permissions peuvent être personnalisées et configurées pour expirer en minutes, heures, etc.
- Partager des fichiers sans les téléverser nulle part
- Montrer votre projet à quelqu'un
- Montrer à quelqu'un l'erreur sur laquelle vous êtes bloqué
- Donner à quelqu'un un accès qui expire
- Vérifier votre session d'agent depuis votre téléphone (Claude Code, tmux)
- Réparer le routeur de quelqu'un d'autre
Développement et appareils
- Atteindre une base de données depuis votre machine de développement (Postgres, MySQL)
- Synchroniser des appareils qui ne peuvent pas se trouver (Syncthing)
- Observer un robot depuis un navigateur (ROS, Foxglove)
Techniques
- Ce qu'expose un listener de transfert
- Permettre à d'autres machines de votre LAN d'utiliser un transfert
- Connu pour ne pas fonctionner
Utiliser bitbang
Chaque connexion a deux extrémités : un listener (bitbang serve, exécuté sur la machine à atteindre) et un connector (un navigateur, ou la CLI bitbang, sur la machine qui effectue la connexion). Une seule URL de listener sert les deux types de connector.
Le 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