Skip to main content
A Python helper library for writing `Alfred 2`_ workflows.

Alfred workflows typically take user input, fetch data from the Web or
elsewhere, filter them and display results to the user. Alfred-Workflow
takes care of a lot of the details for you, allowing you to concentrate your
efforts on your workflow's functionality.

Features
========

* Catches and logs workflow errors for easier development and support
* "Magic" arguments to help development/debugging
* Auto-saves settings
* Super-simple data caching
* Fuzzy, Alfred-like search/filtering with diacritic folding
* Keychain support for secure storage (and syncing) of passwords, API keys etc.
* Simple generation of Alfred feedback (XML output)
* Input/output decoding for handling non-ASCII text
* Lightweight web API with modelled on `requests`_
* Pre-configured logging
* Painlessly add directories to ``sys.path``
* Easily launch background tasks (daemons) to keep your workflow responsive
* Check for new versions and update workflows hosted on GitHub.

Quick Example
=============

Here's how to show recent `Pinboard.in <https://pinboard.in/>`_ posts in Alfred.

Create a new workflow in Alfred's preferences. Add a **Script Filter** with
Language ``/usr/bin/python`` and paste the following into the **Script** field
(changing ``API_KEY``):

.. code-block:: python
:emphasize-lines: 4

import sys
from workflow import Workflow, ICON_WEB, web

API_KEY = 'your-pinboard-api-key'

def main(wf):
url = 'https://api.pinboard.in/v1/posts/recent'
params = dict(auth_token=API_KEY, count=20, format='json')
r = web.get(url, params)
r.raise_for_status()
for post in r.json()['posts']:
wf.add_item(post['description'], post['href'], arg=post['href'],
uid=post['hash'], valid=True, icon=ICON_WEB)
wf.send_feedback()


if __name__ == u"__main__":
wf = Workflow()
sys.exit(wf.run(main))


Add an **Open URL** action to your workflow with ``{query}`` as the **URL**,
connect your **Script Filter** to it, and you can now hit **ENTER** on a
Pinboard item in Alfred to open it in your browser.

Installation
============

**Note**: If you intend to distribute your workflow to other users, you should
include Alfred-Workflow (and other Python libraries your workflow requires)
within your workflow's directory as described below. **Do not** ask users to
install anything into their system Python. Python installations cannot support
multiple versions of the same library, so if you rely on globally-installed
libraries, the chances are very good that your workflow will sooner or later
break—or be broken by—some other software doing the same naughty thing.

With pip
--------

You can install Alfred-Workflow directly into your workflow with::

pip install --target=/path/to/my/workflow Alfred-Workflow

You can install any other library available on the `Cheese Shop`_ the
same way. See the `pip documentation`_ for more information.

From source
-----------

Download the ``alfred-workflow-X.X.X.zip`` file from the `GitHub releases`_ page
and either extract the ZIP to the root directory of your workflow (where
``info.plist`` is) or place the ZIP in the root directory and add
``sys.path.insert(0, 'alfred-workflow-X.X.X.zip')`` to the top of your
Python scripts.

Alternatively, you can download `the source code`_ from the `GitHub repository`_
and copy the ``workflow`` subfolder to the root directory of your workflow.

Your workflow directory should look something like this (where
``yourscript.py`` contains your workflow code and ``info.plist`` is
the workflow information file generated by Alfred)::

Your Workflow/
info.plist
icon.png
workflow/
__init__.py
background.py
update.py
version
web.py
workflow.py
yourscript.py
etc.


Or like this::

Your Workflow/
info.plist
icon.png
workflow-1.X.X.zip
yourscript.py
etc.

Documentation
=============

Detailed documentation, including a tutorial and API docs, is
available at `Read the Docs <http://alfredworkflow.readthedocs.org/en/latest/>`_.

.. _requests: http://docs.python-requests.org/en/latest/
.. _Alfred 2: http://www.alfredapp.com/
.. _GitHub releases: https://github.com/deanishe/alfred-workflow/releases
.. _the source code: https://github.com/deanishe/alfred-workflow/archive/master.zip
.. _GitHub repository: https://github.com/deanishe/alfred-workflow
.. _Cheese Shop: https://pypi.python.org/pypi
.. _pip documentation: https://pip.pypa.io/en/latest/

Release files for Alfred-Workflow 1.10.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Alfred-Workflow 1.10.0
File Size Uploaded
Alfred-Workflow-1.10.0.tar.gz 34.2 kB Details

Release files / Alfred-Workflow-1.10.0.tar.gz

Download URL Alfred-Workflow-1.10.0.tar.gz
Size 34.2 kB
Tags Source
SHA-256 checksum
How to use checksums
e82d51e7eeb9de70d359f7d3fc049353cdc39921b8a929bfcf4dfaf6f3e82f96
BLAKE2b-256 checksum
How to use checksums
f0bcf766f9e276538853834bb7b60f1fdbcaddc93dab5121ac0b6ef4ec46c934
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

1.40.0

1 release file

1.39.0

1 release file

1.38.0

1 release file

1.37.2

1 release file

1.37.1

1 release file

1.37

1 release file

1.36

1 release file

1.35

1 release file

1.34

1 release file

1.33

1 release file

1.32

1 release file

1.31

1 release file

1.30

1 release file

1.29

1 release file

1.28.1

1 release file

1.28

1 release file

1.27

1 release file

1.26

1 release file

1.25.2

1 release file

1.25.1

1 release file

1.25

1 release file

1.24

1 release file

1.23.1

1 release file

1.23

1.22

1 release file

1.21.1

1 release file

1.21

1 release file

1.20

1 release file

1.19

1 release file

1.18.2

1 release file

1.18.1

1 release file

1.17.4

1 release file

1.17.3

1 release file

1.17.2

1 release file

1.17.1

1 release file

1.17

1 release file

1.15.3

1 release file

1.15.1

1 release file

1.13

1 release file

1.12

1 release file

1.11.1

1 release file

1.11.0

1.10.2

1 release file

1.10.1

1 release file

This release

1.10.0 This release

1 release file

1.9.6

1 release file

1.9.5

1 release file

1.9.4

1 release file

1.9.3

1 release file

1.9.2

1 release file

1.9.1

1 release file

1.8.9

1 release file

1.8.7

1 release file

1.8.6

1 release file

1.8.5

1 release file

1.8.4

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page