Your independent AI shopping agent

Paste an AI shopping recommendation from ChatGPT, Claude, Gemini, or Rufus — or just describe what you're looking for. Lens verifies every claim against live product data, shows the transparent spec-optimal pick, flags confabulations, and checks what other frontier models picked.

Grounded in peer-reviewed research: 18 AI models, 382,000 shopping trials, submitted to Nature. AI shopping assistants pick non-optimal products 21% of the time and confabulate reasons 86% of the time.

The machine behind the audit

Lens is the consumer's independent agent across every point of every purchase.

Every fact Lens shows you is triangulated from at least two independent public sources. No affiliate links. No ranking bias. No proprietary catalog. The schema, the sources, the pipelines, the crons, the agents — all open, all below, all live.

indexed SKUs
categories
data pipelines
healthy now
recalls tracked
regulations in force
price discrepancies caught
brands indexed

Three places Lens protects you

🗣️

When you ask

Active audit. Paste a ChatGPT / Claude / Gemini / Rufus answer, paste a retailer URL, or just describe what you want. Lens runs the 5-stage pipeline below and returns one transparent, slider-tunable card.

🛒

When you shop

Passive protection. The Chrome extension watches every retailer page for dark patterns, hidden fees, fake sales, counterfeits, fake reviews, and breach history. Silent unless there's something worth interrupting for.

🌙

When you sleep

Background monitoring. Cloudflare crons cross-match recalls, price drops, subscription renewals, and firmware advisories against your purchases. Draft letters and claims ready when you wake up.

The data spine

Every claim Lens makes triangulates across multiple independent sources. If one source lies or goes stale, Lens catches it.

Loading live source status…

Triangulation — example

How Lens establishes consensus on a price (same pattern for specs, recalls, reviews).

SourceValueObservedConfidence
Retailer PDP (amazon.com)$249.99live fetchhigh
Keepa 90-day median$239.00hourlyhigh
Manufacturer MSRP (delonghi.com)$249.95weekly sitemaphigh
BLS CPI small-appliance index ±σ$241–258 plausiblemonthlymedium
Wikidata P2284 (price)$2492026-02-15medium
Consensus: $249 ±2%. Any single source deviating >15% fires a discrepancy row and shows a "verify before checkout" flag on the audit card.

The 5-stage audit pipeline

  1. 1

    Extract adaptive thinking

    Parse the user's stated criteria + any cited AI claims into a weighted utility function with per-criterion confidence.

  2. 2

    Search sku_catalog FTS5 + live web_search fallback

    First hit: the indexed SKU spine (shown above). Fallback: Opus 4.7 web_search_20260209 for unindexed categories.

  3. 3

    Verify 1M context

    Every AI claim + every candidate spec loaded in one window. Knowledge packs inject confabulation patterns, dark-pattern regex, regulation citations.

  4. 4

    Rank deterministic math

    U = Σ wᵢ·sᵢ. No LLM. Sliders re-weight live in the UI. Every contribution inspectable.

  5. 5

    Cross-check Claude Managed Agent

    Parallel fan-out to GPT-4o + Gemini + Llama via a separate Worker. Where labs disagree, Lens shows the map.

The 8 agents

Interpreter

Intent extraction from text / voice / image

workflow/specs/audit.ts → extract

Researcher

Live web search + spec retrieval + catalog lookup

workflow/specs/audit.ts → search

Auditor

Claim + dark-pattern + provenance verification

passive-scan + verify

Ranker

Deterministic utility math (no LLM)

workflow/specs/audit.ts → rank

Watcher

Recall / price-drop / firmware / renewal crons

cron/jobs.ts

Advocate

Drafts refund, cancel, and FTC-complaint letters

returns/, subs/, intervention packs

Historian

Aggregates audits → welfare delta + public ticker

ticker/, repo files in db/

Translator

Legal → plain, spec → criterion score

interpreter + auditor prompts

How it stays fresh

Cloudflare Cron Triggers fire the dispatcher. Dispatcher reads data_source, picks ingesters whose cadence is due, runs up to 2 in parallel. Every run is logged to ingestion_run with row counts, error samples, duration.

*/15 * * * *ingest.dispatch · every 15 minutes — rotate through due data sources
7 9 * * *recall.watch · daily 07:09 UTC — match new recalls to purchases
17 */2 * * *price.poll · every 2h — detect price drops inside price-match windows
23 10 * * *subs.renewal-watch · daily — 7-day pre-charge alerts
31 7 * * 1firmware.watch · weekly — CVE + vendor advisory scan
41 * * * *ticker.aggregate · hourly — k≥5 anonymized disagreement buckets
13 6 * * 1pack.maintenance · weekly — validator + enricher + regulation-watcher

Install the companion

Lens ships as three surfaces. Pick the one that fits when you're shopping.

🧩

Chrome extension

One-click "Lens this page" on every retailer site. Captures the full page, Opus 4.7's 3.75 MP vision parses every field even when robots.txt blocks scraping, and the audit drops in-place.

Bonus: silent dark-pattern badges at checkout. Opt-in multi-page shopping session that stitches related visits into one audit.

Load unpacked →
📱

Mobile PWA

Add to home screen on iOS or Android. Share sheet, camera input (photograph a product in the store), push notifications for recalls + price drops on things you own.

Bonus: voice input. Dictate "I need running shoes for marathon training" and Lens does the rest.

Install on phone →
💻

Web dashboard

Paste any AI shopping answer from ChatGPT, Claude, Gemini, Rufus, Perplexity. Lens audits the claims against live catalog data and returns a slider-tunable utility-math ranking in under 20 seconds.

Bonus: profile export, so your preferences move with you.

Open the web app →

How Lens learns your preferences

Five layers, from a single sentence to years of revealed-preference signal. All local unless you sign in to sync.

L1
Goal parsing. Opus 4.7 adaptive thinking extracts weighted criteria from one sentence. 5 seconds.
L2
Adaptive clarification. When confidence is low, Lens asks 2-4 conjoint-style binary tradeoff questions. Converges 5× faster than classical preference elicitation.
L3
Explicit editing. Every weight is a slider. You inspect the math, you move the dials, ranking recomputes live. Your call is final.
L4
Revealed-preference updating. After 5-10 audits, Lens learns from what you actually pick over what it ranked top. If you chose the #2 over the #1, the weight that discriminates them adjusts.
L5
Cross-category transfer. Meta-preferences (durability, repairability, country of origin, ethical supply chain) carry from one category to the next. New category, informed priors.

Shopping-session mode (extension, opt-in)

One click when you start browsing. Lens buffers a session_id across the next few pages you visit, and the multi-page audit surfaces dark patterns that require seeing the whole flow — not just one page.

  • Bait-and-switch: price you saw on the product page ≠ cart subtotal. Lens captured both.
  • Hidden fees: the $49 destination amenity fee only appears at checkout confirmation. Lens has the full chain.
  • Forced continuity: the free-trial dark pattern that auto-upgrades on step 5 of 6. Lens saw step 5.
  • Drip pricing: item A → cart → shipping add-on → service fee → tip → total is 40% higher. Lens has every increment.

Pages in a session are stored only for the session duration (default 30 min). All excerpts pass the per-host consent gate. Revoke any time in extension settings.

Trust posture

  • Open source under MIT. Every source file, every schema, every prompt is public at github.com/FelipeMAffonso/lens.
  • No affiliate links, ever. Every retailer URL Lens returns is scrubbed of ref=, tag=, utm_*, and other monetized-redirect params. Enforced in code.
  • No ranking bias. Utility math is deterministic, inspectable, and slider-tunable. The formula is the spec.
  • Every claim sourced. Every fact has a visible source link + timestamp. If the source goes stale, the claim is flagged.
  • k-anonymity on aggregates. The public disagreement ticker never publishes a bucket with fewer than 5 contributing audits.

Every AI shopping recommendation deserves a second opinion.

Lens is open source, runs on your profile's weights, and never stores your queries. Audit any recommendation in under 20 seconds.

Try an audit now