lauther-js
JavaScript packages for Lauther — push notifications to your phone from any web app or script, and questions that wait for a yes before something irreversible happens.
| Package | What it is |
|---|---|
lauther-client | The Node client. Zero dependencies, two methods, TypeScript types bundled. |
lauther-mcp | An MCP server, so a coding agent can ask its owner for approval on their phone. |
npm install lauther-client
import { Lauther } from "lauther-client";
const lauther = new Lauther(process.env.LAUTHER_TOKEN);
await lauther.push({ title: "Backup finished" });
if (await lauther.ask("Deploy v2.4 to production?")) {
await deploy();
}
Only an explicit Approve returns true. A denial and a timeout are both
false — an unanswered question must never read as a yes.
Why this exists
A browser tab can't reach someone who closed it, and building a native app per project to fix that was never going to happen. Lauther is one app your projects share over an HTTP call.
Development
Node 18+. npm workspaces, no build step, no bundler.
npm install
npm test # both packages
lauther-client has no runtime dependencies and is tested with a stubbed fetch.
lauther-mcp is tested by spawning the real server over stdio and driving it
with a real MCP client against a fake Lauther API — so a broken tool schema or
broken stdio wiring fails the suite rather than a user's agent.
Links
- lauther.app · Docs
- Recipes for curl, Python, Home Assistant, Uptime Kuma and GitHub Actions
- The app: App Store · Google Play
- hello@lauther.id reaches a human.
MIT