CLI Tool

Plugin usage analytics for the softwaresoftware marketplace.

Anonymous telemetry ingest service that tracks install, uninstall, and resolve events. Monitor release health and understand how plugins are used.

Know what's happening with your plugins.

Publishing a plugin without telemetry is flying blind. You don't know if installs are succeeding, which plugins are popular, or if a new release is breaking things.

plugin-telemetry collects anonymous events from the softwaresoftware installer — installs, uninstalls, and dependency resolutions — and gives you a dashboard to monitor release health.

$ make start

starting on port 8902...

telemetry service running

$ curl localhost:8902/api/stats -H "Authorization: Bearer $TOKEN"

total events: 1,247

top plugin: gmail-mcp (312 installs)

error rate: 0.8%

How it works.

1

Ingest

The softwaresoftware installer sends anonymous events to the telemetry endpoint on each install, uninstall, and resolve. No PII is collected.

2

Store

Events land in a local SQLite database running in WAL mode. Fast writes, zero external dependencies, single-file storage.

3

Query

Authenticated API endpoints let you query events with filters, get summary stats, see top plugins, and track error rates over time.

Details

Anonymous by design

No usernames, no IPs, no device fingerprints. Events contain only the plugin name, event type, timestamp, and success/failure status.

FastAPI + SQLite

Built with FastAPI and uvicorn. SQLite in WAL mode for the datastore. Lightweight, fast, and runs anywhere Python does.

Three API endpoints

POST events anonymously, GET events with filters, or GET summary stats. Reads require a bearer token; writes are open.

Reverse-proxied via Nginx

Runs on localhost:8902, fronted by Nginx and Cloudflare Tunnel. Public endpoint at telemetry.softwaresoftware.dev.

Run it

Requires Python 3.10+ and pip.

1

Clone the repo

git clone https://github.com/softwaresoftware-dev/plugin-telemetry.git
2

Install dependencies

pip install -r requirements.txt
3

Start the service

make start