>> OpenClaw + AppleScript : contrôler les apps Mac en local
OpenClaw AppleScript Automatisation Macdonne à une passerelle d'agent en texte uniquement un corps physique sur le bureau macOS : outil shell, script de pont et contrôle d'application natif dans une seule session connectée.
Introduction
La plupart des équipes courentOpenClawsous forme de texte uniquement operator : canaux de passerelle, outils HTTP et extraits de shell qui ne touchent jamais la session graphique. Cela laisse un vide...applications Mac natives(Keynote, Mail, Music, System Settings) vivent derrière la couche d'automatisation GUI d'Apple, et non à l'intérieur d'un canal SSH sans tête.
OpenClaw AppleScript Automatisation Maccomble cet écart avec un effort délibérémodèle de pont: OpenClaw natif de OpenClawoutil de coqueappelle un petit point d'entrée bash, qui distribueAppleScript (osascript) ouAutomatorflux de travail enregistrés sous.workflow/ bundles d'applications. L'agent planifie toujours en langage naturel ; macOS exécute toujours les actions de l'interface utilisateur dans la session utilisateur connectée.
Il ne s’agit pas de « casser » le bac à sable d’Apple du point de vue de la sécurité : vous l’accordez.AutomationetAccessibilitéautorisations explicitement. Vous donnez à OpenClaw uncorps physiquesur le bureau Mac : ouvrez Keynote, exportez un PDF, augmentez le volume, atténuez l'affichage, pendant que les réponses au chat continuent sur Telegram ou Slack.
Associez ce guide avecOpenClaw + Ollama sur un cloud Mac minilorsque vous souhaitez des modèles locaux pour la planification et une automatisation macOS pour l'exécution. CompletOpenClaw déploiement légerd'abord pour que l'état de la passerelle, launchd et les filigranes de disque soient stables avant d'activer les outils GUI.
SelonDocumentation d'automatisation macOS d'Apple, AppleScript et Automator sont les ponts pris en charge entre les scripts et les applications scriptables.
Architecture : pont en coquille → AppleScript / Automator
Flux de données
Channel message → OpenClaw planner → shell tool "mac_desktop"
→ ~/bin/openclaw-mac-bridge.sh (JSON args)
→ osascript (inline .scpt) OR open MyWorkflow.app
→ Target app (Keynote, System Events, …)
→ stdout JSON { "ok": true, "artifact": "/path/file.pdf" }
Tableau des composants
| Couche | Chemin / artefact | Responsabilité |
|---|---|---|
| Politique du planificateur | ~/.openclaw/skills/mac-desktop/SKILL.md | Quand appeler les actions du bureau ; actions interdites |
| Enregistrement des outils | ~/.openclaw/config/tools/mac_desktop.json | Commande Shell + timeout + env |
| Script de pont | ~/bin/openclaw-mac-bridge.sh | Valider JSON, dispatcher les actions, journaliser |
| AppleScript bibliothèque | ~/Library/Application Support/OpenClaw/scripts/*.applescript | Réutilisable Keynote / volume / luminosité |
| Automator exportation | ~/Library/Application Support/OpenClaw/workflows/ExportKeynotePDF.workflow | Séquences multi-applications complexes |
| Journal d'audit | ~/.openclaw/logs/mac-desktop.log | action, duration_ms, code de sortie |
Règle de session :GUI l'automatisation nécessite unutilisateur macOS connectéavec une session graphique (console locale, ou partage d'écran sur un Mac cloud). Les sessions SSH uniquement sans GUI ne peuvent pas piloter Keynote.
Pourquoi pas de la pure coquille ?
| Tâche | curl/CLI | AppleScript / Automator |
|---|---|---|
| Exporter Keynote vers PDF | Pas de CLI publique stable | exportcommande dans le dictionnaire Keynote |
| Définir la luminosité de l'écran | Pas de one-liner portable | tell application "System Events" |
| Approuver une boîte de dialogue du Finder | Impossible sans tête | Script d'interface utilisateur avec accessibilité |
Runbook en huit étapes
Étape 1 — Passerelle de base et session GUI
ssh user@your-mac
openclaw --version
curl -s http://127.0.0.1:11430/health
whoami
ls /dev/console # should exist when GUI session active
Critères de réussite : passerelleHTTP200, volume de démarrage≥25 Gogratuit (identique àGarde-corps 72 heures).
Étape 2 — Créer des répertoires de pont
mkdir -p ~/bin
mkdir -p "$HOME/Library/Application Support/OpenClaw/scripts"
mkdir -p "$HOME/Library/Application Support/OpenClaw/workflows"
mkdir -p ~/.openclaw/logs
chmod 700 ~/bin/openclaw-mac-bridge.sh 2>/dev/null || true
Étape 3 — Installez le script de pont
Sauvegarder~/bin/openclaw-mac-bridge.sh:
#!/usr/bin/env bash
set -euo pipefail
LOG="$HOME/.openclaw/logs/mac-desktop.log"
ACTION="${1:-}"
ARG_JSON="${2:-{}}"
ts() { date -u +"%Y-%m-%dT%H:%M:%SZ"; }
case "$ACTION" in
keynote_export_pdf)
DECK="${ARG_JSON:-}"
OUT="${3:-$HOME/Desktop/openclaw-export.pdf}"
osascript "$HOME/Library/Application Support/OpenClaw/scripts/keynote_export_pdf.applescript" "$DECK" "$OUT"
echo "{\"ok\":true,\"artifact\":\"$OUT\"}"
;;
set_volume)
LEVEL="${ARG_JSON:-50}"
osascript -e "set volume output volume $LEVEL"
echo "{\"ok\":true,\"volume\":$LEVEL}"
;;
set_brightness)
LEVEL="${ARG_JSON:-0.5}"
osascript "$HOME/Library/Application Support/OpenClaw/scripts/set_brightness.applescript" "$LEVEL"
echo "{\"ok\":true,\"brightness\":$LEVEL}"
;;
run_automator)
WF="${ARG_JSON:-}"
open -a "$WF"
echo "{\"ok\":true,\"workflow\":\"$WF\"}"
;;
*)
echo "{\"ok\":false,\"error\":\"unknown_action\"}" >&2
exit 2
;;
esac >>"$LOG" 2>&1
chmod 750 ~/bin/openclaw-mac-bridge.sh
Étape 4 — Ajouter des assistants AppleScript
keynote_export_pdf.applescript:
on run argv
set deckPath to item 1 of argv
set outPath to item 2 of argv
tell application "Keynote"
activate
set docRef to open POSIX file deckPath
export docRef to POSIX file outPath as PDF
close docRef saving no
end tell
end run
set_brightness.applescript(utilise System Events ; nécessite l'accessibilité) :
on run argv
set level to item 1 of argv as number
tell application "System Events"
tell appearance preferences
set brightness to level
end tell
end tell
end run
Test de fumée manuellement :
osascript "$HOME/Library/Application Support/OpenClaw/scripts/set_volume.applescript" 40
# or inline:
osascript -e 'set volume output volume 40'
Étape 5 — Créez un flux de travail Automator (facultatif)
- OuvrirAutomator→ NouveauAction rapideouApplication.
- AjouterExécutez AppleScript→ collez Keynote étapes d'exportation.
- Enregistrer sous
ExportKeynotePDF.workflowsous~/Library/Application Support/OpenClaw/workflows/. - Test:
open -a "$HOME/Library/Application Support/OpenClaw/workflows/ExportKeynotePDF.workflow"
Inscrivez-vous sur le pont en tant querun_automatorlorsque les séquences dépassent ~ 30 lignes de AppleScript.
Étape 6 — Enregistrez l'outil shell OpenClaw
Ajouter sous~/.openclaw/config/tools/(le schéma exact varie selon la version) :
{
"name": "mac_desktop",
"description": "Control native Mac apps via AppleScript/Automator. Actions: keynote_export_pdf, set_volume, set_brightness, run_automator. Args: action string, JSON payload, optional third path.",
"type": "shell",
"command": "/Users/OPERATOR/bin/openclaw-mac-bridge.sh",
"timeout_seconds": 120,
"allowed_actions": ["keynote_export_pdf", "set_volume", "set_brightness", "run_automator"]
}
RemplacerOPERATORavec le compte macOS exécutant la passerelle. Gardez l'outilhandicapé en laboratoirejusqu'à ce que l'étape 7 soit réussie.
Étape 7 — Créer la stratégie SKILL.md
Créer~/.openclaw/skills/mac-desktop/SKILL.md:
# Mac Desktop Automation (AppleScript)
## When to use
- User asks to export slides, adjust volume/brightness, or open a native app.
- Channel message includes `/deck` or `export pdf` with a file path on the Mac.
## Never
- Delete files outside ~/OpenClawExports without human confirmation.
- Change System Settings security/privacy panes.
- Run Automator workflows not listed in allowed_actions.
## Steps
1. Confirm deck path exists: `test -f path`.
2. Call mac_desktop with keynote_export_pdf.
3. Reply with artifact path and file size from `stat -f%z`.
Redémarrez la passerelle après les changements d'outil et de compétence.
Étape 8 — Canaliser la fumée avec des garde-corps
- Envoyez un message test : « Réglez le volume sur 35 %. »
- Envoyer : « Exporter
/Users/you/Decks/Q2.keyà PDF. - Vérifier
~/.openclaw/logs/mac-desktop.logmontresortie 0et JSON sortie standard.
Activeruncanal de messagerie uniquement : voircanaux de passerelle. Limiter les actions simultanées sur le bureau à1sur les hôtes 16GB pour éviter Keynote + conflits de modèles importants.
Dépannage
Erreur:Not authorized to send Apple events to Keynote
Modèle: osascriptsortie1, le journal contientNot authorized.
Réparer:Sur Mac →System Settings → Confidentialité et amp; Sécurité → Automatisation→ autoriserosascript(ou Terminal/iTerm) pour contrôlerKeynote. Réexécutez le test de fumée de l’étape 4. Pour les Mac cloud, effectuez une fois par image instantanée.
Erreur:GUI scripting is not allowed
Modèle:le script de luminosité échoue ; System Events erreur-25211.
Réparer:AccorderAccessibilitéau terminal/ssh parent de session parL'accessibilité d'Apple guide. Préférez baisser la luminosité viabrightnessuniquement pendant les heures interactives : documentez la politique dans SKILL.md.
Implications opérationnelles
| Moniteur | Seuil | Action |
|---|---|---|
mac-desktop.logtaille | >200MB sur 256GB | Rotation hebdomadaire |
| Latence du pont | >90s | Fractionner le flux de travail Automator ; préchauffer Keynote |
| Taux d'automatisation échouée | > 3/heure | Désactiver l'outil ; alerter l'humain operator |
| GUI séance | déconnecté | Canal de pause ; reconnecter la console |
Sérialiser les tâches de bureau avec Ollama : ne pas exécuterModèle local 14B + Keynote exportationsimultanément sur16GBmémoire unifiée.
FAQ
OpenClaw peut-il contrôler les applications Mac sans AppleScript ?
Seulement partiellement. Les outils Shell gèrent les binaires CLI ;applications natives GUIbesoin de AppleScript, Automator ou de raccourcis. Le modèle de pont maintient le planificateur de OpenClaw inchangé pendant que macOS exécute le travail de l'interface utilisateur.
AppleScript fonctionne-t-il uniquement sur SSH ?
Non.osascriptcible lesession graphique connectée. Utilisez l'accès à la console ou le partage d'écran sur un Mac distant et exécutez la passerelle sous ce même utilisateur.
Comment déclencher Automator à partir de OpenClaw ?
Registrerun_automatordans le script de pont et appelezopen -a /path/to/Workflow.app. Transmettez les arguments via un plist ou un fichier side-car JSON que le workflow lit lors de sa première action.
Est-ce sans danger pour les agents de production ?
Traitez les outils de bureau commegrand privilège. Limiterallowed_actions, enregistrez chaque invocation et exigez l'approbation humaine pour les chemins destructeurs. SuivreOpenClaw sécuritépour les liaisons de passerelle localhost.
Est-ce que cela fonctionnera sur Apple Silicon Mac mini M4 ?
Oui. AppleScript et Automator sont neutres en termes d'architecture sur macOS 14+. La pression RAM de Keynote + OpenClaw + Ollama est le limiteur pratique : effectuez un travail lourd à la fois sur 16GB.
Quel est le rapport entre SKILL.md et AppleScript ?
SKILL.md enseignequandle planificateur invoquemac_desktop; AppleScript/Automator définitcommentmacOS exécute l'action. Mettez à jour SKILL.md chaque fois que vous ajoutez un nouveau fichier de workflow.
Conclusion
OpenClaw AppleScript Automatisation Mactransforme une passerelle de texte en bureau operator : outil shell → script de pont →osascript/ Automator → applications natives. Le modèle est une faible concurrence car la plupart des didacticiels s’arrêtent aux réponses au chat.
Commencez parvolume + Keynote PDFtests de fumée, renforcez les autorisations une fois par machine, puis câblez les intentions de canal dans SKILL.md. Gardez la promotion hors des sentiers battus : il s'agit d'un pont d'ingénierie, pas d'un argumentaire de location.
Articles connexes
Besoin d'une session GUI pour l'automatisation bureau ?
Les Mac cloud avec session graphique connectée supportent les ponts AppleScript aux côtés d'OpenClaw.