ruby-jss is a Ruby framework for interacting with the REST APIs of Jamf Pro, a manageent platform for Apple hardware from The module abstracts API connections and resources as Ruby classes, which interact to allow simpler automation of Jamf Pro-related tasks.

(NOTE: If the page via the Documentation link above is broken, a local copy is available here. The local docs may not be for the current version, so beware)


ruby-jss is a Ruby gem which provide the Jamf Ruby module. The module simplifies access to both REST APIs of Jamf Pro from, an enterprise-level management tool for Apple devices

The module abstracts API connections and resources such as computers, packages, mobile devices, policies, network segments, and more as Ruby classes. It provides methods for creating, manipulating, and interacting with those resources and making them interact with each other. It also provides some features that aren't a part of the API itself, but come with other Jamf-related tools, such as uploading .pkg and .dmg JSS::Package data to the master distribution point, and the installation of Package objects on client machines.

The details of creating and maintaining the API connections, tokens, URL paths, data handling, and so on are all handled under-the-hood, allowing you to focus on the objects in your Jamf Pro server, and automating tasks with them. No need for messing with `curl`, parsing XML or JSON, and so on. When combined with 'irb' (interactive Ruby), ruby-jss gives you a real-time interactive 'shell' to your Jamf Pro server which can be much more powerful than the Web UI. We've used ruby-jss to create hundreds of integrations, automated tasks, admin tools, reporting tools, and more.

The module is not a complete implementation of the either the Classic or Jamf Pro API. Only some API objects are modeled, some only minimally. Of those, some are read-only, some partially writable, some fully read-write (all implemented objects can be deleted). See the README or the front page of the Documentation for a list.

ruby-jss is the first part, indeed the foundation of, d3, a package/patch deployemnt and management tool based on Jamf Pro's package handling backend. ruby-jss grew out of d3, and while it provides API access beyond just packages, that was it's initial purpose.

We've implemented the things we need in our environment, and as our needs grow, we're always adding more. Hopefully others will find it useful, and add more to it as well.

ruby-jss is released under a modified Apache License v2.0. Please see the LICENSE.txt file for details.