also looking at this
feat(engine): answer texts with Codex as well as Claude Code
#7
18 files
+1080
-142
| @@ -138,14 +138,32 @@ TS_CLOUD_UI_PASSWORD= | ||
| 138 | 138 | # forward this process cannot see, or 0 to keep a public box off public DNS. |
| 139 | 139 | # TS_CLOUD_SSH_PUBLISH_DNS= |
| 140 | 140 | |
| 141 | # Uplink - text this Mac, get Claude. See README.md. | |
| 141 | # Uplink - text this Mac, get an agent. See README.md. | |
| 142 | 142 | # Who may command it. Empty = this Mac's own Messages handles only ("text myself"). |
| 143 | 143 | # Anyone listed can make an agent act on this Mac, so list only yourself. |
| 144 | 144 | UPLINK_ALLOWED= |
| 145 | # Which agent CLI answers: claude or codex. Empty = claude. | |
| 146 | UPLINK_ENGINE= | |
| 147 | # --- Claude Code --- | |
| 145 | 148 | # From `claude setup-token` (your Claude Max login, good for a year). Encrypt it: ./buddy env:set |
| 146 | 149 | CLAUDE_CODE_OAUTH_TOKEN= |
| 147 | 150 | # Optional: model alias for runs (sonnet, opus, haiku). Empty = the CLI's default. |
| 151 | # UPLINK_MODEL is the older name for this and still works. | |
| 152 | UPLINK_CLAUDE_MODEL= | |
| 148 | 153 | UPLINK_MODEL= |
| 154 | # Optional: where the claude binary is, if it is not on PATH. | |
| 155 | UPLINK_CLAUDE_BIN= | |
| 156 | # --- Codex --- | |
| 157 | # Sign in with `codex login` (or `codex login --device-auth` over SSH). Codex keeps the | |
| 158 | # credential itself, under CODEX_HOME, so there is no token to put here. | |
| 159 | # Optional: where the codex binary is. Uplink also looks inside ChatGPT.app, which bundles one. | |
| 160 | UPLINK_CODEX_BIN= | |
| 161 | # Optional: model the agent should use. Empty = the CLI's default. | |
| 162 | UPLINK_CODEX_MODEL= | |
| 163 | # How much Codex may do without asking. `bypass` matches what Uplink asks of Claude Code: | |
| 164 | # no approval prompts, no sandbox, because nobody is at the Mac to answer one. | |
| 165 | # Also: danger-full-access, workspace-write, read-only. | |
| 166 | UPLINK_CODEX_PERMISSION=bypass | |
| 149 | 167 | # Where runs start when a text names no path. |
| 150 | 168 | UPLINK_WORKDIR=~ |
| 151 | 169 | # Replies longer than UPLINK_MAX_CHARS are split; past UPLINK_MAX_PARTS the rest waits for "more". |