Sparrow connect · v0.38
0 ⌘K
✦ sparrow.app · native companion · v0.6

A second ✦ in the menu bar
that pulses when new blocks land.

Sparrow.app is a small macOS menu-bar app that polls /sparrow/api/latest.json at a cadence you choose, shows the latest block and a "new since last open" count, and posts a Notification Center alert when fresh broadcasts arrive. No Dock icon, no Cmd-Tab entry — just in the status bar, same glyph as the hosted HUD.

✦ what it does
✦ build + run
  1. one

    Clone or download the source

    github.com/mhoydich/sparrow-app — self-contained Swift package, no external dependencies.

  2. two

    Build with Xcode or SPM

    open Package.swift for a proper bundled .app (recommended), or swift run SparrowApp for a quick menu-bar-visible test from the terminal.

  3. three

    Grant notification permission

    On first run macOS asks once. Decline safely — the app still works, it just stops posting alerts.

  4. four

    Open Preferences if you want

    ⌘, from the menu. Feed URL defaults to https://pointcast.xyz/sparrow/api/latest.json; change it if you're running a fork.

cd sparrow-app
open Package.swift       # Xcode — recommended, signs + bundles
# or
swift run SparrowApp     # terminal — live menu-bar item, no bundle

Tiny package — one executable target, one Resources/Info.plist, about 500 lines of Swift split across seven files. Reads in one sitting. Source: mhoydich/sparrow-app.

✦ the feed it polls

The endpoint at /sparrow/api/latest.json is a polling-shaped companion to the Atom feed: snake_case keys, summary-only fields, last 24 blocks, cache-friendly. The native app decodes it directly into the same Block struct the menu bar renders.

{
  "total": 186,
  "updated_at": "2026-04-21T...",
  "window": 24,
  "origin": "https://pointcast.xyz",
  "blocks": [
    {
      "id": "0362",
      "title": "AgarChat — instant messenger meets agar.io",
      "dek": "...",
      "channel": "FD",
      "type": "LINK",
      "mood": null,
      "timestamp": "2026-04-21T12:00:00-08:00",
      "author": "mh+cc",
      "url": "/b/0362",
      "sparrow_url": "/sparrow/b/0362"
    }
  ]
}