{"record":{"id":"74780cbda302f379","repo":"kovidgoyal/kitty","slug":"this-must-be-run-as-kitten-desktop-ui","errorCode":null,"errorMessage":"This must be run as kitten desktop-ui","messagePattern":"This must be run as kitten desktop-ui","errorType":"console","errorClass":"SystemExit","httpStatus":null,"severity":"warning","filePath":"kittens/desktop_ui/main.py","lineNumber":57,"sourceCode":")\nopt(\n    '+file_chooser_kitty_conf',\n    '',\n    long_text='Path to config file to use for kitty when drawing the file chooser window. Can be specified multiple times. By default, the'\n    ' normal kitty.conf is used. Relative paths are resolved with respect to the kitty config directory.',\n)\nopt(\n    '+file_chooser_kitty_override',\n    '',\n    long_text='Override individual kitty configuration options, for the file chooser window.'\n    ' Can be specified multiple times. Syntax: :italic:`name=value`. For example: :code:`font_size=20`.',\n)\n\negr()\n\n\ndef main(args: list[str]) -> None:\n    raise SystemExit('This must be run as kitten desktop-ui')\n\n\nif __name__ == '__main__':\n    main(sys.argv)\nelif __name__ == '__conf__':\n    sys.options_definition = definition  # type: ignore\n","sourceCodeStart":39,"sourceCodeEnd":64,"githubUrl":"https://github.com/kovidgoyal/kitty/blob/6d5d0c440603ad9bdf6dcd599f73f6dde21acb44/kittens/desktop_ui/main.py#L39-L64","documentation":"On macOS, kitty failed to obtain the UNUserNotificationCenter singleton because +currentNotificationCenter threw an NSException (kitty/cocoa_window.m:470). This happens when the app has no bundle information - UNUserNotificationCenter refuses to run for processes without a valid bundle identifier, which kitty works around by creating a fake NSBundle.","triggerScenarios":"Calling the notification path (notify cmdline, OSC 99/777 notifications, remote control) on macOS when the bundle-identifier workaround failed - e.g. sandboxed environments, changed kitty bundle layout, or macOS updates tightening the check.","commonSituations":"kitty installed outside an app bundle, running the kitty binary directly from a build dir, macOS security changes, or notification center daemon issues.","solutions":["Run kitty from its proper kitty.app bundle (or a complete brew cask install).","Update kitty to the latest version - the bundle workaround is periodically fixed for new macOS releases.","Check Notifications in System Settings to confirm kitty is listed; toggling its permission can reset the center.","If notifications are unneeded, ignore - kitty falls back gracefully (center is nil)."],"exampleFix":null,"handlingStrategy":"fallback","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":["Launch kitty via its .app bundle, not the raw binary.","Update kitty alongside macOS upgrades.","Check System Settings > Notifications lists kitty."],"tags":["kitty","macos","cocoa","notifications","usernotificationcenter"],"backgroundTag":"notification-center-unavailable","analyzedSha":"6d5d0c440603ad9bdf6dcd599f73f6dde21acb44","analyzedAt":"2026-08-27T14:20:20.142Z","schemaVersion":2},"datasetVersion":"2026-08-27T19:17:21.184Z"}