fetchext is designed to scale from single-user usage to enterprise deployment and repository management.
We provide an official Docker image for containerized usage.
docker run --rm -v $(pwd):/app/downloads ghcr.io/grok/fetchext download chrome <url> -o /app/downloadsYou can build the image yourself using the provided Dockerfile:
docker build -t fetchext .Keep a local folder synchronized with a list of required extensions. This is ideal for maintaining an approved list of extensions for an organization.
fext mirror extensions_list.txt --output-dir ./repo --pruneList Format:
chrome <id>
firefox <url>
edge <id>
You can host your own Chrome/Edge Update Server or Firefox Update Manifest to serve extensions within a private network.
1. Generate Manifests:
fext update-manifest ./repo --base-url http://internal-extensions.corp.com/This creates update.xml (Chrome/Edge) and updates.json (Firefox).
2. Serve the Repository:
fetchext includes a simple HTTP server for testing or light usage:
fext serve -d ./repo -p 80803. Configure Browsers: Point your enterprise policies (GPO / MDM) to your internal update URL:
- Chrome/Edge:
ExtensionInstallForcelistpointing tohttp://.../update.xml - Firefox:
ExtensionSettingspointing tohttp://.../updates.json
Audit extensions committed to your repository for security risks and MV3 compatibility.
Add this to your .pre-commit-config.yaml:
- repo: https://github.com/grok/fetchext
rev: v1.6.0
hooks:
- id: fext-audit
- id: fext-scanYou can use fetchext in GitHub Actions to automatically download and analyze extensions.
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- run: pip install fetchext
- run: fext audit my-extension.crx