Prefect for iOS

Files
README.md

prefect-ios #

an iOS client for open-source Prefect servers: is anything wrong, what is waiting on you, and what a run did. built with Expo and React Native against prefect-server, and speaks the same /api as upstream Prefect 3.

install #

needs bun and Xcode.

bun install
bunx expo run:ios      # build and open in the simulator

use #

add a server by its URL, with basic auth, an API key, or neither. home is the server's health, runs is every flow run, and a run that pauses can be resumed, answered or cancelled from the app or from its notification.

design #

  • the upstream API, nothing server-side — any Prefect 3 server works without installing anything on it; src/api.ts is the only place that knows endpoints.
  • many servers — a person runs more than one, so every query is keyed by server and credentials stay in the keychain.
  • the flow decides what a waiting run shows — the app renders the run's own markdown and input schema rather than knowing any flow by name.
  • pushes come from a relay — prefect-push watches the server and talks to APNs, because Expo's push service cannot start a live activity.
  • releases are built on a Mac — CI runs on a Linux spindle, so it checks and scripts/ship-ios builds and submits.

develop #

bun run check             # types, lint, unit tests
bunx expo start --web     # rough preview in a browser
bun run ship:ios          # check, build locally, submit to TestFlight
bun run ship:ios:status   # where that ship is

ios/ is generated by expo prebuild and ignored; native config lives in app.json.

docs #

docs/ holds the design rules, notification and release detail, what is not built yet, and screens from the simulator.