SimUtil is a Dart-based terminal UI/CLI for managing iOS simulators and Xcode Derived Data. It wraps `xcrun simctl` to list, boot, shut down, install, launch, and interact with simulator devices, and adds conveniences like showing/cleaning Derived Data. The app is operated entirely from the terminal and stores user preferences in `~/.simutil/settings.yaml`, including a `plugins:` section for custom commands. Architecturally it separates terminal UI components (`lib/components`) from services (`lib/services`) such as `CommandExec` (a shell-command abstraction), `UserConfig` (YAML settings with first-run defaults and scalar merge), and Derived Data helpers. A `tool/generate_changelog.dart` code generator parses `CHANGELOG.md` and emits typed Dart data so the app can show post-update changelog dialogs. Tests cover the changelog generator and config file behavior, and CI runs build/install verification across platforms.