funnyapp.org Mac apps, funny first
HandleLens app icon: a lime-green magnifying glass with an @ symbol inside, on a dark green rounded square

Catalogue 01 · Utilities & research

HandleLens

One username. 180 websites. A verdict for each, with the evidence still attached.

  • US$6.99 one-time
  • Free: 3 usernames
  • macOS 12+ · universal
  • Version 1.1.0
  • 23 MB DMG
  • English & 简体中文
Download HandleLens 1.1.0 DMG · 23 MB (22,984,386 bytes) · macOS 12 or later · Apple silicon & Intel

SHA-256 2abb8369c81267883fe4239718fda9cf37c35c409c9e5223599f3e39bbd825aa · signed with a Developer ID certificate and notarised by Apple · checksums

The HandleLens window: a batch of two usernames on the left, torvalds results in the middle showing found, blocked and no-answer verdicts per site, the scan-scope selector, and the check-details pane on the right
Two handles in one batch. Every row carries its own verdict; the right pane holds the request behind it.
The premise & the work

Why this is in the catalogue

Every app here has to pass the same five rules. Here is how HandleLens passes the first two.

The joke

“Is this name taken?” — asked of 180 websites at once, from a laptop, while the other tabs keep loading.

The work

A scan is a set of ordinary public-page requests and nothing more. HandleLens records what it asked, what came back, how long it took, and which rule produced the verdict — so a surprising result can be checked instead of believed. A site that blocks automated requests is reported as blocked, never as “this person does not exist”.

What it does

Eight things, in one window

No account, no dashboard, no cloud queue. The batch, the results and the exports stay on the Mac.

One handle, or a batch

Paste a list separated by commas or new lines. Each username keeps its own results, so a second handle never overwrites the first. A local History tab remembers the last 50.

45 core sites, or all 180

The core set is the fast pass — developer, social and community sites where a handle usually surfaces. Widen to the full curated catalogue, 12 categories, when you need the long tail.

Five verdicts, not two

Found, not found, blocked, unclear and no answer are separate outcomes with separate colours. The difference between “absent” and “refused to answer” is the whole point of the app.

The evidence pane

Select any row to see the exact URL requested, the HTTP status, the elapsed time, the detection rule and a link to the profile. Screenshot it for a report; nothing is hidden behind a tooltip.

Filter and export

Filter by verdict, site name, category or core-only. Export the batch as CSV, JSON, or a self-contained HTML report that opens anywhere, with no server and no stylesheet to fetch.

A command line

handlelens ships inside the app and uses the same catalogue, scanner and licence: JSON output, fixed exit codes, the same reports. Built for scripts — and for AI assistants that can run Terminal commands.

Two languages

The whole interface is in English and Simplified Chinese, switchable at any time. Verdict names and exports follow the chosen language.

Licence offline

A key is an Ed25519 signature checked on your Mac with a public key compiled into the app. Activation makes no request; the private key never ships.

Reading the results

What each verdict means

The distinction people ask about first: “not found” and “could not tell” are not the same sentence.

HandleLens verdicts
VerdictWhat happenedWhat it proves
Found The site returned a valid public profile for that username. The profile exists now. A link is one click away.
Not found The site answered normally and said there is no such profile. At the moment of the scan, that handle was free on that site.
Blocked The site refused the request or served a browser challenge. Nothing about the account — try again later, or open the link yourself.
Unclear The page came back, but its content does not settle the question. Unknown. The rule that ran is shown, so you can judge it.
No answer The request timed out or the connection failed. Nothing. A network problem is not evidence about a person.
By hand X, Facebook, VK and Minds cannot be checked without a signed-in session. Nothing, until you open the link. These rows are never counted as found or missing.

This is what a row carries

A real hit from the developer category, copied out of the details pane: the request, the status, the timing, the rule, and the profile URL. Nothing about the verdict depends on trusting the app's opinion of itself.

GET  https://gitlab.com/api/v4/users?username=gaearon
HTTP 200 · 765 ms
rule  the site returned a valid profile
link  https://gitlab.com/gaearon
Free and licensed

Three usernames, then one payment

The free count is stored on this Mac and applies to usernames, not scans. Checking a handle again is always free.

Editions
EditionWhat you getPrice
Free Checks 3 usernames in total across the full 180-site catalogue. Re-checking a username you already checked is free. Every filter, every export format and the whole interface — the free edition is not a demo with pieces removed. US$0
Licensed Unlimited usernames, unlimited batches, and the handlelens command line. One person, one key, no expiry, verified offline. US$6.99 once

Buy a licence — US$6.99, once

Checkout runs at Paddle in your browser. Paddle emails the key; enter it in Settings → Licence and press Activate. The key is also written to license.key in the app's support folder, so it can be copied to a second Mac or removed without opening the app. All 1.x updates are included, and every purchase carries a 14-day money-back guarantee.

Go to checkout
Added in 1.1

Also a command-line tool

Same catalogue, same verdicts, same licence — for scripts, CI, and assistants that can run a shell command.

The tool lives inside the app bundle; there is nothing extra to download. One symlink puts it on your path, and it uses the key the app already holds.

# put it on the PATH (it ships inside the app)
sudo ln -sf "/Applications/HandleLens.app/Contents/Resources/handlelens" /usr/local/bin/handlelens

# one handle across the 45 core sites, JSON per line
handlelens scan torvalds --core --json

# two handles, two sites, and a CSV report as the app would write it
handlelens scan torvalds gaearon --site github,gitlab --out batch.csv
Exit codes
CodeMeaning
0Scan finished and at least one profile was found.
1Scan finished and nothing was found.
2Bad arguments or an invalid handle.
3A licence is required; no request was made.
4The catalogue or the app's preferences could not be loaded.
Privacy

Where the requests actually go

Short version: from your Mac to the sites you picked. Not through us.

Profile checks are yours. Each request goes from your computer to a public profile page on a site you selected, over your own connection. Those sites see your IP address and the username, exactly as they would if you opened the page in a browser.

We receive nothing. No account, no analytics, no crash reports, no handle history. Preferences, the licence key and the free-usage count stay in ~/Library/Application Support/SwordFishSoft/HandleLens. Exports go where you choose.

One request of our own: the optional daily update check for the appcast file, which can be switched off in Settings → General. Licence verification is offline.

Read the full privacy policy →

Before you scan

HandleLens reads public profile pages. It is not a background check, a people-search database, or a way to contact someone without a reason. Use it for research, account recovery, brand and impersonation review, or your own footprint — and respect the terms of the sites you query.

Requirements

The boring details

Everything here is checkable with tools macOS already has.

HandleLens 1.1.0
SystemmacOS 12 Monterey or later · universal binary (Apple silicon and Intel)
Window1200 × 750 by default, 1024 × 640 minimum, resizable
DownloadDMG, 23 MB (22,984,386 bytes) · SHA-256 2abb8369…d825aa
SignatureApple Developer ID, hardened runtime, notarised and stapled
UpdatesSparkle 2.9.6, daily check for the appcast; can be turned off
LicenceEd25519 key, verified offline; no server, no device count
InterfaceEnglish and Simplified Chinese
StoreDirect only — not on the Mac App Store, no account required

Install

  1. STEP 01Open the DMGDouble-click the file you just downloaded. A window with the app and an Applications shortcut appears.
  2. STEP 02Drag it acrossDrop HandleLens into Applications, then eject the disk image. That is the installation.
  3. STEP 03Open itSigned and notarised, so a double-click is enough. Offline and macOS hesitates? Right-click → Open, once.
Release notes

What changed

Updates arrive through the app's own Sparkle feed. Each release is signed, notarised and checksummed the same way.

  • 1.1.0 10 Nov 2026
    • Adds the handlelens command line: same catalogue, scanner, verdicts and licence.
    • --json prints one object per line — result, summary, done — with fixed exit codes; progress and errors go to stderr.
    • --out writes the same CSV, JSON or self-contained HTML report the app exports.
    • Workable from Claude Code, Codex and other assistants that can run Terminal commands.
    • Licence can be entered in the app or with handlelens license activate; without one, help, sites and status still work and a scan stops with exit code 3 before any request.
  • 1.0.0 10 Nov 2026
    • First release: 45 core sites or all 180 curated sites, 12 categories.
    • Batch queue with per-username results; local History of the last 50 checks.
    • Five verdicts with the request and rule behind each; by-hand rows for X, Facebook, VK and Minds.
    • Filter by verdict, category or core-only; double-click a row to open the profile.
    • CSV, JSON and HTML export; free edition of 3 usernames; offline licences.
Try it on three usernames

The download is the demo.

Download HandleLens 1.1.0 23 MB Buy a licence — US$6.99 Free edition: 3 usernames · no account · macOS 12+