Privacy Policy

Last updated: 2026-07-28

Last updated: 2026-07-28

1. Overview

ImgX operates in two modes:

ImgX also offers an opt-in (default off) local usage statistics feature: when enabled, it counts analysis runs and mode switches locally only, never uploads them. See §2.2.

This document explains what data ImgX processes, how, and what rights you have. Differences between modes are noted per section.


2. What We Collect

2.1 Data You Provide

DataStoragePurposeTransmissionMode
API Endpointchrome.storage.localVision API addressSent only to your configured endpointBYOK
API Keychrome.storage.localVision API authSent only as an HTTP header to your endpointBYOK
Model namechrome.storage.localVision model selectionSent to your endpointBYOK
Login emailSupabase Auth + chrome.storage.local (session)Cloud mode identity & credit attributionOTP email sent to this address via Resend; email stored in SupabaseCloud

2.2 Local Runtime Data

DataStorageRetentionPurpose
Analysis history & queuechrome.storage.localShared cap of 50 entries (evicts oldest done/failed by addedAt; pending prioritized)Offline review / batch progress
URL reverse indexchrome.storage.localSynced with historyRecall history on hover (no API call)
Classifier diagnostic logchrome.storage.localFIFO 100 entriesDebug classifier accuracy; host only, no full URL
Custom prompt templateschrome.storage.localPermanent until deletedCustom system prompts
Local usage statschrome.storage.local30 days daily + total (opt-in, off by default)Counts analyses & mode switches; local only, never uploaded
Cloud login sessionchrome.storage.local (key imgx_cloud_session)Until logout or token expiryStores access token, refresh token, user ID & email for Cloud auth
Cloud session tokens are stored only in the local browser, never synced across devices, and cleared by Chrome on uninstall.

2.3 Cloud Mode Server-Side Data

When signed into Cloud mode, Supabase (ImgX's backend) records:

DataStorageRetentionPurpose
Credit accountSupabase Postgres (imgx_credit_accounts)Until account deletionCurrent balance & lifetime granted credits
Analysis request recordSupabase Postgres (imgx_analysis_requests)Metadata auto-purged after 90 daysRequest ID, status, model, timestamp for billing & idempotency. Rows deleted after 90 days (sufficient for reconciliation); ledger kept separately
Success result cacheSame table, result_data fieldAuto-cleared after 24 hours (set to null)Idempotent replay: a repeated request within 24h returns the cached result without re-charging. Stores only the prompt text (bilingual + structured), never the original image
Credit ledgerSupabase Postgres (imgx_credit_ledger)Until account deletionEach grant / debit / refund with amount & reason; for reconciliation & abuse prevention
No image pixel data is stored server-side. Request records contain only metadata and 24h prompt text.

2.4 Temporarily Processed Data

DataProcessingRetentionMode
Image contentScaled to base64 and sentReleased immediately after processing; original not persistedBoth
Page URLRecorded as sourcePageUrl on enqueueStored in local history; deleted with historyBoth
Image base64 via WorkerIn Cloud mode, base64 is proxied through Cloudflare Worker to the model providerWorker does not persist or log image content; released when the request ends; logs are scrubbedCloud

2.5 What We Don't Collect

In either mode, ImgX:


3. Authentication & Credit Security (Cloud Mode)

Google Sign-In

Google Sign-In is optional. It requests only the standard OpenID email address and basic profile information. ImgX uses this data only to create or sign in to your ImgX account and attribute Cloud credits. ImgX does not access Google Drive, Google Photos, Gmail, or other Google content, and does not use Google account data for advertising, image analysis, or model training.


4. Image Content


5. Network Requests

5.1 BYOK Mode

Vision API request

Image proxy request

5.2 Cloud Mode

OTP email (on sign-in)

Worker requests (when signed in)

Supabase Auth requests


6. Third-Party Services (Cloud Mode)

Cloud mode involves these third-party services, each governed by its own privacy policy:

ServicePurposeData receivedData center
SupabaseAuth + Postgres databaseEmail, credit ledger, analysis request records (metadata + 24h prompt text)ap-southeast-1 (Singapore)
CloudflareWorker edge proxyImage base64 (proxied, not persisted), Supabase user ID, request metadataEdge nodes
ResendOTP email deliveryRecipient email, verification codePer its terms
Model provider (currently SiliconFlow Qwen3-VL)Image analysisImage base64 + server-side-fixed system promptProvider's region
In BYOK mode, images go directly to your configured endpoint and do not pass through the Cloud path above.

7. Permissions

PermissionRequiredPurpose
storageRequiredSettings, history, queue, Cloud login session
activeTabRequiredCurrent tab context
contextMenusOptionalRight-click menu "ImgX - Image to Prompt"
scriptingRequiredInject result card into page
clipboardWriteOptionalOne-click copy of prompts
alarmsRequiredQueue engine periodic scheduling
(host permission)RequiredSee below

Why is required

ImgX's core feature is "hover any image -> analyze". This requires operating on all websites you visit: 1. Inject content script (detect image hover) 2. Read image pixel data (via Canvas) 3. Cross-origin load images (via Service Worker proxy)

Hence content_scripts matches http://*/* and https://*/*. This is industry standard for image-analysis extensions. ImgX does not use this permission to read page text, forms, or send any data without user action.


8. Data Export & Deletion

8.1 Local Data

ActionLocationEffect
Export historyQueue panel -> ExportDownload JSON (all analysis records)
Import historyQueue panel -> ImportMerge JSON records into local
Clear historyQueue panel -> ClearDelete all history + URL index
Clear queueQueue panel -> ClearDelete all done/failed queue items
Sign out of CloudSettings panel -> Sign outClear local Cloud session (server-side ledger unaffected)
Uninstall extensionChrome -> Extensions -> RemoveChrome auto-clears all chrome.storage.local data

8.2 Cloud Server-Side Data

Signing out of Cloud only clears the local session--it does not delete your Supabase credit account or request history. To fully delete Cloud server-side data (account deletion):

1. Email [email protected] with the login email you want deleted (do not post your email in a public GitHub Issue, to avoid exposing your address) 2. An admin runs a one-shot cleanup script to delete all data for that email: - All records in imgx_credit_accounts, imgx_analysis_requests, imgx_credit_ledger - The Supabase Auth user account 3. After deletion, the email can register again (granted fresh first-time credits)

A future version will add a self-service "Delete account" button in the extension; MVP is admin-assisted.

9. Changes

This policy is updated as ImgX evolves. Material changes will be announced in-app (changelog or banner).


10. Contact

For privacy questions or to request Cloud account deletion, email [email protected]:

中文版

最后更新:2026-07-28

最后更新:2026-07-28

1. 概述

ImgX 提供两种工作模式:

  • - BYOK 模式(默认):你在设置里填自己的 Vision API Key 与 endpoint,图片从浏览器直接发往你配置的 endpoint,不经过任何开发者控制的服务器。你的数据全程留存在本地,扩展不向你之外的任何人转发。
  • - Cloud 模式(可选,opt-in):你用邮箱验证码登录后,使用 ImgX 提供的免费额度。此模式下图片会经 ImgX 的 Cloudflare Worker 代理转发到模型服务商,并在 Supabase 上记录你的邮箱、额度账本与分析请求。Cloud 模式是为了让没有 API Key 的用户也能试用;BYOK 永久保留,登录不是必须的。

此外 ImgX 还提供一个 opt-in(默认关闭)的本地使用统计 功能:开启后仅在本地累计分析次数与模式切换次数,绝不上传,用于产品改进决策。详见 §2.2。

本文档说明 ImgX 处理哪些数据、如何处理、以及你有权做什么。两种模式的数据处理差异在对应章节标注。


2. 我们收集什么

2.1 你主动提供的数据

数据存储位置用途对外传输适用模式
API Endpointchrome.storage.local指定 Vision API 地址仅发往你配置的 endpointBYOK
API Keychrome.storage.localVision API 鉴权仅作为 HTTP Header 随请求发送到你的 endpointBYOK
模型名称chrome.storage.local选择 Vision 模型仅随请求发往你的 endpointBYOK
登录邮箱Supabase Auth + chrome.storage.local(session)Cloud 模式身份验证、额度归属验证码邮件经 Resend 发往该邮箱;邮箱地址存于 SupabaseCloud

2.2 扩展运行时产生的本地数据

数据存储位置保留策略用途
分析历史与队列chrome.storage.local统一上限 50 条(超出按 addedAt 优先淘汰 done/failed,待办优先保留)离线查看 / 批量分析进度管理
URL 反向索引chrome.storage.local与历史同步(清历史即清索引)悬停已分析图片时召回历史(不发 API)
分类器诊断日志chrome.storage.localFIFO 100 条(超出自动淘汰最早的)调试自动分类器准确性,仅存 host 不存完整 URL
自定义 Prompt 模板chrome.storage.local永久(除非用户删除)自定义系统提示词
本地使用统计chrome.storage.local30 天 daily + total(opt-in,默认关)累计分析次数与模式切换次数,仅本地、绝不上传
Cloud 登录会话chrome.storage.local(键名 imgx_cloud_session直至登出或 token 失效存放 access token、refresh token、用户 ID 与邮箱,用于 Cloud 模式鉴权
Cloud 登录会话中的 token 仅存于本地浏览器,不跨设备同步,扩展卸载时由 Chrome 自动清理。

2.3 Cloud 模式在服务端产生的数据

登录 Cloud 模式后,Supabase(ImgX 的后端服务)会记录以下数据:

数据存储位置保留策略用途
额度账户Supabase Postgres(imgx_credit_accounts保留至账户注销记录当前余额与累计赠送额度
分析请求记录Supabase Postgres(imgx_analysis_requests元数据 90 天后自动清理记录请求 ID、状态、所用模型、时间戳,用于额度结算与防重放。90 天后自动删除请求行(对账窗口足够),账本流水另行保留
成功结果缓存同上表的 result_data 字段24 小时后自动清空(置 null)幂等重放:同一请求 24h 内重复发送时不重复扣费,直接返回缓存结果。该字段只存模型返回的 Prompt 文本(中英双语 + 结构化字段),绝不存原始图片
额度账本流水Supabase Postgres(imgx_credit_ledger保留至账户注销记录每次赠送 / 扣减 / 退款的金额与原因,用于对账与防刷
服务端不存储任何图片像素数据。请求记录里只有元数据与 24h 内的 Prompt 文本结果。

2.4 扩展运行中临时处理的数据

数据处理方式保留适用模式
图片内容缩放为 base64 后发送处理完成后立即释放,不持久化保存原图两种模式
页面 URL入队时记录 sourcePageUrl存于本地历史记录,删除历史即删除两种模式
图片 base64(经 Worker)Cloud 模式下,图片 base64 经 Cloudflare Worker 临时转发到模型服务商Worker 不落盘、不写日志,请求结束即释放;日志已脱敏不记录图片内容Cloud

2.5 不收集的数据

无论哪种模式,ImgX 都:

  • - ❌ 不收集个人身份信息(Cloud 模式仅收集登录所必需的邮箱)
  • - ❌ 不收集浏览历史(仅记录你主动分析的图片所在页面 URL,存于本地)
  • - ❌ 不收集 Cookie、Session(Cloud 模式的 access/refresh token 仅用于自身鉴权,不用于跨站追踪)
  • - ❌ 不收集键盘输入 / 鼠标轨迹 / 表单内容
  • - ❌ 不收集设备指纹
  • - ❌ 不发送分析 / 遥测数据到任何第三方(本地使用统计仅本地累计,不上传)
  • - ❌ 无广告 / 无追踪器
  • - ❌ 不将你的图片用于模型训练

3. 认证与额度安全(Cloud 模式)

Google 登录

Google 登录为可选功能,仅请求标准 OpenID 邮箱地址和基础资料。ImgX 只用这些数据创建或登录 ImgX 账户并归属 Cloud 额度;不会访问 Google 云端硬盘、Google 相册、Gmail 或其他 Google 内容,也不会将 Google 账户数据用于广告、图片分析或模型训练。

  • - 登录采用邮箱验证码(OTP)方式,验证码通过 Resend SMTP 发往你填写的邮箱。
  • - 登录成功后,Supabase 签发的 access token 与 refresh token 仅存于本地 chrome.storage.local,不跨设备同步。
  • - Token 仅用于调用 ImgX Worker 的 /v1/account/v1/analyze 接口,以及直接调用 Supabase Auth 刷新 token。
  • - Cloud 模式下你不需要提供 API Key--模型调用由 Worker 使用服务端密钥完成,你的浏览器永远看不到模型 API Key。
  • - 首次登录赠送 10 次分析额度;额度用尽后 Cloud 模式不可用,但仍可切回 BYOK 模式。
  • - 额度结算原子化:请求开始时预扣,模型失败自动退还,成功才最终扣减。同一请求 24h 内重复发送只扣一次(幂等)。

4. 图片内容

  • - 图片在被分析时才读取其像素数据(缩放至 ≤1536px,JPEG 85% 质量)。
  • - BYOK 模式:图片 base64 从浏览器直接发往你配置的 endpoint。
  • - Cloud 模式:图片 base64 从浏览器发往 ImgX Worker,Worker 临时转发到模型服务商后立即释放,不持久化、不写日志
  • - 处理完成后,原始图片的 base64 数据在所有环节立即释放。
  • - 历史记录中仅存储图片 URL,不存储图片文件本身
  • - 缩略图缓存:队列面板中显示的缩略图由浏览器常规 HTTP 缓存管理,扩展不额外缓存。

5. 网络请求

5.1 BYOK 模式

Vision API 请求

  • - 目标:你配置的 endpoint(默认 https://api.siliconflow.cn/v1
  • - 内容:图片 base64 + 系统提示词 + 用户提示词
  • - 用途:分析图片,生成中英双语 Prompt

图片代理请求

  • - 目标:用户分析的图片的原始 CDN/服务器地址
  • - 触发条件:页面内 跨域加载失败时
  • - 用途:绕开防盗链,保证分析队列能拿到原图数据
  • - 仅携带页面原有的 Referer,不额外发送任何用户标识

5.2 Cloud 模式

验证码邮件(登录时)

  • - 目标:Resend SMTP -> 你的邮箱
  • - 内容:6 位验证码
  • - 用途:邮箱身份验证

Worker 请求(已登录)

  • - GET /v1/account:查询邮箱与剩余额度
  • - POST /v1/analyze:提交图片分析
  • - 目标:https://api.imgxapp.com
  • - 内容:图片 base64 + Supabase access token(用于鉴权与扣费)
  • - 用途:Cloud 模式图片分析

Supabase Auth 请求

  • - 目标:https://pmprjlziwabyryumvnrx.supabase.co/auth/v1/...
  • - 用途:发送验证码、验证登录、刷新 token

6. 第三方服务(Cloud 模式)

Cloud 模式涉及以下第三方服务,各自的数据处理受其隐私政策约束:

服务用途收到的数据数据中心
SupabaseAuth + Postgres 数据库邮箱、额度账本、分析请求记录(元数据 + 24h Prompt 文本)ap-southeast-1(新加坡)
CloudflareWorker 边缘代理图片 base64(临时转发,不落盘)、Supabase user ID、请求元数据边缘节点
Resend验证码邮件投递收件邮箱、验证码其服务条款所在地
模型服务商(当前为硅基流动 Qwen3-VL)图片分析图片 base64 + 服务端固定的系统提示词服务商所在地
BYOK 模式下,图片直接发往你配置的 endpoint,不经过上述 Cloud 路径。

7. 权限说明

ImgX 申请的 Chrome 权限及其用途:

权限必要性用途
storage必需存储设置、历史记录、队列、Cloud 登录会话
activeTab必需获取当前 Tab 上下文
contextMenus可选右键菜单「ImgX - Image to Prompt」
scripting必需向页面注入分析结果卡片
clipboardWrite可选一键复制 Prompt 内容
alarms必需队列引擎周期性调度
(主机权限)必需见下方说明

为什么必需

ImgX 的核心功能是"悬停任意图片 -> 分析"。这意味着扩展需要在用户浏览的所有网站上: 1. 注入内容脚本(检测图片 hover 事件) 2. 读取图片的像素数据(通过 Canvas) 3. 跨域加载图片(通过 Service Worker 代理)

因此 content_scripts 的匹配模式设置为 http://*/*https://*/*。这是 Chrome 扩展开发中图片分析类工具的行业惯例。ImgX 不会利用此权限读取页面文本内容、表单、或发送任何未经用户操作的数据。


8. 数据导出与删除

8.1 本地数据

操作位置效果
导出历史队列面板 -> 导出按钮下载 JSON 文件(所有分析记录)
导入历史队列面板 -> 导入按钮合并 JSON 文件中的记录到本地
清空历史队列面板 -> 清空按钮删除全部历史记录 + URL 索引
清除队列队列面板 -> 清除按钮删除全部已完成/失败的队列项
登出 Cloud设置面板 -> 退出登录清除本地 Cloud 登录会话(不影响服务端额度账本)
卸载扩展Chrome -> 扩展管理 -> 移除浏览器自动清理全部 chrome.storage.local 数据

8.2 Cloud 服务端数据

登出 Cloud 只清除本地会话,不会删除 Supabase 上的额度账户与历史请求记录。如需彻底删除 Cloud 服务端数据(注销账户):

1. 发送邮件至 [email protected],注明需要注销的登录邮箱(请勿在公开渠道如 GitHub Issue 提交邮箱,以免泄露你的地址) 2. 管理员收到申请后,使用一键清理脚本删除该邮箱的全部数据: - imgx_credit_accountsimgx_analysis_requestsimgx_credit_ledger 中的所有记录 - Supabase Auth 中的用户账户 3. 处理完成后该邮箱可重新注册(会再次获得首次登录赠送额度)

未来版本计划在扩展内提供「注销账户」自助按钮,MVP 阶段暂由管理员手动执行。

9. 变更

本隐私政策会随 ImgX 功能更新而修订。重大变更将在扩展内通知(如更新日志或弹窗提示)。

  • - 2026-07-27:注销渠道改为私有邮箱([email protected]),不再要求在公开 GitHub Issue 提交登录邮箱;分析历史与队列存储订正为统一上限 50 条。
  • - 2026-07-26:新增 Cloud 模式(免费额度)相关数据处理披露,包括登录邮箱、额度账本、分析请求记录(元数据 90 天自动清理)、24 小时结果缓存、Worker 代理转发、验证码邮件;注销账户由管理员手动执行(脚本),未来版本提供自助注销。
  • - 2026-07-04:初始版本(纯 BYOK 本地架构)。

10. 联系方式

如对隐私政策有疑问,或需注销 Cloud 账户,请发邮件至 [email protected]

  • - 注销账户:邮件注明需要注销的登录邮箱(请勿在公开 GitHub Issue 提交邮箱,以免泄露地址)
  • - 一般问题 / 反馈:https://github.com/pamler1004/imgx/issues(请不要在 Issue 描述里包含个人邮箱等敏感信息)