Scrape websites that load content through JavaScript by driving a real Chrome browser in headless mode.
Take full-page screenshots of any URL in an automated pipeline without a visible browser window.
Write end-to-end browser tests for a web app without setting up a separate WebDriver server.
Fill out and submit web forms automatically in a Go script.
Requires Chrome or Chromium installed on the system, or the headless-shell Docker image.
chromedp is a Go library for controlling a Chrome or Chromium browser from code, without needing any external driver software. It uses the Chrome DevTools Protocol, the same internal protocol that Chrome uses for its developer tools, to send instructions to the browser and read back results. Developers use chromedp for tasks like automated browser testing, taking full-page screenshots, scraping websites that load content through JavaScript, and filling out and submitting forms. Because it talks directly to Chrome without a separate intermediary, it tends to be faster and simpler to set up than alternatives that require running a WebDriver server. By default, chromedp runs Chrome in headless mode, meaning no browser window is shown. This is useful for servers and automated pipelines where a visible browser is not needed. If you do want to see the browser window, that default can be overridden through a configuration option. For containerized environments, a pre-built Docker image called headless-shell is available that packages a stripped-down headless build of Chrome alongside the library. The library is installed through the standard Go package manager and requires no extra dependencies beyond Chrome itself being available on the system. Documentation and examples are hosted on the Go package reference site, and a separate examples repository demonstrates common tasks like authentication flows, file downloads, and handling dynamic content. chromedp is open source and maintained under the chromedp GitHub organization, which also hosts related tools for generating the protocol API and proxying DevTools connections for debugging.
← chromedp on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.