>> OpenClaw+AppleScript: Mac 데스크톱 앱을 제어하는 AI 브리지
OpenClaw AppleScript Mac 자동화macOS 데스크탑에 텍스트 전용 에이전트 게이트웨이를 제공하여 하나의 로그인 세션에서 셸 도구, 브리지 스크립트 및 기본 앱 제어 기능을 제공합니다.
소개
대부분의 팀이 운영OpenClaw텍스트 전용 operator: 게이트웨이 채널, HTTP 도구 및 그래픽 세션을 건드리지 않는 셸 조각. 그러면 공백이 생깁니다.기본 Mac 앱(Keynote, Mail, Music, System Settings)은 헤드리스 SSH 파이프 내부가 아닌 Apple의 GUI 자동화 레이어 뒤에 있습니다.
OpenClaw AppleScript Mac 자동화의도적으로 그 간격을 좁힙니다.브릿지 패턴: OpenClaw의 원어민쉘 도구작은 bash 진입점을 호출합니다.AppleScript (osascript) 또는Automator다른 이름으로 저장된 워크플로.workflow/ 애플리케이션 번들. 에이전트는 여전히 자연어로 계획을 세웁니다. macOS은 로그인된 사용자 세션에서 UI 작업을 계속 실행합니다.
이는 보안 측면에서 Apple의 샌드박스를 "깨는" 것이 아닙니다.오토메이션그리고접근성명시적으로 권한을 부여합니다. OpenClaw을(를) 제공하고 있습니다.육체Mac 데스크탑에서: Keynote 열기, PDF 내보내기, 볼륨 조절, 디스플레이 어둡게 하기 등 채팅 답장은 Telegram 또는 Slack에서 계속됩니다.
guide를 다음과 페어링하세요.OpenClaw + Ollama 클라우드 Mac mini계획을 위한 로컬 모델과 실행을 위한 macOS 자동화를 원할 때. 완벽한OpenClaw 가벼운 배포먼저 GUI 도구를 활성화하기 전에 게이트웨이 상태, launchd 및 디스크 워터마크가 안정적입니다.
에 따르면Apple의 macOS 자동화 문서, AppleScript 및 Automator은 스크립트와 스크립트 가능 애플리케이션 간에 지원되는 브리지입니다.
아키텍처: 쉘 브리지 → AppleScript / Automator
데이터 흐름
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" }
구성요소 테이블
| 층 | 경로/아티팩트 | 책임 |
|---|---|---|
| 플래너 정책 | ~/.openclaw/skills/mac-desktop/SKILL.md | 데스크톱 작업을 호출하는 경우 금지된 행위 |
| 도구등록 | ~/.openclaw/config/tools/mac_desktop.json | 쉘 명령 + 시간 초과 + 환경 |
| 브리지 스크립트 | ~/bin/openclaw-mac-bridge.sh | JSON 확인, 작업 전달, 로그 |
| AppleScript 라이브러리 | ~/Library/Application Support/OpenClaw/scripts/*.applescript | 재사용 가능 Keynote / 볼륨 / 밝기 |
| Automator 내보내기 | ~/Library/Application Support/OpenClaw/workflows/ExportKeynotePDF.workflow | 복잡한 다중 앱 시퀀스 |
| 감사 로그 | ~/.openclaw/logs/mac-desktop.log | 작업, duration_ms, 종료 코드 |
세션 규칙:GUI 자동화에는로그인한 macOS 사용자그래픽 세션(로컬 콘솔 또는 클라우드 Mac의 화면 공유)을 사용합니다. SSH-GUI이 없는 세션만 Keynote을(를) 구동할 수 없습니다.
왜 순수한 껍질이 아닌가?
| 일 | curl/CLI | AppleScript / Automator |
|---|---|---|
| Keynote을(를) PDF로 내보내기 | 안정적인 공개 CLI가 없음 | exportKeynote 사전의 명령 |
| 디스플레이 밝기 설정 | 휴대용 단일 라이너 없음 | tell application "System Events" |
| Finder 대화상자 승인 | 불가능한 헤드리스 | 접근성을 갖춘 UI 스크립팅 |
8단계 런북
1단계 - 기본 게이트웨이 및 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
합격 기준: 게이트웨이HTTP 200, 부팅 볼륨≥25GB무료(동일72시간 가드레일).
2단계 - 브리지 디렉터리 생성
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
3단계 - 브리지 스크립트 설치
구하다~/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
4단계 - 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(System Events 사용, 접근성 필요):
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
수동으로 연기 테스트:
osascript "$HOME/Library/Application Support/OpenClaw/scripts/set_volume.applescript" 40
# or inline:
osascript -e 'set volume output volume 40'
5단계 - Automator 워크플로 구축(선택 사항)
- 열려 있는Automator→ 신규빠른 조치또는애플리케이션.
- 추가하다AppleScript 실행→ Keynote 내보내기 단계를 붙여넣습니다.
- 다른 이름으로 저장
ExportKeynotePDF.workflow아래에~/Library/Application Support/OpenClaw/workflows/. - 시험:
open -a "$HOME/Library/Application Support/OpenClaw/workflows/ExportKeynotePDF.workflow"
브릿지에 다음과 같이 등록하세요.run_automator시퀀스가 AppleScript의 ~30줄을 초과하는 경우.
6단계 - OpenClaw 셸 도구 등록
아래에 추가~/.openclaw/config/tools/(정확한 스키마는 빌드에 따라 다릅니다):
{
"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"]
}
바꾸다OPERATOR게이트웨이를 실행하는 macOS 계정으로. 도구를 보관하세요실험실에서 비활성화됨7단계가 통과될 때까지.
7단계 - 작성자 SKILL.md 정책
만들다~/.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`.
도구 + 스킬 변경 후 게이트웨이를 다시 시작합니다.
8단계 - 가드레일을 이용한 연기 통로
- 테스트 메시지를 보냅니다: "볼륨을 35%로 설정하세요."
- 보내기: “내보내기
/Users/you/Decks/Q2.keyPDF으로.” - 확인하다
~/.openclaw/logs/mac-desktop.log쇼0번 출구그리고 JSON 표준출력.
할 수 있게 하다하나메시징 채널만 해당 - 참조게이트웨이 채널. 동시 데스크톱 작업을 다음으로 제한합니다.116GB 호스트에서 Keynote + 과도한 모델 경합을 방지합니다.
문제 해결
오류:Not authorized to send Apple events to Keynote
무늬: osascript출구1, 로그에는 다음이 포함됩니다.Not authorized.
고치다:맥의 경우 →System Settings → 개인정보 보호 및amp; 보안 → 자동화→ 허용하다osascript(또는 Terminal/iTerm)을 사용하여 제어Keynote. 4단계 연기 테스트를 다시 실행합니다. 클라우드 Mac의 경우 스냅샷 이미지당 한 번 수행합니다.
오류:GUI scripting is not allowed
무늬:밝기 스크립트가 실패합니다. System Events 오류-25211.
고치다:승인하다접근성Terminal/ssh 세션 상위로Apple의 접근성 guide. 다음을 통해 밝기를 낮추는 것이 좋습니다.brightness대화형 시간에만 - SKILL.md의 문서 정책.
운영상의 영향
| 감시 장치 | 한계점 | 행동 |
|---|---|---|
mac-desktop.log크기 | >200MB 256GB | 매주 순환 |
| 브리지 대기 시간 | >90s | Automator 작업 흐름을 분할합니다. 예열 Keynote |
| 자동화 실패율 | >3/시간 | 도구를 비활성화합니다. 인간에게 경고 operator |
| GUI 세션 | 연결이 끊어진 | 채널을 일시 중지합니다. 콘솔 다시 연결 |
Ollama을 사용하여 데스크톱 작업 직렬화: 실행하지 않음14B 로컬 모델 + Keynote 내보내기동시에16GB통일된 기억.
FAQ
OpenClaw이 AppleScript 없이 Mac 앱을 제어할 수 있나요?
부분적으로만. 셸 도구는 CLI 바이너리를 처리합니다.기본 GUI 앱AppleScript, Automator 또는 바로가기가 필요합니다. 브리지 패턴은 macOS이 UI 작업을 실행하는 동안 OpenClaw의 플래너를 변경하지 않고 유지합니다.
AppleScript은 SSH 단독으로 작동하나요?
아니요.osascript목표로로그인된 그래픽 세션. 원격 Mac에서 콘솔 액세스 또는 화면 공유를 사용하고 동일한 사용자로 게이트웨이를 실행하십시오.
OpenClaw에서 Automator을 트리거하려면 어떻게 해야 하나요?
등록하다run_automator브리지 스크립트에서 호출open -a /path/to/Workflow.app. 워크플로가 첫 번째 작업에서 읽는 plist 또는 사이드카 JSON 파일을 통해 인수를 전달합니다.
생산 대리인에게 안전한가요?
데스크탑 도구를 다음과 같이 취급하십시오.높은 특권. 얽매다allowed_actions, 모든 호출을 기록하고 파괴적인 경로에 대해 사람의 승인을 요구합니다. 따르다OpenClaw 보안localhost 게이트웨이 바인드용.
Apple Silicon Mac mini M4에서 작동하나요?
예. AppleScript 및 Automator은 macOS 14+에서 아키텍처 중립적입니다. Keynote + OpenClaw + Ollama의 RAM 압력이 실질적인 제한 요소입니다. 16GB에서 한 번에 하나의 무거운 작업을 유지하세요.
SKILL.md은 AppleScript과 어떤 관련이 있나요?
SKILL.md 가르치다언제기획자가 불러낸다mac_desktop; AppleScript/Automator 정의어떻게macOS 작업을 수행합니다. 새 워크플로 파일을 추가할 때마다 SKILL.md을 업데이트하세요.
결론
OpenClaw AppleScript 맥 자동화텍스트 게이트웨이를 데스크톱 operator으로 전환: 쉘 도구 → 브리지 스크립트 →osascript/ Automator → 네이티브 앱. 대부분의 튜토리얼이 채팅 응답에서 멈추기 때문에 패턴은 경쟁이 낮습니다.
다음으로 시작볼륨 + Keynote PDF스모크 테스트, 머신당 권한을 한 번 강화한 다음 SKILL.md에 채널 인텐트를 연결합니다. 프로모션이 핫한 경로에 들어가지 않도록 하십시오. 이는 임대 피치가 아닌 엔지니어링 브리지입니다.
관련 기사
데스크톱 자동화에 GUI 세션이 필요하신가요?
로그인된 그래픽 세션이 있는 클라우드 Mac에서 OpenClaw 게이트웨이와 AppleScript 브리지를 함께 실행할 수 있습니다.