Chameleon
loading
live numbers

Where Chameleon actually is

Downloads come from GitHub's release API. Installs come from the app checking in at most once a day. Everything here is a real count of a real thing.

-downloads
-active, 30d
-devices ever
-keys made
-channel trips
-check-ins

Devices seen, last 30 days

One bar per day. A device counts once, however often it opens the app.

daily
-today

Which builds are running

Reported by the app itself at check-in.

no data yet

What Android they're on

API level, as reported by each device.

no data yet

Most common phones

Model strings. These identify a handset model, not a person.

no data yet

Downloads per release

Straight from the GitHub Releases API.

ReleasePublishedDownloads
loading

How this is measured

No invented numbers, and no rounding up either.

Downloads

Read from the GitHub Releases API, which counts every fetch of the APK asset. It does not count a download that was later deleted, and one person can download more than once.

Active devices

The app pings /api/ping at most once a day. Each ping bumps a day bucket, so the 30-day figure means devices seen recently, not check-ins.

Builds and Android versions

Sent by the app in the same check-in. Version is what the user is running; the API level comes from the device itself.

Phone models

Also sent at check-in. Every Pixel 8 reports the same string, so this describes hardware, not people.

Privacy

Only a salted hash of the device id is stored. No key material, no device id, no personal data, no fingerprint beyond that hash.

What is not counted

Nobody is tracked across sites. There is no analytics script, no third-party tracker and no advertising identifier anywhere in the app.

Counters are best effort

Storage updates can be dropped under heavy concurrency. These are honest ballparks for a small project, not audited telemetry.

Early numbers are small

This is a young project with no marketing behind it. Low counts are what low usage looks like, and they are shown as they are.