Run coding agents on your own always-on Macs and Linux hosts.
Follow the work from native Mac, iPhone, iPad and Android apps.
Open source. Self-hostable.
Website · Documentation · Product tour · Downloads
Dieter is a workspace for coding agents (Codex, Claude Code, Pi, Oh My Pi and DeepSeek Harness) that run on your own machines. A small daemon starts each agent beside your Git checkout, with your tools and your provider accounts, and keeps it running when you close the app or put your laptop to sleep. Native apps bring every machine's boards, conversations, files, terminals and screens into one place, so you can start a task on your Mac, let a Linux workstation do it, and review the result from your phone.
- Durable tasks. Boards, standalone chats, labels and schedules; every task keeps one conversation you can continue at any time.
- Many machines, one project. Check out the same project on several hosts; each conversation runs on the machine you choose.
- Review in place. Files, Git changes, terminals, background processes and an authenticated remote screen, next to the conversation.
- Your infrastructure. The relay gateway is self-hostable, never stores code, transcripts or provider credentials, and relays only end-to-end encrypted connections between your devices.
- Automatable. The
dieterCLI does everything the apps do, locally or on any enrolled machine.
Dieter is pre-1.0 and moves quickly. The daemon, gateway and apps ship as one version, and the gateway rejects clients and daemons that are too old, so update all of them together. Breaking changes are listed in the changelog.
| Platform | Install |
|---|---|
| macOS 26+ (Apple Silicon) | brew install dbpprt/tap/dieter (daemon and CLI), brew install --cask dbpprt/tap/dieter-app (app) |
| Linux amd64/arm64 | curl -fsSL https://github.com/dbpprt/dieter/releases/latest/download/install.sh | sh (needs cosign) |
| Android 8+ | Dieter-Android.apk |
| iPhone and iPad (iOS 18+) | TestFlight beta; see installation |
| From source | just setup && just build; see docs/building.md |
Daemon hosts need Node.js 22.19+, Git and a configured agent account. Release daemons install a prebuilt, checksum-pinned harness runtime that already contains Claude Code, Codex, Pi and OMP, so they need no npm; npm is needed only to build from source and for the DSH harness. Release checksums are signed; see verifying releases.
Run a daemon on its own, without an account, and drive it from the CLI:
dieter serve & # local daemon on 127.0.0.1:4242
project=$(dieter project open ~/src/my-project --format id)
chat=$(dieter chat create --project "$project" --auto-title --workspace worktree \
--lane running --prompt "Explain the test setup" --format id)
dieter chat watch "$chat"To reach your machines from the apps, enroll each host with a gateway instead.
dieter setup signs in with GitHub, enrolls the machine and installs the
background service. It defaults to https://gateway.getdieter.com, which admits
only allowlisted accounts; pass --gateway https://YOUR-GATEWAY for
your own gateway.
dieter setup
dieter project open ~/src/my-project
open -a Dieter # sign in to the same gatewayThe first machine starts your account's trusted devices and prints a recovery
key; keep it offline. Each app or further machine then shows a one-time code:
type it on a device you already trust (dieter device approve CODE).
The quick start guide walks through the first task in the apps.
A Go daemon runs agents next to your checkouts and replicates shared project metadata with your other daemons; a Go gateway authenticates accounts and machines and relays end-to-end encrypted traffic when no direct route exists; the native apps share one Kotlin core, with a Compose UI on Android and iOS and SwiftUI on macOS. Agents run unsandboxed with your user's permissions. Read the architecture and the security model.
- User guides: installation, projects and tasks, machines, screens, vault, CLI, self-hosting, troubleshooting
- CLI reference and environment variables
- Contributor docs: architecture, invariants, threat model, building, testing, releasing
Archiving retains worktrees by default. Enable Delete worktrees when archiving
in project settings, or use dieter project update --delete-worktrees-on-archive=true PROJECT,
to reclaim clean, idle archived worktrees. The setting includes existing archives;
branches and history remain, but ignored files and build output are deleted.
Restore recreates committed files only. See archive storage.
Contributions are welcome. Read CONTRIBUTING.md (commits need a DCO sign-off) and the code of conduct. Report security issues privately as described in SECURITY.md.
Dieter is MIT-licensed. The name and logo are trademarks; see TRADEMARKS.md. Third-party components are listed in THIRD_PARTY_NOTICES.md. Pronounced DEE-ter.



