llm.txt
For models. What m2fa is, the two planes, every REST field. Alias/llms.txt.
https://m2fa.strogleapp.com/llm.txt
m2fa · docs
HTTPS REST for the extension and scripts. Live keys stay in your vault session — snippets use $M2FA_KEY. Paste llm.txt into a model so it does not invent routes.
/llms.txt.
https://m2fa.strogleapp.com/llm.txt
https://m2fa.strogleapp.com/docs.md
https://m2fa.strogleapp.com/docs
Send the personal key as X-Api-Key, X-Flow-Hash, or Authorization: Bearer. Missing/invalid → 403. Each key only sees its own vault. 120 calls / 60 seconds / IP.
| Method | Path | Auth | Notes |
|---|---|---|---|
| GET | /health | no | Liveness |
| GET | /auths | key | List accounts, no secrets |
| GET | /auths/{id} | key | Current OTP. HOTP increments |
| POST | /add | key | Create, HTTP 201 |
| GET | /logos/{slug} | no | Cached brand logo |
| GET | /auths/icons/{name} | key | Logo or letter badge |
| GET | /llm.txt | no | LLM spec (alias /llms.txt) |
| GET | /docs.md | no | Markdown |
| GET | /docs | no | This page |
export M2FA_KEY='m2fa_YOUR_USER_KEY'
curl -sS https://m2fa.strogleapp.com/health
curl -sS https://m2fa.strogleapp.com/auths -H "X-Api-Key: $M2FA_KEY"
curl -sS https://m2fa.strogleapp.com/auths/12 -H "X-Api-Key: $M2FA_KEY"
curl -sS -X POST https://m2fa.strogleapp.com/add \
-H "X-Api-Key: $M2FA_KEY" -H "Content-Type: application/json" \
-d '{"uri":"otpauth://totp/Example:demo?secret=JBSWY3DPEHPK3PXP&issuer=Example"}'
{
"id": 12,
"service": "GitHub",
"account": "you",
"icon": "github",
"logo": "github",
"logo_url": "/logos/github",
"otp_type": "totp",
"digits": 6,
"period": 30,
"algorithm": "sha1"
}
{
"otp_type": "totp",
"password": "123456",
"next_password": "654321",
"generated_at": 1710000000,
"period": 30,
"counter": null
}
| Status | Meaning |
|---|---|
| 201 | Created (POST /add) |
| 400 | Bad OTP payload / duplicate |
| 403 | Missing or invalid API key |
| 404 | Account id not in this vault |
| 429 | Too many API calls |
Human login is WebSocket-only: wss://m2fa.strogleapp.com/ws/. Do not POST credentials to Flask. Do not open WSS via a bare IP on port 443. Admin-only work (users, attaching OTPs to other vaults, audit) is on that socket, not this REST API.
Chrome extension: load extension/ or ext.zip, paste the user’s key, point it at https://m2fa.strogleapp.com.