helldots

中文文档
0.13.0发布于 2026/11/04MITTypeScriptES Module零依赖构建来源已验证

插入式评论覆盖网络应用程序-点击任何地方留下评论锚定的元素,与自动截图和环境捕获

中文使用文档
文档目录11 节
  1. 特性
  2. 安装
  3. 快速启动
  4. 将其连接到您自己的后端
  5. 框架
  6. 将注释传递给编码代理
  7. 常见的选项
  8. 指南
  9. 浏览器支持
  10. ESM只
  11. 许可证

HellDots

插入式评论覆盖的web应用程序。你的团队在页面上任意点击, 在此元素上留下注释,而《HellDots》便能够抓住上下文 需要对它采取行动——屏幕截图,浏览器,视口,DOM路径。

npm bundle size license

文档 · 操场上 · npm

Leaving a comment on a button, classifying it as a high-priority bug, opening its captured context, then the inbox and the metrics dashboard

特性

  • 固定的评论 存活下来的,在页面加载后重新锚定 变化——或被标记为孤儿,从未无声地落下
  • 自动背景:截图,区域裁剪,URL,视窗,浏览器, 操作系统和元素的DOM路径
  • 分类:状态、类型、优先级、标签、反应和审计跟踪
  • 指标指示板 与CSV和PDF导出
  • 代理人副本:为AI编码助手构建的纯文本上下文块
  • 你拥有数据:没有任何东西被发送到任何地方-将回调连接到您的 后端,或者让小部件持久化到 localStorage
  • 孤立的:在Shadow DOM内渲染,框架无关,类型
  • 英语和西班牙语 建在

安装

npm install helldots

modern-screenshot (屏幕截图渲染器)是一个对等依赖。npm 7 +, PNPM 8+和bun自动安装;在Yarn上,显式地添加 yarn add modern-screenshot。

快速启动

import { createCommentOverlay } from "helldots";

createCommentOverlay({
  user: { name: "Ana" },
  persistence: "localStorage",
});

就是这样。工具栏出现在页面底部。 Alt+C (或 Option+C 在macOS上)切换评论模式;单击任何地方留下一个 注释,或拖动以选择一个区域并附加该区域的屏幕截图。

将其连接到您自己的后端

跳过 persistence 用回调来代替。 onChange 有每 突变是一条溪流; onReady 是安全的地方恢复:

import { createCommentOverlay } from "helldots";

createCommentOverlay({
  user: { name: currentUser.name, id: currentUser.id },
  onChange: (event) => api.post("/helldots-events", event),
  onReady: async (overlay) => {
    overlay.loadComments(await api.get("/comments"));
  },
});

每个注释都是纯JSON: pass serializeComments() 直接输出到 你的API并把它交还给 loadComments() 以后。希望每次回调一次 事件(onCommentCreated, onReplyAdded,……)?他们在同一时刻开火 看到 事件。

localStorage 拥有大约一百条评论和截图和假设 每个页面一个活动标签;在此之后,坚持回调。保持 Base64图像从您的数据库,上传他们与 transformScreenshot。 → 持久性指南

框架

Server-rendered应用 (Next.js, Remix, Astro…):导入是安全的-什么都没有 在导入时触及DOM。只在客户端上创建覆盖层:

useEffect(() => {
  const overlay = createCommentOverlay({ user, persistence: "localStorage" });
  return () => overlay.cleanup();
}, [user]);

单页面应用程序:当导航发生时,告诉小部件,并让它运行 自己的跨页跳转使用你的路由器:

const overlay = createCommentOverlay({
  user,
  navigate: (page) => router.push(page),
});

router.afterEach(() => overlay.notifyNavigation());

→ 框架指南

将注释传递给编码代理

每个评论都有一个 复制 控件上的纯文本上下文块 剪贴板,用于粘贴到AI编码助手中;

Page: /pricing
Viewport: 1440x900
Anchor state: anchored
Status: open
Selector: #plans > div.card:nth-child(2) > button
Element: <button class="cta" data-plan="pro">
DOM path: body > main.layout > section#plans > div.card > button.cta
Nearby text: "Upgrade to Pro"
Comment by Ana (2026-07-29T10:14:00.000Z):
"This button does nothing on mobile"
Type: bug
Priority: high
Tags: checkout, ios
URL: https://example.com/pricing
Screen: 390x844
Browser: Safari 17.2
OS: iOS 17.2

常见的选项

选项默认的
user"Anonymous"{ name, id? } ——通过 id 只要两个人有相同的名字
persistence"none""localStorage",或者通过回调自己处理它
onChange- - - - - -每个突变都有一个流
onReady- - - - - -部件安装;安全的地方 loadComments()
autoScreenshottrue捕获每个评论的屏幕截图和环境快照
transformScreenshot- - - - - -上传每个图像并存储您的URL,而不是base64数据URL
can只做自己的记录谁可以编辑和删除——一个UI守卫,而不是授权
navigate全页面加载用于小部件跨页面跳转的SPA路由器钩子
locale浏览器语言"en" 和 "es" 船

→ 所有的选项 · 事件 · 方法 · 类型

指南

  • 捕捉 -什么是 记录,网页字体,缓慢或非常长的页面,iframe,超时
  • 身份 - - - - - - user.id, 谁可以编辑和删除,以及什么 can 不安全
  • 分类 -状态、类型、 优先级、标签、反应和审计跟踪
  • 指标 - - - 指示板, getMetrics(), CSV和PDF导出
  • 持久性 - - - - - - localStorage 限制,你自己的后端,截图上传
  • 深度链接 - - - - - - 可共享的评论url,并且只加载链接的评论
  • 实时 ——同步 通过套接字而不回显您自己的写入
  • 框架 - - - - - - 服务器渲染,SPA路由器,热键,无绑定器设置,延迟挂载

浏览器支持

现代常绿浏览器。该小部件在Shadow DOM中呈现,因此 页面的CSS不能泄漏,它的样式也不能泄漏。

ESM只

这个包只提供ES模块。 import 无处不在——捆绑商,Vite, Next.js,节点≥18,本机 <script type="module">. 没有CommonJS 构建,所以 require("helldots") 不会起作用。TypeScript定义船 和包裹一起。

为了一个普通的 <script> 标记,则启动了一个独立的UMD构建 CDN:

<script src="https://unpkg.com/helldots"></script>
<script>
  HellDots.createCommentOverlay({ user: { name: "Ana" } });
</script>

许可证

麻省理工学院

版本与发布记录

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

版本发布日期距今
0.13.0latest2026/11/04今天
0.12.12026/09/091 个月前
0.12.02026/09/041 个月前
0.11.02026/09/042 个月前
0.10.02026/08/272 个月前
0.9.12026/08/262 个月前

关于 helldots 的常见问题

helldots 是什么?

插入式评论覆盖网络应用程序-点击任何地方留下评论锚定的元素,与自动截图和环境捕获

如何安装 helldots?

在项目目录运行 npm install helldots,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:modern-screenshot(^4.7.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

helldots 支持 TypeScript 吗?

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

helldots 支持 ESM 还是 CommonJS?

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

helldots 需要什么版本的 Node.js?

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

helldots 可以商用吗?

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

helldots 还在维护吗?

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