Packal Updater

An Alfred Workflow

Short Description

Update your workflows from Packal.

Last Updated

11 Dec 2014


Mountain Lion
Snow Leopard
Yes Yes Yes Yes Yes



Bundle ID


How Does it Work?

In a nutshell, it updates the workflows that you've downloaded from

This workflow is a companion to It can update any workflows that you have downloaded from the site. However, it does not work with any other sources. See the Terms of Service for more about

Code Signing

All packages downloaded from Packal have been signed by the server, and the signature is checked by this workflow before an update is allowed to continue. This check ensures that the package hasn't been tampered with.

Plist Migration

When Alfred updates workflows normally, it strips any hotkeys found in the new info.plist file, and it also migrates any hotkeys / keywords that the user set. The Packal updater does the same thing. However, if you have modified the original workflow, then the updater will overwrite those modifications. If you do not want a workflow to be overwritten, then just mark it off under the blacklist tab.

Anonymous Workflow Reporting

This workflow has the possibility to send the Packal website information about which workflows you have installed. The information sent includes only the Bundle IDs of the workflows you have installed along with the names, whether or not they are enabled/disabled, and whether or not they were downloaded from Packal. The information is sent, at most, once per week, and the unique identifier used comes from a random-ish string that has been hashed so that there is no real way to get any real information from your computer. For a more technical explanation, the unique identifier is a hashed (256) of the following command:

ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformUUID/ { split($0, line, "\""); printf("%s\n", line[4]); }'

Nothing else about your system is sent, and the reporting mechanism ignores workflows without Bundle IDs. The information is used in order to determine the popularity of workflows in order to display better statistics for the workflows on Packal to be displayed for trending/popular workflows as well as for reports to workflow developers about the popularity of their work. If you want a more detailed understanding of the reporting mechanism, look at the file name report-usage-data.php in the workflow root.

Support this Project

The Packal Updater Workflow is an extension of, which is developed, maintained, and funded by Shawn Patrick Rice. While there are ads on the website, they don't cover the server costs. If you'd like to chip in to help Packal running, then click the little, yellow button below.


Code is provided AS IS under the GPLv3 license.

Copyright © Shawn Patrick Rice

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see the license here.

Credit Where Credit is Due

I have to thank Dean Jackson and Tyler Eich for feedback and testing.

This workflow uses David Ferguson's Workflows Class.

It also uses Rodney Rehm's and Christian Kruse's CFProperty List class to aid with plist migration.

For the dynamic layout of this "application," code was used from the overly talented Manoela "Mary Lou" Ilic from Codrops.

Specifically, the menus were adapted as was a bit of the settings form.

GUI icons from Font Awesome.

The workflow icons from the Oxygen set.

The updater makes use of Terminal Notifier.

All of the workflow and theme authors who have contributed their work on

And, of course, Andrew and Vero Pepperrell, affectionately known as the Alfred team, without whom none of this would be possible — or practical.