Skip to main content

elevenlabs-custom-commands

How to author custom commands for the elevenlabs CLI using the co-generated SDK.

معلومات المصدر

المستودع
elevenlabs/cli
آخر نشاط في المصدر
٢٥ سبتمبر ٢٠٢٦ في ١٠:٣١
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
١٠٢
التفرعات
٢٣

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
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 |
عرض على GitHub
ملف SKILL.md هذا كبير جدا، لذلك يعرض SkillsMP القسم الاول فقط هنا. عرض على GitHub