Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
74c0958
initial testing
tadaspetra Feb 24, 2026
8adc86f
Prompt updates
tadaspetra Feb 24, 2026
4eafc8d
Update to pnpm and create initial projects
tadaspetra Feb 24, 2026
e19d18b
nextjs example
tadaspetra Feb 25, 2026
25e6fbd
remove perl from the generation flow
tadaspetra Feb 25, 2026
3942c5c
Updated nextjs project
tadaspetra Feb 25, 2026
4eaa88b
Revert "Updated nextjs project"
tadaspetra Feb 26, 2026
888a7ea
template and minimal prompt
tadaspetra Feb 26, 2026
fbae2a7
minimal template
tadaspetra Feb 26, 2026
0633f8f
working example
tadaspetra Feb 27, 2026
9e5d2f0
prompt with design
tadaspetra Feb 27, 2026
e78afdf
Run a setup script
tadaspetra Feb 27, 2026
0556189
update prompt to ensure skill use, and default sonnet
tadaspetra Feb 27, 2026
6183c35
remove unnecessary check in script
tadaspetra Feb 27, 2026
6138d71
Update minimal folders to behave the same
tadaspetra Feb 27, 2026
4c019d8
update locations
tadaspetra Feb 27, 2026
ae0238f
update to pnpm
tadaspetra Feb 27, 2026
c1539ff
Skip setup if example already exists
tadaspetra Feb 27, 2026
c3b6e07
Update weird prompt spacing
tadaspetra Feb 27, 2026
eb8d81f
python minimal examples
tadaspetra Feb 27, 2026
aa85847
global gitignore
tadaspetra Feb 27, 2026
8d33399
Simpler CLI output
tadaspetra Mar 2, 2026
1ae54bc
Update generate command
tadaspetra Mar 2, 2026
1e2e87e
Better README
tadaspetra Mar 2, 2026
a9c69d1
Remove logging
tadaspetra Mar 2, 2026
8971bd8
Remove precommit & update CI
tadaspetra Mar 2, 2026
23467c4
delete lock files
tadaspetra Mar 2, 2026
7f299a2
Update gitignore to not push lock files
tadaspetra Mar 2, 2026
a2287b7
prettier
tadaspetra Mar 2, 2026
3422f0f
Fixed Ruff things
tadaspetra Mar 2, 2026
eda0110
simplify prompts some more
tadaspetra Mar 2, 2026
9ad25d6
Moved template to root folder
tadaspetra Mar 5, 2026
f03c945
preload skills into context, not optimal due to context bloat
tadaspetra Mar 5, 2026
5e55264
Update Node
tadaspetra Mar 5, 2026
d6a984e
Update folders to "quickstart"
tadaspetra Mar 5, 2026
2a7c2ff
Update prompt to be action based
tadaspetra Mar 5, 2026
8e702ef
set versions for python template
tadaspetra Mar 5, 2026
b634937
Update .github/workflows/lint.yml
tadaspetra Mar 5, 2026
f9d75ff
dynamic dependencies
tadaspetra Mar 5, 2026
177a428
Merge branch 'examples-2' of https://github.com/elevenlabs/elevenlabs…
tadaspetra Mar 5, 2026
c539802
updated example versions
tadaspetra Mar 5, 2026
0a80f75
Name and private and prettier dependency in main
tadaspetra Mar 5, 2026
119768b
Allow main package-lock.json
tadaspetra Mar 5, 2026
1b7b529
Prettier
tadaspetra Mar 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Lint
on: [pull_request]
jobs:
ruff:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/ruff-action@v3

prettier:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 24
- run: npm ci
- run: npx prettier . --check
8 changes: 0 additions & 8 deletions .github/workflows/python.yml

This file was deleted.

38 changes: 35 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,12 @@ __pycache__

# dependencies
node_modules
**/package-lock.json
!/package-lock.json
pnpm-lock.yaml
yarn.lock
poetry.lock
Pipfile.lock

# IDEs and editors
/.idea
Expand All @@ -34,10 +40,13 @@ node_modules
/connect.lock
/coverage
/libpeerconnection.log
npm-debug.log
yarn-error.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*
testem.log
/typings
*.pem

# System Files
.DS_Store
Expand All @@ -46,7 +55,30 @@ Thumbs.db
# env
.env*
!.env.example
venv
venv/
.venv/

# formatters
.ruff_cache

# skills files
.agents/
skills-lock.json
.claude/
.kiro/

# next files
**/.next/
**/next-env.d.ts
**/out/
**/build/
**/.vercel/
**/.pnp
**/.pnp.*
**/.yarn/*
!**/.yarn/patches
!**/.yarn/plugins
!**/.yarn/releases
!**/.yarn/versions
**/coverage/
*.tsbuildinfo
14 changes: 0 additions & 14 deletions .pre-commit-config.yaml

This file was deleted.

30 changes: 30 additions & 0 deletions DESIGN.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Design Guidelines

Follow these conventions when building example UIs.

## Layout

- Use a single centered column (`max-w-2xl`, `mx-auto`, `px-6`)
- Keep the layout flat — avoid nested cards, panels, or bordered containers
- Use spacing (`mt-*`, `space-y-*`) and typography to separate sections, not boxes
- One control area, one content area — keep everything else unboxed

## Styling

- Neutral color palette for text and borders (`text-neutral-900`, `text-neutral-500`, `border-neutral-200`)
- White background (`bg-white`)
- No decorative styles: no gradients, heavy shadows, oversized rounded cards, ornamental icons
- Buttons: `rounded-md`, `px-4 py-2`, `text-sm font-medium`
- Small muted text for labels and status: `text-xs text-neutral-400`

## Components

- Prefer preloaded components from `components/ui/` when available
- Avoid adding custom UI components unless strictly required
- Render interactive components (waveforms, visualizations) inline without extra wrapper containers

## Principles

- Prioritize correctness and reliability over styling
- Keep it minimal and utilitarian
- Compact spacing, neutral colors, no decorative hero/nav elements
93 changes: 57 additions & 36 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,62 +4,83 @@
</a>
</p>

This collection of demos and projects showcases the ElevenLabs API and how you can start building next generation AI audio apps with it. Whether you're looking to integrate text-to-speech into your website, create dubbed content, or explore advanced conversational applications, you'll find valuable resources here.
Prompt-driven ElevenLabs examples for text-to-speech and speech-to-text. Each project includes:

## 🚀 Featured Projects
- `PROMPT.md` — instructions for agent-driven generation
- `template/` — starter files copied before generation
- `example/` — the generated, runnable example with its own `README.md`

### Conversational AI Demos
These projects offer practical examples of building real-time, voice-driven applications with rich interactivity.
> The legacy `examples/` folder is being deprecated and can be ignored for new work.

### Text-to-Speech (TTS) Demos
- **Standard TTS Demo**: A straightforward implementation of our core TTS functionality.
- **TTS WebSocket Demo with Latency Measurement**: Explore real-time text-to-speech with performance metrics.
## Current examples

### Native Mac App (Open Source)
A fully open-source native Mac application that brings ElevenLabs to your desktop. Written by Claude 3.5 and Cursor.
- [Text-to-Speech Quickstart (TypeScript)](text-to-speech/typescript/quickstart/example/README.md) - Generate an MP3 from text with the ElevenLabs JS SDK.
- [Text-to-Speech Quickstart (Python)](text-to-speech/python/quickstart/example/README.md) - Generate an MP3 from text with the ElevenLabs Python SDK.
- [Speech-to-Text Quickstart (TypeScript)](speech-to-text/typescript/quickstart/example/README.md) - Transcribe local audio files with Scribe v2.
- [Speech-to-Text Quickstart (Python)](speech-to-text/python/quickstart/example/README.md) - Transcribe local audio files with Scribe v2 using Python.
- [Real-Time Speech-to-Text (Next.js)](speech-to-text/nextjs/realtime/example/README.md) - Live microphone transcription with VAD in a Next.js app.

### Sound Effects Generation
Unleash your creativity with our sound effects generation demo. Create custom audio landscapes for your projects!
## Generate examples from prompts

### AudioNative React Demo
Embed ElevenLabs' text-to-speech capabilities directly into your React-based websites. This demo shows you how to seamlessly integrate our technology for a native-like audio experience.
The general prompt-runner workflow is in `scripts/generate-examples.sh` and is exposed as:

### Dubbing API Demo
Discover how to use our Dubbing API to create multilingual content effortlessly. Perfect for content creators and localization teams!
```bash
pnpm run generate
```

### Pronunciation Dictionaries
Learn how to work with pronunciation dictionaries to fine-tune the output of our voice models.
### Prerequisites

- `pnpm`
- `claude` CLI

## 🛠 Getting Started
Install root dependencies first:

To get started with these examples:
```bash
pnpm install
```

1. Clone this repository
2. Navigate to the project you're interested in
3. Follow the project-specific README for setup instructions
### Usage

For detailed API documentation and guides, visit our [Developer Docs](https://elevenlabs.io/docs/api-reference/getting-started).
Run all example prompts:

## 🤝 Contributing
```bash
pnpm run generate
```

We welcome contributions from the community! Before you start:
Run only one example:

1. Install the pre-commit hook:
```
pip install pre-commit
pre-commit install
```
2. Check out our [Contributing Guidelines](CONTRIBUTING.md) for more information on how to submit pull requests, report issues, and suggest improvements.
```bash
pnpm run generate speech-to-text/nextjs/realtime
```

## 📚 Learn More
Optional flags:

```bash
pnpm run generate -t 1200 # timeout per prompt in seconds (default: 600)
pnpm run generate -m opus # model selection (default: sonnet)
pnpm run generate -v # verbose output
pnpm run generate -m opus -t 1200 -v # combine flags
```

## Try an example directly

Each example has an `example/` folder with a README containing setup and run instructions. See the links in [Current examples](#current-examples) above.

## Contributing

We welcome contributions from the community. Install the pre-commit hook before submitting:

```bash
pip install pre-commit
pre-commit install
```

## Learn more

- [ElevenLabs Developer Docs](https://elevenlabs.io/docs/api-reference/getting-started)
- [API Reference](https://api.elevenlabs.io/docs)
- [ElevenLabs app](https://elevenlabs.io/)

## 📄 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## License

---
This project is licensed under the MIT License. See [LICENSE](LICENSE) for details.
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"colors" : [
"colors": [
{
"idiom" : "universal"
"idiom": "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
"info": {
"author": "xcode",
"version": 1
}
}
Original file line number Diff line number Diff line change
@@ -1,68 +1,68 @@
{
"images" : [
"images": [
{
"filename" : "elevenlogo-4.png",
"idiom" : "mac",
"scale" : "1x",
"size" : "16x16"
"filename": "elevenlogo-4.png",
"idiom": "mac",
"scale": "1x",
"size": "16x16"
},
{
"filename" : "elevenlogo16@2x.png",
"idiom" : "mac",
"scale" : "2x",
"size" : "16x16"
"filename": "elevenlogo16@2x.png",
"idiom": "mac",
"scale": "2x",
"size": "16x16"
},
{
"filename" : "elevenlogo-3.png",
"idiom" : "mac",
"scale" : "1x",
"size" : "32x32"
"filename": "elevenlogo-3.png",
"idiom": "mac",
"scale": "1x",
"size": "32x32"
},
{
"filename" : "elevenlogo32@2x.png",
"idiom" : "mac",
"scale" : "2x",
"size" : "32x32"
"filename": "elevenlogo32@2x.png",
"idiom": "mac",
"scale": "2x",
"size": "32x32"
},
{
"filename" : "elevenlogo.png",
"idiom" : "mac",
"scale" : "1x",
"size" : "128x128"
"filename": "elevenlogo.png",
"idiom": "mac",
"scale": "1x",
"size": "128x128"
},
{
"filename" : "elevenlogo128@2x.png",
"idiom" : "mac",
"scale" : "2x",
"size" : "128x128"
"filename": "elevenlogo128@2x.png",
"idiom": "mac",
"scale": "2x",
"size": "128x128"
},
{
"filename" : "elevenlogo-1.png",
"idiom" : "mac",
"scale" : "1x",
"size" : "256x256"
"filename": "elevenlogo-1.png",
"idiom": "mac",
"scale": "1x",
"size": "256x256"
},
{
"filename" : "elevenlogo256@2x.png",
"idiom" : "mac",
"scale" : "2x",
"size" : "256x256"
"filename": "elevenlogo256@2x.png",
"idiom": "mac",
"scale": "2x",
"size": "256x256"
},
{
"filename" : "elevenlogo-2.png",
"idiom" : "mac",
"scale" : "1x",
"size" : "512x512"
"filename": "elevenlogo-2.png",
"idiom": "mac",
"scale": "1x",
"size": "512x512"
},
{
"filename" : "elevenlogo512@2x.png",
"idiom" : "mac",
"scale" : "2x",
"size" : "512x512"
"filename": "elevenlogo512@2x.png",
"idiom": "mac",
"scale": "2x",
"size": "512x512"
}
],
"info" : {
"author" : "xcode",
"version" : 1
"info": {
"author": "xcode",
"version": 1
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
"info": {
"author": "xcode",
"version": 1
}
}
Loading