Etaoin is a pure Clojure library that implements the W3C WebDriver protocol for automating major browsers (Chrome, Firefox, Safari, Edge). It provides a comprehensive, idiomatic Clojure API for browser control—navigation, element interaction, JavaScript execution, screenshots, shadow DOM, and more—without requiring Selenium or Java interop. The library also includes a Selenium IDE (.side) file executor, Chrome DevTools performance log parsing, and a rich macro DSL for resource management (with-driver, with-wait, with-postmortem). Internally, it uses multimethod dispatch to handle browser-specific quirks, a generic polling mechanism for waits, and a composable action builder for complex input sequences. The codebase is well-structured, extensively tested across multiple browsers and runtimes (JVM Clojure and Babashka), and provides clj-kondo hooks for linting its macros. It is primarily a library for integration into other projects (UI testing, web scraping, automation), but also offers a CLI entry point for running IDE scripts.
Ui.Vision is a browser extension for Robotic Process Automation (RPA) that provides web and desktop automation capabilities. It features a React/Redux UI with Ant Design, supporting both table-based macros (Selenium IDE compatible) and JavaScript script macros. The extension includes computer vision for image-based automation, OCR functionality, AI-assisted macro creation, and desktop automation through native XModules. It implements a storage abstraction layer supporting browser and file system modes, backup/restore functionality, and an MCP bridge for external AI agent control. The architecture follows web extension patterns with background scripts, content scripts, and a rich UI layer, communicating via IPC mechanisms.