Extension AuthoringRequirements & Expression Engine
Requirements & Expression Engine
Visibility requirements, regex matching, and the ValidateExpression DSL engine.
Agent Prompt
Copy instruction prompt for Cursor, Claude, Antigravity, or ChatGPT.
Requirements Object
Control exactly when and where your actions appear in the popup HUD:
openclip.json
"requirements": {
// Disables action if selection is empty (default: true)
"requiresSelection": true,
// Frontmost app filter
"apps": ["com.apple.Safari", "com.google.Chrome"],
"appsMode": "allow", // "allow" (default) or "deny"
// Regex pattern matching
"regex": "^[0-9]+$",
"regexNegated": false,
// Short-circuit to Preferences if required options are empty
"requiredOptions": ["apiKey"],
// Computed DSL boolean expression
"expression": "length(text) > 10 && !isURL(text)"
}4-Step Visibility Pipeline
Step 1: Selection Presence
If requiresSelection: true and trimmed text is empty → Disabled.
Step 2: App Bundle Filtering
Matches frontmost application bundle ID against apps using allow/deny policy.
Step 3: Regular Expression Gate
Evaluates regex (dot-matches-all, case-insensitive). Captures are passed to context.
Step 4: Expression AST Evaluation
Parses and computes boolean result from expression DSL string.
ValidateExpression DSL Engine
OpenClip includes a bounded recursive-descent expression evaluator (ValidateExpression.swift) compiled at load time with zero runtime scripting overhead.