229 Commits

Author SHA1 Message Date
cursor[bot] 9edcbd4b80 Update skills from changelog 2026-09-07 (#124)
* Update skills from changelog 2026-09-07

Co-authored-by: tadas <tadas@elevenlabs.io>

* Show piped input for say command

Co-authored-by: tadas <tadas@elevenlabs.io>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: tadas <tadas@elevenlabs.io>
2026-09-09 11:28:25 -05:00
Boris Starkov 82f6b49dce Merge pull request #123 from elevenlabs/bs/cursor-mcp-connector
Add hosted MCP connector config for Cursor
2026-09-07 14:52:18 +01:00
Boris Starkov 5c3bb825df Add hosted MCP connector config for Cursor 2026-09-07 14:50:53 +01:00
cursor[bot] fd7b7f593b Update skills from changelog 2026-08-31 (#122)
* Document DTMF input settings for ElevenAgents

Co-authored-by: tadas <tadas@elevenlabs.io>

* Document music waveform previews

Co-authored-by: tadas <tadas@elevenlabs.io>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: tadas <tadas@elevenlabs.io>
2026-09-03 09:34:00 -05:00
Tadas Petra 44a05ea24f Add npm CLI install option and remove LiveKit pinning guidance (#120)
* Add npm as an install option for the ElevenLabs CLI

The CLI is now published on npm as @elevenlabs/cli. List
`npm install -g @elevenlabs/cli` as the first install option in every
skill's installation guide and in the README, alongside the existing
Homebrew, Scoop, and shell-installer methods.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Remove LiveKit client pinning guidance from skills

The livekit-client version pin is now handled within the ElevenLabs SDK,
so the temporary package.json override workaround sections are obsolete.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-09-01 08:25:47 -05:00
cursor[bot] b7542c33f5 Update skills from changelog 2026-08-24 (#118)
* Update agent skills from changelog 2026-08-24

Co-authored-by: tadas <tadas@elevenlabs.io>

* Remove unsupported procedure CLI example

Co-authored-by: tadas <tadas@elevenlabs.io>

* Fix procedure reference formatting

Co-authored-by: tadas <tadas@elevenlabs.io>

* Restore CLI-first procedure workflows

Co-authored-by: tadas <tadas@elevenlabs.io>

* Restore primary CLI installation command

Co-authored-by: tadas <tadas@elevenlabs.io>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: tadas <tadas@elevenlabs.io>
2026-08-28 15:02:39 -05:00
cursor[bot] afa823c0ac Update skills from changelog 2026-08-22 (#115)
* Update skills from changelog 2026-08-22

Co-authored-by: tadas <tadas@elevenlabs.io>

* Test hosted MCP skill routing

Co-authored-by: tadas <tadas@elevenlabs.io>

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: tadas <tadas@elevenlabs.io>
2026-08-28 14:49:32 -05:00
Tadas Petra 641b961e85 Add npm as an install option for the ElevenLabs CLI (#119)
The CLI is now published on npm as @elevenlabs/cli. List
`npm install -g @elevenlabs/cli` as the first install option in every
skill's installation guide and in the README, alongside the existing
Homebrew, Scoop, and shell-installer methods.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-28 08:55:39 -05:00
Tadas Petra 62eb4fcaf2 Default to the ElevenLabs CLI for all REST API examples (#117)
* Default to the ElevenLabs CLI for all REST API examples

The ElevenLabs CLI just shipped, so every skill that documented raw REST
usage (cURL against api.elevenlabs.io) now shows the equivalent
`elevenlabs` command instead. All commands were verified against CLI
v1.0.0-alpha.2 with --dry-run to confirm they produce the same
method/URL/body as the curl calls they replace.

- Convert cURL sections to CLI in text-to-speech, speech-to-text,
  sound-effects, music, voice-changer, voice-isolator, dubbing, and
  agents (including the procedure/branch walkthrough and outbound calls)
- Lead every installation guide with a uniform "CLI (Recommended)"
  section (Homebrew, Scoop, shell installer) and auth via
  ELEVENLABS_API_KEY or `elevenlabs auth login`
- No example passes an API key on the command line; the CLI reads the
  env var automatically

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Catch remaining cURL references missed by case-sensitive search

Rename the cURL payload-builder section in writing-procedures.md to CLI
(it feeds `elevenlabs agents procedures create --json`), point README
and agents/SKILL.md at the CLI instead of raw REST, and update the
changelog-maintenance skill to keep CLI examples consistent going
forward.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Fix stale keyterms limits in dubbing docs

The API OpenAPI spec and the public API reference both say keyterms
accepts up to 1000 terms of at most 50 characters and 5 words each
(verified via `elevenlabs dubbing project create --spec` and the
speech-to-text API reference); the tables said 100 terms of 200 chars.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-25 09:38:26 -05:00
cursor[bot] c0ea1cec19 Update agent skills from changelog 2026-08-17 (#114)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: tadas <tadas@elevenlabs.io>
2026-08-18 09:30:53 -05:00
cursor[bot] 1d8a5c6cc1 Update skills from changelog 2026-08-10 (#112)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: tadas <tadas@elevenlabs.io>
2026-08-11 13:26:37 -05:00
Calvin Leung a3bbe2104f Merge pull request #107 from elevenlabs/kalvin807/use-procedure-api-skill
[Agents] Move procedures into the agents skill as references
2026-08-07 12:26:12 +09:00
Tadas Petra 0e6680612f Merge branch 'main' into kalvin807/use-procedure-api-skill 2026-08-06 14:29:45 -05:00
Calvin Leung aed5e46a69 refactor(agents): move procedures into the agents skill as references
Top-level skills are per platform, so procedures belong inside the agents
skill rather than as a skill of their own.

- Drop the top-level agent-procedures skill; README.md and evals/run_all.py
  return to their previous state.
- Add a Procedures section to agents/SKILL.md covering the semantics a caller
  needs before writing any procedure call: drafts do not reach the live agent
  until publish, a branch-HEAD GET returns 404 until first publish, compile
  only when deterministic procedures changed, and draft updates replace the
  whole body.
- Add agents/references/using-procedure-api.md and
  agents/references/writing-procedures.md.
- Extend the agents description so procedure queries route to this skill.
- Fold the procedure changelog triggers into the agents row of
  update-skills-from-changelog.
- Move the procedure evals into the agents suite. Every expectation was
  checked to discriminate under check_expectation: a correct response passes
  and a deliberately wrong one fails. Cases relying on reference content or
  asserting the absence of a step were dropped, since the harness injects
  only SKILL.md and keyword grading cannot express absence.
2026-08-07 01:51:44 +09:00
Tadas Petra 2bf67deabc Add dubbing skill for the Dubbing Projects API (dubbing_v2) (#104)
* Add dubbing skill for the Dubbing Projects API (dubbing_v2)

Covers the new /v1/dubbing/project REST endpoints end-to-end: project
creation, source-transcript review and editing, adding target languages,
refining translations, and regeneration. Includes functional and trigger
evals and registers the skill in the eval runner and README.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Remove prerelease and workspace-gating notes from dubbing skill

The skill ships after the Dubbing Projects API is officially released,
so gating caveats and roadmap language no longer apply. The warning
about the legacy client.dubbing SDK methods stays.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Make legacy-SDK guard in dubbing eval machine-enforceable

The grader only enforced quoted (NOT '...') terms in JS import contexts,
so the unquoted "not the legacy client.dubbing" phrase in eval 1 was
never checked. Split it into its own expectation with quoted terms, and
teach find_forbidden_reference to treat dotted terms (method paths like
client.dubbing) as literal forbidden substrings, since import-context
matching can't catch SDK method usage.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Fix dubbing legacy API eval guard

* Detect legacy dubbing child routes

* Generalize legacy-endpoint guard and fix child-route detection

Replace the /v1/dubbing special case in find_forbidden_reference with a
generic mechanism: quoted paths in the same expectation that extend a
path-based NOT term act as allowed child routes. Path terms are now
forbidden including child routes (so legacy /v1/dubbing/{id}/audio/...
is caught), while /v1/dubbing/project and its children are exempt.

Also fixes a false positive in the previous lookahead: /project followed
by a closing quote failed the [/?#]|$ boundary check, so every correct
solution ending a URL at /v1/dubbing/project was flagged as legacy.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Ignore advisory forbidden references

* Update dubbing skill for GA docs and make eval grading SDK-tolerant

The official Dubbing v2 docs (elevenlabs-dx#2547) show the SDKs now
support the Projects API under dubbing.project.*, so the skill switches
from REST-only guidance to SDK-first examples (Python + JS) with cURL
retained, and picks up the other doc changes: transcript editing and
regeneration are enterprise-only, cloning_strength defaults to 7, and
target_language can queue the first language at project creation.

The two functional eval failures in the 20260805 run were grader
fragility, not skill bugs — both generated scripts were correct, but
expectation phrasing didn't survive keyword grading (a URL split across
two f-string lines, and prose like "sends only the changed field").
Expectations are rephrased around tokens present in both SDK and REST
solutions, and the legacy-SDK guard terms change from 'client.dubbing'/
'elevenlabs.dubbing' (which would flag the new dubbing.project.*
namespace) to method-specific terms: dubbing.create(, dubbing.get(,
dubbing.audio, dubbing.dub_a_video.

Verified: functional evals now 17/17.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Fix advisory legacy reference detection

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-08-06 07:57:21 -05:00
cursor[bot] 55faefc799 Update skills from changelog 2026-08-03 (#111)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: tadas <tadas@elevenlabs.io>
2026-08-05 14:42:55 -05:00
Tadas Petra 6ef5419a67 Raise default functional-eval timeout from 300s to 450s (#110)
The 2026-08-04 automation run on a cold cloud runner timed out agents
eval-1 at 300s, zeroing all five of its expectations, while local runs
peak around 200s. 450s absorbs cold-start toolchain overhead (npm/CLI
setup by the nested agent) without doubling worst-case runtime; the
process-group kill still terminates timed-out runs cleanly.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 14:42:16 -05:00
Tadas Petra 5acd0650d0 Fix eval harness bugs and repair eval definitions after per-eval review (#109)
* Fix eval harness bugs and repair eval definitions after per-eval review

Full review of all functional evals and trigger queries with fresh-context
agents against actual run artifacts. Of 15 failing expectations at the ~80%
baseline, none were genuine skill-quality failures.

Harness (evals/run_all.py):
- Resolve --output-dir to absolute: a relative path was re-resolved by
  cursor-agent against the eval cwd (doubled path), failing every
  functional eval instantly
- Grade outputs/ recursively: nested files (agent_configs/*.json, TS
  subprojects) were invisible to grading, causing 4 false fails
- Kill the whole process group on timeout: cursor-agent grandchildren
  holding the stdout pipe made subprocess.run block forever

Eval definitions:
- Rewrite 8 execution-style prompts to script-writing form (the sandbox
  has no ELEVENLABS_API_KEY; "generate X.mp3" caused refusals, raw-REST
  fallbacks, and one live agent deployment)
- Retexture 25 expectations so the keyword grader checks load-bearing
  tokens instead of passing/failing vacuously
- Remove 1 ungradeable expectation (music eval-2 duration: agents
  legitimately use music_length_ms or composition-plan section durations)
- Replace/sharpen 5 trigger queries (negatives that were structurally
  unfair in the one-skill-installed eval workspace)

Skill content bugs surfaced by false passes:
- speech-to-text: fix invalid convert.with_raw_response(...) chain
  (raises AttributeError; verified against elevenlabs 2.60.0)
- text-to-speech: fix audio.pipe(...) on the web ReadableStream returned
  by JS SDK 2.x (bridge via Readable.fromWeb)
- voice-changer: description now excludes voice cloning (was the only
  hard trigger failure)
- setup-api-key: fix duplicate step numbering

Verified: triggers 156/156 (68 rerun live), functional 123/124.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Fix speech engine mic expectation token

* Remove comma from getUserMedia token so the whitespace-split grader can match it

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Make functional-eval timeout kill portable to Windows

os.killpg/signal.SIGKILL and setsid-based process groups are POSIX-only;
use taskkill /F /T on Windows and only pass start_new_session on POSIX.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Stabilize eval expectations

* Fix remaining flaky evals surfaced by rerun

- Harmonize the ElevenLabs() constructor expectation in the four
  remaining files (speech-to-text, voice-isolator, music, sound-effects):
  nested agents alternate between ElevenLabs() and ElevenLabs(api_key=...)
  run to run; anchor on 'ElevenLabs(' which matches both
- setup-api-key eval-2 'provides steps' false-failed a response that gave
  a full numbered create-key walkthrough (semantic check needed 2
  indicator words, response had 1); reworded to stable tokens
- Add missing/401/cause to the causes semantic indicators: in the keyless
  eval workspace, 'no key configured' is the correct 401 diagnosis and
  should count as suggesting a cause
- agents SKILL.md description: qualify 'customer service bots' as
  voice-based and exclude text-only chatbots — the claude-API chatbot
  negative was a coin flip because the description invited text-bot reads
- setup-api-key trigger: replace the ElevenLabs Scribe capability
  negative (still ElevenLabs-topical, flaky in the one-skill workspace)
  with a deepgram key-setup question — same boundary, structurally fair

All updated expectations statically verified against artifacts from all
four 2026-08-03 runs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Require exact filenames in eval expectations

* Stabilize three more grader false-fails from third rerun

- speech-to-text eval-1: 'Prints or returns result.text' failed a correct
  script that used getattr(result, "text") + print(text); anchor on
  'print(' and 'text' instead of the literal attribute chain
- sound-effects eval-1: quote-attached tokens ('thunder / rain') in a
  pre-existing expectation can never match the whitespace-split grader;
  unquoted rewording verified against all four runs
- setup-api-key eval-2: remove 'Suggests common causes' — every run
  phrases the (correct) 401 diagnosis differently and the adjacent
  'Reports that ELEVENLABS_API_KEY is not configured...' expectation
  already covers it
- speech-engine eval-2: proactively fix the comma-attached
  onTranscript(transcript, signal, session) signature tokens found by a
  full punctuation audit (would false-fail on TS-typed signatures); all
  other flagged tokens are graded by pattern checks and are safe

All rewordings statically verified PASS against artifacts from all four
2026-08-03 runs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* Require the SDK explicitly in prompts that grade SDK usage

Fourth rerun failed all three SDK-pattern expectations in speech-to-text
eval-1 at once: the nested agent wrote a Python script that shells out to
curl against the REST API. With no SDK installed in the sandbox, dodging
an unverifiable import is reasonable behavior whenever the prompt only
says "using ElevenLabs" — the same root cause as the earlier
sound-effects raw-urllib failure.

Swept all prompts whose expectations grade SDK usage and pinned the five
with the gap (speech-to-text 1-3, text-to-speech 2, music 1) to name the
SDK explicitly. Explanatory "show me how" prompts and the Speech Engine
server (SDK-only APIs) left as-is.

Live-verified: speech-to-text 14/14 and text-to-speech 16/16 after the
change.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
2026-08-04 13:08:49 -05:00
cursor[bot] 31bb900924 Update skills from changelog 2026-07-27 (#108)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: tadas <tadas@elevenlabs.io>
2026-08-03 11:30:10 -05:00
Calvin Leung d37aa137a6 fix(agent-procedures): correct API guidance 2026-08-04 00:05:40 +09:00
Calvin Leung 73dd55275d feat(agents): cover the procedures SDKs and split authoring from the API flow
Procedures reached the Python and JavaScript SDKs in 2.60.0, so document them
next to the existing curl examples: the endpoint-to-method mapping for all nine
operations, the argument shapes that differ by language, and the compile and
publish flow.

Give each fact one home. SKILL.md carries the CRUD and publish sequence;
references/writing-procedures.md sends the reader to the public procedure docs
and summarizes them for authoring content, under the field names that go in
trigger and content.

Correct two claims that do not hold against the API. A procedure may open with
a branch step, which the docs say it may not. Compiling concerns structured
procedures only, so a branch that only saw free-form edits publishes with no
compile and no workflow in the body.

Drop the structured-content constraint rules that compile already enforces and
that go stale as the schema moves, keeping the step shape needed to author
without an API call. In their place, state the loop: save the draft, compile,
repair what it reports, publish the compiled workflow.

Trim the evals to one case per documented trap and drop the trigger queries
that duplicated another's signal.
2026-08-03 23:54:22 +09:00
Calvin Leung e4f763f927 Rename skill to agent-procedures and add authoring guidance
Rename use-procedure-api to agent-procedures so the skill name describes
the domain rather than the transport.

Document the content schema the API accepts: free-form inline reference
markup, the deterministic step types, and the branch step rules. Move
craft guidance into references/writing-procedures.md.

Drop the validate-structured-procedure endpoint, which is not public, and
state that compile is the validation step for structured content. Spell
out that compile is branch-level and that a publish omitting the compiled
workflow silently keeps the stale one.

Add agents/ negative trigger cases for procedure queries so the two
skills do not compete.
2026-07-30 18:35:05 +09:00
Calvin Leung 6f0b53bb2b Add use-procedure-api skill for the agent procedure REST API 2026-07-27 17:30:25 +09:00
Tadas Petra 37c0f2a682 Remove finetune_strength parameter from music skill (#106)
The parameter is being dropped from the docs; finetune_id and the rest
of the Music Finetunes documentation remain unchanged.

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-23 11:59:11 -05:00
cursor[bot] e2c41ea2e9 FineTune API & Update skills from changelog 2026-07-20 (#105)
Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: tadas <tadas@elevenlabs.io>
2026-07-22 10:53:13 -05:00
Tadas Petra d6a63df2da Remove scribe v1 (#103) 2026-07-15 08:05:57 -05:00
Tadas Petra 7a84a189ba Merge pull request #102 from elevenlabs/cursor/changelog-skills-update-89bc
Update skills from changelog 2026-07-13
2026-07-14 14:27:51 -05:00
Cursor Agent 53abaff806 Update agents skill from changelog 2026-07-13
Co-authored-by: tadas <tadas@elevenlabs.io>
2026-07-14 14:27:20 +00:00
Tadas Petra 26127470eb Merge pull request #98 from elevenlabs/cursor/changelog-skills-update-20c7
Update skills from changelog 2026-07-06
2026-07-08 12:25:57 -05:00
Cursor Agent fe0d908686 Update skills from changelog 2026-07-06
Co-authored-by: tadas <tadas@elevenlabs.io>
2026-07-08 16:47:03 +00:00
Paul Asjes 80cd2f5356 Merge pull request #95 from elevenlabs/pma/speech-engine-disable-auth
[Speech Engine] Add disableAuth parameter
2026-07-01 21:03:17 +02:00
Paul Asjes 9a90ccc051 Add disableAuth parameter 2026-07-01 20:44:14 +02:00
Tadas Petra 956191b1f8 Merge pull request #94 from elevenlabs/cursor/skills-update-from-changelog-f27c
Update skills from changelog 2026-06-29
2026-06-30 15:34:38 -05:00
Cursor Agent 17f03505c3 Update skills from changelog 2026-06-29
Co-authored-by: tadas <tadas@elevenlabs.io>
2026-06-30 13:55:22 +00:00
Tadas Petra d6ca5fad52 Merge pull request #91 from elevenlabs/cursor/skills-update-from-changelog-9529
Update skills from changelog 2026-06-22
2026-06-23 14:28:07 -05:00
Cursor Agent 6b8d4d48d8 Remove narrow client tool schema detail
Co-authored-by: tadas <tadas@elevenlabs.io>
2026-06-23 15:28:40 +00:00
Cursor Agent be7f3cbe88 Update skills from changelog 2026-06-22
Co-authored-by: tadas <tadas@elevenlabs.io>
2026-06-23 14:51:01 +00:00
Tadas Petra 00b692378e Merge pull request #89 from elevenlabs/cursor/skills-update-from-changelog-0eb7
Update skills from changelog 2026-06-15
2026-06-16 18:56:02 -05:00
Cursor Agent c21ddd76e1 Document conversation evaluation reruns
Co-authored-by: tadas <tadas@elevenlabs.io>
2026-06-16 18:46:22 +00:00
Cursor Agent 1f96a94ebb Update skills from changelog 2026-06-15
Co-authored-by: tadas <tadas@elevenlabs.io>
2026-06-16 18:44:11 +00:00
Tadas Petra 59ba46b3b1 Merge pull request #85 from elevenlabs/cursor/skills-update-from-changelog-9d0e
Update skills from changelog 2026-06-08
2026-06-16 09:19:50 -05:00
Paul Asjes b0f3b0bf43 Merge pull request #87 from elevenlabs/pma/music-v2-skill-update
[Music] Update skill for music v2
2026-06-15 16:47:18 +02:00
Paul Asjes a37901256c fix 2026-06-15 16:35:10 +02:00
Paul Asjes 1c86f7a581 Ignore parameter if v2 2026-06-15 13:43:14 +02:00
Paul Asjes cb8ddd266f addressed comments 2026-06-15 13:42:02 +02:00
Paul Asjes db2e5aabd1 Update skill for music v2 2026-06-15 13:21:21 +02:00
Tadas Petra 369df74254 Merge pull request #84 from elevenlabs/remove-skills
Remove setup api key skill
2026-06-10 07:40:28 -05:00
Cursor Agent 8a4c2a109d Document agents widget launcher modes
Co-authored-by: tadas <tadas@elevenlabs.io>
2026-06-10 07:43:25 +00:00
Cursor Agent d3b420434c Update agents skills from changelog 2026-06-08
Co-authored-by: tadas <tadas@elevenlabs.io>
2026-06-10 07:43:25 +00:00
Tadas Petra f5ccf75bb3 Merge branch 'remove-skills' of github.com:elevenlabs/skills into remove-skills 2026-06-09 19:59:58 -05:00