TencentCloud / tencentmeeting-cli

Listed

腾讯会议命令行工具(CLI),基于腾讯会议开放平台 OAuth2 授权,支持会议管理、录制管理、参会报告等功能。

mainSkill View source

Installation

npx -y @deepseek-ai/dsh plugin --profile web add github:TencentCloud/tencentmeeting-cli

This installation command is an unverified starting point generated from the GitHub repository address.

README

Maintainer-authored documentation snapshot.

View on GitHub ↗
Commit 0407d61Synced Aug 18, 2026

tencentmeeting-cli

English | 中文

腾讯会议命令行工具(CLI),基于腾讯会议开放平台 OAuth2 授权,支持会议管理、录制管理、参会报告等功能。

License: MIT Go Version

功能特性

  • 🔐 OAuth2 授权登录 — 设备码授权流程,安全无密码
  • 📅 会议管理 — 创建、查询、更新、取消会议,支持周期性会议,管理受邀成员
  • 🎬 录制管理 — 查询录制列表、获取下载地址、智能纪要、转写详情与搜索
  • 📊 参会报告 — 查询参会人列表、等候室成员记录
  • 👥 通讯录 — 按用户名/职位/部门检索企业通讯录成员
  • 🛠️ 问题排查 — 导出本地日志,支持按时间范围过滤,打包为 zip 文件
  • 🔒 安全存储 — 凭证使用 AES-256-GCM 加密,明文不落盘
  • 🖥️ 跨平台 — 支持 macOS、Linux、Windows

安装

第一步:安装 CLI

方式一:通过 npm 安装(推荐)
npm install -g @tencentcloud/tmeet

安装完成后即可直接使用 tmeet 命令。

💡 如果提示 npm: command not found,说明尚未安装 Node.js。请前往 Node.js 官网 下载并安装 LTS 版本(已包含 npm)。

方式二:从源码构建
git clone https://github.com/TencentCloud/tencentmeeting-cli
cd tencentmeeting-cli
go build -ldflags "-X tmeet/cmd.Version=v1.0.0" -o tmeet .
# 或
make build VERSION=v1.0.0

第二步:安装 CLI-SKILL

npx skills add TencentCloud/tencentmeeting-cli -y -g

快速开始

1. 登录授权

tmeet auth login

执行后会自动尝试打开系统默认浏览器跳转到授权 URL;若无默认浏览器,则输出授权 URL,手动在浏览器中打开完成扫码授权。CLI 自动轮询结果(超时 5 分钟),凭证加密保存到本地。

如需禁用自动打开浏览器,可使用 --no-browser 参数:tmeet auth login --no-browser

2. 创建会议

tmeet meeting create \
  --subject "周例会" \
  --start "2026-04-10T10:00+08:00" \
  --end "2026-04-10T11:00+08:00"

3. 查询会议列表

# 查询进行中/即将开始的会议
tmeet meeting list

# 查询已结束的会议
tmeet meeting list-ended \
  --start "2026-04-01T00:00+08:00" \
  --end "2026-04-30T23:59+08:00"

4. 登出

tmeet auth logout

全局标志

所有命令均支持以下全局标志:

标志简写默认值说明
--formatjson输出格式:json(紧凑格式)| json-pretty(缩进格式)
--compactfalse精简输出模式:仅保留关键字段,过滤冗余字段以降低响应体积,适用于查询/列表类命令
--version-V查看版本号

示例:

# 查看版本号
tmeet -V

# 以缩进格式输出响应
tmeet meeting get --meeting-id "6953553464429888300" --format json-pretty

# 以精简模式输出查询结果(仅保留关键字段)
tmeet record list --meeting-id "6953553464429888300" --compact

分页参数说明

v1.0.5 起,所有支持分页的命令统一采用 --page-token + --page-size 方案。原先的 --page / --pos / --size 参数被标记为 deprecated,仍可使用但不再推荐,未来版本可能移除。

说明:record transcript-get--pid / --limit 是该命令用于段落定位的独立参数,不属于通用分页参数,未被弃用。

统一用法:

参数类型说明
--page-tokenstring分页游标。首次查询不传;后续翻页请将上一次响应中的 next_page_token 传入
--page-sizeint每页大小,不同命令默认值与上限不同,详见各命令说明

典型分页流程:

# 1) 首次查询(不传 page-token)
tmeet record list --meeting-id "6953553464429888300" --page-size 30

# 2) 从响应中取出 next_page_token,用于下一页
tmeet record list \
  --meeting-id "6953553464429888300" \
  --page-size 30 \
  --page-token "<next_page_token>"

# 3) 重复直到 next_page_token 为空,即已到最后一页

各命令 --page-size 默认值/最大值速查:

命令默认值最大值旧参数(已弃用)
meeting list2020
meeting list-ended3030--page
meeting search3030
meeting invitees-list3030--pos
record list3030--page
record address3030--page
record search3030
report participants100100--pos / --size
report waiting-room-log100100--page

record transcript-get / record transcript-paragraphs / record transcript-search 暂不支持基于 --page-token 的新分页方案。

兼容性说明:当未传入 --page-token 且同时传入了旧分页参数(如 --page--pos)时,CLI 会按旧模式发起请求(page_type=0);否则一律按新模式(page_type=1)发起请求。


命令总览

tmeet [--format json|json-pretty] [--compact] [-V]
├── auth
│   ├── login          # OAuth 授权登录
│   ├── logout         # 登出并清除凭证
│   └── status         # 查看当前登录状态
├── meeting
│   ├── create         # 创建会议(支持普通/周期性)
│   ├── update         # 更新会议信息
│   ├── cancel         # 取消会议
│   ├── get            # 获取会议详情
│   ├── list           # 获取进行中/即将开始的会议列表
│   ├── list-ended     # 获取已结束的会议列表
│   ├── search         # 按关键词/会议号/时间范围搜索会议
│   ├── invitees-list    # 获取会议受邀者列表
│   ├── invitees-add     # 添加会议受邀者
│   ├── invitees-remove  # 移除会议受邀者
│   └── invitees-replace # 替换会议受邀者列表
├── contact
│   ├── search         # 搜索企业通讯录成员
│   ├── lookup-by-email # 通过邮箱反查用户信息
│   └── lookup-by-phone # 通过手机号反查用户信息
├── record
│   ├── list           # 查询录制列表
│   ├── address        # 获取录制文件下载地址
│   ├── search         # 按关键词/会议号/会议ID/时间范围搜索录制
│   ├── smart-minutes  # 获取智能纪要
│   ├── transcript-get          # 获取转写详情
│   ├── transcript-paragraphs   # 获取转写段落列表
│   ├── transcript-search       # 搜索转写内容
│   ├── permission-apply-prepare # 预览录制权限申请信息(申请前确认)
│   └── permission-apply-commit  # 提交录制权限申请(用户确认后执行)
├── report
│   ├── participants         # 获取参会人列表
│   ├── waiting-room-log     # 获取等候室成员列表
│   ├── participants-export  # 导出参会成员明细(异步任务)
│   └── job-result           # 获取异步任务结果
├── control
│   ├── call           # 呼叫成员入会(会中邀请呼叫)
│   ├── kick           # 将成员踢出会议(会中踢人)
│   └── waiting-room   # 等候室管理(移入会议/移回等候室/移出)
└── tshoot
    ├── log               # 导出本地日志(支持按时间范围过滤,可选 --upload 上传至服务器)
    └── feedback          # 上报问题排查反馈到服务器

命令参考

auth — 授权管理

auth login

登录并完成 OAuth2 授权,将凭证加密保存到本地。

tmeet auth login [选项]
参数类型必填默认值说明
--no-browserboolfalse禁用自动打开浏览器。false(默认)会尝试自动打开系统默认浏览器跳转到授权 URL;true 则仅输出授权 URL,需用户手动在浏览器中打开

执行后会输出授权 URL,CLI 自动轮询授权结果(超时 5 分钟),凭证加密保存到本地。


auth logout

登出并清除本地认证凭证。

tmeet auth logout

无参数。


auth status

查看当前登录状态,包括 OpenId、AccessToken / RefreshToken 的过期状态和剩余有效时间。

tmeet auth status

无参数。未登录时提示 Not logged in,已登录时展示凭证有效期信息。


meeting — 会议管理

meeting create — 创建会议
tmeet meeting create --subject <主题> --start <开始时间> --end <结束时间> [选项]
参数类型必填默认值说明
--subjectstring会议主题
--startstring会议开始时间,ISO 8601,如 2026-03-12T14:00+08:00
--endstring会议结束时间,ISO 8601,如 2026-03-12T15:00+08:00
--passwordstring会议密码(4~6 位数字)
--timezonestring时区,可参见 Oracle-TimeZone 标准,如 Asia/Shanghai
--meeting-typeint0会议类型:0-普通会议,1-周期性会议
--join-typeint0成员入会限制:1-所有成员可入会,2-仅受邀成员可入会,3-仅企业内部成员可入会
--waiting-roomboolfalse是否开启等候室,true-开启,false-不开启
--recurring-typeint0周期类型(--meeting-type=1 时生效):0-每天,1-每周一至周五,2-每周,3-每两周,4-每月
--until-typeint0周期结束类型(--meeting-type=1 时生效):0-按日期结束重复,1-按次数结束重复
--until-countint7限定会议次数(--meeting-type=1 时生效):每天/每个工作日/每周最大 500,每两周/每月最大 50
--until-datestring周期结束日期(--meeting-type=1 时生效),ISO 8601,如 2026-03-12T15:00+08:00
--inviteesstrings邀请成员的 openid 列表,逗号分隔或重复传参(最多 100 人,例如 --invitees open_id1,open_id2
--water-mark-typeint2文字水印:0-单排,1-双排,2-关闭
● 个人账号:默认为2
● 企业/组织账号:
✧ 企业设置强制态-使用企业设置作为强制态,入参不生效
✧ 企业未设置强制态-使用企业设置作为默认值,入参覆盖默认值
--audio-watermarkboolfalse音频水印:true-开启,false-关闭
● 个人账号:默认为false
● 企业/组织账号:
✧ 企业设置强制态-使用企业设置作为强制态,入参不生效
✧ 企业未设置强制态-使用企业设置作为默认值,入参覆盖默认值
--auto-record-typestringnone主持人入会后自动录制会议:none-关,local-本地,cloud-云录制
● 个人账号:默认none
● 企业/组织账号:
✧ 企业设置强制态-使用企业设置作为强制态,入参不生效
✧ 企业未设置强制态-使用企业设置作为默认值,入参覆盖默认值
--auto-asrboolfalse自动文字转写:true-开,false-关
● 个人账号:默认false
● 企业/组织账号:
✧ 企业设置强制态-使用企业设置作为强制态,入参不生效
✧ 企业未设置强制态-使用企业设置作为默认值,入参覆盖默认值

示例:

# 创建普通会议
tmeet meeting create \
  --subject "项目评审" \
  --start "2026-04-10T14:00+08:00" \
  --end "2026-04-10T16:00+08:00" \
  --password "123456" \
  --waiting-room

# 创建每周重复会议(共 10 次)
tmeet meeting create \
  --subject "每周站会" \
  --start "2026-04-10T09:30+08:00" \
  --end "2026-04-10T10:00+08:00" \
  --meeting-type 1 \
  --recurring-type 2 \
  --until-type 1 \
  --until-count 10

# 创建会议并邀请成员
tmeet meeting create \
  --subject "需求评审" \
  --start "2026-04-10T14:00+08:00" \
  --end "2026-04-10T15:00+08:00" \
  --invitees "open_id1,open_id2,open_id3"

# 创建会议并显式关闭音频水印 / 自动文字转写
# 注:bool 参数传 false 必须使用 = 形式,不能用空格
tmeet meeting create \
  --subject "无水印会议" \
  --start "2026-04-10T14:00+08:00" \
  --end "2026-04-10T15:00+08:00" \
  --audio-watermark=false \
  --auto-asr=false

meeting get — 查询会议详情

--meeting-id--meeting-code 二选一,--meeting-id 优先级更高。

tmeet meeting get --meeting-id <会议ID>
tmeet meeting get --meeting-code <会议码>
参数类型必填说明
--meeting-idstring二选一会议 ID(优先级高于会议码)
--meeting-codestring二选一会议码

示例:

tmeet meeting get --meeting-id "6953553464429888300"
tmeet meeting get --meeting-code "931945029"

meeting update — 更新会议

仅传入需要修改的字段,未传入的字段保持不变。

tmeet meeting update --meeting-id <会议ID> [选项]
参数类型必填默认值说明
--meeting-idstring会议 ID
--subjectstring会议主题
--startstring会议开始时间,ISO 8601,如 2026-03-12T14:00+08:00
--endstring会议结束时间,ISO 8601,如 2026-03-12T14:00+08:00
--passwordstring会议密码(4~6 位数字)
--timezonestring时区,如 Asia/Shanghai
--meeting-typeint0会议类型:0-普通会议,1-周期性会议
--join-typeint0成员入会限制:1-所有成员可入会,2-仅受邀成员可入会,3-仅企业内部成员可入会
--waiting-roomboolfalse是否开启等候室
--recurring-typeint0周期类型(--meeting-type=1 时生效):0-每天,1-每周一至周五,2-每周,3-每两周,4-每月
--until-typeint0周期结束类型(--meeting-type=1 时生效):0-按日期结束重复,1-按次数结束重复
--until-countint7限定会议次数(--meeting-type=1 时生效):每天/每个工作日/每周最大 500,每两周/每月最大 50
--until-datestring周期结束日期(--meeting-type=1 时生效),ISO 8601,如 2026-03-12T15:00+08:00
--sub-meeting-idstring子会议 ID(--meeting-type=1 时生效):仅修改该场子会议的时间;不可与 --recurring-type / --until-type / --until-count / --until-date 同时使用。不填则修改整个周期性会议
--inviteesstrings待变更的邀请成员 openid 列表,逗号分隔或重复传参;与 --invitees-type 配合使用
--invitees-typestring邀请变更策略:replace-全量替换邀请列表,add-新增邀请用户,remove-删除邀请用户;当指定 --invitees 时必填

示例:

tmeet meeting update \
  --meeting-id "6953553464429888300" \
  --subject "新主题" \
  --start "2026-04-10T15:00+08:00" \
  --end "2026-04-10T16:00+08:00"

# 全量替换邀请列表
tmeet meeting update \
  --meeting-id "6953553464429888300" \
  --invitees "open_id1,open_id2,open_id3" \
  --invitees-type replace

# 新增邀请用户
tmeet meeting update \
  --meeting-id "6953553464429888300" \
  --invitees "open_id4,open_id5" \
  --invitees-type add

# 删除邀请用户
tmeet meeting update \
  --meeting-id "6953553464429888300" \
  --invitees "open_id1" \
  --invitees-type remove

# 仅修改周期性会议中某一场子会议的时间(不修改周期规则)
tmeet meeting update \
  --meeting-id "6953553464429888300" \
  --meeting-type 1 \
  --sub-meeting-id "100001" \
  --start "2026-04-17T10:00+08:00" \
  --end "2026-04-17T11:00+08:00"

# 显式关闭音频水印 / 自动文字转写
# 注:bool 参数传 false 必须使用 = 形式,不能用空格
tmeet meeting update \
  --meeting-id "6953553464429888300" \
  --audio-watermark=false \
  --auto-asr=false

meeting cancel — 取消会议
tmeet meeting cancel --meeting-id <会议ID> [选项]
参数类型必填默认值说明
--meeting-idstring会议 ID
--sub-meeting-idstring周期性会议子会议 ID,取消周期性会议的某个子会议时需要传入
--meeting-typeint0会议类型:0-普通会议,1-周期性会议(取消整场周期性会议时传 1

示例:

# 取消普通会议
tmeet meeting cancel --meeting-id "6953553464429888300"

# 取消周期性会议中的某个子会议
tmeet meeting cancel \
  --meeting-id "6953553464429888300" \
  --sub-meeting-id "100001"

# 取消整场周期性会议
tmeet meeting cancel \
  --meeting-id "6953553464429888300" \
  --meeting-type 1

meeting list — 查询会议列表

查询进行中或即将开始的会议列表。

tmeet meeting list [选项]
参数类型必填默认值说明
--startstring分页查询起始时间值,ISO 8601,如 2026-03-12T15:00+08:00
--endstring分页查询结束时间值,ISO 8601,如 2026-03-12T15:00+08:00
--show-all-subint0是否展示全部子会议:0-不展示,1-展示
--page-tokenstring分页游标,从上一次响应中返回的 next_page_token 获取,首页不传
--page-sizeint20每页大小,默认 20,最大 20

示例:

tmeet meeting list
tmeet meeting list \
  --start "2026-04-01T00:00+08:00" \
  --end "2026-04-30T23:59+08:00" \
  --show-all-sub 1

# 翻下一页
tmeet meeting list --page-token "<next_page_token>" --page-size 20

meeting list-ended — 查询已结束会议列表

查询历史已结束的会议列表,支持按时间范围分页查询。

tmeet meeting list-ended [选项]
参数类型必填默认值说明
--startstring查询开始时间,ISO 8601,如 2026-03-12T15:00+08:00
--endstring查询结束时间,ISO 8601,如 2026-03-12T15:00+08:00
--page-tokenstring分页游标,从上一次响应中返回的 next_page_token 获取,首页不传
--page-sizeint30每页大小,默认 30,最大 30
--pageint⚠️ 已弃用:页码(从 1 开始),请改用 --page-token

示例:

# 查询本月已结束的会议
tmeet meeting list-ended \
  --start "2026-04-01T00:00+08:00" \
  --end "2026-04-30T23:59+08:00"

# 分页查询(使用 page-token)
tmeet meeting list-ended \
  --start "2026-04-01T00:00+08:00" \
  --end "2026-04-30T23:59+08:00" \
  --page-token "<next_page_token>" --page-size 30

meeting search — 搜索会议

按关键词、会议号、时间范围等条件搜索会议。所有过滤参数均为可选,可任意组合。

tmeet meeting search [选项]
参数类型必填默认值说明
--querystring搜索关键词
--query-fieldstringall--query 的搜索字段:subject-会议主题;creator-创建者昵称/备注名;note-用户对会议的备注;all-搜索所有字段
--meeting-codestring按会议号过滤(精确匹配,仅数字,无短横线)
--startstring搜索时间窗下限(ISO 8601,如 2026-03-12T15:00+08:00)。匹配条件:会议预约开始时间、实际开始时间或当前用户加入时间任一落在窗口内
--endstring搜索时间窗上限(ISO 8601,如 2026-03-12T15:00+08:00),语义同上
--page-tokenstring分页游标,从上一次响应中返回的 next_page_token 获取,首页不传
--page-sizeint30每页大小,默认 30,最大 30

示例:

# 按主题关键词搜索
tmeet meeting search --query "周例会" --query-field subject

# 按创建者昵称搜索
tmeet meeting search --query "张三" --query-field creator

# 按会议号精确搜索
tmeet meeting search --meeting-code "931945029"

# 按时间范围搜索
tmeet meeting search \
  --start "2026-04-01T00:00+08:00" \
  --end "2026-04-30T23:59+08:00"

# 翻下一页
tmeet meeting search \
  --query "项目评审" \
  --page-token "<next_page_token>" --page-size 30

meeting invitees-list — 查询受邀成员
tmeet meeting invitees-list --meeting-id <会议ID> [选项]
参数类型必填默认值说明
--meeting-idstring会议 ID
--page-tokenstring分页游标,从上一次响应中返回的 next_page_token 获取,首页不传
--page-sizeint30每页大小,默认 30,最大 30
--posint⚠️ 已弃用:分页起始位置值,请改用 --page-token

示例:

tmeet meeting invitees-list --meeting-id "6953553464429888300"

# 翻下一页
tmeet meeting invitees-list \
  --meeting-id "6953553464429888300" \
  --page-token "<next_page_token>" --page-size 30

meeting invitees-add — 添加受邀成员

向已存在的会议中追加受邀成员。受邀成员通过用户 open_id 指定,可通过 contact search 命令查询获得。

tmeet meeting invitees-add --meeting-id <会议ID> --invitees <open_id列表>
参数类型必填默认值说明
--meeting-idstring会议 ID
--inviteesstrings待添加的受邀成员 open_id 列表,支持英文逗号分隔或重复传入该参数,最多 100 个

示例:

# 通过英文逗号分隔传入多个 open_id
tmeet meeting invitees-add \
  --meeting-id "6953553464429888300" \
  --invitees "open_id1,open_id2"

# 重复传入 --invitees 参数
tmeet meeting invitees-add \
  --meeting-id "6953553464429888300" \
  --invitees "open_id1" \
  --invitees "open_id2"

meeting invitees-remove — 移除受邀成员

从已存在的会议中移除指定的受邀成员。

tmeet meeting invitees-remove --meeting-id <会议ID> --invitees <open_id列表>
参数类型必填默认值说明
--meeting-idstring会议 ID
--inviteesstrings待移除的受邀成员 open_id 列表,支持英文逗号分隔或重复传入该参数,最多 100 个

示例:

tmeet meeting invitees-remove \
  --meeting-id "6953553464429888300" \
  --invitees "open_id1,open_id2"

meeting invitees-replace — 替换受邀成员列表

使用新的成员列表整体替换会议当前的受邀成员列表(未在 --invitees 中的成员将被移除)。

tmeet meeting invitees-replace --meeting-id <会议ID> --invitees <open_id列表>
参数类型必填默认值说明
--meeting-idstring会议 ID
--inviteesstrings替换后的受邀成员 open_id 列表,支持英文逗号分隔或重复传入该参数,最多 100 个

示例:

tmeet meeting invitees-replace \
  --meeting-id "6953553464429888300" \
  --invitees "open_id1,open_id2,open_id3"

record — 录制管理

record list — 查询录制列表

以下三组参数任选其一(均不传则报错):

  • --start + --end(时间范围)
  • --meeting-id(会议 ID)
  • --meeting-code(会议号)
tmeet record list (--start <开始时间> --end <结束时间> | --meeting-id <ID> | --meeting-code <会议号>) [选项]
参数类型必填默认值说明
--startstring三选一查询开始时间,ISO 8601,如 2026-03-12T14:00+08:00
--endstring三选一查询结束时间,ISO 8601,如 2026-03-12T14:00+08:00(与 --start 配合使用)
--meeting-idstring三选一会议 ID
--meeting-codestring三选一会议号
--page-tokenstring分页游标,从上一次响应中返回的 next_page_token 获取,首页不传
--page-sizeint30每页大小,默认 30,最大 30
--pageint⚠️ 已弃用:页码(从 1 开始),请改用 --page-token

示例:

# 按时间范围查询
tmeet record list \
  --start "2026-04-01T00:00+08:00" \
  --end "2026-04-30T23:59+08:00" \
  --page-token "<next_page_token>" --page-size 30

# 按会议 ID 查询
tmeet record list --meeting-id "6953553464429888300"

# 按会议号查询
tmeet record list --meeting-code "931945029"

record address — 获取录制下载地址
tmeet record address --meeting-record-id <录制ID> [选项]
参数类型必填默认值说明
--meeting-record-idstring会议录制 ID
--page-tokenstring分页游标,从上一次响应中返回的 next_page_token 获取,首页不传
--page-sizeint30每页大小,默认 30,最大 30
--pageint⚠️ 已弃用:页码(从 1 开始),请改用 --page-token

示例:

tmeet record address --meeting-record-id "record_abc123"

# 翻下一页
tmeet record address \
  --meeting-record-id "record_abc123" \
  --page-token "<next_page_token>" --page-size 30

record search — 搜索录制

按关键词、会议号、会议 ID、时间范围、文件类型等条件搜索录制。所有过滤参数均为可选,可任意组合。

tmeet record search [选项]
参数类型必填默认值说明
--querystring搜索关键词
--query-fieldstringall--query 的搜索字段:subject-录制主题;creator-会议创建者昵称/备注名;transcript_content-文件中的原始转写内容;smart_minutes-文件中的智能纪要内容(摘要 + 待办);timeline-文件中的时间轴内容;all-搜索所有字段
--file-typestringall文件类型:videoaudiotranscriptuploadexternalall
--meeting-idstring按会议 ID 过滤
--meeting-codestring按会议号过滤(精确匹配,仅数字,无短横线)
--startstring查询开始时间(ISO 8601,如 2026-03-12T14:00+08:00
--endstring查询结束时间(ISO 8601,如 2026-03-12T14:00+08:00
--page-tokenstring分页游标,从上一次响应中返回的 next_page_token 获取,首页不传
--page-sizeint30每页大小,默认 30,最大 30

示例:

# 按转写内容关键词搜索
tmeet record search --query "季度目标" --query-field transcript_content

# 按智能纪要内容搜索
tmeet record search --query "待办" --query-field smart_minutes

# 按会议 ID 过滤
tmeet record search --meeting-id "6953553464429888300"

# 按时间范围 + 文件类型搜索
tmeet record search \
  --start "2026-04-01T00:00+08:00" \
  --end "2026-04-30T23:59+08:00" \
  --file-type video

# 翻下一页
tmeet record search \
  --query "项目评审" \
  --page-token "<next_page_token>" --page-size 30

record smart-minutes — 获取智能纪要
tmeet record smart-minutes --record-file-id <文件ID> [选项]
参数类型必填默认值说明
--record-file-idstring录制文件 ID
--langstringdefault翻译语言选择:default-原文(不翻译),zh-简体中文,en-英文,ja-日语
--pwdstring录制文件访问密码

示例:

tmeet record smart-minutes --record-file-id "file_abc123" --lang zh

record transcript-get — 获取转写详情
tmeet record transcript-get --record-file-id <文件ID> [选项]
参数类型必填默认值说明
--record-file-idstring录制文件 ID
--meeting-idstring会议 ID
--pidstring查询的起始段落 ID
--limitstring查询的段落数

示例:

tmeet record transcript-get --record-file-id "file_abc123"

# 指定起始段落与数量
tmeet record transcript-get --record-file-id "file_abc123" --pid "<paragraph_id>" --limit "30"

record transcript-paragraphs — 获取转写段落列表
tmeet record transcript-paragraphs --record-file-id <文件ID> [选项]
参数类型必填默认值说明
--record-file-idstring录制文件 ID
--meeting-idstring会议 ID

示例:

tmeet record transcript-paragraphs --record-file-id "file_abc123"

# 指定会议 ID
tmeet record transcript-paragraphs \
  --record-file-id "file_abc123" \
  --meeting-id "6953553464429888300"

record transcript-search — 搜索转写内容
tmeet record transcript-search --record-file-id <文件ID> --text <关键词> [选项]
参数类型必填默认值说明
--record-file-idstring录制文件 ID
--textstring搜索关键词
--meeting-idstring会议 ID

示例:

tmeet record transcript-search --record-file-id "file_abc123" --text "季度目标"

record permission-apply-prepare — 预览录制权限申请

申请录制权限前先调用本命令获取审批文案/会议主题/录制所有者等信息,展示给用户二次确认后再执行 record permission-apply-commit 真正提交申请。

tmeet record permission-apply-prepare --meeting-record-id <录制ID> [选项]
参数类型必填默认值说明
--meeting-record-idstring会议录制 ID
--meeting-idstring会议 ID

示例:

tmeet record permission-apply-prepare --meeting-record-id "record_abc123"

响应 data 主要字段:

字段说明
preview.meeting_record_id会议录制 ID
preview.approval_name申请类型文案
preview.subject会议标题
preview.file_owner录制所有者名称
preview.apply_note权限申请备注信息
preview.applicant申请人名称
expires_in过期时间(秒)

record permission-apply-commit — 提交录制权限申请

写操作:在 permission-apply-prepare 获取预览信息并经用户确认后调用,正式发起权限申请审批流程。

tmeet record permission-apply-commit --meeting-record-id <录制ID> [选项]
参数类型必填默认值说明
--meeting-record-idstring会议录制 ID
--meeting-idstring会议 ID

示例:

tmeet record permission-apply-commit --meeting-record-id "record_abc123"

响应 data 主要字段:

字段说明
unique_id申请 ID
status审批状态
message审批状态描述
approval_url审批链接
share_text申请说明描述

contact — 通讯录

contact search — 搜索企业通讯录成员

按用户名搜索企业通讯录成员,支持通过职位或部门进一步过滤搜索结果。

tmeet contact search --username <用户名> [选项]
参数类型必填默认值说明
--usernamestring要搜索的用户名
--job-titlestring当用户名搜索结果过多时,用于过滤的职位名称
--department-namestring当用户名搜索结果过多时,用于过滤的部门名称

示例:

# 按用户名搜索
tmeet contact search --username "张三"

# 用户名 + 职位过滤
tmeet contact search --username "张三" --job-title "工程师"

# 用户名 + 部门过滤
tmeet contact search --username "张三" --department-name "研发部"

contact lookup-by-email — 通过邮箱反查用户信息

通过邮箱地址反查用户详细信息,支持批量查询多个邮箱。

tmeet contact lookup-by-email --emails <邮箱地址列表>
参数类型必填默认值说明
--emails[]string邮箱地址列表,多个邮箱用逗号分隔或重复使用该参数,最多50个
例如:--emails user1@example.com,user2@example.com 或 --emails user1@example.com --emails user2@example.com

示例:

# 查询单个邮箱
tmeet contact lookup-by-email --emails "user@example.com"

# 批量查询多个邮箱
tmeet contact lookup-by-email --emails "user1@example.com,user2@example.com,user3@example.com"

contact lookup-by-phone — 通过手机号反查用户信息

通过手机号反查用户详细信息,支持批量查询多个手机号。

tmeet contact lookup-by-phone --phones <手机号列表>
参数类型必填默认值说明
--phones[]string手机号列表,多个手机号用逗号分隔或重复使用该参数,最多50个
例如:--phones 13800138000,13900139000 或 --phones 13800138000 --phones 13900139000

示例:

# 查询单个手机号
tmeet contact lookup-by-phone --phones "13800138000"

# 批量查询多个手机号
tmeet contact lookup-by-phone --phones "13800138000,13900139000,13700137000"

report — 参会报告

report participants — 查询参会人列表
tmeet report participants --meeting-id <会议ID> [选项]
参数类型必填默认值说明
--meeting-idstring会议 ID
--sub-meeting-idstring周期性会议子会议 ID
--startstring查询起始时间,ISO 8601,如 2026-03-12T14:00+08:00
--endstring查询结束时间,ISO 8601,如 2026-03-12T14:00+08:00
--page-tokenstring分页游标,从上一次响应中返回的 next_page_token 获取,首页不传
--page-sizeint100每页大小,默认 100,最大 100
--posint⚠️ 已弃用:分页起始位置值,请改用 --page-token
--sizeint⚠️ 已弃用:每页条数,请改用 --page-size

示例:

tmeet report participants --meeting-id "6953553464429888300" --page-size 50
tmeet report participants \
  --meeting-id "6953553464429888300" \
  --start "2026-04-10T10:00+08:00" \
  --end "2026-04-10T11:00+08:00"

# 翻下一页
tmeet report participants \
  --meeting-id "6953553464429888300" \
  --page-token "<next_page_token>" --page-size 50

report waiting-room-log — 查询等候室成员
tmeet report waiting-room-log --meeting-id <会议ID> [选项]
参数类型必填默认值说明
--meeting-idstring会议 ID
--page-tokenstring分页游标,从上一次响应中返回的 next_page_token 获取,首页不传
--page-sizeint100每页大小,默认 100,最大 100
--pageint⚠️ 已弃用:页码,请改用 --page-token

示例:

tmeet report waiting-room-log --meeting-id "6953553464429888300" --page-size 50

# 翻下一页
tmeet report waiting-room-log \
  --meeting-id "6953553464429888300" \
  --page-token "<next_page_token>" --page-size 50

report participants-export — 导出参会成员明细

异步导出会议参会成员明细,本命令仅提交导出任务并返回 job_id,需配合 report job-result 轮询任务状态获取下载链接。

tmeet report participants-export --meeting-id <会议ID> [选项]
参数类型必填默认值说明
--meeting-idstring会议 ID
--sub-meeting-idstring周期性会议子会议 ID
--startstring查询起始时间,ISO 8601,如 2026-03-12T14:00+08:00
--endstring查询结束时间,ISO 8601,如 2026-03-12T14:00+08:00
--file-typestringxlsx导出文件格式:xlsxjson

响应关键字段:

字段说明
job_id异步任务 ID(用于轮询任务状态)

本命令仅返回 job_id,不会自动等待任务完成。获取 job_id 后,需每隔 5 秒调用 report job-result 轮询任务状态,直到 status 为 "成功" 时获取下载链接,或 status 非 "处理中" 时终止。

示例:

# 导出会议参会成员明细(默认 xlsx 格式)
tmeet report participants-export --meeting-id "6953553464429888300"

# 导出为 json 格式
tmeet report participants-export \
  --meeting-id "6953553464429888300" \
  --file-type "json"

# 导出周期性会议某个子会议的参会成员
tmeet report participants-export \
  --meeting-id "6953553464429888300" \
  --sub-meeting-id "200000001"

# 按时间范围过滤
tmeet report participants-export \
  --meeting-id "6953553464429888300" \
  --start "2026-04-10T14:00+08:00" \
  --end "2026-04-10T15:00+08:00"

report job-result — 获取异步任务结果

查询异步导出任务的执行状态与结果。调用 participants-export 获取 job_id 后,需每隔 5 秒调用本命令轮询,直到任务完成或失败。

tmeet report job-result --job-id <任务ID>
参数类型必填默认值说明
--job-idstring任务 ID(从 participants-export 获取)

响应关键字段:

字段说明
status任务状态:"成功"、"失败"、"处理中"
url文件下载链接(状态为 "成功" 时返回,有效期 2 小时)
error_msg错误信息(状态为 "失败" 时返回)

示例:

# 查询异步任务结果
tmeet report job-result --job-id "e1234567-f123-4d12-123a-12346192e332"

导出参会成员明细完整工作流:

1. 提交导出任务,获取 job_id
   tmeet report participants-export --meeting-id "6953553464429888300"

2. 每隔 5 秒调用 job-result 轮询任务状态
   tmeet report job-result --job-id <job_id>

3. 根据返回的 status 判断:
   - status = "成功":返回文件下载链接 url(有效期 2 小时),流程结束
   - status = "处理中":等待 5 秒后再次调用 job-result 继续轮询
   - status = "失败" 或其他值:终止并返回 error_msg

control — 会中控制

会中控制相关命令,用于在会议进行中对参会成员执行呼叫、踢出等管理操作。受邀成员通过用户 open_id 指定,可通过 contact search 命令查询获得。

control call — 呼叫成员入会

会中邀请呼叫,向指定成员发起入会呼叫。

tmeet control call --meeting-id <会议ID> --users <open_id列表>
参数类型必填默认值说明
--meeting-idstring会议 ID
--usersstrings待呼叫的成员 open_id 列表,支持英文逗号分隔或重复传入该参数,最多 20 个

示例:

# 通过英文逗号分隔传入多个 open_id
tmeet control call \
  --meeting-id "6953553464429888300" \
  --users "open_id1,open_id2"

# 重复传入 --users 参数
tmeet control call \
  --meeting-id "6953553464429888300" \
  --users "open_id1" \
  --users "open_id2"

control waiting-room — 等候室管理

管理会议中等候室成员,支持三种操作类型:

  • enter-meeting:主持人将等候室成员移入会议
  • back-to-waiting:主持人将会中成员移回等候室
  • expel:主持人将等候室成员移出(踢出会议)
tmeet control waiting-room --meeting-id <会议ID> --operate-type <操作类型> [选项]
参数类型必填默认值说明
--meeting-idstring会议 ID
--operate-typestring操作类型:enter-meeting(主持人将等候室成员移入会议)、back-to-waiting(主持人将会中成员移入等候室)、expel(主持人将等候室成员移出)
--usersstrings三选一待操作的普通成员 open_id 列表(不含 Sip/Pstn 设备),支持英文逗号分隔或重复传入该参数
--sip-usersstrings三选一待操作的 Sip 设备 ms_open_id 列表,支持英文逗号分隔或重复传入该参数
--pstn-usersstrings三选一待操作的 Pstn 设备 ms_open_id 列表,支持英文逗号分隔或重复传入该参数
--allow-rejoinbool移出后是否允许再次加入会议(仅 --operate-type=expel 时生效);

--users / --sip-users / --pstn-users 三者至少必填一种,且三者总数合计最多 20 个

示例:

# 将等候室成员移入会议
tmeet control waiting-room \
  --meeting-id "6953553464429888300" \
  --operate-type enter-meeting \
  --users "open_id1,open_id2"

# 将会中成员移回等候室
tmeet control waiting-room \
  --meeting-id "6953553464429888300" \
  --operate-type back-to-waiting \
  --users "open_id1,open_id2"

# 将等候室成员移出,不允许再次加入
tmeet control waiting-room \
  --meeting-id "6953553464429888300" \
  --operate-type expel \
  --users "open_id1,open_id2"

# 将等候室成员移出,允许再次加入会议
tmeet control waiting-room \
  --meeting-id "6953553464429888300" \
  --operate-type expel \
  --allow-rejoin \
  --users "open_id1,open_id2"

# 将等候室成员移出,显式不允许再次加入会议
# 注意:bool 类型显式设为 false 时必须使用等号语法 --allow-rejoin=false,不能写成 --allow-rejoin false
tmeet control waiting-room \
  --meeting-id "6953553464429888300" \
  --operate-type expel \
  --allow-rejoin=false \
  --users "open_id1,open_id2"

# 同时操作 sip 设备和 pstn 设备
tmeet control waiting-room \
  --meeting-id "6953553464429888300" \
  --operate-type expel \
  --sip-users "ms_open_id_sip1" \
  --pstn-users "ms_open_id_pstn1"

control kick — 踢出会议成员

会中踢人,将指定成员从会议中踢出。

tmeet control kick --meeting-id <会议ID> [--users <open_id列表>] [--sip-users <ms_open_id列表>] [--pstn-users <ms_open_id列表>] [--allow-rejoin]
参数类型必填默认值说明
--meeting-idstring会议 ID
--usersstrings三选一待踢出的普通成员 open_id 列表(不包含 Sip/Pstn 设备),支持英文逗号分隔或重复传入该参数
--sip-usersstrings三选一待踢出的 Sip 设备 ms_open_id 列表,支持英文逗号分隔或重复传入该参数
--pstn-usersstrings三选一待踢出的 Pstn 设备 ms_open_id 列表,支持英文逗号分隔或重复传入该参数
--allow-rejoinbooltrue被踢出的成员是否允许重新加入会议;不传则默认 true(允许重新入会),传 --allow-rejoin=false 不允许重新入会

--users / --sip-users / --pstn-users 三者至少必填一种,且三者总数合计最多 20 个

示例:

# 踢出普通成员
tmeet control kick \
  --meeting-id "6953553464429888300" \
  --users "open_id1,open_id2"

# 同时踢出普通成员、Sip 设备、Pstn 设备(三者合计不超过 20)
tmeet control kick \
  --meeting-id "6953553464429888300" \
  --users "open_id1" \
  --sip-users "ms_open_id_sip1" \
  --pstn-users "ms_open_id_pstn1"

# 不允许被踢成员重新入会
tmeet control kick \
  --meeting-id "6953553464429888300" \
  --allow-rejoin=false \
  --users "open_id1,open_id2"

tshoot — 问题排查

tshoot log — 导出本地日志

将本地日志打包为 zip 文件,输出到 ~/tmeet_ts_{datetime}.zip,可用于问题排查。支持按时间范围过滤,不传时间参数则导出全部日志。

tmeet tshoot log [选项]
参数类型必填默认值说明
--startstring--end 同时使用日志查询开始时间,ISO 8601,如 2026-03-12T14:00+08:00
--endstring--start 同时使用日志查询结束时间,ISO 8601,如 2026-03-12T15:00+08:00
--uploadboolfalse上传日志到服务器,需要登录

--start--end 必须同时传入或同时不传。

示例:

# 导出全部日志
tmeet tshoot log

# 导出指定时间范围内的日志
tmeet tshoot log \
  --start "2026-04-10T00:00+08:00" \
  --end "2026-04-10T23:59+08:00"

# 导出日志并上传到服务器(需要登录)
tmeet tshoot log --upload

输出示例:

output log saved to: ~/tmeet_ts_20260410_153000.zip

tshoot feedback — 上报问题排查反馈

将 Agent 在使用 CLI 过程中遇到的问题或建议上报至服务器,便于后续优化工具能力。

tmeet tshoot feedback --category <分类> --intent <原始意图> [选项]
参数类型必填默认值说明
--categorystring反馈分类,可选值:tool_not_found(想做某事但找不到匹配工具)、tool_error(调用工具但返回错误)、tool_inadequate(工具存在但能力/参数不足)、unexpected_result(调用成功但结果未达预期)、suggestion(一般性建议或改进想法)
--intentstringAgent 的原始意图,最多 200 字符
--actions-triedstringAgent 已尝试过的动作,最多 500 字符
--resultstring已尝试动作的结果或阻塞点,最多 500 字符
--tool-namestring使用的工具/命令名
--error-codestring工具返回的错误码

示例:

# 反馈:找不到匹配工具
tmeet tshoot feedback \
  --category "tool_not_found" \
  --intent "想批量导出某个时间段的所有会议纪要" \
  --actions-tried "查看了 record 和 meeting 子命令" \
  --result "未找到批量导出纪要的命令"

# 反馈:工具调用返回错误
tmeet tshoot feedback \
  --category "tool_error" \
  --intent "获取录制下载地址" \
  --tool-name "record address" \
  --error-code "200003" \
  --result "接口返回权限不足"

# 反馈:一般性建议
tmeet tshoot feedback \
  --category "suggestion" \
  --intent "希望支持按主题模糊搜索会议"

该命令需要登录后才能使用。


安全与风险提示(使用前必读)


腾讯会议 CLI 工具接入 OpenClaw 等AI Agent 并获得您的授权后,AI 将会获得你在腾讯会议的数据访问权限(包括但不限于您的详细用户信息、管理和查询会议、录制和纪要等文件查询导出),并以您的用户身份在授权范围内执行操作。尽管工具有安全防护,AI仍可能因模型幻觉、提示词注入、投毒攻击、执行偏差不可控等原因,导致数据泄露、越权操作等执行非预期操作的高风险后果,请您谨慎操作和使用,并遵循你所在企业的数据安全等内部管理要求,避免造成数据丢失、泄露等损失。若怀疑泄露或需停用,请立即执行登出命令 tmeet auth logout

请您充分理解并接受上述风险后再使用本工具,安装使用CLI后即视为您自愿承担相关责任。

配置说明

配置文件默认存储在 ~/.tmeet/ 目录下,支持通过环境变量覆盖:

环境变量说明默认值
TMEET_CLI_CONFIG_DIR配置文件目录~/.tmeet/
TMEET_CLI_DATA_DIR加密数据目录平台相关默认路径

注意:所有时间参数均使用 ISO 8601 格式,例如 2026-04-10T14:00+08:00。响应中的时间戳字段会自动转换为 ISO 8601 格式展示。

贡献指南

欢迎提交 Issue 和 Pull Request,请先阅读 CONTRIBUTING.md

安全

如发现安全漏洞,请参阅 SECURITY.md 了解如何私下报告。

许可证

本项目基于 MIT License 开源。

Project files and signals

Shown items are public repository signals detected in the directory snapshot.

Security policyDetected
Contributing guideDetected

Repository information

Language
Go
License
NOASSERTION
Latest release
v1.0.15
Last updated
Aug 18, 2026, 7:49 AM

Install deliberately

Review source code, permissions, lifecycle hooks, dependencies and network access. Test untrusted plugins in an isolated environment.