Small repo utilities often start as shell scripts, copied console apps, or commands hidden in a README. File-based C# apps are a good fit when the task benefits from C# and .NET libraries, but a full project would be more structure than the utility deserves.

Use them for migration helpers, data cleanup commands, local diagnostics, one-off API calls, small code generators, repros, and repository maintenance tasks. A single .cs file can live near the workflow it supports and still use packages, arguments, configuration, and normal .NET APIs.

The key is scope. File-based apps are best when the tool has one clear job. If it grows into shared infrastructure, needs tests, has multiple commands, or becomes part of the product build, convert it into a normal project.

Keep these utilities visible and boring. Put them in a predictable folder such as tools or scripts, document how to run them, and avoid mixing them into existing project directories where SDK and build configuration can become surprising.