Happier Docs
Clients

Daemon

Run Happier in the background (sessions, remote control, headless servers).

What is the daemon?

The Happier daemon is a small background process that keeps Happier “available” on your machine.

In practice, it’s what enables Happier to start and manage sessions even when you don’t have a terminal open. This is especially important for features like remote start (e.g. from the app/web UI): the daemon is the thing on your computer that can receive that request and launch the session locally.

It also helps the CLI:

  • keep long-running sessions alive
  • reconnect to and manage existing sessions
  • support remote control / orchestration features without requiring your terminal to stay open

When does it run?

You can run it in two ways:

  • On-demand: start it when you need it (some CLI commands may start it automatically).
  • Always-on (recommended): install it as a user service so it starts automatically after login and keeps running in the background.

Why always-on is recommended:

  • It makes your machine ready to start sessions remotely at any time.
  • It avoids “why can’t I start a session?” situations where the daemon simply isn’t running yet.
  • It’s the smoothest experience on headless servers (or laptops you want to control remotely).

Common commands

happier daemon status
happier daemon start
happier daemon stop
happier daemon list
happier daemon logs

Always-on: install as a user service

Install for your current default server profile:

happier daemon install

Advanced lifecycle control (and dry-run planning):

happier daemon service status
happier daemon service install --dry-run
happier daemon service restart

Platform notes:

  • macOS: LaunchAgent
  • Linux: systemd --user
  • Windows: Scheduled Task (user-level)

To remove it:

happier daemon uninstall

On Windows, happier daemon service paths prints the Scheduled Task name and wrapper path.

Headless authentication (no TTY)

On headless servers (or anywhere you don’t have an interactive TTY), use:

happier auth login --no-open --method web

This prints an authorization URL and waits until you approve it in your browser (the request can expire; if it does, rerun the command).

If you have SSH access and want a fully automated experience (request + approval + credential write), run this from a machine where you're already authenticated:

happier auth pair-remote --ssh user@host --json

This is especially useful for provisioning headless servers because you can approve the connection from your already-signed-in machine and avoid copy/pasting URLs.

Troubleshooting

  • Check status: happier daemon status
  • Find logs: happier daemon logs
  • Service paths: happier daemon service paths

On this page