Skip to content
SPECIFICTION
Get listed

chromedp

github.com

Free plan WindowsmacOSLinuxAPISelf-hosted
Visit github.com
Spec score 8.5 #2 of 23 in Game Memory Editors

What it is

chromedp is a Go package for driving browsers that support the Chrome DevTools Protocol without an external driver. It runs Chrome headlessly by default and supports actions such as navigating, clicking, reading page text, running JavaScript, filling forms, and waiting for elements. Its examples also cover cookies, HTTP headers, proxy authentication, request interception, session restoration, and HAR recording. For output, it can capture screenshots, print pages to PDF, and save screencast frames as JPEG files. Separate browser contexts can support parallel work, but sharing one context between goroutines can cause races. A separate remote module connects to an already-running browser over WebSocket, and the project provides a headless-shell Docker image. By default, Chrome communicates over remote-debugging pipes and does not open a debugging port; switching to WebSocket uses one. The package is available under the MIT license at free. The README requires Go 1.27 or newer.

Spec sheet

What it does
chromedp is a Go package for driving browsers that support the Chrome DevTools Protocol, without an external driver.Read 4 Oct 2026 · github.com
Purpose
chromedp is a Go package for driving browsers that support the Chrome DevTools Protocol, without an external driver.Read 9 Oct 2026 · github.com
Security
By default, chromedp starts Chrome with remote-debugging pipes, so Chrome opens no debugging port.Read 4 Oct 2026 · github.com
Support
The project directs questions and feature suggestions to GitHub Discussions and Discord, and reserves the issue tracker for bugs.Read 9 Oct 2026 · github.com
License
The repository identifies its license as MIT.Read 9 Oct 2026 · github.com
Automation
It supports browser actions such as navigation, reading page content, running JavaScript, clicking elements, filling forms, and uploading files.Read 9 Oct 2026 · github.com
Browser actions
Its examples cover navigation, clicking, reading page text, running JavaScript, filling and submitting forms, and waiting for elements.Read 4 Oct 2026 · github.com
Browser connection
By default it starts Chrome and communicates over pipes; a separate remote module supports connecting to an already-running browser over WebSocket.Read 9 Oct 2026 · github.com
Compatibility
The current module requires Go 1.25 or newer.Read 9 Oct 2026 · github.com
Concurrency
Multiple contexts sharing one browser can run in parallel in separate tabs, but a single context should not be shared between goroutines.Read 9 Oct 2026 · github.com
Headless mode
It runs Chrome headlessly by default, and can use the chromedp/headless-shell container image in headless environments.Read 9 Oct 2026 · github.com
Integration
The project provides a headless-shell Docker image for running chromedp in a headless environment.Read 4 Oct 2026 · github.com
Network
Its examples cover setting cookies and HTTP headers, proxy authentication, request interception, session restoration, and HAR recording.Read 9 Oct 2026 · github.com
Network features
Examples show setting cookies and HTTP headers, using a password-protected proxy, intercepting requests, and saving or restoring login sessions.Read 4 Oct 2026 · github.com
Output
It can capture screenshots, print pages to PDF, emulate devices, and save screencast frames.Read 9 Oct 2026 · github.com
Remote browsers
The separate remote module can connect to an already running browser, including one in a container or hosted service, over a WebSocket.Read 4 Oct 2026 · github.com
Requirements
The README says the module requires Go 1.27 or newer.Read 4 Oct 2026 · github.com
Security detail
The default pipe connection does not open a Chrome debugging port; switching to WebSocket uses a debugging port.Read 9 Oct 2026 · github.com
Security limitation
The README says disabling Chrome site isolation can enable access to some cross-site iframe content, and advises doing so only for trusted pages because it turns off a Chrome security feature.Read 9 Oct 2026 · github.com

Plans and prices

chromedp Free MIT-licensed Go package · requires Go 1.25 or newer Read 9 Oct 2026 · github.com

Every chromedp plan and price →

Strong points and limits

Strong points

  • Drives Chrome without an external driver.
  • Supports screenshots and PDF output.
  • Can intercept requests and restore sessions.
  • Default pipe connection does not open a debugging port.
  • MIT-licensed and free.

Limits

  • Requires Go 1.27 or newer.
  • Sharing a context across goroutines can cause races.
  • WebSocket connections use a debugging port.

Who it suits

chromedp suits Go developers who need browser automation using the Chrome DevTools Protocol. Its remote module and Docker image may also suit work with already-running or headless browsers.

chromedp in depth

Read the full write-up

chromedp brings Chrome DevTools Protocol browser control into Go applications, making it a strong fit for developers building scripted browser workflows. Its range spans page actions, network controls and output capture; concurrent work and remote connections require more care.

Overview

Instead of a standalone automation interface, chromedp is a Go package that drives compatible browsers without an external driver. That makes it useful when browser steps need to live alongside Go application logic, but a poor fit for readers who want to build workflows through a visual, no-code tool.

Chrome runs headlessly by default, and a headless-shell Docker image supports headless environments. The default connection uses remote-debugging pipes, so Chrome opens no debugging port. A separate remote module connects to an already running browser—including one in a container or hosted service—over WebSocket, which uses a debugging port. The choice matters: the pipe route avoids exposing that port, while remote access needs deliberate attention to the debugging endpoint.

Key features

The examples cover the core interactions expected in browser automation: navigation, clicking, reading page text, running JavaScript, filling and submitting forms, and waiting for elements. Network handling adds cookies, HTTP headers, password-protected proxies, request interception, login-session saving and restoration, and HAR recording. This makes chromedp suitable for workflows where page behavior and request handling both need to be controlled from Go.

For output, it can capture screenshots, print pages to PDF, and save browser screencast frames as JPEG files. Those options make it useful for capture and document-generation tasks as well as interaction scripts, without requiring a separate browser driver.

Concurrency calls for discipline. Separate browser contexts can serve as tabs for parallel work, but sharing one context between goroutines can cause races. Teams should keep contexts distinct rather than assume a shared browser session is safe to manipulate concurrently.

There is also a security caveat around site isolation: disabling Chrome site isolation can expose a security feature, and should be limited to pages you trust. Combined with the distinction between pipe and WebSocket connections, this is a tool for developers prepared to make browser and deployment choices explicitly.

Pricing

chromedp is free: its plan costs nothing and provides an MIT-licensed Go package. There is one browser engine, and a self-hosted option is available. The package requires Go 1.27 or newer; there is no paid tier or trial to weigh against the free option. Its zero price makes it accessible for projects that can supply the Go environment and browser setup, but it does not change the engineering work involved in building and maintaining automation in code.

Platforms

chromedp is available for API use and on Linux, macOS and Windows, with a self-hosted option. The headless-shell Docker image is suited to headless environments. Its Go-version requirement is an important compatibility check before adopting it in an existing project.

Who it's for

Choose chromedp when a Go project needs programmatic control of a Chrome DevTools Protocol browser, especially when the workflow includes network handling, session restoration or screenshots and PDFs. It is less suitable for non-developers seeking a graphical automation builder, or for teams that cannot manage context isolation and the security implications of a remote debugging connection.

Questions and feature ideas belong in GitHub Discussions, bugs in the issue tracker, and chat in Discord. The repository uses the MIT license.

Pros and cons

Pros: Browser actions, network controls and capture outputs cover a broad range of Go automation tasks without an external driver.

Pros: The default pipe connection opens no debugging port, and the headless-shell Docker image supports headless deployment.

Pros: Free, MIT-licensed use avoids a software subscription.

Cons: The Go 1.27-or-newer requirement rules it out for projects on older Go versions.

Cons: Sharing a context across goroutines can cause races, so parallel work needs separate contexts.

Cons: Remote WebSocket connections use a debugging port, and disabling site isolation can expose a security feature.

Alternatives

For browser automation choices, see Browser Automation Tools. The other linked options are game memory editors, not direct substitutes for browser automation: Game Memory Editors provides a category view. Pick MemDBG, DOSBox Cheat Engine, ReClass.NET, CoSMOS, ProMod, scanmem, Squalr or Game Cheetah when the task is game memory editing rather than browser control.

Verdict

For Go developers who need browser automation embedded in an application, chromedp is a compelling free option: it combines interaction, network handling and output capture, with a secure-by-default pipe connection. Choose another approach if you need a visual workflow builder, cannot meet the Go requirement, or cannot keep concurrent contexts and remote debugging access carefully managed.

Verdict

chromedp offers a broad set of browser automation and output functions for Go, with a default pipe connection and a separate WebSocket option for remote browsers. Check the Go version requirement and context-sharing warning when planning parallel work.

Where Specifiction places it

Alternatives to chromedpAll alternatives →