Skip to main content

Design principles

These are the rules Stream Manager is built against, so you can check it against the app's behavior or its source code and decide for yourself whether it holds.

Your files are yours#

Your library is made of ordinary folders and files on your own disk. What Stream Manager knows about them lives in a readable JSON file beside them (JSON is a plain text format with basic hierarchy), not in a proprietary database. No telemetry or analysis is performed on your files or other stream-related data. There is nothing to export or migrate, and nothing is obscured. If you delete the Stream Manager app, every media file and detail of your streams is left on your machine untouched.

No account, no analytics, no tracking#

There is nothing to sign up for and nothing tracking how you use the app. The only external request Stream Manager regularly makes on its own is a check against Stream Manager's public GitHub repository for a new version, and you can switch that off in Settings. The one other request it can make happens if a user-prompted or pre-approved request to YouTube fails: the app checks two standard connectivity endpoints to work out whether your internet connection is down or if YouTube is. This request sends nothing about you, and it only runs after a failure.

It only talks to services you connect#

YouTube, Twitch, and Claude are optional, and each one uses credentials you supply yourself: your own Google Cloud OAuth app, your own Twitch login, your own Anthropic API key. Those credentials are encrypted and saved to your disk, tied to your Windows user account, so another account on the same machine cannot read them and a copied settings folder is unusable elsewhere. Your stream details go to those services when you ask for them and not otherwise. Stream Manager has no server of its own for anything to be sent to.

Stream Manager never speaks unless spoken to#

No in-app toasts, no Windows notifications, no "what's new" on launch. Status and errors appear inside the app, next to the thing they are about. Popup notifications can be useful, but they are also an abused surface on your desktop, so Stream Manager is designed to refrain from using them entirely rather than deciding case by case.

When something fails, it says so, and says why#

Failures appear where you are working, with the actual error message rather than a generic "something went wrong" (whenever possible). Nothing fails quietly in the background, and nothing pretends to have succeeded.

Your library survives a crash#

Stream details (_meta.json) are written to a temporary file and swapped into place in a single step, so an interrupted write cannot leave a damaged one. Backups are kept on your machine and restored automatically if a problem is found, and a file that cannot be recovered is preserved beside its replacement. A crash or a power cut during this save process costs at most your last single change. Changes are automatically saved as soon as you make them. Your settings files are written the same way, though the backups above are specific to your library's metadata.

Every release can be traced back to its source#

Each version is built by a public pipeline on GitHub's own infrastructure, straight from the public code, and only publishes if that code passes its checks. The full build log is public and a SHA-256 checksum sits beside the download, so the file you run can be matched to the code that produced it. There is more detail on the About page.

Holding these to account

Adopted September 2026. These principles are kept in the app's public repository, so any change is logged and dated publicly.

If you find something here that does not match Stream Manager's design or behavior, that is a bug and worth reporting. Open an issue on GitHub or get in touch in the Discord server.