Thanks for proposing this! I like the direction. tuist clean already has the “clean only these categories” path, but the inverse use case is real: “clean almost everything, but keep dependencies” is much easier to express as subtraction.
I asked Codex to help sanity-check this against other CLI conventions, so this reply is partly Codex-generated. The main takeaway was that --exclude seems like the most familiar spelling. For example, git clean already uses -e / --exclude, while -x means something different there, so I’d avoid -x because it can clash with muscle memory from git clean -xdf.
-e / --exclude sounds better than -x / --except to me as well.
I also agree with making positional categories and --exclude mutually exclusive. It keeps the command clear for now and leaves room for cleaner categories later, without forcing users to maintain a long include list.