alfred-workflow
Create or modify Alfred workflows by writing info.plist files directly
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Create or modify Alfred workflows by writing info.plist files directly
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
Debugging a ghostty crash
Drive a real browser during frontend work — verify a change rendered, click through a flow, fill forms, read console errors, take screenshots, or debug performance/memory/network. Use whenever interacting with a local web app in a browser (Playwright script templates, chrome-devtools tradeoffs, SPA mock-API gotchas).
How to use the tviz CLI to read and write Things 3 tasks
For non-Codex agents, get a Codex second opinion on your changes. Claude sends the diff to Codex for review, discusses the feedback, and synthesizes actionable results.
Productivity coach
Read Oxide RFD contents, metadata, and images by number using rfd-cli. Use when an RFD comes up (e.g. "RFD 63", "what does the networking RFD say") and you need the actual text.
| name | alfred-workflow |
| description | Create or modify Alfred workflows by writing info.plist files directly |
Alfred workflows live in ~/Library/Application Support/Alfred/Alfred.alfredpreferences/workflows/.
Each workflow is a directory named user.workflow.<UUID> containing an info.plist.
uuidgeninfo.plist with the structure belowplutil -lint <path>An info.plist defines:
objects: Array of workflow nodes, each with a type, uid, config, and versionconnections: Dict mapping source UIDs to arrays of {destinationuid, modifiers, modifiersubtext, vitoclose} dictsuidata: Dict mapping UIDs to {xpos, ypos} for canvas layout (space nodes ~230px apart horizontally)name, description, bundleid: Workflow metadataKeyword input (alfred.workflow.input.keyword, version 1):
keyword: the trigger wordargumenttype: 0 = required, 1 = optional, 2 = nonetext: display title in Alfred resultssubtext: subtitle textwithspace: true to allow space before argumentRun Script (alfred.workflow.action.script, version 2):
script: the script body (XML-escaped)type: 0 = bash, 5 = zshscriptargtype: 0 = input as {query} in script, 1 = input as argv ($1 in bash, $argv in zsh)escaping: bitmask (102 = spaces+tilde+backslashes+double quotes, does not escape $)concurrently: false for sequential executionscriptfile: empty string for inline scriptsPost Notification (alfred.workflow.output.notification, version 1):
title: notification titletext: notification body (use {query} for script output)lastpathcomponent: falseremoveextension: falseClipboard (alfred.workflow.output.clipboard, version 3):
clipboardtext: text to copy (use {query})autopaste: true to paste immediatelytransient: true to not save in clipboard historyOpen URL (alfred.workflow.action.openurl, version 1):
url: the URL to openbrowser: bundle ID (e.g., com.google.Chrome) or empty for defaultExisting workflows to study for patterns:
user.workflow.CF67E427-2764-4E80-8A14-50E9E23CAC2A — Google Meet (simple keyword → open URL)user.workflow.A0DC9B64-8694-4A42-B13B-15D6EEDD9691 — Transform selected text (hotkey + keyword → script → clipboard, uses variables)user.workflow.FE496108-4453-4225-87DD-C457FD27420C — Details Wrap (keyword → script → notification)for d in ~/Library/Application\ Support/Alfred/Alfred.alfredpreferences/workflows/*/; do /usr/libexec/PlistBuddy -c "Print :name" "$d/info.plist" 2>/dev/null; done/usr/libexec/PlistBuddy or just Read the info.plist< and > in script bodies as < and >