opencode-telegram-bridge 1.2.2 → 1.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -8,24 +8,25 @@ Run a Telegram bot that forwards messages to an OpenCode server and returns resp
8
8
 
9
9
  ## Installation (users)
10
10
 
11
- This project is currently Linux-only (it is designed to run as a long-running `systemd` service).
11
+ This project supports Linux (systemd) and macOS (launchd) for long-running services.
12
12
 
13
13
  Prereqs: Node.js 18+, OpenCode CLI on PATH, and an OpenCode server running (`opencode serve`).
14
14
 
15
- Recommended: use the installation wizard to set this up as a `systemd` daemon.
15
+ Recommended: use the installation wizard to set this up as a service.
16
16
 
17
17
  ```bash
18
18
  npm install -g opencode-telegram-bridge
19
19
  opencode-telegram-bridge setup
20
20
  ```
21
21
 
22
- The wizard is the easiest and recommended path; it writes the systemd unit and
23
- env file for you and starts the service.
22
+ The wizard is the easiest and recommended path; it writes the systemd/launchd
23
+ service definition and env file for you and starts the service.
24
24
 
25
- For required environment variables and systemd setup, see:
25
+ For required environment variables and service setup, see:
26
26
  - [docs/installation.md](docs/installation.md)
27
27
  - [docs/configuration.md](docs/configuration.md)
28
28
  - [docs/systemd.md](docs/systemd.md)
29
+ - [docs/launchd.md](docs/launchd.md)
29
30
 
30
31
  Contributing:
31
32
  - [CONTRIBUTING.md](CONTRIBUTING.md)
package/dist/cli.js CHANGED
@@ -104,6 +104,17 @@ const writeUnitFile = (unitPath, content) => {
104
104
  fs.mkdirSync(path.dirname(unitPath), { recursive: true });
105
105
  fs.writeFileSync(unitPath, content, "utf8");
106
106
  };
107
+ const writePlistFile = (plistPath, content) => {
108
+ fs.mkdirSync(path.dirname(plistPath), { recursive: true });
109
+ fs.writeFileSync(plistPath, content, { encoding: "utf8", mode: 0o600 });
110
+ fs.chmodSync(plistPath, 0o600);
111
+ };
112
+ const escapeXml = (value) => value
113
+ .replace(/&/g, "&")
114
+ .replace(/</g, "&lt;")
115
+ .replace(/>/g, "&gt;")
116
+ .replace(/"/g, "&quot;")
117
+ .replace(/'/g, "&apos;");
107
118
  const buildUnitFile = (envPath, nodePath, cliPath) => `
108
119
  [Unit]
109
120
  Description=OpenCode Telegram Bridge
@@ -136,10 +147,47 @@ RestartSec=3
136
147
  [Install]
137
148
  WantedBy=default.target
138
149
  `;
139
- const runSetupWizard = async () => {
140
- if (process.platform !== "linux") {
141
- die("Setup currently supports Linux systemd only. See the docs for manual setup.");
142
- }
150
+ const buildLaunchdPlist = ({ label, programArguments, env, logPath, }) => {
151
+ const envEntries = Object.entries(env)
152
+ .filter(([, value]) => value)
153
+ .map(([key, value]) => ` <key>${escapeXml(key)}</key>\n <string>${escapeXml(value)}</string>`)
154
+ .join("\n");
155
+ const envBlock = envEntries
156
+ ? ` <key>EnvironmentVariables</key>\n <dict>\n${envEntries}\n </dict>\n`
157
+ : "";
158
+ const programArgs = programArguments
159
+ .map((value) => ` <string>${escapeXml(value)}</string>`)
160
+ .join("\n");
161
+ return `<?xml version="1.0" encoding="UTF-8"?>
162
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
163
+ <plist version="1.0">
164
+ <dict>
165
+ <key>Label</key>
166
+ <string>${escapeXml(label)}</string>
167
+ <key>ProgramArguments</key>
168
+ <array>
169
+ ${programArgs}
170
+ </array>
171
+ ${envBlock} <key>RunAtLoad</key>
172
+ <true/>
173
+ <key>KeepAlive</key>
174
+ <true/>
175
+ <key>StandardOutPath</key>
176
+ <string>${escapeXml(logPath)}</string>
177
+ <key>StandardErrorPath</key>
178
+ <string>${escapeXml(logPath)}</string>
179
+ </dict>
180
+ </plist>
181
+ `;
182
+ };
183
+ const buildLaunchdPath = (nodeDir) => [nodeDir, "/opt/homebrew/bin", "/usr/local/bin", "/usr/bin", "/bin"].join(":");
184
+ const isLaunchdServiceLoaded = (uid, label) => {
185
+ const result = spawnSync("launchctl", ["print", `gui/${uid}/${label}`], {
186
+ encoding: "utf8",
187
+ });
188
+ return result.status === 0;
189
+ };
190
+ const runSystemdSetup = async () => {
143
191
  const systemctlCheck = spawnSync("systemctl", ["--user", "--version"], {
144
192
  encoding: "utf8",
145
193
  });
@@ -227,6 +275,116 @@ const runSetupWizard = async () => {
227
275
  console.log(`Env file: ${envPath}`);
228
276
  console.log(`Unit file: ${unitPath}`);
229
277
  };
278
+ const runLaunchdSetup = async () => {
279
+ const rawUid = process.getuid?.();
280
+ if (typeof rawUid !== "number") {
281
+ die("Unable to determine user id for launchd setup.");
282
+ return;
283
+ }
284
+ const uid = rawUid;
285
+ const homeDir = os.homedir();
286
+ const envPath = path.join(homeDir, ".config", "opencode-telegram-bridge", "opencode-telegram-bridge.env");
287
+ const bridgeLabel = "com.opencode.telegram-bridge";
288
+ const opencodeLabel = "com.opencode.server";
289
+ const plistPath = path.join(homeDir, "Library", "LaunchAgents", `${bridgeLabel}.plist`);
290
+ const installOpencode = await confirmAnswer("Set up OpenCode server as a launchd agent?", false);
291
+ const opencodePlistPath = path.join(homeDir, "Library", "LaunchAgents", `${opencodeLabel}.plist`);
292
+ const existingPaths = [envPath, plistPath];
293
+ if (installOpencode) {
294
+ existingPaths.push(opencodePlistPath);
295
+ }
296
+ if (existingPaths.some((filePath) => fs.existsSync(filePath))) {
297
+ const overwrite = await confirmAnswer("Existing config found. Overwrite?", false);
298
+ if (!overwrite) {
299
+ die("Setup cancelled.");
300
+ }
301
+ }
302
+ const opencodePath = installOpencode ? resolveOpencodePath() : null;
303
+ const botToken = await readSecret("TELEGRAM_BOT_TOKEN", { required: true });
304
+ const allowedUserId = await readAnswer("TELEGRAM_ALLOWED_USER_ID", {
305
+ required: true,
306
+ });
307
+ if (!Number.isInteger(Number(allowedUserId))) {
308
+ throw new Error("TELEGRAM_ALLOWED_USER_ID must be an integer");
309
+ }
310
+ const serverUrl = await readAnswer("OPENCODE_SERVER_URL", {
311
+ defaultValue: "http://127.0.0.1:4096",
312
+ });
313
+ const serverUsername = await readAnswer("OPENCODE_SERVER_USERNAME", {
314
+ defaultValue: "opencode",
315
+ });
316
+ const serverPassword = await readSecret("OPENCODE_SERVER_PASSWORD", {});
317
+ const opencodeRestartCommand = installOpencode
318
+ ? `launchctl kickstart -k gui/${uid}/${opencodeLabel}`
319
+ : await readAnswer("OPENCODE_RESTART_COMMAND", {});
320
+ const opencodeRestartTimeoutMs = opencodeRestartCommand ? "30000" : "";
321
+ const bridgeRestartCommand = `launchctl kickstart -k gui/${uid}/${bridgeLabel}`;
322
+ const { nodePath, cliPath } = resolveExecStart();
323
+ const envValues = {
324
+ TELEGRAM_BOT_TOKEN: botToken,
325
+ TELEGRAM_ALLOWED_USER_ID: allowedUserId,
326
+ OPENCODE_SERVER_URL: serverUrl,
327
+ OPENCODE_SERVER_USERNAME: serverUsername,
328
+ OPENCODE_SERVER_PASSWORD: serverPassword,
329
+ OPENCODE_PROMPT_TIMEOUT_MS: "600000",
330
+ TELEGRAM_HANDLER_TIMEOUT_MS: "630000",
331
+ OPENCODE_RESTART_COMMAND: opencodeRestartCommand,
332
+ OPENCODE_RESTART_TIMEOUT_MS: opencodeRestartTimeoutMs,
333
+ OPENCODE_BRIDGE_RESTART_COMMAND: bridgeRestartCommand,
334
+ OPENCODE_BRIDGE_RESTART_TIMEOUT_MS: "30000",
335
+ };
336
+ writeEnvFile(envPath, envValues);
337
+ const logPath = path.join(homeDir, "Library", "Logs", "opencode-telegram-bridge.log");
338
+ const plist = buildLaunchdPlist({
339
+ label: bridgeLabel,
340
+ programArguments: [nodePath, cliPath],
341
+ env: envValues,
342
+ logPath,
343
+ });
344
+ writePlistFile(plistPath, plist);
345
+ if (installOpencode && opencodePath) {
346
+ const nodeDir = path.dirname(nodePath);
347
+ const opencodeLogPath = path.join(homeDir, "Library", "Logs", "opencode-server.log");
348
+ const opencodePlist = buildLaunchdPlist({
349
+ label: opencodeLabel,
350
+ programArguments: [opencodePath, "serve"],
351
+ env: {
352
+ PATH: buildLaunchdPath(nodeDir),
353
+ },
354
+ logPath: opencodeLogPath,
355
+ });
356
+ writePlistFile(opencodePlistPath, opencodePlist);
357
+ }
358
+ if (isLaunchdServiceLoaded(uid, bridgeLabel)) {
359
+ runCommand("launchctl", ["bootout", `gui/${uid}`, plistPath]);
360
+ }
361
+ runCommand("launchctl", ["bootstrap", `gui/${uid}`, plistPath]);
362
+ runCommand("launchctl", ["enable", `gui/${uid}/${bridgeLabel}`]);
363
+ runCommand("launchctl", ["kickstart", "-k", `gui/${uid}/${bridgeLabel}`]);
364
+ if (installOpencode) {
365
+ if (isLaunchdServiceLoaded(uid, opencodeLabel)) {
366
+ runCommand("launchctl", ["bootout", `gui/${uid}`, opencodePlistPath]);
367
+ }
368
+ runCommand("launchctl", ["bootstrap", `gui/${uid}`, opencodePlistPath]);
369
+ runCommand("launchctl", ["enable", `gui/${uid}/${opencodeLabel}`]);
370
+ runCommand("launchctl", ["kickstart", "-k", `gui/${uid}/${opencodeLabel}`]);
371
+ }
372
+ console.log("Setup complete. Service is running.");
373
+ console.log(`Env file: ${envPath}`);
374
+ console.log(`Launch agent: ${plistPath}`);
375
+ console.log("Services start on login. Use a LaunchDaemon for boot-time start.");
376
+ };
377
+ const runSetupWizard = async () => {
378
+ if (process.platform === "linux") {
379
+ await runSystemdSetup();
380
+ return;
381
+ }
382
+ if (process.platform === "darwin") {
383
+ await runLaunchdSetup();
384
+ return;
385
+ }
386
+ die("Setup supports Linux systemd and macOS launchd only.");
387
+ };
230
388
  const command = process.argv[2];
231
389
  if (!command) {
232
390
  runBot();
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -12,13 +12,13 @@ Set these environment variables in your shell or service environment.
12
12
  - `OPENCODE_SERVER_PASSWORD` - Basic auth password.
13
13
  - `OPENCODE_PROMPT_TIMEOUT_MS` - Prompt timeout in milliseconds (default: 600000).
14
14
  - `TELEGRAM_HANDLER_TIMEOUT_MS` - Telegraf handler timeout in milliseconds (default: prompt timeout + 30000).
15
- - `OPENCODE_RESTART_COMMAND` - Command to restart OpenCode when `/reboot` is used (example: `systemctl --user restart opencode --no-block`).
15
+ - `OPENCODE_RESTART_COMMAND` - Command to restart OpenCode when `/reboot` is used (example: `systemctl --user restart opencode --no-block` or `launchctl kickstart -k gui/$UID/com.opencode.server`).
16
16
  - `OPENCODE_RESTART_TIMEOUT_MS` - Restart command timeout in milliseconds (default: 30000).
17
- - `OPENCODE_BRIDGE_RESTART_COMMAND` - Command to restart the Telegram bridge when `/restart` is used (example: `systemctl --user restart opencode-telegram-bridge --no-block`).
17
+ - `OPENCODE_BRIDGE_RESTART_COMMAND` - Command to restart the Telegram bridge when `/restart` is used (example: `systemctl --user restart opencode-telegram-bridge --no-block` or `launchctl kickstart -k gui/$UID/com.opencode.telegram-bridge`).
18
18
  - `OPENCODE_BRIDGE_RESTART_TIMEOUT_MS` - Restart command timeout in milliseconds (default: 30000).
19
19
 
20
20
  ## Data storage
21
21
  - Project aliases and chat selections are stored in `~/.opencode-telegram-bridge/projects.db`.
22
22
 
23
- ## systemd user service
24
- The setup wizard writes a user service env file at `~/.config/opencode-telegram-bridge/opencode-telegram-bridge.env`.
23
+ ## service env file
24
+ The setup wizard writes the service env file at `~/.config/opencode-telegram-bridge/opencode-telegram-bridge.env`.
package/docs/index.md CHANGED
@@ -9,3 +9,4 @@ Start here:
9
9
  - Configuration
10
10
  - Usage
11
11
  - Systemd
12
+ - Launchd
@@ -10,12 +10,16 @@
10
10
  npm install -g opencode-telegram-bridge
11
11
  ```
12
12
 
13
- ## Setup (Linux systemd)
13
+ ## Setup (Linux systemd / macOS launchd)
14
14
  ```bash
15
15
  opencode-telegram-bridge setup
16
16
  ```
17
17
 
18
- The wizard can also set up OpenCode as a user service. Setup currently supports Linux systemd only. On other platforms, run the bot manually.
18
+ The wizard can also set up OpenCode as a user service. It supports Linux systemd and macOS launchd.
19
+
20
+ See:
21
+ - [systemd](systemd.md)
22
+ - [launchd](launchd.md)
19
23
 
20
24
  ## Run the bot
21
25
  ```bash
@@ -0,0 +1,90 @@
1
+ # launchd Service (macOS user)
2
+
3
+ This project ships launchd templates in `launchd/` for manual setup on macOS.
4
+
5
+ ## Recommended: setup wizard
6
+ ```bash
7
+ opencode-telegram-bridge setup
8
+ ```
9
+
10
+ This is the recommended path. It writes the launchd plist and env file for your
11
+ machine and starts the service for you.
12
+
13
+ ## Advanced: manual install
14
+ Only use this if you cannot run the wizard. It is easy to misconfigure paths
15
+ or environment values and end up with a service that does not start.
16
+
17
+ 1. Install the package:
18
+
19
+ ```bash
20
+ npm install -g opencode-telegram-bridge
21
+ ```
22
+
23
+ 2. Locate the installed package so you can copy the bundled launchd files:
24
+
25
+ ```bash
26
+ npm root -g
27
+ ```
28
+
29
+ The launchd templates live at:
30
+
31
+ ```text
32
+ <npm root -g>/opencode-telegram-bridge/launchd/
33
+ ```
34
+
35
+ 3. Copy the launchd plist:
36
+
37
+ ```bash
38
+ mkdir -p ~/Library/LaunchAgents
39
+ cp "$(npm root -g)/opencode-telegram-bridge/launchd/opencode-telegram-bridge.plist" \
40
+ ~/Library/LaunchAgents/com.opencode.telegram-bridge.plist
41
+ ```
42
+
43
+ 4. Edit the plist:
44
+
45
+ - Replace `/path/to/node` with `command -v node`.
46
+ - Replace `/path/to/opencode-telegram-bridge/dist/cli.js` with:
47
+
48
+ ```bash
49
+ echo "$(npm root -g)/opencode-telegram-bridge/dist/cli.js"
50
+ ```
51
+
52
+ - Replace `REPLACE_ME` values with your Telegram credentials.
53
+ - Replace `~/Library/Logs/...` with absolute paths (launchd does not expand `~`).
54
+
55
+ 5. Load and start:
56
+
57
+ ```bash
58
+ launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.opencode.telegram-bridge.plist
59
+ launchctl enable gui/$(id -u)/com.opencode.telegram-bridge
60
+ launchctl kickstart -k gui/$(id -u)/com.opencode.telegram-bridge
61
+ ```
62
+
63
+ ## Optional: OpenCode server agent
64
+ If you want `opencode serve` to run as a launchd agent too:
65
+
66
+ ```bash
67
+ cp "$(npm root -g)/opencode-telegram-bridge/launchd/opencode-server.plist" \
68
+ ~/Library/LaunchAgents/com.opencode.server.plist
69
+ ```
70
+
71
+ Edit the plist:
72
+ - Replace `/path/to/opencode` with `command -v opencode`.
73
+ - Replace `/path/to/node/dir` with `dirname "$(command -v node)"`.
74
+ - Replace `~/Library/Logs/...` with absolute paths.
75
+
76
+ Then load and start:
77
+
78
+ ```bash
79
+ launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.opencode.server.plist
80
+ launchctl enable gui/$(id -u)/com.opencode.server
81
+ launchctl kickstart -k gui/$(id -u)/com.opencode.server
82
+ ```
83
+
84
+ ## Logs
85
+ ```bash
86
+ tail -f ~/Library/Logs/opencode-telegram-bridge.log
87
+ ```
88
+
89
+ ## Start on boot (optional)
90
+ LaunchAgents start on login. To start before login, use a LaunchDaemon (requires sudo).
package/docs/systemd.md CHANGED
@@ -1,6 +1,7 @@
1
1
  # systemd Service (Linux user)
2
2
 
3
3
  This project ships a user systemd unit template in `systemd/opencode-telegram-bridge.service`.
4
+ On macOS, use the [launchd](launchd.md) guide instead.
4
5
 
5
6
  ## Recommended: setup wizard
6
7
  ```bash
@@ -0,0 +1,26 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>Label</key>
6
+ <string>com.opencode.server</string>
7
+ <key>ProgramArguments</key>
8
+ <array>
9
+ <string>/path/to/opencode</string>
10
+ <string>serve</string>
11
+ </array>
12
+ <key>EnvironmentVariables</key>
13
+ <dict>
14
+ <key>PATH</key>
15
+ <string>/path/to/node/dir:/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin</string>
16
+ </dict>
17
+ <key>RunAtLoad</key>
18
+ <true/>
19
+ <key>KeepAlive</key>
20
+ <true/>
21
+ <key>StandardOutPath</key>
22
+ <string>~/Library/Logs/opencode-server.log</string>
23
+ <key>StandardErrorPath</key>
24
+ <string>~/Library/Logs/opencode-server.log</string>
25
+ </dict>
26
+ </plist>
@@ -0,0 +1,38 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>Label</key>
6
+ <string>com.opencode.telegram-bridge</string>
7
+ <key>ProgramArguments</key>
8
+ <array>
9
+ <string>/path/to/node</string>
10
+ <string>/path/to/opencode-telegram-bridge/dist/cli.js</string>
11
+ </array>
12
+ <key>EnvironmentVariables</key>
13
+ <dict>
14
+ <key>TELEGRAM_BOT_TOKEN</key>
15
+ <string>REPLACE_ME</string>
16
+ <key>TELEGRAM_ALLOWED_USER_ID</key>
17
+ <string>REPLACE_ME</string>
18
+ <key>OPENCODE_SERVER_URL</key>
19
+ <string>http://127.0.0.1:4096</string>
20
+ <key>OPENCODE_SERVER_USERNAME</key>
21
+ <string>opencode</string>
22
+ <key>OPENCODE_SERVER_PASSWORD</key>
23
+ <string></string>
24
+ <key>OPENCODE_PROMPT_TIMEOUT_MS</key>
25
+ <string>600000</string>
26
+ <key>TELEGRAM_HANDLER_TIMEOUT_MS</key>
27
+ <string>630000</string>
28
+ </dict>
29
+ <key>RunAtLoad</key>
30
+ <true/>
31
+ <key>KeepAlive</key>
32
+ <true/>
33
+ <key>StandardOutPath</key>
34
+ <string>~/Library/Logs/opencode-telegram-bridge.log</string>
35
+ <key>StandardErrorPath</key>
36
+ <string>~/Library/Logs/opencode-telegram-bridge.log</string>
37
+ </dict>
38
+ </plist>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-telegram-bridge",
3
- "version": "1.2.2",
3
+ "version": "1.2.3",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -11,6 +11,7 @@
11
11
  "dist/",
12
12
  "docs/",
13
13
  "systemd/",
14
+ "launchd/",
14
15
  ".env.example",
15
16
  "README.md"
16
17
  ],