afwf_md5 — MD5 / SHA-256 / SHA-512 Alfred Workflow
An Alfred Workflow that computes MD5, SHA-256, and SHA-512 checksums of local files directly from Alfred. No terminal needed — type a path, get a hash, copy it with ⌘C.
When the query is empty, the workflow generates 10 random hashes so you can use it as a secure random string generator.
Install
Make sure you have Alfred 5+ installed with the Power Pack.
Go to Releases and download the latest .alfredworkflow file.
Double-click the file to install.
Usage
Compute MD5
Type md5 followed by an absolute file path:
md5 /path/to/file.zip
File found — returns the MD5 hex digest. Press ⌘C to copy.
Empty query — generates 10 random MD5 hashes (useful as secure random strings).
Directory — shows an error item (directories are not supported).
Path not found — shows an error item.
Compute SHA-256
Type sha256 followed by a path:
sha256 /path/to/file.zip
Compute SHA-512
Type sha512 followed by a path:
sha512 /path/to/file.zip
CLI Reference
The workflow is backed by a Python CLI (afwf-md5) with one subcommand per algorithm. Alfred’s Script Filter calls these directly.
Subcommand |
Alfred keyword |
Output |
|---|---|---|
afwf-md5 md5 --query '{query}' |
md5 |
MD5 hex digest (32 chars) |
afwf-md5 sha256 --query '{query}' |
sha256 |
SHA-256 hex digest (64 chars) |
afwf-md5 sha512 --query '{query}' |
sha512 |
SHA-512 hex digest (128 chars) |
Dev Script field (local .venv):
.venv/bin/afwf-md5 md5 --query '{query}'
Production Script field (via uvx, no virtualenv needed):
~/.local/bin/uvx --from afwf_md5==0.1.1 afwf-md5 md5 --query '{query}'
Error Log
Runtime errors are written to:
~/.alfred-afwf/afwf_md5/error.log
If a Script Filter returns an error item, pressing Enter opens the log file directly.
Development
# Install dependencies
mise run inst
# Run tests with coverage
mise run cov
The core logic lives in two files:
afwf_md5/hashes.py — pure function main(query, hash_algo) → ScriptFilter, no Alfred dependency, fully unit-testable.
afwf_md5/cli.py — Command class wired to fire.Fire; each method calls hashes.main() and sends feedback to Alfred.
Metadata
Release files for afwf_md5 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| afwf_md5-0.1.2.tar.gz | 12.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| afwf_md5-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 23.4 kB
Release files / afwf_md5-0.1.2.tar.gz
| Download URL | afwf_md5-0.1.2.tar.gz |
|---|---|
| Size | 12.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
2db828d6b97d0693b4d20bed1a7102266f548ce298aa8281942aebeb56d15454
|
|
BLAKE2b-256 checksum How to use checksums |
51f075c55f52fd32ad1242611faf54c4296f5ebc572949dbad19a2ce93699152
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / afwf_md5-0.1.2-py3-none-any.whl
| Download URL | afwf_md5-0.1.2-py3-none-any.whl |
|---|---|
| Size | 10.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
11437df2f7e7263d8e8acd9c0641f866c027d16f9d18d27a7109cebca143ec85
|
|
BLAKE2b-256 checksum How to use checksums |
90e54d3a7cdfb23fbd9d59d56b0491cb388c41c6d25e79fc1d00d499b54a9df0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|