I daily-drive Linux (Arch, x86_64) and want to run the Houston desktop app
natively. Today pnpm tauri dev works on Linux for development, but there is no packaged/distributable Linux build and the bundled-CLI + release path is
macOS/Windows only, so a non-dev Linux user can't install and use Houston.
Current state
The engine Rust layer is already Linux-clean, so the gap is entirely in the
distribution*layer:
Already working:
- The platform matrix lists x86_64-unknown-linux-gnu as inheriting the Unix
code paths. PTY, file watcher, and the PATH / home / symlink primitives all
have Unix branches.
- host_platform_key() already returns "linux-x64" and "linux-arm64" (see
engine/houston-cli-bundle/src/lib.rs, around line 349), and the unit test
already expects those values.
Still missing:
- Tauri bundle targets are only app, dmg, and msi. There is no appimage or deb
(app/src-tauri/tauri.conf.json).
- cli-deps.json has no Linux URLs or checksums for codex, claude-code, or
composio. On Linux the runtime installer computes "linux-x64" and then fails
with "no claude-code URL for platform 'linux-x64'".
- scripts/fetch-cli-deps.sh has no Linux mode (only darwin and windows).
- The release workflow has only build-macos and build-windows jobs. There is no Linux job and no Linux entry in the updater manifest (latest.json).
Proposed scope for v1
Target Linux x86_64 only, shipping an AppImage plus a .deb. The plan mirrors how Windows support was added (the "Wave 2" work documented in platform-matrix.md and cli-bundling.md).
-
Tauri bundle. Add appimage and deb to the bundle targets for Linux.
AppImage is portable across distros, .deb covers Debian and Ubuntu users.
-
CLI dependencies (cli-deps.json). Add the Linux x64 URLs and checksums.
All three are confirmed to exist upstream today (checked against codex 0.130.0,
composio 0.2.24, and claude-code 2.1.158):
- codex ships Linux as musl only (codex-x86_64-unknown-linux-musl.tar.gz).
There is no glibc tarball, but the musl build is statically linked, so it is actually more portable across distros. Bundle it the same way as on macOS.
- composio publishes composio-linux-x64.zip (and an aarch64 zip) directly. No
fork is needed, which makes Linux simpler than the Windows path. Bundle the
per-arch directory like on macOS.
- claude-code exposes linux-x64 and linux-arm64 in its distribution manifest.
The runtime download path already handles it once the URL is added.
-
Fetch script (fetch-cli-deps.sh). Add a linux-x64 mode: download the
codex musl tarball, stage the composio directory, prune the cross-arch adapters, and stage cli-deps.json. No lipo step and no code-signing step (Linux has no notarization).
-
Release workflow. Add a build-linux job on an Ubuntu runner that installs
the Tauri Linux dependencies (libwebkit2gtk and friends), runs the fetch script
in linux-x64 mode, builds with Tauri, uploads the AppImage and .deb, and adds a linux-x86_64 entry to latest.json with its minisign signature. The updater
signing key is already cross-platform.
-
Docs. Add a Linux section to platform-matrix.md and cli-bundling.md,
following the existing Windows write-up, as the contribution protocol requires.
Also I will be looking foward to help with the website update so users can download the Linux desktop app from the browser.
I daily-drive Linux (Arch, x86_64) and want to run the Houston desktop app
natively. Today pnpm tauri dev works on Linux for development, but there is no packaged/distributable Linux build and the bundled-CLI + release path is
macOS/Windows only, so a non-dev Linux user can't install and use Houston.
Current state
The engine Rust layer is already Linux-clean, so the gap is entirely in the
distribution*layer:
Already working:
code paths. PTY, file watcher, and the PATH / home / symlink primitives all
have Unix branches.
engine/houston-cli-bundle/src/lib.rs, around line 349), and the unit test
already expects those values.
Still missing:
(app/src-tauri/tauri.conf.json).
composio. On Linux the runtime installer computes "linux-x64" and then fails
with "no claude-code URL for platform 'linux-x64'".
Proposed scope for v1
Target Linux x86_64 only, shipping an AppImage plus a .deb. The plan mirrors how Windows support was added (the "Wave 2" work documented in platform-matrix.md and cli-bundling.md).
Tauri bundle. Add appimage and deb to the bundle targets for Linux.
AppImage is portable across distros, .deb covers Debian and Ubuntu users.
CLI dependencies (cli-deps.json). Add the Linux x64 URLs and checksums.
All three are confirmed to exist upstream today (checked against codex 0.130.0,
composio 0.2.24, and claude-code 2.1.158):
There is no glibc tarball, but the musl build is statically linked, so it is actually more portable across distros. Bundle it the same way as on macOS.
fork is needed, which makes Linux simpler than the Windows path. Bundle the
per-arch directory like on macOS.
The runtime download path already handles it once the URL is added.
Fetch script (fetch-cli-deps.sh). Add a linux-x64 mode: download the
codex musl tarball, stage the composio directory, prune the cross-arch adapters, and stage cli-deps.json. No lipo step and no code-signing step (Linux has no notarization).
Release workflow. Add a build-linux job on an Ubuntu runner that installs
the Tauri Linux dependencies (libwebkit2gtk and friends), runs the fetch script
in linux-x64 mode, builds with Tauri, uploads the AppImage and .deb, and adds a linux-x86_64 entry to latest.json with its minisign signature. The updater
signing key is already cross-platform.
Docs. Add a Linux section to platform-matrix.md and cli-bundling.md,
following the existing Windows write-up, as the contribution protocol requires.
Also I will be looking foward to help with the website update so users can download the Linux desktop app from the browser.