summaryrefslogtreecommitdiffstats
path: root/docs/PACKAGING-GUIDE.md
diff options
context:
space:
mode:
authorChristophe Besson <cbesson@gmail.com>2026-10-14 22:20:15 +0200
committerChristophe Besson <cbesson@gmail.com>2026-10-14 22:20:15 +0200
commit422647e7898b8df67cd11f8fb060aec23dec84aa (patch)
tree7ecca0e8df1bc8a7d26cf4b471bd44906dd9cfd1 /docs/PACKAGING-GUIDE.md
parent28c88908b88c58cba4de08710f6bb268ede02d57 (diff)
downloadmeshbay-422647e7898b8df67cd11f8fb060aec23dec84aa.tar.gz
feat(cli): meshbay-cli, a command-line client for members
Signs in to the hub, lists the account's groups and their folders, and downloads and uploads files directly with each group's node, end-to-end encrypted. With no argument it opens a two-pane interactive mode (Textual). Session and device keys are kept encrypted under the system's key storage, or a 0600 key file where there is none; node keys are pinned at first contact; a new machine links as a device. Packaged on its own on Linux (deb and rpm, on meshbay-common's venv, with a man page generated from the parser) and frozen next to meshbay-node in the full Windows installer, not the light one, with a self-test the build runs. client/keys.py ports keyderive.js and is LGPL like it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'docs/PACKAGING-GUIDE.md')
-rw-r--r--docs/PACKAGING-GUIDE.md17
1 files changed, 12 insertions, 5 deletions
diff --git a/docs/PACKAGING-GUIDE.md b/docs/PACKAGING-GUIDE.md
index 5fbf7a7..e79fcd6 100644
--- a/docs/PACKAGING-GUIDE.md
+++ b/docs/PACKAGING-GUIDE.md
@@ -1,16 +1,19 @@
# MeshBay — Installation Guide
-Four packages, all installed under `/opt/`:
+Five packages, all installed under `/opt/`:
| Package | What it does |
|---|---|
| `meshbay-common` | Shared Python venv with all dependencies |
| `meshbay-hub` | Identity authority and group registry (server) |
| `meshbay-node` | Local file host, streaming, chat daemon |
+| `meshbay-cli` | Command-line client: your groups' files from a terminal (`man meshbay-cli`) |
| `meshbay-client` | Desktop app (Electron) |
Pick what you need: a desktop user installs **common + node + client**.
-A server running the hub installs **common + hub**.
+A server running the hub installs **common + hub**. **common + cli** gives a
+machine — a server, one with no desktop — a member's access to their groups'
+files from a terminal.
---
@@ -23,6 +26,7 @@ sudo dpkg -i meshbay-common_0.9.0_amd64.deb
sudo dpkg -i meshbay-node_0.9.0_amd64.deb # desktop machine
sudo dpkg -i meshbay-hub_0.9.0_amd64.deb # server only
sudo dpkg -i meshbay-client_0.9.0_amd64.deb # desktop machine
+sudo dpkg -i meshbay-cli_0.9.0_amd64.deb # optional: the command-line client
```
If dpkg complains about missing dependencies:
@@ -34,7 +38,7 @@ sudo apt-get install -f
### Uninstall
```bash
-sudo dpkg --remove meshbay-client meshbay-hub meshbay-node meshbay-common
+sudo dpkg --remove meshbay-client meshbay-cli meshbay-hub meshbay-node meshbay-common
sudo rm -rf /opt/meshbay-*
```
@@ -49,12 +53,13 @@ sudo rpm -ivh meshbay-common-0.9.0-1.fc44.x86_64.rpm
sudo rpm -ivh meshbay-node-0.9.0-1.fc44.noarch.rpm # desktop machine
sudo rpm -ivh meshbay-hub-0.9.0-1.fc44.noarch.rpm # server only
sudo rpm -ivh meshbay-client-0.9.0-1.fc44.x86_64.rpm # desktop machine
+sudo rpm -ivh meshbay-cli-0.9.0-1.fc44.x86_64.rpm # optional: the command-line client
```
### Uninstall
```bash
-sudo rpm -e meshbay-client meshbay-hub meshbay-node meshbay-common
+sudo rpm -e meshbay-client meshbay-cli meshbay-hub meshbay-node meshbay-common
```
---
@@ -69,7 +74,9 @@ node (with `meshbay-common` inside it). There is no Windows hub.
Run the installer. It is **per-user** and lands in
`%LOCALAPPDATA%\Programs\MeshBay\` without needing admin rights. The
node daemon ships beside the app at `resources\node-runtime\meshbay-node.exe`;
-the client finds it automatically.
+the client finds it automatically. The command-line client, `meshbay-cli.exe`,
+is beside it, and works in any new terminal (the light installer does not
+carry it).
It asks one thing — **when the node runs**: