MUT v5 Beta! (Multiple Attributes + Prestages!!!)


MUT v5 Beta 2 ready for download!

Well folks, you've asked and I've fought tooth and nail listened. MUT will now update multiple attributes at once.

I will go into more detail below, but here's the tl;dr:

  • Head out to GitHub to download Beta 2 here:
  • v5 depends HEAVILY on CSV templates (similar to inventory preload). When you first launch the app, you will be prompted to download these templates
  • Do not delete columns or rearrange columns from the templates. MUT will not like that. Yes, I know inventory preload lets you, but MUT doesn't.
  • If you want to update Extension Attributes, add extra columns to the end of the template in the format of "EA_#" with # being the number of EA to update. For example, to update Extension Attribute 15, add a new column "EA_15" and put the value below it.
  • Cells left blank will be ignored/not updated/not changed. So if you want to JUST update usernames, only fill out the username column
  • To REMOVE a value, populate that cell with the phrase "CLEAR!" (including exclamation point). These should appear RED on the preflight check
  • To update a static group, simply create a single column CSV (with any header) with a list of Serial Numbers (or usernames for users), and use the dropdowns provided to tell MUT what to do
  • When updating object attributes (computers, mobile devices, and users), MUT will determine what you're looking to update based off the header row. There is no longer a need to populate dropdowns at all, thanks to the new CSV templates
  • Documentation and videos will be coming soon
  • If you have any issues, or discover any bugs, please list them on the "issues" section of GitHub:
  • Authentication check is now handled by generating a JPAPI token. If you're using a very old version of MUT, which does not have the JPAPI, MUT v5 may no longer work for you


There are a LOT of changes. We hope you really like them. The app got a bit more complex to use, but with that complexity comes a TON of power.

MUT v5 has been rebuilt from the ground up (again.. ugh). Our goal is to have some folks test out the beta this week, spend next weekend through Tuesday fixing issues, and hopefully release in time for "day zero" support for Jamf Pro 10.14, which has some new features that I think you'll like.

When you first launch the app, you'll be given this screen. It looks fairly "dumbed down", but as soon as you feed MUT your CSV, it will take you to a new screen for the specific type of update you're looking to do.


The first thing you're going to want to do is hit that little "download CSV templates" button. That will create a "MUT Templates" directory inside ~/Downloads, which will contain all the templates you will need.


Once you've fed it a CSV, it will give you a screen that looks like this, which automatically does your pre-flight check if you're updating an object record (user, mobile device, or computer). Things that say "(unchanged)" in blue were left blank in the CSV, and will not be updated. Things that say "CLEAR!" in red will have their value deleted.


Physically click on object identifiers in the left table to view the changes that will take place for that object. Some objects will have most fields unchanged, like seen here. This is especially true if all you want to do is update usernames across your devices or something like that.


When you hit the submit button, a progress bar will appear letting you know how things are going. There is no longer success/failure status in the GUI. This was done to make room for all the additional information needed during pre-flight. We are assessing options to utilize the pre-flight window to display status during update runs for future versions.


That said, you may see that it says to "See MUT.log for additional details". In the MUT Templates directory, you will find a "MUT.log". The MUT.log will contain MUCH more information than you had access to before, and we're excited for the troubleshooting possibilities that this will provide users of MUT v5.


MUT v5 handles authentication by generating a token in the JPAPI now. The good news is that ALL users are able to generate JPAPI tokens, and their permissions are tied to the token generated--which means there is no longer a need to "bypass authentication". This option has been changed to an "allow insecure SSL" checkbox, to give you the option to use a non-trusted certificate if you wish--but MUT will default to performing default SSL checks via App Transport Security protocols.

I've got a new friend!

You may notice that I've been using the phrase "we" a lot in this post. MUT is no longer a solo project. @ben.whitis has joined the MUT team, and did the majority of the leg work on the new GUI, while I handled a lot of the back-end code logic. He is also going to be writing most of the documentation, and should be able to answer questions on usage and features.

Ben is a a wicked smart dude, and MUT would not be the app that it is today without his assistance. Be sure to give him a high-five if you see him at JNUC.

v5b2 Known Issues:

There are a couple small known issues so far with MUT v5b2. These will for sure be fixed prior to the GA release, along with anything else that folks find. Known issues are:

  • Computer display name updates do not seem to be happening. We are investigating the root cause.
  • The templates to guide user for group updates are missing
  • User updates will always attempt to update the user's username to the provided identifier. This means that: -- You cannot update a user's username at will -- If you submit user updates using ID as the identifier, the user's username will be set to their ID.

What if I like the old, simpler MUT?

We know there are a LOT of changes here. And some of the feedback I got in a Q&A was that folks preferred the simpler MUT with only one attribute to update. There is also a lot of comfort there.

Our solution: "MUT Classic". MUT Classic is basically a rebranded version of MUT 4.3, which will be available on the App Store in parallel with MUT v5 (as well as future versions).

While MUT Classic is currently approved and pending developer release on the App Store, there likely will not be much continued development on MUT Classic, as we focus our efforts towards v5, as well as other projects to help Jamf help you succeed with Apple. That said, 4.3 has been a very solid and stable release, and we expect MUT Classic should do a great job of filling the role that folks have come to know and love--if they are not interested in the new, powerful features of v5+.


That's about it

Feel free to download the app, test it out, let us know what we can do better, and we'll hopefully have the GA out there for 10.14 support on day zero.


Valued Contributor

10.14 adds Prestage scope access via API? Holy smokes!

Contributor II




New Contributor III
New Contributor III

Thank you @mlev and @ben.whitis for putting so much work into this! I recommend The MUT to every customer I talk to and bring it up frequently when I go onsite. I am EXTREMELY excited to share the new functionalities you've outlined here to them!!

Contributor III

I have a few questions that crop up each year. Looking at the csv.
Display name Username - what is the difference?
I will go out on a limb here and say Display name is the share name which can be seen on a network. Username is their log in name or their user name on the login screen. Is this close?

Other than this question, I cannot wait to give this baby the trial. Great job you guys!



If you’re updating a device, display name is the name of the device itself. Username is the name of the user who is assigned to the device.

As for users, the username is the “display name”, really, and I don’t believe there is a field to update a display name for users.

I’ll double check everything.

Contributor III

@mlev Thanks for the quick response>
Just to clarify, the Display name is the name that is shared across the network to ID the device and is visible to others? I ask becasue we are a public school and need to abide by many acts, HIPPA, COPPA, FERPA to name a few, that prohibit any identifiable info be available to the public that might be able to be traced easily to another user. Just wondering as a name JoeSmith may ID Joe Smith to all those on a public WiFI which would be a big no no.


@rhooper Sure, the actual name of the device would probably get sent around via WiFi - if that's a concern, don't put personally identifiable information in the device name. I see a lot of schools, and other orgs, use the device Serial Number with maybe a prefix as the name instead of using personal information.

Contributor III

@iMatthewCM We do not want any PII going about in the wild, which makes this all the much more difficult. But it is not insurmountable.


Good work guys, loving the new version.

One thing that's missing from the computer template and would make this even better is Purchase Price - I can bulk load everything else about the purchase, but unless I'm missing something I still have to go edit each record to add the price.


@jsherwood thanks for that, it should be relatively straightforward to add. We'll look into it for 5.1.


I just wanted to say Thank you for making this powerful tool. It really helped my summer go much smoother than it would have. I was able to update everyone in one click rather than separate files, and most of all, I was able to prestage easier than ever before. Christina

Contributor III

@mlev @ben.whitis I read your documentation on the new PreStage feature and I want to make sure I understand the full extent of that feature since I couldn't find this answer in the documentation.

In order to add serial numbers to the PreStage do they need to be already available and assigned in ASM and showing in Jamf Pro under Settings>Global Management>Device Enrollment Programs? Will MUT error out if they aren't.


Yes, the devices need to be in Jamf and available to assign to a prestage.

If they are not, it will throw an error. Viewing the MUT.log should help you figure out which devices are lacking.

@christina_luis You are very welcome!! Glad to hear it helped. :)


I did the update this morning to MuT and now it will not even finish an upload. All it does is start and then close. It worked great yesterday, except when I added users to the devices it overwrote the EA name. But once I realized it I just added the name to the spreadsheet. Fixed. Now I can't even use it. :(


😭 I can't even use the Classic MUTT Either.


I've just tried reinstalling both versions, nothing, I also tried downloading the version from the website and it did not work. There appears to be an issue with the template - when I paste the serial numbers there are blank lines where there should not be a blank line. The app suddenly quits when it hits the first blank one (this is in the preview pane). I am relying heavily on this tool at the moment for apple classroom and iPad user assignment. It will take me a week or more to do it by hand. I am not sure how to email or report the issue directly to @mlev. So I hope this gets to you ASAP. I don't have an old version and the classic is not working either. As I said above it worked yesterday, I saw the update this morning, so I ran the update, now nothing works.

Thank you


I was able to work with Jamf Support and they said to use UTF-8 csv format for the upload and that worked.


Hi @christina_luis sorry to hear about the troubles! Yes, it seems that if you have special characters in your CSV, that it does not get parsed properly unless saved as CSV UTF-8. I'm not sure when that changed, or if it's always been that way, but MUT Classic is basically just 4.3 with a new icon. The two apps actually use completely different methods to parse the CSV, and it seems that even the cat binary in macOS has trouble with CSV files with special characters that are not saved as UTF-8.

Glad to hear it's resolved!


Thank you. I didn't have any special characters that were different from the day before. I just used the templates provided plugged my info and save as. (same file type). Once I did the update everything changed.


In the templates you can updated the PO Date.
What format would these dates need to be?
Would input be in MySQL format of: YYYY-MM-DD

New Contributor III

Hi @mlev , how do I get the script of REMOVE FROM macOS Static Group and ADD TO macOS Static Group
I am using MTU Classic Version 1.0.0 (1.0.0). Trying to explore the script used in it for above actions.
It would be great if you can share both scripts.
Thank you in advance :)

Contributor III

After several attempts to get MUT 5.0.5 to upload several devices 1209 to be exact, and failing each and every time I decided to look at why. By searching the Logfile I noted it always successfully added changes for one device then quit rather abruptly. So the record after the one successful is the issue... That's where the concern was noticed. Special characters.... like é, á and ë are not recognized by the MUT. I was curious about this as the first time through it worked great, with no failures, etc. And these special characters I thought were there, but maybe not.
After changing any special characters all went through without a hitch! What a great program you have here. Thank you for your time and dedication to this project.
Do you think maybe special characters will be incorporated in the future?


@rhooper try re-saving your CSV file as CSV-UTF8. I've found that improves the behavior significantly. This seems to be an issue with the way macOS parses the files in general--you'll see strange behavior if you try to use the cat binary to view those files as well.

@Naren it is using the /computergroups endpoint, with the XML having <computer_additions> and <computer_deletions> respectively. Check out the /api page for your instance ( and take a look at the endpoints there. Unfortunately, there's not really a "script" I can share, as MUT is entirely native swift at this point, but the product is open-source, and you can view it here:

Contributor III

@mlev THANKS!
I will try that and see if it works for us. in the meantime any of those "spëciál" characters are just plain old letters. I need to resubmit the JAMF MUT again anyway.

New Contributor III

I have a CSV file with Serial numbers in the correct GroupsAndPrestagesTemplate.csv Can the devices be in different Pre-Stages and have them put into a new pre-stage? can't seem to get this working.

Esteemed Contributor II

@kuypers Since the Jamf Pro GUI won't allow you to assign a device to a PreStage until it's been removed from any PreStage it's already in I suspect you'll have to do the same thing when you're using the API, i.e. with MUT.


There was an issue in 5.1.0 with prestage updates. Version 5.1.1 has the fix, and is being pushed to Github and JamfNation right now. It will be available on the app store as soon as it is approved.

For now, if you need to update prestages, please use 5.0.5 or 5.1.1, both available from GitHub releases.

New Contributor II

@mlev Trying to bulk add new users. They are not importing. Any tips?

Contributor III

Hi Mike! This looks great!

Contributor III

I'm using MUT 5.2.0 with Jamf Pro Cloud 10.24.2 and can no longer use MUT to add/remove brand new mobile devices from prestages. Getting error "DEVICE_DOES_NOT_EXIST_ON_TOKEN". Works fine with mobile devices that are already enrolled.

Also the "Replace Exiting Prestage" feature has never worked for me. I always have to perform 2 actions, first remove and then add.

New Contributor

This looks pretty cool! I'm excited to give it a try.

I've got one question though: Does MUT allow for updating other fields (e.g. purchase contact, life expectancy, etc.)?