Back to Directory/Developer Tools

io.github.csanadymiklos/lauther

Puts Approve/Deny on your phone before an agent acts, and waits for your fingerprint.

Developer ToolsJavaScriptv0.1.1

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.

PackageWhat it is
lauther-clientThe Node client. Zero dependencies, two methods, TypeScript types bundled.
lauther-mcpAn 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

MIT

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y lauther-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-csanadymiklos-lauther": {
      "command": "npx",
      "args": [
        "-y",
        "lauther-mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

lauther-mcpnpm

Compatible MCP Clients

io.github.csanadymiklos/lauther works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More