Docs/Installation

Installation

Install a signed Linux daemon service, use Homebrew on Apple Silicon, or build from source.


Dieter supports headless Linux daemon hosts and Apple Silicon macOS. The native viewer clients are available for macOS and Android.

Requirements

  • Go 1.26.8 or newer (source builds)
  • Node.js 22.19 or newer on each daemon host
  • Git working trees for registered projects
  • One configured harness login or API key
  • macOS 26+ or Android 8+ for the official clients
  • systemd user manager and cosign for managed Linux installation and updates

The first agent turn installs the exact JavaScript harness runtime from internal/harness/runtime/package-lock.json under DIETER_HOME.

Install the daemon

On Linux amd64/arm64, install cosign and run:

curl -fsSL https://github.com/dbpprt/dieter/releases/latest/download/install.sh | sh
dieter setup
dieter project open ~/Development/my-project
dieter doctor

The installer verifies the GitHub OIDC Sigstore signature and archive checksum, then installs a private systemd user service when available. Linux hosts support agents, projects, schedules, terminals, remote execution, telemetry, power operations, and rollback-capable updates. Screen hosting requires an active X11 or Wayland desktop and the dependencies in the Linux host guide . Use --version, --install-dir, or --no-service when the defaults do not fit the host; install.sh --help documents their environment-variable equivalents.

On Apple Silicon macOS, Homebrew installs the daemon and app separately:

The formula includes the dieter CLI and local daemon:

brew install dbpprt/tap/dieter
dieter setup
dieter project open ~/Development/my-project

dieter setup enrolls the Mac and starts the daemon as a Homebrew service. It never registers a project; dieter project open PATH is the explicit registration step. Through that running service, setup guides the macOS Screen & System Audio Recording permission, proves the exact signed ScreenCaptureKit/VideoToolbox helper with one discarded frame, and guides and verifies Accessibility event-posting permission without moving or clicking the pointer. Screen sharing is automatically available after the required OS permissions are granted.

There is no screen-sharing enable switch. Unsupported/headless hosts report why screen sharing is unavailable. Re-run the standalone check at any time with:

dieter daemon permissions --check

The Mac app separately requires Accessibility and Screen Recording for Dieter.app. Its setup screen guides each grant and checks automatically when you return from System Settings. App grants and daemon grants are separate.

Install the Mac app

The cask installs Dieter.app:

brew install --cask dbpprt/tap/dieter-app
open -a Dieter

Sign in to the configured gateway. Dieter indexes every enrolled machine and shows all of their projects together. There is no machine picker to manage. The same workspace is available from Android.

Upgrading
brew upgrade dieter updates the daemon in place. When upgrading from the old manual LaunchAgent, dieter setup unloads it and preserves its plist with a .disabled suffix before starting the Homebrew-managed service.

Build from source

just build

This produces separate bin/dieter and bin/dieter-gateway executables. A normal daemon machine installs only dieter; the public host installs only dieter-gateway.

The macOS app builds via just mac build (producing apps/mac/build/Dieter.app); Android builds via just android build and installs with just android install.

Android

The Android client aggregates the same enrolled daemons and encrypts its gateway session with a device-bound Android Keystore key. It auto-updates by checking the latest dbpprt/dieter GitHub release for Dieter-Android.apk. See apps/android/README.md for platform builds.

Uninstall

Homebrew uninstall removes the service and binary but intentionally preserves DIETER_HOME, so your projects, conversations, and schedules survive a reinstall.

On Linux, dieter daemon service uninstall disables and removes the user unit while preserving the same data. Remove the installed CLI separately only after the service is gone.