# exotel-cli 中文文档

规范地址：https://npmcn.com/package/exotel-cli/

版本：0\.1\.6
npm 元数据更新时间：2026-11-03T14:53:06.766Z
中文译文更新时间：2026-11-03T15:23:19.437Z
软件包许可：MIT

本文由上游 README 机器翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/exotel-cli
原文对照：https://npmcn.com/package/exotel-cli/?lang=original
项目主页：https://developer.exotel.com/docs/mcp-server/overview
源码仓库：https://github.com/exotel/ExotelMCP

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：364 kB，50 个文件
- TypeScript 类型：未声明
- Node.js 要求：\>=18
- 运行依赖：0 个
- 首次发布：2026-11-03T12:48:22.031Z
- 最新版本发布：2026-11-03T14:53:06.578Z
- 已发布版本数：6（近 12 个月 6 个）

## 中文简介

extel的代理优先CLI：登录一次，将extel MCP服务器连接到Claude Code， Cursor, Codex, VS Code， Windsurf或Claude Desktop，安装extel代理技能，并调用任何带有JSON输出的extel MCP工具，——dry-run和花费确认。

## 安装

```sh
npm install exotel-cli
```

也可以使用：`pnpm add exotel-cli`、`yarn add exotel-cli`、`bun add exotel-cli`

## README

# exotel-cli

来自终端的Exotel，为编码代理而建。一个命令连接Claude Code， Cursor, Codex， vscode， Windsurf或Claude Desktop到您的Exotel帐户，并教代理Exotel工作流程。

```bash
npx exotel-cli init
```

`init` 询问您的帐户SID， API密钥和API令牌（my.exotel.com→设置→API设置）， 检查它们，保存到 `~/.config/exotel/credentials.json` （模式600），注册Exotel MCP 在它找到的每个代理中安装服务器（备份每个配置文件），并安装Exotel技能。

要求Node.js 18+。没有依赖关系。

## 安装

| 如何 | 命令 | 需要 |
| --- | --- | --- |
| npm | `npm install -g exotel-cli` (或运行一次： `npx exotel-cli init`） | node . js 18 + |
| Homebrew （macOS, Linux） | `brew install exotel/tap/exotel` | 没有别的，包括选项卡补全 |
| 单独的文件 | 下载 `exotel-<version>-<os>-<arch>` 从GitHub发布，放 `exotel` 在你的路上 | 没有其他的 |

选项卡完成npm安装： `exotel completion zsh > "${fpath[1]}/_exotel"` (或 `bash`， `fish`;看到 `exotel help completion`）.

自己构建二进制文件： `npm run build:binary` → `dist/exotel` （构建Node 25.5+；结果不需要Node）。

## 你的第一次呼叫是一次命令

```bash
npm install -g exotel-cli
exotel init        # paste Account SID, API key, API token once
exotel call        # asks what should answer (VoiceBot, App Bazaar flow or your wss bot), who to call, then follows the call live
```

`exotel call` 从你的VoiceBots和exophone中挑选，记住你的电话号码和来电显示 （`exotel config`)，在结账之前询问，并以发生的事情和下一个命令结束 (笔录、通话记录、 `exotel explain <status>`）. 每个提示都有一个标志，所以脚本和代理 永远不要被问到： `exotel call +9198XXXXXXXX --bot-id Asha --caller-id <ExoPhone> --yes`。

输出在终端中是一个可读的表，在管道或带有时是JSON `--json`。拼写错误得到解决 “你的意思是？” `NO_COLOR=1` 关闭颜色； `--quiet` 隐藏的进步。

## 不确定是哪个API？

```bash
exotel ask "connect my OpenAI bot to a phone call"     # recommended API, command, gotchas + docs from both portals
exotel docs search warm transfer                       # search developer.exotel.com + docs.exotel.com (1,200+ pages)
exotel docs show https://developer.exotel.com/docs/agentstream/connect-voice-ai   # read a page as Markdown
```

## 你能做什么

| 产品 | 命令 | 文档 |
| --- | --- | --- |
| 账户 | `exotel balance` | Voice v1→Balance |
| 电话号码（ExoPhones） | `exotel numbers available | buy | list | get | update | release` | ExoPhones API |
| SIP中继 | `exotel trunk setup` （所有的步骤同时），或者 `create | map-number | set-number-mode | whitelist-ip | destination | credentials add|list|delete | caller-id | delete` | 动态SIP中继 |
| **您自己的语音机器人（标准）** | `exotel voice-ai connect --to … --stream-url wss://…`,或 `--app-id <app_id>` 一个带有Voicebot小程序的App Bazaar流 | 连接语音AI API |
| Exotel VoiceBot | `exotel voicebot list | test-call | transcript` | VoiceBot |
| 实时呼叫控制（需要通过Exotel支持实现） | `exotel leg create | get | events | action`， `exotel bridge …`， `exotel events listen | scaffold` | 腿API |
| ExoML | `exotel exoml validate flow.xml` (和 `leg action` 发送前验证) | ExoML |
| 流人 | `exotel applet test connect|gather|dial|passthru|stream <url>` | 连接/收集/ Passthru /流应用程序 |
| 短信、WhatsApp、电话、CQA、AI辅助…… | `exotel mcp tools`， `exotel mcp call <tool> key=value…` | MCP服务器工具 |
| 别的 | `exotel api <METHOD> </path/with/{sid}>` | 任何Exotel REST API |

`exotel <command> --help` 列出每个标志(例如 `exotel trunk --help`）.

未覆盖：Voice v3 (`/v3/accounts/{sid}/calls`）. 使用 `exotel api` 如果需要的话。

## 代理技能

| 技能 | 为 |
| --- | --- |
| `exotel-setup` | **从这里开始**：连接、验证并选择合适的技能 |
| `exotel-phone-numbers` | 看到和路线号码；余额（购买：通过Exotel支持） |
| `exotel-messaging-and-calls` | 短信（印度DLT）， WhatsApp，简单的电话，点击呼叫 |
| `exotel-voicebot-quickstart` | exotel托管AI语音机器人：创建→测试呼叫→记录→修复 |
| `exotel-connect-voice-ai` | 你自己的语音机器人(OpenAI, ElevenLabs, Gemini, Sarvam, Pipecat… |
| `exotel-sip-trunking` | 通过SIP连接PBX / SBC / Voice AI平台；SIP错误码 |
| `exotel-call-control` | 实时呼叫的腿部、桥接和ExoML操作（需求实现） |
| `exotel-flow-webhooks` | 为流小程序编写和测试动态URL处理程序 |
| `exotel-call-debugging` | 为什么呼叫或信息失败 |
| `exotel-conversation-quality` | 会话智力评分 |

```bash
exotel skill list
exotel skill install all                         # detected agents, user-wide
exotel skill install exotel-sip-trunking --agent claude --project
exotel skill install all --dir ./my-agent/skills
```

技能也活在 [`/skills`](https://github.com/exotel/ExotelMCP/tree/main/skills),所以 `npx skills add exotel/ExotelMCP` 作品。

## 安全，专为特工打造

-   **JSON输出** 用管子吹或用 `--json`，错误包括（与Exotel的错误） `code`， `message` 和一个 `hint`）.
-   **`--dry-run`** 对于发送、调用或写入的每个命令：打印准确的请求，而不是凭据。
-   **确认**有帐单的东西或真正的电话响的东西`$`)，任何不可逆的(`!`), 任何改变实时呼叫路由(`~`)需要 `--yes` 或者一个交互式的“y”。没有它 CLI退出时显示代码3，并打印出它应该执行的操作。
-   **退出代码**： 0 ok， 1错误，2使用，3确认，4未登录。
-   **在argv中没有秘密**： API令牌和SIP密码来自一个隐藏的提示，一个env变量或 `--…-stdin`。 `whoami` 和 `mcp config` 掩盖秘密，除非你通过 `--reveal`。

## 两个界面，一个登录

CLI直接调用Exotel的REST api。MCP服务器(`https://mcp.exotel.com/mcp`)给予代理人 VoiceBot， SMS, WhatsApp，会话智能等工具。 `exotel init` 设置两者 相同的证书；技能说明了每个任务使用哪个。

## CI /非交互式

```bash
export EXOTEL_ACCOUNT_SID=… EXOTEL_API_KEY=… EXOTEL_API_TOKEN=… EXOTEL_API_BASE_URL=https://api.in.exotel.com
exotel numbers list --json
exotel trunk setup --name ci_trunk --number +91… --ip 203.0.113.10 --dry-run
```

环境变量覆盖保存的文件。 `EXOTEL_AUTH_JSON` 传递完整的MCP报头对象； `EXOTEL_MCP_URL` 指向自托管的MCP服务器。

## 开发

```bash
cd cli && npm test           # unit + CLI tests, no network
node bin/exotel.js doctor    # live checks
npm pack                     # bundles ../skills into the package
```

## 安全笔记

-   事件接收者(`events listen`， `voice-ai … --listen`， `voice-ai inbound`)：收听 `127.0.0.1` 只有。集 `EXOTEL_EVENTS_USER` / `EXOTEL_EVENTS_PASS` 要求基本认证，并要求Exotel支持发送这些凭证 在事件端点上；否则任何拥有你的隧道URL的人都可以发布虚假事件。
-   你的机器人的公共wss URL：添加一个共享的秘密(`BOT_TOKEN` 在 `examples/exotel-voice-agent`）.
-   `exotel calls recording` 将您的Exotel凭据仅发送到 `*.exotel.com` / `*.exotel.in` 在HTTPS。
-   `exotel integrate elevenlabs setup` 给ElevenLabs您的Exotel API密钥和令牌(ElevenLabs需要他们的地方 调用);它先问。为它使用单独的API密钥，以便您可以自行撤销它。
-   `claude mcp add` 期间暂时接收MCP授权头作为命令参数 `exotel init`； 其他客户端的配置文件以600模式编写。

## 常见问题

### exotel-cli 是什么？

extel的代理优先CLI：登录一次，将extel MCP服务器连接到Claude Code， Cursor, Codex, VS Code， Windsurf或Claude Desktop，安装extel代理技能，并调用任何带有JSON输出的extel MCP工具，——dry-run和花费确认。

### 如何安装 exotel-cli？

在项目目录运行 npm install exotel-cli，或使用 pnpm add / yarn add / bun add。它还提供命令行工具 exotel，可以用 npx exotel 直接运行。

### exotel-cli 支持 TypeScript 吗？

该包的 package\.json 没有声明类型入口。需要类型提示时，可以在 npm 上查找社区维护的 @types/exotel-cli 是否存在。

### exotel-cli 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### exotel-cli 可以商用吗？

exotel-cli 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### exotel-cli 还在维护吗？

最新版本 0\.1\.6 发布于 2026/11/03（今天）；至今共发布 6 个版本，其中过去 12 个月发布了 6 个；首次发布于 2026/11/03。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

