[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-VibiumDev--vibium":3,"tool-VibiumDev--vibium":64},[4,17,27,35,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",138956,2,"2026-04-05T11:33:21",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,43,44,45,15,46,26,13,47],"数据工具","视频","插件","其他","音频",{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":10,"last_commit_at":54,"category_tags":55,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,46],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},2181,"OpenHands","OpenHands\u002FOpenHands","OpenHands 是一个专注于 AI 驱动开发的开源平台，旨在让智能体（Agent）像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点，通过自动化流程显著提升开发速度。\n\n无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员，还是需要快速原型验证的技术团队，都能从中受益。OpenHands 提供了灵活多样的使用方式：既可以通过命令行（CLI）或本地图形界面在个人电脑上轻松上手，体验类似 Devin 的流畅交互；也能利用其强大的 Python SDK 自定义智能体逻辑，甚至在云端大规模部署上千个智能体并行工作。\n\n其核心技术亮点在于模块化的软件智能体 SDK，这不仅构成了平台的引擎，还支持高度可组合的开发模式。此外，OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩，证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能，支持与 Slack、Jira 等工具集成，并提供细粒度的权限管理，适合从个人开发者到大型企业的各类用户场景。",70612,"2026-04-05T11:12:22",[26,15,13,45],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":80,"owner_twitter":76,"owner_website":81,"owner_url":82,"languages":83,"stars":112,"forks":113,"last_commit_at":114,"license":115,"difficulty_score":23,"env_os":116,"env_gpu":117,"env_ram":117,"env_deps":118,"category_tags":123,"github_topics":80,"view_count":23,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":124,"updated_at":125,"faqs":126,"releases":155},3987,"VibiumDev\u002Fvibium","vibium","Browser automation for AI agents and humans","Vibium 是一款专为 AI 智能体（AI Agents）和人类开发者设计的浏览器自动化工具。它让 AI 能够像人一样操作浏览器，轻松完成页面导航、表单填写、按钮点击及截图等任务，只需通过简单的命令行指令即可实现。\n\n过去，让 AI 控制浏览器往往需要复杂的配置或依赖专有协议，而 Vibium 解决了这一痛点。它无需繁琐设置，安装后自动下载浏览器并默认可视化运行。其核心亮点在于基于开放的 WebDriver BiDi 标准，而非被大厂垄断的私有协议，确保了技术的开放性与兼容性。此外，Vibium 极其轻量，单个二进制文件仅约 10MB 且无运行时依赖，同时支持语义化元素查找（如通过文本或标签定位），无需编写复杂的 CSS 选择器。\n\n这款工具非常适合开发者、AI 研究人员以及希望为智能体赋予网页操作能力的技术团队使用。无论是构建自动化测试流程、训练能上网的 AI 助手，还是进行快速的数据采集，Vibium 都提供了灵活的支持。它不仅可作为 CLI 技能直接集成，还兼容 MCP 服务器模式，并提供 JavaScript、Python 和 Java 等多种语言的客户端库，帮助用户在几分钟","Vibium 是一款专为 AI 智能体（AI Agents）和人类开发者设计的浏览器自动化工具。它让 AI 能够像人一样操作浏览器，轻松完成页面导航、表单填写、按钮点击及截图等任务，只需通过简单的命令行指令即可实现。\n\n过去，让 AI 控制浏览器往往需要复杂的配置或依赖专有协议，而 Vibium 解决了这一痛点。它无需繁琐设置，安装后自动下载浏览器并默认可视化运行。其核心亮点在于基于开放的 WebDriver BiDi 标准，而非被大厂垄断的私有协议，确保了技术的开放性与兼容性。此外，Vibium 极其轻量，单个二进制文件仅约 10MB 且无运行时依赖，同时支持语义化元素查找（如通过文本或标签定位），无需编写复杂的 CSS 选择器。\n\n这款工具非常适合开发者、AI 研究人员以及希望为智能体赋予网页操作能力的技术团队使用。无论是构建自动化测试流程、训练能上网的 AI 助手，还是进行快速的数据采集，Vibium 都提供了灵活的支持。它不仅可作为 CLI 技能直接集成，还兼容 MCP 服务器模式，并提供 JavaScript、Python 和 Java 等多种语言的客户端库，帮助用户在几分钟内从零开始实现浏览器自动化。","# Vibium\n\n[![npm](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fvibium)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fvibium) [![PyPI](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fvibium)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fvibium\u002F) [![Maven Central](https:\u002F\u002Fimg.shields.io\u002Fmaven-central\u002Fv\u002Fcom.vibium\u002Fvibium)](https:\u002F\u002Fcentral.sonatype.com\u002Fartifact\u002Fcom.vibium\u002Fvibium) [![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-blue)](LICENSE)\n\n**Browser automation for AI agents and humans.**\n\nVibium gives AI agents a browser. Install the `vibium` skill and your agent can navigate pages, fill forms, click buttons, and take screenshots — all through simple CLI commands. Also available as an MCP server and as JS\u002FTS, Python, and Java client libraries.\n\n**New here?** Get started in [JavaScript](docs\u002Ftutorials\u002Fgetting-started-js.md), [Python](docs\u002Ftutorials\u002Fgetting-started-python.md), or [Java](docs\u002Ftutorials\u002Fgetting-started-java.md) — zero to hello world in 5 minutes.\n\n## Why Vibium?\n\n- **AI-native.** Install as a skill — your agent learns the full browser automation toolkit instantly.\n- **Zero config.** One install, browser downloads automatically, visible by default.\n- **Standards-based.** Built on [WebDriver BiDi](docs\u002Fexplanation\u002Fwebdriver-bidi.md), not proprietary protocols controlled by large corporations.\n- **Lightweight.** Single ~10MB binary. No runtime dependencies.\n- **Flexible.** Use as a CLI skill, MCP server, or JS\u002FPython\u002FJava library.\n\n---\n\n## Agent Setup\n\n```bash\nnpm install -g vibium\nnpx skills add https:\u002F\u002Fgithub.com\u002FVibiumDev\u002Fvibium --skill vibe-check\n```\n\nThe first command installs Vibium and the `vibium` binary, and downloads Chrome. The second installs the skill to `{project}\u002F.agents\u002Fskills\u002Fvibium`.\n\n> `skills` is the [open agent skills CLI](https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fskills) — a package manager for AI agent skills. No global install needed; `npx` runs it directly.\n\n### CLI Quick Reference\n\n```bash\n# Map & interact (the core workflow)\nvibium go https:\u002F\u002Fvar.parts           # navigate to URL\nvibium map                            # map interactive elements → @e1, @e2, ...\nvibium click @e1                      # click using ref\nvibium diff map                       # see what changed\n\n# Find elements (semantic — no CSS needed)\nvibium find text \"Sign In\"            # find by visible text\nvibium find label \"Email\"             # find by form label\nvibium find placeholder \"Search\"      # find by placeholder\nvibium find role button               # find by ARIA role\n\n# Read & capture\nvibium text                           # get all page text\nvibium screenshot -o page.png         # capture screenshot\nvibium screenshot --annotate -o a.png # annotated with element labels\nvibium pdf -o page.pdf                # save page as PDF\nvibium eval \"document.title\"          # run JavaScript\n\n# Wait for things\nvibium wait \".modal\"                  # wait for element to appear\nvibium wait url \"\u002Fdashboard\"          # wait for URL change\nvibium wait text \"Success\"            # wait for text on page\n\n# Record sessions\nvibium record start                   # record with screenshots\nvibium record stop                    # stop and save to record.zip\n\n# Forms & input\nvibium fill @e2 \"hello@example.com\"   # fill input using ref\nvibium select @e3 \"US\"               # pick dropdown option\nvibium check @e4                      # check a checkbox\nvibium press Enter                    # press a key\n```\n\nFull command list: [SKILL.md](skills\u002Fvibe-check\u002FSKILL.md)\n\n**Alternative: MCP server** (for structured tool use instead of CLI):\n\n```bash\nclaude mcp add vibium -- npx -y vibium mcp    # Claude Code\ngemini mcp add vibium npx -y vibium mcp       # Gemini CLI\n```\n\nSee [MCP setup guide](docs\u002Ftutorials\u002Fgetting-started-mcp.md) for options and troubleshooting.\n\n---\n\n## Language APIs\n\n```bash\nnpm install vibium   # JavaScript\u002FTypeScript\npip install vibium   # Python\n```\n\n**Java** (Gradle):\n```groovy\nimplementation 'com.vibium:vibium:26.3.18'\n```\n\n**Java** (Maven):\n```xml\n\u003Cdependency>\n    \u003CgroupId>com.vibium\u003C\u002FgroupId>\n    \u003CartifactId>vibium\u003C\u002FartifactId>\n    \u003Cversion>26.3.18\u003C\u002Fversion>\n\u003C\u002Fdependency>\n```\n\nThis installs the Vibium binary and downloads Chrome automatically. No manual browser setup required.\n\n### JS\u002FTS Client\n\n**Async API:**\n```javascript\nimport { browser } from 'vibium'\n\nconst bro = await browser.start()\nconst vibe = await bro.page()\nawait vibe.go('https:\u002F\u002Fexample.com')\n\nconst png = await vibe.screenshot()\nawait fs.writeFile('screenshot.png', png)\n\nconst link = await vibe.find('a')\nawait link.click()\nawait bro.stop()\n```\n\n**Sync API:**\n```javascript\nconst { browser } = require('vibium\u002Fsync')\nconst fs = require('fs')\n\nconst bro = browser.start()\nconst vibe = bro.page()\nvibe.go('https:\u002F\u002Fexample.com')\n\nconst png = vibe.screenshot()\nfs.writeFileSync('screenshot.png', png)\n\nconst link = vibe.find('a')\nlink.click()\nbro.stop()\n```\n\n### Python Client\n\n```python\n# Async\nfrom vibium.async_api import browser\n\n# Sync (default)\nfrom vibium import browser\n```\n\n**Async API:**\n```python\nimport asyncio\nfrom vibium.async_api import browser\n\nasync def main():\n    bro = await browser.start()\n    vibe = await bro.page()\n    await vibe.go(\"https:\u002F\u002Fexample.com\")\n\n    png = await vibe.screenshot()\n    with open(\"screenshot.png\", \"wb\") as f:\n        f.write(png)\n\n    link = await vibe.find(\"a\")\n    await link.click()\n    await bro.stop()\n\nasyncio.run(main())\n```\n\n**Sync API:**\n```python\nfrom vibium import browser\n\nbro = browser.start()\nvibe = bro.page()\nvibe.go(\"https:\u002F\u002Fexample.com\")\n\npng = vibe.screenshot()\nwith open(\"screenshot.png\", \"wb\") as f:\n    f.write(png)\n\nlink = vibe.find(\"a\")\nlink.click()\nbro.stop()\n```\n\n### Java Client\n\n```java\nvar bro = Vibium.start();\nvar vibe = bro.page();\nvibe.go(\"https:\u002F\u002Fexample.com\");\n\nvar png = vibe.screenshot();\nFiles.write(Path.of(\"screenshot.png\"), png);\n\nvar link = vibe.find(\"a\");\nlink.click();\nbro.stop();\n```\n\n---\n\n## Architecture\n\n```\n┌──────────────────────────────────────┐\n│             LLM \u002F Agent              │\n│  (Claude Code, Codex, Gemini, etc.)  │\n└──────────────────────────────────────┘\n       ▲                  ▲\n       │ CLI (Bash)       │ MCP (stdio)\n       ▼                  ▼\n┌───────────────────────────────────┐\n│          Vibium binary            │\n│                                   │\n│  ┌──────────────┐ ┌────────────┐  │\n│  │ CLI Commands │ │ MCP Server │  │\n│  └─────┬────────┘ └──────┬─────┘  │        ┌──────────────────┐\n│        └───────▲─────────┘        │        │                  │\n│                │                  │        │                  │\n│         ┌──────▼───────┐          │  BiDi  │  Chrome Browser  │\n│         │  BiDi Proxy  │          │◄──────►│                  │\n│         └──────────────┘          │        │                  │\n└───────────────────────────────────┘        └──────────────────┘\n          ▲\n          │ WebSocket BiDi :9515\n          ▼\n┌──────────────────────────────────────┐\n│          Client Libraries            │\n│       (js\u002Fts | python | java)        │\n│                                      │\n│  ┌─────────────────┐ ┌────────────┐  │\n│  │   Async API     │ │  Sync API  │  │\n│  │ await vibe.go() │ │  vibe.go() │  │\n│  └─────────────────┘ └────────────┘  │\n└──────────────────────────────────────┘\n```\n\n---\n\n## Platform Support\n\n| Platform | Architecture | Status |\n|----------|--------------|--------|\n| Linux | x64 | ✅ Supported |\n| macOS | x64 (Intel) | ✅ Supported |\n| macOS | arm64 (Apple Silicon) | ✅ Supported |\n| Windows | x64 | ✅ Supported |\n\n---\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and guidelines.\n\n---\n\n## Roadmap\n\nV1 focuses on the core loop: browser control via CLI, MCP, and client libraries.\n\nSee [ROADMAP.md](ROADMAP.md) for planned features:\n- Cortex (memory\u002Fnavigation layer)\n- Retina (recording extension)\n- Video recording\n- AI-powered locators\n\n---\n\n## License\n\nApache 2.0\n","# Vibium\n\n[![npm](https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002Fvibium)](https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fvibium) [![PyPI](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fvibium)](https:\u002F\u002Fpypi.org\u002Fproject\u002Fvibium\u002F) [![Maven Central](https:\u002F\u002Fimg.shields.io\u002Fmaven-central\u002Fv\u002Fcom.vibium\u002Fvibium)](https:\u002F\u002Fcentral.sonatype.com\u002Fartifact\u002Fcom.vibium\u002Fvibium) [![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-blue)](LICENSE)\n\n**面向AI智能体与人类的浏览器自动化工具。**\n\nVibium为AI智能体提供了一个浏览器环境。只需安装`vibium`技能，您的智能体便可通过简单的命令行指令实现页面导航、表单填写、按钮点击以及截图等功能。同时，Vibium也支持作为MCP服务器使用，并提供了JS\u002FTS、Python和Java客户端库。\n\n**初次使用？** 您可以快速上手：在[JavaScript](docs\u002Ftutorials\u002Fgetting-started-js.md)、[Python](docs\u002Ftutorials\u002Fgetting-started-python.md)或[Java](docs\u002Ftutorials\u002Fgetting-started-java.md)中，5分钟内即可完成从零到“Hello, World”的体验。\n\n## 为什么选择Vibium？\n\n- **原生支持AI。** 以技能形式集成，您的智能体可立即掌握完整的浏览器自动化工具集。\n- **零配置。** 一次安装，浏览器自动下载，默认可见。\n- **基于标准。** 基于[WebDriver BiDi](docs\u002Fexplanation\u002Fwebdriver-bidi.md)构建，而非由大型企业控制的专有协议。\n- **轻量级。** 单个约10MB的二进制文件，无运行时依赖。\n- **灵活易用。** 可作为CLI技能、MCP服务器，或JS\u002FPython\u002FJava库使用。\n\n---\n\n## 智能体设置\n\n```bash\nnpm install -g vibium\nnpx skills add https:\u002F\u002Fgithub.com\u002FVibiumDev\u002Fvibium --skill vibe-check\n```\n\n第一条命令会安装Vibium及其`vibium`二进制文件，并自动下载Chrome浏览器。第二条命令则将该技能安装到`{project}\u002F.agents\u002Fskills\u002Fvibium`目录下。\n\n> `skills`是[开放的智能体技能CLI工具](https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fskills)，用于管理AI智能体技能的包管理器。无需全局安装，直接通过`npx`运行即可。\n\n### CLI快速参考\n\n```bash\n# 页面映射与交互（核心流程）\nvibium go https:\u002F\u002Fvar.parts           # 导航至指定URL\nvibium map                            # 映射可交互元素 → @e1, @e2, ...\nvibium click @e1                      # 使用引用点击元素\nvibium diff map                       # 查看页面变化\n\n# 元素查找（语义化——无需CSS选择器）\nvibium find text \"Sign In\"            # 根据可见文本查找\nvibium find label \"Email\"             # 根据表单标签查找\nvibium find placeholder \"Search\"      # 根据占位符查找\nvibium find role button               # 根据ARIA角色查找\n\n# 内容读取与捕获\nvibium text                           # 获取页面全部文本\nvibium screenshot -o page.png         # 截取屏幕截图\nvibium screenshot --annotate -o a.png # 添加元素标注的截图\nvibium pdf -o page.pdf                # 将页面保存为PDF\nvibium eval \"document.title\"          # 执行JavaScript代码\n\n# 等待操作\nvibium wait \".modal\"                  # 等待指定元素出现\nvibium wait url \"\u002Fdashboard\"          # 等待URL跳转\nvibium wait text \"Success\"            # 等待页面上出现特定文本\n\n# 会话录制\nvibium record start                   # 开始录制并保存截图\nvibium record stop                    # 停止录制并保存为record.zip\n\n# 表单与输入\nvibium fill @e2 \"hello@example.com\"   # 使用引用填充输入框\nvibium select @e3 \"US\"               # 选择下拉菜单选项\nvibium check @e4                      # 勾选复选框\nvibium press Enter                    # 按下回车键\n```\n\n完整命令列表请参见：[SKILL.md](skills\u002Fvibe-check\u002FSKILL.md)\n\n**替代方案：MCP服务器**（适用于结构化工具调用，而非CLI）：\n\n```bash\nclaude mcp add vibium -- npx -y vibium mcp    # Claude Code\ngemini mcp add vibium npx -y vibium mcp       # Gemini CLI\n```\n\n更多选项及故障排除，请参阅[MCP设置指南](docs\u002Ftutorials\u002Fgetting-started-mcp.md)。\n\n---\n\n## 各语言API\n\n```bash\nnpm install vibium   # JavaScript\u002FTypeScript\npip install vibium   # Python\n```\n\n**Java**（Gradle）：\n```groovy\nimplementation 'com.vibium:vibium:26.3.18'\n```\n\n**Java**（Maven）：\n```xml\n\u003Cdependency>\n    \u003CgroupId>com.vibium\u003C\u002FgroupId>\n    \u003CartifactId>vibium\u003C\u002FartifactId>\n    \u003Cversion>26.3.18\u003C\u002Fversion>\n\u003C\u002Fdependency>\n```\n\n上述命令会自动安装Vibium二进制文件并下载Chrome浏览器，无需手动配置浏览器环境。\n\n### JS\u002FTS客户端\n\n**异步API：**\n```javascript\nimport { browser } from 'vibium'\n\nconst bro = await browser.start()\nconst vibe = await bro.page()\nawait vibe.go('https:\u002F\u002Fexample.com')\n\nconst png = await vibe.screenshot()\nawait fs.writeFile('screenshot.png', png)\n\nconst link = await vibe.find('a')\nawait link.click()\nawait bro.stop()\n```\n\n**同步API：**\n```javascript\nconst { browser } = require('vibium\u002Fsync')\nconst fs = require('fs')\n\nconst bro = browser.start()\nconst vibe = bro.page()\nvibe.go('https:\u002F\u002Fexample.com')\n\nconst png = vibe.screenshot()\nfs.writeFileSync('screenshot.png', png)\n\nconst link = vibe.find('a')\nlink.click()\nbro.stop()\n```\n\n### Python客户端\n\n```python\n# 异步\nfrom vibium.async_api import browser\n\n# 同步（默认）\nfrom vibium import browser\n```\n\n**异步API：**\n```python\nimport asyncio\nfrom vibium.async_api import browser\n\nasync def main():\n    bro = await browser.start()\n    vibe = await bro.page()\n    await vibe.go(\"https:\u002F\u002Fexample.com\")\n\n    png = await vibe.screenshot()\n    with open(\"screenshot.png\", \"wb\") as f:\n        f.write(png)\n\n    link = await vibe.find(\"a\")\n    await link.click()\n    await bro.stop()\n\nasyncio.run(main())\n```\n\n**同步API：**\n```python\nfrom vibium import browser\n\nbro = browser.start()\nvibe = bro.page()\nvibe.go(\"https:\u002F\u002Fexample.com\")\n\npng = vibe.screenshot()\nwith open(\"screenshot.png\", \"wb\") as f:\n    f.write(png)\n\nlink = vibe.find(\"a\")\nlink.click()\nbro.stop()\n```\n\n### Java客户端\n\n```java\nvar bro = Vibium.start();\nvar vibe = bro.page();\nvibe.go(\"https:\u002F\u002Fexample.com\");\n\nvar png = vibe.screenshot();\nFiles.write(Path.of(\"screenshot.png\"), png);\n\nvar link = vibe.find(\"a\");\nlink.click();\nbro.stop();\n```\n\n---\n\n## 架构\n\n```\n┌──────────────────────────────────────┐\n│             大模型 \u002F 代理              │\n│  (Claude Code、Codex、Gemini 等)  │\n└──────────────────────────────────────┘\n       ▲                  ▲\n       │ CLI（Bash）       │ MCP（stdio）\n       ▼                  ▼\n┌───────────────────────────────────┐\n│          Vibium 二进制文件            │\n│                                   │\n│  ┌──────────────┐ ┌────────────┐  │\n│  │ CLI 命令     │ │ MCP 服务器 │  │\n│  └─────┬────────┘ └──────┬─────┘  │        ┌──────────────────┐\n│        └───────▲─────────┘        │        │                  │\n│                │                  │        │                  │\n│         ┌──────▼───────┐          │  BiDi  │  Chrome 浏览器  │\n│         │  BiDi 代理  │          │◄──────►│                  │\n│         └──────────────┘          │        │                  │\n└───────────────────────────────────┘        └──────────────────┘\n          ▲\n          │ WebSocket BiDi :9515\n          ▼\n┌──────────────────────────────────────┐\n│          客户端库            │\n│       (js\u002Fts | python | java)        │\n│                                      │\n│  ┌─────────────────┐ ┌────────────┐  │\n│  │   异步 API     │ │  同步 API  │  │\n│  │ await vibe.go() │ │  vibe.go() │  │\n│  └─────────────────┘ └────────────┘  │\n└──────────────────────────────────────┘\n```\n\n---\n\n## 平台支持\n\n| 平台 | 架构 | 状态 |\n|----------|--------------|--------|\n| Linux | x64 | ✅ 支持 |\n| macOS | x64（Intel） | ✅ 支持 |\n| macOS | arm64（Apple Silicon） | ✅ 支持 |\n| Windows | x64 | ✅ 支持 |\n\n---\n\n## 贡献\n\n请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)，了解开发环境搭建及贡献指南。\n\n---\n\n## 路线图\n\nV1 专注于核心流程：通过 CLI、MCP 和客户端库控制浏览器。\n\n更多计划中的功能，请参阅 [ROADMAP.md](ROADMAP.md)：\n- Cortex（记忆\u002F导航层）\n- Retina（录制扩展）\n- 视频录制\n- AI 驱动的定位器\n\n---\n\n## 许可证\n\nApache 2.0","# Vibium 快速上手指南\n\nVibium 是一款专为 AI 智能体（Agent）和开发者设计的浏览器自动化工具。它支持通过 CLI、MCP 服务器或多种编程语言（JS\u002FTS, Python, Java）控制浏览器，无需复杂配置即可实现页面导航、表单填写、截图等操作。\n\n## 环境准备\n\n**系统要求：**\n- **操作系统**：Linux (x64), macOS (Intel x64 \u002F Apple Silicon arm64), Windows (x64)\n- **网络**：首次运行时需下载 Chrome 浏览器（约 10MB+），请确保网络通畅。\n- **前置依赖**：\n  - 使用 CLI 或 JS\u002FTS：需安装 [Node.js](https:\u002F\u002Fnodejs.org\u002F) (推荐 LTS 版本)\n  - 使用 Python：需安装 Python 3.8+\n  - 使用 Java：需安装 JDK 17+ 及构建工具 (Maven\u002FGradle)\n\n> **注意**：Vibium 会自动下载并管理 Chrome 浏览器，无需手动安装或配置 WebDriver。\n\n## 安装步骤\n\n### 方式一：全局安装 CLI（推荐用于快速测试）\n\n通过 npm 全局安装 Vibium 二进制文件，并添加 Agent 技能包：\n\n```bash\n# 1. 安装 Vibium 核心二进制文件（自动下载 Chrome）\nnpm install -g vibium\n\n# 2. 安装 Agent 技能包 (需要 npx 运行 skills 管理器)\nnpx skills add https:\u002F\u002Fgithub.com\u002FVibiumDev\u002Fvibium --skill vibe-check\n```\n\n### 方式二：作为项目依赖安装（用于代码开发）\n\n**JavaScript \u002F TypeScript:**\n```bash\nnpm install vibium\n```\n\n**Python:**\n```bash\npip install vibium\n# 国内加速可选: pip install vibium -i https:\u002F\u002Fpypi.tuna.tsinghua.edu.cn\u002Fsimple\n```\n\n**Java (Maven):**\n在 `pom.xml` 中添加：\n```xml\n\u003Cdependency>\n    \u003CgroupId>com.vibium\u003C\u002FgroupId>\n    \u003CartifactId>vibium\u003C\u002FartifactId>\n    \u003Cversion>26.3.18\u003C\u002Fversion>\n\u003C\u002Fdependency>\n```\n\n## 基本使用\n\n### 1. CLI 命令行模式\n\n最核心的工作流是：**导航 -> 映射元素 -> 交互**。\n\n```bash\n# 访问网页\nvibium go https:\u002F\u002Fvar.parts\n\n# 映射页面上的可交互元素（生成 @e1, @e2 等引用标识）\nvibium map\n\n# 基于语义查找元素（无需写 CSS 选择器）\nvibium find text \"Sign In\"\nvibium find label \"Email\"\n\n# 执行操作\nvibium click @e1                # 点击引用为 @e1 的元素\nvibium fill @e2 \"hello@test.com\" # 填充表单\nvibium screenshot -o page.png   # 截取屏幕\n\n# 等待特定条件\nvibium wait text \"Success\"      # 等待页面出现 \"Success\" 文本\n```\n\n### 2. 代码调用示例\n\n#### JavaScript \u002F TypeScript (异步)\n\n```javascript\nimport { browser } from 'vibium'\nimport fs from 'fs'\n\nasync function run() {\n  \u002F\u002F 启动浏览器\n  const bro = await browser.start()\n  const vibe = await bro.page()\n  \n  \u002F\u002F 导航\n  await vibe.go('https:\u002F\u002Fexample.com')\n  \n  \u002F\u002F 截图\n  const png = await vibe.screenshot()\n  fs.writeFileSync('screenshot.png', png)\n  \n  \u002F\u002F 查找并点击链接\n  const link = await vibe.find('a')\n  await link.click()\n  \n  await bro.stop()\n}\n\nrun()\n```\n\n#### Python (同步)\n\n```python\nfrom vibium import browser\n\n# 启动浏览器\nbro = browser.start()\nvibe = bro.page()\n\n# 导航\nvibe.go(\"https:\u002F\u002Fexample.com\")\n\n# 截图\npng = vibe.screenshot()\nwith open(\"screenshot.png\", \"wb\") as f:\n    f.write(png)\n\n# 查找并点击\nlink = vibe.find(\"a\")\nlink.click()\n\nbro.stop()\n```\n\n#### Java\n\n```java\nimport com.vibium.Vibium;\nimport java.nio.file.Files;\nimport java.nio.file.Path;\n\npublic class Main {\n    public static void main(String[] args) throws Exception {\n        var bro = Vibium.start();\n        var vibe = bro.page();\n        \n        vibe.go(\"https:\u002F\u002Fexample.com\");\n        \n        var png = vibe.screenshot();\n        Files.write(Path.of(\"screenshot.png\"), png);\n        \n        var link = vibe.find(\"a\");\n        link.click();\n        \n        bro.stop();\n    }\n}\n```\n\n### 3. 集成 MCP 服务器 (适用于 Claude Code 等 AI 助手)\n\n若需在 AI 对话中直接调用浏览器能力，可配置 MCP Server：\n\n```bash\n# 为 Claude Code 添加 Vibium 工具\nclaude mcp add vibium -- npx -y vibium mcp\n```\n\n配置完成后，AI 助手可直接执行“打开网页”、“截图”、“点击按钮”等自然语言指令。","某电商数据分析师需要每日从多个竞争对手网站抓取最新商品价格、库存状态及促销信息，并自动生成日报。\n\n### 没有 vibium 时\n- **维护成本极高**：传统爬虫依赖脆弱的 CSS 选择器，一旦网页结构微调，脚本立即失效，需频繁人工修复代码。\n- **无法处理动态内容**：面对需要登录、点击加载或无限滚动的现代网页，常规 HTTP 请求库束手无策，难以获取完整数据。\n- **调试困难**：当抓取失败时，缺乏直观的现场快照，开发者只能靠日志猜测是网络超时还是元素未渲染，排查耗时。\n- **AI 集成复杂**：若想让 AI Agent 自主执行抓取，需自行封装复杂的浏览器驱动接口，开发周期长达数天。\n\n### 使用 vibium 后\n- **语义化定位更稳健**：利用 `vibium find label \"Price\"` 等语义命令直接锁定元素，不再受底层 HTML 结构变更影响，脚本长期稳定。\n- **原生支持交互流程**：通过 `vibium go`、`vibium click` 和 `vibium wait` 轻松模拟人类操作，自动完成登录、翻页及等待异步数据加载。\n- **可视化即时诊断**：使用 `vibium screenshot --annotate` 一键生成带元素标注的截图，失败原因一目了然，大幅缩短调试时间。\n- **AI 技能无缝接入**：只需一条命令将 vibium 安装为 Agent 技能，AI 即可直接调用浏览器能力自主规划抓取路径，实现“零代码”自动化。\n\nvibium 将繁琐的浏览器自动化转化为简单的自然语言指令，让 AI Agent 真正具备了像人类一样浏览和操作网页的能力。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002FVibiumDev_vibium_0166e39a.png","VibiumDev","Vibium","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002FVibiumDev_9ca85a92.png","The fastest way to automate a browser",null,"https:\u002F\u002Fvibium.com","https:\u002F\u002Fgithub.com\u002FVibiumDev",[84,88,92,96,100,104,108],{"name":85,"color":86,"percentage":87},"Go","#00ADD8",38.7,{"name":89,"color":90,"percentage":91},"JavaScript","#f1e05a",21.4,{"name":93,"color":94,"percentage":95},"Python","#3572A5",17.8,{"name":97,"color":98,"percentage":99},"TypeScript","#3178c6",11.4,{"name":101,"color":102,"percentage":103},"Java","#b07219",9.6,{"name":105,"color":106,"percentage":107},"Makefile","#427819",1,{"name":109,"color":110,"percentage":111},"Shell","#89e051",0.1,2747,156,"2026-04-05T02:52:48","Apache-2.0","Linux, macOS, Windows","未说明",{"notes":119,"python":117,"dependencies":120},"该工具为轻量级二进制文件（约 10MB），无运行时依赖。首次安装或运行时会自动下载 Chrome 浏览器。支持通过 CLI、MCP 服务器或 JS\u002FTS、Python、Java 客户端库调用。基于 WebDriver BiDi 标准构建，无需手动配置浏览器环境。",[121,122],"vibium (npm\u002Fpypi\u002Fmaven)","Chrome Browser (自动下载)",[15,45],"2026-03-27T02:49:30.150509","2026-04-06T05:35:39.650359",[127,132,137,142,147,151],{"id":128,"question_zh":129,"answer_zh":130,"source_url":131},18203,"在 Windows 上运行脚本时遇到 'Error: Connection closed' 错误且浏览器无法打开，如何解决？","该问题通常由安装了错误的 npm 包（如误装了 'clicker' 而非 'vibium'）或 antivirus 软件干扰引起。请执行以下步骤：\n1. 确保安装正确的包：运行 `npm install vibium`。\n2. 暂时禁用杀毒软件（如 Kaspersky、Windows Defender），或将 vibium 添加到允许列表中。\n3. 如需调试，可设置环境变量 `VIBIUM_DEBUG=1` 查看详细日志。","https:\u002F\u002Fgithub.com\u002FVibiumDev\u002Fvibium\u002Fissues\u002F14",{"id":133,"question_zh":134,"answer_zh":135,"source_url":136},18204,"在 Windows 上运行 Python 脚本时报错 'ClickerNotFoundError: Could not find clicker binary'，即使已安装平台包怎么办？","此问题在 v0.1.3 版本中已修复。新版 Python wheel 已直接包含 clicker.exe 二进制文件。请将 vibium 升级到最新版本：\n`pip install --upgrade vibium`\n升级后无需单独安装平台特定包即可自动检测二进制文件。","https:\u002F\u002Fgithub.com\u002FVibiumDev\u002Fvibium\u002Fissues\u002F31",{"id":138,"question_zh":139,"answer_zh":140,"source_url":141},18205,"Node.js 项目报错 'Could not find clicker binary. Set CLICKER_PATH or install @vibium\u002Fwin32-x64'，但已安装 vibium，如何处理？","@vibium\u002Fwin32-x64 是包含 clicker.exe 的可选依赖项。有时 npm 不会自动安装可选依赖，导致找不到二进制文件。解决方法：\n1. 手动安装该平台包：`npm install @vibium\u002Fwin32-x64`。\n2. 如果仍失败，可手动设置环境变量 `CLICKER_PATH` 指向 clicker.exe 的具体路径作为备用方案。","https:\u002F\u002Fgithub.com\u002FVibiumDev\u002Fvibium\u002Fissues\u002F13",{"id":143,"question_zh":144,"answer_zh":145,"source_url":146},18206,"示例代码中使用 example.com 进行测试时无法正常工作或行为异常，是什么原因？","这是一个已知问题，维护团队已确认 example.com 的测试用例在某些网络环境或设备下会导致混淆或失败。该问题已被列入待办事项（TODO），团队正在优先处理核心产品开发，后续会尽快修复示例代码以提供更稳定的测试目标。","https:\u002F\u002Fgithub.com\u002FVibiumDev\u002Fvibium\u002Fissues\u002F4",{"id":148,"question_zh":149,"answer_zh":150,"source_url":131},18207,"如何排查 Vibium 安装后的连接或二进制文件查找问题？","可以通过开启调试模式获取详细日志。对于 Node.js 用户，设置环境变量 `VIBIUM_DEBUG=1` 后重新运行脚本；对于 Python 用户，检查是否安装了最新版本的 vibium（v0.1.3+ 已内置二进制文件）。同时务必检查杀毒软件是否拦截了 vibium 的相关进程。",{"id":152,"question_zh":153,"answer_zh":154,"source_url":131},18208,"在 Windows 上使用 Vibium 前需要做什么特殊的系统配置吗？","主要需要注意杀毒软件的配置。Windows Defender 或第三方杀毒软件（如 Kaspersky）可能会阻止 vibium 启动浏览器或访问二进制文件。建议在安装和首次运行时暂时禁用杀毒软件，或者将 vibium 的安装目录及生成的进程添加到杀毒软件的白名单\u002F排除列表中。",[156,161,166,171,176,181,186,191,196,201],{"id":157,"version":158,"summary_zh":159,"released_at":160},108729,"v26.3.18","## Java：自动安装用于测试的 Chrome 浏览器\n\nJava 用户无需再手动安装 Chrome 浏览器。Java 客户端现在会在首次使用时自动下载用于测试的 Chrome，与 Python 客户端的行为保持一致。（[#97](https:\u002F\u002Fgithub.com\u002FVibiumDev\u002Fvibium\u002Fissues\u002F97)）\n\n- `BrowserInstaller.ensureInstalled()` 会检查 Chrome 是否已安装；如果缺失，则运行 `vibium install`。\n- 远程浏览器连接时会自动跳过此步骤。\n- 支持通过设置 `VIBIUM_SKIP_BROWSER_DOWNLOAD=1` 来选择不进行浏览器下载。\n\n## Java：命令行代理\n\nvibium JAR 现在可以用作命令行工具：\n\n```bash\njava -jar vibium.jar install   # 下载用于测试的 Chrome 浏览器\njava -jar vibium.jar paths     # 显示浏览器路径\n```\n\n## Java：更友好的错误信息\n\n如果 Chrome 浏览器未安装，错误信息会明确告知用户应如何操作：\n\n```\n用于测试的 Chrome 浏览器尚未安装。\n\n自动下载未成功。如需手动安装，请运行：\n\n  java -jar vibium.jar install\n```\n\n取代了以往模糊不清的 `\"chromedriver not found\"` 错误提示。\n\n## 录制：修复资源文件扩展名问题\n\n录制资源（截图）现在会在跟踪归档中包含 `.jpeg` 或 `.png` 扩展名，以便播放器能够正确识别图像格式。\n\n## 其他改进\n\n- 修复了过时的 `\"run 'clicker install'\"` 错误提示 → 更改为 `\"run 'vibium install'\"`。\n- 对 Java 教程和文档进行了优化。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FVibiumDev\u002Fvibium\u002Fcompare\u002Fv26.3.17...v26.3.18","2026-03-18T19:26:52",{"id":162,"version":163,"summary_zh":164,"released_at":165},108730,"v26.3.17","🍀 圣帕特里克节快乐！\n\n## ☕ Java 客户端\n\n用于浏览器自动化的新 Java 客户端库。通过 ndjson 管道协议与 vibium 二进制文件通信。\n\n- 55 个源文件，12 个测试类\n- 同步 API：`Vibium.start()` → `Browser` → `Page` → `Element`\n- 使用 Gradle 构建，并将原生二进制文件打包到 JAR 中\n- 可在 [Maven Central](https:\u002F\u002Fcentral.sonatype.com\u002Fartifact\u002Fcom.vibium\u002Fvibium) 上获取\n\n```java\nBrowser bro = Vibium.start();\nPage vibe = bro.page();\nvibe.go(\"https:\u002F\u002Fexample.com\");\nElement el = vibe.find(\"h1\");\nSystem.out.println(el.text());\nbro.stop();\n```\n\n## Python 客户端改进\n\n- 结构化的错误类型（`VibiumTimeoutError`、`ElementNotFoundError` 等）\n- 使用正确的 `TypedDict` 类替代 `Dict[str, Any]` 别名\n- 将所有公共同步类型重新导出至顶级 `vibium` 包\n- 修复 `emulate_media()` 方法，使其使用 snake_case 风格的关键字参数\n\n## Bug 修复\n\n- 使用进程组杀戮来清理 Chrome 进程，而非有竞态风险的 `pgrep` 遍历\n- 修复不稳定的测试问题，并在各测试阶段之间添加清理操作\n- 根据 BiDi 规范，将元素相关的 wire 命令重命名为 `vibium:element.*`\n- 录制时默认启用截图功能\n- 将 `storageState` 重命名为 `storage`，并新增 `setStorage` 和 `clearStorage` 方法\n\n## 文档\n\n- 重新组织文档结构：规范、操作指南、教程和参考文档\n- 添加 WebDriver BiDi 和 WebDriver 概述参考文档\n- 为 Java、JS 和 Python 分别添加入门教程\n- 添加 Maven Central 发布指南\n- 清理过时的设计文档\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FVibiumDev\u002Fvibium\u002Fcompare\u002Fv26.3.11...v26.3.17","2026-03-18T05:28:28",{"id":167,"version":168,"summary_zh":169,"released_at":170},108731,"v26.3.11","## MCP 录制系统全面升级\n\nJS\u002FPython API 与 MCP\u002FCLI 录制现已共享同一录制器，并生成完全一致的跟踪输出。\n\n### 新的 MCP 录制工具\n\n新增四款用于结构化录制内容的工具：\n\n- **`browser_record_start_group`** \u002F **`browser_record_stop_group`** — 将操作嵌套到跟踪查看器中的命名组中\n- **`browser_record_start_chunk`** \u002F **`browser_record_stop_chunk`** — 在不中断录制的情况下，将长录制拆分为多个独立的 ZIP 文件\n\n对应的 CLI 子命令如下：\n\n```bash\nvibium record start-group \"Login\"\nvibium record stop-group\nvibium record start-chunk --name \"part2\" --title \"Checkout Flow\"\nvibium record stop-chunk -o part1.zip\n```\n\n### 新的录制选项\n\n`browser_record_start` 现在支持 `title`、`format`、`quality` 和 `sources` 参数。CLI 也新增了 `--title` 和 `--sources` 标志。\n\n```bash\nvibium record start --screenshots --title \"Login Flow\" --quality 0.1\n```\n\n### 错误修复\n\n- **截图时间同步**：MCP 录制现在会将截图时间戳对齐到对应操作的 `endTime`（与代理路径保持一致），而非使用较晚的捕获时间。此举修复了跟踪查看器中的时间间隔问题。\n- **事件订阅缺失**：MCP 录制现已订阅 `log.entryAdded`、`browsingContext.userPromptOpened`、`browsingContext.downloadWillBegin`、`browsingContext.load` 和 `browsingContext.fragmentNavigated` 事件——与代理的事件覆盖范围一致。\n- **元素边界框**：MCP 录制中的点击\u002F悬停\u002F轻触操作现包含带有 `point` 和 `box` 数据的 `input` 事件，从而支持在跟踪查看器中显示点击点叠加层。\n- **BiDi 事件转发**：`bidi.Client` 现在支持 `SetEventHandler` 回调，以便在命令等待期间接收到的事件能够被转发给录制器。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FVibiumDev\u002Fvibium\u002Fcompare\u002Fv26.3.9...v26.3.11","2026-03-11T10:44:24",{"id":172,"version":173,"summary_zh":174,"released_at":175},108732,"v26.3.9","# Vibium 26.3\n\n本次发布包含三项变更，均旨在使 API 更加简洁和一致。\n\n---\n\n## 统一的浏览器 API：`start()` \u002F `stop()` ([#89](https:\u002F\u002Fgithub.com\u002FVibiumDev\u002Fvibium\u002Fissues\u002F89))\n\n`browser.launch()`、`browser.connect()` 和 `browser.close()` 已被移除。取而代之的是两个方法：`start()` 和 `stop()`。\n\n**之前：**\n\n```javascript\nconst bro = await browser.launch()        \u002F\u002F 本地浏览器\nconst bro = await browser.connect('ws:\u002F\u002F...') \u002F\u002F 远程浏览器\nawait bro.close()\n```\n\n**之后：**\n\n```javascript\nconst bro = await browser.start()              \u002F\u002F 本地浏览器\nconst bro = await browser.start('ws:\u002F\u002F...')    \u002F\u002F 远程浏览器\nawait bro.stop()\n```\n\n`start()` 同时支持本地和远程浏览器——传递 WebSocket URL 可连接到远程浏览器，不传参数则会启动本地浏览器。`stop()` 替换了之前的 `close()` 和 `quit()`。\n\n所有目标语言中的更改相同：\n\n```python\n# Python\nbro = await browser.start()\nbro = await browser.start(\"ws:\u002F\u002Fremote:9222\")\nawait bro.stop()\n```\n\n```bash\n# CLI\nvibium start                          # 本地\nvibium start --connect ws:\u002F\u002Fremote:9222  # 远程\nvibium stop\n```\n\n---\n\n## “Tracing” 现已更名为“Recording”\n\n所有面向用户的“tracing”相关术语均已更新为“recording”。旧名称源自 Playwright 的内部实现，而“recording”更准确地描述了该功能的实际作用。\n\n- `ctx.tracing` → `ctx.recording`\n- CLI 命令 `trace-start` \u002F `trace-stop` → `record-start` \u002F `record-stop`\n- MCP 工具：`browser_trace_start` \u002F `browser_trace_stop` → `browser_record_start` \u002F `browser_record_stop`\n\n内部压缩文件格式保持不变——录制文件仍与 Playwright 的 Trace 查看器兼容。\n\n```javascript\n\u002F\u002F 之前\nawait ctx.tracing.start({ screenshots: true })\nconst zip = await ctx.tracing.stop({ path: 'trace.zip' })\n\n\u002F\u002F 之后\nawait ctx.recording.start({ screenshots: true })\nconst zip = await ctx.recording.stop({ path: 'recording.zip' })\n```\n\n---\n\n## 录制播放器：player.vibium.dev\n\nTrace 查看器现已更名为 **录制播放器**，托管于 [player.vibium.dev](https:\u002F\u002Fplayer.vibium.dev)。\n\n打开任意 `.zip` 格式的录制文件，即可查看包含截图、DOM 快照、网络瀑布图和操作标记的完整时间线。同时，它仍然兼容 [trace.playwright.dev](https:\u002F\u002Ftrace.playwright.dev)。\n\n---\n\n## 其他变更\n\n- 使用 CSS 或语义选择器找到元素时，自动将其滚动至视图中\n- 在录制中为类似点击的操作捕获快照后状态\n- 在录制条目中记录元素的边界框\n- 将默认录制截图质量从 0.8 降低至 0.5（文件更小）\n- 修复因调度互斥锁序列化导致的 `route.fulfill()` 死锁问题\n- 修复状态查询中的语义元素解析问题\n- 修复同步桥回调信号中的竞态条件\n- 修复远程浏览器 BiDi 会话创建问题\n- 简化 Chrome for Testing 的安装布局，以支持独立的 chromedriver\n\n---\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FVibiumDev\u002Fvibium\u002Fcompare\u002Fv26.2.28...v26.3.9","2026-03-09T06:16:56",{"id":177,"version":178,"summary_zh":179,"released_at":180},108733,"v26.2.28","自发布以来的最大更新。超过200次提交，修复了大量 bug，并引入了一整套全新功能。\n\n**涵盖22个类别、共161条命令，已在6个实现目标上发布** —— JS 异步、JS 同步、Python 异步、Python 同步、MCP 和 CLI。\n\n## 亮点\n\n### CalVer\n\nVibium 现在采用日历版本号。`26.2` 表示 2026 年 2 月。不再使用 SemVer。\n\n### 跟踪\n\n记录自动化执行的每一步操作，并以可视化的时间线形式回放。\n\n```javascript\nawait ctx.tracing.start({ screenshots: true, snapshots: true })\nawait vibe.go('https:\u002F\u002Fexample.com')\nawait vibe.find('a').click()\nawait ctx.tracing.stop({ path: 'trace.zip' })\n```\n\n在 [trace.vibium.dev](https:\u002F\u002Ftrace.vibium.dev) 或 [trace.playwright.dev](https:\u002F\u002Ftrace.playwright.dev) 中打开 `trace.zip` —— 完整的时间线包含截图、DOM 快照、网络瀑布图以及操作标记。支持操作组和分块跟踪。\n\n详情请参阅 [跟踪教程](docs\u002Ftutorials\u002Ftracing.md)。\n\n### 语义查找\n\n根据元素的**含义**而非仅凭 CSS 选择器来查找元素。\n\n```javascript\nawait vibe.find({ role: 'button', text: '提交' }).click()\nawait vibe.find({ label: '电子邮件地址' }).fill('me@example.com')\nawait vibe.find({ placeholder: '搜索...' }).type('vibium')\n```\n\n可用策略包括：`role`、`text`、`label`、`placeholder`、`alt`、`title`、`testid`、`xpath`。可自由组合。CLI 也支持：`vibium find --role button --text \"提交\"`。\n\n### 远程浏览器\n\n连接到运行在另一台机器上的浏览器。\n\n```javascript\nconst bro = await browser.connect('ws:\u002F\u002Fremote-host:9222')\nconst vibe = await bro.page()\nawait vibe.go('https:\u002F\u002Fexample.com')\n```\n\n底层实现方面，客户端库与 Vibium 内部点击引擎二进制之间的本地通信层已从 WebSocket 重写为 stdin\u002Fstdout 管道，这使得本地连接更快、更可靠，同时仍保留 WebSocket 用于远程连接。\n\n详情请参阅 [远程浏览器教程](docs\u002Ftutorials\u002Fremote-browser.md)。\n\n### 可操作性\n\n交互操作现在会等待元素就绪后再执行——与 Playwright 的可操作性模型一致。`click()` 会等待元素可见、稳定（无动画）、可接收事件且启用；`fill()` 和 `type()` 还会额外等待元素可编辑。无需任何配置。\n\n### 网络事件与路由\n\n拦截、模拟并观察网络流量。\n\n```javascript\nawait vibe.route('**\u002Fapi\u002Fusers', route => {\n  route.fulfill({ status: 200，body: JSON.stringify([{ name: 'test' }]) })\n})\nvibe.onRequest(req => console.log(req.method(), req.url()))\nvibe.onResponse(resp => console.log(resp.status(), resp.url()))\n```\n\n### 捕获\n\n在操作之前设置监听器，在操作之后获取结果——适用于导航、下载、对话框、请求和事件。\n\n```javascript\nconst download = await vibe.capture.download(async () => {\n  await vibe.find('#download-btn').click()\n})\n```\n\n教程：[JS 中的下载](docs\u002Ftutorials\u002Fdownloads-js.md) · [Python 中的下载](docs\u002Ftutorials\u002Fdownload","2026-03-01T05:27:43",{"id":182,"version":183,"summary_zh":184,"released_at":185},108734,"v0.1.8","## Windows 支持 🪟\n\n此版本为 Vibium 带来了完整的 Windows 支持，包括守护进程模式、进程管理以及构建工具链。\n\n- **通过命名管道实现 Windows 守护进程 IPC** — 守护进程模式现在可在 Windows 上使用原生命名管道（`go-winio`）运行，取代了此前在 Windows 上无操作的 Unix 套接字方案。\n- **修复 Chrome\u002Fchromedriver 的僵尸进程问题（[#78](https:\u002F\u002Fgithub.com\u002FVibiumDev\u002Fvibium\u002Fissues\u002F78)）** — 在 Windows 上执行 `make test` 时，会遗留约 170 个孤儿进程。现改用 `taskkill \u002FT \u002FF` 杀死整个进程树，并在错误路径中于退出前正确调用 `KillAll()`。\n- **Windows 上的构建与测试流水线** — Makefile 现在能够检测操作系统并自动适配（Git Bash shell、`.exe` 后缀、使用 `cp` 替代 `ln -sf`、通过 `cmd.exe` 调用 `taskkill`）。测试辅助脚本具备平台感知能力，可共享解析二进制文件路径。\n- **GnuWin32 Make 3.81 兼容性** — 通过要求将 Git 的 `usr\u002Fbin` 添加到 PATH 中，绕过 GnuWin32 的 CreateProcess 行为问题。\n\n## 二进制文件重命名：clicker → vibium\n\n二进制文件及其所有相关工具已从 `clicker` 完全重命名为 `vibium`。\n\n- 二进制输出：`bin\u002Fclicker` → `bin\u002Fvibium`\n- 守护进程套接字及 PID 文件：`clicker.sock`\u002F`clicker.pid` → `vibium.sock`\u002F`vibium.pid`\n- 环境变量：`VIBIUM_BIN_PATH`\n- npm bin 入口：`vibium`\n- JS 客户端：`ClickerProcess` → `VibiumProcess`\n- 平台特定 npm 包：将 `\"main\"` 字段从 `bin\u002Fclicker` 更新为 `bin\u002Fvibium`\n\nGo 源代码目录内部仍保持 `clicker\u002F` 的命名。\n\n## 文档\n\n- Windows 安装指南定稿（移除了“草稿”提示）\n- 跨平台安装文档同步更新（PAT 部分、PowerShell 技巧、winget 安装说明）\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FVibiumDev\u002Fvibium\u002Fcompare\u002Fv0.1.7...v0.1.8","2026-02-13T17:58:27",{"id":187,"version":188,"summary_zh":189,"released_at":190},108735,"v0.1.7","### Bug修复\n\n- **在帮助输出中显示正确的二进制文件名** — 现在，通过符号链接或 npm 包装器调用时，帮助和版本输出会显示 `vibe-check`；直接调用时则显示 `clicker`。\n- **修复 MCP 安装说明** — 所有文档现在都正确使用了 `npx -y vibium mcp`（之前的安装命令中缺少 `mcp` 子命令）。\n\n### 开发者体验\n\n- **本地开发时自动复制二进制文件** — `make build-go` 现在会在 `node_modules\u002F@vibium\u002F` 目录存在时，将构建好的二进制文件复制到该目录下，这样本地的更改无需重新安装即可立即生效。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002FVibiumDev\u002Fvibium\u002Fcompare\u002Fv0.1.6...v0.1.7","2026-02-09T11:55:13",{"id":192,"version":193,"summary_zh":194,"released_at":195},108736,"v0.1.6","## 亮点\n\n**14 个全新浏览器工具** — 页面读取（`get_text`、`get_url`、`get_title`、`get_html`）、元素查询（`find_all`、`wait`）、输入操作（`hover`、`select`、`scroll`、`keys`）以及标签页管理（`new_tab`、`list_tabs`、`switch_tab`、`close_tab`）。所有工具均可通过 MCP 服务器、守护进程和 CLI 使用。\n\n**守护进程模式** — 浏览器现在默认会在各命令之间保持打开状态，从而消除冷启动开销。如需恢复旧的每条命令一个进程的行为，请使用 `--oneshot` 参数。\n\n**代理技能系统** — `vibe-check add-skill` 可将浏览器自动化技能安装到 `~\u002F.claude\u002Fskills\u002F` 目录下，供 Claude Code 使用。CLI 别名已由 `vibium` 更名为 `vibe-check`。\n\n## 其他变更\n- 添加 `browser_evaluate` 工具，用于执行 JavaScript 代码（感谢 @jolks！— #60）\n- 在 Python 客户端中添加 `evaluate()` 方法\n- 修复 CLI 参数未传递给 clicker 二进制文件的问题\n- 修复 macOS Gatekeeper 阻止 chromedriver 的问题（使用 `xattr -d` 命令移除隔离标记 — #33）\n- 禁用 Chrome 启动时的 macOS 通知权限弹窗\n- 当直接在终端中运行 `clicker mcp` 时，显示有用的提示信息\n- 添加 Gemini CLI 的 MCP 设置教程，并修复 Claude Code 教程中的问题\n- 修复 Windows x86 本地开发环境搭建指南\n- 修复 `vibe-check` CLI 命令的 npm bin 入口\n\n## 新贡献者\n* @jolks 在 https:\u002F\u002Fgithub.com\u002FVibiumDev\u002Fvibium\u002Fpull\u002F60 中完成了首次贡献\n\n**完整更新日志**：https:\u002F\u002Fgithub.com\u002FVibiumDev\u002Fvibium\u002Fcompare\u002Fv0.1.4...v0.1.6","2026-02-09T10:03:51",{"id":197,"version":198,"summary_zh":199,"released_at":200},108737,"v0.1.4","## 变更内容\n\n### Bug 修复\n\n- 修复：测试时必须使用 Chrome 浏览器，移除系统自带 Chrome 的回退机制\n  - 解决 #32 问题\n\n- 在 Chrome 启动时抑制 macOS 的通知权限弹窗\n\n- 修复 Python `websockets` 库的弃用警告\n\n- 由 @coty 实现，使 `make` 目标在干净克隆环境下也能正常工作\n  - PR #34\n\n- 由 @evanniedojadlo 修复，将 WebSocket 消息大小限制提升至 10MB\n  - PR #46\n\n### 已修复的问题\n\n- #32 - Python 无法执行启动浏览器的操作\n\n## 新贡献者\n* @coty 在 https:\u002F\u002Fgithub.com\u002FVibiumDev\u002Fvibium\u002Fpull\u002F34 中完成了首次贡献\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002FVibiumDev\u002Fvibium\u002Fcompare\u002Fv0.1.3...v0.1.4","2026-01-19T06:50:04",{"id":202,"version":203,"summary_zh":204,"released_at":205},108738,"v0.1.3","## 变更内容\n\n### 错误修复\n\n- 修复 MCP 服务器与 Claude Desktop 的兼容性 (#42) - 感谢 @evanniedojadlo\n  - 为 Zod 验证的工具模式添加 `additionalProperties: false`\n  - 按照 JSON-RPC 2.0 规范修复 `notifications\u002Finitialized` 的处理逻辑\n  - 修复 #48、#38、#26\n\n- 修复 BiDi 错误响应解析，使其符合 WebDriver BiDi 规范\n  - 修复 #50、#25\n\n- 修复 Python 平台包，确保包含 clicker 二进制文件\n  - Windows wheel 现在包含 `clicker.exe`\n  - 修复 #49、#47、#31\n\n- 禁用 Chrome 密码管理器和泄漏检测提示\n\n### 已修复的问题\n\n- #50：当 BiDi 错误负载为字符串时，`vibe.screenshot()` 会间歇性失败\n- #49：Python Windows 版本中，`vibium_win32_x64` 安装后缺少 `clicker.exe`\n- #48：Vibium MCP 在初始化后会发送无效的 JSON-RPC 消息\n- #47：Windows 上针对 `ClickerNotFound Error` 的临时解决方案\n- #38：Vibium 在 macOS 上与 Claude Desktop 配合时显示错误\n- #31：Windows 上出现 `ClickerNotFoundError`\n- #26：使用 MCP 与 Claude Desktop 配合时会返回错误\n- #25：BiDi 错误响应被错误地解析","2026-01-18T00:35:19"]