macOS Dock
This is how I manage my Dock with Jamf. Note, these computers are student classroom computers, so I want the Dock to always be the same.
I use jctl.
This is how I creating Dock items.
jctl dockitems --use-the-force-luke --andele-andele -c "App Store"
jctl dockitems --use-the-force-luke --andele-andele -n "App Store" -u path="file://localhost/System/Applications/App Store.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "BBEdit"
jctl dockitems --use-the-force-luke --andele-andele -n "BBEdit" -u path="file://localhost/Applications/BBEdit.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Calendar"
jctl dockitems --use-the-force-luke --andele-andele -n "Calendar" -u path="file://localhost/System/Applications/Calendar.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Console"
jctl dockitems --use-the-force-luke --andele-andele -n "Console" -u path="file://localhost/System/Applications/Utilities/Console.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Contacts"
jctl dockitems --use-the-force-luke --andele-andele -n "Contacts" -u path="file://localhost/System/Applications/Contacts.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Directory Utility"
jctl dockitems --use-the-force-luke --andele-andele -n "Directory Utility" -u path="file://localhost/System/Library/CoreServices/Applications/Directory Utility.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Disk Utility"
jctl dockitems --use-the-force-luke --andele-andele -n "Disk Utility" -u path="file://localhost/System/Applications/Utilities/Disk Utility.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "FaceTime"
jctl dockitems --use-the-force-luke --andele-andele -n "FaceTime" -u path="file://localhost/System/Applications/FaceTime.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Firefox"
jctl dockitems --use-the-force-luke --andele-andele -n "Firefox" -u path="file://localhost/Applications/Firefox.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Freeform"
jctl dockitems --use-the-force-luke --andele-andele -n "Freeform" -u path="file://localhost/System/Applications/Freeform.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Google Chrome"
jctl dockitems --use-the-force-luke --andele-andele -n "Google Chrome" -u path="file://localhost/Applications/Google Chrome.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Keychain Access"
jctl dockitems --use-the-force-luke --andele-andele -n "Keychain Access" -u path="file://localhost/System/Library/CoreServices/Applications/Keychain Access.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "LaunchPad"
jctl dockitems --use-the-force-luke --andele-andele -n "LaunchPad" -u path="file://localhost/System/Applications/LaunchPad.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Mail"
jctl dockitems --use-the-force-luke --andele-andele -n "Mail" -u path="file://localhost/System/Applications/Mail.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Maps"
jctl dockitems --use-the-force-luke --andele-andele -n "Maps" -u path="file://localhost/System/Applications/Maps.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Messages"
jctl dockitems --use-the-force-luke --andele-andele -n "Messages" -u path="file://localhost/System/Applications/Messages.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Microsoft Excel"
jctl dockitems --use-the-force-luke --andele-andele -n "Microsoft Excel" -u path="file://localhost/Applications/Microsoft Excel.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Microsoft OneNote"
jctl dockitems --use-the-force-luke --andele-andele -n "Microsoft OneNote" -u path="file://localhost/Applications/Microsoft OneNote.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Microsoft Word"
jctl dockitems --use-the-force-luke --andele-andele -n "Microsoft Word" -u path="file://localhost/Applications/Microsoft Word.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Music"
jctl dockitems --use-the-force-luke --andele-andele -n "Music" -u path="file://localhost/System/Applications/Music.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Network"
jctl dockitems --use-the-force-luke --andele-andele -n "Network" -u path="file://localhost/System/Library/PreferencePanes/Network.prefPane" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "News"
jctl dockitems --use-the-force-luke --andele-andele -n "News" -u path="file://localhost/System/Applications/News.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Notes"
jctl dockitems --use-the-force-luke --andele-andele -n "Notes" -u path="file://localhost/System/Applications/Notes.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Photos"
jctl dockitems --use-the-force-luke --andele-andele -n "Photos" -u path="file://localhost/System/Applications/Photos.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Reminders"
jctl dockitems --use-the-force-luke --andele-andele -n "Reminders" -u path="file://localhost/System/Applications/Reminders.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Safari"
jctl dockitems --use-the-force-luke --andele-andele -n "Safari" -u path="file://localhost/Applications/Safari.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "StartupDisk"
jctl dockitems --use-the-force-luke --andele-andele -n "StartupDisk" -u path="file://localhost/System/Library/PreferencePanes/StartupDisk.prefPane" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "System Settings"
jctl dockitems --use-the-force-luke --andele-andele -n "System Settings" -u path="file://localhost/System/Applications/System Settings.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Terminal"
jctl dockitems --use-the-force-luke --andele-andele -n "Terminal" -u path="file://localhost/System/Applications/Utilities/Terminal.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "TV"
jctl dockitems --use-the-force-luke --andele-andele -n "TV" -u path="file://localhost/System/Applications/TV.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Numbers"
jctl dockitems --use-the-force-luke --andele-andele -n "Numbers" -u path="file://localhost/Applications/Numbers.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Pages"
jctl dockitems --use-the-force-luke --andele-andele -n "Pages" -u path="file://localhost/Applications/Pages.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Keynote"
jctl dockitems --use-the-force-luke --andele-andele -n "Keynote" -u path="file://localhost/Applications/Keynote.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Phone"
jctl dockitems --use-the-force-luke --andele-andele -n "Phone" -u path="file://localhost/System/Applications/Phone.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "Games"
jctl dockitems --use-the-force-luke --andele-andele -n "Games" -u path="file://localhost/System/Applications/Games.app" -u type="App"
jctl dockitems --use-the-force-luke --andele-andele -c "iPhone Mirroring"
jctl dockitems --use-the-force-luke --andele-andele -n "iPhone Mirroring" -u path="file://localhost/System/Applications/iPhone Mirroring.app" -u type="App"
Then I remove the default macOS 26 Dock items (except Safari).
jctl -n "Remove Default macOS 26 Dock Items" -j -u "dock_items"='{"dock_item": [\
{"name": "App Store", "action": "Remove"},\
{"name": "Calendar", "action": "Remove"},\
{"name": "Contacts", "action": "Remove"},\
{"name": "FaceTime", "action": "Remove"},\
{"name": "Freeform", "action": "Remove"},\
{"name": "Games", "action": "Remove"},\
{"name": "iPhone Mirroring", "action": "Remove"},\
{"name": "Keynote", "action": "Remove"},\
{"name": "LaunchPad", "action": "Remove"},\
{"name": "Mail", "action": "Remove"},\
{"name": "Maps", "action": "Remove"},\
{"name": "Messages", "action": "Remove"},\
{"name": "Music", "action": "Remove"},\
{"name": "News", "action": "Remove"},\
{"name": "Notes", "action": "Remove"},\
{"name": "Numbers", "action": "Remove"},\
{"name": "Pages", "action": "Remove"},\
{"name": "Phone", "action": "Remove"},\
{"name": "Photos", "action": "Remove"},\
{"name": "Reminders", "action": "Remove"},\
{"name": "System Settings", "action": "Remove"},\
{"name": "TV", "action": "Remove"}\
]}'
Then I have a policy to add what I want (in reverse order).
jctl policies -n "Dock Room 106" -j -u "dock_items"='{"dock_item": [\
{"name": "Microsoft Word", "action": "Add To Beginning"},\
{"name": "Microsoft PowerPoint", "action": "Add To Beginning"},\
{"name": "Microsoft Excel", "action": "Add To Beginning"},\
{"name": "Google Chrome", "action": "Add To Beginning"},\
{"name": "Firefox", "action": "Add To Beginning"},\
{"name": "Safari", "action": "Add To Beginning"},\
]}'
dockutil
This is an old script I used to use. It utilizes dockutil and is extremely customizable. I quit using it because I was trying to simplify my setup (by relying more on Jamf).
Published: 2026-05-27, Copyright © 2026 James Reynolds