一位开发者做了一件 Google 多年没做成的事:
用 Rust 写了个浏览器,启动几乎瞬间完成,内存占用只有 10 分之一,
还自动拦掉数千个追踪器。项目叫 Obscura,开源。
几个具体数据:
1. 内存占用约 30 MB
2. 页面加载约 85 ms
3. 拦截 3500 多个追踪域名
4. 会切换浏览器指纹,增加被识别难度
5. 兼容 Puppeteer、Playwright 和 MCP
6. 支持生成截图、PDF 和录屏
它还能作为独立二进制运行,直接接入 AI agent 去浏览网页、抓取信息。免费,Apache 2.0 协议。
显示更多
有位开发者用 Rust 从零构建了一款浏览器,专门给 AI Agent 执行任务用!
这个开源项目叫 Moli。
以前让 Claude Code、Codex 去操作网页,往往得把 Chrome 拉起来,占内存厉害,速度还拖沓。
Moli 的思路相当激进:既然网页不用给人看,那就索性不做渲染!
网页抓取、JavaScript 执行、自动化操作它都覆盖,Playwright、CDP、WebDriver 同样兼容。
项目测试中,Moli 的内存开销显著低于 Chrome,用于 AI 爬虫、Agent 自动化、批量网页处理格外合适。
以后为 AI 配备浏览器,未必再要死死绑在 Chrome 上。
GitHub:
显示更多
👋🏼 ADIÓS A GOOGLE CHROME.
Un desarrollador ha hecho lo que Google no ha conseguido en años.
Ha creado un navegador en Rust que arranca al instante, consume 10 veces menos RAM y bloquea miles de trackers automáticamente.
Se llama Obscura, está desarrollado en Rust y es open-source.
¿Lo mejor? 👇
→ Consume apenas 30 MB de RAM
→ Carga páginas en unos 85 ms
→ Bloquea más de 3.500 dominios de rastreo
→ Cambia su huella digital para dificultar la detección
→ Compatible con Puppeteer, Playwright y MCP
→ Genera capturas, PDFs y grabaciones de pantalla
Además, funciona como un binario independiente y permite conectar directamente tus agentes de IA para navegar y extraer información.
Es completamente gratuito, y tiene licencia Apache 2.0.
Repo en comentarios 👇
显示更多
杀穿反爬圈的 Rust 神器彻底封神了!
狂揽 3.2 万星的现象级开源项目 Obscura 迎来史诗级更新,终于把 Chromium 彻底踢出局了!
以前跑 Browser Agent 或海量爬虫,要么被 Chrome 几百兆的内存吃干抹净,要么被全网反爬盾拦截成筛子。
Obscura 走的是纯底层重构路线:直接甩掉整个 Chromium,用 Rust + 原生 V8 引擎手搓了一套轻量无头内核。
这次大版本更新的实测表现极其残暴:
· 彻底告别 Chromium 依赖:最新版原生渲染引擎正式落地!不再依赖任何外部 Chrome 环境,纯靠内置引擎搞定截图、Live 推流、导出 PDF 与 DOM 解析。
· 内存暴跌 85%:传统无头 Chrome 动不动吃 200MB+,Obscura 运行时内存压到了惊人的 30MB,体积仅 70MB,单台轻量 VPS 能轻轻松松并发开上百个实例!
· 毫秒级闪电启动:网页加载 85ms,启动时间从 Chrome 的 2 秒降到零感秒开,爬取与交互速度直接起飞。
· 工业级全套防风控:基于 BoringSSL 底层重编译,自动伪造 TLS/JA3 指纹与硬件特征,强制锁定 event.isTrusted=true,原生屏蔽 webdriver 并内置 3500+ 反爬探针黑名单,直接把主流盾打穿。
· 零成本无痛迁移:原生支持 CDP(Chrome DevTools 协议),你的 Playwright、Puppeteer 或 Coding Agent 工具链,改个端口直接无缝平替!
连 Cloudflare 官方做下一代无头浏览器引擎,第一个原型都是把 Obscura 移植到 Workers 上跑通的。
做自动化爬虫、AI 网页操作 Agent 和风控对抗的兄弟建议直接马住!
开源地址:
你平时跑浏览器自动化,被内存爆掉和反爬盾拦截折磨得最惨的是哪次?
#
Rust# #
开源# #
AI# #
爬虫# #
Playwright# #
开发#
显示更多
A motion designer posted a 1994-style cat RPG. Title screen, boss fight, dialogue boxes, health bars, level ups. Replies assumed a studio pipeline: After Effects, keyframes, a week of rendering, maybe a Remotion license. That was not the story. The whole sequence is HTML and CSS animation driven headlessly by Playwright, piped through ffmpeg into a final video file. No compositing software touches a frame. The toolchain is a Claude Code skill, a directory of instructions the model reads before it writes code. The gatekeeping was never the software. It was the years of knowing which easing curve belongs on a health bar depletion. That knowledge is now a text file. What used to be a $4-8k motion piece with an Adobe subscription and render hardware becomes an API bill, a free headless browser, and an ffmpeg binary that has been free since 2000. The line item does not shrink. It deletes. Polymarket traders give 88% odds that the next Claude Haiku (4.6+) model ships by October 31, 2026, pricing the cadence of the tool itself while the production barrier it used to protect is already being written around:
显示更多
你是一位像素动画师兼游戏手感(game feel)设计师,也会写芯片音乐。你用代码做出的东西,要像 16-bit 时代一流工作室手绘的角色动画,而不是缩小的矢量图。 以下是默认值,直接开工,不用问我: - 片名:《第 99 次施法》 - 画幅:1920×1080,60fps,时长正好 16 小节(140 BPM,约 27.43 秒),结尾无缝衔接开头 - 逻辑分辨率:192×108,整数 10 倍放大(竖屏版改为 108×192 → 1080×1920) - 声音:代码合成的芯片音乐和音效 一个老巫师在夜里的山崖上练一个总是失败的法术。三次尝试,一次比一次认真,最后一次成功点亮了山下整座沉睡的村庄。 140 BPM,一拍约 0.429 秒,一小节约 1.714 秒。 - 第 1–2 小节 待机:巫师轻晃,胡子摆动,星星闪烁。镜头极慢地推近。 - 第 3–5 小节 第一次:蓄力 → 宝石亮了一下 → "噗"地冒出一缕灰烟,帽子被吹歪。音乐停半拍,留出喜剧停顿。 - 第 6–8 小节 第二次:更用力 → 飞弹射出 → 在空中掉头飞回来 → 打掉自己的帽子。停 1 拍,巫师眨两次眼。 - 第 9–10 小节 准备第三次:捡起帽子戴正,深呼吸(身体 1 像素起伏两次),音乐收得只剩三角波低音。 - 第 11–13 小节 第三次:长蓄力,火花螺旋聚拢,越转越快;第 13 小节最后一拍前全场静音 0.3 秒。 - 第 14 小节正拍 施法:hit-stop 冻结 5 帧,全屏白闪 1 帧,飞弹划过夜空落向山下。 - 第 15–16 小节 村庄的窗户从近到远依次亮起(错相,每扇窗间隔 2–4 帧),音乐全奏。巫师满意地捋胡子,帽子又滑下来挡住眼睛,然后回到待机姿势。 - 循环:render(16 小节的时长) 与 render(0) 逐像素一致,成片只包含 [0, 总时长) 内的帧。 像素纪律 - 所有内容画在 192×108 的离屏画布上,再按整数倍放大;imageSmoothingEnabled = false,CSS image-rendering: pixelated。 - 所有坐标对齐整数格。禁止亚像素、抗锯齿、shadowBlur、线性渐变;需要过渡时用 4×4 Bayer 抖动。 - 固定调色板不超过 24 色,先输出色板:夜空深蓝紫 4 阶、长袍暖色 4 阶、肤色 3 阶、魔法色 3–4 个,石头和村庄若干。画面上每个像素都必须来自色板。 - 角色约 22×30 个逻辑像素,用选择性描边(sel-out,受光一侧的描边用较浅的颜色)。光照靠切换色板色阶表现,不叠半透明。
动作语言
姿势参数化(法杖角度、手臂高度、头部倾斜、长袍摆动、胡子摆动),但姿势按 12fps"一拍二"的节奏量化更新;火花、飞弹、烟这些特效每一帧都动。
每个动作都走完:预备 → 动作 → 冲击 → 余震 → 回稳。法杖快速挥动时插 1–2 帧拖影帧(smear frame),不用运动模糊。
冲击感:命中瞬间 hit-stop 冻结 3–5 帧;屏幕按整数像素震动,幅度 3 → 2 → 1 → 0 衰减;宝石白闪 1 帧。
挤压拉伸控制在 1–2 像素以内:在像素动画里,1 像素已经是很大的变化。
错相:身体先动,胡子和帽尖晚 2–3 帧跟上,长袍下摆再晚 2 帧。
喜剧靠停顿:失败后的静止和眨眼要给够时间,不要用特效把停顿填满。
场景与光
三层视差:星空(几乎不动)、远山、近处的石崖和巫师。镜头漂移时各层速度不同,位移都取整。
宝石是动态光源:蓄力时,巫师面向宝石的一侧加 1 像素轮廓光,越亮色阶越高。成功那一刻,整个画面的色板短暂整体提亮一阶,再回落。
村庄平时是暗色剪影;窗户亮起时用 2 阶暖黄,每扇窗下方的地面亮起 1 像素反光。
禁止
角色以外的大字、UI、边框、logo;铺满屏幕的粒子爆炸;任何先画高清再降采样的"伪像素"。
- 只用四个通道,模仿 8-bit 主机:方波 1 弹旋律;方波 2 弹和声或琶音(占空比在 12.5%、25%、50% 之间切换);三角波弹低音;噪声通道打鼓。方波用带限合成(PolyBLEP 或加法合成),避免刺耳的混叠。 - 音效用同一套芯片音色:蓄力是上升琶音;失败的"噗"是向下扫频的噪声;飞弹掉头是一声变调的"啵咿";命中是噪声爆破加低音下潜;窗户亮起是一串高音"叮",每扇窗一声,音高沿五声音阶上行。 - 喜剧停顿时,音乐真的停下来;hit-stop 的 5 帧里,只留一条拉长的噪声尾巴。 - BPM 已知,节拍网格直接用公式算。所有关键动作落在拍上,预备动作可以提前 2–3 帧。 确定性渲染(违反任何一条都算失败) - 页面暴露 window.render(t),t 单位为秒,画面只由 t 计算。不用 requestAnimationFrame、setTimeout、 transition/animation 驱动画面。 - 随机数一律用带固定种子的 PRNG(如 mulberry32);帧与帧之间不保存状态。 - 粒子(火花、烟、飞弹拖尾)用种子预先生成每个粒子的出生时间、初速度和寿命,位置由 t 解析计算后取整。 - 角色和场景全部程序化生成,不用任何图片;渲染时不联网。
拍摄与编码
Playwright 无头 Chromium,viewport 1920×1080,deviceScaleFactor=1。
逐帧调用 render(t) → 截图 → 通过管道直接喂给 ffmpeg,不在磁盘上堆几千张 PNG。
视频 H.264、-pix_fmt yuv420p、-crf 17、-preset slow、-movflags +faststart;音频 AAC 48kHz 192k,响度归一到 -14 LUFS,真峰值 ≤ -1 dBTP。
- 像素网格检查:随机抽 10 帧,先最近邻缩小 10 倍再放大 10 倍,必须与原帧逐像素相同(证明没有亚像素和抗锯齿)。 - 色板检查:随机抽 10 帧统计用到的颜色,必须全部属于色板。 - 循环检查:render(总时长) 与 render(0) 逐像素一致;音频首尾做 10ms 交叉淡化,循环播放时不爆音。 - 抽帧拼图:每 0.5 秒一张。按这几项各打 1–10 分:剪影可读性、喜剧节奏(停顿够不够)、打击感、动作完整度(有没有直接滑过去的动作)、声画同步、像素纯度。把最严重的 3 个问题修掉再重渲,直到每项 ≥ 8。 自主模式,中途不要停下来问我。先输出色板图和 3 张关键帧(待机、第二次失败、成功那一刻)自己检查,再做整片。 交付:out/wizard.mp4、out/contact_sheet.png、色板图,以及一段 5 行以内的创作决策说明。
显示更多
可以关注一下最近出的一个 测试框架 e2e
你没看错,名字就是叫 e2e (这名字真的不是碰瓷吗?),很火,而且它最有趣的是创新是:测试用例里面是自然语言驱动 + 传统断言混写
自然语言就是表示它是面向LLM 的测试框架 Agent 步骤可缓存回放 被后续断言验证过的 agent.act 会记下操作 下次直接重放 不再调模型
还有就是 Web 和移动同一套 API Web 引擎走 Playwright,移动引擎通过 agent-device 驱动 iOS 模拟器和 Android 模拟器 还可以托管别的模拟器
大家可以看一下测试用例,很有趣 agent.act('upgrade the workspace to the Pro plan') 这个就是自然语言的方式,第一次会让 agent 自己去探索去缓存,假如有变化再次更新。
显示更多
2、Patchright Enhanced
基于 Playwright 监听网站请求,即使没有 API,也能通过脚本提取数据。
Pi 的作者 Mario Zechner 早期是死硬派的「No MCP」代表:核心只留 4 个工具,公开把 MCP 当反面教材。
结果在逼近 1.0 的 0.99 大版本里,Pi 突然把 MCP 设为了内置功能。
这看起来像妥协,但翻完源码就会发现:Pi 根本不是向 MCP 低头,而是用一层 Codemode 把 MCP 彻底降维驯服了。
传统 MCP 为什么是灾难?直给两组数字:
1. Token 炸弹:挂个 Playwright 吃 13.7k token,Chrome DevTools 吃 18k token。还没开始聊,3 万 token 先没了,首字延迟崩盘,工具疯狂选错。
2. 调度极慢:查 50 个 Issue,传统 ReAct 循环要跑 50 轮完整大模型往返,几十万字节原始 JSON 垃圾全挤进上下文。把大模型当单步 CPU 用,又贵又脆。
Pi 0.99 给出的解法非常干脆:代码即编排(Code-as-Orchestration)。
- Schema 零注入:MCP 工具默认 exposure 全是 codemode,工具定义根本不给大模型看,Prompt 仅留一行摘要,按需用 BM25 在沙箱里搜。几万 token 预载成本瞬间归零。
- 调度权收回代码:大模型不再发单步指令,而是直接写一段 JS 脚本,扔进 QuickJS 沙箱跑。循环、并发(Promise.all)、异常处理毫秒级完成。
1MB 的原始数据在沙箱内存里直接 filter/map,最终只有清洗后的 3 行有效结果才会回到大模型上下文。
MCP 只适合做能力的标准化暴露,从来不该直接当交互界面。
未来的 Agent 架构很明确了:大模型当编译器(自然语言编译成脚本),轻量沙箱当 CPU(跑并发与清洗),MCP 退回底层当系统函数库。
显示更多
TU AGENTE DE IA YA PUEDE EXTRAER DATOS DE CASI CUALQUIER WEB
X, YouTube, Reddit, foros random, webs sin API… básicamente lo que necesites para research, análisis o monitoring.
acaban de subir a GitHub 3 herramientas open source que le dan a tu agente ese superpoder.
1. Agent-Reach
junta X, YouTube, Reddit, GitHub y más en un solo sitio.
2. Patchright Enhanced
usa Playwright para escuchar peticiones de webs sin API y sacar los datos con un script.
3. Scrapling
scraper de propósito general para cualquier página web.
le dices qué datos necesitas → escribe el código → los recolecta → te da el resultado.
ejemplos reales:
"recoge los posts de 100 cuentas de X del último mes y dime qué temas están funcionando"
"saca reviews de este producto en Reddit y YouTube y resúmeme las quejas principales"
básicamente le das a tu agente la capacidad de sacar datos de casi cualquier lugar de internet.
eso abre un nivel de automatización que hasta hace nada era impensable.
显示更多