The sqz Chrome extension compresses context in ChatGPT, Claude.ai, Gemini, Grok, and Perplexity. It is published to the Chrome Web Store.
- Rust toolchain with
wasm32-unknown-unknowntarget wasm-pack- Node.js + webpack (for bundling content scripts)
- A Chrome Web Store developer account ($5 one-time fee)
cd sqz-wasm
wasm-pack build --target web --out-dir ../extension/pkgThis produces sqz_wasm.js and sqz_wasm_bg.wasm in extension/pkg/.
cd extension
npm install
npm run build
# produces dist/ with bundled JS and the WASM fileThe webpack config should copy pkg/sqz_wasm_bg.wasm into the output directory so it is accessible as a web_accessible_resource.
{
"manifest_version": 3,
"name": "sqz — Context Compression",
"version": "0.1.0",
"description": "Compresses LLM context in ChatGPT, Claude.ai, Gemini, Grok, and Perplexity.",
"permissions": ["storage"],
"host_permissions": [
"https://chatgpt.com/*",
"https://chat.openai.com/*",
"https://claude.ai/*",
"https://gemini.google.com/*",
"https://grok.com/*",
"https://www.perplexity.ai/*"
],
"background": { "service_worker": "background.js" },
"action": { "default_popup": "popup/popup.html" },
"web_accessible_resources": [{
"resources": ["pkg/sqz_wasm_bg.wasm", "pkg/sqz_wasm.js"],
"matches": ["<all_urls>"]
}]
}Key rules:
manifest_versionmust be3(MV2 is deprecated)versionmust be bumped for each submission (semver, no pre-release labels)descriptionis shown in the store listing (max 132 characters)- All host permissions must be justified in the privacy disclosure
Zip the built extension directory (not the source):
cd extension/dist
zip -r ../sqz-extension-0.1.0.zip .- Go to the Chrome Web Store Developer Dashboard
- Click Add new item and upload the zip
- Fill in the store listing: description, screenshots (1280×800 or 640×400), promotional tile (440×280)
- Set visibility to Public or Unlisted
- Submit for review (typically 1-3 business days)
Use the chrome-webstore-upload-cli:
- name: Publish to Chrome Web Store
run: npx chrome-webstore-upload-cli upload --source sqz-extension.zip --extension-id $EXT_ID
env:
EXTENSION_ID: ${{ secrets.CHROME_EXTENSION_ID }}
CLIENT_ID: ${{ secrets.CHROME_CLIENT_ID }}
CLIENT_SECRET: ${{ secrets.CHROME_CLIENT_SECRET }}
REFRESH_TOKEN: ${{ secrets.CHROME_REFRESH_TOKEN }}After approval, users can install from:
https://chrome.google.com/webstore/detail/sqz/<extension-id>