com.apple.touristd

New to Mac notification seen after fresh installs or upgrades of macOS
New to Mac notification

This notification bugs me, but only because I don’t particular care for operating systems taking me on a tour of all the “magical” features that I end up ignoring, and also because it’s one more thing I have to dismiss after setting up a fresh macOS install or upgrade.

I don’t have OCD (and I feel for those that suffer from it), but I am particular about setting up my macOS installs. So I went down a little alleyway to see if there was some way to never be bothered with the notification again.

There is a preference file that gets created/modified after dismissing or activating the notification – ~/Library/Preferences/com.apple.touristd.plist.

Lets do a quick look at what is in the file:

[carl@valkyrie]:~ # defaults read com.apple.touristd
{
    "seed-https://help.apple.com/osx/mac/10.12/whats-new" = "2016-10-19 11:04:39 +0000";
}

A quick defaults read-type on that key indicates it’s a date value (which is obvious enough from the output, but matters when it comes to applying the preference with defaults write).

Sure enough, deleting this file and logging back in causes the notification to appear again. If you want to make sure that the notification isn’t presented to the user, you can create the preference with the correct* key in it.

defaults write com.apple.touristd seed-https://help.apple.com/osx/mac/10.12/whats-new -date "$(date)"

*This may be different based on your machine type & whether the OS is upgraded or a fresh install.

Looking for the binary that is checking and issuing the notification, we get the following results (truncated output is shown):

[valkyrie:/] # find . -type f -iname "tourist*"
...
./System/Library/PrivateFrameworks/Tourist.framework/Versions/A/Resources/touristd

A cursory glance at strings contained in the binary indicates it can be used at the command line.

[carl@valkyrie]:Resources # ./touristd --help
Usage: touristd [<options>] [<command>]
Options:
   --help                      Show this help and exit
   --board-id=ID               Override detected board ID
   --scaling-factor=NUM        Override detected scaling factor (main screen)
   --previous-system=VERSION   Override detected previous system version
   --locale=CODE               Override detected locale setting
   --tours=FILE                Path to an alternate list of tour definitions (.plist)
   --menu=NUM                  (menu mode) trigger menu select action for item NUM
   --hours                     Show hours elapsed since last OS install
   --reset                     Clear setting of wheher notification was shown for all tours
Commands:
   With no command argument, touristd will run as a daemon.
   profile                     Show profile
   status                      Show all known tours
   match                       Show ranked list of profile matches against known tours
   notify                      Show notification for matched tour
   activate                    Directly trigger 'action' of notification
   dismiss                     Directly trigger 'cancel' of notification
   menu                        Show exported Finder menu items

It appears that there are a number of different “tours” that can be sent to the user as a notification, based on hardware types, and whether the OS is a fresh install or upgrade. It is also possible to dismiss or notify the user (although if the user has already dismissed or activated the tour, it won’t appear again unless the --reset flag is called first).

You can determine which tours the system matches against by using the match flag; the activate flag is used to launch the first “activate” tour; in my testing this launched the “What’s new” tour in Safari.

The macOS Sierra What's New tour as seen in the Safari browser
macOS Sierra What’s New tour in Safari

Based on further testing, it is not currently possible to use the touristd binary to launch other tours (such as the “New to Mac”, or a tour specific to the Mac hardware), nor can you just modify the preference domain to force the activate flag to launch a different tour, but you can launch specific tours through Safari by using open -a Safari – for example, to launch the tour relating to the 27″ iMac, you would use open -a Safari https://help.apple.com/osx/mac/10.12/imac-27

This is some pretty handy stuff, especially if you’re in an environment where you may want to have the user automatically get a tour of new features in macOS, or their Mac device.
As for me, I’m happy that I can finally automate dismissing the notification 🙂