npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

meeting-cli

v1.0.5

Published

Meeting knowledge base CLI - semantic search, metadata management, and meeting transcript processing

Readme

meeting-cli

会议知识库命令行工具,提供语义搜索和元数据查询能力。

  • kb — 知识库操作:语义搜索、数据摄入、删除、健康检查、配置管理
  • meet-meta — 元数据查询:按条件过滤会议、转录记录、决策

安装

需要 Node.js >= 18。

npm install -g meeting-cli

安装后全局可用两个命令:

kb --version       # 查看 kb 版本
meet-meta --version # 查看 meet-meta 版本

快速开始

# 1. 设置后端 API 地址(只需执行一次,配置会持久保存)
kb config set KB_API_BASE_URL http://192.168.4.185:8001/api/v1
kb config set MEET_META_API_BASE_URL http://192.168.4.185:9992/api/v1

# 2. 发起搜索
kb query "Sprint 计划"

配置

配置通过 kb config 命令管理,存储在 ~/.meeting-cli/config.json,设置一次后全局生效。

配置命令

# 设置
kb config set KB_API_BASE_URL http://192.168.4.185:8001/api/v1
kb config set KB_API_TIMEOUT 60000

# 查看全部
kb config get

# 查看单项
kb config get KB_API_BASE_URL

# 删除
kb config unset KB_API_TIMEOUT

配置优先级(低 → 高)

  1. 代码默认值
  2. 当前目录下的 .env 文件
  3. 用户配置 ~/.meeting-cli/config.json
  4. 系统环境变量

环境变量

| 变量 | 默认值 | 说明 | |---|---|---| | KB_API_BASE_URL | http://localhost:8000/api/v1 | kb 命令的后端 API 地址 | | MEET_META_API_BASE_URL | http://localhost:8000/api/v1 | meet-meta 命令的后端 API 地址 | | KB_API_TIMEOUT | 30000 | HTTP 请求超时时间(毫秒) | | KB_API_MOCK | false | 设为 true 启用模拟模式(无需后端,返回模拟数据) |

kb 命令

全局选项

所有 kb 子命令都支持以下选项:

| 选项 | 说明 | 默认 | |---|---|---| | -V, --version | 显示版本号 | — | | -v, --verbose | 显示详细错误堆栈 | false | | -t, --text | 人类可读文本输出 | false(默认 JSON) |

kb query

语义搜索知识库。

kb query <text> [options]

| 参数 / 选项 | 说明 | 默认 | |---|---|---| | <text> | 搜索查询文本(必填) | — | | -k, --top-k <n> | 返回结果数量上限 | 10 | | --meeting-id <id...> | 限定特定会议(可重复) | — | | --type <type> | 段落类型:transcript / decision / material / minutes | — | | --full | 展示完整内容不截断 | false |

kb query "Sprint 计划"
kb query "架构讨论" -k 5 --type decision
kb query "性能优化" --meeting-id mtg-001 -t
kb query "技术选型" --full

kb ingest

摄入会议数据(JSON 文件)。

kb ingest [options]

| 选项 | 说明 | |---|---| | -f, --file <path> | 会议数据 JSON 文件路径(必填) |

JSON 文件需包含 meetingcontents 字段。每个 content 项的 type 必须为 transcript / decision / material / minutes 之一。

kb ingest -f meeting_data.json

kb append

追加内容到已有会议。

kb append <meeting_id> [options]

| 参数 / 选项 | 说明 | |---|---| | <meeting_id> | 目标会议 ID(必填) | | -f, --file <path> | 内容数据 JSON 文件路径(必填) |

会校验文件中每个 content 项的 meeting_id 是否与命令行参数一致,不一致则报错。

kb append mtg-001 -f append_data.json

kb forget

删除数据(子命令组)。

forget segments

删除指定段落。

kb forget segments <meeting_id> [options]

| 参数 / 选项 | 说明 | |---|---| | <meeting_id> | 会议 ID(必填) | | -s, --segment-id <id...> | 要删除的段落 ID,可重复多个(必填) |

kb forget segments mtg-001 -s seg-001 -s seg-002

forget source

删除指定来源实体。

kb forget source <meeting_id> [options]

| 参数 / 选项 | 说明 | |---|---| | <meeting_id> | 会议 ID(必填) | | -s, --source-id <id...> | 要删除的来源实体 ID,可重复多个(必填) |

kb forget source mtg-001 -s src-001

forget meeting

删除整个会议及其所有数据。

kb forget meeting <meeting_id> [options]

| 参数 / 选项 | 说明 | |---|---| | <meeting_id> | 会议 ID(必填) | | -y, --yes | 跳过确认提示 |

不加 --yes 会弹出交互式确认:确认删除会议 {id} 及其所有数据?(y/n)

kb forget meeting mtg-001
kb forget meeting mtg-001 --yes

kb update-speaker

更新指定来源实体的 speaker 元数据。

kb update-speaker <meeting_id> [options]

| 参数 / 选项 | 说明 | |---|---| | <meeting_id> | 会议 ID(必填) | | -s, --source-id <id...> | 来源实体 ID,可重复多个(必填) | | --speaker <name> | speaker 名称(必填) |

kb update-speaker mtg-001 -s src-001 --speaker "张三"

kb health

检查后端服务健康状态。

kb health
kb health

kb config

管理持久化配置。

kb config set <key> <value>
kb config get [key]
kb config unset <key>
kb config set KB_API_BASE_URL http://192.168.4.185:8001/api/v1
kb config set KB_API_TIMEOUT 60000

kb config get
kb config get KB_API_BASE_URL

kb config unset KB_API_TIMEOUT

配置保存在 ~/.meeting-cli/config.json,设置一次后全局生效。详见配置章节。


meet-meta 命令

全局选项

| 选项 | 说明 | 默认 | |---|---|---| | -V, --version | 显示版本号 | — | | -v, --verbose | 显示详细错误堆栈 | false | | -t, --text | 人类可读文本输出 | false(默认 JSON) |

meet-meta meeting

按会议元数据条件过滤会议。

meet-meta meeting [options]

| 选项 | 说明 | 默认 | |---|---|---| | --topic <text> | 按主题模糊匹配 | — | | --status <status> | 会议状态 | — | | --creator <name> | 按创建人过滤 | — | | --participant <name> | 按参会人过滤 | — | | --meeting-id <id...> | 限定会议 ID(可重复) | — | | --start-after <date> | 开始时间不早于该日期 | — | | --start-before <date> | 开始时间早于该日期 | — | | --include-minutes | 联查最新纪要正文 | false | | -n, --limit <n> | 返回数量上限 | 10 | | -o, --offset <n> | 偏移量 | 0 |

meet-meta meeting --topic "Sprint"
meet-meta meeting --creator "张三" --status "completed"
meet-meta meeting --start-after "2024-01-01" --start-before "2024-12-31" -t
meet-meta meeting --meeting-id mtg-001 --include-minutes

meet-meta transcript

按转录脚本元数据条件过滤。

meet-meta transcript [options]

| 选项 | 说明 | 默认 | |---|---|---| | --speaker <name> | 按发言人过滤 | — | | --meeting-id <id...> | 限定会议 ID(可重复) | — | | -n, --limit <n> | 返回数量上限 | 10 | | -o, --offset <n> | 偏移量 | 0 |

meet-meta transcript --speaker "李四"
meet-meta transcript --meeting-id mtg-001 -n 20

meet-meta decision

按决策元数据条件过滤。

meet-meta decision [options]

| 选项 | 说明 | 默认 | |---|---|---| | --owner <name> | 按决策人过滤 | — | | --deadline-before <date> | 截止日期在此之前 | — | | --deadline-after <date> | 截止日期在此之后 | — | | --meeting-id <id...> | 限定会议 ID(可重复) | — | | -n, --limit <n> | 返回数量上限 | 10 | | -o, --offset <n> | 偏移量 | 0 |

meet-meta decision --owner "王五"
meet-meta decision --deadline-after "2024-06-01" --deadline-before "2024-06-30"
meet-meta decision -n 20 -o 10

输出格式

JSON 模式(默认)

成功输出到 stdout:

{"ok":true,"data":{"...","elapsed_ms":50}}

错误输出到 stdout(JSON 模式):

{"ok":false,"error":{"message":"错误描述","hint":"建议操作"}}

文本模式(-t / --text

启用 -t 选项后,输出为彩色人类可读格式。

kb query "Sprint" -t
meet-meta meeting --topic "评审" -t

错误处理

错误输出格式

发生错误时,JSON 模式输出以下结构:

{"ok":false,"error":{"message":"错误描述","hint":"建议操作"}}

文本模式输出带颜色的错误信息和提示。

常见错误

| 错误信息 | 原因 | 解决方法 | |---|---|---| | 无法连接后端 | API 地址不可达或网络不通 | 检查 KB_API_BASE_URL 配置是否正确,确认后端服务是否运行 | | 请求超时 | 网络延迟或后端响应慢 | 增大超时时间:kb config set KB_API_TIMEOUT 60000 | | 文件不存在 | -f 指定的文件路径不正确 | 检查文件路径,确认文件存在 | | 请求参数错误 | 参数格式或类型不正确 | 检查参数格式,参考命令帮助 kb <command> --help | | 内部错误 | 未预期的运行时错误 | 使用 -v 选项查看详细堆栈,根据错误信息排查 |

调试

使用 -v / --verbose 可输出完整的错误堆栈信息,便于定位问题:

kb query "测试" -v

退出码

| 退出码 | 含义 | |---|---| | 0 | 成功 | | 1 | 通用错误(网络、超时、内部错误等) | | 2 | 参数或输入错误(文件不存在、格式错误等) |