Skip to main content

Changelog

All notable changes to this project will be documented in this file. Octory adheres to Semantic Versioning.

3.1.0​

Released on September 18, 2026

Before you update

This version requires macOS 26. Earlier versions of macOS are no longer supported — scope the package to macOS 26 devices in your MDM, and keep deploying Octory 3.0.3 to the rest of your fleet. Learn More

Values entered in secure (password) inputs are no longer persisted in plain text to the inputs file — set the new Input.SavesSensitiveInputs key to true if a workflow depends on reading them back. Configuration validation is also stricter: an undefined ${VARIABLE}, an invalid key value or a forbidden child now fails the load with a precise error naming the exact key path, so previously tolerated configurations may need fixing.

Containers now apply a 15 pt inner padding on all four edges, and the container-level Margins key is honored at last, so slides that worked around the missing padding with per-component margins will look more spaced out than before. Learn More

Improvements​

  • New Row & Column layout components for multi-column slide composition — children side by side with per-child WidthRatio, columns stacking several components in one cell, groups sharing Margins, Border and Condition; Width and Alignment keys size and place the row block.
  • New Card component — components stacked on a rounded surface with BackgroundColor, BackgroundImage, BorderColor and Shadow, plus Width/Alignment/Height block keys. Put several cards in a Row for a category grid. Learn More
  • The MonitorsDisplay component can now render inside a Card with a fixed Height — a framed installation dashboard. Learn More
  • New slide-level BackgroundImage and BackgroundImageAlpha keys — window-wide, aspect-filled backdrops that crossfade between slides. Learn More
  • Messages: the new octo-notifier message command displays a Notification Center banner or a floating markdown window at any moment — even launching Octory if it isn't running (requires octo-notifier 1.1.0). Learn More
  • 20 new live device-telemetry placeholders — device health, security posture, MDM enrollment, update status and network state — usable in any text interpolation or condition. Learn More
  • New Alignment key on all four input components: the label and control move as one cluster to the chosen edge. Learn More
  • New Width key on List inputs so several menus render at exactly the same size. Learn More
  • New Style key on Checkboxes inputs to render each item as a macOS switch. Learn More
  • Button styling: new Width, BackgroundColor and BackgroundImage keys on Simple buttons. Learn More
  • New Alignment key on the Image and SFSymbol components — position the element left, center or right within its width.
  • New Animation dictionary on SFSymbol components — Bounce, Pulse, VariableColor, Wiggle, Rotate, Breathe, DrawOn and DrawOff symbol effects, Reduce-Motion aware. Learn More
  • New Navigation.ShowsInstallationProgress key — a live installation progress bar and status line in the navigation bar. Learn More
  • New AppTermination.NextConfigurationPath key — chain a second configuration when Octory terminates normally; the -c/--config launch argument now also accepts an absolute file path. Learn More
  • New Admin.HideDockIcon key to keep Octory out of the Dock. Learn More
  • New Input.SavesSensitiveInputs key — opt back into persisting secure-input values (see the warning above). Learn More
  • Markdown rendering in Text components — headings, bold/italic, code, lists and clickable links. Learn More
  • The container-level Margins key is now honored, with a 15 pt default inner padding; media components keep bleeding to the container edges. Learn More
  • New Settings window (⌘,) with a Configuration, a Helper and an About pane, replacing the former preferences menu. Learn More
  • PDF components now fit the document to the component width, with a zoom control revealed on hover and trackpad pinch support. Learn More
  • The navigation bar no longer draws its own background: the buttons sit directly on the window background or the slide backdrop, and are drawn as capsule pills. Learn More
  • The OS_NAME placeholder now resolves macOS 27 as "Golden Gate". Learn More
  • Application monitors now detect applications installed in a subfolder of /Applications, as well as applications shipped with macOS. Learn More
  • Carousel controls now honor AlwaysShowNavigationButtons and AlwaysShowPageIndicators from the moment the slide appears, and are reachable with the keyboard and VoiceOver. Learn More

Fixes​

  • URL keys now resolve a whole-value ${VARIABLE} (e.g. URL = ${LogoImgUrl} on an Image component loading the URL the variable holds).
  • Card shadows are now visible in dark mode — a subtle light glow instead of an invisible dark shadow.
  • Checkboxes and Switch inputs placed in a Row cell now render compact and vertically centered instead of sticking to the top or overflowing narrow cells.
  • Slide content no longer lays out wider than the window when a child cannot fit — an oversized element clips inside its own row instead of pushing the whole slide off-center.
  • The NameFontConfiguration and DetailFontConfiguration keys of the MonitorsDisplay component now apply the configured font, and not only its color.
  • A Video component with Repeat keeps looping after navigating away from its slide and back.
  • The confirmation field of a SecureText input is now always stacked below the password field, instead of squeezing both onto the same row.
  • Image components no longer intercept clicks, so a decorative full-width image cannot block the components drawn over it.

Misc​

  • The interface layer has been fully rebuilt on modern native APIs, with stricter configuration validation reporting precise key paths.
  • Reduce Transparency and Reduce Motion are now honored throughout the interface, along with broader VoiceOver and keyboard accessibility.
  • Dropped the SnapKit, Down, ProcedureKit and XMLParsing dependencies, and moved the localization to a String Catalog.
  • General performance, logging and code improvements.

3.0.3​

Released on April 14, 2026

Improvements​

  • Improved handling of multiple displays in BlurredBackground mode.
  • Jamf binary presence is now verified before executing a Jamf Policy.
  • Copy and paste into input fields is now available for all users. Copying text from a slide to an external application remains a PRO feature.
  • DEVICE_BATTERY_ placeholders now update in real time, improving workflows that rely on battery conditions.
  • New DEVICE_BATTERY_IS_ON_AC placeholder indicates whether the Mac is connected to a power source (true/false). This value is also monitored and updates in real time.

Fixes​

  • Fixed YouTube video playback in the video component and embedded video rendering in HTML files.
  • Fixed a memory leak in MenuBar mode.
  • Fixed the Previous button appearing on the first slide in single-slide workflows.
  • Web components are now properly terminated when navigating between slides.

Misc​

  • Updated dependencies and cleaned up legacy code in favour of native Swift APIs.
  • Improved logging system.
  • Improved licence management.
  • General code improvements.

3.0.2​

Released on February 13, 2026

Fix​

  • Helper registration for termination script and Pro features on macOS 26.3.

3.0.1​

Released on February 6, 2026

Fix​

  • Exit conditions when mandatory file monitors are installed.
  • DEVICE_MARKETING_MODEL_NAME variable is now fixed with newer Mac models.

3.0.0​

Released on December 8, 2025

Before you update

This new version introduces a fully revamped monitors management with breaking changes. Please make sure to throughouly test your workflows before updating in production.

Improvements​

  • In monitoring, the AppMonitor key has been renamed MonitorsDisplay to serve a larger purpose.
  • File monitors can now be displayed in the MonitorsDisplay component and has been updated with new keys. Learn More
  • New Managed monitor. Same behaviour as before but separated as its own monitor instead of being nested in the Application monitor. Learn More
  • New Property monitor which allows you to monitor a property key inside a plist file. Learn More
  • New Profile monitor which allows you to monitor the presence of a config profile. Learn More
  • New SF Symbol component is now available in slides, allowing you to use native macOS icons. Learn More

Fix​

  • License validation for non-gregorian calendars.
  • Monitoring for Munki v7.
  • Youtube video when used in the Video component.

2.4.6​

Released on March 14, 2025

Improvements​

  • New OS_VERSION global variable. This variable will automatically display the OS version like 15.3.2 Learn More
  • New OS_NAME global variable. This variable will automatically display the OS name like Sequoia. Learn More

Fix​

  • Fix lock trackpad gestures when BlurredBackground is used.

2.4.5​

Released on June 25, 2024

Improvements​

  • New Carousel component. Learn More
  • New BackgroundImage key is available for Containers. Learn More
  • The ShouldFillSpace and Height keys are now available for the Video component.
  • Localization has been added. Localization is available in English, French, Spanish and Portuguese. Feel free to reach out if you want to help for other languages.

Fix​

  • PlaySound with custom sound works again.
  • When running a simulation, File monitors are now updated.
  • Fix random bug with Video component not displaying properly.

2.4.4​

Released on February 26, 2024

Improvements​

  • Octory now detects apps installed in subfolders inside /Applications.
  • When the ContinueAfterFailure option is set to true, unmet conditions within chained actions no longer halt the workflow process, ensuring smoother operation and increased flexibility in handling complex scenarios.

Fix​

  • Fix slides validation when using nested inputs.
  • Fix warning window when trying to quit Octory before all mandatory apps installed.
  • Fix a behaviour causing Octory to install in a different location than the default if previously installed or detected somewhere else.
  • Fix condition evaluation for DisplayAlert action.
  • Fix using variables in SendRequest headers, body and parameters.
  • Fix storing int and double in a variable after a SendRequest action.
  • Fix global Octory variables instantiation priority.

2.4.3​

Released on January 8, 2024

Improvements​

  • Intune native support for monitoring macOS app (PKG and DMG). See App Monitors.
  • You can now use Youtube or Vimeo URL in the URL key for the Video component.
  • New advanced condition operators. Learn More PRO

Fix​

  • Fix FAILED_INSTALL_MONITORS_COUNT variable.
  • Fix TextFontConfiguration behaviour when not using the Style key.

2.4.2​

Released on November 23, 2023

Fix​

  • Fix Image component bleeding into other components.

2.4.1​

Released on October 3, 2023

Fix​

  • Fix a bug introduced by 2.4.0 for MDM predifined API call.

2.4.0​

Released on August 16, 2023

Improvements​

  • New key AlwaysOnTop which allows you to keep Octory's window in the foreground. See Window.
  • New trigger Every(seconds) to run an actions every X seconds while Octory is open. See Triggers. PRO
  • New key LinksAreEnabled available in TextFontConfiguration for a Text component. URL will automatically appear in systemBlue and will open with default browser. See Font.

Fix​

  • Fix macOS 14 (Sonoma) license handling. Pro customers will also have to update their license. PRO
  • Fix DisplayNotification which is now working when no actions are defined with the notification.
  • Fix App monitor state variable name to handle a period (.) in application name.
  • Fix API call to handle an Octory variable in the API endpoint.
  • Fix package with agent when deployed in Pre-stage.

2.3.0​

Released on April 12, 2023

warning

Octory 2.3.0 with agent package is only compatible with macOS 13 and above.

Improvements​

  • Simplify app’s helper executables and support new authorization controls using new App Service Management. Octory's Helper, LaunchAgent and LaunchDaemon now live inside the app bundle.
  • New arguments are available from the binary to launch Octory's Helper and LaunchAgent. You can now use --args [--agent|-a] [register|unregister|status] and --args [--helper|-h] [register|unregister|status]

2.2.6​

Released on April 4, 2023

Fix​

  • Fix random secCode error when the Helper is trying to establish a connection with Octory app.
  • Fix ScreenIndex key when OnScreen is BlurredBackground or FullScren.
  • Fix resolution for OnScreen FullScren on MacBook Pro 14".

2.2.5​

Released on January 10, 2023

Fix​

  • Fix UI when when BlurredBackground, InstallationIncompleteQuitText and monitor IsMandatory are set.

2.2.4​

Released on December 19, 2022

Improvements​

  • On ExecuteCommand, ExecuteScript and ExecuteJamfPolicy actions with Termination trigger, Octory now presents a popup to the user while running the last actions in the back. The text can be changed using an optional PendingActionsLoadingQuitText key in the Navigation category.
  • New PROCESSOR_TYPE to know if your Mac runs on Intel or Apple Silicon. See Variables.

Fix​

  • Fix icon in mandatory apps popup when AppIconPath is defined.
  • Fix IsMovable behaviour when the window is in BlurredBackground mode.

2.2.3​

Released on October 25, 2022

Fix​

  • MDM API bug introduced by non-MDM API calls in 2.2.2 is corrected.
  • Text component used with a condition in Ventura.

2.2.2​

Released on September 22, 2022

Improvements​

Fix​

  • Update Octo-Notifier version display.
  • Non-MDM API calls now work as intended.

2.2.1​

Released on July 21, 2022

Improvements​

  • A variable can now be used for Text and SecureText input placeholder.
  • Jamf Classic API is now using bearer token authentication following deprecation of Basic Authentication.

Fix​

  • HidePreviousButton and HideNextButton settings on last slide.
  • Previous button when Quit button is clicked before mandatory apps are installed.
  • Web component now pause when user move to the next slide.
  • Jamf Pro API bearer token authentication.
  • Helper version is now properly displayed in Get Info menu.
  • Removal of the Octory Helper popup when Helper is not installed.
  • Update command to load and unload Launch Agent and Launch Daemon.

2.2.0​

Released on March 1, 2022

Improvements​

  • New SecureText input component, allowing user to input hidden password & confirm it. Also allows you to ask for password to match a specific regex

Fix​

  • Fixed HidePreviousButton and HideNextButton settings
  • Fixed file monitor, now generated variables are replacing "." with "_" (eg. for test.txt it is now IS_TEST_TXT_FILE_PRESENT instead of IS_TEST.TXT_FILE_PRESENT )
  • Fixed AirWatch app monitor regexes
  • Fixed Jamf app monitor regexes
  • Fixed Octory-Notifier to make it a universal app (Apple Silicon & Intel)
  • Fixed DEVICE_NAME variable that previously returned device model instead of friendly name
  • Fixed BlurredBackground mode for new macOS versions

2.1.4​

Released on September 16, 2021

Improvements​

  • Added WaitForTerminationScriptExecution to wait for app termination script execution and include output in app logs (cf. wiki).

Fixed​

  • Fixed CompleteInstallationScriptPath and IncompleteInstallationScriptPath not always run before application exited.

2.1.3​

Released on August 31, 2021

Improvements​

  • Added new app icon following new UI guidelines.
  • Added some logging so that it is easier for you to debug your configuration files.
  • Added new packaging providing notarized installer for Octory, Helper (& weak) and Notifier.

Fixed​

  • Fixed the AppTermination ActionSets that were not properly run before app being stopped.
  • Fixed first action ran twice when using Chained actions.

2.1.2​

Released on June 1, 2021

Improvements​

  • Added the MandatoryFilesMissingQuitText property for mandatory files monitoring.

Fixed​

  • Fixed the IsMandatory property not working for File monitoring.
  • Fixed the SendRequest action that wasn't properly read from configuration file in some cases.

2.1.1​

Released on May 3, 2021

Fixed​

  • Fixed the Variable key registering in the configuration.
  • NextButtonClick trigger was targeting PreviousButtonClick trigger.

2.1.0​

Released on May 3, 2021

Improvements​

Actions and Triggers​
  • Action: open a slide in another window. See OpenWindow. PRO
  • Action: navigate to a specific slide. See NavigateToSlide. PRO
  • Action: display a local notification to the user. See DisplayNotification. PRO
  • Action: update a variable. See UpdateVariable. PRO
  • Trigger: trigger an action set when another app is launched. See Triggers. PRO
  • Trigger: trigger an action set programmatically with:
    • octo-notifier
    • ButtonComponent "Trigger" key
    • DisplayNotification actions "Trigger" keys See Triggers. PRO
Interface composition​
  • Sidebar a container on the right. See SideContainer. PRO
  • Specify width ratios to arrange containers. See Containers.
Monitoring​
  • New monitors count placeholders (useful to indicate the remaining monitors to install). See Placeholders.
  • New Installer possible value: "Managed" to specify that a monitor installation state will be updated by octo-notifier only. See App Monitor.
  • Optionally display a vertical scroller for the AppMonitorComponent. See AppMonitorComponent.
  • Mark an AppMonitor as "Not mandatory" to allow the app termination if the monitor is not installed. See application monitoring.
  • The icons to indicate the installation state of a monitor have been updated with SF Symbols (require macOS 11+). A spinner will be displayed when the monitor state is "Installing" (available on all supported macOS versions).
Miscellaneous​
  • Disable the application relaunch at login behavior when the system was turned off or restarted and the app was running. See App termination.
  • The command-line tool config has been improved to be more precise in the error messages and to better evaluate the configuration files.
  • A new command-line tool octo-notifier is available to send monitors installation updates to Octory or to send custom trigger events.

Changed​

  • Changed AppMonitoringComponent look.

Fixed​

  • The "Previous" button was reappearing on the last slide after an incomplete installation alert was displayed although it was specified to hide it.
  • The monitors specifying a condition in the Conditions section were not updated when a variable involved in the specified conditions was updated.

2.0.6​

Released on March 5, 2021

Improvements​

  • PDF component. See Interface composition.
  • Video component. See Interface composition.
  • Copy to clipboard action. See Actions. PRO
  • Terminate app action. See Actions. PRO

Changed​

  • The application will check that a configuration file has the correct permissions before using it. See Security.
  • The Helper has received a security update and its current version is now 1.1.0. This version is required to work with Octory 2.0.6. Also, the Helper is now a Universal Binary. See Security.
  • The application now uses a new internal library to decode a configuration file. The config checker is built on top of it to validate a configuartion file similarly as the logs of th app in /tmp.
  • The SaveInputs and Log action have been marked as PRO features to improve coherence. Now all Actions are PRO features.

Fixed​

  • The device placeholders have been fixed for Silicon Macs.

2.0.5​

Released on November 12, 2020

Improvements​

  • 2020-12-16 update: Universal build for ARM and Intel

Fixed​

  • Big Sur compatibility and graphics
  • Slide valid state was not updated on a variable update
  • The CURRENT_SLIDE_INDEX variable was not set at 0 before evaluating conditions
  • The monitors conditions were not properly updated

2.0.4​

Released on August 31, 2020

Fixed​

  • The Jamf policy execution now works properly by using sudo
  • Action sets were triggered by an unwanted event
  • Multi-threads crashes fixed
  • The key Window→IsMovable now only affects the window title bar. Thus, the window is no more draggable using its background.

2.0.3​

Released on July 29, 2020

Improvements​

  • Shortcut to force the app termination unconditionally. See AppTermination.

Changed​

  • App termination scripts with ExecuteAsRoot to choose how the run the scripts. See AppTermination.
  • AppTermination → QuitShortcutIsEnabled not required anymore with default true value. See AppTermination.
  • Scout updated to 1.3.0 to get a dictionary or array count. See API requests (VariableReadingPaths).

Fixed​

  • Bad thread access when updating Jamf monitors while parsing the Jamf log that caused random crashes.
  • Bad thread access when dealing with the variables updates that caused random crashes.
  • Window shadow was not set with the "Simple" value for the OnScreen key.

2.0.2​

Released on May 15, 2020

Fixed​

  • App termination script now uses the Helper
  • Checkboxes text now populated
  • Monitors text now populated
  • Flag to save the configuration passed as argument: --save
  • Model (font, color, request) single parent log error improved
  • Default config name now also searched in Managed Preferences

2.0.1​

Released on April 1, 2020

Improvements​

  • The window title can be populated

Changed​

  • Octory log is now named username-octory.log

Fixed​

  • AppMonitor generated variables were not writting their first state
  • The device placeholders now work for macOS < 10.15
  • DisplayAlert actions were populated

2.0.0​

Released on March 6, 2020

Improvements​

  • Display a popover view from a button. See Button component. PRO
  • Conditionally execute actions. See Actions. PRO
  • Reload the interface by keeping variables values and controls states. See Admin menu
  • New application and device placeholders. See Variables
  • Possibility to choose the application configuration file with the command line. See Home
  • Possibility to choose the application window OnScreen option with the command line. See Window configuration
  • Possibility to hide navigation buttons for each slide. See Slides
  • Window OnScreen new value MenuBar and bunch of new customizations. See Window configuration
  • Possibility to use a parent style (font, color) with a single string when no overrides are needed. See Appearance
  • Helper to execute a command with root privileges. See Helper. PRO
  • Conditionally insert or remove components and monitors. See Conditions, Components and Monitors. PRO
  • Specify an Input component percent width. See Input Components
  • File monitoring with generated variables and optionally generate a variable for each app monitor. See Monitoring

Changed​

  • Reload the interface takes the monitors and navigation view into account. Thus, the monitors states are reset.
  • The Justified text alignment value for a font has changed to Justify
  • Button component required Style key added. See Button component
  • Button component TextColor key has been changed to Color
  • Termination sound has been moved to the Monitoring section, with new customizations.
  • Window Minimum/Maximum height and width have changed for sizes. See Window configuration
  • Some keys previously required are not required anymore and have a default value instead
  • The placeholder FULL_USER_NAME has been changed for USER_FULL_NAME
  • Checkboxes input variable format has changed from [variable]_[title] to [variable]-[checkbox index]. See Checkbox Input component

Fixed​

  • Octory now waits for Workspace ONE (Airwatch) or Munki log files, then starts monitoring.
  • Input variable now written in Octory’s variables and in the input file, without the need of a validation key
  • Possibility to test empty strings with validation regular expression for a Text Input component
  • Possibility to tab between Text Input component, unless the interface has been reloaded
  • Image view infinite loop at image loading
  • AppTermination scripts paths not populated
  • The StyleConfigurableTextView and StyleConfigurableTextField would not listen to input variables updates
  • It was not possible to quit even if no monitors were configured, or if all were already installed

1.1.0​

Released on November 27, 2019

Improvements​

  • Monitoring of the file /var/log/install.log to trigger the monitoring installing state for apps which are not downloaded directly into the /Applications folder with the .appdownload extension (like Microsoft’s apps)

Changed​

  • Regular expression to find a match in the Jamf log changed to add more flexibility

Fixed​

  • The Previous button was appearing on sole slides when the “Finish” button was clicked, but the application was not terminated
  • The Admin mode was not deactivated when specified so in the configuration
  • Menu bar not always active at app launch

1.0.0​

Released on October 30, 2019

  • Initial release.