@authloop-ai/openclaw-authloop
v0.2.0
Published
OpenClaw plugin for AuthLoop — hand off OTP, captcha, and password challenges to humans
Maintainers
Readme
@authloop-ai/openclaw-authloop
OpenClaw native plugin for AuthLoop — human-in-the-loop authentication for AI agents.
Registers the authloop_to_human and authloop_status tools so OpenClaw agents can hand off auth challenges (OTP, captcha, password) to a human who resolves them remotely.
Install
openclaw plugins install @authloop-ai/openclaw-authloopConfigure
In your OpenClaw settings, configure the AuthLoop plugin:
{
"plugins": {
"entries": {
"openclaw-authloop": {
"enabled": true,
"config": {
"apiKey": "al_live_..."
}
}
}
}
}To silence the plugins.allow advisory, explicitly allowlist the plugin:
{
"plugins": {
"allow": ["openclaw-authloop"],
"entries": {
"openclaw-authloop": {
"enabled": true,
"config": {
"apiKey": "al_live_..."
}
}
}
}
}Or set the AUTHLOOP_API_KEY environment variable.
| Variable | Required | Description |
|----------|----------|-------------|
| AUTHLOOP_API_KEY | Yes | API key from authloop.ai/dashboard |
| AUTHLOOP_BASE_URL | No | Override API URL (default: https://api.authloop.ai) |
Tools
authloop_to_human
Loop an auth challenge to a human. Returns a session_url immediately — the agent sends this to the human via its communication channel.
Input
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| service | string | Yes | Name of the service (e.g. 'HDFC NetBanking') |
| cdp_url | string | Yes | CDP endpoint of the browser the agent is controlling |
| context.url | string | No | Current page URL |
| context.blocker_type | string | No | 'otp', 'password', 'captcha', 'security_question', 'document_upload', 'other' |
| context.hint | string | No | Hint for the human |
Output
{
"session_id": "sess_...",
"session_url": "https://authloop.ai/session/sess_..."
}authloop_status
Wait for the human to resolve the auth challenge. Blocks until resolved, cancelled, or timed out. No input required.
Output
{
"session_id": "sess_...",
"session_url": "https://authloop.ai/session/sess_...",
"status": "resolved"
}Status is one of: resolved, cancelled, error, timeout.
How It Works
- Agent hits an auth wall (OTP, captcha, password)
- Agent calls
authloop_to_human→ getssession_url - Agent sends the
session_urlto the human via Telegram, Slack, etc. - Plugin streams the browser tab via CDP screencast in the background
- Agent calls
authloop_statusto wait for resolution - Human opens the URL, sees the live browser, types OTP/password (E2EE encrypted)
- Keystrokes dispatched to browser via CDP — auth completes
authloop_statusreturnsresolved→ agent continues
Security
All user input is end-to-end encrypted (ECDH P-256 + AES-256-GCM). The relay server cannot read what the human types.
Get an API Key
Sign up at authloop.ai — 25 free auth assists, no credit card required.
License
MIT
