Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 3 additions & 0 deletions integrations/elevenlabs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node_modules
dist
bin
47 changes: 47 additions & 0 deletions integrations/elevenlabs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# ElevenLabs Integration

Connect ElevenLabs to CORE to track AI voice generation history, monitor your voice library, and surface TTS activity in your workspace timeline.

## Overview

The ElevenLabs integration uses your **API Key** to authenticate and syncs voice generation data on a schedule.

### What gets synced automatically

- **Generation history** — recent text-to-speech jobs (voice used, model, character count, text preview)
- **Voice library** — cloned or generated voices added to your account

## Authentication

1. Log in to [ElevenLabs](https://elevenlabs.io)
2. Click your profile avatar → **Profile**
3. Copy the **API Key** shown on the page
4. Paste it into CORE when connecting the integration

## Environment Variables

| Variable | Description |
|---|---|
| `ELEVENLABS_API_KEY` | Your ElevenLabs API key |

## Development

### Build
```bash
pnpm install
pnpm build
```

### Test via CLI
```bash
# Get spec
node bin/index.cjs spec

# Run a sync
node bin/index.cjs sync \
--config '{"api_key":"sk_your_key_here"}'
```

## License

MIT
45 changes: 45 additions & 0 deletions integrations/elevenlabs/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
{
"name": "@core/elevenlabs",
"version": "0.1.0",
"description": "ElevenLabs integration for CORE - AI voice generation history, voice library, and usage tracking",
"main": "./bin/index.cjs",
"type": "module",
"files": [
"elevenlabs",
"bin"
],
"bin": {
"elevenlabs": "./bin/index.cjs"
},
"scripts": {
"build": "rimraf bin && bun build src/index.ts --outfile dist/index.js --target node",
"lint": "eslint --ext js,ts,tsx src/ --fix",
"prettier": "prettier --config .prettierrc --write ."
},
"devDependencies": {
"@babel/preset-typescript": "^7.26.0",
"@types/node": "^18.0.20",
"eslint": "^9.24.0",
"eslint-config-prettier": "^10.1.2",
"eslint-import-resolver-alias": "^1.1.2",
"eslint-plugin-import": "^2.31.0",
"eslint-plugin-jest": "^27.9.0",
"eslint-plugin-prettier": "^5.2.1",
"eslint-plugin-unused-imports": "^2.0.0",
"prettier": "^3.4.2",
"rimraf": "^3.0.2",
"tslib": "^2.8.1",
"typescript": "^4.7.2",
"tsup": "^8.0.1"
},
"publishConfig": {
"access": "public"
},
"dependencies": {
"axios": "^1.7.9",
"commander": "^12.0.0",
"@redplanethq/sdk": "0.1.14",
"zod": "^3.22.4",
"zod-to-json-schema": "^3.22.4"
}
}
Loading