Local-first Chrome MV3 extension

Reverse-engineer image prompts from any web image.

PromptLens is a local-first Chrome extension that analyzes web images or selected screenshot regions with your own OpenAI-compatible Vision API.

  • No PromptLens backend.
  • Bring your own API key.
  • Works from right-click or screenshot selection.

Chrome Web Store listing is planned.

PromptLens structured prompt result page
PromptLens context menu actions
PromptLens options page for model configuration

Features

Analyze images from the browser, then copy structured prompt output.

PromptLens stays lightweight: no account system, no bundled model service, and no build step.

Right-click image analysis

Analyze web images directly from the browser context menu.

Screenshot selection

Use Alt+Shift+S on Windows/Linux or Option+Shift+S on macOS to select a visible page region when images are protected, embedded, or hard to access.

Bring your own model

Use any OpenAI-compatible Vision API by configuring your Base URL, API key, and model.

Structured prompt output

Get Chinese prompts, English prompts, tags, negative prompts, JSON prompts, and raw JSON.

Visual marketing diagnosis

Turn commercial visuals into owner-friendly summaries, marketing diagnosis, low-cost adaptation briefs, and Markdown case drafts.

Interface languages

Choose Chinese or English UI copy for options, history, and result workflows.

ChatGPT Plus Assist

No API key? PromptLens can open ChatGPT, wait for the page to settle, then attempt to attach the prepared local JPEG and fill the instruction for you to review and send manually.

How it works

Three user-triggered steps.

1

Select an image

Right-click a web image or select a visible screenshot region with Alt+Shift+S on Windows/Linux or Option+Shift+S on macOS.

2

Process locally

PromptLens validates, crops, compresses, and normalizes the image in your browser.

3

Call your API

The prepared image is sent directly to your configured OpenAI-compatible Vision API.

Accurate data boundary: PromptLens has no backend. Images are only sent when you trigger analysis, and they are sent directly to the AI API endpoint you configure.

Product screenshots

Built for quick browser workflows.

Analyze from the context menu

Analyze from the context menu

Start from a right-click action on a web image or the current page.

Configure your own provider

Configure your own provider

Set your OpenAI-compatible Base URL, API key, model, and image preferences.

Copy structured prompt results

Copy structured prompt results

Copy fields individually, export JSON, or download Markdown from the result page. Marketing diagnosis exports can become publishable case drafts.

ChatGPT Plus Assist handoff

ChatGPT Plus Assist handoff

Open ChatGPT, wait for the page to settle, attach the prepared image, and fill the instruction for manual review.

Privacy-aware

Local-first by design. No PromptLens backend.

PromptLens stores your configuration in your browser. The extension does not run a backend service, does not provide a default proxy, and does not collect telemetry.

Read the full Privacy Policy
  • API keys stay in chrome.storage.local.
  • Analysis runs only after user action.
  • Images are sent directly to your configured API endpoint.
  • Optional history is off by default.
  • When enabled, history stores source image/page URLs locally for recall.
  • No image thumbnails are saved in history.

Permissions

What PromptLens requests and why.

These permissions match the current Chrome MV3 manifest.

Permission Why PromptLens uses it
contextMenus Adds right-click actions for image analysis and screenshot selection.
storage Stores API configuration, templates, local history settings, and temporary input state in the browser.
activeTab Supports current-tab screenshot capture after the user starts screenshot selection.
scripting Injects the screenshot selection overlay into the active page after user action.
Optional <all_urls> host permission Optional site access requested only when needed to read remote images or access the user-configured API origin; it is not a required install-time site permission.

User-triggered: activeTab and scripting are used only when you start screenshot selection.

No background scanning: PromptLens does not continuously inspect pages in the background.

Optional site access: You can refuse remote image read permission and use screenshot selection instead.

Install

Get PromptLens before the Chrome Web Store listing is available.

Use the latest release package or follow the source install instructions.

Download from GitHub Releases

Chrome Web Store listing is planned.

Load from source

  1. Download or clone the repository.
  2. Open chrome://extensions.
  3. Enable Developer mode.
  4. Click Load unpacked.
  5. Select the extension folder.

FAQ

Common questions.

Does PromptLens provide an AI model or API key?

No. PromptLens is a frontend-only extension. You bring your own OpenAI-compatible Vision API endpoint, API key, and model.

Does PromptLens upload images to its own server?

No. PromptLens does not operate a backend server. When you trigger analysis, the selected image data is sent directly from your browser to the API endpoint you configure.

Where is my API key stored?

Your API key is stored locally in Chrome extension storage. It is not sent to PromptLens, but browser-local storage is not a hardware security vault. You should only use this extension on devices and browser profiles you trust.

Does PromptLens save image history?

Local history is off by default. When enabled, it stores text results, source domain, source image URL, page URL, template metadata, and structured output in IndexedDB. It does not save image thumbnails. Source URLs may include signed query parameters or private path details, so keep history disabled or clear it if you do not want that local metadata retained.

Why does PromptLens request optional site access?

Remote image analysis may require optional permission to read image URLs from websites. This is not a required install-time site permission. You can skip this and use screenshot selection instead.