워크플로 마켓

워크플로 만드는 법

모든 작업은 AppPad 설정 안에서 끝납니다. 다른 도구는 필요 없습니다.

  1. 1

    “설정” › “워크플로”를 열고 “새로운 워크플로”를 선택하거나, “새로운 셸 워크플로” 또는 “새로운 AppleScript 워크플로”로 시작하세요.

  2. 2

    “이름”, “설명”, “키워드”를 입력하세요. 키워드를 정확히 입력하면 그 워크플로가 패널 맨 위에 옵니다.

  3. 3

    “인수”에서 키워드 뒤의 텍스트를 받을지, 그리고 어떻게 읽을지(텍스트, 기간, 시각, 숫자, 백분율, 미리 알림) 정하세요.

  4. 4

    “단계”에서 “단계 추가”을 사용하세요. 첫 단계는 인자를, 이후 단계는 이전 출력을 받습니다. 셸 스크립트에서는 stdin과 $APPPAD_INPUT, AppleScript와 JavaScript에서는 argv(on run argv, function run(argv)), HTTP 필드·단축어 입력·URL 열기에서는 {{input}}입니다.

  5. 5

    “선언된 권한”에서 필요한 파일, 네트워크 접근, 앱, 호스트, 비밀을 선언하세요. “단계에서 감지”을 누르면 단계에서 자동으로 채워집니다. 토큰은 “설정” › “워크플로” › “시크릿”에 저장하고 {{secret:NAME}}으로 사용합니다. 허용하기 전에 AppPad가 먼저 묻습니다.

  6. 6

    ⌘스페이스를 누르고 키워드를 입력한 뒤 ↩를 누르세요.

예시

각 예시는 완전한 워크플로입니다. AppPad에서 열어 바로 써 보거나, JSON을 읽고 구성을 확인하세요. 설치 전에 AppPad가 묻습니다.

셸 스크립트

Base64 인코딩

입력한 텍스트를 Base64로 인코딩하고 결과를 복사합니다.

입력 b64 hello world

필요한 권한

  • 이 워크플로에는 권한이 필요하지 않습니다.
JSON
JSON 보기
{
  "formatVersion": "1.0",
  "id": "com.youmindhub.example.base64",
  "version": "1.0",
  "name": "Base64 Encode",
  "description": "Encode the text you type as Base64 and copy the result.",
  "localizations": {
    "de": {
      "name": "Base64-Kodierung",
      "description": "Kodiert den getippten Text als Base64 und kopiert das Ergebnis."
    },
    "es": {
      "name": "Codificar en Base64",
      "description": "Codifica en Base64 el texto que escribes y copia el resultado."
    },
    "fr": {
      "name": "Encoder en Base64",
      "description": "Encode en Base64 le texte saisi et copie le résultat."
    },
    "it": {
      "name": "Codifica Base64",
      "description": "Codifica in Base64 il testo digitato e copia il risultato."
    },
    "ja": {
      "name": "Base64 エンコード",
      "description": "入力したテキストを Base64 にエンコードし、結果をコピーします。"
    },
    "ko": {
      "name": "Base64 인코딩",
      "description": "입력한 텍스트를 Base64로 인코딩하고 결과를 복사합니다."
    },
    "nl": {
      "name": "Base64-codering",
      "description": "Codeert de getypte tekst als Base64 en kopieert het resultaat."
    },
    "zh-Hans": {
      "name": "Base64 编码",
      "description": "把输入的文字编码为 Base64 并复制结果。"
    },
    "zh-Hant": {
      "name": "Base64 編碼",
      "description": "把輸入的文字編碼為 Base64 並拷貝結果。"
    }
  },
  "group": "Examples",
  "keywords": [
    "b64",
    "base64"
  ],
  "argument": "required",
  "argumentType": "text",
  "argumentHint": "text",
  "symbol": "textformat",
  "successNotice": "output",
  "successMessage": "",
  "failureNotice": "error",
  "failureMessage": "",
  "copyOutput": true,
  "steps": [
    {
      "kind": "shell",
      "script": "printf '%s' \"$APPPAD_INPUT\" | base64",
      "timeout": 10
    }
  ],
  "permissions": {}
}
셸 스크립트

날씨

wttr.in에서 도시의 현재 날씨를 보여 줍니다. 도시를 생략하면 현재 위치를 사용합니다.

입력 weather Tokyo

필요한 권한

  • 스크립트에서 네트워크에 접근
JSON
JSON 보기
{
  "formatVersion": "1.0",
  "id": "com.youmindhub.example.weather",
  "version": "1.0",
  "name": "Weather",
  "description": "Show the current weather for a city from wttr.in. Without a city it uses your location.",
  "localizations": {
    "de": {
      "name": "Wetter",
      "description": "Zeigt das aktuelle Wetter für eine Stadt von wttr.in. Ohne Stadt wird dein Standort verwendet."
    },
    "es": {
      "name": "Tiempo",
      "description": "Muestra el tiempo actual de una ciudad desde wttr.in. Sin ciudad, usa tu ubicación."
    },
    "fr": {
      "name": "Météo",
      "description": "Affiche la météo actuelle d’une ville depuis wttr.in. Sans ville, votre position est utilisée."
    },
    "it": {
      "name": "Meteo",
      "description": "Mostra il meteo attuale di una città da wttr.in. Senza città usa la tua posizione."
    },
    "ja": {
      "name": "天気",
      "description": "wttr.in から都市の現在の天気を表示します。都市を省略すると現在地を使います。"
    },
    "ko": {
      "name": "날씨",
      "description": "wttr.in에서 도시의 현재 날씨를 보여 줍니다. 도시를 생략하면 현재 위치를 사용합니다."
    },
    "nl": {
      "name": "Weer",
      "description": "Toont het huidige weer voor een stad via wttr.in. Zonder stad wordt je locatie gebruikt."
    },
    "zh-Hans": {
      "name": "天气",
      "description": "从 wttr.in 显示城市的当前天气;不填城市则使用你的所在位置。"
    },
    "zh-Hant": {
      "name": "天氣",
      "description": "從 wttr.in 顯示城市的目前天氣;不填城市則使用你的所在位置。"
    }
  },
  "group": "Examples",
  "keywords": [
    "weather",
    "wttr"
  ],
  "argument": "optional",
  "argumentType": "text",
  "argumentHint": "city",
  "symbol": "cloud.sun",
  "successNotice": "output",
  "successMessage": "",
  "failureNotice": "error",
  "failureMessage": "",
  "copyOutput": false,
  "steps": [
    {
      "kind": "shell",
      "script": "curl -fsS \"https://wttr.in/${APPPAD_INPUT// /+}?format=3\"",
      "timeout": 20
    }
  ],
  "permissions": {
    "network": true
  }
}
셸 스크립트

빠른 메모

~/AppPad/Notes.txt에 시각이 붙은 한 줄을 추가합니다.

입력 note call the bank

필요한 권한

  • ~/AppPad 내 파일 읽기 및 변경
JSON
JSON 보기
{
  "formatVersion": "1.0",
  "id": "com.youmindhub.example.note",
  "version": "1.0",
  "name": "Quick Note",
  "description": "Append a timestamped line to ~/AppPad/Notes.txt.",
  "localizations": {
    "de": {
      "name": "Schnelle Notiz",
      "description": "Hängt eine Zeile mit Zeitstempel an ~/AppPad/Notes.txt an."
    },
    "es": {
      "name": "Nota rápida",
      "description": "Añade una línea con fecha y hora a ~/AppPad/Notes.txt."
    },
    "fr": {
      "name": "Note rapide",
      "description": "Ajoute une ligne horodatée à ~/AppPad/Notes.txt."
    },
    "it": {
      "name": "Nota veloce",
      "description": "Aggiunge una riga con data e ora a ~/AppPad/Notes.txt."
    },
    "ja": {
      "name": "クイックメモ",
      "description": "日時付きの 1 行を ~/AppPad/Notes.txt に追記します。"
    },
    "ko": {
      "name": "빠른 메모",
      "description": "~/AppPad/Notes.txt에 시각이 붙은 한 줄을 추가합니다."
    },
    "nl": {
      "name": "Snelle notitie",
      "description": "Voegt een regel met tijdstempel toe aan ~/AppPad/Notes.txt."
    },
    "zh-Hans": {
      "name": "快速笔记",
      "description": "把带时间的一行追加到 ~/AppPad/Notes.txt。"
    },
    "zh-Hant": {
      "name": "快速筆記",
      "description": "把帶時間的一行附加到 ~/AppPad/Notes.txt。"
    }
  },
  "group": "Examples",
  "keywords": [
    "note",
    "jot"
  ],
  "argument": "required",
  "argumentType": "text",
  "argumentHint": "note",
  "symbol": "note.text",
  "successNotice": "custom",
  "successMessage": "✓ {{output}}",
  "failureNotice": "error",
  "failureMessage": "",
  "copyOutput": false,
  "steps": [
    {
      "kind": "shell",
      "script": "mkdir -p ~/AppPad\nprintf '%s  %s\\n' \"$(date '+%F %R')\" \"$APPPAD_INPUT\" >> ~/AppPad/Notes.txt\necho \"~/AppPad/Notes.txt\"",
      "timeout": 10
    }
  ],
  "permissions": {
    "fileWrite": [
      "~/AppPad"
    ]
  }
}
AppleScript

Finder 경로 복사

Finder에서 선택한 파일 또는 열린 폴더의 경로를 복사합니다.

입력 path

필요한 권한

  • 시스템 서비스 사용(앱 열기, 클립보드, 알림)
  • Finder 제어

처음 실행할 때 macOS가 AppPad의 Finder 제어를 허용할지 묻습니다.

JSON
JSON 보기
{
  "formatVersion": "1.0",
  "id": "com.youmindhub.example.finderpath",
  "version": "1.0",
  "name": "Copy Finder Path",
  "description": "Copy the paths of the files selected in Finder, or of the open folder.",
  "localizations": {
    "de": {
      "name": "Finder-Pfad kopieren",
      "description": "Kopiert die Pfade der im Finder ausgewählten Dateien oder des geöffneten Ordners."
    },
    "es": {
      "name": "Copiar ruta del Finder",
      "description": "Copia las rutas de los archivos seleccionados en el Finder o de la carpeta abierta."
    },
    "fr": {
      "name": "Copier le chemin Finder",
      "description": "Copie les chemins des fichiers sélectionnés dans le Finder, ou du dossier ouvert."
    },
    "it": {
      "name": "Copia percorso Finder",
      "description": "Copia i percorsi dei file selezionati nel Finder o della cartella aperta."
    },
    "ja": {
      "name": "Finder のパスをコピー",
      "description": "Finder で選択したファイル、または開いているフォルダのパスをコピーします。"
    },
    "ko": {
      "name": "Finder 경로 복사",
      "description": "Finder에서 선택한 파일 또는 열린 폴더의 경로를 복사합니다."
    },
    "nl": {
      "name": "Finder-pad kopiëren",
      "description": "Kopieert de paden van de in de Finder geselecteerde bestanden of van de geopende map."
    },
    "zh-Hans": {
      "name": "复制访达路径",
      "description": "复制在访达中选中的文件路径,或当前打开的文件夹路径。"
    },
    "zh-Hant": {
      "name": "拷貝 Finder 路徑",
      "description": "拷貝在 Finder 中選取的檔案路徑,或目前打開的檔案夾路徑。"
    }
  },
  "group": "Examples",
  "keywords": [
    "path",
    "finderpath"
  ],
  "symbol": "folder",
  "successNotice": "output",
  "successMessage": "",
  "failureNotice": "error",
  "failureMessage": "",
  "copyOutput": true,
  "steps": [
    {
      "kind": "appleScript",
      "language": "appleScript",
      "script": "on run argv\n\ttell application \"Finder\"\n\t\tset picked to selection as alias list\n\t\tif picked is {} then return POSIX path of (insertion location as alias)\n\tend tell\n\tset paths to {}\n\trepeat with f in picked\n\t\tset end of paths to POSIX path of f\n\tend repeat\n\tset AppleScript's text item delimiters to linefeed\n\treturn paths as text\nend run",
      "timeout": 20
    }
  ],
  "permissions": {
    "appleEvents": [
      "com.apple.finder"
    ]
  }
}
JavaScript

단어 첫 글자 대문자

각 단어의 첫 글자를 대문자로 바꾸고 결과를 복사합니다.

입력 title the quick brown fox

필요한 권한

  • 시스템 서비스 사용(앱 열기, 클립보드, 알림)
JSON
JSON 보기
{
  "formatVersion": "1.0",
  "id": "com.youmindhub.example.titlecase",
  "version": "1.0",
  "name": "Title Case",
  "description": "Capitalize the first letter of every word and copy the result.",
  "localizations": {
    "de": {
      "name": "Wortanfänge groß",
      "description": "Schreibt jeden Wortanfang groß und kopiert das Ergebnis."
    },
    "es": {
      "name": "Mayúsculas iniciales",
      "description": "Pone en mayúscula la primera letra de cada palabra y copia el resultado."
    },
    "fr": {
      "name": "Majuscules initiales",
      "description": "Met une majuscule à chaque mot et copie le résultat."
    },
    "it": {
      "name": "Iniziali maiuscole",
      "description": "Mette in maiuscolo la prima lettera di ogni parola e copia il risultato."
    },
    "ja": {
      "name": "単語の先頭を大文字に",
      "description": "各単語の先頭を大文字にして結果をコピーします。"
    },
    "ko": {
      "name": "단어 첫 글자 대문자",
      "description": "각 단어의 첫 글자를 대문자로 바꾸고 결과를 복사합니다."
    },
    "nl": {
      "name": "Hoofdletters per woord",
      "description": "Zet de eerste letter van elk woord in hoofdletters en kopieert het resultaat."
    },
    "zh-Hans": {
      "name": "单词首字母大写",
      "description": "把每个单词的首字母改成大写并复制结果。"
    },
    "zh-Hant": {
      "name": "單字首字母大寫",
      "description": "把每個單字的首字母改成大寫並拷貝結果。"
    }
  },
  "group": "Examples",
  "keywords": [
    "title",
    "titlecase"
  ],
  "argument": "required",
  "argumentType": "text",
  "argumentHint": "text",
  "symbol": "textformat.size",
  "successNotice": "output",
  "successMessage": "",
  "failureNotice": "error",
  "failureMessage": "",
  "copyOutput": true,
  "steps": [
    {
      "kind": "appleScript",
      "language": "javaScript",
      "script": "function run(argv) {\n  const text = argv.join(\" \")\n  return text.toLowerCase().replace(/(^|[\\s-])(\\S)/g, (m, p, c) => p + c.toUpperCase())\n}",
      "timeout": 10
    }
  ],
  "permissions": {}
}
단축어

텍스트 읽기

텍스트를 소리 내어 읽는 단축어로 보냅니다.

입력 speak good morning

필요한 권한

  • 'AppPad Speak' 단축어 실행

먼저 단축어 앱에서 'AppPad Speak'라는 단축어를 만들고, '텍스트 말하기' 동작 하나를 추가해 단축어 입력을 사용하도록 설정하세요.

JSON
JSON 보기
{
  "formatVersion": "1.0",
  "id": "com.youmindhub.example.speak",
  "version": "1.0",
  "name": "Speak Text",
  "description": "Send the text to a shortcut that reads it aloud.",
  "localizations": {
    "de": {
      "name": "Text sprechen",
      "description": "Sendet den Text an einen Kurzbefehl, der ihn vorliest."
    },
    "es": {
      "name": "Leer texto en voz alta",
      "description": "Envía el texto a un atajo que lo lee en voz alta."
    },
    "fr": {
      "name": "Lire le texte",
      "description": "Envoie le texte à un raccourci qui le lit à voix haute."
    },
    "it": {
      "name": "Leggi testo",
      "description": "Invia il testo a un comando rapido che lo legge ad alta voce."
    },
    "ja": {
      "name": "テキストを読み上げ",
      "description": "テキストを読み上げるショートカットに送ります。"
    },
    "ko": {
      "name": "텍스트 읽기",
      "description": "텍스트를 소리 내어 읽는 단축어로 보냅니다."
    },
    "nl": {
      "name": "Tekst uitspreken",
      "description": "Stuurt de tekst naar een opdracht die hem voorleest."
    },
    "zh-Hans": {
      "name": "朗读文字",
      "description": "把文字交给一个快捷指令朗读出来。"
    },
    "zh-Hant": {
      "name": "朗讀文字",
      "description": "把文字交給一個捷徑朗讀出來。"
    }
  },
  "group": "Examples",
  "keywords": [
    "speak",
    "say"
  ],
  "argument": "required",
  "argumentType": "text",
  "argumentHint": "text",
  "symbol": "waveform",
  "successNotice": "none",
  "successMessage": "",
  "failureNotice": "error",
  "failureMessage": "",
  "copyOutput": false,
  "steps": [
    {
      "kind": "shortcut",
      "shortcutName": "AppPad Speak",
      "timeout": 60
    }
  ],
  "permissions": {}
}
HTTP 요청

URL 줄이기

is.gd로 링크를 줄이고 짧은 URL을 복사합니다.

입력 short https://example.com/a/long/link

필요한 권한

  • is.gd에 HTTP 요청 보내기
JSON
JSON 보기
{
  "formatVersion": "1.0",
  "id": "com.youmindhub.example.shorten",
  "version": "1.0",
  "name": "Shorten URL",
  "description": "Shorten a link with is.gd and copy the short URL.",
  "localizations": {
    "de": {
      "name": "URL kürzen",
      "description": "Kürzt einen Link mit is.gd und kopiert die kurze URL."
    },
    "es": {
      "name": "Acortar URL",
      "description": "Acorta un enlace con is.gd y copia la URL corta."
    },
    "fr": {
      "name": "Raccourcir une URL",
      "description": "Raccourcit un lien avec is.gd et copie l’URL courte."
    },
    "it": {
      "name": "Accorcia URL",
      "description": "Accorcia un link con is.gd e copia l’URL breve."
    },
    "ja": {
      "name": "URL を短縮",
      "description": "is.gd でリンクを短縮し、短い URL をコピーします。"
    },
    "ko": {
      "name": "URL 줄이기",
      "description": "is.gd로 링크를 줄이고 짧은 URL을 복사합니다."
    },
    "nl": {
      "name": "URL inkorten",
      "description": "Kort een link in met is.gd en kopieert de korte URL."
    },
    "zh-Hans": {
      "name": "缩短网址",
      "description": "用 is.gd 缩短链接并复制短网址。"
    },
    "zh-Hant": {
      "name": "縮短網址",
      "description": "用 is.gd 縮短連結並拷貝短網址。"
    }
  },
  "group": "Examples",
  "keywords": [
    "short",
    "isgd"
  ],
  "argument": "required",
  "argumentType": "text",
  "argumentHint": "url",
  "symbol": "link",
  "successNotice": "output",
  "successMessage": "",
  "failureNotice": "error",
  "failureMessage": "",
  "copyOutput": true,
  "steps": [
    {
      "kind": "http",
      "http": {
        "method": "GET",
        "url": "https://is.gd/create.php?format=simple&url={{input}}",
        "headers": "",
        "body": ""
      },
      "timeout": 20
    }
  ],
  "permissions": {
    "httpHosts": [
      "is.gd"
    ]
  }
}
여러 단계

휴대폰으로 보내기

ntfy로 텍스트를 휴대폰에 보냅니다. 1단계에서 JSON으로 바꾸고, 2단계에서 비밀 토픽으로 보냅니다.

입력 phone dinner is ready

필요한 권한

  • 시스템 서비스 사용(앱 열기, 클립보드, 알림)
  • ntfy.sh에 HTTP 요청 보내기
  • HTTP 요청에서 시크릿 'NTFY_TOPIC' 사용

휴대폰에 ntfy 앱을 설치하고 길고 추측하기 어려운 토픽을 구독하세요. 그런 다음 설정 › 워크플로 › 시크릿에 NTFY_TOPIC으로 추가하세요.

JSON
JSON 보기
{
  "formatVersion": "1.0",
  "id": "com.youmindhub.example.phone",
  "version": "1.0",
  "name": "Send to Phone",
  "description": "Push the text to your phone with ntfy. Step 1 turns it into JSON, step 2 sends it with your secret topic.",
  "localizations": {
    "de": {
      "name": "An Handy senden",
      "description": "Schickt den Text per ntfy aufs Handy. Schritt 1 macht JSON daraus, Schritt 2 sendet es mit deinem geheimen Thema."
    },
    "es": {
      "name": "Enviar al móvil",
      "description": "Envía el texto a tu móvil con ntfy. El paso 1 lo convierte en JSON y el paso 2 lo envía con tu tema secreto."
    },
    "fr": {
      "name": "Envoyer au téléphone",
      "description": "Envoie le texte sur votre téléphone avec ntfy. L’étape 1 le convertit en JSON, l’étape 2 l’envoie avec votre sujet secret."
    },
    "it": {
      "name": "Invia al telefono",
      "description": "Invia il testo al telefono con ntfy. Il passaggio 1 lo trasforma in JSON, il passaggio 2 lo invia con il tuo argomento segreto."
    },
    "ja": {
      "name": "スマホに送信",
      "description": "ntfy でテキストをスマホに送ります。ステップ 1 で JSON にし、ステップ 2 で秘密のトピックに送信します。"
    },
    "ko": {
      "name": "휴대폰으로 보내기",
      "description": "ntfy로 텍스트를 휴대폰에 보냅니다. 1단계에서 JSON으로 바꾸고, 2단계에서 비밀 토픽으로 보냅니다."
    },
    "nl": {
      "name": "Naar telefoon sturen",
      "description": "Stuurt de tekst via ntfy naar je telefoon. Stap 1 maakt er JSON van, stap 2 verstuurt het met je geheime onderwerp."
    },
    "zh-Hans": {
      "name": "发送到手机",
      "description": "用 ntfy 把文字推送到手机。第 1 步转成 JSON,第 2 步用你的秘密主题发送。"
    },
    "zh-Hant": {
      "name": "傳送到手機",
      "description": "用 ntfy 把文字推送到手機。第 1 步轉成 JSON,第 2 步用你的秘密主題傳送。"
    }
  },
  "group": "Examples",
  "keywords": [
    "phone",
    "ntfy"
  ],
  "argument": "required",
  "argumentType": "text",
  "argumentHint": "text",
  "symbol": "iphone",
  "successNotice": "none",
  "successMessage": "",
  "failureNotice": "error",
  "failureMessage": "",
  "copyOutput": false,
  "steps": [
    {
      "kind": "appleScript",
      "language": "javaScript",
      "script": "function run(argv) {\n  return JSON.stringify(argv.join(\" \"))\n}",
      "timeout": 10
    },
    {
      "kind": "http",
      "http": {
        "method": "POST",
        "url": "https://ntfy.sh/",
        "headers": "Content-Type: application/json",
        "body": "{\"topic\": \"{{secret:NTFY_TOPIC}}\", \"title\": \"AppPad\", \"message\": {{input}}}"
      },
      "timeout": 20
    }
  ],
  "permissions": {
    "httpHosts": [
      "ntfy.sh"
    ],
    "secrets": [
      "NTFY_TOPIC"
    ]
  }
}
내장 동작

YouTube 검색

입력한 텍스트의 YouTube 검색 결과를 엽니다.

입력 yt lofi

필요한 권한

  • 웹 페이지 및 링크 열기
JSON
JSON 보기
{
  "formatVersion": "1.0",
  "id": "com.youmindhub.example.youtube",
  "version": "1.0",
  "name": "Search YouTube",
  "description": "Open YouTube search results for the text you type.",
  "localizations": {
    "de": {
      "name": "Auf YouTube suchen",
      "description": "Öffnet die YouTube-Suchergebnisse für den getippten Text."
    },
    "es": {
      "name": "Buscar en YouTube",
      "description": "Abre los resultados de búsqueda de YouTube para el texto que escribes."
    },
    "fr": {
      "name": "Rechercher sur YouTube",
      "description": "Ouvre les résultats de recherche YouTube pour le texte saisi."
    },
    "it": {
      "name": "Cerca su YouTube",
      "description": "Apre i risultati di ricerca di YouTube per il testo digitato."
    },
    "ja": {
      "name": "YouTube で検索",
      "description": "入力したテキストの YouTube 検索結果を開きます。"
    },
    "ko": {
      "name": "YouTube 검색",
      "description": "입력한 텍스트의 YouTube 검색 결과를 엽니다."
    },
    "nl": {
      "name": "Zoeken op YouTube",
      "description": "Opent de YouTube-zoekresultaten voor de getypte tekst."
    },
    "zh-Hans": {
      "name": "搜索 YouTube",
      "description": "打开输入文字的 YouTube 搜索结果。"
    },
    "zh-Hant": {
      "name": "搜尋 YouTube",
      "description": "打開輸入文字的 YouTube 搜尋結果。"
    }
  },
  "group": "Examples",
  "keywords": [
    "yt",
    "youtube"
  ],
  "argument": "required",
  "argumentType": "text",
  "argumentHint": "keywords",
  "symbol": "play.rectangle",
  "successNotice": "none",
  "successMessage": "",
  "failureNotice": "error",
  "failureMessage": "",
  "copyOutput": false,
  "steps": [
    {
      "kind": "builtin",
      "builtin": "openURL",
      "url": "https://www.youtube.com/results?search_query={{input}}",
      "timeout": 10
    }
  ],
  "permissions": {}
}

공유와 가져오기

“내보내기…”로 워크플로를 공유할 파일로 저장하고, “가져오기…”로 추가합니다. 각 워크플로에는 고유 ID가 있으며, 같은 ID에 더 높은 버전을 가져오면 이전 것을 대체합니다.