I've been recently using the CLI tool on Fedora and I noticed that the CLI doesn't support Linux, and it seems to just fallback to MacOS for compatibility, leading to errors like this because Linux does not support the open binary:
$ beeper targets start desktop
55 | ALLOW_MULTIPLE_INSTANCES: 'true',
56 | BEEPER_PROFILE: target.profile ?? target.id,
57 | BEEPER_USER_DATA_DIR: target.dataDir,
58 | }
59 | : process.env;
60 | spawn('open', args, { detached: true, stdio: 'ignore', env }).unref();
^
error: Executable not found in $PATH: "open"
path: "open",
errno: -2,
syscall: "spawn open",
spawnargs: [ "-n", "/usr/local/bin/beeper", "--args", "--no-enforce-app-location" ],
code: "ENOENT"
at spawn (node:child_process:667:35)
at spawn (node:child_process:14:39)
at launchDesktopApp (/home/mujtaba0150/.cache/beeper-cli/binary/7a07d52834cdc701/dist/lib/profiles.js:60:5)
at async run (/home/mujtaba0150/.cache/beeper-cli/binary/7a07d52834cdc701/dist/commands/targets/start.js:16:34)
at async _run (/home/mujtaba0150/.cache/beeper-cli/binary/7a07d52834cdc701/node_modules/@oclif/core/lib/command.js:183:33)
Bun v1.3.14 (Linux x64)
There is no code that checks for Linux in profiles.js:
export async function findDesktopAppPath() {
const installations = await readInstallations().catch(() => ({ desktop: undefined }));
if (installations.desktop?.path && await isBeeperDesktopApp(installations.desktop.path))
return installations.desktop.path;
if (process.platform === 'darwin') {
for (const path of [
'/Applications/Beeper.app',
'/Applications/Beeper Nightly.app',
]) {
if (await isBeeperDesktopApp(path))
return path;
}
}
if (process.platform === 'win32') {
const localAppData = process.env.LOCALAPPDATA ?? join(homedir(), 'AppData', 'Local');
const candidates = [
join(localAppData, 'Programs', 'Beeper', 'Beeper.exe'),
join(localAppData, 'Programs', 'Beeper Nightly', 'Beeper Nightly.exe'),
I've been recently using the CLI tool on Fedora and I noticed that the CLI doesn't support Linux, and it seems to just fallback to MacOS for compatibility, leading to errors like this because Linux does not support the open binary:
There is no code that checks for Linux in profiles.js: