ListenHubSDKs & CLI
命令行工具 CLI

CLI 快速上手

安装 CLI、完成鉴权,几分钟内在终端里创建你的第一个 podcast。

本指南带你从一台干净的机器走到一个生成完成的 podcast 节目。你将安装 listenhub 可执行文件,完成鉴权(交互场景用 OAuth,脚本场景用 API key),运行第一条生成命令——然后了解轮询如何工作、如何读取结果。

你需要 Node.js >= 20。CLI 仅支持 ESM,全局安装为 listenhub 可执行文件。

交互式配置(OAuth)

在自己的终端上工作时用这条路径。它通过浏览器登录,并以你的用户账户身份执行命令。

安装 CLI

npm install -g @marswave/listenhub-cli

这会把 listenhub 可执行文件装到你的 PATH 上。验证一下:

listenhub --version
listenhub --help

登录

listenhub auth login

这会打开浏览器完成 OAuth。授权之后,CLI 会把 token 存到 ~/.config/listenhub/credentials.json(权限 0600),并打印你登录的账户。token 会自动刷新,所以每台机器只需登录一次。

随时确认会话状态:

listenhub auth status

创建你的第一个 podcast

从一个主题生成一段简短的单人节目:

listenhub podcast create --query "AI agent trends in 2026" --mode quick

该命令提交任务后会轮询直到节目就绪,并以 spinner 显示进度。完成后会打印 episode ID、标题和状态。

podcast create 上几个值得了解的 flag:

Flag说明
--query <text>节目的主题或提示词。
--source-url <url>用于支撑节目的参考 URL。可重复。
--source-text <text>用于支撑节目的参考文本。可重复。
--mode <mode>quickdeepdebate。默认 quick
--lang <lang>enzhja。省略时根据 query 自动检测。
--speaker <name>按名称指定主播。可重复。一个主播生成单人节目,两个或更多生成多人节目。
--speaker-id <id>按 inner ID 指定主播。可重复。已知 ID 时用它代替 --speaker

如果不指定主播,CLI 会根据检测到的语言挑选默认主播。要主动选声音,先列出主播列表(openapi 命名空间提供可查询的列表——见下文API key 路径),再传入 --speaker--speaker-id

读取结果

默认情况下命令会等待生成完成,因此最终输出已经反映一个完成的节目:

✓ Podcast created

  ID:     ep_xxx
  Title:  AI agent trends in 2026
  Status: success

随时列出最近的节目:

listenhub podcast list

轮询如何工作

生成是异步的。每条创建命令都会提交任务、拿回一个 ID,然后轮询 API 直到任务进入终态。

  • 间隔。 CLI 每 10 秒查询一次状态。
  • 超时。 --timeout <seconds> 限制等待时长。podcast create 的默认值是 300(5 分钟)。在任务完成前到达超时时,命令以退出码 3 结束——任务仍在服务端继续运行,你之后可以用 ID 取回。
  • 结果。 成功时命令打印完成的节目;服务端失败时打印失败信息并以非零码退出。

要完全跳过轮询,传入 --no-wait。命令会立即返回 ID 并以 0 退出:

listenhub podcast create --query "AI agent trends in 2026" --no-wait
# ✓ Podcast submitted: ep_xxx

在脚本和 CI 里,把 --no-wait--json-j)配合使用。--json 把机器可读的输出打到 stdout(错误仍在 stderr),因此可以直接管道给 jq

ID=$(listenhub podcast create --query "Weekly recap" --no-wait -j | jq -r '.episodeId')

之后按你自己的节奏轮询,或在你的任务调度器报告就绪后再取回节目。

API key 配置(脚本场景)

在服务器或 CI 上,用 API key 代替 OAuth。API key 命令位于 listenhub openapi 命名空间下,以 key 所有者的身份执行。

创建 API key

listenhub.ai/settings/api-keys 创建一个 key。key 以 lh_sk_ 开头。

让 key 可用

有两种方式。对于 CI 和临时环境,设置环境变量——CLI 会优先读取它:

export LISTENHUB_API_KEY="lh_sk_..."

对于持久化的本地配置,则把它存到磁盘上。该命令会提示输入 key,并写入 ~/.config/listenhub/openapi.json(权限 0600):

listenhub openapi config set-key

查看当前配置(以及生效的来源):

listenhub openapi config show

挑选主播

与 OAuth 路径不同,openapi podcast create 至少需要一个 --speaker-id。列出可用的声音并复制一个 ID:

listenhub openapi speakers list --language en

这会打印一张包含 NameIDGenderLanguage 的表格。ID 列就是你传给 --speaker-id 的值。

用 API key 创建 podcast

listenhub openapi podcast create \
  --query "AI agent trends in 2026" \
  --speaker-id <speaker-id> \
  --mode quick

和 OAuth 命令一样,它提交任务并轮询到完成,结束后打印节目详情。同样支持 --no-wait--timeout <seconds>(默认 300)和 --json。多传几次 --speaker-id 即可生成多人节目,加上 --source-url / --source-text 来支撑内容。

之后按 ID 取回某个节目:

listenhub openapi podcast get <episode-id>

退出码

脚本可以基于退出码分支处理:

退出码含义
0成功
1错误(校验、API 错误、网络故障)
2需要鉴权或鉴权无效——重新运行 listenhub auth login,或检查你的 API key
3超时——轮询在任务完成前超过了 --timeout

估算积分

生成会消耗积分。创建之前,用你所用产品对应的 estimate-credits 命令查看成本,并用 listenhub openapi subscription 查看剩余余额。不要假设固定成本——去查询它。

下一步

On this page