Skip to content

Référence des actions ​

Cette référence est générée à partir du catalogue de l'éditeur frontend d'Echo et de son moteur de workflow Rust. Les libellés et la configuration de l'éditeur sont rapprochés du comportement réellement exécutable avant publication.

Editor actions ​

Core ​

Invite LLM ​

Exécute une invite LLM avec le profil de fournisseur configuré et publie le texte renvoyé. Aucun modèle précis n'est garanti.

État d'exécution: production_registered Champs: Custom Name (optional), Instructions Prompt (optional), Temperature (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{llm_result}} (string) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Résumez {{file_content}} en trois puces, puis utilisez {{llm_result}} dans une étape ultérieure.


Coller ​

Interpole le texte, le copie dans le presse-papiers système, puis simule le raccourci de collage de la plateforme dans l'application active. Paste as a single line remplace d'abord les sauts de ligne par des espaces. Dans la version macOS App Store, la simulation du collage ne fait rien si l'autorisation Accessibilité est indisponible.

État d'exécution: production_registered Champs: Custom Name (optional), Content to paste (required), Paste as a single line (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: Aucune Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Collez {{llm_result}} dans le document actif ; activez le mode sur une seule ligne avant de coller une valeur multiligne dans un terminal.


Copier dans le presse-papiers ​

Place une chaîne dans le presse-papiers système. Prend en charge l'interpolation {{variable}}.

État d'exécution: production_registered Champs: Custom Name (optional), Text to copy (required) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: Aucune Autorisation: clipboardwrite / low Confirmation à l’exécution: Non

Exemple: Copiez {{formatted}} dans le presse-papiers afin que l'utilisateur puisse le coller manuellement à tout moment.


Frappe clavier ​

Simule une combinaison de touches dans l'application active, par exemple cmd+s, enter, tab ou escape. La simulation ne fait rien dans la version macOS App Store.

État d'exécution: production_registered Champs: Custom Name (optional), Press key stroke (required) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: Aucune Autorisation: inputsynthesis / medium Confirmation à l’exécution: Non

Exemple: Appuyez sur cmd+s après une étape Coller pour enregistrer automatiquement le document.


Shell ​

Exécute une commande shell avec le délai d'expiration configuré et renvoie la sortie standard capturée sans supprimer les espaces initiaux ou finaux.

État d'exécution: production_registered Champs: Custom Name (optional), Shell Command (required), Timeout (seconds) (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{shell_out}} (string) Autorisation: shell / critical Confirmation à l’exécution: Oui

Exemple: git log --oneline -10 → {{shell_out}} contient les messages des 10 derniers commits.


Délai ​

Attend un nombre fixe de millisecondes avant de poursuivre. Utile entre des étapes de frappe lorsqu'une application doit avoir le temps de réagir.

État d'exécution: production_registered Champs: Custom Name (optional), Delay (milliseconds) (required) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: Aucune Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Attendez 300 ms après cmd+t pour laisser au navigateur le temps d'ouvrir un nouvel onglet avant d'y saisir du texte.


Définir une variable ​

Interpole le texte littéral et les {{expressions}}, puis enregistre la chaîne obtenue sous le nom de variable configuré.

État d'exécution: production_registered Champs: Custom Name (optional), Variable Name (required), Value (required) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{value}} (string) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Enregistrez {{cleaned}}\n\n---\n\n{{summary}} sous final_report.


Ouvrir une application ​

Lance une application à partir du nom configuré avec le lanceur de la plateforme. Sous macOS, Echo rapproche les noms partiels ou approchants des applications installées ; les chemins d'application ne sont pas pris en charge.

État d'exécution: production_registered Champs: Custom Name (optional), App path or name (required) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: Aucune Autorisation: shell / critical Confirmation à l’exécution: Oui

Exemple: Ouvrez TextEdit avant une étape Coller.


Basculer vers une application ​

Place une application en cours d'exécution au premier plan. Lorsque Launch if not running est activé, l'application est lancée si aucun processus actif n'est trouvé. Cette action ne fait rien dans la version macOS App Store.

État d'exécution: production_registered Champs: Custom Name (optional), App name (required), Launch if not running (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: Aucune Autorisation: appcontrol / medium Confirmation à l’exécution: Non

Exemple: Basculez vers Slack ; désactivez Launch if not running si le workflow doit seulement cibler un processus déjà ouvert.


Exécuter un workflow ​

Appelle un autre workflow comme sous-étape et capture sa sortie. Permet de composer de grands pipelines à partir de petits workflows réutilisables.

État d'exécution: runtime_registered Champs: Custom Name (optional), Target Workflow (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{workflow_result}} (object) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Exécutez le sous-workflow « Clean Grammar » sur votre transcription, puis transmettez {{workflow_result}} à une étape Écrire un fichier.

File System ​

Lire un fichier ​

Lit tout le contenu d'un fichier à un chemin donné. Le chemin accepte l'interpolation {{variable}}.

État d'exécution: production_registered Champs: Custom Name (optional), File Path (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{file_content}} (string) Autorisation: fileread / medium Confirmation à l’exécution: Non

Exemple: /tmp/meeting-{{datetime}}.md → {{file_content}} contient le texte du fichier.


Écrire un fichier ​

Écrit une chaîne dans un fichier, le crée s'il n'existe pas et l'écrase dans le cas contraire. Le chemin et le contenu acceptent l'interpolation {{variable}}.

État d'exécution: production_registered Champs: Custom Name (optional), File Path (required), Content (required) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: Aucune Autorisation: filewrite / medium Confirmation à l’exécution: Non

Exemple: Écrivez {{llm_result}} dans /tmp/budgie/summary.md ; les répertoires parents manquants sont créés.


Ajouter à un fichier ​

Ajoute une chaîne à la fin d'un fichier existant. Crée le fichier s'il n'existe pas.

État d'exécution: production_registered Champs: Custom Name (optional), File Path (required), Content (required) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: Aucune Autorisation: filewrite / medium Confirmation à l’exécution: Non

Exemple: Ajoutez {{llm_result}}\n à /tmp/echo-runs.log. Le répertoire parent doit déjà exister.


Lister les fichiers ​

Liste les entrées directes d'un répertoire. Glob Filter effectue actuellement une recherche de sous-chaîne dans le nom après suppression des * initiaux et finaux ; ce n'est pas une implémentation complète des globs.

État d'exécution: production_registered Champs: Custom Name (optional), Directory (required), Glob Filter (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{file_list}} (array) Autorisation: fileread / medium Confirmation à l’exécution: Non

Exemple: Le répertoire /tmp/reports avec le filtre *.md renvoie les entrées dont le nom contient .md.


Déplacer un fichier ​

Déplace ou renomme un fichier d'un chemin vers un autre.

État d'exécution: production_registered Champs: Custom Name (optional), Source Path (required), Destination Path (required) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: Aucune Autorisation: filewrite / medium Confirmation à l’exécution: Non

Exemple: Archivez un fichier traité en le déplaçant de /tmp/inbox/report.pdf vers /tmp/archive/report.pdf.


Copier un fichier ​

Duplique un fichier vers un nouveau chemin.

État d'exécution: production_registered Champs: Custom Name (optional), Source Path (required), Destination Path (required) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: Aucune Autorisation: filewrite / medium Confirmation à l’exécution: Non

Exemple: Sauvegardez un fichier de configuration avant de le modifier dans une étape ultérieure.


Supprimer un fichier ​

Supprime le fichier au chemin indiqué. Vérifiez les lignes d'autorisation et de confirmation à l'exécution générées avant de l'utiliser.

État d'exécution: production_registered Champs: Custom Name (optional), File Path (required) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: Aucune Autorisation: filedelete / high Confirmation à l’exécution: Oui

Exemple: Supprimez /tmp/budgie-doc-contract.txt lorsque le workflow n'en a plus besoin.


Vérifier l'existence d'un fichier ​

Vérifie si un fichier ou un répertoire existe au chemin indiqué. Transmettez le résultat à une étape If / Else.

État d'exécution: production_registered Champs: Custom Name (optional), File Path (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{file_exists}} (boolean) Autorisation: fileread / medium Confirmation à l’exécution: Non

Exemple: /tmp/report.md → {{file_exists}} vaut true ou false.


Obtenir les informations du fichier ​

Renvoie size, is_file, is_dir, readonly, name, extension et, si disponible, modified_secs sous forme de secondes entières depuis l'époque Unix.

État d'exécution: production_registered Champs: Custom Name (optional), File Path (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{file_info}} (object) Autorisation: fileread / medium Confirmation à l’exécution: Non

Exemple: {{file_info}} contient des valeurs comme name: report.md, size: 4096, is_file: true et modified_secs: 1780477200.


Créer un répertoire ​

Crée un répertoire et tous les répertoires intermédiaires au chemin indiqué. Ne fait rien si le répertoire existe déjà.

État d'exécution: production_registered Champs: Custom Name (optional), File Path (required) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: Aucune Autorisation: filewrite / medium Confirmation à l’exécution: Non

Exemple: Assurez-vous que /tmp/exports/{{datetime}}/ et ses répertoires parents manquants existent avant d'écrire des fichiers.

Text ​

Rechercher et remplacer ​

Remplace toutes les correspondances littérales ou d'expression régulière dans une chaîne d'entrée. L'éditeur actuel expose la recherche, le remplacement et le mode regex, mais aucun champ d'entrée.

État d'exécution: production_registered Champs: Custom Name (optional), Find (required), Replace (optional), Use regex (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{replaced}} (string) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Le moteur peut remplacer chaque TODO: dans une chaîne, mais l'éditeur actuel ne permet pas de configurer cette entrée.


Extraire par expression régulière ​

Renvoie un tableau contenant le groupe de capture choisi pour chaque correspondance regex. Le groupe 0 renvoie la correspondance complète. L'éditeur actuel n'expose pas la chaîne d'entrée.

État d'exécution: production_registered Champs: Custom Name (optional), Pattern (required), Capture Group (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{match}} (array) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Le moteur peut appliquer (PROJ-\d+) avec le groupe 1, mais l'éditeur actuel ne permet pas de configurer le texte à parcourir.


Scinder ​

Scinde une chaîne avec le séparateur du moteur et renvoie un tableau. L'éditeur actuel expose la valeur d'entrée, mais pas le séparateur : les étapes créées dans l'éditeur sérialisent donc un séparateur vide.

État d'exécution: production_registered Champs: Custom Name (optional), Value (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{parts}} (array) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: N'utilisez cette action que si la définition du workflow fournit un séparateur ; l'éditeur actuel ne permet pas de le configurer.


Joindre ​

Joint les valeurs d'une variable tableau nommée avec le séparateur du moteur. L'éditeur actuel expose seulement une valeur générique et aucun contrôle de séparateur.

État d'exécution: production_registered Champs: Custom Name (optional), Value (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{joined}} (string) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: N'utilisez cette action que si la définition fournit la variable tableau et le séparateur ; l'éditeur actuel ne permet pas de tout configurer.


Élaguer ​

Supprime les espaces en début et en fin d'une chaîne.

État d'exécution: production_registered Champs: Custom Name (optional), Value (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{trimmed}} (string) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Élaguez {{shell_out}} pour retirer le saut de ligne final de la sortie d'une commande shell.


Changer la casse ​

Convertit une chaîne en majuscules, minuscules, casse de titre, camel case ou snake case. L'éditeur actuel expose le mode, mais aucun champ d'entrée.

État d'exécution: production_registered Champs: Custom Name (optional), Transform Mode (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{cased}} (string) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Le moteur peut convertir report name en reportName en mode camel, mais l'éditeur actuel ne permet pas de configurer l'entrée.


Sous-chaîne ​

Extrait les caractères depuis un index de départ basé sur zéro jusqu'à un index de fin facultatif. L'éditeur actuel n'expose aucun de ces index et sérialise un départ à 0 sans fin.

État d'exécution: production_registered Champs: Custom Name (optional), Value (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{slice}} (string) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Une étape créée dans l'éditeur renvoie actuellement toute l'entrée, car ses index de début et de fin ne sont pas configurables.


Contient ​

Recherche une sous-chaîne littérale sensible à la casse ; les expressions régulières ne sont pas prises en charge. L'éditeur actuel n'expose pas le champ de sous-chaîne et sérialise une valeur recherchée vide.

État d'exécution: production_registered Champs: Custom Name (optional), Value (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{contains}} (boolean) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: N'utilisez cette action que si la définition du workflow fournit la sous-chaîne littérale ; l'éditeur actuel ne permet pas de la configurer.


Compter les mots ​

Compte le nombre de mots d'une chaîne.

État d'exécution: production_registered Champs: Custom Name (optional), Value (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{word_count}} (number) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Conditionnez une étape de résumé à {{word_count}} > 50 avec un bloc If / Else.


Encoder une URL ​

Encode une chaîne en pourcentage pour un paramètre de requête URL. Le moteur sait aussi décoder, mais l'éditeur actuel n'expose aucun mode et sérialise toujours le mode d'encodage.

État d'exécution: production_registered Champs: Custom Name (optional), Value (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{encoded}} (string) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: {{search_term}} → "hello%20world".


Base64 ​

Encode une chaîne en Base64. Le moteur sait aussi décoder, mais l'éditeur actuel n'expose aucun mode et sérialise toujours le mode d'encodage.

État d'exécution: production_registered Champs: Custom Name (optional), Value (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{b64}} (string) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Encodez hello en aGVsbG8=.


Supprimer le HTML ​

Supprime toutes les balises HTML d'une chaîne et ne conserve que son contenu textuel.

État d'exécution: production_registered Champs: Custom Name (optional), Value (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{plain}} (string) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Retirez le HTML d'un extrait web collé avant de le transmettre à une invite LLM.


Nettoyage Scribe ​

Nettoie une transcription avec BudgieScribe, le modèle local qui retire les hésitations et faux départs et rétablit la ponctuation. Laissez la langue vide pour la détecter sur le texte, ou forcez fr/en. Si le modèle de cette langue n'est pas installé, si Scribe est occupé ou si son garde-fou rejette le résultat, le texte passe inchangé.

État d'exécution: production_registered Champs: Custom Name (optional), Text to clean up (required), Language (blank = detect) (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{cleaned}} (string) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Passez {{transcription}} par Nettoyage Scribe avant une invite LLM, pour que l'invite lise une phrase propre plutôt qu'une dictée brute.


Formater un modèle ​

Interpole les {{expressions}} Budgie dans une chaîne modèle ; il ne s'agit pas d'un moteur Handlebars ou Mustache.

État d'exécution: production_registered Champs: Custom Name (optional), Template (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{formatted}} (string) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Modèle : Dear {{name}},\nYour order {{order_id}} has shipped. → corps d'e-mail personnalisé.

System ​

Lire le presse-papiers ​

Lit le contenu du presse-papiers système sous forme de chaîne au moment de l'exécution de l'étape.

État d'exécution: production_registered Champs: Custom Name (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{clipboard}} (string) Autorisation: clipboardread / low Confirmation à l’exécution: Non

Exemple: Utilisez cette action après une frappe cmd+c pour lire ce que l'utilisateur vient de copier.


Lister les applications actives ​

Renvoie les noms de processus distincts signalés par le système d'exploitation parmi les processus en cours.

État d'exécution: production_registered Champs: Custom Name (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{apps}} (array) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Vérifiez si Safari figure dans {{apps}} avant de poursuivre.


Fenêtre active ​

Sous macOS, renvoie un objet de forme {app} avec le nom du processus de l'application au premier plan ; aucun titre de fenêtre n'est inclus. Les autres plateformes renvoient actuellement une chaîne app vide.

État d'exécution: production_registered Champs: Custom Name (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{window}} (object) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: {{window}} peut contenir {"app":"Mail"} lorsque Mail est au premier plan.


Date et heure ​

Formate la date et l'heure locales avec une chaîne de format chrono. La valeur par défaut est %Y-%m-%dT%H:%M:%S.

État d'exécution: production_registered Champs: Custom Name (optional), Format (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{datetime}} (string) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: {{datetime}} → "2026-06-03T09:42:00" — utilisez cette valeur comme horodatage dans un nom de fichier.


Lire une variable d'environnement ​

Lit une variable d'environnement par son nom et renvoie une chaîne vide si elle est absente.

État d'exécution: production_registered Champs: Custom Name (optional), Variable Name (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{env_value}} (string) Autorisation: envread / low Confirmation à l’exécution: Non

Exemple: Lisez HOME, puis construisez un chemin tel que {{env_value}}/Documents/example.md.


Informations système ​

Renvoie un objet contenant os, hostname, cpu_count, total_memory_mb et used_memory_mb.

État d'exécution: production_registered Champs: Custom Name (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{system_info}} (object) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Incluez {{system_info}} dans un workflow de rapport de bug afin d'y joindre automatiquement le contexte.


Capture d'écran ​

Capture l'écran actuel dans un chemin PNG sous macOS. Toute région sérialisée est ignorée, et l'éditeur n'expose ni contrôle de région ni contrôle du chemin de sortie.

État d'exécution: production_registered Champs: Custom Name (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{screenshot_path}} (string) Autorisation: screencapture / medium Confirmation à l’exécution: Non

Exemple: Capturez l'écran actuel et transmettez {{screenshot_path}} à une étape ultérieure.


Vérifier si une application est active ​

Vérifie, sans tenir compte de la casse, si le nom d'un processus actif contient le texte configuré.

État d'exécution: production_registered Champs: Custom Name (optional), App Name (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{app_running}} (boolean) Autorisation: appcontrol / medium Confirmation à l’exécution: Non

Exemple: Safari → {{app_running}} vaut true lorsqu'un processus correspondant est présent.

App Control ​

Quitter une application ​

Sous macOS, demande à une application de quitter via AppleScript. Sur les autres plateformes prises en charge, termine les processus dont le nom contient le texte configuré.

État d'exécution: production_registered Champs: Custom Name (optional), App Name (required) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: Aucune Autorisation: appcontrol / medium Confirmation à l’exécution: Non

Exemple: Quittez TextEdit après avoir enregistré le fichier à l'étape précédente.


Exécuter un AppleScript ​

Sous macOS, exécute un AppleScript interpolé et renvoie sa sortie standard élaguée sous forme de chaîne. Les autres plateformes signalent une erreur de plateforme non prise en charge.

État d'exécution: production_registered Champs: Custom Name (optional), AppleScript (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{script_result}} (string) Autorisation: applescript / critical Confirmation à l’exécution: Oui

Exemple:

applescript
tell application "Finder" to get name of front window

→ {{script_result}} est le nom de la fenêtre Finder au premier plan.


Exécuter un raccourci ​

Sous macOS, exécute un raccourci nommé et publie sa sortie standard élaguée. Les autres plateformes signalent une erreur de plateforme non prise en charge.

État d'exécution: production_registered Champs: Custom Name (optional), Shortcut Name (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{shortcut_result}} (string) Autorisation: macosshortcut / high Confirmation à l’exécution: Oui

Exemple: Exécutez le raccourci « Send to Notes », puis utilisez {{shortcut_result}} à l'étape suivante.

Network ​

Requête HTTP ​

Envoie GET, POST, PUT, DELETE ou PATCH vers une URL interpolée avec un corps facultatif. L'éditeur actuel n'expose que l'URL, la méthode et le corps ; il ne permet pas de configurer les en-têtes de requête.

État d'exécution: production_registered Champs: Custom Name (optional), URL (required), Method (required), Request Body (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{http_response}} (object) Autorisation: network / medium Confirmation à l’exécution: Non

Exemple: Envoyez {{llm_result}} par POST à un webhook, puis lisez {{http_response.status}}, {{http_response.body}} ou la valeur analysée {{http_response.json}}.


Télécharger un fichier ​

Télécharge une URL vers le chemin local configuré. Cette action ne publie aucune variable de sortie de données.

État d'exécution: production_registered Champs: Custom Name (optional), URL (required), Save To Path (required) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: Aucune Autorisation: filewrite / high Confirmation à l’exécution: Oui

Exemple: Téléchargez https://example.com/report.pdf vers /tmp/downloads/example.pdf ; les répertoires parents manquants sont créés.


Vérifier une URL ​

Effectue une requête HEAD et renvoie true dès qu'une réponse est reçue, quel que soit le statut HTTP ; les erreurs de transport renvoient false.

État d'exécution: production_registered Champs: Custom Name (optional), URL (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{url_ok}} (boolean) Autorisation: network / medium Confirmation à l’exécution: Non

Exemple: Utilisez {{url_ok}} pour détecter une erreur de transport avant un téléchargement ; une réponse HTTP d'erreur comme 404 produit tout de même true.

Math & Data ​

Expression mathématique ​

Évalue une expression mathématique. Prend en charge les opérateurs arithmétiques standard, les parenthèses et les valeurs {{variable}}.

État d'exécution: production_registered Champs: Custom Name (optional), Expression (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{math_result}} (number) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: ({{word_count}} / 250) * 60 → durée de lecture estimée en secondes → {{math_result}}.


Analyser du JSON ​

Analyse une chaîne JSON en valeur structurée. Utilisez la notation pointée pour accéder aux champs dans les étapes suivantes : {{json_obj.name}}.

État d'exécution: production_registered Champs: Custom Name (optional), JSON Input (required), Output Variable (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{json_obj}} (any) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Analysez {{http_response.body}}, puis accédez à un champ tel que {{json_obj.data[0].id}}.


Sérialiser en JSON ​

Sérialise une variable de workflow nommée en JSON. L'éditeur actuel n'expose ni contrôle de variable d'entrée ni option de mise en forme ; les étapes créées dans l'éditeur sérialisent donc un nom de variable vide en mode compact.

État d'exécution: production_registered Champs: Custom Name (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{json_str}} (string) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: N'utilisez cette action que si la définition du workflow fournit la variable d'entrée ; l'éditeur actuel ne permet pas de la configurer.


Analyser du CSV ​

Analyse une chaîne CSV avec ligne d'en-tête en un tableau d'objets indexés par nom de colonne.

État d'exécution: production_registered Champs: Custom Name (optional), Value (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{csv_rows}} (array) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Analysez {{file_content}} issu d'un fichier CSV → {{csv_rows[0].email}} est la colonne e-mail de la première ligne.


Lire une variable ​

Lit une variable du contexte de workflow par son nom configuré exact. Renvoie null si ce nom est absent.

État d'exécution: production_registered Champs: Custom Name (optional), Variable Name (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{var_value}} (any) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Le nom de variable summary renvoie la valeur actuelle de summary.

Arrays ​

Créer un tableau ​

Crée un tableau à partir de la liste items du moteur. L'éditeur actuel n'expose aucun champ d'éléments ; les étapes créées dans l'éditeur produisent donc un tableau vide.

État d'exécution: production_registered Champs: Custom Name (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{array}} (array) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Une étape Créer un tableau créée dans l'éditeur publie [] dans sa variable de sortie.


Ajouter au tableau ​

Ajoute une valeur à une variable tableau nommée, réenregistre le nouveau tableau et le renvoie. L'éditeur actuel expose la valeur, mais pas le nom du tableau cible.

État d'exécution: production_registered Champs: Custom Name (optional), Value (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{array}} (array) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Le moteur peut ajouter l'élément littéral done à summaries, mais l'éditeur actuel ne permet pas de définir summaries comme cible.


Lire par index ​

Renvoie un élément d'un tableau nommé avec un index basé sur zéro ; les index négatifs partent de la fin. L'éditeur actuel n'expose ni le nom du tableau ni l'index.

État d'exécution: production_registered Champs: Custom Name (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{item}} (any) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Le moteur peut renvoyer l'index 0 de file_list, mais l'éditeur actuel ne permet pas de configurer ces paramètres.


Filtrer un tableau ​

Filtre un tableau nommé avec une condition évaluée pour chaque item/it. L'éditeur actuel n'expose ni le nom du tableau ni la condition.

État d'exécution: production_registered Champs: Custom Name (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{filtered}} (array) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Cette action exige une définition de workflow qui fournit array_var et condition ; l'éditeur actuel ne permet pas de les configurer.


Transformer un tableau ​

Interpole un modèle pour chaque item/it d'un tableau nommé et renvoie les chaînes obtenues. L'éditeur actuel n'expose ni le nom du tableau ni le modèle.

État d'exécution: production_registered Champs: Custom Name (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{mapped}} (array) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Cette action exige une définition de workflow qui fournit array_var et template ; l'éditeur actuel ne permet pas de les configurer.


Trier un tableau ​

Trie un tableau nommé selon la représentation textuelle de chaque valeur, puis le réenregistre. Le moteur prend en charge l'ordre croissant ou décroissant ; l'éditeur actuel n'expose aucun de ces réglages.

État d'exécution: production_registered Champs: Custom Name (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{sorted}} (array) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Le moteur peut trier file_list, mais l'éditeur actuel ne permet de configurer ni le tableau cible ni le sens.


Valeurs uniques ​

Supprime les représentations textuelles en double d'un tableau nommé en conservant leur première occurrence. L'éditeur actuel n'expose pas le nom du tableau.

État d'exécution: production_registered Champs: Custom Name (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{unique}} (array) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Le moteur peut dédupliquer tags, mais l'éditeur actuel ne permet pas de configurer cette cible.


Taille du tableau ​

Renvoie le nombre d'éléments d'un tableau nommé. L'éditeur actuel n'expose pas le nom du tableau.

État d'exécution: production_registered Champs: Custom Name (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{length}} (number) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Le moteur peut compter file_list, mais l'éditeur actuel ne permet pas de configurer cette cible.


Le tableau contient ​

Compare les représentations textuelles pour vérifier si un tableau nommé contient une valeur. L'éditeur actuel expose la valeur, mais pas le nom du tableau.

État d'exécution: production_registered Champs: Custom Name (optional), Value (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{contains}} (boolean) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Le moteur peut vérifier si apps contient Safari, mais l'éditeur actuel ne permet pas de définir apps comme cible.

Persistence ​

Lire dans le stockage ​

Lit la chaîne associée à une clé dans le stockage persistant. Renvoie null si la clé n'existe pas.

État d'exécution: production_registered Champs: Custom Name (optional), Key (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{store_value}} (any) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Clé : "daily_count" → {{store_value}} vaut le compteur enregistré ou null s'il est absent.


Écrire dans le stockage ​

Interpole et écrit une chaîne dans le stockage persistant sous une clé, en créant ou en écrasant l'entrée.

État d'exécution: production_registered Champs: Custom Name (optional), Key (required), Value (required) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: Aucune Autorisation: persistence / low Confirmation à l’exécution: Non

Exemple: Après incrémentation, écrivez {{math_result}} sous la clé "daily_count".


Supprimer du stockage ​

Supprime une clé du stockage persistant.

État d'exécution: production_registered Champs: Custom Name (optional), Key (required) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: Aucune Autorisation: persistence / low Confirmation à l’exécution: Non

Exemple: Réinitialisez la clé "daily_count" au début de chaque journée avec une garde Date et heure + If / Else.

UI ​

Afficher une boîte de dialogue ​

Sous macOS, affiche une boîte de dialogue modale avec un titre, un message et un champ de saisie, puis renvoie le texte saisi après validation. Hors macOS, le gestionnaire actuel journalise la boîte et renvoie OK.

État d'exécution: production_registered Champs: Custom Name (optional), Title (optional), Message (required), Predefined Options (optional), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: {{dialog_input}} (string) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Demandez à l'utilisateur : « Quel objet dois-je utiliser ? » → {{dialog_input}} alimente une étape Invite LLM.


Notification ​

Affiche sans attendre une notification système macOS avec un titre et un message. Hors macOS, le gestionnaire actuel se contente de la journaliser.

État d'exécution: production_registered Champs: Custom Name (optional), Title (optional), Message (required) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: Aucune Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Affichez « Workflow terminé — fichier enregistré sur le Bureau » après une étape Écrire un fichier.


Jouer un son ​

Sous macOS, traite la valeur Sound File Path de l'éditeur comme un nom de son système et lit /System/Library/Sounds/{name}.aiff ; les chemins de fichiers arbitraires ne sont pas pris en charge. Hors macOS, le gestionnaire ne fait rien.

État d'exécution: production_registered Champs: Custom Name (optional), Sound File Path (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: Aucune Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Utilisez Glass pour lire /System/Library/Sounds/Glass.aiff après une étape longue.


Synthèse vocale ​

Lit le texte interpolé avec le moteur TTS sélectionné dans les Paramètres. Le moteur par défaut est le fournisseur TTS système natif d'Echo sous macOS et Windows et ne nécessite aucun modèle vocal Echo téléchargé ; le moteur neuronal local optionnel n'est jamais choisi implicitement et ne parle que s'il est sélectionné explicitement dans les Paramètres et que son modèle est installé. Une voix vide utilise le choix par défaut ; une voix qualifiée par fournisseur est validée par ce fournisseur.

État d'exécution: production_registered Champs: Custom Name (optional), Text to Speak (required), Voice (optional) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: Aucune Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Prononcez {{llm_result}} immédiatement au lieu d'attendre la fin du workflow.


Lecteur ​

Envoie un texte au Lecteur : lecture à voix haute unique, ou ajout à la bibliothèque du Lecteur sous un nom personnalisé facultatif.

État d'exécution: production_registered Champs: Custom Name (optional), Text (required), Operation (required) Entrées de contrôle: mainSorties de contrôle: mainSortie de données: Aucune Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Après un résumé LLM d'un long article, confiez {{summary}} au Lecteur pour l'écouter tout en continuant à travailler.

Control Flow ​

If / Else ​

Évalue une condition et achemine le contrôle vers le port nommé true ou false. Sa sortie de données est distincte de ces ports de contrôle.

État d'exécution: production_registered Champs: Custom Name (optional), Condition (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: true, falseSortie de données: {{branch_result}} (any) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Acheminez {{file_exists}} == true vers true et la notification de fichier absent vers false.


Boucle ​

Achemine les itérations par compteur, tableau de variable ou condition while vers loop, puis poursuit par done. Ne publie aucune variable de sortie de données. Le mode éléments de l'éditeur sérialise actuellement une liste littérale vide.

État d'exécution: production_registered Champs: Custom Name (optional), Loop Mode (required), Repeat Times (optional), Array Variable (optional), While Condition (optional) Entrées de contrôle: mainSorties de contrôle: loop, doneSortie de données: Aucune Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Choisissez le mode variable avec la variable tableau file_list sans accolades, traitez chaque {{item}} via loop, puis poursuivez depuis done.


Switch ​

Achemine le contrôle vers un port case:<pattern> correspondant ou vers default. Sa sortie de données est distincte de ces ports de contrôle.

État d'exécution: production_registered Champs: Custom Name (optional), Switch Value (required), Cases (required), Output Variable Name (optional) Entrées de contrôle: mainSorties de contrôle: case:<pattern>, defaultSortie de données: {{switch_result}} (any) Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Utilisez les ports case:email, case:chat et default pour choisir la branche de formatage adaptée.


Try / Catch ​

Achemine l'exécution normale vers le port nommé try et les erreurs vers catch. Ne publie aucune variable de sortie de données.

État d'exécution: production_registered Champs: Custom Name (optional) Entrées de contrôle: mainSorties de contrôle: try, catchSortie de données: Aucune Autorisation: Aucune Confirmation à l’exécution: Non

Exemple: Exécutez une requête HTTP via try et utilisez catch pour afficher une notification d'échec.

Actions disponibles uniquement à l'exécution ​

Ces variantes de workflow Rust sont exécutables ou analysables, mais ne sont pas proposées dans le sélecteur de l'éditeur actuel.

Rust variantStatusAutorisationConfirmation à l’exécutionAvailability
AudioCaptureproduction_registeredAucuneNonUtilisée par le pipeline de transcription interne d'Echo.
MatchSnippetknown_unimplementedAucuneNonReconnue par le format de workflow mais non implémentée ; ne l'utilisez pas.
OpenUrlproduction_registerednetwork / mediumNonDisponible pour les workflows intégrés ou YAML, mais pas dans le sélecteur de l'éditeur.
Pasteproduction_registeredclipboardread / lowNonDisponible pour les workflows intégrés ou YAML, mais pas dans le sélecteur de l'éditeur.
Pluginproduction_registeredplugin / highOuiDisponible dans le moteur d’exécution des plugins de workflow, mais pas dans le sélecteur de l’éditeur.
Transcribeproduction_registeredAucuneNonUtilisée par le pipeline de transcription interne d'Echo.
TypeTextproduction_registeredinputsynthesis / mediumNonDisponible pour les workflows intégrés ou YAML, mais pas dans le sélecteur de l'éditeur.
WaitForFocusproduction_registeredAucuneNonDisponible pour les workflows intégrés ou YAML, mais pas dans le sélecteur de l'éditeur.

Publié sous la licence MIT.