← back to Ventura Claw
Add ElevenLabs as a VenturaClaw connector
e175bc9b6abab45f269255890f3bdaf53cd760ac · 2026-05-06 12:09:10 -0700 · Steve Abrams
- server/connectors/elevenlabs.js — REAL impl, health probe returns
subscription tier + char usage
- server/connectors/index.js — registered in REAL, READ_ACTIONS, WRITE_ACTIONS
- server/connectors.json — added catalog entry (now 57 connectors)
- scripts/sync-tokens.js — routes ELEVENLABS_API_KEY into the user vault
(verified: 'live' on next sync, health 200 with starter tier 9.3K/90K chars)
Files touched
M scripts/sync-tokens.jsM server/connectors.jsonM server/connectors/index.js
Diff
commit e175bc9b6abab45f269255890f3bdaf53cd760ac
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Wed May 6 12:09:10 2026 -0700
Add ElevenLabs as a VenturaClaw connector
- server/connectors/elevenlabs.js — REAL impl, health probe returns
subscription tier + char usage
- server/connectors/index.js — registered in REAL, READ_ACTIONS, WRITE_ACTIONS
- server/connectors.json — added catalog entry (now 57 connectors)
- scripts/sync-tokens.js — routes ELEVENLABS_API_KEY into the user vault
(verified: 'live' on next sync, health 200 with starter tier 9.3K/90K chars)
---
scripts/sync-tokens.js | 3 ++-
server/connectors.json | 23 ++++++++++++++++++++++-
server/connectors/index.js | 5 ++++-
3 files changed, 28 insertions(+), 3 deletions(-)
diff --git a/scripts/sync-tokens.js b/scripts/sync-tokens.js
index 8172ba4..462b07c 100755
--- a/scripts/sync-tokens.js
+++ b/scripts/sync-tokens.js
@@ -83,7 +83,8 @@ function scanProjectEnvs(homeDir) {
["slack", { SLACK_BOT_TOKEN: pick("SLACK_BOT_TOKEN", "SLACK_TOKEN") }],
["twilio", { TWILIO_ACCOUNT_SID: pick("TWILIO_ACCOUNT_SID", "TWILIO_SID"),
TWILIO_AUTH_TOKEN: pick("TWILIO_AUTH_TOKEN"),
- TWILIO_FROM_NUMBER: pick("TWILIO_FROM_NUMBER", "TWILIO_PHONE_NUMBER", "TWILIO_FROM") }]
+ TWILIO_FROM_NUMBER: pick("TWILIO_FROM_NUMBER", "TWILIO_PHONE_NUMBER", "TWILIO_FROM") }],
+ ["elevenlabs", { ELEVENLABS_API_KEY: pick("ELEVENLABS_API_KEY") }],
];
// Login
diff --git a/server/connectors.json b/server/connectors.json
index a59c9dc..005be68 100644
--- a/server/connectors.json
+++ b/server/connectors.json
@@ -670,5 +670,26 @@
"logo": "internetarchive",
"tint": "#000000",
"sensitive": false
+ },
+ {
+ "id": "elevenlabs",
+ "name": "ElevenLabs",
+ "category": "ai-voice",
+ "docsUrl": "https://elevenlabs.io/docs/api-reference/introduction",
+ "auth": "api_key",
+ "triggers": [
+ "text to speech",
+ "voice generation",
+ "narrate",
+ "speak this",
+ "tts"
+ ],
+ "actions": [
+ "voicesList",
+ "user",
+ "modelsList",
+ "textToSpeech"
+ ],
+ "sensitive": false
}
-]
\ No newline at end of file
+]
diff --git a/server/connectors/index.js b/server/connectors/index.js
index b30b133..a013593 100644
--- a/server/connectors/index.js
+++ b/server/connectors/index.js
@@ -13,8 +13,9 @@ const etsy = require("./etsy");
const gmail = require("./gmail");
const purelymail = require("./purelymail");
const archive = require("./archive");
+const elevenlabs = require("./elevenlabs");
-const REAL = { slack, stripe, cloudflare, mailchimp, hubspot, notion, airtable, twilio, figma, canva, etsy, gmail, purelymail, archive };
+const REAL = { slack, stripe, cloudflare, mailchimp, hubspot, notion, airtable, twilio, figma, canva, etsy, gmail, purelymail, archive, elevenlabs };
// Phase 8 — central sensitivity registry. Source of truth for "this action mutates state."
// Anything in WRITE_ACTIONS[id] requires the approval gate. Anything NOT listed is treated as read-only.
@@ -34,6 +35,7 @@ const WRITE_ACTIONS = {
slack: new Set(["channels.create", "chat.postMessage", "reactions.add"]),
stripe: new Set(["charge.create", "customer.create", "payment_link.create", "refund.create", "subscription.cancel"]),
twilio: new Set(["sms.send"]),
+ elevenlabs: new Set(["textToSpeech"]),
};
// Read actions enumerated per connector — explicit allowlist for fail-safe behavior.
@@ -52,6 +54,7 @@ const READ_ACTIONS = {
slack: new Set(["channels.list", "users.lookup"]),
stripe: new Set(["balance.get", "charges.list"]),
twilio: new Set(["messages.list", "phone_numbers.list"]),
+ elevenlabs: new Set(["voicesList", "user", "modelsList"]),
};
function isWrite(id, action) {
← 35b8bea test: confirm post-commit celebration sound fires globally
·
back to Ventura Claw
·
no breakins: pull plaintext creds from login banner, add PUT 817b756 →