11Labs CLI——作为法典的代理人

命令行接口 十一实验室平台。 。 。 .
CLI做两件事:
- 完全 API 访问 ——每11Labs API端点作为子命令可用(
elevenlabs <resource> <method>) (中文(简体) ). - 代理作为代码 ——管理本地配置文件中的谈话AI代理,有模板,分支,并进行推/拉同步.
目录
安装
主机( macOS / Linux)
brew install elevenlabs/tap/elevenlabs
Scoop (窗户)
scoop bucket add elevenlabs https://github.com/elevenlabs/scoop-bucket
scoop install elevenlabs
npm (macOS / Linux / Windows) (中文(简体) )
npm install -g @elevenlabs/cli
通过稀薄的发射装置安装相同的二进制,选择正确的构造
你的纲领。 使用 npx @elevenlabs/cli <command> 运行一次没有
在全球安装.
外壳( macOS / Linux)
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/elevenlabs/cli/releases/latest/download/elevenlabs-cli-installer.sh | sh
Power Shell (窗户)
powershell -ExecutionPolicy ByPass -c "irm https://github.com/elevenlabs/cli/releases/latest/download/elevenlabs-cli-installer.ps1 | iex"
从源头构建
安装 Rust工具链,则:
git clone https://github.com/elevenlabs/cli.git
cd cli
cargo build --release
二进制降落在 ./target/release/elevenlabs运行它作为 elevenlabs
从任何地方,安装它与货物, 它复制到 ~/.cargo/bin数字 :
cargo install --path .
认证
每一份申请都经过认证 11Labs API 密钥,作为 xi-api-key 头曰. 在环境中设定:
export ELEVENLABS_API_KEY=xi-...
A 类 .env 工作目录中的文件是自动加载的,所以设置 ELEVENLABS_API_KEY=xi-... 这也是可行的,有助于将关键范围保持在一个项目上.
对于一次性呼叫,通过每个命令:
elevenlabs user get --xi-api-key xi-...
快开始
列出可用的命令 :
elevenlabs --help
调用 API 端点 :
elevenlabs <resource> <method>
运行 elevenlabs <resource> --help 以查看资源的现有方法.
语音文本
将文本转换为语音并播放, 不选择文件路径或找到玩家 :
elevenlabs say "this came from the terminal"
echo "build finished" | elevenlabs say # or: elevenlabs say -
语音、模型、音频格式和播放器默认为您存储的所有内容, 并且每个运行都可以被覆盖 :
elevenlabs say config # show the current defaults
elevenlabs say config voice EXAVITQu4vr4xnSDxMaL
elevenlabs say config model eleven_multilingual_v2
elevenlabs say config player mpv
elevenlabs say config voice --unset # back to the built-in default
elevenlabs say "one off" --voice JBFqnCBsd6RMkjVDRZzb --model eleven_flash_v2_5 # faster, no audio tags
elevenlabs say "save it" --output out.mp3 # write a file, skip playback
默认存储于 ~/.elevenlabs/config.json 并行 数据存储。从框出 say 用途 eleven_v4 ——最有表现力的模型,并(与v3)是唯一一个读取: 音频标签 喜欢 elevenlabs say "[whispers] it worked" 作为交付而不是言语。 音频格式跟随播放器,除非 --output-format 或一个 --output 文件名上说不是.
将弹出贝壳播放到盒子上的任何玩家, 更喜欢读 stdin 的贝壳, 因此音频在下载完成前开始 : ffplay, (中文(简体) ), mpv, (中文(简体) ), afplay (macOS), (英语:, paplay编号 :aplay (林纳克), Media.SoundPlayer (温道. 安装 ffmpeg 数据 或者说 密码v 如果没有人在场,或点 --player 自己来.
config是一个子命令,所以说 准确的字需要elevenlabs say -- config。 。 。 .
等待流量结果
流程图像、视频和文字对语音世代,以及模板运行,在背景中完成: create 随即返回 status: pending。 。 。 . create-and-wait 使用与 create,然后投票,直到结果 completed 或者说 failed 并打印它(与 get:
elevenlabs flows image create-and-wait \
--json '{"model_id": "bytedance-seedream-5-lite", "prompt": "a corgi on a beach"}'
elevenlabs flows templates list # find a template and its input ports
elevenlabs flows templates runs create-and-wait \
--template-id <template_id> --inputs '{"prompt": "a corgi"}' --wait-timeout 600
elevenlabs flows video create-and-wait --json - --query content_url < request.json
它在检查之间等待 只要服务器的 Retry-After 标题问,从不小于 --min-poll-interval (默认 3s). 当 stderr 是一个终端时, 进度会写入 stderr --debugstdout只带最后的结果,所以 --format, (中文(简体) ), --query 和管子的行为 因为他们 get。 。 。 .
failed如其它结果一样打印,命令退出1。 。 。 .--wait-timeout <seconds>在那之后放弃( 默认: 无限期地等待) 。 它离开1误差reason实值waitTimeout,并携带id和get命令继续使用。 工作持续运行在服务器上.--dry-run打印创建请求并发送任何信息, 如create。 。 。 .
生产,更喜欢设置 webhook 打开 create 并处理webhook事件, 而不是进行一个进程打开.
代理作为代码
从本地配置文件管理对话的AI代理. elevenlabs agents init 脚手架为一工程;代理配置以JSON,YAML或TOML为活盘并同步到11Labs. 拉出配置保留了生电线场,被逐字推后,所以无所不包地走来走去.
项目结构
your_project/
├── agents.json # Agent registry: ids + branch mappings → config paths
├── tools.json # Tool registry
├── tests.json # Test registry
├── agent_configs/ # Agent configuration files
├── tool_configs/ # Tool configuration files
└── test_configs/ # Test configuration files
图标
# Scaffold a new project (pass a path, or --override to reset an existing one)
elevenlabs agents init [path] [--override]
# Create an agent from a template (or an existing file), upload it, and register it
elevenlabs agents add <name> [--template <template>] [--output-path <path> | --config-format json|yaml|toml]
elevenlabs agents add [name] --from-file <path>
# Show the status of locally-configured agents
elevenlabs agents status
# Sync configs with ElevenLabs (push force-overrides main + registered branches)
elevenlabs agents push [--agent <agent_id>] [--branch <name|id>] [--version-description <text>] [--dry-run]
elevenlabs agents pull [--agent <agent_id>] [--branch <name|id>] [--all-branches] [--update] [--all] [--config-format json|yaml|toml] [--dry-run]
# List available agent templates, or print one's full configuration
elevenlabs agents templates list
elevenlabs agents templates show <template>
# Print an embeddable HTML widget snippet for an agent
elevenlabs agents widget embed <agent_id>
# Run the tests attached to an agent (polls to completion; exits non-zero on failure)
elevenlabs agents test <agent_id>
# Draw an agent's workflow in the terminal, or print it as Mermaid (local files only, no API key)
elevenlabs agents workflow diagram <config-path|agent_id|name> [--format ascii|mermaid|mermaid-md]
# Show how agents connect to tools, tests, documents and each other (local files only)
elevenlabs agents graph [config-path|agent_id|name] [--format ascii|mermaid|mermaid-md]
elevenlabs agents graph --uses <id|name>
配置文件格式
配置文件的扩展名设置格式 : .json, (中文(简体) ), .yaml编号 :.yml 或者说 .toml登记文件(agents.json, (中文(简体) ), tools.json, (中文(简体) ), tests.json留下来 JSON 和他们的 config 路径可以指向其中的任何一个,因此可以手动转换一个配置并更新其路径.
新文件是JSON,除非您选择了另一种格式. agents pull --config-format toml 将新代理写为 TOML, 新的分支文件遵循其代理配置的格式 。 已经存在的文件保留格式 . agents add --from-file support.yaml 也保存代理配置为 YAML ; --config-format 推翻它.
TOML 没有 null,所以写入 TOML 将空出字段。 对于特工来说,没有什么损失: push 只更改其发送的字段,一个已取消设置的字段。 TOML 无法做到的就是清除一个字段,因为删除它的行会让"十一行"上的值保持不变. 为了清理一个,设置到 null 在JSON或YAML配置。 一些空是数据而不是未设置的字段:一个在列表中(一个项目,或者混合值列表中一个对象的字段),或者一个自由形式值,如一个工具参数的任意位置 constant_value。与其中之一的配置不能保存为TOML; CLI 这样说并命名字段.
一个命名空间的两个表面
elevenlabs agents 持有两种命令,它有助于知道 你使用的是什么:
| 工作流程命令 | API 命令 | |
|---|---|---|
| 什麽 | init, (中文(简体) ), add, (中文(简体) ), status, (中文(简体) ), push, (中文(简体) ), pull, (中文(简体) ), test, (中文(简体) ), templates, (中文(简体) ), widget embed, (中文(简体) ), workflow diagram, (中文(简体) ), graph | create, (中文(简体) ), get, (中文(简体) ), list, (中文(简体) ), update, (中文(简体) ), delete, (中文(简体) ), duplicate, (中文(简体) ), run_tests和分组 branches, (中文(简体) ), tools, (中文(简体) ), tests, (中文(简体) ), conversations |
| 运行于 | 您的本地工程文件, 将它们与 11Labs 同步 | API 直接——一个命令,一个请求 |
| 参数 | 定位,例如:. agents test <agent_id> | 旗帜等. agents get --agent-id <id> |
| 产出 | 进度案文 | API的答复--format json|table|yaml|csv(中文(简体) ) |
API命令拥有原始名称,因此工作流程只增加了API没有的动词. 有两个后果值得了解:
- 列名 —— 说
agents list是API在您工作空间的代理列表 。 对于什么配置 当地,使用时agents status。 。 。 . - 删除 —— 说
agents delete --agent-id <id>远程删除( API 命令)。 没错 没有 删除本地配置文件或其agents.json条目;自行删除.
从 v0 (
@elevenlabs/cli: v0 级agents list显示本地配置和agents delete <id>占据了位置 并清理了当地。 在v1中,这两个名称都属于API表面——使用agents status用于本地视图,以及--agent-id用于删除。 v0 级agents widget <id>现在agents widget embed <id>,从agents widget是一个 API 分组.
可视化工作流程
工作流程作为 workflow.nodes 编号 : workflow.edges 在代理配置中,它既无所失又难以读取,更难作为diff审查. agents workflow diagram 将一个变成流程图:
# Draw it in the terminal: a config or workflow file, or an id or name from agents.json
elevenlabs agents workflow diagram Support
elevenlabs agents workflow diagram agent_configs/support.json
elevenlabs agents workflow diagram workflows/support.json # a bare workflow, e.g. exported by an SDK's Workflow builder
elevenlabs agents workflow diagram --all
# Print it as Mermaid source, to save, or to paste into docs or a PR comment
elevenlabs agents workflow diagram Support --format mermaid > docs/support-flow.mmd
elevenlabs agents workflow diagram Support --format mermaid-md # wrapped in a ```mermaid fence
elevenlabs agents workflow diagram --all --format mermaid-md # every agent and branch, one section each
它只读取本地文件:没有 API 密钥,没有网络,所以它也在 CI 在叉上运行.
默认格式, ascii,绘制框和箭头(在 stdout 是一个终端时以颜色表示 NO_COLOR 已设置 。 为了保持工作流程的狭义,可以读取,每个边缘条件被绘制为边缘上被编号的密钥,并用下面的传说全文写出:
╭───────╮
│ Start │
╰───────╯
│
│
│
│
╭───╮
│ 1 │
╰───╯
│
│
▼
┌───────────────────┐
║ Tool ║
║ tool_lookup_order ║
└───────────────────┘
│ │
└───┐ ┌──┘
│ │
│ │
╭───╮ ╭───╮
│ 2 │ │ 3 │
╰───╯ ╰───╯
│ │
│ │
▼ │
╭───────────╮ ▼
│ Say │ ╭───────────────╮
│ Apologize │ │ End (success) │
╰───────────╯ ╰───────────────╯
1 The caller has given an order number
2 failure
3 success
几件事让繁忙的工作流程可以读取,所以行不会交叉或一起跑:
- 退后一步( 后退 ) 以分贝结束, 例如
6 ↩传说中说:6 Changes topic (back to 'Ask for the order number')。 。 。 . - 在每个路径上划出一条通往(结束、代理或电话传输)的几条路径.
- 当一个节点的分枝仍然会交叉时,它的盒子会被拓宽,或者分枝会重新排列,以不交叉的抽取为准.
- 当绘图比终端宽(或
COLUMNS),长ID被缩短,如:tool_01j…sfb67如果它仍然不合适, 一张纸条说;--format mermaid有完整的身份证.
--format mermaid 指纹 美人鱼, GitHub 在Markdown 文件、 问题和 PR 评论中给出的。 每个节点类型都有自己的形状和颜色(启动/结束,比如工具,更新状态,子代理,以及代理或电话传输);类型CLI尚不知道被绘制为平淡的破碎框. 边缘标签概括了条件:如果它有一个标签,则它的标签,否则LLM条件文本(已通关), success编号 :failure 用于工具结果,或 expression。向另一方向绘制一个后向状态作为点箭头。 节点和边缘由 ID 排序出,所以输出只在工作流程完成和 diff 清理时才会改变.
flowchart TD
n_apologize("Say · Apologize")
n_done(["End (success)"])
n_lookup[["Tool · tool_lookup_order"]]
n_start_node(["Start"])
n_lookup -->|"failure"| n_apologize
n_lookup -->|"success"| n_done
n_start_node -->|"The caller has given an order number"| n_lookup
绘制项目图
代理配置(Agent configs)是指工具,测试,知识基础文档等由ID代理的代理. agents graph 追踪所有代理人的参考文献 agents.json 并解决他们反对 tools.json, (中文(简体) ), tests.json 财务报告和审定财务报表 agents.json,这样你就可以看到什么与什么相关联,什么变化影响.
# Every agent, one drawing each, in the terminal
elevenlabs agents graph
# One agent: everything it uses, and every agent that hands off to it
elevenlabs agents graph Billing
# The whole project as one Mermaid graph, for docs or a PR comment
elevenlabs agents graph --format mermaid-md
# Which agents use this tool (or test, agent or document)? An ID, or a tool's or test's name
elevenlabs agents graph --uses tool_refund
内容如下:
- 工具输入
prompt.tool_ids,工作流程工具节点和additional_tool_ids - 代理在
transfer_to_agent工具和工作流程standalone_agent节点( 线条箭头); 交接到该分支已注册的分支点 - 测试
platform_settings.testing.attached_tests - 知识基础文档
prompt.knowledge_base财务报告和审定财务报表additional_knowledge_base,以配置给出的名称显示,因为文档没有本地注册
在工作流程节点的快速覆盖计数中引用。 不在工程中的ID,如仪表板上制作的工具或向repo外的代理人交接,被显示为外出而非投放.
在终端中,每个代理都是自己抽取的,作为一张卡片,上面有各种连接的倒数,环绕它的东西被组合成每个类型的一个盒子:左手交给它的代理,而右手交给它的代理,工具,测试和文件. 交接是厚重的箭头,箱子是订购的,所以没有两行交叉. 如果绘图比终端宽(或 COLUMNS,在设定时,将长ID缩短到开始和结束,如 tool_01jx…sfb67。 。 。 . --format mermaid 将整个工程画成一个图表,每个资源都有节点.
┌──────────────┐
║ Tools (1) ║
║ issue_refund ║
┌──────────────────┐────────►└──────────────┘
┌─────────────────────────┐ │ Agent │
│ Handed off from (2) │ │ Billing │
│ Support │━━━━━►│ 2 hand off to it │
│ Support (branch 'beta') │ │ 1 tool │
└─────────────────────────┘ │ 1 document │ ┌────►┌───────────────┐
└──────────────────┘────┘ ( Documents (1) )
( Pricing FAQ )
└───────────────┘
--uses 打印每个引用,分页的一行:代理的ID,名称,以及引用的位置。 这使得脚本变得容易,例如检查一个已修改的工具配置会影响哪些代理:
agent_billing Billing prompt.tool_ids
agent_support Support (branch 'beta') workflow node 'refunds'
工具
管理 Webhook 和客户端工具 您的代理引用 。 工具在 tools.json 下方为配置 tool_configs/。 。 。 .
# Create a webhook or client tool, upload it, and register it in tools.json
elevenlabs tools add <name> [--type webhook|client] [--config-path <path>]
# Sync tool configs with ElevenLabs
elevenlabs tools push [--tool <tool_id>] [--dry-run]
elevenlabs tools pull [--tool <tool_id>] [--output-dir tool_configs] [--update] [--all] [--dry-run]
# Delete a tool locally and in ElevenLabs
elevenlabs tools delete <tool_id>
elevenlabs tools delete --all
测试
管理代理测试, 跟踪到 tests.json 下方为配置 test_configs/把它们附在特工的身上 platform_settings.testing.attached_tests 和运行他们在一起 elevenlabs agents test <agent_id>。 。 。 .
# Create a test from a template, upload it, and register it in tests.json
elevenlabs tests add <name> [--template basic-llm|tool|conversation-flow|customer-service]
elevenlabs tests templates list
# Sync test configs with ElevenLabs
elevenlabs tests push [--test <test_id>] [--config-dir test_configs] [--dry-run]
elevenlabs tests pull [--test <test_id>] [--output-dir test_configs] [--update] [--all] [--dry-run]
# Delete a test locally and in ElevenLabs
elevenlabs tests delete <test_id>
elevenlabs tests delete --all
tests push (单位:千美元) 自动发现 未跟踪配置: 它扫描 --config-dir 递归 .json 看起来像测试的文件(a) chat_history 数组或一个 success_condition 字符串)并注册到 tests.json 在推前,可以不手工编辑索引而将一个配置放入并推出.
模板
预建的起始配置 agents add列表中 elevenlabs agents templates list (检查一个与 agents templates show <template>:
| 模板 | 说明 |
|---|---|
default | 包含所有可用字段和合理默认的完整配置 |
minimal | 只有必要字段的最小配置 |
voice-only | 优化仅限声音的对话 |
text-only | 优化仅限文本的对话 |
customer-service | 为客户服务设想预设 |
assistant | 一般用途 AI 助理配置 |
数据居住
选择您请求所在的区域 。 设置存储于 ~/.elevenlabs/config.json 适用于 每个 命令 :
elevenlabs residency # show the current region and its base URL
elevenlabs residency eu-residency # switch region
| 地区 | 基础 URL |
|---|---|
global (默认) | https://api.elevenlabs.io |
us | https://api.us.elevenlabs.io |
eu-residency | https://api.eu.residency.elevenlabs.io |
in-residency | https://api.in.residency.elevenlabs.io |
sg-residency | https://api.sg.residency.elevenlabs.io |
--base-url 财务报告和审定财务报表 ELEVENLABS_BASE_URL 当您需要一次性重置时优先。 本区域还制定了 server-location 属性 agents widget。 。 。 .
UI 组件
安装 十一实验室 包含到您的项目中的组件( 代表为 shadcn,因此需要节点/npm:
elevenlabs components add # all components
elevenlabs components add conversation-bar
使用量
每个API资源都作为子命令(例如. elevenlabs <resource> <method>) (中文(简体) ). 运行 elevenlabs <resource> --help 以查看可用的方法.
作为旗帜或JSON提供请求参数:
elevenlabs <resource> <method> --json '{"key": "value"}'
文档
见 页:1 为完整命令参考.
高级
通用旗帜
每个行动都有这些旗帜:
| 旗帜 | 说明 |
|---|---|
--dry-run | 本地验证请求并打印 HTTP 请求而不发送 |
--json <JSON|-> | 作为JSON(或 - 改为 stdin) |
--params <JSON> | 将额外参数合并为 JSON( 覆盖单个旗帜) |
--format <json|table|yaml|csv> | 输出格式( 默认) json(中文(简体) ) |
--output <PATH> | 写入文件的二进制回复 |
--base-url <URL> | 覆盖 API 基础 URL |
--page-all | 作为 NDJSON 的自动标签和流结果 |
--page-limit <N> | 自动剪贴时获取的最大页面( 默认) 10(中文(简体) ) |
-q, --quiet | 成功时禁用 stdout 输出( 错误仍为 stderr ) |
--intent <TEXT> | 可选的单一判决对你想做什么的描述(见 告诉我们你在做什么(中文(简体) ) |
--telemetry <on|off> | 请求是否包含匿名平台标记( 见 遥测(中文(简体) ) |
环境变量
| 变量 | 说明 |
|---|---|
ELEVENLABS_BASE_URL | 覆盖 API 基础 URL |
ELEVENLABS_CA_BUNDLE | 带有额外信任根的 PEM 文件路径( 或) SSL_CERT_FILE(中文(简体) ) |
ELEVENLABS_INSECURE=1 | 跳过 TLS 校验( 只调试) |
ELEVENLABS_PROXY | HTTP( S) 代理 URL |
ELEVENLABS_TIMEOUT_SECS | 请求总超时数( 秒) |
ELEVENLABS_TELEMETRY=off | 关闭匿名平台标签( 见 遥测(中文(简体) ) |
标准环境变量(HTTPS_PROXY 编号 : HTTP_PROXY 编号 : NO_PROXY 编号 : SSL_CERT_FILE) 也享有荣誉.
告诉我们你在做什么
多数 elevenlabs 交通来自AI特工. 两个可选输入允许代理
说它在做什么,它不能做什么, 这就是告诉我们什么
命令来构建下一个。 两者都是选入; CLI 行为相同,没有
他们.
--intent - 为什么这个命令要运行。 发作为 X-Agent-Intent
请求头.
elevenlabs voices search --intent "pick a narrator voice for an audiobook"
旗帜是唯一的输入——没有环境变量设置 打算一次完成整个任务。 每个命令的新句子是故意的: 根据顺序,一系列命令的意向 显示呼叫者是什么 操作中, 无法使用全任务字符串 .
一个被拒绝的值(见下文)会在stderr上发出警告,并且没有发送标题,但 命令仍然运行:遥测绝不能是请求失败的原因.
elevenlabs feedback missing-capability 你需要CLI做点什么
没有。 没有任何要求 附加,所以它得到自己的命令:
elevenlabs feedback missing-capability \
"no way to batch-render a script to separate files per speaker"
在两个字段外保留个人数据
说明 目标而不是数据。 资源标识( E)agent_01jz…和
项目相对路径很好; 姓名、客户内容和任何您想要的
不是在分析店里想要的 不是.
其中两项是强制执行的,而不是信任的。 值超过500
字符,或带有证书或绝对文件路径的字符被删除
在请求建立之前—— --intent 在 stderr 和命令上发出警告
正常收益,同时 feedback 失败, 您可以重写它 。 其余的就是
指导:故意不过滤联系方式,因为电话和
没有这些支持能力差距就无法描述.
为零保留和企业完全保留免费文本 工作空间,是实际存在的边界.
遥测
每个要求 User-Agent 匿名地说,大概是CLI运行的地方
我们可以看到哪些平台需要工作 有多少平台需要工作
人们尝试CLI与 npx 在安装前 :
elevenlabs-cli/1.7.1 os/macos install/npx
os/ 实值 macos, (中文(简体) ), linux, (中文(简体) ), windows 或者说 other· ; env/当出现时 ssh, (中文(简体) ),
container 或者说 wsl· ; install/ 从二进制的坐落地读取(npx, (中文(简体) ),
bunx, (中文(简体) ), pnpm-dlx, (中文(简体) ), yarn-dlx, (中文(简体) ), npm, (中文(简体) ), homebrew, (中文(简体) ), scoop, (中文(简体) ), installer 或者说
other(三); agent/ 是编码代理或编辑器终端命令运行在,
claude-code, (中文(简体) ), claude-desktop, (中文(简体) ), cursor, (中文(简体) ), codex, (中文(简体) ), gemini-cli 或者说 vscode, (中文(简体) ),
从该工具集的变量中读取. cursor 财务报告和审定财务报表 vscode 也涵盖a
命令在编辑器终端中输入。 机器没有别的东西
发送: 没有路径, 主机名或 id . onboard 将相同的值放在
签入审批链接.
onboard 并说项目最后的签注是如何结束的 当它结束于
过去的一天 : signin/<outcome> 根据委员会的要求 cli_prev 下一个
核准链接,其中 <outcome> 是一个固定的单词, 例如 timed-out, (中文(简体) ),
stopped 或者说 no-key。链接还包含 cli_prev_id,开始 a
SHA -256 散列的标志 state,因此可以匹配到它的批准
页面; 状态本身从未发送.
把它关掉,通过 --telemetry off 转到任何命令,或设置
ELEVENLABS_TELEMETRY=off (或 DO_NOT_TRACK=1)通通通通地关.
--telemetry on 打开一个命令 关机不会
删除 cmd/<command> 标记工作流程命令添加,或者 --intent 你们
自我介绍一下.
输出格式
使用全局 --format 用于控制输出的旗帜。 支持的数值 : json (违约), table, (中文(简体) ), yaml, (中文(简体) ), csv。 。 。 .
# Pipe JSON output through jq
elevenlabs <resource> <method> --format json | jq
# Machine-readable catalog of every operation
elevenlabs --help --format json | jq 'length'
壳完成
生成 shell 补全脚本 :
elevenlabs completion <bash|zsh|fish|powershell>
发展
CLI 由 费恩 从11Labs OpenAPI spec中取出,其中代理-as-code工作流程以手写命令的形式分层于上 cli/elevenlabs/workflow/。这些文件,连同这个读取器和 .github/workflows/ci.yml,列在 .fernignore 因此,再生不能覆盖它们.
测试
cargo test # framework + workflow + wire tests
cargo test --manifest-path elevenlabs-sdk/Cargo.toml # generated SDK crate
cargo test --manifest-path elevenlabs-types/Cargo.toml # generated types crate
生成的箱子是路径依赖性而不是工作空间成员,所以很简单 cargo test 跳过它们,因此分别引用(CI运行全部三个).
| 套间 | 它包含什么 |
|---|---|
cargo test --test wire_test | 生成的电线测试:每个测试站起一个进程内模拟服务器,通过CLI驱动一个端点,并声明请求并做出响应. 无为网. |
cargo test --bin elevenlabs | 手写工作流程的单元测试(配置回转,模板,拉动规划,居住, |
cargo test --test flows_wait_test | flows … create-and-wait 对模拟服务器: Retry-After 节奏,超时, failed 退出代码,选项验证. 睡眠在虚拟时钟上运行. 无为网. |
cargo test --test e2e_smoke | 现场端到端烟测试—— 选入,见下文 |
flows … create-and-wait 从 cli/elevenlabs/workflow/flows_spec.json,则 /v1/flows/ 切片为 cli/elevenlabs/openapi0.json。再生改变流谱后, cargo test 失败, 直到您刷新它 UPDATE_FLOWS_SPEC=1 cargo test --bin elevenlabs flows_spec。 。 。 .
现场末端烟雾测试
tests/e2e_smoke.rs 对照真实账户运行全部工作流程 : init → add → push → pull → delete,断言一个配置在一推/拉来回字节中存活.
⚠️ 它创建和删除代理. 使用一个专用的,空的测试账户——从不生产.
选入和跳出,除非 ELEVENLABS_E2E_API_KEY 已经设定。 那个变量是故意的 没有 ELEVENLABS_API_KEY,所以您通常的证书输出的外壳不能意外地改变一个活的工作空间:
ELEVENLABS_E2E_API_KEY=xi-... cargo test --test e2e_smoke -- --nocapture
它清除它创建的代理,包括失败时的代理;如果删除失败,它会打印出用手清除的ID.