StephenEvenson/dsh-plugin-elevenlabs-callback ↗★ 0
dsh-plugin-elevenlabs-callback
DeepSeek Harness plugin: when a run finishes or needs approval, get a link on your phone, hear the result from an ElevenLabs voice agent and say what to do next.
安装
$
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:StephenEvenson/dsh-plugin-elevenlabs-callback说明文档
阅读完整 README ↗Configuration
Settings live in your profile's cordis.patch.yml (~/.dsh/profiles/web/cordis.patch.yml). Target the row by its id, elevenlabs-callback. A patch replaces the whole config object, so repeat every key you want to keep:
- id: elevenlabs-callback
config:
apiKey: sk_... # or leave out and export ELEVENLABS_API_KEY
triggers: { finished: true, error: true, approval: true, minTurnSeconds: 20 }
notify: { terminal: true, qr: false, desktop: true, ntfyTopic: my-private-topic, ntfyServer: https://ntfy.sh, command: "" }
| key | default | meaning |
|---|---|---|
apiKey | "" | ElevenLabs API key; empty = read ELEVENLABS_API_KEY from the environment |
publicUrl | "" | https URL where the plugin server is reachable; empty = start a cloudflared quick tunnel |
host, port | 127.0.0.1, 7331 | where the plugin server listens (0 = free port) |
stateDir | $DSH_HOME/elevenlabs-callback | agent/tool ids and the generated tool token |
agent.llm, agent.voiceId, agent.ttsModel | gemini-2.5-flash, Charlie, eleven_flash_v2 | agent settings pushed at start-up (English agents need eleven_flash_v2 or eleven_turbo_v2) |
triggers.finished / .error / .approval | true | which events send a link |
triggers.minTurnSeconds | 20 | completed turns shorter than this are ignored — you were probably watching |
linkTtlMinutes | 120 | how long a link can start a call |
notify.terminal, notify.qr | true | print the link (and a QR code) to the terminal |
notify.desktop | false | macOS / Linux desktop notification |
notify.ntfyTopic, notify.ntfyServer | "", https://ntfy.sh | push the link to the ntfy app |
notify.command | "" | any shell command; gets DSH_CALLBACK_URL, _TITLE, _BODY in its environment |
phone.toNumber, phone.fromNumber | "" | ring a real phone instead of only sending a link — see below |
Patch edits to config hot-reload; the plugin restarts its server and re-provisions the agent with the new settings.