All documentation

Destinations

Your Mac

Receive, store, chart and query your data on a Mac.

Format
NDJSON
Port
54330
Needs
Both devices on one network

The Mac app receives batches over your network, stores them in SQLite, charts them, and serves them through MCP.

Setting it up#

  1. Open Hozz on the Mac#

    Download the signed, notarized DMG (macOS 14+). Drag Hozz to Applications, eject the disk image, then launch.

    It listens on 54330 and advertises _hozz._tcp.

  2. On the iPhone, add a destination#

    Pick it under Your computers.

  3. Test it#

    Hozz fills the address and token. Use Send a test.

How the phone finds the Mac#

  1. Bonjour: the normal path.
  2. iCloud Keychain: when available, it can sync the pairing token between devices on one Apple ID.
  3. Local sweep: a private /24 on port 54330 when mDNS fails.

Authentication#

Deliveries require an Authorization token. GET / and POST /pair are unauthenticated. Wrong or missing delivery tokens return 401.

A GET identifies the receiver:

Checking the receiver is up
# Point a browser or curl at the Mac, on the same network:
curl http://your-mac.local:54330/

{"service":"hozz-receiver","ready":true,"name":"Brandon's Mac"}

If the local network will not cooperate#

Guest, isolated and corporate networks may block device-to-device traffic. Use the folder watcher instead.

Point both apps at the same synced folder. The Mac ingests NDJSON, JSON, CSV and Metrics JSON.

What the Mac app does with it#

Received batches go into hozz-received.sqlite.

The app has four tabs:

  • Connect — the receiver, the folder watcher, the token, and per-device status based on when data last actually arrived.
  • Data — coverage, characteristics, charts and CSV export.
  • Assistant — the MCP configuration to copy into an assistant.
  • Activity — accepted, duplicate, paired, test and rejected deliveries.

A dependency-free alternative#

A dependency-free Python receiver lives in receiver/. Your own endpoint documents the protocol.