Twitter

Website URL

Jabber

Location

Interests

👋 Hi. Long time lurker stopping by to share something I've been working on. I'm calling it Pacmax (PM).
Akin to Packal (which is a great website that I'm sure we all know and love) PM is my attempt to fill what voids I feel exist in the current landscape for the other Alfred lovers out there, like myself. Namely: 1) It works from the source, dynamically updating content from GitHub. 2) No accounts are necessary to add Workflows and Themes, because I'm curating submissions. 3) Adding to PM is as simple as submitting the GitHub repository. Repos with files that use the appropriate .alfredappearance & .alfredworkflow extensions will enable PM to display Import (themes will open directly with Alfred) and Get Import File (workflows).
There is plenty left to be desired—so your feedback is very important! I hope you'll check it out and let me know what you think. Don't forget to add your favorite Workflows & Extensions! I've added a few of my favorites, and have even discovered some real neat repositories that I felt were worth sharing.
If anyone is interested, you can learn more about Pacmax at pacmax.org. If you have any kind of feedback or are interested in maybe getting involved on a deeper level I welcome your feedback over at pacmax.org/feedback
Thanks and all the best,
Maxwell

NOTE: This workflow has not been updated to work with Alfred 3.0 and above, and is known to cause issues. Use at your own risk.
----
Keep all the miscellaneous crap off your Desktop by sweeping everything into a "DeskDrawer" folder, which is easily accessible from our good friend Alfred.
Download DeskDrawer v1.5
[updated 25 March 2014]
Okay, the idea is not completely original — I've used apps like DesktopTidy and Unclutter to achieve this, but it's amazing how simple it is to replicate the basic concept with an Alfred workflow.
This is your "DeskDrawer" in Alfred (keyword "drawer", default hotkey Shift-Cmd-D). From there you can:
search the list (just start typing)
open an item (select it)
move it back to your Desktop (option-select)
reveal it in DeskDrawer/Finder (cmd-select)
browse/open it in Alfred (ctrl-select) for further action.
Move item to the Trash (fn-select) [NEW in 1.3]
There is a file action, "Move to DeskDrawer" (as well as the keyword "move") for quickly flicking items into the Drawer. There is also the keyword "sweep" to scoop all your Desktop items into DeskDrawer in one hit. And finally, "deskrestore" will dump the contents of your DeskDrawer back on the Desktop in all its messy glory.
You can also undo your last file/folder movement with the "unmove" keyword. [New in v1.5]
And now you can protect certain items on your Desktop from being moved during a sweep, with either the File Action "Protect from DeskDrawer Sweep" or the keyword "protect". (Reverse this with the File Action "UnProtect from DeskDrawer Sweep" or keyword "unprotect".) [New in v1.5]
And finally, for full documentation, use the keyword "deskdrawer help". [New in v1.5]
I don't about the rest of you, but I like to keep my Desktop as clutter-free as possible (unlike my IRL desktop! ), so having this capability in Alfred is great.
Let me know what you think, or any bugs you find.
Features I'd still like to add:
The ability to "protect" certain files from the "sweep" and "deskrestore" actions. [DONE in v1.5]
Be able to specify the location of your DeskDrawer folder. [DONE in v1.2]
Any requests?
UPDATE: 1 April 2013 - v1.3
New action: "fn-select" item to Trash it.
Consolidated and tidied up workflow setup panel.
Support for Alleyoop auto-updater
Minor cosmetic tweaks.
UPDATE: 2 April 2013 - v1.4
New keyword: "move" — moves selected items to Drawer (same as the file action, but you just enter it in Alfred's main window — some people seem to prefer this approach.)
UPDATE: 25 March 2014 - v1.5
New icon for DeskDrawer folder (to fit in with OS X custom folder look).
DeskDrawer is now allowed on the Desktop itself.
“Undo” function to reverse the last “Move” to DeskDrawer or Sweep.
“Protect” specified Desktop items from being moved to the DeskDrawer during Sweeps.
Fix for XML-illegal characters in filenames.
More icons.
Removed AlleyOop updater support.
Default DeskDrawer location is now Home folder.
Local documentation (keyword: deskdrawer help)
Miscellaneous minor tweaks and fixes.

Oh, god. Please help me.
After updating to Alfred 3.7.1, all my data, including weeks (months?) worth of workflows are completely gone.
They are not in ~/Library/Application Support/Alfred 3/.
They are not in ~/Library/Application Support/Alfred 3/Alfred.alfredpreferences.
They are not in Dropbox folder or Dropbox website.
They are not inside any package contents.
The "synced" Alfred Preferences file, which I synced with Dropbox right before updating, is empty: There's nothing inside it. 0 Bytes.
Please tell me this isn't as bad as I think it is.
Ready to jump off a bridge.

Here's another little tool I've just whipped up:
Get an instant list of the current time in various cities around the world. Which you can customize, of course.
Main keyword: tz (for TimeZones) - this just shows the World Clock list (seen above). (Select a city for a Large Type display.)
To remove a city from the list - option-select it.
To add a new city - timezone add Name of City
To update all cities' timezone offset information - timezone update
To look up the time in a place without storing it (custom loookup), just keep typing the place name after the initial tz (eg. tz timbuktu)
To move the location of your stored city list - timezone move
Download v1.7a
This workflow saves a list of your cities and their UTC offsets locally, so the basic world clock will display instantly. Adding new city information is done via an API call to Google Wolfram Alpha. The only downside to locally cached offsets is that there's no provision for automatically updating for Daylight Savings changes, but a manual timezone update will refresh all the cities with their current offset.
Enjoy. As usual, I welcome comments, bug reports, feature requests, etc.
----
28 March 2013 - UPDATE to v1.5
Major rewrite - now uses Google Maps APIs, which should be a lot more reliable and consistent.
Flag icons! Bit of eye candy, courtesy of http://www.free-country-flags.com (and managed to squeeze flags for every country in the world into just over 400k - thank you TinyPNG )
More detail retrieved and displayed, including timezone name, country, etc.
When doing a full "update", a text file is saved to your Desktop summarising any changes found.
General enhancement and tweaks.
PLEASE NOTE: Because this version stores its data substantially different to previous versions, it will create a new timezones.txt file with default cities. However, it will attempt to save your old timezones.txt file to your Desktop, so you should be able to rebuild your previous list without too much hassle.
A quick note about the flags: The workflow simply compares the retrieved name of the country and does a simple name match against the workflow's local repository of flag icons. From my testing, it's working very well, but I'd appreciate it if you'd report back if you find any countries that don't properly match a flag icon. Cheers.
----
31 March 2013 - UPDATE to v1.6
New feature: Custom lookups. Just keep typing a new place name after the tz keyword to look up the time in a place without saving it to your saved list.
Added support for phyllisstein's Alleyoop auto-updater.
[EXPERIMENTAL] - support for autocomplete for adding place names (timezone add). You'll need to add a keyword yourself to the script filter if you want to try it out. The reason I haven't enabled it by default is that I've found it kind of slow and I'm not sure it's actually an improvement over the current method. Let me know what you think. [Add a keyword to this script filter if you'd like to try it out]
Novelty: Added (unofficial) Antarctica flag to flag repository. (Try tz south pole. )
----
2 April 2013 — UPDATE to v1.61
Small fix for Dutch (Netherlands) flag matching.
----
22 March 2014 — UPDATE to v1.7
City List now always shows in the same order. (Achieved by removing “uid” parameter.)
Removed Alleyoop updater.
---- 22 March 2014 — UPDATE to v1.7a
New 256x256px icon

Hi there!
I wanted to ask if there is a way, with a button shortcut to have a file open in Photoshop? For example, I have jpegs automatically open in Photoshop by default through my Mac SysPrefs... but I still have pngs open in Preview. Is there a way to have a button to have it "open in... application" or just "open in Photoshop" as an option, like how we can press Shift or CMD to preview or open the file location? Thanks!

I understand that I can copy the Open Apps examples, paste in my 3rd party apps and start them using the example workflow; What I don't understand is, what do I do with the apps from my remote after I have opened them. There is no keyboard interface that comes with the workflows so I can't edit the files I open in these apps; so why bother opening an app from my remote if I can't do anything with it after I open it??? I may seem to be as dumb as a post to you but I just don't get it. (at least not yet)(I haven't quit trying).

It would be great when you say that "we have over a dozen examples and over 40 templates" (or words to that effect) if you appended that webpage (Alfred Blog > Tips and Tricks > Learn to Create Workflows with Alfred's Built-In Examples) with a follow-on webpage and link with a list of those examples and templates that you speak of, serving as a repository for us to go to for a one stop place to download from.

I'm just getting started with creating my own workflows and I have a couple questions I haven't found the answers for yet after a bunch of searching, reading and testing.
A quick note to begin with, I'm writing this partially as an exercise to improve me proficiency with AppleScript, as frequently painful as it is. It does seem like a good workflow to use it for since its functionality is almost entirely reading information from and sending commands to the iTunes AppleScript Dictionary. JXA is a little further down the to-learn list.
1. What is the proper way (if there is one) to get Alfred's workflow environment variables into an AppleScript file?
Right now I'm using the Script Filter to issue the Bash command osascript *file*, I can append a variable to it like "alfred_workflow_data" and read it as an argv or use (do shell script "pwd") to get the workflow path but I haven't found a way to access all of the variables directly.
I'm open to ultimately running it as a usr/bin/osascript if that's the best solution, but it's nice to just run the script from my code editor rather than copying and pasting it every time I want to test a change.
I have read the pinned post on using environment variables but I'm not sure how to apply it in this context.
2. It looks like the best practice is to use alfred_workflow_data and alfred_workflow_cache where possible but is it appropriate to use the workflow folder for things like included icons or should I be creating a data directory, copying the files there and then using that location when setting icons in a Script Filter?
Given that there doesn't appear to be a provided environment variable for the workflow folder path I wasn't sure if that was to discourage using that in the workflow or because it's trivial to determine that path another way.
3. I have a couple of different icons I'm using for different workflow components so I don't want them all to inherit the workflow icon but I also use some of the same icons for multiple trigger objects. If I assign them the same icon I get duplicate *iud*.png files, is there a way to set the path for the icon programmatically so I can set a single image to multiple objects?
4. Along similar lines, does Alfred allow you to use any vector formats for icons? It doesn't seem to accept SVG and it converts vector PDFs to PNG images but I know that some of Alfred's internal workflows use vector code for icons so I thought it was worth asking.
If not, is 512px the appropriate resolution? I've seen 128px referenced in older threads but that seems pretty small for uses like icons in the iOS remote app for devices like retina iPads.
5. Finally, is there a good way to assign multiple keywords to the same action? I'd like to trigger my script filter with both itunes and love and I had hoped that using a Keyword object as the input to a script filter would do it but while it still lets me trigger the action object I've linked the script filter to the script filter functionality doesn't work.
I've also tried adding an Arg and Vars utility to overwrite the query to the keyword for the Script Filter but I get the same result.
I can just duplicate the Script Filter with a different keyword but am trying not to repeat an identical function if I don't need to.
Thanks for any help, I really appreciate you taking the time to read over this.
The workflow in its current state can be found on GitHub.
Alfred 3.6.2 [921]
macOS 10.13.5 (17F77)
I've customized a lot of my macOS environment but I don't think anything that would affect AppleScript and likely not anything that would affect running osascript commands from /bin/bash.

Hi all,
I'm trying to run a node.js script with Alfred, using this workaround: http://remy.bach.me.uk/blog/2014/03/writing-alfred-workflows-in-node/
It seems to work to get scripts to run without modules, but when I try to use the npm 'fast-csv' module, running the Alfred workflow with my script gives me the error "Cannot find the module 'fast-csv'". I've installed 'fast-csv' globally, so I'm not sure what else to try. (The script runs correctly when using the terminal.) Any ideas?
Thanks

Hi Everyone!
New to Alfred and its world of workflows.
I'm interested in creating my first two workflows. This is what I'm hoping to achieve:
1. Copy the contents of a text file (whether it's txt, nfo, html, rtf etc.) to the clipboard. I know there's a terminal command for that: pbcopy. I want to have this ability either through File Actions or as a workflow input.
2. Define a workflow input to open the most recently download file (in other words, the most recently added file in the macOS's Downloads folder).
Help would be very appreciated!
Thanks!

Thanks in advance for the help!
I'm trying to pass two (or multiple) variables to AppleScript. For example, “keyword query1 query2” and then get both arguments into AppleScript. Or something like “keyword query1^query2” and then split them. I feel like I’m almost there, but missing something… I guess I should add that I’m using Alfred 3.5.1 with Powerpack. I read this article:
but my dumb brain couldn’t figure it out… Any help would be greatly appreciated. My use case for this particular workflow is AppleScipt, but I'd be interested in knowing how to do the same thing with a bash script or something like that.
Thanks!

This seems like it's simple, but I don't find anything about how to create a clickable link that will trigger a workflow.
We have several workflows we'd like to trigger externally by clicking a link we've placed in another application.
is that possible?

If Alfred were paid in 'penny per use' he'd be rich.
This App is simply wonderful and been part of my Mac for years now.
I wonder how many Workflows I miss out on? I know we all have different needs, but is there a quick way of seeing New Workflows? (a monthly email, or should I check the forum?) Or indeed a Gallery of most downloaded Workflows?
Be so great to quickly check back from time to time and see anything I need to add to my Alfred setup!
Thanks again for a brilliant App.
Adam

I'm happy to announce that after months of development, I'm ready to make a new workflow and theme repository available to the public as an open beta: Packal. Workflows and themes are taggable and searchable. You can add in the icons, screenshots, long descriptions, and brief ones. There are many different ways to find whatever you need there. Since this is an initial announcement, there isn't much content there yet, except for the workflows and themes that a few kind testers uploaded.
Themes are stored as a simple application URL, which means there are no files to download, but, instead, they import directly into Alfred2. Workflows are scanned for viruses after they are submitted but before they are made available publicly. Workflow authors can easily update their workflows just by editing the page and replacing the workflow file there.
What is even better is that Packal has its own updater for workflows. So, you have the option to update any workflows that you have downloaded from Packal.
I think that these are exciting developments for Alfred, and this sort of repository is what many people have been waiting for since these forums were created.
One great advantage for distributing your workflows via Packal is that you do not need to maintain your own download links for your workflows anymore, so you won't need to worry about download limits on sharing services. Another advantage is that it will receive more visibility as it is a place where people can look for workflows and themes without having to page through the impressive number of posts in these forums.
So, please, head over to Packal, browse what's there, and, very importantly, submit your own workflows and themes.
--Shawn

Recently I have been really enjoying programming workflows in Go using @deanishe incredible AwGo library.
So I decided to write an article on how anyone can start building things with Go by going through building a complete and working workflow from scratch.
You can read the article here.
I would really love to hear your thoughts on it. ?
It is quite long in hindsight but I wanted to be as clear as I can be so anyone can follow along. I also leave some personal tips of my own that I use to help me develop workflows faster.

Hi folks.
I'm totally new to scripting and was trying to create a script that turns on Do Not Disturb for a set number of seconds and then turns it off. The number of seconds would be passed in as an Alfred argument.
I have the script mostly done and working, but the last part is figuring out how to pass in the argument. Can someone please help me?
Here's what I have so far:
on run argv
delay 3
tell application "System Events"
option key down
delay 0.1
tell application process "SystemUIServer"
try
tell (every menu bar whose title of menu bar item 1 contains "Notification")
click (1st menu bar item whose title contains "Notification")
end tell
end try
end tell
option key up
end tell
delay ****[the argument from Alfred]****
tell application "System Events"
option key down
delay 0.1
tell application process "SystemUIServer"
try
tell (every menu bar whose title of menu bar item 1 contains "Notification")
click (1st menu bar item whose title contains "Notification")
end tell
end try
end tell
option key up
end tell
end run
Any help would be greatly appreciated!
Thank you!

Hey Folks,
Sorry in advance if this isn't the place for V3 workflow tips (and sorry if discussing V3 stuff, here, before public release is poor manners!). I am trying to have the following as a workflow:
Filter file types (e.g. search only PDFs or only .skim notes or only .mmd files) Search for text within files of that type (e.g. search for 'justice' within only PDFs, or within only .skim notes) ​(So long as we're talking dream workflow, here, it would also be nice to filter multiply e.g. Search only in [.skim notes] with [tag=Aristotle' AND 'Nussbaum] for [query=justice]...)
I know I can do 'in {query}' to search within files, and I know I can do file filters to search for specific file types, but I don't know how to chain the two so as to search within specific file types. I gather that Alfred V3 should be able to accomplish this (some kind of dynamic file search?), but I'm at a bit of a loss as to how to do it. Would I do a file filter, and pass off the entire result-list of files of that type to the next filter as a JSON utility? Or is this a bit outside the scope of what workflows are supposed to accomplish?
Thanks!
Caleb

tl;dr: A new Alfred workflow to launch Zapier workflows from your keyboard.
Ever wanted a quicker way to add data to your web apps? Say you get an email from a potential customer, and you want to add them as a new lead to your CRM. You have to copy their email address, open your CRM app in your browser, find your Lead page, open the Add Lead page, and finally paste in the info.
Or if you wanted to find more details about a contact—perhaps to see what products they've bought from your store, or their last email to your support team, or the notes you wrote about your last call with them—you'd need to open a handful of other apps and search in each one manually.
Personally, I wanted a simpler way to send template emails. I wanted to enter a contact's name in Alfred and have it find details about the contact in address book, then make a new draft email to them. That's why I made this Zapier for Alfred workflow. Zapier's to web apps what Alfred is to your Mac—it connects 750+ web apps (including Evernote, Salesforce, Shopify, Gmail, PayPal, and much more) so you can build workflows and automate tasks. And with Zapier for Alfred, you can start those workflows from your Mac's keyboard.
Everyone will have a different use case, but the core workflow works the same. You'll make a Zapier workflow, and connect it to your Zapier for Alfred workflow in Alfred. Then, to run it, you'll enter some text into Alfred, and this workflow will send it to your Zap to kick off the online workflow you made. Then you can get the results back to your Mac in a Pushbullet notification, email, Dropbox file, or even an SMS message in Messages.
Download Zapier for Alfred here, or check out our launch blog post for more details.
Looking forward to hearing how you use Zapier with Alfred!

How do I set up a workflow to choose a specific contact in Contacts and send that person a message via the Messages app? (Akin to how Alfred allows a user to email a specific contact.) I started a new workflow that launches the Messages app, and I tried to add a Contact Action, but that doesn't exactly work: Contact Action comes before, rather than after, Messages -- and I want Messages to start first and enable a specific contact to be used as the input.
I welcome advice and suggestions. Thanks!

Ok, I've put off moving past Alfred v1 for years because Workflows looked like an elephant gun when all I needed was a flyswatter. But I'm building out a new Mac from scratch, so thought I'd catch up and bite the bullet.
All I really want is to assign hotkeys to apps.
I used the Workflow template "Launch file group from hotkey," which I assumed I'd need to do once for each app, and just create "file groups" of one app each. But it looks like you're supposed to be able to set up a bunch of these inside of a single workflow: https://www.alfredapp.com/help/workflows/triggers/hotkey/creating-a-hotkey-workflow/
The problem: The instructions refer to and show a + icon in the upper right corner of the workflow panel that I don't see.
I will try to resist voicing the cascade of frustrations that the UX for what must surely be a common task is so oblique, though I really hope Alfred gets some UX design help. But can anyone enlighten me on how I can set up hot keys for apps in the way the help page indicates I should be able to?
Thanks!

I found myself often converting hours & minutes to a decimal format when creating invoices. This workflow simply does that calculation and copies it to the clipboard. Type in the keyword, then hours:minutes to get that amount of time in decimal (rounded to the nearest hundredth).
For example, 6 hours and 38 minutes:
dtime 6:38
Copies 6.63 to clipboard.
http://static.etling.com/assets/decimal_time_workflow.zip

This tutorial is aimed at Alfred 2. Alfred 3 allows you to connect one Script Filter to another, so these workarounds are not necessary. (They might still be interesting, however.) [added 2017-03-20 by deanishe]
Provided below is a workflow that provides a demonstration of how to reuse a single script filter or, how to chain multiple script filters together so that you can create the illusion of having multiple steps or allow you to further refine results from the first script filter, using the second.
Demo 1
This demo shows how you can use AppleScript to call the next step (another script filter) after the first script filter has completed. This could be used to send the value of the first script filter into the second, or, you could just save the values to file and then read them all back in when you are done. This example will save the value to file.
Demo 2
This demo shows how you can reuse a single script filter using autocompletion to separate multiple inputs with a delimiter. When the filter completes, you could then use that delimiter to split the string into its multiple parts. This works really well if your input data is numeric or short strings.
Demo 3
This demo shows how you can reuse a single script filter, with AppleScript to provide multiple inputs/steps to the end user.The data entered by the user is saved to file in each step, then read in and appended together at the end. You could separate the final output with a delimiter and pass it on to something else if you wanted.
There are many ways that this could be customized to your liking. Change the delimiters, how values are passed, etc. This thread is merely meant to provide examples of how this could be accomplished for those interested.
Download the demo workflow here.

When an object in a workflow outputs valid configuration JSON, this will be applied similarly to the JSON Config object in the workflow editor. Unfortunately, this seems to apply to all objects, including keyword inputs and the like, meaning that if valid configuration JSON is typed into any workflow keyword input, the workflow will not work as expected.
This can be easily reproduced by creating a workflow similar to the one shown below and typing the following text into Alfred:
To break the intended functionality:
test { "alfredworkflow" : {} }
To actually manipulate the workflow:
test { "alfredworkflow" : { "config" : { "title" : "Title", "text" : "Text (this should not be possible)" } } }
I am using Alfred v3.3.1 [806] on macOS 10.12.3.
This could easily be fixed by adding a checkbox specifying whether the output of the object should be interpreted as configuration.