caerule.
← Selected work

AuthCompanion

Touch ID and Apple Watch approvals for GPG signing and sudo on macOS, with inspectable setup and restoration of recorded configuration.

I built the Swift coordinator and maintain the GPG and PAM companion forks.

Platform
Swift · macOS · Apple Silicon and Intel
Release evidence
v0.1.2 · July 2026
Release validation
CI, strict concurrency and archive checks

User problem

GPG signing and sudo approval require different configuration and privilege levels. Developers need to know what setup will change, diagnose a partial failure and understand what restoration will do.

Implementation

The coordinator plans and runs the setup through versioned, machine-readable contracts. GPG and PAM behavior stays in the two independently installable companions, rather than being duplicated in the coordinator.

Passive planning exposes intended changes before execution. Inspection and diagnostics report the observed state, including partial failures. Restoring a recorded baseline is distinct from undoing only the last attempt.

Release and validation

The initial release included CI, stable JSON output and universal archive packaging. Its public validation record reports 39 passing tests, strict-concurrency compilation and rejection of tampered archives.

The project also participated in OpenAI Build Week 2026.

The test count describes the initial release record. The coordinator is original work; pinentry-companion and pam-companion are maintained forks. Current source can include later work.

Explore the authentication components

Authentication components

Select a component to inspect its role.
This is a design walkthrough, not a live authentication prompt.

The two companion tools remain independently installable.

Original Swift tool

AuthCompanion

Coordinates the two components through versioned machine-readable contracts, providing setup, restore and diagnostic commands.

Owns
The orchestration and visible suite outcome.
Boundary
Delegates authentication and component state to the tools that own them.
Inspect the source ↗