PUBLISH.md
extension/store/PUBLISH.md
Publishing "Clip to Tesserae" to the Chrome Web Store
The package is store-ready. Two things only you can do gate the actual publish: a Chrome Web Store developer account and the upload itself (dashboard click-through, or API with your OAuth credentials). Steps below.
0. Prerequisites (one-time, you)
Publisher account ID:
4abf11fe-003b-4f3e-8eb9-3e4742b14b07(account identifier only — NOT an API credential and not the item ID; the Web Store API authenticates with OAuth tokens and targets a per-item ID.)
- A Google account registered as a Chrome Web Store developer (https://chrome.google.com/webstore/devconsole) — one-time $5 fee.
- A privacy policy URL. The policy is committed at
extension/PRIVACY_POLICY.md, so once pushed tomainyou can paste its public GitHub URL directly into the dashboard's Privacy practices tab:https://github.com/ca1773130n/Tesserae/blob/main/extension/PRIVACY_POLICY.md(extension/store/PRIVACY.mdis an identical copy bundled with the listing assets.) - At least one screenshot at 1280×800 or 640×400 (see step 1).
1. Build the package
cd extension && zip -rq ../dist/tesserae-clip-v0.1.0.zip . -x '*.DS_Store'
(Already built at dist/tesserae-clip-v0.1.0.zip.)
Screenshot (required by the store)
Load the extension unpacked, start tesserae serve, open the popup on a real article, and capture the popup at 1280×800. Save under extension/store/screenshots/.
2a. Publish via the Dashboard (simplest, recommended for v1)
- Go to the Developer Dashboard → Add new item.
- Upload
dist/tesserae-clip-v0.1.0.zip. - Fill the listing from
extension/store/listing.md(name, summary, description, category, single-purpose, permission justifications). - Fill the Privacy practices tab from the "Data usage disclosures" section of
listing.md, and paste your privacy-policy URL. - Upload the 128×128 icon (already in the zip) and your screenshot.
- Choose visibility — Public, Unlisted, or Private — and Submit for review. Google review typically takes hours to a few days.
2b. Publish via the API (for repeat releases / CI)
The first item is easiest to create in the dashboard (2a) to obtain its extension ID. After that, automate with chrome-webstore-upload-cli.
Set these secrets (never commit them):
export CWS_EXTENSION_ID=... # from the dashboard URL after first create
export CWS_CLIENT_ID=... # Google Cloud OAuth client (Chrome Web Store API enabled)
export CWS_CLIENT_SECRET=...
export CWS_REFRESH_TOKEN=... # obtained once via the OAuth consent flow
Then run extension/scripts/publish.sh (uploads the zip and submits for review).
To mint a refresh token: create an OAuth client (type "Desktop"/"Web") in Google Cloud, enable the Chrome Web Store API, and exchange an auth code for a refresh token (see the chrome-webstore-upload-keys helper). Provide those four values to me and I can run the publish for you.
Notes / known gaps before a polished public launch
- The generated mosaic icon is clean but basic — swap in a designed icon if you want a stronger store presence.
- This extension only works alongside a local
tesserae serve; the listing description states that requirement so reviewers/users aren't surprised.