Max Auth
by @felipematos
Security authentication gate for OpenClaw sensitive actions. Deploys a local Node.js auth server with biometric passkeys (WebAuthn/Touch ID/Face ID) and mast...
clawhub install max-authπ About This Skill
name: max-auth description: Security authentication gate for OpenClaw sensitive actions. Deploys a local Node.js auth server with biometric passkeys (WebAuthn/Touch ID/Face ID) and master password. Supports session-scoped auth per channel/session key, secure one-time secret submission URLs, and a browser UI in Portuguese, English, and Spanish.
Max Auth
A lightweight self-hosted authentication server for OpenClaw. It protects sensitive agent actions with biometric passkeys and a master password, supports independent auth per session/channel, and can collect secrets via one-time HTTPS forms so credentials never need to appear in chat.
Features
sessionKey (telegram:6314900956, discord:channel:123, etc.)~/.max-auth/audit.logrequest_secret / retrieve_secret)check_auth, require_auth, request_secret, retrieve_secretRequirements
Quick Setup
mkdir -p ~/.max-auth && cd ~/.max-auth
cp /assets/auth-server.js .
cp /assets/package.json .
npm installnode auth-server.js set-password 'your_strong_password'
node auth-server.js
By default the server runs on 127.0.0.1:8456.
Use references/api.md for systemd, proxying, and HTTP API details.
Session-scoped auth
Each channel/session has its own auth state.
Examples:
telegram:6314900956discord:channel:1488653811185881133globalTypical check:
curl -s "http://127.0.0.1:8456/status?session=telegram%3A6314900956"
If auth is missing, direct the user to:
https://your-host/auth?session=telegram%3A6314900956
Secure secret handoff
Use this when the user needs to give a password/token/API key without leaking it into chat.
Flow:
1. Agent calls request_secret with a label + field definitions
2. User opens the returned HTTPS URL and submits the form in the browser
3. Agent polls with retrieve_secret
4. Values are returned once and then consumed/deleted from memory
The values are stored in memory only, expire automatically, and are not written to the chat transcript.
When to require auth
Require auth before:
Do not require auth for ordinary read/search/list/fetch operations.
References
references/api.md β setup + HTTP APIreferences/integration.md β agent integration patterns