Sidekick

Sidekick — Product Requirements Document

Version: 0.1 (draft) Last updated: 2026-06-16 Owner: cyberhirsch Status: Draft for review


1. Summary

Sidekick is a lightweight Chrome extension (Manifest V3) that bundles several small, independent quality-of-life tweaks for everyday browsing — focused mostly on cleaning up and restoring functionality to Google Search that was degraded by EU regulation (DMA) or by Google’s own UI changes, plus a couple of general browsing-safety helpers.

The guiding principle: every feature is individually toggleable from a single popup with a checkbox. Off by default does nothing; on means it just works. No accounts, no servers, no telemetry.


2. Goals & non-goals

Goals

Non-goals


3. Target users


4. Features

Each feature has a stable id used as the storage key and the checkbox label.

4.1 Master switch (master)

What: A single global on/off at the top of the popup. When off, all features are inert regardless of their individual state. How: Content scripts read master && feature[id] before doing anything. Priority: P0.


Problem: Under the EU Digital Markets Act, Google removed the integrated Maps experience (map thumbnail + the convenient “Maps” tab linking your query straight into Google Maps) from Search in Europe.

What we can do (honest scope):

What we cannot do: Reconstruct the live local map pack with pins and business listings — that data is server-side and not exposed to the extension.

How: Content script on https://www.google.*/search*. Read the query from the q URL param, build the Maps URL, insert an <a> styled to match Google’s nav. Re-run on SPA navigation (Google rewrites results in place). Priority: P0.


4.3 Image size dropdown on Google Images (imageSize)

Problem: Google’s advanced image-size filters (“Larger than N MP”, exact dimensions) are buried/removed from the standard Images UI.

What: Inject a dropdown into the Google Images results toolbar offering:

How: Each option maps to Google’s tbs URL parameter, e.g. tbs=isz:lt,islt:10mp. On selection, rewrite the URL’s tbs param and reload. Detect current selection from the existing tbs value to keep the dropdown in sync. Content script on https://www.google.*/search* where tbm=isch. Priority: P0.


4.4 Tab-hijack / popup blocker (popupBlock)

Problem: Shady sites open a new ad tab (popunder) the first time you click anywhere on the page, often via window.open or hidden target=_blank overlay anchors.

What: Suppress programmatic new-tab/window opens that aren’t a deliberate user navigation, without breaking legitimate “open in new tab” clicks on real links.

How (layered, best-effort):

Trade-offs / risks: Heuristic by nature; may occasionally block a wanted popup or miss an aggressive one. Ships as a clearly-labeled toggle, default ON, with the caveat documented. Real legitimate Ctrl/middle-click new tabs are handled by the browser, not window.open, so those keep working. Priority: P1.


5. Additional feature suggestions (proposed, for prioritization)

These are not yet committed — listed for you to pick from.

Feature Description Effort
“View image” button (viewImage) Bring back the direct full-res image link in Google Images that Google removed in 2018. Low
Strip Google redirect/tracking (cleanLinks) Make Google result links point straight at the destination, removing /url?q= redirects and utm_* params. Low
Hide AI Overview (noAiOverview) Collapse/remove the AI-generated answer block at the top of Search. Low
Hide sponsored results (noAds) Remove “Sponsored” blocks from Search results (light-touch, not a full ad blocker). Low
Auto-dismiss consent wall (autoConsent) Click through Google’s “before you continue” cookie interstitial automatically. Med
Force google.com / region (forceRegion) Redirect google.<cc>google.com/ncr to dodge region-specific removals. Low
Endless scroll (infiniteScroll) Auto-load the next page of Search/Images results on scroll. Med
Strip UTM everywhere (stripUtm) Remove utm_*/fbclid/gclid tracking params from all URLs site-wide. Med
Reverse-image-search button (reverseImage) Right-click or hover button to Lens/reverse-search any image. Med

Recommended first additions: viewImage and cleanLinks (both low effort, high daily value, and thematically consistent with the Google-fixing core).


6. UX / Popup design


7. Technical architecture

Google tbs size mapping (reference for 4.3)

Any size      → (remove isz from tbs)
Larger than N → isz:lt,islt:{n}mp      (n ∈ 2,4,6,8,10,12,15,20,40,70)
Large         → isz:l
Medium        → isz:m
Icon          → isz:i

8. Privacy


9. Milestones


10. Open questions

  1. Maps link: open in same tab or new tab? (Default proposed: same tab.)
  2. Which of the §5 additions make v0.1? (Recommend viewImage + cleanLinks.)
  3. Target only google.com or all google.<cc> country domains? (Recommend all.)
  4. Should the popup blocker default ON or OFF? (Recommend ON, documented.)
  5. Extension name confirmed as “Sidekick”? Any branding/icon preference?