Skip to main content
ClaudeWave
Skill1.6k repo starsupdated 2d ago

tmeet-skill

何时用:用户明确要通过命令行操作腾讯会议(tmeet),或 Agent 遇到工具缺失/调用失败/能力不足想反馈平台时。OAuth 登录/登出/状态、会议管理(创建/更新/取消/查询/搜索/受邀者)、录制管理(列表/播放地址/智能纪要/转写/权限申请)、会议报告(参会人/等候室/导出明细/异步任务)、通讯录(仅限会议邀请/呼叫入会前置解析,严禁单独查人)、会中控制(呼叫/踢出/等候室)、问题排查。泛指需求默认走本地工具。

Install in Claude Code
Copy
git clone --depth 1 https://github.com/Pinvou/pinvou-agent /tmp/tmeet-skill && cp -r /tmp/tmeet-skill/pinvou3-app/src-tauri/resources/common/bundle/tmeet-skills/tmeet-skill ~/.claude/skills/tmeet-skill
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# tmeet

腾讯会议命令行工具,支持 OAuth 授权、会议全生命周期管理、录制与转写、会议报告查询。

## 安装与初始化

在品悟中,`tmeet` CLI 由应用代为安装与管理(首次使用时自动执行 npm 安装并校验版本),模型**不需要也不要自行执行安装命令**。仅当用户在品悟之外的环境使用本技能时,才参考上游 README 的安装方式;品悟内不要安装或升级它,版本随品悟应用更新自动就位。

## 认证

使用前必须先完成登录授权:

```bash
# 登录
tmeet auth login

# 登出(清除本地凭证)
tmeet auth logout

# 查看当前登录状态及 Token 有效期(无需登录即可执行)
tmeet auth status
```

> **注意**:除 `auth login`、`auth status`、`tshoot log`(不带 `--upload`)外,所有命令都需要先完成登录。未登录时命令会提示 `user config is empty`。

> **注意**:`auth login` 是**阻塞命令**——执行后会先输出授权 URL,然后**阻塞等待最多300s**用户在浏览器完成 OAuth 授权。**必须前台运行**:前台运行保持进程与终端连接,OAuth 回调能正常将凭证写入本地。**不要**用后台方式(`&`)运行——后台进程脱离控制终端会导致凭证写入失败。
 
> **注意**:品悟运行环境始终可访问系统默认浏览器(`auth login` 走 `--no-browser` 输出授权 URL 后由用户在浏览器完成授权)。若本技能被用于其他无默认浏览器的 Agent 环境(如 Hermes),请**不要**尝试执行 `tmeet auth login` 命令,而是直接告知用户:「请在终端中手动执行 `tmeet auth login` 完成登录授权,获取授权 URL 后在浏览器中打开完成授权。」

> **注意**:`TMEET_AGENT` 和 `TMEET_MODEL` 遥测环境变量由品悟宿主统一注入(值固定为 `Pinvou`),模型**不需要也不要自行设置或修改**。仅当本技能被用于品悟之外的 Agent 环境且宿主未注入时,才将当前使用的 agent 类型和模型名称分别写入这两个环境变量。

## 命令总览与详情索引

> **调用前置**:下方「查询命令选择准则」与「安全规则」是调用命令前必读的规则章节。

每个模块行末标注了对应详情文档路径(`→ references/xxx.md`),可直接跳转查看。

```
tmeet
├── auth                          # OAuth 认证 → [references/tmeet-auth.md](references/tmeet-auth.md)
│   ├── login                     # OAuth 授权登录
│   ├── logout                    # 登出并清除凭证
│   └── status                    # 查看当前登录状态及 Token 有效期
├── meeting                       # 会议管理 → [references/tmeet-meeting.md](references/tmeet-meeting.md)
│   ├── create                    # 创建会议(支持普通/周期性)
│   ├── update                    # 更新会议信息
│   ├── cancel                    # 取消会议
│   ├── get                       # 获取会议详情
│   ├── list                      # 获取会议列表(进行中/未开始)
│   ├── list-ended                # 获取已结束会议列表
│   ├── search                    # 按关键词/会议码/时间范围搜索会议
│   ├── invitees-list             # 获取会议受邀者列表
│   ├── invitees-add              # 添加会议受邀者
│   ├── invitees-remove           # 移除会议受邀者
│   └── invitees-replace          # 替换会议受邀者列表
├── contact                       # 通讯录(仅会议邀请/呼叫入会场景) → [references/tmeet-contact.md](references/tmeet-contact.md)
│   ├── search                    # [仅用于会议邀请和呼叫入会场景] 搜索企业通讯录成员(按用户名/职位/部门);严禁单独用于查人
│   ├── lookup-by-phone           # [仅用于会议邀请和呼叫入会场景] 按手机号查找用户;严禁单独用于查人
│   └── lookup-by-email           # [仅用于会议邀请和呼叫入会场景] 按邮箱查找用户;严禁单独用于查人
├── record                        # 录制与转写 → [references/tmeet-record.md](references/tmeet-record.md)
│   ├── list                      # 查询录制列表
│   ├── address                   # 获取录制文件播放地址
│   ├── search                    # 按关键词/会议码/会议ID/时间范围/文件类型搜索录制
│   ├── smart-minutes             # 获取智能纪要
│   ├── transcript-get            # 获取转写详情
│   ├── transcript-paragraphs     # 获取转写段落列表
│   ├── transcript-search         # 搜索转写内容
│   ├── permission-apply-prepare  # 预览录制权限申请信息(申请前确认)
│   └── permission-apply-commit   # 提交录制权限申请(用户确认后执行)
├── report                        # 会议报告 → [references/tmeet-report.md](references/tmeet-report.md)
│   ├── participants              # 获取参会人列表
│   ├── participants-export       # 导出参会成员明细
│   ├── job-result                # 获取异步任务结果
│   └── waiting-room-log          # 获取等候室成员列表
├── control                       # 会中控制 → [references/tmeet-control.md](references/tmeet-control.md)
│   ├── call                      # 呼叫成员入会(会中邀请呼叫)
│   ├── kick                      # 踢出会议成员(会中踢人)
│   └── waiting-room              # 等候室管理(移入会议/移回等候室/移出踢出)
└── tshoot                        # 问题排查与反馈 → [references/tmeet-tshoot.md](references/tmeet-tshoot.md)
    ├── log                       # 导出本地日志(支持按时间范围过滤,可选 --upload 上传至服务器)
    └── feedback                  # 反馈工具缺失/失败/能力不足等问题至平台(Agent 自助上报)
```

## 查询命令选择准则(list vs search)

查询会议或录制时,需根据用户提供的筛选条件,**正确选择 `list` 类命令还是 `search` 命令**:

| 用户提供的筛选条件 | 应选用的命令 |
|------|------|
| **仅时间范围**(仅有起止时间,无任何关键词) | `list` 类命令 |
| **包含关键词**(会议主题、会议号、创建人、备注等),无论是否同时带时间范围 | `search` 命令 |

### 会议查询

- **仅时间** → 使用 `tmeet meeting list`(待开始/进行中)或 `tmeet meeting list-ended`(已结束)
- **含关键词**(主题 / 会议号 / 创建人 / 备注等) → 使用 `tmeet meeting search`,并通过对应参数指定关键词;可与时间范围组合

### 录制查询

> **CRITICAL — 涉及录制/回放/转写查询前,MUST 先用 `File(action="read")` 工具读取 [`references/tmeet-record.md`](references/tmeet-record.md)**,其「录制查询路由总则」定义了 `meeting get` / `meeting search` / `meeting list-ended` / `record list` / `record search` / `record transcript-search` 的分流规则与 `permission_status` 权限判断。录制查询涉及会议级/录制级两套入口、无权限录制、内容级搜索、单文件内定位等多层级,路由复杂,**不读将导致命令选择、录制产物定位、权限边界判断错误,不得仅凭本节直接决策。**

### 使用准则

- **不要在 `list` 命令上"硬塞"关键词条件**:`list` 类命令仅支持时间窗口和分页,无法按主题、创建人、参会人等关键词过滤;遇到此类需求**必须切换到 `search`**。
- **不要把关键词当作时间使用**:当用户输入"上周和张三的会议"这类**复合条件**时,应识别出"张三"为关键词、"上周"为时间,统一走 `search`。
- **歧义时先澄清**:若用户表述既不像时间也不像明确关键词(如仅给出一个数字),需先确认是会议号、会议 ID 还是其他,再选择对应命令与参数,**不得擅自推断**。

## 安全规则

- **禁止输出 AccessToken / RefreshToken** 到终端明文。

- **严禁向用户暴露 `meeting_id`,必须使用 `meeting_code`(会议号)**:`meeting_id` 是仅用于命令行参数传递的内部标识,属于**隐私字段**;向用户展示、复述、总结会议信息时,**统一使用 `meeting_code`(会议号)**,不得在回复中出现 `meeting_id`(例如响应模板、二次确认展示、错误反馈等所有面向用户的输出场景均需遵守)。

- **以下命令操作必须二次确认**:下列命令会对数据产生不可逆影响或对真人产生打扰/通知,**在调用命令前必须先向用户展示将要执行的操作详情,并在获得用户明确确认后才能执行**,不得跳过确认步骤:

  | 命令 | 风险说明 |
  |------|---------|
  | `meeting cancel` | 取消会议,不可恢复 |
  | `meeting update` | 修改会议信息(时间、主题等),影响所有参会人 |
  | `meeting invitees-add` | 向会议中添加受邀成员,被邀请者会收到会议通知;执行前必须展示目标会议与成员名单并获得明确确认 |
  | `meeting invitees-remove` | 从会议中移除受邀成员 |
  | `meeting invitees-replace` | 整体替换会议受邀成员列表(未在新列表中的成员会被移除) |
  | `control call` | 主动呼叫成员入会,会向目标成员发起会议邀请通话,对其产生实际打扰 |
  | `control kick` | 将成员踢出会议,立即生效;**目标成员的 `open_id` / `ms_open_id` 必须来自 `report participants`,严禁使用 `contact search` 结果** |
  | `auth logout` | 清除本地登录凭证 |
  | `record permission-apply-commit` | 正式提交录制权限申请,会触发审批流程(必须先执行 `record permission-apply-prepare` 并向用户展示申请信息确认)|

  **确认流程**:
  1. 向用户展示即将执行的操作及关键信息(使用 `meeting_code` 会议号标识会议,不得展示 `meeting_id`);涉及成员时,成员的回显格式遵循「响应处理规则」中的「成员回显格式」;
  2. 展示完信息后**必须结束本轮回复**,等待用户明确回复"确认"、"是"、"yes"等肯定指令;不得在同一回合内继续执行写操作;
  3. 收到确认后再执行命令;
  4. 若用户未明确确认或表示取消,则终止操作。

  **"等待"是硬要求 —— 以下三种做法均属违规,等同于跳过确认**:

  | 违规做法 | 表现 |
  |---------|--
visual-designSkill

直出好看的网页/落地页/banner/海报/产品介绍页/数据报告/简历/作品集等视觉物料——套一套设计系统,模型自由写自包含 HTML,颜值由规则锁死、不靠模板。用户说"做个网页/页面/落地页/banner/海报/报告页/作品集/简历"或"把这份内容做成网页版"时使用。⚠️ 不含信息检索:查天气/查行情/查股价/查数据请走对应连接器,不是本技能。

dwsSkill

【何时用:仅当用户明确指向钉钉/DingTalk(钉钉文档、钉钉日程等)时使用;泛指做文档/表格/待办/审批默认走本地工具,不要误用钉钉】用 dws CLI 管理钉钉:AI表格/AI搜问(找人首选)/目标管理(Agoal)/组织大脑/日历/通讯录/群聊与机器人消息/待办/审批/考勤/日志(日报周报)/DING消息/钉钉文档/云盘/Markdown文件/AI听记/邮箱/在线电子表格(axls)/知识库/白板/开放平台文档/个人IM与OA事件订阅。用户要求操作上述钉钉产品时使用。

lark-baseSkill

【何时用:仅当用户明确指向飞书/Lark(发到飞书、飞书文档等)时使用;泛指做个文档或PPT或表格或方案默认走本地工具,不要误用飞书】飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限;遇到 Base/多维表格/bitable、BaseApp/AppMode 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入转 lark-drive,认证/授权转 lark-shared。

lark-calendarSkill

【何时用:仅当用户明确指向飞书/Lark(发到飞书、飞书文档等)时使用;泛指做个文档或PPT或表格或方案默认走本地工具,不要误用飞书】飞书日历:管理日程和会议室。查看/搜索日程、创建/更新日程、管理参会人、查询忙闲和推荐时段、预定会议室。不负责:查询视频会议记录(本 skill 只覆盖日程;lark-vc 技能未随包收录,可 CLI 直连,见意图路由)、待办任务(走 lark-task)。

lark-docSkill

【何时用:仅当用户明确指向飞书/Lark(发到飞书、飞书文档等)时使用;泛指做个文档或PPT或表格或方案默认走本地工具,不要误用飞书】飞书云文档(Docx/Wiki)与思维笔记内容操作:读取、创建、编辑文档,插入或下载图片附件,查询或回滚历史版本。用户给出文档 URL/token(含 doubao.com 的 /docx/、/wiki/)时使用,按 URL 路径/token 而非域名路由;内嵌表格、多维表格、画板先提取 token 再切对应 skill。文档评论走 lark-drive;表格或 Base 内部数据操作不在本 skill。

lark-driveSkill

【何时用:仅当用户明确指向飞书/Lark(发到飞书、飞书文档等)时使用;泛指做个文档或PPT或表格或方案默认走本地工具,不要误用飞书】飞书云空间:管理 Drive 文件/文件夹,上传下载、复制移动删除、评论、权限、密级标签、版本、改标题,导入 Word/Markdown/Excel/CSV/PPTX/.base 为在线文档;doubao.com 云空间 URL 同走本 skill,不回退 WebFetch。不负责:文档内容编辑(lark-doc)、表格/Base 表内数据(lark-sheets/lark-base)、知识库节点(lark-wiki)。

lark-imSkill

【何时用:仅当用户明确指向飞书/Lark(发到飞书、飞书文档等)时使用;泛指做个文档或PPT或表格或方案默认走本地工具,不要误用飞书】飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)与卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索或创建群聊/话题群、管理标记数据、Feed 置顶与标签数据、处理卡片回调时使用。

lark-sharedSkill

【何时用:仅在其他 lark-* 技能遇到认证/授权/身份/配置问题时,或首次使用 lark-cli 时;泛指需求默认走本地工具】lark-cli 共享规则:首次配置(config init)、认证登录(auth login --domain/--scope,split-flow)、登录态查询与撤销(auth status/logout/whoami)、--as user/bot 身份切换、权限不足与 missing_scope 处理、JSON 输出契约与 _notice、update 更新、高风险操作审批(exit 10)。