Skip to content

Repository files navigation

ImageXpert private reverse image search workspace

ImageXpert

Version License Platform

Buy me a coffee on Ko-fi

If this project helps you, a coffee helps me keep working on it.

Open ImageXpert · Download the latest release · See what's changed

ImageXpert is a private reverse image search workspace that runs in your browser. Drop in a photo, inspect its local fingerprints, then choose where to search. The original file stays on your device unless you explicitly authorize a temporary public upload.

No account. No server to maintain. Nothing gets uploaded behind your back.

Why use it?

  • Search 12 services from one review queue, including Google Lens, Yandex, Bing, TinEye, SauceNAO, TraceMoe, and IQDB.
  • Calculate SHA-256, pHash, and dHash locally before anything leaves the browser.
  • Review batches, spot likely duplicates, crop a region, or extract frames from a short video.
  • Save investigations as portable case files. Searchable history and settings stay in browser storage.
  • Send an image from the right-click menu with the Chrome, Edge, or Firefox companion.
  • Work in English or Spanish. ImageXpert is also installable as a PWA and keeps its local shell available offline.

See the workflow

These are real ImageXpert screens. The bridge photo and example case records are synthetic demo data created for the screenshots. No outside search provider received the image.

Inspect before searching

ImageXpert local image analysis with hashes and preprocessing

ImageXpert reads file facts and perceptual hashes locally. Rotate, crop, trim a caption strip, or select a specific region before sending a search.

Choose each destination

ImageXpert per-engine reverse search dispatch queue

Each engine gets its own queue entry and status. Manual-only services are clearly marked, so a blocked popup or unsupported handoff never disappears silently.

Keep useful investigations nearby

ImageXpert searchable history and privacy settings

History, cases, language, and custom engines live in the same workspace. Metadata-only history export removes URLs, thumbnails, filenames, and query text.

Privacy model

Mode What leaves your device When to use it
Local file Nothing Hashing, duplicate review, preprocessing, C2PA inspection, and case work
Public image URL The URL is sent to the engines you select The image is already public and directly reachable
Temporary upload Your processed image is uploaded to litterbox.catbox.moe for one hour, then its public URL is sent only to approved engines A provider needs a reachable URL and you're comfortable sharing the file

Local-only mode is the default. Temporary upload consent lasts for the current browser session and names the engines that will receive the link. Expired links can't be redispatched.

Start using ImageXpert

The hosted app needs no install:

Open ImageXpert

To run it from a local checkout:

python -m http.server 8765

Then open http://127.0.0.1:8765/. index.html is the app entry point. The older ImageXpert.html address remains as a redirect for saved bookmarks.

Browser companions

The companions add Send image to ImageXpert to the browser's image context menu. They don't inject scripts into pages, read browsing history, or collect analytics.

Chrome and Edge

  1. Download ImageXpert-Chrome-v1.3.1.zip or ImageXpert-Edge-v1.3.1.zip from the v1.3.1 release.
  2. Extract the archive to a permanent folder.
  3. Open the browser's extensions page and enable Developer mode.
  4. Choose Load unpacked, then select the extracted folder.

Chrome users can also install the self-hosted ImageXpert-Chrome-v1.3.1.crx. The ZIP remains the primary package because Chrome may restrict direct CRX installs outside managed environments.

Firefox

On Firefox 142 or newer, download ImageXpert-Firefox-v1.3.1.zip, open about:debugging#/runtime/this-firefox, choose Load Temporary Add-on, and select manifest.json from the extracted archive. Firefox removes temporary add-ons when the browser closes.

MediaHunter userscript

MediaHunter_Lite.user.js adds a small media collection panel to supported stock and reference sites. Install the versioned file from the latest release with Tampermonkey or another compatible userscript manager.

MediaHunter userscript permissions

The script uses storage for its local queue and preferences, opens selected results in new tabs, copies links on request, and downloads files you choose. Network access is limited to the supported source domains listed in the script header. Requests use anonymous mode, and the script doesn't transmit cookies through its download helper.

Build and verify

ImageXpert has no runtime dependencies. Packaging and tests use Node.js plus the Windows copy of bsdtar.

npm run package
npm test

Packaging produces the website archive, unpacked browser bundles, a verified CRX3 package, the versioned userscript, and SHA-256 checksums. The test suite exercises modules, release contracts, exact mobile widths, accessibility behavior, and the app in a real headless browser.

Engine URLs change occasionally. Check their current deterministic contracts with:

npm run check:engines

C2PA support

ImageXpert includes a local-only adapter boundary for Content Credentials inspection. A deployment can provide globalThis.ImageXpertC2PAAdapter contract version 1 using @contentauth/c2pa-web 0.8.3 or newer. The adapter must run in a worker and support cancellation. ImageXpert reports signature validity separately from credential trust and won't fetch provenance code at runtime.

Current limits

  • Reverse search providers control their own upload forms, rate limits, and popup behavior. ImageXpert can't guarantee that an external service accepts every dispatch.
  • Biometric search may be restricted where you live. Review local law and each provider's policy before using a face search engine.
  • C2PA inspection needs a compatible same-origin adapter. Without one, the app reports the feature as unavailable and continues normally.
  • The Firefox companion is distributed as an unsigned temporary add-on. Persistent installation requires Mozilla signing.

Project map

  • index.html, app.css, and app.js contain the dependency-free browser app.
  • modules/ holds the controllers for media, dispatch, cases, history, settings, uploads, and provenance.
  • extension/ contains the MV3 browser companions.
  • MediaHunter_Lite.user.js is the optional userscript.
  • scripts/ builds and verifies release packages locally.
  • tests/ covers unit behavior, release contracts, and browser smoke checks.

License

ImageXpert is available under the MIT License.

About

Private, browser-based reverse image search with local hashes, batch review, 12 engines, and right-click companions.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages