灯笼
把光带到你的经纪人所做的改变.
屏幕截图和演示视频 用于拉动 请求您的代理打开, 制作的同时它的工作.
由AI作词. 灯笼全部由克洛德所写,带有人行方向,仍需要检查. 它有一个端到端的测试套件,并且每天使用,但是它很年轻:只在自己的应用程序和您控制的站点使用.
为什么
当代理员写出代码并打开拉取请求时,没有人看到更改运行. 评论员从制作它的东西那里得到"diff"和"摘要",必须拉出分行来找出到底发生了什么.
灯笼让经纪人展示出自己的作品. 这有三件事, 顺序他们倾向于重要:
- 证相. 以一幅相片进行的审查比一段更快:一幅相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相框相 特工在工作时在背景中制作,他们准备投放到拉力请求中.
- 信心无碍. 要拍照,经纪人必须打开页面. 所以它点击事物,读取发生的事情,并在它说完成之前检查控制台,而不是从代码中猜测.
- 给你的一扇窗户.
lantern watch显示代理的活页,所以你可以看到它在做什么,而不停止告诉你.
这是一个命令行,因为那是你能够交给一个代理人的最好的事情:没有安装到编辑器中,没有扩展,没有窗口保持开放,只是命令它已经知道如何运行. 这也表示它在根本没有窗口的地方起作用:一个CI任务,一个云会话,一个服务器上的机器人.
安装
需要节点22.18+和一个克罗梅(Google Chrome,克罗米,Edge或Brave). ffmpeg是可选的:视频与它一起组装速度快而更小.
npm install -g @benwallacestock/lantern
安装CLI 并将其技能连接到 ~/.claude/skills (并进) ~/.codex/skills 当 Codex 设置时). 打开一个新的 Claude 代码或 Codex 会话,请它查看,检查,演示或截取您的应用程序中的东西. 从那时起,灯笼自我更新,技能包括:它每天检查npm一次,并在背景中安装更新的版本.
lantern skills显示链接点;lantern skills install再来一次;LANTERN_SKILLS=off安装时跳过它们.lantern update现时更新;LANTERN_UPDATE=off(或update: false在设置文件中)关闭日常检查;lantern version说当一个新出来的.LANTERN_CHROME=/path/to/chrome选择浏览器。 不安装 :npx -y @benwallacestock/lantern <command>,慢点开始.
克劳德代码插件代替. 同样的技能通过 /plugin对于一个以这种方式管理技能的团队来说(选择一条道路,而不是两条道路):
/plugin marketplace add benwallacestock/lantern
/plugin install lantern@lantern
插件只带来技能;克洛德第一次需要CLI,技能就让它运行上面的安装. 市场更新的插件/plugin marketplace update lantern)或当市场在 /plugin。 。 。 .
任何其他探员. 将文字放在 skills/lantern/SKILL.md 在那里,代理人阅读它的指示.
这是什么
灯笼为CLI. Claude Code, Codex 和其他任何可以运行 shell 命令的东西,都用它来为拉出请求提供证据: 截图准备放入,对接前后被设定,并演示带字幕和可见指针的视频. 为了获得它们,它会驱动一个真实的Chrome页面(打开,点击,填充,读取其内容),这也让代理机检查自己的作品,你可以从自己的浏览器观看该页面直播. 它的船有技能 教这些特工何时如何使用.
灯笼长出 森林,斯普鲁斯每个分支运行一棵树的工具,其代理浏览器所在. 这是浏览器自己,任何项目.
lantern open http://localhost:3000
lantern snapshot # what's on the page, each control with a ref
lantern fill e7 "Large box"
lantern click "text=Get a quote"
lantern screenshot "text=£1.80" # the page with that element glowing → tmp/lantern/shot-….png
lantern frame before.png after.png --title "The quote after sizing" # one PNG for the PR
lantern record start
lantern record caption "Ask for a quote"
lantern click "text=Get a quote"
lantern record stop # → tmp/lantern/demo-….mp4
lantern watch # a URL for a live view of the page in your own browser (--open opens it)
每个命令都是短暂的过程. 第一个开始为拥有Chrome和页面的项目启动守护进程,所以该页面在命令之间生存,无论代理商在命令之间想的时间有多长. 它在最后一个命令半小时后关闭(在标签中打开的活视图无法保持),或者打开 lantern close。没有窗口,没有应用程序,没有调试端口:Chrome被驱动过它的管.
它会做什么
-
2x的截图,像Retina屏幕:整个取景口,一个元素发光的页面,一个元素的收成,或者整个页面无论多长.
size选取电话,平板电脑,笔记本电脑,桌面或宽等. -
说明 在截图和录音中遵循它们的元素:呼号(旁边的词,加上一行,元素点出,如果您喜欢的话),亮点,图片步骤的编号徽章,小东西周围的环,箭头,以及不可显示的事物的模糊.
-
牵引请求的框架:一相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相相 每段录像都在同一条旗子上 开始录制
--title还有标题栏. -
演示视频: 帧只在命令运行时保存,然后用于节拍,所以代理在命令之间的思维被剪接; 标题保存至少2.5秒; 指向每个目标; 指环和小鼠标显示每次点击; 键头条显示打字; 丸显示滚动. ffmpeg在安装时会组装一款MP4;否则Chrome会将视频本身编码(MP4在它可以的地方,WebM;GitHub播放两种内线).
-
打开页面 作为一个人会:真正的鼠标和关键事件通过DevTools协议,所以页面可以看到鼠标下,按键下和输入,而不是合成点击.
snapshot列出可以采取的行动,并附上参考文件;click, (中文(简体) ),fill, (中文(简体) ),press, (中文(简体) ),drag, (中文(简体) ),scroll, (中文(简体) ),select, (中文(简体) ),check, (中文(简体) ),upload, (中文(简体) ),hover· ;text, (中文(简体) ),get, (中文(简体) ),is, (中文(简体) ),wait, (中文(简体) ),console, (中文(简体) ),eval。 。 。 . -
一次几个数字 :
LANTERN_NAME=review-2 lantern …(或lantern --name review-2 …)是同一个项目上自己的灯笼——自己的浏览器,登录和tmp/lantern/review-2/因此,平行的特工从不争夺一页;lantern status列出他们和lantern watch --all并肩显示. -
现场直播 对于一个人:
lantern watch打印页面的 URL(--open),显示代理的页面所画的,并用一行来表示它刚刚所做的. 嵌入灯笼(编辑器或app中的面板)的工具在守护进程插座上获得与JSON行相同的帧.
图片和视频进入 <project>/tmp/lantern/灯笼会增加 .git/info/exclude 因此,没有降落在git.
设置
大多数项目不需要任何项目。 从工程到根的任何文件夹都可以持有 .lantern/settings.json;文件越接近,越强,按键合并,克劳德代码读取它的方式 .claude 文件夹。 属于你的 ~/.lantern/settings.json 是散步的顶部。 启动守护进程的命令的环境( E)LANTERN_URL, (中文(简体) ), LANTERN_ON_LOAD,.)胜过每个文件. 所以说:
- 一队人
.lantern/settings.json在应用程序的 URL 和主机的 Repo 中. - 一个将很多检查结果保存在一个文件夹下的工具 将它们分享的东西,一个 dev 登录词,放在文件夹的
.lantern/settings.json,并且从不写入离职单;在环境中,每次离职单有什么不同. - 一个人保持默认在
~/.lantern/settings.json并自定义运行LANTERN_*。 。 。 .
lantern settings 打印当前生效的内容、每个值的出处以及它找到的文件。 守护进程启动时读取设置( D)lantern close ))),在变更后. 键 :
{
"url": "http://localhost:3000",
"hosts": ["localhost"],
"out": "tmp/lantern",
"note": "SPR-123",
"footer": "Acme · internal",
"accent": "#4cc3ff",
"watermark": false,
"onLoad": "/* JavaScript run in the page after every load — a dev login, say */"
}
url 是任何页面打开前的相对路径. hosts 将页面保存在您的应用程序上: 导航在其它任何失败的地方, 并在 lantern console。 。 。 . out 移动图片. note 在框脚和 footer 替换它. accent 重唱灯笼所画的一切. watermark: false 将横幅从录像上留下,"用灯笼"从相框的脚下取出. onLoad 在每个负载后运行, 例如 dev 登录 . LANTERN_CHROME 财务报告和审定财务报表 LANTERN_FFMPEG 指向这些二进制; LANTERN_HOME 移动灯笼的状态( 默认) ~/.lantern) (中文(简体) ).
如何组合起来
bin/lantern.ts——CLI:找到项目根,在unix socket上与守护进程交谈,如果它不升起就启动. 从一次检出中它作为TypeScript(节点将类型条列)运行,它也是守护进程条目(lantern __daemon <root>),所以esbuild将整个程序捆绑成一个文件供npm使用.src/daemon.ts——每个项目一个:拥有克罗梅,页,并排出一个队列,因此命令永远不能互出.src/cdp.ts——德弗图尔斯协议在克罗姆的管上. 无相依相.src/page.ts——每个命令,以及记录者.src/pageScripts.ts——在页面中运行读取的内容:快照,定位目标,焦点元素.src/overlay.ts——"灯笼"在页面中画出的东西,一次跑:标题,指针,点击环,键泡,以及跟随其元素的注释(高亮,呼号,徽章,指环,箭头,模糊).src/frameHtml.ts——外观静和视频分享:相框,标题,有标记的脚印.src/frame.ts——由克罗梅自己制造的PR框架.src/encode.ts——视频,在没有ffmpeg时由Chrome编码.src/videoFrame.ts——一盘视频周围的横幅和标题.src/config.ts- 设置:.lantern/settings.json在文件夹树上, 用户自己的,环境.src/update.ts——每日检查一盏更新鲜的灯笼,自我更新,以及技能链接.scripts/release.ts财务报告和审定财务报表scripts/postinstall.mjs——承诺消息的发布,以及安装上的技巧链接.skills/Claude Code和Codex的技能:lantern, (中文(简体) ),lantern-demo-video,以及lantern-verify(如何检查更改工作并匹配其设计).
国家生活 ~/.lantern (单位:千美元)LANTERN_HOME 用于移动它:每个工程的配置文件(如此持续登录)、套接字、日志.
释放
每向主所推为放出. 提交信件为 常规武器委员会数字 : feat: 是一个小的碰撞, fix: 和对程序的任何其他更改 一个补丁, feat!: (某事人们依赖改变) 一个主要的,和 docs:, (中文(简体) ), chore:, (中文(简体) ), ci:, (中文(简体) ), test: 不得释放。 发布工作流程运行测试,决定自上个标签以来的承诺的版本,将其主体写入 变动情况 作为注释(与 - 线条从承诺体起,作为分点),起伏 package.json 和插件的版本, 承诺, 标记, 通过信任的出版将 GitHub 发布和软件包发布到 npm, 并带有出处 。 没有人会手碰一个版本或编辑更改日志; node scripts/release.ts auto --dry 显示接下来的推力会释放什么. 一般事务人员(其他职等) 对这里的特工也这么说 软件包是一个捆绑的文件,由 esbuilt 在发布时构建; 从一次检查中 TypeScript 直接运行.