huashu-mac-use (Tự động hóa app macOS không có API)
Điều khiển các app macOS chỉ có giao diện đồ họa (không API, không CLI) mà không cướp focus, đồng thời lưu ảnh chụp làm bằng chứng tái lập cho từng bước.
Tự động hóaNâng cao★ 338⑂ 51Điểm AI 9/10Cập nhật lần cuối: 7 thg 11, 2026
Làm được gì
- Điều khiển app GUI-only: click menu, điền ô nhập, đọc giao diện, chuyển cửa sổ cho những app macOS không có API hay dòng lệnh (ví dụ các client AI desktop).
- Định tuyến 4 tầng: L0 giao diện cấu trúc (CDP / AppleScript / URL scheme / cổng cục bộ) → L1 ngữ nghĩa Accessibility qua
agent-desktop→ L2 tọa độ cửa sổ → L3 pixel, chọn đúng kênh theo tình huống. - Ba cổng chặn bảo vệ focus: mặc định ghi ở chế độ không cướp focus; khi buộc phải mượn focus thì phải vượt qua chặn cửa sổ terminal, khóa focus toàn máy và "nếu người dùng vừa gõ phím/di chuột trong 2 giây thì chờ".
- Xác minh thật sự: không tin kết quả "thành công" của công cụ mà đọc lại trạng thái, chụp màn hình, kiểm tra chỉ báo ứng dụng rồi mới kết luận; mọi bước đều có ảnh chụp cửa sổ chạy nền làm bằng chứng.
- Lằn ranh dừng tay: các hành động không thể hoàn tác (đăng, thanh toán, xóa, đồng ý OAuth), Enter trong terminal, hộp thoại hệ thống, app ngân hàng/y tế đều trả lại cho người dùng.
Dành cho ai
- Người cần thao tác lặp lại trên app Mac không có API tự động hóa
- Người cần chụp riêng cửa sổ một app để báo cáo hoặc tái hiện bug
- Người dùng nhiều Desktop/Space và không muốn agent giành focus khi đang làm việc
- Người muốn chạy cùng một câu hỏi qua nhiều mô hình ngay trong client desktop và lưu bằng chứng
Ví dụ sử dụng
- "Nhập câu hỏi vào app desktop nền Electron này rồi chụp phần trả lời" →
probe.shdò kiến trúc →mac open --cdp 9333→cdp.js insert/press→cdp.js shot. - "Chụp cửa sổ app đang nằm ở desktop khác để đưa vào báo cáo" →
mac windows <app> --allthấy on=0 →mac shotchụp nền, không đổi focus. - "Kiểm tra app lạ này có tự động hóa được không" →
probe.sh <app>trả về bundle, kiến trúc, URL scheme, sdef, cổng cục bộ, số lượng control AX.
· · · Hướng dẫn cài đặt · · ·
Dùng thử ngay, không cần cài
Dán đoạn dưới vào Claude là dùng được skill này mà không cần cài đặt.
Hãy đọc hướng dẫn trong tệp này và làm theo để giúp mình: https://raw.githubusercontent.com/alchaincyf/huashu-mac-use/HEAD/SKILL.md Mình muốn: (viết việc bạn cần ở đây)
Nếu Claude không mở được liên kết, hãy mở liên kết và copy nội dung vào rồi dán.
↓ Thấy hữu ích thì tải ZIP bên dưới và cài. Sau đó skill tự chạy, không phải dán lại mỗi lần.
Cài vào ứng dụng Claude (không cần terminal)
- Tải tệp ZIP bằng nút bên dưới.
- Trong Claude, mở Settings → Capabilities và bật 'Code execution and file creation'. (chỉ một lần)
- Vào Customize → Skills → + → 'Upload a skill' rồi tải tệp ZIP lên.
Cài vào Claude Code
Để Claude làm — dán câu dưới đây vào Claude Code
Hãy cài skill mình tìm thấy trên AI Skill Mart. Copy thư mục SKILL.m từ repo GitHub alchaincyf/huashu-mac-use vào ~/.claude/skills/huashu-mac-use/ của mình. Sau khi cài xong, cho mình biết skill này làm được gì trong một câu.
Cài bằng lệnh thủ công
git clone https://github.com/alchaincyf/huashu-mac-use.git ~/.claude/skills/huashu-mac-use && bash ~/.claude/skills/huashu-mac-use/scripts/build.sh⚠ Đây là skill do người khác tạo. Hãy kiểm tra repo gốc trước khi cài.
- Mở Terminal trên macOS, kiểm tra đã có Git và Node.js:
git --versionvànode -v. - Clone kho về thư mục skill:
git clone https://github.com/alchaincyf/huashu-mac-use.git ~/.claude/skills/huashu-mac-use - Biên dịch nhân (khoảng 20 giây):
bash ~/.claude/skills/huashu-mac-use/scripts/build.sh— lệnh này cũng báo bạn đã cài agent-desktop hay chưa. - (Khuyến nghị) Cài thêm:
npm install -g agent-desktopđể thao tác control native trên cùng desktop. Không cài vẫn chạy được bằng đường AX và tọa độ của nhân. - Vào System Settings → Privacy & Security → Accessibility và Screen Recording, bật quyền cho ứng dụng Terminal bạn đang dùng; sau lần cấp quyền đầu tiên hãy khởi động lại Terminal.
- Mở lại Claude Code và thử yêu cầu như "chụp cửa sổ app này" hoặc "điền nội dung vào ô nhập của app kia".
- Với mọi thao tác ghi, hãy chạy
--drytrước để xem cách tọa độ được hiểu và các cổng chặn phán quyết ra sao.
Xem mã nguồn trên GitHub ↗Giấy phép: MIT