also looking at this
docs: the documentation the README points at
#63
9 files
+509
-10
| @@ -0,0 +1,55 @@ | ||
| 1 | # Uplink | |
| 2 | ||
| 3 | Text your Mac from anywhere, even over satellite with no data, and an agent answers. | |
| 4 | ||
| 5 | Newer iPhones can send iMessages over satellite when there is no cell or Wi-Fi signal, but nothing | |
| 6 | that needs the internet works. Uplink turns those texts into a way to reach a coding agent: it | |
| 7 | watches Messages on your Mac for texts from you, runs each one through Claude Code or Codex, and | |
| 8 | texts the answer back. | |
| 9 | ||
| 10 | ## What you need | |
| 11 | ||
| 12 | - **An Apple Silicon Mac.** The app is arm64 only, so an Intel Mac cannot run it. | |
| 13 | - **macOS 13 or later.** | |
| 14 | - **Claude Code on a Claude plan, or Codex on a ChatGPT plan.** No API key either way. | |
| 15 | - **Full Disk Access for Uplink**, so it can read Messages. See [Permissions](./permissions.md). | |
| 16 | - **Permission to control Messages**, so it can reply. Asked once. | |
| 17 | - **A Mac that stays awake.** A laptop with its lid closed sleeps unless it is on power with a | |
| 18 | display attached. | |
| 19 | ||
| 20 | ## Two ways to run it | |
| 21 | ||
| 22 | **The app.** Download it, drag it to Applications, and the menubar walks you through setup. This is | |
| 23 | what most people want. See [Install](./install.md). | |
| 24 | ||
| 25 | **From source.** A launchd service run out of a clone of the repository, with its own bundle id so | |
| 26 | its Full Disk Access grant is separate from the app's. Also in [Install](./install.md). | |
| 27 | ||
| 28 | Only run one of them. They share a launchd label, and the app stops the source service when it | |
| 29 | starts. | |
| 30 | ||
| 31 | ## Texting it | |
| 32 | ||
| 33 | Send yourself a message. Anything that is not one of the words below becomes a task for the agent, | |
| 34 | running in the directory your text names, or your home directory if it names none. | |
| 35 | ||
| 36 | | Word | What it does | | |
| 37 | | --- | --- | | |
| 38 | | `help` | The list, texted back | | |
| 39 | | `status` | What it is working on, and which agent | | |
| 40 | | `stop` | Cancel the current task and anything queued behind it | | |
| 41 | | `new` | Start a fresh conversation | | |
| 42 | | `more` | The rest of a long reply | | |
| 43 | | `ping` | Check it is alive | | |
| 44 | | `claude` / `codex` | Switch this thread to that agent | | |
| 45 | ||
| 46 | Only a whole message counts, so "stop the dev server in ~/Code/api" is still a task. | |
| 47 | ||
| 48 | ## Where to go next | |
| 49 | ||
| 50 | - [Install](./install.md) | |
| 51 | - [Permissions](./permissions.md): what macOS asks for and why | |
| 52 | - [Configuration](./configuration.md): every setting, both ways of setting them | |
| 53 | - [Security](./security.md): what a text can do, and what leaves your Mac | |
| 54 | - [Troubleshooting](./troubleshooting.md): it is not answering | |
| 55 | - [Uninstall](./uninstall.md): removing it completely | |