elevenlabs-custom-commands
How to author custom commands for the elevenlabs CLI using the co-generated SDK.
Informações da origem
- Repositório
- elevenlabs/cli
- Última atividade na origem
- 25 de setembro de 2026 às 10:31
- Idioma detectado do SKILL.md
- inglês
- Estrelas
- 102
- Forks
- 23
Opções de instalação
Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.
Revise os arquivos de origem
Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.
Exibindo SKILL.md
SKILL.md
Instruções da origem · Visualização somente leitura- name
- elevenlabs-custom-commands
- description
- How to author custom commands for the elevenlabs CLI using the co-generated SDK.
# Custom Commands for `elevenlabs`
## Overview
The `elevenlabs` CLI supports user-authored custom commands that are
compiled into the binary alongside the auto-generated API commands.
Custom commands get a fully-wired SDK client that inherits the CLI's
auth, retries, TLS, base URL, and global headers — zero configuration required.
## Architecture
```
cli/elevenlabs/custom.rs ← Your command handlers (protected by .fernignore)
cli/elevenlabs/sdk.rs ← Generated bridge: client() + block_on()
cli/elevenlabs/main.rs ← Generated entrypoint (calls custom::register)
elevenlabs-sdk/ ← Co-generated typed SDK crate
elevenlabs-types/ ← Co-generated typed model crate
```
## Adding a Custom Command
### 1. Edit `cli/elevenlabs/custom.rs`
This file is protected by `.fernignore` — `fern generate` will never
overwrite it. Register commands in the `register()` function:
```rust
use elevenlabs_sdk::api::*;
pub fn register(app: CliApp) -> CliApp {
let app = app.command(
clap::Command::new("get")
.about("Get history item")
.arg(clap::Arg::new("history_item_id").required(true))
,
|matches, ctx| {
let history_item_id = matches.get_one::<String>("history_item_id").unwrap();
let client = super::sdk::client(ctx);
let result = super::sdk::block_on(
client.history.get(history_item_id),
)?;
println!("{}", serde_json::to_string_pretty(&result).unwrap());
Ok(())
},
);
app
}
```
Then build and test:
```bash
cargo build
elevenlabs get <history_item_id>
```
### 2. Available SDK Clients
The `super::sdk::client(ctx)` call returns a `elevenlabs_sdk::api::Client`
with the following sub-clients:
| Field | Type | Description |
|-------|------|-------------|
| `client.history` | `elevenlabs_sdk::api::HistoryClient` | history operations |
| `client.text_to_sound_effects` | `elevenlabs_sdk::api::TextToSoundEffectsClient` | text_to_sound_effects operations |
| `client.audio_isolation` | `elevenlabs_sdk::api::AudioIsolationClient` | audio_isolation operations |
| `client.samples` | `elevenlabs_sdk::api::SamplesClient` | samples operations |
| `client.text_to_speech` | `elevenlabs_sdk::api::TextToSpeechClient` | text_to_speech operations |
| `client.text_to_dialogue` | `elevenlabs_sdk::api::TextToDialogueClient` | text_to_dialogue operations |
| `client.speech_to_speech` | `elevenlabs_sdk::api::SpeechToSpeechClient` | speech_to_speech operations |
| `client.text_to_voice` | `elevenlabs_sdk::api::TextToVoiceClient` | text_to_voice operations |
| `client.preview` | `elevenlabs_sdk::api::PreviewClient` | preview operations |
| `client.user` | `elevenlabs_sdk::api::UserClient` | user operations |
| `client.subscription` | `elevenlabs_sdk::api::SubscriptionClient` | subscription operations |
| `client.voices` | `elevenlabs_sdk::api::VoicesClient` | voices operations |
| `client.settings` | `elevenlabs_sdk::api::SettingsClient3` | settings operations |
| `client.accents` | `elevenlabs_sdk::api::AccentsClient` | accents operations |
| `client.ivc` | `elevenlabs_sdk::api::IvcClient` | ivc operations |
| `client.pvc` | `elevenlabs_sdk::api::PvcClient` | pvc operations |
| `client.samples` | `elevenlabs_sdk::api::SamplesClient2` | samples operations |
| `client.audio` | `elevenlabs_sdk::api::AudioClient3` | audio operations |
| `client.waveform` | `elevenlabs_sdk::api::WaveformClient` | waveform operations |
| `client.speakers` | `elevenlabs_sdk::api::SpeakersClient` | speakers operations |
| `client.audio` | `elevenlabs_sdk::api::AudioClient4` | audio operations |
| `client.verification` | `elevenlabs_sdk::api::VerificationClient` | verification operations |
| `client.captcha` | `elevenlabs_sdk::api::CaptchaClient` | captcha operations |
| `client.samples` | `elevenlabs_sdk::api::SamplesClient3` | samples operations |
| `client.audio` | `elevenlabs_sdk::api::AudioClient5` | audio operations |
| `client.studio` | `elevenlabs_sdk::api::StudioClient` | studio operations |
| `client.projects` | `elevenlabs_sdk::api::ProjectsClient` | projects operations |
| `client.pronunciation_dictionaries` | `elevenlabs_sdk::api::PronunciationDictionariesClient2` | pronunciation_dictionaries operations |
| `client.content` | `elevenlabs_sdk::api::ContentClient` | content operations |
| `client.snapshots` | `elevenlabs_sdk::api::SnapshotsClient` | snapshots operations |
| `client.chapters` | `elevenlabs_sdk::api::ChaptersClient` | chapters operations |
| `client.snapshots` | `elevenlabs_sdk::api::SnapshotsClient2` | snapshots operations |
| `client.dubbing` | `elevenlabs_sdk::api::DubbingClient` | dubbing operations |
| `client.project` | `elevenlabs_sdk::api::ProjectClient` | project operations |
| `client.language` | `elevenlabs_sdk::api::LanguageClient` | language operations |
| `client.transcript` | `elevenlabs_sdk::api::TranscriptClient3` | transcript operations |
| `client.transcript` | `elevenlabs_sdk::api::TranscriptClient2` | transcript operations |
| `client.resource` | `elevenlabs_sdk::api::ResourceClient` | resource operations |
| `client.language` | `elevenlabs_sdk::api::LanguageClient2` | language operations |
| `client.segment` | `elevenlabs_sdk::api::SegmentClient` | segment operations |
| `client.speaker` | `elevenlabs_sdk::api::SpeakerClient` | speaker operations |
| `client.segment` | `elevenlabs_sdk::api::SegmentClient2` | segment operations |
| `client.audio` | `elevenlabs_sdk::api::AudioClient2` | audio operations |
| `client.transcript` | `elevenlabs_sdk::api::TranscriptClient` | transcript operations |
| `client.transcripts` | `elevenlabs_sdk::api::TranscriptsClient` | transcripts operations |
| `client.models` | `elevenlabs_sdk::api::ModelsClient` | models operations |
| `client.audio_native` | `elevenlabs_sdk::api::AudioNativeClient` | audio_native operations |
| `client.usage` | `elevenlabs_sdk::api::UsageClient` | usage operations |
| `client.pronunciation_dictionaries` | `elevenlabs_sdk::api::PronunciationDictionariesClient` | pronunciation_dictionaries operations |
| `client.rules` | `elevenlabs_sdk::api::RulesClient` | rules operations |
| `client.workspace` | `elevenlabs_sdk::api::WorkspaceClient` | workspace operations |
| `client.audit_logs` | `elevenlabs_sdk::api::AuditLogsClient` | audit_logs operations |
| `client.auth_connections` | `elevenlabs_sdk::api::AuthConnectionsClient` | auth_connections operations |
| `client.groups` | `elevenlabs_sdk::api::GroupsClient` | groups operations |
| `client.members` | `elevenlabs_sdk::api::MembersClient2` | members operations |
| `client.invites` | `elevenlabs_sdk::api::InvitesClient` | invites operations |
| `client.members` | `elevenlabs_sdk::api::MembersClient` | members operations |
| `client.resources` | `elevenlabs_sdk::api::ResourcesClient` | resources operations |
| `client.usage` | `elevenlabs_sdk::api::UsageClient2` | usage operations |
| `client.analytics` | `elevenlabs_sdk::api::AnalyticsClient2` | analytics operations |
| `client.requests` | `elevenlabs_sdk::api::RequestsClient` | requests operations |
| `client.service_accounts` | `elevenlabs_sdk::api::ServiceAccountsClient` | service_accounts operations |
| `client.api_keys` | `elevenlabs_sdk::api::ApiKeysClient` | api_keys operations |
| `client.webhooks` | `elevenlabs_sdk::api::WebhooksClient` | webhooks operations |
| `client.music` | `elevenlabs_sdk::api::MusicClient` | music operations |
| `client.composition_plan` | `elevenlabs_sdk::api::CompositionPlanClient` | composition_plan operations |
| `client.finetunes` | `elevenlabs_sdk::api::FinetunesClient` | finetunes operations |
| `client.speech_to_text` | `elevenlabs_sdk::api::SpeechToTextClient` | speech_to_text operations |
| `client.transcripts` | `elevenlabs_sdk::api::TranscriptsClient2` | transcripts operations |
| `client.forced_alignment` | `elevenlabs_sdk::api::ForcedAlignmentClient` | forced_alignment operations |
| `client.agents` | `elevenlabs_sdk::api::AgentsClient` | agents operations |
| `client.conversations` | `elevenlabs_sdk::api::ConversationsClient` | conversations operations |
| `client.audio` | `elevenlabs_sdk::api::AudioClient` | audio operations |
| `client.feedback` | `elevenlabs_sdk::api::FeedbackClient` | feedback operations |
| `client.messages` | `elevenlabs_sdk::api::MessagesClient` | messages operations |
| `client.tags` | `elevenlabs_sdk::api::TagsClient` | tags operations |
| `client.files` | `elevenlabs_sdk::api::FilesClient` | files operations |
| `client.topics` | `elevenlabs_sdk::api::TopicsClient` | topics operations |
| `client.analysis` | `elevenlabs_sdk::api::AnalysisClient` | analysis operations |
| `client.twilio` | `elevenlabs_sdk::api::TwilioClient` | twilio operations |
| `client.exotel` | `elevenlabs_sdk::api::ExotelClient` | exotel operations |
| `client.whatsapp` | `elevenlabs_sdk::api::WhatsappClient` | whatsapp operations |
| `client.summaries` | `elevenlabs_sdk::api::SummariesClient` | summaries operations |
| `client.widget` | `elevenlabs_sdk::api::WidgetClient` | widget operations |
| `client.avatar` | `elevenlabs_sdk::api::AvatarClient` | avatar operations |
| `client.link` | `elevenlabs_sdk::api::LinkClient` | link operations |
| `client.knowledge_base` | `elevenlabs_sdk::api::KnowledgeBaseClient` | knowledge_base operations |
| `client.documents` | `elevenlabs_sdk::api::DocumentsClient` | documents operations |
| `client.summaries` | `elevenlabs_sdk::api::SummariesClient2` | summaries operations |
| `client.chunk` | `elevenlabs_sdk::api::ChunkClient` | chunk operations |
| `client.chunks` | `elevenlabs_sdk::api::ChunksClient` | chunks operations |
| `client.crawl_jobs` | `elevenlabs_sdk::api::CrawlJobsClient` | crawl_jobs operations |
| `client.document` | `elevenlabs_sdk::api::DocumentClient` | document operations |
| `client.tests` | `elevenlabs_sdk::api::TestsClient` | tests operations |
| `client.folders` | `elevenlabs_sdk::api::FoldersClient` | folders operations |
| `client.invocations` | `elevenlabs_sdk::api::InvocationsClient` | invocations operations |
| `client.users` | `elevenlabs_sdk::api::UsersClient` | users operations |
| `client.triage_tickets` | `elevenlabs_sdk::api::TriageTicketsClient` | triage_tickets operations |
| `client.phone_numbers` | `elevenlabs_sdk::api::PhoneNumbersClient` | phone_numbers operations |
| `client.llm_usage` | `elevenlabs_sdk::api::LlmUsageClient` | llm_usage operations |
| `client.llm` | `elevenlabs_sdk::api::LlmClient` | llm operations |
| `client.tools` | `elevenlabs_sdk::api::ToolsClient` | tools operations |
| `client.executions` | `elevenlabs_sdk::api::ExecutionsClient` | executions operations |
| `client.settings` | `elevenlabs_sdk::api::SettingsClient` | settings operations |
| `client.secrets` | `elevenlabs_sdk::api::SecretsClient` | secrets operations |
| `client.batch_calls` | `elevenlabs_sdk::api::BatchCallsClient` | batch_calls operations |
| `client.sip_trunk` | `elevenlabs_sdk::api::SipTrunkClient` | sip_trunk operations |
Ver no GitHubEste SKILL.md e muito grande, entao o SkillsMP mostra aqui apenas a primeira secao. Ver no GitHub