Skip to main content
🤖AI-generated documentation curatedAI Generated
This page was drafted by an AI assistant and may contain inaccuracies. This content has been reviewed by a human curator.
Curator notes: Should link 'convivial tool' reference to Ivan Illich's definition of the term. Prob also should reference the 4 Freedoms definition of Free Software too.
About content generation types
🤖
AI GeneratedPage drafted entirely by AI from codebase or prompt instructions.
(e.g., docs generated from codebase analysis)
← this page
✋→🤖
AI TransformattedHuman provided raw material; AI restructured it into a different format.
(e.g., livestream → blog post, meeting notes → docs)
Human GeneratedPage written entirely by a human author.
(e.g., hand-written tutorial)
More info about content generation types ↗

Telemetry

SkellyCam collects anonymous usage telemetry to help the development team understand how the software is used. Telemetry is managed by the skellypings package.

The tension

There is an inherent tension between building a free, convivial, non-extractive tool and the incontrovertible value of usage data. SkellyCam is open-source and community-driven — we have no interest in surveillance or data monetization. But as a small team, we genuinely need to know basic things like: how many people are using SkellyCam, what operating systems and hardware they're running, and whether certain features are being adopted. Without this information, we're flying blind when making development decisions.

Also, seeing that people are acutally USING this tool is one of the main thing that adds gas to the emotion tank that we draw from to build it. Its hard y'all!

We take this tension seriously and aim to collect the minimum data needed to make informed decisions, with full transparency about what is sent.

What Is Collected

An app_opened event is sent at startup containing anonymous system specifications. No camera data, recordings, or personally identifiable information is collected.

Example ping

Here is a representative example of the data sent on each app_opened event, along with the IP address of the computer that sent it:

{
"event": "app_opened",
"app_name": "skellycam",
"app_version": "2.1.0",
"system": {
"os": "Windows",
"os_version": "10.0.22631",
"architecture": "AMD64",
"cpu_count": 16,
"total_ram_gb": 32.0,
"python_version": "3.12.4"
}
}

We recognize that different users have different comfort levels with telemetry. Future versions of SkellyCam aim to implement a gradient consent model, giving users fine-grained control over what they share:

  • Existence ping — One Ping Only. A single anonymous "hello, I exist" ping at startup. No system details.
  • System fingerprint — Basic hardware and OS information (what is currently collected). Helps us understand what platforms to prioritize and track OS-specific errors.
  • Usage analytics — UI interactions, button clicks, feature adoption. Helps us understand which features are used and which need improvement.

Each level would be independently toggleable, with clear explanations of exactly what is sent at each tier. The goal is to respect user autonomy while making it easy for those who want to help improve the software.

Opting Out

Telemetry is enabled by default. To disable it, either:

  • Toggle telemetry off in the Settings page in the UI, or
  • Edit ~/skellycam_data/telemetry_config.json:
{
"telemetry_enabled": false
}

The setting takes effect on the next server start and will be remembered as long as that telemetery_config.json exists on that path