141 points by marcon680 3 days ago | 37 comments
Here's a quick video to show you how it works: https://www.loom.com/share/8d27d0f9e0f34c77a81b0ac770151c12
A couple weeks ago, we needed a way to automatically find 3D assets from the internet for one of our work contracts. We didn’t need an AI to choose all the steps for us autonomously — we knew generally what the flow to find items should be and just needed some intelligence to handle different webpage formats.
Playwright couldn’t easily generalize to the different sites we wanted to search over and Claude computer use was tough to use — it was slow, expensive, struggled to click on the correct web elements, and there was no way to correct its actions if it failed at step 20 of our workflow.
So we built a vision-based solution using vision language models that sits on top of Playwright. In our SDK, building a function that can universally search websites is as easy as this:
from simplex import Simplex
simplex = Simplex(api_key="api_key")
def search(website, search_query):
simplex.goto(website)
simplex.click("the search bar")
simplex.type(search_query)
simplex.press_enter()
search("mit.edu", "alyssa p hacker")
You can play around with what we’ve built and see a few more examples at https://simplex.sh/playground.We'd love feedback!
jackienotchan 3 days ago
[0] https://www.ycombinator.com/launches/Lbx-simplex-on-demand-p...
marcon680 3 days ago
TypingOutBugs 3 days ago
marcon680 2 days ago
RE: workflows w/ complex forms and tabs -- do you have some sites that are good examples of this? We'd love to see how Simplex does.
Mandatum 3 days ago
globnomulous 3 days ago
gashmol 3 days ago
TeMPOraL 3 days ago
globnomulous 3 days ago
TypingOutBugs 3 days ago
IanCal 3 days ago
internet_points 3 days ago
sprobertson 3 days ago
Side-note: The comment for the frequency graph is wrong, it mentions stars instead.
marcon680 3 days ago
One way to hack the scrolling to an element is to first run extract_bbox on a natural language description (in your case for GitHub it might be "follow button") then take the Y coordinate of that element and scroll that number of pixels. I just wrote this bit of code that I tested and it brings the contribution graph into full view:
simplex.goto("github.com/spro")
coords = simplex.extract_bbox("follow button")
simplex.scroll(coords[1])
simplex.wait(2000)
image = simplex.extract_image("green tile graph")
But then it incorrectly picks the code review/submissions/etc. graph as the green tile graph -- we'll look into it!re: frequency graph typo -- just pushed a fix, thanks!
thasaleni 3 days ago
simplex.goto("www.amazon.com")
simplex.wait(2000)
simplex.click('the search bar')
simplex.type("bicycle")
simplex.press_enter()
simplex.wait(1000)
image = simplex.extract_image("first 3 rows of results")
get error: simplex error processing error
marcon680 3 days ago