Is AiGrid: Multi-AI Side-by-Side Chat safe?

Medium risk

AiGrid records everything shown and typed in its own pages and sends it to tglens.tabgraf.com.

The extension's popup and login pages load a session recorder (rrweb) with input masking turned off. It captures page snapshots, clicks and typed values, including prompts entered in the chat box and login email and password fields, and uploads them in batches to tglens.tabgraf.com. Recording is limited to the extension's own pages, not the third-party AI sites it displays.

Tabgrafv4.4.0Chrome Web Store
49Risk
Who publishes it

Tabgraf Technologies LLP - 6 other listings from the same operator, 5 of them carrying a finding

What this publisher told the store about itself, and the other listings that told it the same thing.

Publisher
Tabgraf
Declared legal entity
Tabgraf Technologies LLP

Shared hosts - 4 hostnames

Hostnames hardcoded in this extension that few other listings call. That can mean one operator behind both, and it can equally mean a small shared vendor, so it is context rather than a conclusion. Hosts that many listings call are left out: they are services, not connections.

moonshot.ai
Also called by 1 other listing: SelectTranslate: Web & PDF Translator | Free
ofb.net
Also called by 2 other listings, including Quick Tabs
btluke.com
Also called by 4 other listings, including CodeLink AI Browser Extension
mathforum.org
Also called by 4 other listings, including CodeLink AI Browser Extension

AI-generated. Findings may contain errors. Those marked Verified have been manually reviewed.

Publishers can request a review.

Findings

Popup and login pages record unmasked input and send it to tglens.tabgraf.com

Code analysis shows the popup and login pages load a session recorder with input masking off.

It batches DOM snapshots and input events to tglens.tabgraf.com/api/ingest.

Severity
High unwanted
Type
Unexpected
CWE
CWE-359
Source
Static analysis
What actually happens
You did this

You open the extension popup or its login page.

Both pages wrap the app in a shared utility component.

The extension did this

The page loads a session recorder script from the extension package.

The recorder is configured with the tglens.tabgraf.com endpoint.

The code that does this

Recorder injection and recording options

Readable version

Summary

// On mount: append <script id=tgLens src=/tglens.js data-endpoint=https://tglens.tabgraf.com>// rrweb.record({ maskAllInputs: false, maskInputOptions: {} })// worker POSTs {events, meta} to endpoint + '/api/ingest'
Data the recorder can capture on the extension's pages
  • Typed prompts
    Summarise my Q3 contract draft

    Text typed in the multi-AI chat box is recorded unmasked.

  • Login fields
    user@example.com (illustrative)

    Email and password inputs on the login page are recorded unmasked.

  • DOM snapshots
    Full snapshot + incremental mutations

    Full page structure and later mutations of the extension UI.

  • Session id
    random 32-char hex id

    A generated id ties the chunks together.

Where recorded events are sent
    • tglens.tabgraf.com

    Receives batched rrweb event chunks at /api/ingest; also listed in manifest host_permissions.

Observation

Static analysis finding. This behaviour was identified by reading the shipped extension code and has not yet been reproduced in a live run. The trigger conditions and the exact data sent are read from the code, not from an observed capture.

Where it sends data

Destinations our analysis observed AiGrid: Multi-AI Side-by-Side Chat contacting. Sending data somewhere is not a finding on its own - an extension that syncs your settings has to talk to its own server - but it is where your data can go, and who else it goes to.

  • tglens.tabgraf.com

    AiGrid: Multi-AI Side-by-Side Chat sends data to tglens.tabgraf.com. 4 other extensions we have analysed send data here.

Updated 15 October 2026ffifegfhphfkpamoeonjjignebkdaffe