OtterKit for Mac
Spend Guardrails
Tunnels bill 1¢ per connected hour, which is cheap right up until you forget one. The app exists partly to make that mistake impossible — these guardrails run locally, which is why they live in the app and not in a browser tab:
| Guardrail | Default | What it does |
|---|---|---|
| Stop tunnels on sleep | On | When your Mac goes to sleep, tunnels are stopped — a sleeping Mac can't serve one anyway, so it can't keep billing. |
| Idle nudges | On · 3h | A native notification when a tunnel has had no traffic for the threshold but is still running. |
| Cost-labeled TTLs | 8h | Every TTL option in the creation sheet shows its worst-case cost; "never" on a tunnel requires explicit confirmation. |
| Projected monthly spend | Always on | The menu bar and dashboard show what this month costs if everything currently live keeps running. |
Webhook endpoints are deliberately exempt: they're meant to be always-on, they're hard-capped at $2 per 30 days each, and stopping one would mean missed events — so the app never auto-stops a webhook.
Guardrails run while the app is alive, including hidden in the menu bar. Turn on
Launch at login in Settings if you want them from startup; quit the app entirely and sessions simply keep running as the CLI left them.