> For the complete documentation index, see [llms.txt](https://docs.gotempest.app/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.gotempest.app/productivity/tempest-push-notifications.md).

# Tempest Push Notifications

**Tempest Push** delivers push notifications between your Tempest devices: your laptop runs a scheduled snippet, the run fails, your phone gets a notification. The opposite works too — start a long-running command from your phone via a saved snippet, get notified on your Mac when it finishes.

The whole flow is opt-in per device and end-to-end encrypted.

## What you can be notified about

* **Scheduled snippet failures** — a cron-style run exits non-zero
* **Long-running snippet completions** — for jobs you fired and forgot
* **Connection errors** on critical hosts (configurable per-host)

## Setup

1. Sign in to Tempest on each device that should send or receive notifications.
2. **Settings → Notifications → Tempest Push** → toggle on per device.
3. On mobile (iOS / Android), grant push permission when prompted.
4. On desktop, register the device with the OS notification center.

Each device gets its own opt-in toggle — you can have a phone that *only* receives, or a server that *only* sends.

## How the routing works

* Your laptop / server / phone each register a push token with the Tempest backend.
* When one device emits a notification, the payload is encrypted to the receiving devices' public keys *before* it leaves the sending device.
* The Tempest backend hands the ciphertext to APNs (iOS) / FCM (Android) / OS notification API (desktop) — but never sees the plaintext message.

See [End-to-End Encryption](/account-and-privacy/end-to-end-encryption.md) for the cryptographic detail.

## Device push token (desktop)

Desktop Tempest doesn't go through OAuth2 — it uses a **device push token** (`LSDevicePushToken`) issued by Tempest's web services for sending notifications. The token is per-device, can be revoked individually, and is what allows headless / standalone Tempest backends to send pushes without holding any user OAuth credentials.

## Disable / revoke

Per device:

* **Settings → Notifications → Tempest Push** → toggle off.

Globally:

* **gotempest.app → Account → Devices** → revoke the device's push token. This stops all notification traffic from that device immediately.

## Limitations

* Push delivery best-effort — APNs / FCM may delay or drop messages under load.
* Critical alerts should still flow through dedicated tools (PagerDuty, Opsgenie, etc.). Tempest Push is for individual / small-team workflows.

## See also

* [Snippets & Scheduled Runs](/productivity/snippets-scheduled-runs.md) — the most common notification source
* [End-to-End Encryption](/account-and-privacy/end-to-end-encryption.md) — how plaintext stays on your devices
