logoalt Hacker News

Show HN: Vibium – Browser automation for AI and humans, by Selenium's creator

268 pointsby hugsyesterday at 5:49 PM85 commentsview on HN

i started the selenium project 21 years ago. vibium is what i'd build if i started over today with ai agents in mind. go binary under the hood (handles browser, bidi, mcp) but devs never see it. just npm install vibium. python/java coming. for claude code: claude mcp add vibium -- npx -y vibium v1 ships today. ama.


Comments

rukuu001yesterday at 7:58 PM

Hey man, just wanted to say thanks for Selenium - it was a game changer and had a big impact on my professional life.

I’m interested in checking out Vibium - I’ve been a reluctant adopter of Playwright and hopeful for a new approach.

show 2 replies
palidanxtoday at 5:13 AM

Sorry, I kind of have a dumb question here. So we have a bunch of legacy selenium scripts that do end to end user testing, and occasion they break (either because of a network error, or devs committed something that breaks a test).

We were looking at seeing if a model could look at the screenshot of the failure, some of the original website source code, and try to fix the failing test.

My question is with vibium, would it make more sense to port the legacy tests over to vibium, and if a test fail, use its capabilities to try to self-heal?

show 1 reply
dmdyesterday at 8:18 PM

Does it allow you to inject js, modify the DOM, and most crucially monitor/modify network requests? I do those things in probably 95-99% of the time I reach for playwright mcp in claude, and from the "For Agents" part of the README, it seems like all this can do is click/type/screenshot?

show 2 replies
michelbyesterday at 7:17 PM

Interesting, I've been using this skill https://github.com/SawyerHood/dev-browser to save on context and get some more speed. Will try this out!

show 1 reply
999900000999yesterday at 7:25 PM

As someone who's made a good living primarily in UI automation for over a decade, thank you.

It's been an interesting journey.I do think Playwright is the defacto standard now, but Selenium was the original browser driver.

Anyway, how does Vibium compare to Playwright ? Playwright's main advantage is it has official support for multiple languages.

show 1 reply
rahimnathwaniyesterday at 8:58 PM

If an agent gets a copy of the screen using browser_screenshot and then wants to click somewhere on that screen, how is it meant to find the right css selector to pass to browser_click?

There's a browser_find method, but that assumes you already know what type of element it is. But I can't always tell what type of element something is just by looking at a screenshot.

What have I missed or misunderstood?

show 1 reply
moss_dogyesterday at 6:49 PM

I'd love to be able to lock down the browser to only allow certain URLs (e.g. localhost) so I can give Claude (and other tools) carte blanche to use browser automation (rather than manually approving each command). Is this something on your radar / roadmap?

show 3 replies
suchintanyesterday at 6:47 PM

This is very cool. We were thinking about doing something very similar with Skyvern

What was the reason you went down this path instead of extending selenium with AI features?

show 1 reply
hcourayesterday at 7:01 PM

How does it handle context bloat between the browser and the llm?

Any plans of exposing more of the browser? For instance playwright is able to store tracing files the agent may decide to read to understand some requests / payloads…

Any plans on allowing the agent to run an arbitrary js script?

show 1 reply
rancar2yesterday at 6:59 PM

I wasn’t able to gather the future state plans beyond what’s noted in the V2 plans:

https://github.com/VibiumDev/vibium/blob/main/V2-ROADMAP.md

What’s next 5 years look like given that you are very good at building long-term projects that last and evolve through time? And for a very specific example, what’s the plan for incorporating new standards like Agent Skills as they quickly evolve and launch?

show 1 reply
nivekneyyesterday at 7:19 PM

Aside from the project itself, I am learning a lot just from reading the commits. Mostly about the process when one knows how they'd do it.

https://github.com/VibiumDev/vibium/commits/main/?after=ffc3...

show 2 replies
anamexisyesterday at 6:34 PM

My number one question would be how it compares to Playwright -- differences in design goals, capabilities, advantages and disadvantages.

show 1 reply
didiptoday at 2:49 AM

And this handles login sessions, cookies, etc.? So much of the modern web is now hidden behind login sessions.

christophilusyesterday at 6:10 PM

Nice. I was just thinking of building this very thing. Glad to see I won’t have to. I’ll check it out after the holidays.

show 1 reply
captainregexyesterday at 7:53 PM

entirely possible I’m just really bad at this stuff but I can’t get browser agents to do simple report pulls without running into a captcha or a dropdown menu that breaks its brain. hopefully this is the one!

show 1 reply
badlogicyesterday at 7:21 PM

Neat. Any reason why the MCP server doesn't expose a JavaScript/eval tool? Current models excel at writing JS to drive and inspect the DOM. They aren't great at driving browsers via screenshots.

show 2 replies
j2kunyesterday at 8:38 PM

Is this something you use to generate static browser tests that no longer use the LLM? Or would you need to use the LLM every time you run the tests?

show 1 reply
pryelluwtoday at 12:46 AM

Any plans to support local models through llama.cpp or similar?

show 1 reply
jstummbilligyesterday at 11:25 PM

Cool. Can this currently be used with codex in the same way?

show 1 reply
jeff4f5da2yesterday at 7:51 PM

Since it's in go, wouldn't it be great if it also expose go api?

show 1 reply
ripped_britchesyesterday at 7:20 PM

What is the benefit of using this instead of playwright?

show 1 reply
OutOfHereyesterday at 9:19 PM

I will wait for full Python and Go support.

show 2 replies
mannanjyesterday at 6:50 PM

Hi this looks really valuable, thanks for developing and sharing. Would you share some use cases and how you or your users use it personally? would love to see some examples and feel the aha "That's how I'd like to use it too!" and it would help me drive and se the problems I have as being solvable by this too rather than seeing a tool/solution looking for a problem. (not implying you're that, but without examples/use cases that's the default way I think)

show 1 reply
michaelsbradleyyesterday at 11:55 PM

Anyone attempting something similar for Qt/QML based apps?

starik36yesterday at 7:50 PM

How do you install it into Claude Desktop? I tried the following, but it fails.

    "vibium": {
      "command": "npx",
      "args": [
        "-y",
        "@vibium/mcp@latest"
      ]
    }
show 1 reply
cboyardeeyesterday at 7:59 PM

[dead]

maximgeorgeyesterday at 6:52 PM

[flagged]