Chuyển đến nội dung chính
Hướng dẫn AI

Sử dụng Claude Code từ Spotlight và Siri trên macOS

Tìm hiểu cách cài đặt Claude cho Siri, kết nối với tài khoản Claude Code đã xác thực, bật tính năng khám phá nhà cung cấp thử nghiệm và gửi lời nhắc văn bản qua Spotlight. Hướng dẫn này cũng giải thích kiến trúc dự án, các giới hạn bảo mật, công cụ kiểm thử, cách khắc phục sự cố và những hạn chế hiện tại.

Sử dụng Claude Code từ Spotlight và Siri trên macOS

Claude cho Siri hoạt động như thế nào

Claude cho Siri là một dự án macOS thử nghiệm, cho phép tài khoản Claude Code đã đăng nhập hoạt động như một nhà cung cấp trong Spotlight của macOS và các giao diện Siri liên quan. Ứng dụng trên thanh menu chạy một cầu nối Swift tích hợp, nhận yêu cầu từ tiện ích mở rộng nhà cung cấp trong sandbox, gọi Claude Code CLI cục bộ và truyền trực tiếp các phản hồi văn bản vào giao diện phản hồi gốc của Apple.

Cảnh báo bảo mật: Dự án yêu cầu macOS 27 với System Integrity Protection và Apple Mobile File Integrity bị vô hiệu hóa. Điều này làm giảm đáng kể các cơ chế bảo vệ bảo mật của macOS. Hãy sử dụng một máy Mac phát triển riêng thay vì máy chính hoặc máy sản xuất. Ứng dụng và các tập lệnh của ứng dụng không tự vô hiệu hóa những cơ chế bảo vệ này.

Đây là một bản thử nghiệm độc lập, không phải là tích hợp chính thức của Apple hay Anthropic. Dự án sử dụng các API riêng tư dành cho phiên bản beta và đã được kiểm thử trên macOS 27 build 26A428 với Xcode 27 27A266a.

Tính năng chính và giới hạn

Những gì hiện đang hoạt động

  • Đã thử nghiệm khả năng phát hiện, cấp quyền đồng ý và gọi nhà cung cấp trong Spotlight.
  • Cầu nối Swift có thể hoàn tất các yêu cầu trực tiếp thông qua tài khoản Claude Code đã xác thực.
  • Phản hồi được truyền từng phần vào giao diện phản hồi gốc của Apple.
  • Mỗi yêu cầu bắt đầu một cuộc trò chuyện mới.
  • Tính năng Writing Tools được triển khai cho văn bản đã chọn, dù chưa được xác minh trong giao diện gốc.
  • Ứng dụng trên thanh menu có các tùy chọn kiểm tra kết nối, bật tính năng phát hiện và khôi phục hành vi phát hiện bình thường.

Giới hạn quan trọng

  • Nhà cung cấp chỉ xử lý văn bản.
  • Không thể tạo hình ảnh hoặc nhận tệp đính kèm.
  • Không thể thực hiện thao tác trên thiết bị.
  • Không truy cập thư, danh bạ, tin nhắn hoặc chỉ mục ngữ nghĩa của Siri.
  • Định tuyến giọng nói chưa được xác minh.
  • Chưa có cách nào được xác minh để đặt tiện ích mở rộng này làm nhà cung cấp Ask mặc định trên toàn hệ thống.
  • Spotlight, menu Ask riêng của Siri và System Settings có thể hiển thị các danh sách nhà cung cấp khác nhau.

Giao diện hướng dẫn thiết lập chung của Apple có thể đề cập đến tính năng tạo hình ảnh hoặc hiển thị biểu tượng giữ chỗ. Những thành phần đó không đại diện cho các khả năng do dự án này cung cấp. Phương thức định tuyến đáng tin cậy là chọn rõ Ask… → Claude cho từng yêu cầu Spotlight.

Điều kiện tiên quyết

Trước khi cài đặt dự án, hãy chuẩn bị một máy Mac phát triển với phần mềm và cấu hình bắt buộc:

  • macOS 27 với SIP và AMFI đã bị vô hiệu hóa.
  • Xcode 27, bao gồm việc chấp nhận giấy phép và hoàn tất cài đặt các thành phần trong lần khởi chạy đầu tiên.
  • Homebrew để cài đặt XcodeGen.
  • XcodeGen.
  • Claude Code, đã được cài đặt và đăng nhập.
  • Git và quyền truy cập vào terminal.

Cài đặt XcodeGen bằng Homebrew:

brew install xcodegen

Xác thực Claude Code:

claude auth login

Bạn có thể xác nhận trạng thái tài khoản trước khi tiếp tục:

claude auth status

Cài đặt Claude cho Siri

1. Sao chép kho lưu trữ

git clone https://github.com/mpociot/claude-siri-ai.git
cd claude-siri-ai

2. Xây dựng và cài đặt ứng dụng

./scripts/install.sh

Trình cài đặt xây dựng ứng dụng, đặt ứng dụng tại ~/Applications/Claude.app và mở ứng dụng. Quá trình cài đặt sẽ dừng nếu một ứng dụng khác đã chiếm đúng đường dẫn đó. Ứng dụng Anthropic tại /Applications/Claude.app là một ứng dụng riêng và không xung đột với đường dẫn cài đặt cục bộ của người dùng.

Bản build sử dụng Xcode được chọn bởi xcode-select. Nếu thư mục dành cho nhà phát triển đang hoạt động không đúng, hãy chỉ định Xcode rõ ràng:

DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer ./scripts/install.sh

3. Kiểm tra kết nối Claude Code

Mở ứng dụng Claude đã cài đặt và nhấp vào Test Connection. Ứng dụng sẽ tìm CLI Claude ở các vị trí phổ biến. Nếu không tìm thấy tệp thực thi phù hợp, hãy chọn Choose Claude CLI… và chọn thủ công.

4. Bật tính năng phát hiện nhà cung cấp

Nhấp vào Enable in Spotlight… và xác thực trong hộp thoại quản trị viên của macOS. Ứng dụng tạm thời khởi động lại Siri và Spotlight với khả năng phát hiện nhà cung cấp mở rộng để macOS có thể tìm thấy tiện ích mở rộng tùy chỉnh.

Cơ chế này chỉ là tạm thời. Sau khi khởi động lại máy Mac hoặc khởi động lại các dịch vụ Siri, bạn có thể cần nhấp lại vào Enable in Spotlight…. Sử dụng Restore Normal Discovery để xóa ghi đè quy trình tạm thời.

Gửi lời nhắc đầu tiên

  1. Để ứng dụng Claude trên thanh menu tiếp tục chạy.
  2. Nhấn ⌘Space để mở Spotlight.
  3. Nhấp chuột phải vào trường nhập Spotlight.
  4. Chọn Ask… → Claude.
  5. Nhập lời nhắc văn bản và gửi.
  6. Nếu macOS hiển thị giao diện đồng ý của Apple, hãy hoàn tất quy trình Turn On.

Ví dụ, bạn có thể hỏi:

Giải thích sự khác nhau giữa lập trình bất đồng bộ và lập trình song song trong ba đoạn văn ngắn.

Phản hồi sẽ được truyền vào giao diện gốc của Apple. Vì mỗi yêu cầu bắt đầu một cuộc trò chuyện mới, đừng cho rằng Claude nhớ các lời nhắc trước đó được gửi qua Spotlight.

Việc đóng cửa sổ cài đặt của ứng dụng không dừng cầu nối; cầu nối vẫn khả dụng thông qua thanh menu. Bật Open at login nếu bạn muốn ứng dụng tự động khởi động, nhưng tùy chọn này không bắt buộc.

Cách thức hoạt động của tích hợp

Spotlight / Siri
  → ClaudeProvider.appex trong sandbox
  → HTTP/NDJSON đã xác thực trên 127.0.0.1:17839
  → cầu nối Swift bên trong Claude.app
  → Claude Code CLI đã đăng nhập
  → văn bản được truyền theo luồng
  → phản hồi Siri gốc

Tiện ích mở rộng của provider chạy trong sandbox và giao tiếp với ứng dụng máy chủ qua loopback IPv4. Máy chủ nằm ngoài sandbox để có thể khởi chạy Claude Code CLI.

Với mỗi yêu cầu, CLI chạy trong một thư mục tạm riêng với các công cụ bị vô hiệu hóa, không có máy chủ MCP, chế độ an toàn, không tích hợp Chrome và không duy trì cuộc trò chuyện. Dữ liệu đầu vào của prompt tạm thời sẽ bị xóa sau khi thực thi. Theo tài liệu của dự án, cầu nối không ghi nhật ký prompt, phản hồi hoặc thông tin xác thực.

Máy chủ cục bộ xác thực mọi yêu cầu và từ chối các header Origin của trình duyệt cũng như cách đóng khung HTTP không rõ ràng. Máy chủ cũng giới hạn kích thước nội dung yêu cầu, số kết nối đang mở, số tiến trình Claude chạy đồng thời và thời gian thực thi.

Tìm hiểu về token cục bộ

Bản dựng tạo một bearer token ngẫu nhiên một lần trong .local/bridge.json và đóng gói token này vào các target máy chủ và tiện ích mở rộng. Việc xây dựng lại vẫn giữ nguyên token. Không phân phối gói ứng dụng đã biên dịch có chứa token cục bộ của bạn.

Token giúp ngăn việc truy cập vô tình hoặc truy cập qua trình duyệt, nhưng không phải là ranh giới bảo mật trước một tiến trình cục bộ khác có khả năng đọc gói ứng dụng.

Tìm hiểu về cơ chế phát hiện

Cơ chế phát hiện provider sử dụng một runtime shim tạm thời, có phạm vi giới hạn trong các tiến trình Siri và provider hiện có của Apple. Cơ chế này không sửa đổi các tệp nhị phân của Apple, plist khởi chạy, tham số khởi động, kiểm tra entitlement hoặc sự chấp thuận của provider. Bạn vẫn phải phê duyệt provider thông qua quy trình chấp thuận gốc của Apple.

Lệnh xây dựng và phát triển

Xây dựng mà không cài đặt

./scripts/build.sh

Cài đặt bản dựng hiện có

./scripts/install.sh --skip-build

XcodeGen tạo dự án. Cả máy chủ và tiện ích mở rộng đều sử dụng entitlement riêng com.apple.developer.model-delegation và được ký ad-hoc. Thiết lập này không cấp entitlement Apple để phân phối.

Sau khi cài đặt, ứng dụng chứa cầu nối, tập lệnh phát hiện và shim phát hiện đã biên dịch. Vì vậy, ứng dụng đã cài đặt không yêu cầu bản sao checkout của kho lưu trữ, Xcode hoặc Python khi chạy. Claude Code phải tiếp tục được cài đặt và xác thực. Trong các phiên phát hiện, không di chuyển ứng dụng đã cài đặt khỏi đường dẫn hiện tại.

Điều khiển cơ chế phát hiện từ dòng lệnh

./scripts/discovery-session.sh start
./scripts/discovery-session.sh stop

Lệnh đầu tiên bắt đầu phiên phát hiện tạm thời. Lệnh thứ hai khôi phục hành vi phát hiện bình thường.

Kiểm thử dự án

Chạy bộ kiểm thử Swift

swift test --scratch-path .local/swift-build

Các kiểm thử Swift gốc không yêu cầu tài khoản Claude. Mười kiểm thử bao quát việc xác thực HTTP và kiểm tra tính hợp lệ của yêu cầu, phân phối văn bản tăng dần, xử lý hoàn tất và lỗi, thời gian chờ và hủy tiến trình, cùng một lượt truyền thực qua localhost bằng CLI giả.

Chạy yêu cầu cầu nối trực tiếp

./scripts/smoke.sh

Lệnh này gửi một yêu cầu trực tiếp qua ứng dụng đang chạy và tài khoản Claude đã xác thực của bạn. Phản hồi thành công được ghi trong tài liệu là Claude bridge works.

Kiểm tra chữ ký của tiện ích mở rộng và ứng dụng

pluginkit -m -A -D -v -i dev.goldengate.Claude.Provider
codesign --verify --deep --strict "$HOME/Applications/Claude.app"

Lệnh đầu tiên kiểm tra xem macOS đã đăng ký tiện ích mở rộng provider hay chưa. Lệnh thứ hai xác minh chữ ký mã của ứng dụng đã cài đặt.

Khắc phục sự cố

Cầu nối không khởi động

Thoát các bản sao Claude cho Siri bị trùng và kiểm tra xem có tiến trình nào khác đang sử dụng cổng TCP 17839 hay không. Chỉ cầu nối dự kiến mới được lắng nghe trên cổng này.

Claude không xuất hiện trong menu Hỏi

Mở ứng dụng và chạy lại Bật trong Spotlight…. Hoàn tất mọi lời nhắc chấp thuận macOS xuất hiện. Có thể cần thực hiện lại cơ chế phát hiện sau khi khởi động lại hoặc khởi động lại dịch vụ Siri.

Không phát hiện được Claude CLI

Xác nhận Claude Code đã được cài đặt và xác thực bằng claude auth status. Sau đó sử dụng Chọn Claude CLI… trong ứng dụng để chọn tệp thực thi theo cách thủ công.

Spotlight và Cài đặt hệ thống không thống nhất

Đây là hệ quả đã biết của đường dẫn phát hiện provider thử nghiệm. Spotlight, menu Hỏi riêng của Siri và Cài đặt hệ thống có thể báo cáo các danh sách provider khác nhau. Provider xuất hiện trong một giao diện không đảm bảo provider đó sẽ xuất hiện trong tất cả giao diện.

Claude không được sử dụng tự động

Dự án này không cung cấp thiết lập provider mặc định đã được xác minh. Ngay cả khi Claude đã được chọn trong cuộc trò chuyện trước đó, hãy mở từng yêu cầu Spotlight mới qua Hỏi… → Claude. Ứng dụng cố ý không cung cấp tùy chọn Đặt làm mặc định chưa được xác minh.

Cách dùng nâng cao và mẹo an toàn

  • Sử dụng một máy phát triển riêng vì việc vô hiệu hóa SIP và AMFI làm suy yếu các cơ chế bảo vệ cốt lõi của hệ điều hành.
  • Giữ ứng dụng đã cài đặt tại ~/Applications/Claude.app trong khi phiên khám phá đang hoạt động.
  • Sử dụng Restore Normal Discovery hoặc ./scripts/discovery-session.sh stop khi không còn cần cơ chế khám phá thử nghiệm.
  • Không phân phối các gói đã tự xây dựng cục bộ vì chúng chứa bearer token được tạo cho thiết lập của bạn.
  • Chạy các bài kiểm thử Swift trước khi thay đổi hành vi xác thực bridge, truyền dữ liệu, thời gian chờ hoặc hủy.
  • Sử dụng bài kiểm thử nhanh để phân biệt các vấn đề về bridge hoặc tài khoản với các vấn đề về khám phá Spotlight.
  • Chờ các yêu cầu độc lập thay vì các cuộc trò chuyện liên tục.
  • Không dựa vào Writing Tools, định tuyến giọng nói hoặc hành vi của nhà cung cấp mặc định nếu chưa thực hiện các bài kiểm thử native riêng biệt.

Kết luận

Claude cho Siri minh họa cách một phần mở rộng nhà cung cấp macOS chạy trong sandbox, một bridge Swift cục bộ có xác thực và Claude Code có thể truyền trực tiếp các phản hồi văn bản vào giao diện Ask gốc của Spotlight. Dự án hữu ích cho việc thử nghiệm và phát triển, nhưng các API riêng tư, cơ chế bảo vệ hệ thống bị giảm, cơ chế khám phá tạm thời và các hành vi Siri chưa được xác minh khiến dự án không phù hợp để sử dụng trong môi trường production thông thường.