richardcase / richardcase/clowder

M8 — Linux support

Open
#56 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement priority: medium rust
Dominant language
Rust
Stars
0
Forks
0
Avg merge
1h 14m
Merged PRs (30d)
16

Description

Context

clowder is macOS-centric today: the frontend is a SwiftUI app embedding libghostty (macos/), and packaging/signing/Homebrew are all macOS. The Rust core is cross-platform in principle:

  • clowder-daemon (agent PTYs, control/hook sockets, worktrees) — Rust + portable-pty + unix sockets; likely portable to Linux with modest work.
  • clowder CLI (clowder attach, clowder connect, spawn) — Rust, raw-mode terminal; likely portable.
  • The macOS app is the hard part — there is no equivalent on Linux.

The M7 remote-daemon spec gestured at this (docs/superpowers/specs/2026-07-31-clowder-m7-remote-daemon-design.md, "the M8 Linux …" is listed as out-of-scope/future).

Needs scoping (its own brainstorm first)

This is a large, new direction that should be decomposed before committing to a plan. Open questions:

  • Frontend on Linux: no SwiftUI/libghostty app. Options: (a) a pure-CLI / terminal-multiplexer client (run clowder attach <pane> panes inside tmux/zellij or a plain terminal), (b) a native Linux GUI embedding ghostty's GTK path, (c) rely on the M7 remote path — a Linux box runs clowder-daemon, the user drives it from the macOS app over TLS (already shipped in M7d, #53).
  • Daemon portability: audit clowder-daemon/clowder-client/clowder-workspace for macOS-isms (paths, signals, PTY specifics); confirm the socket/runtime-dir logic ($XDG_RUNTIME_DIR already handled) and worktree provisioning work on Linux.
  • CI/packaging: a Linux job (currently CI is runs-on: macos-15 only) + a Linux distribution story.

First step

Brainstorm → decompose into sub-projects (which pieces, what order), then spec → plan → SDD per slice. The cheapest early win may be (c): verify the Rust daemon builds+runs on Linux and is drivable from the existing macOS app via the M7d remote transport, deferring a native Linux frontend.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Read the M7 remote-daemon design in docs/superpowers/specs/2026-07-31-clowder-m7-remote-daemon-design.md, then audit clowder-daemon, clowder-client, and clowder-workspace for Linux portability. Verify whether the Rust daemon builds and runs on Linux and can use the existing M7d remote transport; done for this issue means decomposed sub-projects with an agreed order before slice-specific specs and plans.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust, swift
Domain
cli, desktop, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.