service install/uninstall: built-in cross-platform daemon setup #71
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally filed by @coilysiren on 2026-04-29T03:06:14Z - https://github.com/coilysiren/repo-recall/issues/31
The gap
Today the README's only documented daemon path is `brew services` (macOS only). Linux users have to write systemd units by hand. Windows users land on NSSM (a service-control-manager wrapper), which is the wrong primitive for this app — repo-recall is a single-user, loopback-only dashboard that consults user-scoped state (`~/.claude/projects/`, gh keyring, git working trees owned by the user). SCM services are system-scoped, run before login, run as a service identity by default, and don't load the user profile. That semantic mismatch caused real failures on a fresh Windows install: gh keyring inaccessible (DPAPI master keys not loaded), `git` refusing to operate (`safe.directory` ownership check), `APPDATA` unset, etc. Every workaround was downstream of "this thing wants to be a user agent, not a system service."
The macOS-side equivalent makes the framing clearer: `brew services` on macOS uses launchd user agents, not LaunchDaemons. A user agent runs only while that user is logged in, in their session, with their environment. That's exactly the semantic this app wants on every OS.
Proposal
Add `repo-recall service install` and `repo-recall service uninstall` subcommands. Platform-aware:
The Brew formula stays — it's still the lightest install on macOS — but `repo-recall service install` becomes the universal advice, with the formula running it under the hood.
Citations supporting Task Scheduler over Windows Services for this shape of app
Bonus, for the "what does brew-services actually mean" framing: Creating Launch Daemons and Agents | Apple Developer Archive — "A user agent is essentially identical to a daemon, but is specific to a given logged-in user and executes only while that user is logged in." That's the spec we want to hit on all three OSes.
Out of scope
Related: #29 (Windows install friction generally), #30 (scheduled auto-mode agents).