#alfred #workflow


⚡ Detach a background process from your Alfred workflow

4 releases

0.4.2 Sep 20, 2022
0.4.1 Mar 20, 2022
0.4.0 Mar 19, 2022
0.3.1 Feb 10, 2022

#966 in Command line utilities

Download history 9/week @ 2022-11-28 23/week @ 2022-12-05 28/week @ 2022-12-12 20/week @ 2022-12-19 12/week @ 2022-12-26 8/week @ 2023-01-02 17/week @ 2023-01-09 7/week @ 2023-01-16 29/week @ 2023-01-23 32/week @ 2023-01-30 14/week @ 2023-02-06 19/week @ 2023-02-13 27/week @ 2023-02-20 1/week @ 2023-02-27 27/week @ 2023-03-06 12/week @ 2023-03-13

73 downloads per month
Used in powerpack


64 lines

⚡ powerpack

Crates.io Version Docs.rs Latest Build Status

Supercharge your Alfred 🎩 workflows by building them in Rust 🦀!

🚀 Getting started

This project contains a powerpack crate which provides types for developing script filter Alfred workflows in Rust. It also provides a command line tool to initialize, build, and install workflows built using the powerpack crate.

Firstly, install the command line tool.

cargo install powerpack-cli

Now create a new project using a similar API as cargo new or cargo init.

powerpack new myworkflow && cd myworkflow

This will create a new Rust project as well as a workflow/ directory containing information about your Alfred workflow. The following will create a release build of the workflow and copy it to the workflow/ directory.

powerpack build --release

Now you can link it to Alfred. The following will symlink the workflow/ directory to the Alfred preferences folder.

powerpack link

Now you can run the workflow from Alfred ✨!

To package a .alfredworkflow file for release you can run the following.

powerpack package

The release will be available at target/workflow/myworkflow.alfredworkflow.

🤸 Usage

The following is a "Hello World!" Alfred workflow built using powerpack.

use std::env;
use std::error::Error;
use std::iter;

fn main() -> Result<(), Box<dyn Error>> {
    // Alfred passes in a single argument for the user query.
    let arg = env::args().nth(1);
    let query = arg.as_deref().unwrap_or("");

    // Create an item to show in the Alfred drop down.
    let item = powerpack::Item::new("Hello World!")
        .subtitle(format!("Your query was '{}'", query));

    // Output the item to Alfred!


This would render an item as shown.


👷 GitHub Action

setup-crate can be used to install powerpack in a GitHub Actions workflow. For example:

  - uses: actions/checkout@v2
  - uses: extractions/setup-crate@v1
      owner: rossmacarthur
      name: powerpack
  - run: powerpack package
  # produces an artifact at `target/workflow/{name}.alfredworkflow`

💡 Examples

The following projects are built using powerpack.


Licensed under either of

at your option.