aboutsummaryrefslogtreecommitdiffstats

extreload

Reload Chrome extensions from the command line. Facilitates Chrome extension development.

Communicates with Chrome over the DevTools Protocol.

Manifest V3

I tried to add support for Manifest V3 extensions in the branch manifest-v3-support, but couldn’t get tab reloading to work properly. Ultimately, I gave up and decided to use the chromedp API rather than lower level JSON over the WebSocket. Manifest V3 support is available in a rewrite of this program, Swextreload.

Usage

Chrome must be started with the --remote-debugging-port flag to enable the DevTools Protocol, and the --silent-debugger-extension-api flag to allow debug access to extensions. On Mac OS X:

$ /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome \
	--silent-debugger-extension-api \
	--remote-debugging-port=0 &

When Chrome is launched, the DevTools Protocol socket URL will be printed to the console. That WebSocket URL must be passed to extreload with the --socket-url argument. For example:

$ extreload \
	--socket-url ws://127.0.0.1:55755/devtools/browser/208ae571-d691-4c98-ad41-3a15d507b656 \
	--reload-current-tab \
	ooeilikhhbbkljfdhbglpalaplegfcmj

Install

On Mac OS X, the program can be installed with Homebrew:

$ brew install teddywing/formulae/extreload

Pre-built binaries for Mac OS X and Linux can be found on the releases page.

Build

I’ve only tested the build with SBCL.

$ git submodule init && git submodule update
$ make build

License

Copyright © 2021 Teddy Wing. Licensed under the GNU GPLv3+ (see the included COPYING file).