Scripting Changes (or lack thereof) in macOS Tahoe

Making this thread to share any oddities I find in the new betas. There aren’t any changes to the default apps’ scripting dictionaries (compared using the diff cli), and all default apps that were scriptable in macOS 15 remain scriptable.

General Changes:

  • You can no longer use “iTunes” in place of “Music” in tell blocks (but “System Preferences”, “iCal”, and “Address Book” still work). This breaks any script still referencing “iTunes”. Edit: This doesn’t seem to work in 15.5 either, so it might not be a new change, but it’s still inconsistent…

Script Editor Changes:

  • Script Editor version is now 2.11 (232), was 2.11 (231) before.
  • Now supports Dark Mode. Colors for syntax highlighting adjust automatically for visibility.
  • Received the same toolbar and menu updates as the rest of the OS.

Bugs:

  • Various UI glitches, e.g. dictionaries in Script Editor sometimes have two vertical scrollbars.
  • Script Editor become unresponsive often when running or saving scripts stored on external drives.
  • ASObjC scripts do not raise permission dialogs when using protected frameworks/services such as CoreLocation, so permission must be granted manually in System Settings (could be a more general bug; just something I noticed).
  • Retrieving the current track from Music.app inconsistently fails. It generally works for songs played manually (by clicking on them), but fails on autoplayed songs for some users.
  • Script Editor’s “Show Script menu in menu bar” setting deactivates itself immediately after getting toggled on, preventing use of the Script Menu. (Temporary workaround: Triple-clicking the toggle seems to help it stay permanently enabled)
1 Like

The Script Editor icon is one of those icons that got enclosed in a gray rounded square. The same ugliness occurs to the applet icons. I’ll submit it as a bug (as, I’m sure, many others will do).

image

image

On the other hand, the TextEdit icon has lost the pen, so it’s now clearly distinguishable from Script Editor. (For quite some time, TextEdit and Script Editor icons were nearly indistinguishable, especially at small sizes).

It seems the current track cannot be fetched through Applescript anymore in Music. This is further emphasized through the use of the MediaMate application which is unable to show a preview of the album art. This issue does not occur with Spotify. It seems to be specifically the Music application.

tell application "Music"
	return name of current track
end tell

With local mp3s playing in Music, current track works for me. I keep getting errors when logging in to my Apple ID in Music, so I can’t test downloaded tracks right now.

I… am confused. I added an mp3 to music to see if I had the same behavior (and I do), but now fetching the current track of any song including Apple Music content works. So… It works now, yay…

EDIT: It DOESN’T WORK! It looks like getting current track info works for music you specifically click on to listen to (as a user), autoplayed songs cannot be fetched in the current track.

It still works for autoplayed mp3s for me. I’m planning to update an actual device tonight (running in a VM currently) to hopefully get Apple account login working, so I’ll be able to do more testing then. Listed this as an inconsistent bug in the meantime.

I think it is (used to be) related to whether the ‘current track’ was on your system or not.

All my permissions have reset, so a script that runs at 00:00 every day failed, and I woke up to lots of “osascript wants to…” messages

It’s irritating but only a little. A new OS is a bit of a reset isn’t it, and if they’ve made changes to their security systems under the hood, it makes sense that permissions get reset

I was hoping that the fact that the icon hasn’t yet been changed meant that there were changes coming to Script Editor, but setting it submitted as a bug makes me think “yeah, maybe they just forgot to do it”

So I’m not the only one having trouble logging in with a VM? I first tried it with a Sequoia VM a few weeks ago and I get the same non-descriptive error in both OSes.

(I really hope current track keeps working with streamed tracks in a playlist, because my mental health depends on it.)

Apple actually documents that Music and other iCloud services aren’t supported in VMs. Of course, I learned that after setting up my VM.

Now that I have it on real hardware, I’m also seeing the current track issue. It seems that it occurs for anything not added to your library and most things played via the Radio, New, and Home tabs. So far I’ve haven’t seen the issue at all when going to the “Songs” tab and playing a track from there.

Indeed, going to the “songs” tab and playing something from there makes everything work. Here are my assumptions (which I verified btw):

  • Playing any song directly will make it work with current track UNLESS this song is NOT in your Music library (either added through Apple Music or uploaded).
  • If you play a song not in your library, current track is not updated even if you clicked on it specifically.
  • Playing an album (in your library obviously) makes all the tracks within it appear in current track until autoplay takes over.
  • Any autoplayed track won’t appear in current track even if in your library (unless: see the last bulletpoint)
  • Music played through the “songs” tab all appear in current track even if autoplay kicks in. I assume this is because this tab is an iTunes legacy (visually and under the hood) and doesn’t use the modern autoplay. This tab also won’t play non-library songs unlike the “albums” tab which seems to use the correct autoplay and suffers the same symptoms as the “recently added”, “home”, “radio”, etc… tabs.

In my computer, there is no ScriptMenu any longer.
Anyone else with this issue.

It looks like there’s a bug in Script Editor: when you try to check the ‘Show Script Menu’ option in Preferences, it gets unchecked by itself right away. After several attempts I could actually check it, after which the Script Menu showed up in the menu bar. However, after unchecking this option, I wasn’t able to check it again.

Same behavior here. Submitted a bug report. On my system, triple clicking to enable, disable, re-enable gets it to stay most of the time.

Edit: The toggle reliably works for me now with only a single click. Not sure what changed.

Does the Script Menu respond to AppleScript commands properly?

AppleScript_Script_Menu_Show(true)

on AppleScript_Script_Menu_Show(booleanValue)
	try
		tell application "AppleScript Utility"
			if booleanValue then
				if not Script menu enabled then
					set the Script menu enabled to true
				end if
			else
				set the Script menu enabled to false
			end if
			return Script menu enabled
		end tell
	on error errorText number errorNumber partial result errorResults from errorObject to errorExpectedType
		error "<AppleScript_Script_Menu_Show>" & errorText number errorNumber partial result errorResults from errorObject to errorExpectedType
	end try
end AppleScript_Script_Menu_Show

Hi Paul, thanks.
I tried enabling it via AppleScript Utility, which I’ve forgotten it was there, but it does not work either.
As per leo_r’s message what I tried to do is:

tell application "System Events" to tell process "Script Editor" to tell its window "General"
	repeat 100 times
		tell its checkbox "Show Script menu in menu bar" to click
		delay 2
		if its checkbox "Show Script menu in menu bar"'s value is 1 then exit repeat
	end repeat
end tell

The delay has to be greater than 1 second, so I used 2.
It did not work.
If someone tries and gets the menu, please, let me know.
I really, really miss it.

The script works flawlessly here.

It does in certain situations, refer to my previous post for more info:

Indeed, going to the “songs” tab and playing something from there makes everything work. Here are my assumptions (which I verified btw):

  • Playing any song directly will make it work with current track UNLESS this song is NOT in your Music library (either added through Apple Music or uploaded).
  • If you play a song not in your library, current track is not updated even if you clicked on it specifically.
  • Playing an album (in your library obviously) makes all the tracks within it appear in current track until autoplay takes over.
  • Any autoplayed track won’t appear in current track even if in your library (unless: see the last bulletpoint)
  • Music played through the “songs” tab all appear in current track even if autoplay kicks in. I assume this is because this tab is an iTunes legacy (visually and under the hood) and doesn’t use the modern autoplay. This tab also won’t play non-library songs unlike the “albums” tab which seems to use the correct autoplay and suffers the same symptoms as the “recently added”, “home”, “radio”, etc… tabs.

The Script Menu is the most important part of the runtime environment.

We provided feedback on this issue and discussed it with the engineering team.

We share the view that the incorrect code sign of the Cocoa-AppleScript applet and the script menu not launching are issues that need to be addressed.