d3k 是一个用于 Web 项目的本地运行时(local web runtime),面向开发、测试与浏览器问题复现场景。它的定位是“由 d3k 自己掌控运行时”,即开发服务器、路由、浏览器和证据采集都由 d3k 统一管理,而不是让用户或智能体另行启动。
用途
d3k 用于运行、开发和调试 Web 项目,以及复现浏览器端问题。它会在稳定的 Portless URL 后面启动开发服务器,并管理一个项目专用的 Chrome 浏览器配置(profile),把服务器日志、浏览器控制台输出、网络活动、交互记录和截图汇总到一条时间线上,便于定位问题。
主要能力
- 在 Portless 稳定 URL 后启动开发服务器,避免端口变化带来的地址漂移。
- 管理项目级稳定的 Chrome profile,保留登录状态、cookie 和本地存储。
- 统一记录服务器日志、浏览器控制台输出、网络活动、交互和截图,形成一条时间线。
- 提供状态查询、错误上下文、按类型查看日志等命令,作为采集证据的首选方式。
- 支持由智能体驱动它所监控的同一个浏览器进行交互测试。
使用方式
该工具以 skill 形式触发,触发后由使用方直接操作 d3k,而非仅向用户描述如何运行。典型流程如下:
- 在项目根目录检查 Portless 是否就绪:
d3k portless status --json。若返回setupRequired: true,执行d3k portless setup;在 macOS 上会弹出系统管理员授权对话框,需等待用户批准后重新检查。只有在canonical: true、serviceInstalled: true、setupRequired: false时才可启动 d3k。 - 检查项目运行时是否已存在:
d3k status --json。只有在返回running: true、ready: true、routing: "portless"、browserConnected: true且为无端口 https://...localhost 的 appUrl 时才复用。若活动会话显示routing: "direct",需停止该会话并在 Portless 就绪后重启,不要启动第二个开发服务器或浏览器。 - 若未安装,执行
bun install -g dev3000;仅在 Bun 不可用时使用npm install -g dev3000。 - 以保留的后台或可交还会话方式启动(默认非 TUI):
d3k -t,不要等待该长命令退出,保留进程/会话句柄以便后续监控或停止。若已知目标 URL,可传入:d3k -t --app-url "<url>"。让 d3k 自动检测包管理器、开发命令和端口,仅在检测错误或用户指定时添加--command、--script或--port。 - 轮询
d3k status --json直到就绪。
用户驱动的测试:确认状态中包含 app URL 且 browserConnected: true,告知用户受监控浏览器已就绪,保持 d3k 进程运行并等待用户复现。用户报告问题发生后,从 d3k errors --context 和 d3k logs -n 200 开始排查。用户测试期间不要用自动化替代有头浏览器。
智能体驱动的测试:驱动 d3k 正在监控的同一个浏览器,例如 d3k agent-browser snapshot -i、d3k agent-browser click @e2、d3k agent-browser fill @e3 "text",再执行 d3k errors --context。打开 URL 时可使用 --require-d3k-browser 防止静默创建另一个浏览器:d3k agent-browser --require-d3k-browser open "<url>"。每次复现或代码改动后,重放相关交互并重新检查 d3k errors --context。
证据命令优先使用:d3k status --json、d3k errors --context、d3k logs -n 200、d3k logs --type browser、d3k logs --type server。运行产物保存在 ~/.d3k/<project>/ 下,包括 session.json、日志、截图和 Chrome profile。
适用场景
适用于需要复现浏览器问题、在稳定地址下运行 Web 项目、记录端到端证据链,以及让智能体在受控浏览器中自主测试的场景。对涉及 Google OAuth、Supabase 认证等对登录状态敏感的流程,d3k 的项目级 profile 能保留登录态,避免因更换浏览器或 profile 触发安全校验。
限制与约束
- 默认必须使用 Canonical Portless HTTPS 路由;除非用户明确要求直连 localhost,否则不得添加
--no-portless或设置PORTLESS=0。 - 不要与 d3k 并行运行
npm run dev、bun run dev或其它开发服务器。 - 当
d3k status --json显示已有活动实例时,不要启动第二个 d3k。 - 编辑和重新测试期间保持 d3k 存活;除非用户明确要求,否则保留项目稳定的 Chrome profile。
- 认证敏感流程中,不得用原生 Chrome、Playwright、浏览器 MCP 会话、手动 CDP 附加或
agent-browser --profile替代,以免使用不同浏览器/profile。受控浏览器不可用时,应停止或中断 d3k 进程后干净重启。 --headless仅用于 CI 或明确要求时;--servers-only仅在有意不需要浏览器监控时使用。- 在 macOS 上执行 Portless setup 需要系统管理员授权;若授权被拒绝或不可用,需停止并说明阻塞原因。
关于收费、价格、平台支持范围等具体信息,所提供资料暂未提供。