@agentcomms/gmail

中文文档
0.37.0发布于 2026/10/29MITTypeScriptES Module构建来源已验证近 30 天下载 5264

编码代理的Gmail:代理-gmail CLI,一个MCP服务器和一个库-搜索,读取,分析和起草跨越许多收件箱,通过批准发送门.

中文使用文档
文档目录13 节
  1. 为什么发送规则存在
  2. 谁的留言似乎来自
  3. 安装
  4. 连接邮箱
  5. 通过手
  6. 图标
  7. 保存附件
  8. 需要你批准的改动
  9. 获取信件
  10. 来自另一个 Gmail MCP 服务器
  11. 作为 MCP 服务器
  12. 保存着的东西
  13. 许可证

@ agentcomms/ gmail (英语)

用于编码代理的Gmail:搜索、读取、分析和起草多个邮箱——与 发送门由 用户当时给予的批准。 。 。 .

这个包是 agent-gmail 命令和背后的 MCP 服务器。 这是其中的一部分 代理通讯。 。 。 .

本地事件守护进程, @agentcomms/events-daemon,可能称此包的内部 只读事件操作。 它没有添加 Gmail 命令 或 MCP 工具,它不能发送.

为什么发送规则存在

每个Gmail允许一个应用程序写一个草稿也允许它发送:没有将两者分开的范围. 因此"代理人可以起草但不能发送"不能由赠款执行,而在这里执行——一个代码路径 到达Gmail的发送端点,在没有与发送的准确信息匹配的批准的情况下拒绝.

谁的留言似乎来自

一个探员的草稿写道: "Jo Example (agent)" <[email protected]> 所以无论谁收到 可以知道是这个人的代理人寄来的,而不是这个人(设计, (中文(简体) ), 第5条.

  • 名称 是 Gmail 在“ 发送邮件为” 下为该地址持有的地址; 当它没有, 或有一个标签 无法使用,核心中设置的标签名称(它的 CLI) label name,或 comms_label草案被否决,并说 如何设置一个. 词 实值 agent,除非该人选择 assistant, (中文(简体) ), twin, (中文(简体) ), minion, (中文(简体) ), bot, (中文(简体) ), fake 或者说 AI。 。 。 .
  • --as me 打开 draft new, (中文(简体) ), draft reply, (中文(简体) ), draft update 财务报告和审定财务报表 send prepare (单位:千美元)as: "me" 写着: 被打上标签的那个人 因为当他们为这个信息说到这一点时 他们的标签规则另作决定,通过邮箱, (地址或 @domain,仅在每个接受者进行匹配时进行匹配)和按种类进行匹配(send 用于新的 消息或前进, reply 以示答复;没有规定,电文被贴上标签.
  • send prepare 又解决了. 一份草案,其来源没有说明它似乎来自谁——写作: Gmail,在发布之前写, 或一条规则或 as 现在位置不同了 重写它的标题 其它的都是Gmail的字节 预览中说From被改写了 草稿来自 邮箱不能按拒绝的方式发送地址,而不能重新贴上标签.
  • 预览的第一行 说它会是.. me, (中文(简体) ), Sent as you, with no label: it will look as if you wrote it yourself a 预览空白后更改的 这个.

Gmail 不记录它通过它的 API 发送的 From 名称来做什么 。 报告说,它保留了书面名称; 设计中的活检(§10)是解决它的方法.

安装

npm install -g @agentcomms/gmail    # or run it with npx @agentcomms/gmail <command>

节点22.12或更新. 没有别的了:指挥舰作为一捆.

连接邮箱

npm i -g @agentcomms/gmail
agent-gmail setup

setup 是进来的路 您需要符合资格的 OAuth 客户端: 您自己的客户端, 或者一个组织配置文件提供客户端 . 为您自己在 Google Cloud 中创建一次( 类型 ) 桌面应用程序并公布它,以免它的迹象在以后失效 一个星期.. setup 将这五个屏幕与每个屏幕连在一起,并说每个字段要打什么字。 以一个简介, setup --profile <file> 通过自己的批准加入,并在邮箱名称选择时跳过"云"行走 活动客户端。 它随后连接了邮箱并主动提出注册MCP服务器. 它跳过任何已经做的, 因此,运行它再次增加了另一个邮箱—— 并停止了部分, 它提供继续 从最后一个屏幕确认.

在终端上,它绘制一个列表,您用光标键移动; --no-tui 问同样的问题 一行 在一个时候。 没有人能回答一个.. --json, (中文(简体) ), --no-input,CI,一个被改变方向的溪流——它作用于它的旗帜 并点出本可以继续使用的旗帜:

agent-gmail setup --client-json ~/Downloads/client_secret_*.json \
  --inbox acme/gmail --email [email protected] --mcp-client claude-code --json

它无法完成的一步是赠与: 它返回登录链接和完成它的命令 继续将Gmail放入该应用程序的 MCP 连接,当 --mcp-client 带着邮箱来的--standalone 与0.35.0之前一样,登记Gmail自己的条目。 每一个邮箱都要Gmail 应用程序在哪里 连接已经把 Gmail 保存在一个邮箱里,或者只读它, 它离开它,当你选择它 所以说 agentcomms connection change 这会让它到达新的邮箱。 注册 OAuth 客户端 而连接 MCP 服务器是您批准的更改 。 由经纪人管理, setup 每个站点都有预览和一个 批准编号,并再次运行 --approval <id> 用于 OAuth 客户端或 --mcp-approval <id> mCP 服务器 一旦你答应了,在终点站它就会问你.

通过手

命令 setup 包装都还在那里:

agent-gmail client add ~/Downloads/client_secret_*.json --move
agent-gmail inbox add acme/gmail --email [email protected] --start   # prints a link
# open the link, choose the account, leave every permission ticked
agent-gmail inbox add --finish fl_… --wait 60
agent-gmail whoami --inbox acme/gmail

添加配置文件不会移动已连接的邮箱 。 读取其活动客户端 agentcomms org show <organisation>,然后移动一个 agent-gmail inbox reauth <name> --client <organisation>-1 --start,使用 生成名称 org show 报告.

--start 财务报告和审定财务报表 --finish 是两个命令,因为同意需要几分钟 代理的外壳不会持续 长。 在终端上,平平 agent-gmail inbox add acme/gmail 等待浏览器本身.

图标

命令它会做什么
setupgoogle Cloud 步骤,客户端,一个邮箱和代理连接,在一个命令中
client add|list|removegoogle Cloud OAuth 客户端 每个邮箱的标志通过
inbox add|list|show|reauth|rename|policy|remove|import连接和管理邮箱
whoami --inbox <name>谷歌说的信箱
doctor [--inbox <name>]检查所有需要工作的东西, 并说如何修复什么没有
mcp在 stdio 上运行 MCP 服务器
mcp install --client claude-code|claude-desktop|codex|cursor|gemini|vscode|json注册服务器,并证明它开始(先得到批准)
mcp prune [--dry-run]删除遗留的旧版本( 先批准)

每个命令都用 --json 和指纹 {"ok":true,"schemaVersion":1,"data":…} 或者,如果失败, {"ok":false,"schemaVersion":1,"error":{"code","message","hint"}} ——有文件记载的出站代码 (--help 列表 ,他们。 数据到 stdout,消息到 stderr.

保存附件

agent-gmail attachments find --inbox acme/gmail --from [email protected] --filename pdf
agent-gmail attachments download 18f2c7a9e03b41d6 --inbox acme/gmail --part 1

你说他们去哪里. 在您有文件之前, 任何文件都不会被保存: 命令列出文件—— 每个名称、 大小和 发件人——并询问是否将其保存在 1 您的下载文件夹, 2 您运行的文件夹, 或 3 文件夹 名称(绝对,或从 ~;如果缺失,则制作)。 两个文件夹都按其精确路径显示. 下载是 defaults.downloadsDir 当设置一个时; 否则, 您的系统会保存的文件夹 — 在 Linux 上的 XDG 1 (单位:千美元)XDG_DOWNLOAD_DIR,或 ~/.config/user-dirs.dirs这样 ~/Téléchargements 在法国桌面上),在Windows上 下载已知文件夹, 否则移动到何处 ~/Downloads在自己的终端,你也可以说它与 --to downloads, (中文(简体) ), --to current 或者说 --to <folder> - 只有那里:没有终点站 --json通过管子,或 由代理操作,命令将不保存任何信息,用选择的 id 打印问题并退出 10,以及 --to 需求 问题 --choice 旁边 超过 MCP gmail_attachment_download 问同样的方式:它的第一个呼叫答案 destinationRequired: true 问题和a choiceId选择这些附件,用它的名字 显示,没有其他;使用一次,30分钟后失效。 与其他论点一起发出的呼吁被拒绝,而且 问题不放过.

你的回答遵循了邮箱的变更政策. 下 chat (默认),代理 传递你的回答回 - saveTo 与 choiceId,或 --to <answer> --choice <id>下调 confirm 氮ê琌贝 无法:在您自己的终端上,如果结果给出了批准的命令,那么这个命令就是问题所在 再次问 1, (中文(简体) ), 2 或者说 3,或者在表格中您信任的客户端 confirm-clients add 给你看 经纪人 然后再次打电话与 choiceId 仅此而已,在争论中传递的答案被拒绝,问题就留了下来 为你打开.

有些文件夹从不保存到, 谁回答. 一个隐藏的文件夹, 任何深度和任何磁盘上.. ~/.ssh, (中文(简体) ), ~/.config,一个项目 .git, (中文(简体) ), .github, (中文(简体) ), .husky, (中文(简体) ), .vscode 或者说 .claude - 除了在下面的取出 .claude/worktrees/<name>,这与其他项目一样(其中隐藏的文件夹仍然被拒绝);文件夹 程序加载软件包,无论它来自何处 -- node_modules, (中文(简体) ), site-packages, (中文(简体) ), dist-packages, (中文(简体) ), __pycache__,以及任意 python 虚拟环境中的文件夹, 一个 pyvenv.cfg 在其中或上方; Python 中的任何文件夹 安装,一个 conda-meta, (中文(简体) ), Lib/os.py 或者说 lib/python3.<minor>/os.py 在它或上面,例如 ~/miniconda3 或者说 C:\Python312 (你的家和磁盘的根 从来没有被拿走过); ~/Library; 此软件包是自己的 配置、状态、数据和证书文件夹;系统的文件夹(/, (中文(简体) ), /etc, (中文(简体) ), /usr, (中文(简体) ), /bin, (中文(简体) ), /var, (中文(简体) ), /System,虽然一个家庭内部,例如 /root,属于您的;在Windows上 AppData, (中文(简体) ), %PROGRAMDATA%,则 Windows 文件夹、 程序文件、 PowerShell 的配置文件夹(Documents\PowerShell 财务报告和审定财务报表 Documents\WindowsPowerShell, (中文(简体) ), 无论Windows说文档在哪里),驱动器的根,网络共享和没有驱动器的路径——在Linux上同样 通过 WSL 到达的 Windows 文件夹, 在一个 Windows 驱动器上, 无论它在哪里挂载, 也无论它在哪里挂载 (/mnt/<letter> 以 默认 : 驱动器本身, 及其上的一个文件夹命名 Windows, (中文(简体) ), Program Files, (中文(简体) ), ProgramData 或者说 AppData,或 PowerShell的简介文件夹,无论深度和大小. 通过链接导致一个文件夹被拒绝 作为文件夹: a hooks 链接到 .husky 实值 .husky在其中任何一个中,一个文件会是一个程序运行或装入的东西 ——钩子,包子,剖面图,密钥,批准——而不是你读取的文件. 这些是每个文件夹 其类型的机器有,或者其中的某个文件可以简单化;一个文件夹被告诉一个程序可以装入整个程序——一个zsh 补全文件夹、 应用程序插件或启动文件夹 —— 从这里无法得知, 保存到它就是您的 选择。 您的家庭文件夹本身是好的。 当您运行的文件夹是其中之一时, 选项 2 显示为 没有,原因。 无法写入的文件夹也会被拒绝, 以免您的答案被使用 .

每个文件都以其发送者给它的名称保存,使之安全——没有路径,没有线索点(.npmrc 保存为 npmrc.download),没有控件或bodi字符,没有Windows设备名称——并且从来没有超过一个文件:新 一个被保存在旁边作为 -2。发送过两次相同的文件——同名和同字节——是写过一次;同名 两个名字下的字节是两个文件. 文件夹中没有其它内容;下载记录在审计日志中 并显示在本软件包的状态目录下。 一个停止部分记录其保存内容的下载, 删除它只写了一部分的文件, 并说保存了什么和没有。 发件人所说的文件来了 回到不可信内容信封内 保存在信封下面的名字及其路径也一样 除非是 完全是一个文件名。 从来没有打开或运行.

一个文件被保存在一个名称下 没有运行它. 它只在文件是查看器时才保留扩展名 打开后, 任何程序都不会用它的名称来运行或加载: 一个文档(pdf, (中文(简体) ), doc, (中文(简体) ), docx, (中文(简体) ), xls, (中文(简体) ), xlsx, (中文(简体) ), ppt, (中文(简体) ), pptx, (中文(简体) ), odt, (中文(简体) ), ods, (中文(简体) ), odp, (中文(简体) ), rtf, (中文(简体) ), txt, (中文(简体) ), csv, (中文(简体) ), tsv),图像(png, (中文(简体) ), jpg, (中文(简体) ), jpeg, (中文(简体) ), gif, (中文(简体) ), webp, (中文(简体) ), heic, (中文(简体) ), heif, (中文(简体) ), bmp, (中文(简体) ), tif, (中文(简体) ), tiff),声音或视频(mp3, (中文(简体) ), m4a, (中文(简体) ), wav, (中文(简体) ), aac, (中文(简体) ), flac, (中文(简体) ), ogg, (中文(简体) ), mp4, (中文(简体) ), mov, (中文(简体) ), m4v, (中文(简体) ), webm, (中文(简体) ), avi, (中文(简体) ), mkv),一个归档(zip, (中文(简体) ), tar, (中文(简体) ), gz, (中文(简体) ), tgz, (中文(简体) ), bz2, (中文(简体) ), xz, (中文(简体) ), 7z, (中文(简体) ), rar、日历、联系人或邮件文件(ics, (中文(简体) ), vcf, (中文(简体) ), eml),或苹果文档(pages, (中文(简体) ), numbers, (中文(简体) ), key) (中文(简体) ). 其它任何——可执行文件,脚本,配置 (单位:千美元)json, (中文(简体) ), yaml, (中文(简体) ), toml, (中文(简体) ), ini, (中文(简体) ), md,...),宏文档,HTML或SVG,a .pth, (中文(简体) ), .plist 或者说 .lnk,名称没有 扩展名——一个工具读取的几个名字,尽管其扩展名列在该列表上(CMakeLists.txt, (中文(简体) ), requirements.txt 不管项目叫它什么.. dev-requirements.txt 还有.. conanfile.txt, (中文(简体) ), apt.txt, (中文(简体) ), runtime.txt, (中文(简体) ), python312.zip以 .download 整个名称后: setup.exe 作为 setup.exe.download, (中文(简体) ), CLAUDE.md 作为 CLAUDE.md.download, (中文(简体) ), Makefile 作为 Makefile.download。以扩展名或名称加载文件的程序 知道吗? Python的音乐 .pth钩子 特工的钩子 CLAUDE.md ——通过这样的文件,直到你重新命名它;一个 将每个文件加载到文件夹中, 不管它叫什么 都不会被名字所停止, 这就是为什么文件夹是您的 选择。 此文件被标记 saved-as-download (和 auto-read 当工具读取它的名称。 各题名 在您回答之前的“ setup.exe( 可执行) ” 将被保存为 setup. exe.download —— 一个可以运行的类型; 重命名它 如果你相信它的话... ... ..... warnings。 。 。 .

doc, (中文(简体) ), xls, (中文(简体) ), ppt, (中文(简体) ), odt, (中文(简体) ), ods 财务报告和审定财务报表 odp 保持他们的名字,因为你打开他们 当你打开一个 docx,但不像一个 docx 每一个都可以持有宏。 每个都有标记 macro-capable,而问题和结果 以言语说: "report.xls可以持有宏——只有信任发送者才能打开".

每个被保存的文件都标记为从互联网下载正如浏览器所标注的一样——一旦完成, 在它的字节被写入之前, 所以在文件夹中找不到标记 : 在 macOS 上使用 com.apple.quarantine 属性,所以门卫在它首次运行前询问,并在 Windows 上询问 Zone.Identifier 用于 Internet 区域的流,所以 SmartScreen 询问, Office 在保护视图中打开它。 Linux 没有这样的标记,和 文件 WSL 也不会保存到 Windows 驱动器上 。 每个文件 marked 说它携带的; 无法保存的文件 标记仍然保存,以及 warnings 这么说的.

需要你批准的改动

client add 财务报告和审定财务报表 client remove, (中文(简体) ), inbox import 财务报告和审定财务报表 inbox remove, (中文(简体) ), confirm-clients add一个松散的 inbox policy, (中文(简体) ), a 一个 inbox reauth 这要求更多的访问 比邮箱, mcp install (它给一个客户端 一套新的工具) 财务报告和审定财务报表 mcp prune (一个被删除的运行时间不能收回) 每一个松动的东西或者无法被取消,所以每个都是 在事发前就通过了 在终端上,命令会显示确切的改变,并要求您输入 yes - 或者, 下划线 confirm 更改策略,由结果给出的批准命令显示的代码. 由特工或无代理操作 终端,它用批准代码打印同样的预览和退出 10; 一旦你答应了, 同样的命令与 --approval <id> 做改变。 收紧政策从来不问.

MCP服务器将每个都作为要求相同方式的工具,一个表面的审批可以是 另一种说法是:这是一个变化。 注册和运行是核心服务器的 comms_server_install 财务报告和审定财务报表 comms_server_prune 与 channel: "gmail",他们和 mcp install 财务报告和审定财务报表 mcp prune。 。 。 . mcp install --print, (中文(简体) ), --client json 财务报告和审定财务报表 mcp prune --dry-run 改变不了什么, 问谁都不要.

获取信件

当多个代理会话读取同一个邮箱时,第一个接受消息的人有,其他的人则离开. A 类 本届会议在回答这个问题之前要发出一个信息,当它不是自己的信息时就把它交回来——说为什么,用闭门话—— 或标记已完成的:

agent-gmail take 18c2f0a1b2c3d4e5 --inbox acme/gmail                    # this session has it now
agent-gmail take 18c2f0a1b2c3d4e5 --inbox acme/gmail --hand-back --reason not-mine --note "about billing"
agent-gmail take 18c2f0a1b2c3d4e5 --inbox acme/gmail --done
agent-gmail taken 18c2f0a1b2c3d4e5 --inbox acme/gmail                   # who has it

通过MCP,这些 gmail_take (单位:千美元)step数字 : take, (中文(简体) ), hand-back 或者说 done和 gmail_taken。接下来的届会是 由服务器或命令从它所运行的进程中(从一个参数中从不)确定 在会话最后一幕之后的一小时,或者在它的代理窗口结束后,除非它准备了一个发送 还在等待你的同意 只有到达的邮件才能被取走:不是这个邮箱发送的信息,也不是草稿. A 类 理由是 not-mine, (中文(简体) ), wrong-account, (中文(简体) ), needs-the-person, (中文(简体) ), duplicate 或者说 other; 注释最多为200个字符和 单独向您展示。 只读服务器的报价 gmail_taken 没有 gmail_take。 。 。 .

其他学习的只是闭门话: you, (中文(简体) ), another session 或者说 the person、采取或采取、提议和 它被交回的原因——从来不是哪个会话、它的文件夹或它的客户端,也从来不是纸条. read, (中文(简体) ), thread, (中文(简体) ), search 他们的工具在每条消息上都这么说 taken。 。 。 .

与 agentcomms taking acme/gmail --require on在会议起草答复之前,会议必须听取信息 在它准备或发出答复之前——一个寄给该邮箱的地址。 不拿这个动作 拒绝使用 TAKE_REQUIRED (离职) 10在任何草案、预览或批准之前,以及在发送之前:a 接受释放 之间发送什么, 批准是原样。 另一个会话被拒绝 TAKEN_ELSEWHERE (离职) 10是否需要抽取——组织和拆分它也是如此,它从来没有 需要一个拍摄。 一个新的信息 和前进的答案 没有人的信息, 无需承担。 追随你自己的邮件 因此它需要这个信箱收到的最新消息 被拒绝 其它会话有其中之一; 单凭您自己的邮件线条就不需要接受。 在你的终端 从来没有坚持服用: agentcomms takes keep 给你留个口信 takes list, (中文(简体) ), release 财务报告和审定财务报表 give 这是你的 在核心的读取.

拍摄本身就无从谈起:每一次发送都需要行为规则,发送政策和你的"是". 有两个 会话从回答同一消息开始;它不是针对您运行的进程的边界。 Gmail没有,所以.. 照对寄件人不说.

来自另一个 Gmail MCP 服务器

agent-gmail inbox import --dry-run    # says what it would take from ~/.gmail-mcp
agent-gmail inbox import

它复制;它从不移动或删除任何东西. 其无法继承的两件事:每个邮箱是哪个Google账户 (这些信使是无 openid),并允许标签或存档。 一个 agent-gmail inbox reauth <name> --start 每个邮箱都修补.

它还告诉你另一个服务器是否仍然与一个代理连接. 虽然如此,服务器的发送工具是 里面也没有东西能挡住他们.

作为 MCP 服务器

agent-gmail mcp install --client claude-code

它显示它会注册什么,请您输入 yes; 由代理操作, 它退出 10 带有预览和一个 批准编号,再运行时登记 --approval <id> 在你答应之后.

或入其内:

import { createGmailMcpServer } from '@agentcomms/gmail';

const server = await createGmailMcpServer({ inbox: 'acme/gmail' });
await server.connectStdio();

工具仅通过进程标记注册,所以工具列表在连接之间从未变化;每个邮箱可能包含的内容 在每次通话时都会检查配置, 此时此刻的情况。 添加收件箱或收紧保险单 当服务器运行时,它适用于下一个呼叫.

每个账户命令都有其工具—— gmail_client_add, (中文(简体) ), gmail_inbox_reauth, (中文(简体) ), gmail_inbox_import, (中文(简体) ), gmail_inbox_remove, (中文(简体) ), gmail_inbox_policy, (中文(简体) ), gmail_confirm_client_add 需要改变 核准结果 approvalRequired 预览和一个 approvalId 而不是演戏。 经纪人告诉你 预览并再次使用您同意后的 id 拨打 . gmail_client_add 从您的路径读取客户端 JSON 机器; 文件从不通过对话, 没有工具返回它的秘密 .

保存着的东西

什麽何处
配置$XDG_CONFIG_HOME/agent-communications,则 ~/.config/agent-communications (单位:千美元)%APPDATA% 在窗口上)
密码和客户机密系统密钥链,或仅所有者的文件(--store file(中文(简体) )
核准、审计记录、状况<config>/state
每个代理窗口读取、完成和发送的内容:活动日志<config>/state/activity,一天一个文件,保留了30天:id,对象,发件人,所搜索的字词,文件名和大小,发件人的收件人——从来不是身体或附件(agentcomms activity sessions(中文(简体) )
您保存的附件下载、 运行命令的文件夹或您命名的文件夹
出口~/Downloads/agent-communications,或 defaults.downloadsDir

没有秘密会写给 config.json,由命令打印,或者将结果放入.

许可证

麻省理工学院

版本与发布记录

@agentcomms/gmail 共发布 59 个版本,首次发布于 2026/09/20;过去 12 个月发布了 59 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
0.37.0latest2026/10/299 天前
0.36.02026/10/2810 天前
0.35.02026/10/2811 天前
0.34.02026/10/2711 天前
0.33.02026/10/2712 天前
0.32.02026/10/2612 天前

关于 @agentcomms/gmail 的常见问题

@agentcomms/gmail 是什么?

编码代理的Gmail:代理-gmail CLI,一个MCP服务器和一个库-搜索,读取,分析和起草跨越许多收件箱,通过批准发送门.

如何安装 @agentcomms/gmail?

在项目目录运行 npm install @agentcomms/gmail,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 agent-gmail,可以用 npx agent-gmail 直接运行。

@agentcomms/gmail 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@agentcomms/gmail 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@agentcomms/gmail 需要什么版本的 Node.js?

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

@agentcomms/gmail 可以商用吗?

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

@agentcomms/gmail 的下载量有多少?

根据 npm 官方下载统计,@agentcomms/gmail 在 2026/10/05 – 2026/11/03 这 30 天内被下载 5,264 次,日均约 175 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@agentcomms/gmail 还在维护吗?

最新版本 0.37.0 发布于 2026/10/29(9 天前);至今共发布 59 个版本,其中过去 12 个月发布了 59 个;首次发布于 2026/09/20。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。