关于 handset
handset 提供开源 React 组件和 hooks,可通过 Handset API 将短信功能嵌入产品。组件以可编辑源码复制到项目中,后端代理则避免 API 密钥暴露给客户端。
主要功能
- 01响应式收件箱和消息线程组件
- 02支持短信分段与 Unicode 检测的编辑器
- 03会话、线程和撰写用 React hooks
- 04用于 API 请求的 Next.js 代理路由
- 05使用项目 Tailwind tokens 的源码组件
适用场景
- 01在产品中添加短信收件箱和消息线程
- 02用 React hooks 构建自定义消息界面
- 03将 Handset API 密钥保留在后端
- 04撰写短信时查看分段数量
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @handset/mcpHANDSET_API_KEY密钥Handset API key. Use a test-mode key (hs_test_…) — simulated carrier, free. Live keys are refused unless HANDSET_ALLOW_LIVE=1.HANDSET_ALLOW_LIVESet to 1 to permit a live-mode key (the agent can then text and call real people at real cost).本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
15收录的工具列表 · 更新于 2 周前
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | integer | 否 |
详细介绍
手持设备 UI
一个下午,即可在你的产品中实现短信功能。
用于嵌入式消息功能的开源 React 组件,基于 Handset API 构建。以 shadcn 的方式分发:CLI 会将源代码复制到你的仓库中,使用你的 Tailwind 设计令牌进行样式设置,你可以自行修改。
# 1. Point the shadcn CLI at the Handset registry
npx shadcn@latest registry add @handset=https://ui.handset.dev/r/{name}.json
# 2. Install a complete texting surface + the server proxy route
npx shadcn@latest add @handset/messaging @handset/next-routes
在环境中设置 HANDSET_API_KEY,将生成的路由中的 resolveTenantId() 连接到你的会话,然后渲染它:
import { HandsetProvider } from "@handset/react";
import { Messaging } from "@/components/handset/messaging";
export default function MessagesPage() {
return (
<HandsetProvider>
<div className="h-[600px]">
<Messaging />
</div>
</HandsetProvider>
);
}
注册表中包含的内容
| 项目 | 内容 |
|---|---|
@handset/messaging | 双栏短信界面——收件箱 + 对话线程,适配移动设备 |
@handset/inbox | 对话列表:预览、相对时间、STOP 徽章、无限滚动 |
@handset/thread | 消息历史:送达状态、退订处理、已连接的消息编辑框 |
@handset/composer | 草稿框,支持实时 SMS 分段计数和 Unicode 检测 |
@handset/next-routes | Next.js 代理路由——你的 API 密钥永远不会发送到浏览器 |
架构
两层结构,类似 shadcn-on-Radix:
@handset/react(npm,版本化)——无头钩子:useConversations、useThread、useComposer,以及分段计算和一个精简的 客户端。我们负责维护逻辑;如果你更喜欢,也可以自行构建 UI。- 注册表(
apps/www/registry)——视觉 组件,会以源代码的形式复制到你的项目中。
组件不会持有 API 密钥。它们会调用你的后端中的代理路由(由 @handset/next-routes 添加);你的服务器持有 Handset 密钥,并由你现有的会话身份验证决定每位已登录用户可以看到哪个租户。其余工作交由 Handset API 处理——号码、送达、对话线程、10DLC 合规性、STOP/HELP。
开发
pnpm install
pnpm --filter @handset/react build # hooks package
pnpm dev # docs site + live demo at localhost:3000
pnpm registry:build # compile registry.json → public/r/*.json
文档站点提供了一个模拟 Handset API(apps/www/app/api/handset),因此演示无需任何设置即可运行。
要求
- React 18+(组件面向 React 19 / Tailwind v4 / shadcn CLI ≥ 3)
- 如需实际流量,需要一个 Handset 账户——没有账户也可以通过模拟数据运行演示
路线图
参见 ROADMAP.md——已发布的组件、后续计划(通话摘要、MMS 附件、更多框架代理),以及非目标。有实际用例的问题会推动相关事项在列表中提前。
许可证
MIT © Handset HQ, Inc.
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。