Skip to main content
easybrawto

easybrawto

Simple browser automation via CDP.
Write a .auto script. Run it. Done.
./easybrawto run script.auto

What makes it different

Most automation tools inject JavaScript bridges, use WebDrivers, or leave detectable fingerprints in the browser. Sites that hate bots block them instantly. easybrawto speaks directly to Chrome via the Chrome DevTools Protocol (CDP) — the same internal protocol the browser’s own DevTools uses. It controls a real browser with a real profile. No injection. No wrapper. No driver sitting between you and the browser.

No WebDriver

Connects to Chrome via CDP directly. Zero Selenium, zero Playwright.

Real profiles

Use persistent profiles to stay logged in between runs.

Single binary

Download, chmod, run. No runtime, no npm install, no Python.

Write scripts in your language

Scripts work in English, Portuguese, and Japanese. Same tool, same binary — just write in whatever feels natural.
chrome.persistProfile('my_profile')

functions searchWiki {
  .navigate('https://en.wikipedia.org')
  .waitLoad()
  .insertText('search', 'Crystal language')
  .clickButton('Search')
  .screenshot('result.png')
  .log('Done!')
}

run searchWiki

Honest note

This is a personal project. I’m not a professional developer — I built easybrawto because I needed automation that wouldn’t get blocked, and I wanted something simple enough to write by hand or have an AI write for me. It works for most common tasks. There are probably bugs. If you find one, open an issue or send a PR — I’m still learning Crystal and genuinely appreciate the help.

GitHub →

Source code, issues, and releases