CtrlK
BlogDocsLog inGet started
Tessl Logo

guydemo/music

Generate music using ElevenLabs Music API - instrumental tracks, songs with lyrics, and fine-grained composition plans

95

1.57x
Quality

93%

Does it follow best practices?

Impact

99%

1.57x

Average score across 5 eval scenarios

SecuritybySnyk

Passed

No findings from the security scan

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-2/

{
  "context": "Tests whether the agent uses the correct JavaScript SDK package, implements the two-step composition plan workflow for granular control, respects mutually exclusive parameters, and properly handles streaming audio output.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Correct JS package",
      "description": "package.json lists '@elevenlabs/elevenlabs-js' as a dependency (not the deprecated 'elevenlabs' npm package or any other incorrect package)",
      "max_score": 12
    },
    {
      "name": "No deprecated package",
      "description": "Does NOT reference or install the 'elevenlabs' npm package (the deprecated v1.x package)",
      "max_score": 8
    },
    {
      "name": "Correct client import",
      "description": "Imports ElevenLabsClient from '@elevenlabs/elevenlabs-js' (not from a different package or using a different class name)",
      "max_score": 10
    },
    {
      "name": "Client instantiation",
      "description": "Creates client using 'new ElevenLabsClient()' constructor",
      "max_score": 5
    },
    {
      "name": "Composition plan creation",
      "description": "Calls client.music.compositionPlan.create() or equivalent method to generate a structured composition plan before composing audio",
      "max_score": 15
    },
    {
      "name": "Plan inspection step",
      "description": "Includes a step that reads or logs properties of the composition plan (e.g., accessing sections, positiveGlobalStyles, or negativeGlobalStyles) between plan creation and audio generation",
      "max_score": 8
    },
    {
      "name": "Two-step workflow",
      "description": "Uses a two-step workflow: first creates a composition plan, then passes that plan to a separate compose call (not a single call with just a prompt)",
      "max_score": 12
    },
    {
      "name": "Mutually exclusive params",
      "description": "When composing with a composition plan, does NOT also pass a 'prompt' parameter to the compose call — uses one or the other",
      "max_score": 10
    },
    {
      "name": "Stream handling",
      "description": "Handles audio output as a stream (e.g., using .pipe() to a write stream) rather than treating it as a single buffer",
      "max_score": 10
    },
    {
      "name": "Env var authentication",
      "description": "Uses ELEVENLABS_API_KEY environment variable for authentication rather than hardcoding a key",
      "max_score": 5
    },
    {
      "name": "Music length parameter",
      "description": "Passes a music_length_ms (or musicLengthMs in JS) parameter when creating the composition plan, with a value in the valid range (3000-600000)",
      "max_score": 5
    }
  ]
}

evals

SKILL.md

tile.json