Is Sider: Chat with all AI: GPT-5, Claude, DeepSeek, Gemini, Grok safe?
We analyzed Sider: Chat with all AI: GPT-5, Claude, DeepSeek, Gemini, Grok version 5.33.0's actual code and gave it a 55/100 trust score. This is a…
Bottom line
This is a powerful all-sites AI extension with tracking and code-execution concerns, but the supplied evidence does not prove theft or remote control.
What it can access
It can read or alter content on every website and requests access to browser cookies and open tabs. That supports its reading and writing features, but its reach is far broader than needed for a single-site tool.
Signs of misuse
It sends usage measurements and a lasting device identifier outside the browser. It also turns text into runnable code, but the evidence does not show that downloaded text is run or that cookies, passwords, or page contents are taken.
Code findings
What access does this extension ask for, and does that access make sense for what it claims to do?
It requests access across all websites, including the ability to read or change page content, view browser cookies and tabs, and optionally capture a tab. Page access fits an AI reading and writing sidebar, but all-site access and cookie access are broader than the stated purpose clearly requires.
Declares host permissions `https://*.openai.com/` and `<all_urls>`; content scripts match `<all_urls>` in all frames; permissions include `cookies`, `tabs`, `scripting`, `userScripts`, and optional `tabCapture`. — manifest.json:1
Which websites can it run on, and can it read or change what appears on those pages?
It can read or change pages on broadly matched websites after any required approval.
Host permissions allow requests or privileged browser access, sometimes after later approval, for: https://*.openai.com/, <all_urls> — manifest.json:1
Content scripts run directly on: https://www.google.com/search*, https://www.google.ad/search*, https://www.google.ae/search*, https://www.google.com.af/search*, https://www.google.com.ag/search*, https://www.google.com.ai/search*, https://www.google.al/search*, https://www.google.am/search* — manifest.json:1
The scripting permission allows code injection on approved host-permission sites. — manifest.json:1
activeTab grants temporary access to the current page after a user action. — manifest.json:1
Can it see sensitive information you type, such as passwords, payment details, messages, or form entries?
The extension injects scripts into all URLs and therefore can access page content and form fields, but the available evidence does not show whether it captures passwords or other typed entries. The source is large and generated/minified, so this cannot be treated as safe.
The extension has <all_urls> host access and content scripts configured for all URLs and all frames. — manifest.json:1-12
The manifest grants scripting, activeTab, tabs, and userScripts permissions, which support reading or interacting with web-page content. — manifest.json:1-12
Can it access private browser data such as cookies, signed-in sessions, browsing history, bookmarks, or downloads?
It requests access to private browser data: cookies, tabs.
The manifest requests: cookies, tabs — manifest.json:1
Can it access anything else on your device, such as files, location, camera, microphone, clipboard, or installed applications?
It requests access outside ordinary web pages: tabCapture.
The manifest requests: tabCapture — manifest.json:1
Does it send information outside your browser? If so, what information is sent, where does it go, and why?
The extension is designed to send user-provided content to external AI and extension-service endpoints, including OpenAI and other AI providers, for chat, search, reading, writing, and related features. The supplied evidence does not identify every destination or precisely establish which data is transmitted in each mode.
The manifest explicitly allows access to https://*.openai.com/ and all web origins, enabling external network interactions. — manifest.json:1-12
The description says the extension provides chat with multiple AI services and AI search, reading, and writing, which requires sending relevant prompts or selected/page content to remote services. — manifest.json:1-12
The extension includes broad content scripts on all URLs, allowing page text or user-selected content to be collected for those features. — manifest.json:1-12
Does it download or run code, settings, or instructions supplied by a remote server?
The manifest permits extension pages and sandbox pages to load broad remote content, including scripts and workers. The available evidence does not show whether runtime code or instructions are actually fetched and executed, so this cannot be confirmed from the manifest alone.
The extension CSP allows localhost script loading and a sandbox policy with script-src/connect-src broadly allowing remote, data, blob, filesystem, and WebSocket sources. — manifest.json:1-1
The package declares sandbox pages, including repl-sandbox-runner.html, where script execution is permitted. — manifest.json:1-1
Can it take actions without a clear user request, such as opening pages, redirecting searches, downloading files, or sending requests?
The extension is configured to act across nearly all websites and to modify search-result pages, and it has permissions for tabs, scripting, downloads-like sandbox behavior, cookies, and network rules. The manifest alone does not prove every action occurs automatically, but it demonstrates substantial ability to act beyond a narrowly initiated request.
Content scripts run on <all_urls> in all frames, including at document start and document end. — manifest.json:1-1
A content script is installed on Google and many other search-engine result pages, enabling search-page modification or redirection. — manifest.json:1-1
Permissions include tabs, scripting, userScripts, cookies, contextMenus, sidePanel, alarms, and declarativeNetRequest. — manifest.json:1-1
The sandbox CSP explicitly allows popups, downloads, and popups escaping the sandbox. — manifest.json:1-1
Can it change important browser settings, including your proxy, search engine, homepage, privacy settings, or other extensions?
No evidence was found in the manifest or package for this capability.
Is any important behavior difficult to inspect because the code is hidden, heavily obfuscated, dynamically generated, or supplied by third parties?
Some packaged behavior is difficult to inspect automatically.
This file is heavily minified into an unusually long line. — alert-window.js:8
This file is heavily minified into an unusually long line. — all-frames.js:236
This code contains a dynamic or remotely sourced execution mechanism. — all-frames.js:262
This file is heavily minified into an unusually long line. — answer-compare.js:271
Does it use eval(), new Function(), or string-based timers to turn text into executable code?
The extension directly uses `eval()` to compile text into executable JavaScript. The text is assembled into a function body, so this is actual code execution rather than a logging or diagnostic reference.
Constructs `expression_function=eval("[function _expression_function(){"+val+";scoped_bm_rt=$bm_rt}]")[0]`, executing the variable `val` as JavaScript. — content-all.js:19
Contains the same dynamic `eval()` construction, compiling `val` into an expression function. — content-script.js:17
Uses `eval("[function _expression_function(){"+val+";scoped_bm_rt=$bm_rt}]")[0]` to execute animation/expression text. — answer-compare.js:271
Contains the same text-to-function `eval()` pattern in the YouTube embed content script. — content-youtube-embed.js:155
Does it track the websites, pages, searches, or links you visit?
The extension sends usage events to Google Analytics and can include the current tab identifier for some events. The code also has access to page context, but the reviewed analytics path does not demonstrate a complete history of every site or link visited.
Defines a Google Analytics Measurement Protocol endpoint and sends events with a persistent client_id; the report helper builds event names and parameters. — background.js:117,147-148
The tts reporting path obtains lastTab and lastVoiceRole, then submits an event containing the tab-related value. — background.js:147-148
Content-side code contains the same Google Analytics endpoint and forwards events through googleAnalytics, confirming telemetry is used outside the background service. — all-frames.js:145,157
The manifest grants tabs and <all_urls>/content-script access, enabling the extension to operate across visited pages; this permission alone does not prove full browsing-history collection. — manifest.json:1
Does it create a persistent ID or browser fingerprint to recognize you?
The extension creates a random device identifier, saves it in extension storage, and reuses it across sessions. It sends that identifier to the extension’s service for anonymous login and related recognition; this is a persistent service ID, not evidence of a browser fingerprint.
Reads `sider_event_device_id` from extension storage; if absent, generates a value, stores it, and uses it as both `device_id` and `uuid` in `/v1/user/login/device_id`. — background.js:147-148
The same persistent identifier flow is present in the bundled client code: retrieve stored device ID or generate one, then submit it to the extension service. — all-frames.js:157
Exposes the stored device ID to extension-integrated page functionality through a `get-device_id` request and returns it as `clientId` in user information. — content-all.js:524-548
Does it send cookies, session details, authentication data, or page contents elsewhere?
The extension has broad access to cookies and all webpages, and its bundled code is heavily minified/generated. The available source excerpt does not reliably trace cookies, authentication data, or page contents to an external destination, so safe handling cannot be established.
The manifest requests the cookies permission, tabs access, scripting, and <all_urls> host access, allowing the extension to access sensitive browser and webpage data if its code uses those capabilities. — manifest.json:1-125
The file is a large bundled/minified artifact containing generic library and polyfill code; the cited LocalStorage, innerHTML, document.body, and Authorization matches are not sufficient to demonstrate that user data is transmitted anywhere — alert-window.js:1-220
Does it record typing, form entries, clipboard contents, or screenshots?
The package includes tab-recording functionality and code that can capture the visible tab, but the supplied evidence does not establish whether screenshots or recordings are stored or transmitted. Keyboard-handler matches are not enough to show keylogging, and no representative source evidence proves clipboard or broad form-entry collection.
The extension declares optional tabCapture permission and a Record-Tab command, indicating user-invoked tab recording capability. — manifest.json:1
The bundled file contains the Chrome tabs.captureVisibleTab API, which can obtain a screenshot of the visible tab; the cited generated line does not show its call site or destination. — all-frames.js:1
The cited matches are keyboard-event identifiers in a very large generated bundle. They do not, by themselves, demonstrate recording or transmission of typed characters. — all-frames.js:157, 499-500
Can a website or remote server send commands that make the extension take actions?
The available source is heavily bundled into single-line files, and the relevant listener/action flow could not be reliably traced. The manifest shows broad privileges, but that alone does not prove that a website or server can command the extension.
The bundled service worker includes the runtime messaging polyfill, including support for external messaging, but the available line is too large and minified to identify a verified listener, origin check, command dispatch, or resulting API — background.js:1
Does it alter links, referral codes, advertisements, shopping carts, or search results?
No reliable evidence shows the extension changing users’ links, referral codes, advertisements, shopping carts, or search results. The cited code is bundled/generated content-processing code that reads or constructs links for extracted content rather than modifying live shopping or search pages.
The cited bundle contains embedded extractor/library code. Its link-related operations include converting extracted Twitter links to text and constructing footnote links in generated content; these are not demonstrated modifications to the‘ — all-frames.js:1-10
Does it redirect or modify web traffic, request headers, downloads, or proxy settings?
The manifest grants broad access and declarative network-request permission, but the supplied source evidence does not clearly demonstrate active request/header rewriting, proxy changes, or download interception. It does demonstrate that the extension can navigate tabs in some flows.
The extension requests <all_urls>, tabs, and declarativeNetRequest permissions, which enable broad page access and potential network-rule handling but do not alone prove that traffic is modified. — manifest.json:1-12
The available source is heavily bundled/minified, and the cited line contains bundled library/polyfill code; no reliably traceable redirect, request-header modification, download interception, or proxy-setting operation can be established — background.js:1
Can it communicate with software on the computer or services running on localhost?
The package contains indicators of local communication, but the available evidence does not show an actual call to native software or a localhost service. The matching `sendNativeMessage` text appears in bundled API/runtime code, and the cited localhost references were not sufficiently traced to a network action.
The extension pages CSP permits `http://localhost:8097/`, which indicates possible development or local-service connectivity but does not itself prove a request is made. — manifest.json:1-1
The manifest does not declare the `nativeMessaging` permission, so the package metadata does not establish usable native-messaging access. — manifest.json:1-1
A bundled runtime API definition contains `sendNativeMessage`, but this is not evidence of an invocation or of a native host name/message. — background.js:1
The same bundled runtime API definition contains `sendNativeMessage`; no traced call destination or payload is available from the cited evidence. — all-frames.js:1
Does it decode, decrypt, or unpack hidden data and then execute or inject it?
No reliable evidence was found that hidden or decoded data is subsequently executed or injected. The cited matches are in minified bundled/library code, and their surrounding behavior cannot be safely traced from the available evidence.
The cited fromCharCode match is within a large minified bundle dominated by bundled polyfills and libraries; no attributable decode-to-execution or decode-to-injection flow is demonstrated. — alert-window.js:1-12
The available excerpt does not show eval, Function construction from decoded data, script injection, or DOM injection receiving data from the cited conversion. — alert-window.js:1-12
Can ordinary websites access privileged extension features through messaging or exposed files?
The manifest exposes many extension resources to every website, but the supplied evidence does not establish that ordinary sites can invoke privileged extension APIs. External-message matches were only search hits, not verified handlers or actions.
The extension has broad host permissions and sensitive privileges including cookies, tabs, scripting, storage, and side-panel access. — manifest.json:15-31
The manifest injects content scripts into numerous ordinary websites, including an all-URLs script elsewhere in the manifest. — manifest.json:69-220
The package context states a web_accessible_resources declaration matching <all_urls>; its exact declaration could not be independently traced in the available source review. — manifest.json:1
Does suspicious behavior activate only for certain users, websites, dates, or remote settings?
No source evidence shows suspicious behavior being selectively enabled for particular users, dates, or remote settings. The cited “variant” and “Experiment” matches are bundled UI/library terminology, not activation gates.
The matches are minified animation/UI-library code using “variants”; they do not identify users, websites, dates, remote configuration, or trigger suspicious behavior. — alert-window.js:1, 162, 170
The matches are unrelated HTML/math or animation-library code; no conditional activation logic tied to user identity, site, date, or remote settings is demonstrated. — all-frames.js:106, 138, 536
Does it perform hidden resource-intensive work, such as cryptocurrency mining?
No evidence shows cryptocurrency mining or other hidden resource-intensive computation. The WebAssembly code repeatedly initializes a `Hash` module for application data processing, not a mining loop or mining-pool connection.
The WebAssembly module is instantiated and exposes `Hash_GetBuffer` and `Hash_Init`, indicating hashing/buffer processing rather than an autonomous mining task. — background.js:123
The same WebAssembly pattern is used in a content script: instantiate a module, obtain a hash buffer, initialize it, and process input bytes. — content-all.js:524
The manifest declares extension functionality such as AI sidebar, recording, storage, and page integration, but no mining-related component or external mining resource. — manifest.json:1-125
Does it change form fields or where a form sends its information?
No evidence shows the extension changing a webpage form’s fields or submission destination. The cited matches are bundled UI-library code handling extension inputs, not page-form rewriting.
The .submit-related search match is not present in the reviewed source context; the nearby code implements a React text-input component and updates its own controlled value. — standalone.js:2778
The reviewed code contains generic input/textarea handling, including value updates and event callbacks, but no webpage form action assignment or form submission routing. — standalone.js:2750-2800