Skip to content

DarwinRelay 0.6.0

Choose a tag to compare

@dcierra dcierra released this 19 Aug 09:06
· 26 commits to main since this release

DarwinRelay 0.6.0

First public release of DarwinRelay, an independently maintained native macOS execution runtime for MCP agents.

DarwinRelay combines unrestricted local shell/filesystem authority, real PTYs and background jobs, persisted Codex history, a managed background Chrome workspace, and Accessibility-based native computer use behind one MCP surface.

Highlights

Independent public product identity

  • New DarwinRelay name, package, app bundle, LaunchAgent, Native Messaging and helper identifiers under io.github.dcierra.darwinrelay.
  • No runtime namespace uses the upstream maintainer or an OpenAI product namespace.
  • Original MIT attribution and inherited Git history are preserved; see UPSTREAM.md.
  • Maintainer commits were privacy-sanitized from a personal email to the GitHub noreply identity without discarding changes, authorship, dates, messages or topology.

Native macOS computer use

  • Accessibility-first observation and mutation with fingerprinted stale-safe AX refs.
  • Targeted AX query and coordinate-to-semantic hit testing.
  • ScreenCaptureKit screenshots, Vision OCR and visual waits.
  • Windows, dialogs, standard open/save panels and drag/drop.
  • Background PID-targeted input with verification and bounded foreground compatibility fallback.
  • Deterministic ui_sequence execution and independent virtual AI cursor.
  • Stable menu/helper/cursor signing identifiers for TCC continuity when a persistent Apple signing identity is available.

Isolated background Chrome by default

  • The browser installer now creates or reuses a dedicated signed-out Chrome profile named DarwinRelay by default.
  • First-time creation refuses to race Chrome's Local State: quit Chrome once, run the installer, then optionally use --open to reopen the correct profile.
  • Existing signed-in profiles require explicit --profile or --use-current-profile opt-in.
  • Uninstall never deletes the dedicated profile or its browsing data.
  • Stable public extension identity: pfhahlehpahegefejooendokpkklgmgd.
  • Managed DR tab pool keeps routine web automation in background reusable tabs.

Human + agent documentation

  • Human-facing README.md focuses on product value, installation, security and common workflows.
  • Root AGENTS.md gives coding agents the repository map, invariants, commands, CI expectations, signing/browser rules and release constraints.
  • docs/AGENT_OPERATIONS.md documents the complete runtime tool families and recommended operating order.
  • docs/ARCHITECTURE.md documents component/data flow and trust boundaries.
  • docs/DEVELOPMENT_MODEL.md defines the public canonical source model and maps the legacy private lineage to the sanitized public history.

Public OSS engineering

Public CI exposes four explicit checks rather than one opaque test job:

  • Static checks — syntax/native builds, integrity manifest and full-history gitleaks scan.
  • Core & protocol tests — MCP, HTTP/OAuth, PTY, federation, browser and adversarial coverage.
  • Desktop control tests — deterministic desktop protocol tests plus native fixture build/runtime boundary behavior.
  • Install & lifecycle tests — browser-profile installer, autostart, atomic deployment, singleton ownership and installer mock.

The release source tree passed all four GitHub-hosted macOS checks. SHA256SUMS verifies all 95 tracked regular source files.

Security posture

DarwinRelay is intentionally not a sandbox. A connected client can act with the effective authority of the macOS account running it, subject to normal macOS controls such as TCC, ACLs and sudo authentication. Read SECURITY.md before exposing the HTTP transport remotely.

The public repository has GitHub secret scanning, push protection, private vulnerability reporting and protected main status checks enabled.

Existing 0.5.x users / private lineage

The legacy private 0.5.x installation is not a drop-in in-place upgrade to DarwinRelay 0.6.0. Rebranding changed bundle ids, environment prefixes, state paths, Chrome extension/native-host identity and LaunchAgent labels. Treat production migration as a separate cutover with rollback and new permission/browser verification. See docs/DEVELOPMENT_MODEL.md.

Installation artifact note

No prebuilt .app is attached. The current menu bundle intentionally embeds the local package path and should be built on the target Mac so its runtime path and signing/TCC identity are correct.