Mast
A pager for iPhone, for when you are the on-call rotation.
A page repeats every two minutes until you acknowledge it. If you do not, it moves to one other phone. A job that stops checking in pages you too.
Mast is made by the people who run this platform. You create a channel in the app and it hands you a URL. From then on, anything that can make an HTTP request can page you: a deploy script, a backup job, a cron entry, the error handler in your API.
$ curl -d "disk 92% on db1" https://mast.tissue.dev/mk_9f2a41c8b7
$ curl -d "invoice run failed" -d priority=page https://mast.tissue.dev/mk_9f2a41c8b7
There is no account and no sign-up. Install Mast Pager from the App Store, allow notifications, and that is the whole setup. The phone is the credential, and the only secret is a channel's address.
will it wake me?
A page breaks through Focus, Sleep included. The ringer switch still wins; the app tells you when a page could go unheard. Three settings on the phone decide it, and all three belong to whoever is holding it: Mast allowed in the Focus you sleep under, Time Sensitive left on for Mast, and the ringer on. The line under the page tier in the app reads time sensitive · breaks through Focus once the first two are set, and turns amber with a button to fix it when they are not. Making a page wake you walks through each switch. Send yourself one before you rely on it.
how loud, channel by channel
Every message carries a priority, and the priority is what the notification does to the phone. The default comes from the channel; the sender can override it per message, as far as the ceiling the channel's owner set on their own phone. A key that leaks cannot promote itself to the pager tier.
Not team on-call software: no seats, no schedules, one escalation partner. Using Mast works through which level to reach for, with examples of what belongs on each, and covers ceilings, quiet hours, vitals and what acknowledgement means.
the watch bell
A channel can also be a vital: it alerts when the posts stop. Your cron job or backup script checks in on a schedule, anywhere from every five minutes to daily, and silence past the schedule plus a grace window is what pages. On a ship, the bell, struck every watch, proved the watch was awake; a vital is that bell for the jobs that fail by quietly not running.
@daily backup && curl -fsS https://mast.tissue.dev/mk_0c47e2a91d
# backup failed, cron dead, box down — all the same missing check-in
The plate shows the other mast. The name is biology, like every name here: a mast cell is the alarm resident in living tissue, posted at every surface that meets the outside world, first to fire when something goes wrong. The ship's mast, the hoist and the bell, came free with the word.
why mast is better
Push tools come in two kinds. The free pipes — a topic you POST to, a relay that forwards a webhook — deliver a banner once; if you slept through it, that was the alert. The team pagers do repeat and escalate, but they assume a roster: services, schedules, an admin who owns the routing, and a bill per responder per month.
Mast keeps the pager mechanics and drops the roster. The team pagers assume five people, a schedule and an admin. Mast assumes you. Repeat-until-acknowledged is an ordinary priority any channel can use, and escalation is one other phone: a partner who has their own copy, paired once by QR code. It is $4.99 once, and there is nothing per seat because there are no seats.
key and a repeat of that key within the channel's dedupe window lands once, and a channel that floods collapses into a single row with a count. A flapping check cannot bury a real page.what is in the box
priority, a dedupe key, retry and expire for the repeat cadence, ack=required, and a url the page opens.the plain limits
Mast is for iPhone, iOS 17.2 or later. There is no Android app, no web feed and no desktop client. Escalation goes to one partner, and they need their own copy of the app. Message bodies pass through our servers and are deleted after 30 days. Those are the edges; everything inside them is included.
screenshotsa page mid-alert, the vitals wall, a channel and its URL, the setup sheets.unfoldfold
when a page goes unansweredacknowledgement from the lock screen, a Live Activity while it stays open, and escalation to one other phone.unfoldfold
A page stays on screen as a Live Activity until it is acknowledged: on the lock screen and in the Dynamic Island, with the time it has been open counting up. Acknowledge it from the notification itself, from the app, by asking Siri, or from a paired Apple Watch, where the notification is forwarded by iOS.
If you sleep through it, the page does not have to die with your phone. Pair Mast with one other person's Mast — a QR code on one phone, scanned by the other — and name them as a channel's escalation. A page you have not acknowledged moves on to them, once. Whether it wakes you in the first place is covered under will it wake me? above.
what it costs$4.99 on the App Store, once. Not a subscription.unfoldfold
The price is the whole price: $4.99 once, every feature on. Team paging tools price per person per month; Mast is priced like an app, because for one person it is one.
The working limits are wide enough to forget: 10,000 messages a month, 16 KiB per message, 60 messages a minute per channel. Messages stay in the feed for 30 days.
works with Claude Code and Codex
Ask Claude Code or Codex to alert you from an app it is writing and it reaches for email: a mail provider, an API key, a template, and a message that lands in a tab and does not repeat. The Mast plugin changes that default. With it installed, the agent wires a page instead: one POST from the error handler or the payment webhook, a key so a failing loop pages once, and a vital for the nightly job so the page comes when the heartbeat stops, which is the failure email can never report.
> /plugin marketplace add tissue-systems/mast-claude-plugin
> /plugin install mast@mast
> /mast:setup
$ codex plugin marketplace add tissue-systems/mast-codex-plugin
$ codex plugin add mast@mast
Setup asks for a channel URL from the app and keeps it outside the project. There is no account and no token, the same as any other sender. One project configured for either agent is configured for both. Both plugins are MIT-licensed, at github.com/tissue-systems/mast-claude-plugin and github.com/tissue-systems/mast-codex-plugin.
runs on tissue
Mast's server side — the channels, the feed and the vitals clock — runs on the tissue.systems fleet, the platform this company builds, in a different failure domain from whatever it watches. We built the pager because running the platform needed one, and it pages us about the platform every day.
A tissue account is optional. Connect one and an API token can do what the phone does: create channels, send, read the feed, keep the channel list in a file and let a script reconcile it. The docs cover connecting an account and channels as code. Create an account if you want one.
Mast is for iPhone, on the App Store as Mast Pager; pages reach a paired Apple Watch through notification forwarding. Push for people who ship. Questions reach support@tissue.systems, the guide to using it is at tissue.systems/mast/guide, and the app's privacy policy is at tissue.systems/mast/privacy.