Telemetry-Free Software
Passive telemetry is a product decision, not a technical requirement.
- Telemetry isn't required
- Why companies collect telemetry
- Crash reports are different
- Licensing doesn't require a server
- Network access should have a purpose
A code editor can edit files, search projects, highlight syntax, run local AI, and verify licenses without communicating with another computer. That's the approach Koi takes.
Telemetry isn't required
Telemetry is software sending information back to its developers while the application is running. The information collected varies between products, but commonly includes things like feature usage, startup performance, editor configuration, operating system versions, and diagnostic information.
Some products send this information continuously in the background. Others, like Koi, don't collect it at all.
For a code editor, none of the core editing functionality depends on telemetry.
- Opening files doesn't require telemetry.
- Typing doesn't require telemetry.
- Searching doesn't require telemetry.
- Syntax highlighting doesn't require telemetry.
Neither does running a local language model. The core responsibilities of a code editor are entirely local.
Why companies collect telemetry
Telemetry provides information that would otherwise be difficult to obtain.
It helps answer questions like:
- Which features are actually used?
- Which operating systems should be tested more?
- How often does a particular crash occur?
- Which workflows deserve more engineering effort?
From a business perspective, telemetry also provides visibility into how customers use a product. That information influences product planning, engineering priorities, and future development.
Passive telemetry isn't required for a code editor to function.
It exists because the information has value to the company collecting it. That's a perfectly rational business decision.
It just isn't one every developer wants running in the background.
Crash reports are different
A crash report only exists because something went wrong.
On macOS, applications can generate crash reports after a failure, and users can choose whether diagnostic information is sent. The report relates to a specific event rather than continuous background activity.
Continuous telemetry is different. For example, Zed documents that telemetry events are uploaded periodically while the editor is running by default, with settings available to disable telemetry and diagnostics.
Licensing doesn't require a server
Commercial software still needs a way to verify licenses.
Continuous communication with a licensing server is one approach.
Offline cryptographic verification is another.
Koi's approach is offline license verification:
- The application contains a public key.
- A license contains a digitally signed payload.
When the license is entered, the application verifies the signature locally. If the signature is valid, the license is accepted without contacting the vendor.
The application never needs to ask a server whether the license is genuine because the signature already proves it.
Network access should have a purpose
Using the network isn't the problem.
- Downloading updates
- Installing models
- Opening documentation
Those are all explicit actions.
Background communication is different. It happens regardless of whether the developer asked for it.
Telemetry-free software isn't about refusing to use the internet. It's about making every network request intentional.