Elevenlabs Twilio Memory Bridge

WarnAudited by ClawScan on May 10, 2026.

Overview

The bridge is coherent for ElevenLabs/Twilio personalization, but it ships persistent prompt-memory features with weak default access boundaries and a highly personal default system prompt.

Before installing, replace soul_template.md, require signed webhooks, add authentication for memory/note APIs, restrict CORS, use HTTPS and scoped keys, pin dependencies, and define retention/deletion rules for caller memory.

Findings (5)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

If installed without replacing the template, the voice agent may behave as someone else’s personalized assistant and expose unrelated personal context to the model provider or callers.

Why it was flagged

The included default prompt template gives the agent a specific persona and named private context. The skill’s documented behavior is to inject this template into the system prompt.

Skill content
Speaking via ElevenLabs Conversational AI to Richard... Health: TRT research, Mounjaro... **This is Allegra. Be her.**
Recommendation

Ship a neutral template by default, require users to explicitly configure their own prompt, and remove personal/family/health details from the packaged artifact.

What this means

A publicly exposed deployment without a secret may accept forged webhook calls, allowing unauthorized parties to trigger personalization behavior or probe memory-derived responses.

Why it was flagged

Webhook verification is disabled by default when no secret is set, and the service permits broad cross-origin access while being designed for public deployment.

Skill content
if not WEBHOOK_SECRET: ... "skipping signature check" ... return True; allow_origins=["*"], allow_credentials=True, allow_methods=["*"], allow_headers=["*"]
Recommendation

Require WEBHOOK_SECRET for any public deployment, reject unsigned requests by default, restrict CORS to known origins, and add authentication to non-webhook API endpoints.

What this means

Incorrect or malicious notes could persistently steer the voice agent, and global notes can affect all callers. Stored caller facts may also contain sensitive personal information.

Why it was flagged

The artifacts expose persistent memory/note writes and state that the resulting context is injected into the system prompt, making stored text influential across future calls.

Skill content
`/api/memory/{phone_hash}` | POST | Add long-term fact about a caller ... `/api/notes` | POST | Add global or caller-scoped context note ... returns everything as a system prompt override
Recommendation

Authenticate and authorize memory writes, separate factual memory from instructions, add validation/review, label untrusted context, and provide retention and deletion controls.

What this means

Users may not realize from registry metadata that provider credentials/configuration are needed before running the service.

Why it was flagged

The skill requires provider configuration and an ElevenLabs API key, while the registry metadata declares no required env vars or primary credential.

Skill content
"required_env": [{ "key": "ELEVENLABS_API_KEY" }, { "key": "ELEVENLABS_AGENT_ID" }, { "key": "OPENCLAW_API_BASE_URL" }, { "key": "PUBLIC_BASE_URL" }]
Recommendation

Document the exact credential scopes needed, keep API keys minimal and scoped, and align registry metadata with the manifest.

What this means

Future installs may pull newer dependency versions than the author tested.

Why it was flagged

Dependencies are installed from version ranges rather than pinned hashes or a lockfile. This is common for Python services but less reproducible.

Skill content
fastapi>=0.109.0
uvicorn[standard]>=0.27.0
python-dotenv>=1.0.0
pydantic>=2.5.0
Recommendation

Use a lockfile or pinned dependency versions for production deployments.