Skip to main content

A CLI utility for packaging and exporting Alfred workflows

Project description

Alfred Workflow Packager

Copyright 2016-2021 Caleb Evans
Released under the MIT license

Alfred Workflow Packager is a command-line utility which makes the process of packaging and exporting an Alfred workflow incredibly quick and easy. The utility supports Alfred 3 and up, on projects running Python 2 or Python 3.


You can install the utility via pip, either globally or within a virtualenv:

pip install alfred-workflow-packager


1. Create configuration file

Once you've installed AWP, you must configure it for every project where you wish to use it. To do so, create a packager.json file in the root directory of your project; this file configures AWP for that particular project.


  "export_file": "Fruit.alfredworkflow",
  "bundle_id": "com.yourname.fruit",
  "readme": "README.txt",
  "resources": [

Required settings


The path of the exported workflow (relative to your project directory).


The unique bundle ID of your workflow. You must have one set in the installed workflow, or AWP will not be able to find your workflow when packaging.


A list of zero or more files/folder patterns representing files or folders to copy from your project to the installed workflow. The directory structures and filenames are preserved when copying.

Local project:

- icon.png
- fruit
    - banana.applescript
    - orange.php

Installed workflow (before running utility):

- info.plist
- special_file.json

packager.json resources:


Installed workflow (after running utility):

- info.plist
- icon.png
- special_file.json
- fruit
    - banana.applescript
    - orange.php

Note that files and folders already present in the installed workflow are not touched if they are not in the resources list.

Optional settings


The path to the README file to use for this workflow; the About this Workflow field in your workflow is populated with the contents of this file.

2. Validate configuration file

Once you've finished writing the packager.json file for your project, you should validate it by running awp --validate from the root directory of your project. If you are missing any settings or if any of the setting values are in the wrong format, the utility will output those respective error messages.

3. Run utility

Now that your project has a valid packager.json file, you can run the utility via the awp command:


Running awp will always do a few things:

  1. Copy those project resources listed in packager.json to the installed workflow (in their respective locations)

  2. Update the installed workflow's README with the contents of the README file listed in packager.json (if one is listed)

Setting the workflow version

Passing the --version option (also -v) to awp allows you to set the version of the installed workflow directly. I highly recommend using semantic versioning to version your workflow releases.

awp --version 1.2.0
awp -v 1.2.0

Exporting the workflow

When you're pleased with your work and you're ready to publish a new release, you can export the installed workflow to your project directory by passing the --export flag (or -e) to awp.

awp --export
awp -e

Note that you can set the version and export the workflow simultaneously:

awp -v 1.2.0 -e

New in AWP v1.1.0: If you wish to temporarily export the workflow to a different file (different from export_file in packager.json), you can pass an optional path to --export:

awp -v 1.3.0-beta.1 -e ~/Desktop/fruit-beta.alfredworkflow

4. Configure workflow objects

The last important step is to update any script objects in your workflow (i.e. objects of type Script Filter, Run Script, etc.) to reference the files copied to the installed workflow directory.

You should set the Language to /bin/bash and use the appropriate shell command to call your script. Use "$@" if your input is passed as argv, or "{query}" if your input is passed as {query}.


/usr/bin/python -m "$@"
/usr/bin/python -m "{query}"


/usr/bin/osascript fruit/banana.applescript "$@"
/usr/bin/osascript fruit/banana.applescript "{query}"


/usr/bin/php fruit/orange.php "$@"
/usr/bin/php fruit/orange.php "{query}"

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for alfred-workflow-packager, version 1.2.1
Filename, size File type Python version Upload date Hashes
Filename, size alfred_workflow_packager-1.2.1-py2-none-any.whl (8.4 kB) File type Wheel Python version py2 Upload date Hashes View
Filename, size alfred-workflow-packager-1.2.1.tar.gz (6.6 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page