ReviewOS

also looking at this

stacks/uplink

docs: the documentation the README points at

#63
Merged glennmichael123 wants to merge docs/the-missing-docs into main
9 files +509 -10
docs/install.mdadded+81-0
Changes to docs/install.md
@@ -0,0 +1,81 @@
1# Install
2
3Two ways, and you should run only one of them. They share the launchd label
4`com.stacksjs.uplink`, and the downloaded app stops the source service when it starts.
5
6## The app
7
8[Download Uplink for Mac](https://github.com/stacksjs/uplink/releases/latest/download/Uplink.dmg).
9It is signed with a Developer ID and notarized by Apple, so it opens like any other app.
10
11To check what you downloaded against the digest on the release page:
12
13```bash
14shasum -a 256 ~/Downloads/Uplink.dmg
15```
16
17Drag it to Applications and open it. The menubar walks you through three things:
18
191. **Full Disk Access**, which it opens System Settings for. See [Permissions](./permissions.md).
202. **Signing in to the agent you chose.** Claude Code opens your browser and keeps the token in
21 your Keychain; Codex signs in once with `codex login` and keeps its own credentials.
223. **Permission to control Messages**, which macOS asks for the first time it tries to reply.
23
24Then text yourself `ping`. The answer starts with a satellite.
25
26Uplink answers texts once it is activated. A licence is
27[$1.99 a month, $19.99 a year, or $29.99 once](https://uplink.stacksjs.com/pricing). The thank-you
28page has an **Activate Uplink** button that opens the app with the key filled in, and a licensed
29Mac keeps answering for two weeks without reaching the licence server, so it works off-grid.
30
31## From source
32
33The same app, run from a clone as a launchd service. Its bundle id is
34`com.stacksjs.uplink.source`, so its Full Disk Access grant is separate from the downloaded app's.
35
36```bash
37git clone https://github.com/stacksjs/uplink && cd uplink
38```
39
40```bash
41bun install && ./buddy uplink:install
42```
43
44That creates `.env` and the database if they are missing, builds
45`storage/uplink/Uplink.app` and starts it at login.
46
47Then grant **Full Disk Access to Uplink (source)** in System Settings, and sign in to the agent you
48want:
49
50```bash
51claude setup-token
52```
53
54```bash
55./buddy env:set CLAUDE_CODE_OAUTH_TOKEN "$(pbpaste | tr -d '[:space:]')"
56```
57
58A long-lived token, because a background service cannot answer a browser prompt. For Codex instead:
59
60```bash
61codex login # or: codex login --device-auth, over SSH
62```
63
64```bash
65./buddy env:set UPLINK_ENGINE codex
66```
67
68Check it, then text yourself `ping`:
69
70```bash
71./buddy uplink:doctor
72```
73
74## Texting yourself over satellite
75
76Test this once before relying on it. A text to your own number can be delivered to your other
77devices without going through the satellite link at all, so confirm the Mac receives a self-text
78sent while in satellite mode.
79
80If it does not, use a second Apple ID: sign Messages on the Mac into it, and set the allow list to
81your own phone number.