| Crates.io | powerpack-env |
| lib.rs | powerpack-env |
| version | 0.7.0 |
| created_at | 2022-09-20 17:50:08.674007+00 |
| updated_at | 2025-09-03 08:07:01.622286+00 |
| description | ⚡ Useful environment variables in Alfred workflows |
| homepage | |
| repository | https://github.com/rossmacarthur/powerpack |
| max_upload_size | |
| id | 670054 |
| size | 15,752 |
Supercharge your Alfred 🎩 workflows by building them in Rust 🦀!
This project contains a powerpack crate which provides types for developing
script filter Alfred workflows in Rust as well as various utilities that make it
easier to build workflows. 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.
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!
powerpack::output(iter::once(item))?;
Ok(())
}
This would render an item as shown.

setup-crate can be used to install powerpack in a GitHub Actions
workflow. For example:
steps:
- uses: actions/checkout@v2
- uses: extractions/setup-crate@v1
with:
repo: rossmacarthur/powerpack
- run: powerpack package
# produces an artifact at `target/workflow/{name}.alfredworkflow`
The following projects are built using powerpack.
Licensed under either of
at your option.