[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-73258":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":26,"readmeContent":27,"aiSummary":28,"trendingCount":16,"starSnapshotCount":16,"syncStatus":29,"lastSyncTime":30,"discoverSource":31},73258,"vibium","VibiumDev\u002Fvibium","VibiumDev","The verification layer for coding agents","https:\u002F\u002Fvibium.com",null,"Go",2823,167,37,30,0,1,6,19,3,28.68,"Apache License 2.0",false,"main",[],"2026-06-12 02:03:11","# 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**The verification layer for coding agents.**\n\nVibium gives AI agents the tools they need to check their work. 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是一个为编码代理提供验证层的工具，使AI代理能够通过简单的CLI命令进行页面导航、表单填写、按钮点击和截图等操作。其核心功能包括基于WebDriver BiDi标准的浏览器自动化工具包安装、零配置需求以及轻量级的单个二进制文件（约10MB），无需额外运行时依赖。此外，Vibium支持多种编程语言环境如JavaScript、Python和Java，并且可以作为MCP服务器使用。该工具特别适合需要快速集成自动化测试或交互式任务的应用场景，比如网站的功能性测试、自动化数据收集等。",2,"2026-06-11 03:44:44","high_star"]