Install
One installer. Paste it. Then type bs --version. That is the whole first step.
01
Get the program
Linux and Mac
curl -fsSL https://raw.githubusercontent.com/MindDragonLabs/BridgeSessions/main/scripts/install.sh | bashWindows
irm https://raw.githubusercontent.com/MindDragonLabs/BridgeSessions/main/scripts/install.ps1 | iexIt drops the program at ~/.local/bin/bridgesessions (~/.local/bin/bs is the short name) on Linux and Mac, or %LOCALAPPDATA%\bridgesessions\bridgesessions.exe on Windows. If bs is not found, add that folder to your PATH and open a new terminal.
Prefer a file you can see first? The GitHub release has the three builds: Linux x86_64, Mac Apple silicon, Windows x86_64.
02
Make sure it is the real file
Download SHA256SUMS next to the binary. Then:
sha256sum -c SHA256SUMS --ignore-missingMac
shasum -a 256 -c SHA256SUMSWindows
Get-FileHash .\bridgesessions-windows-x86_64.exe -Algorithm SHA25603
See that it runs
bs --versionbs doctorDoctor tells you if the install looks healthy. If something is off, it usually says what to fix.
04
Join another machine
On the machine you want to reach, start the program and leave it running. Then pair from your laptop. The first time, you pin that machine on purpose so you know who you are talking to.
bridgesessions --daemonbs joinbs peers listAfter that, use the name you see in the list. Do not guess if two names look close.
05
Run something over there
Stack the work in one command. Opening a folder in one call and running the job in the next does not keep that folder.
bs shell <peer> --cmd "uname -a"bs shell <peer> --cmd "bash -lc 'cd /app && npm install && npm test'"Longer than a couple of lines? Send a script instead.
bs run-script <peer> deploy.sh06
Move a file
Same program. Send something over, or pull a log or a screenshot back. Wait for it to finish.
bs file send <peer> ./local.bin /remote/path/local.bin --waitbs file recv <peer> /remote/path/app.log ./app.log --wait07
See the screen. Click if you have to.
On a Mac or Windows desktop, look first. Then click. On those machines the helper has to be running in the logged-in user session.
bs cua screen <peer>bs cua capture <peer>bs cua click <peer> --x 100 --y 200More on that in the desktop notes.
08
Let an agent use it
09
Take it off a machine
There is no uninstall script. Stop what is running, then delete the files. State lives in ~/.bridgesessions/.
Mac
Kick the launch agents out first. Then delete the files.
launchctl bootout gui/$(id -u)/com.bridgesessions.meshlaunchctl bootout gui/$(id -u)/com.bridgesessions.cua-helperlaunchctl bootout gui/$(id -u)/com.minddragon.bridgesessions.menubarrm -f ~/Library/LaunchAgents/com.bridgesessions.mesh.plist \
~/Library/LaunchAgents/com.bridgesessions.cua-helper.plist \
~/Library/LaunchAgents/com.minddragon.bridgesessions.menubar.plistrm -f ~/.local/bin/bridgesessions ~/.local/bin/bs \
~/Library/Application\ Support/BridgeSessions/bridge-menubar.apprm -rf ~/.bridgesessions/Linux
systemctl --user stop bridgesessions.servicesystemctl --user disable bridgesessions.service 2>/dev/null || truerm -f ~/.config/systemd/user/bridgesessions.service \
~/.config/autostart/bridgesessions.desktop \
~/.local/bin/bridgesessions ~/.local/bin/bsrm -rf ~/.bridgesessions/Windows
Stop the tray and the helper before you delete anything.
schtasks /End /TN "BridgeSessions"Get-CimInstance Win32_Process |
Where-Object { $_.CommandLine -like '*bs_tray.ps1*' } |
ForEach-Object { Stop-Process -Id $_.ProcessId -Force }schtasks /End /TN "BridgeSessions-CuaHelper"Get-CimInstance Win32_Process |
Where-Object { $_.CommandLine -like '*--cua-helper*' } |
ForEach-Object { Stop-Process -Id $_.ProcessId -Force }schtasks /Delete /TN "BridgeSessions" /F
schtasks /Delete /TN "BridgeSessions-CuaHelper" /FRemove-Item -Recurse -Force "$env:LOCALAPPDATA\bridgesessions"
Remove-Item -Recurse -Force "$env:USERPROFILE\.bridgesessions"If a leftover process will not die, say so on GitHub issues. Do not invent a cleaner script and call it ours.