Freedom251 › Browser Automation Tools
Ferrum

What Ferrum is
Ferrum is an open-source Ruby API for controlling Chrome on Linux. It connects through the Chrome DevTools Protocol, without Selenium, WebDriver, or ChromeDriver dependencies. The library can navigate pages, find elements with CSS or XPath, and send mouse and keyboard input. It runs headlessly by default, with an option to run headfully. Capture methods save or return screenshots, PDFs, and MHTML, while JavaScript methods evaluate expressions and execute scripts in pages. Ferrum also lists controls for network activity, cookies, headers, frames, and dialogs. The documentation describes it as thread-safe, with browser and page contexts usable across threads, and supports proxy settings. Ruby 3.1 or later is required, along with Chrome or Chromium available on PATH or configured through BROWSER_PATH. Ferrum is released under the MIT License and can be self-hosted. Cuprite connects it to Capybara, and Vessel builds crawling features on Ferrum and Mechanize.
Who it suits
Ferrum suits Ruby developers automating Chrome on Linux who want direct Chrome DevTools Protocol access. It also fits teams needing screenshots, PDFs, JavaScript execution, proxies, or thread-based browser contexts.
What it does well
- Open-source under the MIT License
- No Selenium, WebDriver, or ChromeDriver dependency
- Supports CSS and XPath element finding
- Captures screenshots, PDFs, and MHTML
- Described as fully thread-safe
What to know first
- Linux platform listed
- Requires Ruby 3.1 or later
- Requires Chrome or Chromium installed
- One browser engine listed
Verdict
Ferrum provides a direct Ruby interface to Chrome automation with broad navigation, input, capture, and JavaScript controls. Its Linux focus and requirement for Ruby plus a browser should guide setup decisions.
Facts from Ferrum's own pages
- Browser automation
- Ferrum supports page navigation, CSS and XPath element finding, and mouse and keyboard input. · docs.rubycdp.com, 5 Oct 2026
- Browser modes
- Ferrum runs headless by default and can be configured to run with a visible browser window. · github.com, 11 Oct 2026
- Browser protocol
- Ferrum connects to Chrome through the Chrome DevTools Protocol and does not depend on Selenium, WebDriver, or ChromeDriver. · github.com, 11 Oct 2026
- Features
- The project website lists navigation and finders, screenshots, mouse and keyboard control, network, cookies, headers, JavaScript, frames, and dialogs. · ferrum.rubycdp.com, 11 Oct 2026
- Integrations
- Cuprite is a Capybara driver built on Ferrum, and Vessel is a web crawling framework based on Ferrum and Mechanize. · github.com, 11 Oct 2026
- JavaScript
- The documentation provides methods to evaluate JavaScript expressions and execute JavaScript in a page. · docs.rubycdp.com, 5 Oct 2026
- License
- Ferrum is available as open-source software under the MIT License. · github.com, 11 Oct 2026
- Linux browser setup
- The documentation advises downloading Chrome or Chromium from its official source because it says there is no official Chrome or Chromium package for Linux. · docs.rubycdp.com, 5 Oct 2026
- Page capture
- Its capture methods can save or return screenshots, PDFs, and MHTML. · docs.rubycdp.com, 5 Oct 2026
- Protocol
- It connects to Chrome through the Chrome DevTools Protocol without a Selenium, WebDriver, or ChromeDriver dependency. · docs.rubycdp.com, 5 Oct 2026
- Proxy support
- Ferrum accepts proxy settings for a browser or for pages created in separate contexts. · docs.rubycdp.com, 5 Oct 2026
- Purpose
- Ferrum provides a high-level Ruby API to control Chrome and automate browser tasks. · ferrum.rubycdp.com, 11 Oct 2026
- Requirements
- Ferrum requires Ruby and Chrome or Chromium; the browser binary must be available on PATH or specified with BROWSER_PATH. · github.com, 11 Oct 2026
- Ruby version
- The published gem requires Ruby version 3.1 or later. · rubygems.org, 11 Oct 2026
- Support
- The project welcomes bug reports and pull requests on GitHub. · github.com, 11 Oct 2026
- Thread safety
- The project website says Ferrum was designed to be thread safe and that each page can be maintained independently through a dedicated websocket. · ferrum.rubycdp.com, 11 Oct 2026
Where Ferrum stands on Freedom251
- Browser Automation Tools#47 of 62
