6 điểm bởi GN⁺ 1 ngày trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Cài Claude Code trên một máy Mac dư không có dữ liệu cá nhân, cấu hình thành môi trường chạy độc lập luôn có thể truy cập từ SSH trên máy Mac chính và ứng dụng Claude trên điện thoại
  • Mức độ cô lập thiết bị cao hơn container, đồng thời vẫn dùng được Unity và các ứng dụng GUI chỉ có trên Mac, nên có thể tách rủi ro của --dangerously-skip-permissions khỏi máy Mac chính
  • Thiết lập tài khoản quản trị viên cục bộ mới, sudo·SSH không cần mật khẩu, chống ngủ, đồng bộ clipboard và cài Claude Code để xây dựng nền tảng làm việc từ xa
  • Điều khiển GUI được triển khai bằng tmux server do LaunchAgent duy trì trong phiên GUI; quyền ghi màn hình, Trợ năng và Toàn quyền truy cập đĩa phải do con người tự cấp
  • Khi bổ sung Remote Control, Claude in Chrome, Screen Sharing và Tailscale, có thể điều khiển từ điện thoại, tự động hóa trình duyệt và truy cập từ bên ngoài, nhưng cần xác thực riêng và thiết lập quyền trên macOS

Mục đích cấu hình và nguyên tắc cơ bản

  • Tạo một môi trường để Claude Code tự vận hành và giao các tác vụ nghiên cứu·phát triển ra ngoài máy Mac chính
  • Tác nhân dùng --dangerously-skip-permissions có quyền rất rộng, vì vậy nên chạy trên thiết bị riêng không có dữ liệu cá nhân và Apple ID để giảm thông tin nhạy cảm mà nó có thể truy cập
  • Có thể truy cập Claude Code bất cứ lúc nào qua ứng dụng Claude trên điện thoại hoặc SSH từ máy Mac chính
  • Cấu hình cơ bản cần một máy Mac đích dư đang kết nối cùng Wi‑Fi và một máy Mac nguồn dùng hằng ngày

Vì sao dùng một máy Mac dư thay vì container hay OpenClaw

  • Container vẫn chạy trên máy Mac chính và các yêu cầu mạng cũng đi qua máy Mac chính, nên không phải là tách biệt thiết bị hoàn toàn
  • Khó chạy Unity hoặc các ứng dụng chỉ có trên Mac, và cũng bị hạn chế với các tác vụ GUI cần nhấp·kéo thả bằng tính năng sử dụng máy tính
  • Cấu hình bằng máy Mac dư tận dụng nguyên vẹn các tính năng Claude Code mới nhất, khả năng điều khiển từ ứng dụng Claude và hạn mức của gói Claude đang có
  • Môi trường được tách biệt theo các nguyên tắc sau
    • Dùng máy Mac cũ dư ra thay vì máy Mac chính
    • Tạo tài khoản cục bộ mới không có dữ liệu cá nhân và Apple ID
    • Điều khiển bằng SSH trong mạng nội bộ, và bằng ứng dụng Claude trên điện thoại

1. Đặt lại máy Mac đích và cô lập tài khoản

  • Nếu còn dữ liệu cá nhân hiện có thì tác nhân sẽ truy cập được toàn bộ, vì vậy hãy xóa thiết bị trước
    • Mac được hỗ trợ: System Settings → General → Transfer or Reset → Erase All Content and Settings
    • Mac Intel đời cũ: khi khởi động nhấn Cmd-R để vào Recovery, xóa ổ đĩa trong bằng Disk Utility rồi cài lại macOS
  • Nếu cần, cập nhật lên macOS mới nhất tại System Settings → General → Software Update
  • Tạo tài khoản người dùng cục bộ mới và bỏ qua đăng nhập Apple ID
  • Cấp quyền quản trị cho tài khoản để có thể dùng sudo
    • Trong System Settings → Users & Groups, bật Allow this user to administer this computer
    • Khi khôi phục từ tài khoản quản trị khác, có thể dùng sudo dseditgroup -o edit -a <user> -t user admin

2. Bật đăng nhập từ xa SSH

  • Trên máy Mac đích, bật Remote Login bằng lệnh sau
sudo systemsetup -setremotelogin on
  • Nếu gặp lỗi Turning Remote Login on or off requires Full Disk Access privileges, hãy cấp Full Disk Access cho Terminal
    • Trong System Settings → Privacy & Security → Full Disk Access, thêm Applications → Utilities → Terminal
    • Thoát Terminal rồi mở lại và chạy lại lệnh

3. Thiết lập sudo không cần mật khẩu

  • Để tác nhân và lệnh SSH không phải yêu cầu mật khẩu mỗi lần, tạo quy tắc theo từng tài khoản trong /etc/sudoers.d/
echo "<user> ALL=(ALL) NOPASSWD: ALL" | sudo tee /etc/sudoers.d/<user>-nopasswd >/dev/null
sudo chmod 440 /etc/sudoers.d/<user>-nopasswd
sudo visudo -cf /etc/sudoers.d/<user>-nopasswd
  • Lệnh đầu ghi quy tắc, lệnh thứ hai đặt quyền chỉ đọc mà sudo yêu cầu
  • Ở bước kiểm tra cuối, bắt buộc phải hiện parsed OK; cú pháp sudoers sai có thể chặn quyền truy cập sudo
  • Nếu sudo -n true chạy thành công mà không có đầu ra, thì sudo không cần mật khẩu đã hoạt động

4. Xác định địa chỉ máy Mac đích

  • Vì IP có thể thay đổi sau khi khởi động lại hoặc theo thời gian, nên khuyến nghị dùng tên máy chủ cố định
scutil --get LocalHostName
  • Gắn .local vào tên đã xuất ra và dùng dưới dạng <target-host>.local
  • Nếu tên .local của hai máy Mac trong cùng mạng bị trùng, có thể kết nối nhầm thiết bị, nên hãy đặt tên duy nhất
sudo scutil --set LocalHostName newmacbook
  • Nếu cần IP, có thể kiểm tra bằng ipconfig getifaddr en0, nhưng địa chỉ này có thể thay đổi
  • Về sau, dùng địa chỉ theo dạng <user>@<target-host>.local

5. Cấu hình SSH không cần mật khẩu trên máy Mac nguồn

  • Nếu chưa có khóa SSH, hãy tạo khóa Ed25519 trên máy Mac nguồn
ssh-keygen -t ed25519
ssh-copy-id <user>@<target-host>.local
  • Khi cài khóa công khai, nhập mật khẩu của tài khoản đích một lần
  • Nếu lệnh sau in ra tên người dùng đích mà không cần nhập mật khẩu, thì cấu hình đã hoàn tất
ssh <user>@<target-host>.local whoami

6. Ngăn chế độ ngủ và khóa tự động

  • macOS có thể ngủ sau khoảng 10 phút không hoạt động ngay cả khi đang cắm điện, khiến máy biến mất khỏi mạng, vì vậy hãy tắt chế độ ngủ
sudo pmset -c sleep 0
sudo pmset -c disablesleep 1
sudo pmset -c displaysleep 0
  • Mỗi lệnh lần lượt áp dụng ngăn hệ thống ngủ khi đang sạc, ngăn ngủ khi đóng nắp và ngăn màn hình ngủ
  • Kiểm tra sleep 0, SleepDisabled 1, displaysleep 0 trong đầu ra của pmset -g | grep -iE 'sleep'
  • Nếu muốn áp dụng cả khi dùng pin, thay -c bằng -a, nhưng mức tiêu hao pin sẽ tăng
  • Đồng thời chặn khóa tự động do trình bảo vệ màn hình
defaults -currentHost write com.apple.screensaver idleTime 0

7. Đồng bộ clipboard qua SSH

  • Kết nối pbcopypbpaste của macOS qua SSH cho phép truyền văn bản theo kiểu P2P được mã hóa mà không cần Apple ID hay dịch vụ bên ngoài
  • clip.sh còn hỗ trợ truyền cả hình ảnh
curl -fsSL https://raw.githubusercontent.com/ykdojo/claude-controls-mac/… -o ~/.local/bin/clip
chmod +x ~/.local/bin/clip
export IC_BOX="<user>@<target-host>.local"
  • Hãy thêm thiết lập IC_BOX vào ~/.zshrc
  • clip send gửi văn bản hoặc hình ảnh từ máy Mac nguồn sang máy đích; hình ảnh có thể được dán vào phiên Claude Code trên máy đích bằng Ctrl-V
  • clip get lấy clipboard của máy Mac đích về máy Mac nguồn

8. Cài đặt Claude Code

  • Từ máy Mac nguồn, cài phiên bản Claude Code cụ thể lên máy Mac đích qua SSH
ssh <user>@<target-host>.local 'curl -fsSL https://claude.ai/install.sh | bash -s -- 2.1.201'
  • Có thể chỉ định latest hoặc stable thay cho phiên bản 2.1.201
  • Nếu xuất hiện cảnh báo PATH của ~/.local/bin, hãy thêm đường dẫn vào ~/.zshenv, tệp được mọi phiên zsh đọc
ssh <user>@<target-host>.local 'echo '\''export PATH="$HOME/.local/bin:$PATH"'\'' >> ~/.zshenv'

9. Cài đặt tùy chọn môi trường thân thiện với Claude Code

  • setup-claude-env.sh, thành phần tùy chọn, sẽ cài shell alias, plugin DX, điều chỉnh settings.json, GitHub CLI và Playwright MCP·yt-dlp tùy chọn
  • Có thể xem toàn bộ thành phần tại claude-env-components.md
  • Ở chế độ chạy tương tác, các mục mặc định được chọn sẵn và các mục cài đặt tùy chọn được hiển thị dưới dạng checklist bỏ chọn
ssh -t <user>@<target-host>.local \
  'curl -fsSL https://raw.githubusercontent.com/ykdojo/claude-controls-mac/… -o setup-claude-env.sh && bash setup-claude-env.sh'
  • Chạy không tương tác mặc định chỉ cài các mục cốt lõi và hỗ trợ các cờ --yt-dlp, --playwright, --all, --core
  • Script có tính idempotent, nên có thể chạy lại

10. Đăng nhập Claude và GitHub

  • Kết nối tới máy Mac đích qua SSH, chạy claude, rồi đăng nhập vào tài khoản Anthropic bằng luồng mã trình duyệt·thiết bị có thể hoàn tất trên trình duyệt của máy Mac chính
  • Nên thêm đăng nhập GitHub bằng gh auth login để làm việc với kho lưu trữ
  • Để agent không ảnh hưởng tới tài khoản chính, an toàn hơn là dùng tài khoản GitHub riêng

11. Tính năng sử dụng máy tính qua SSH

  • Cách kết nối vào phiên GUI

    • Tiến trình SSH không thể trực tiếp dùng quyền ghi màn hình và Trợ năng gắn với phiên đăng nhập GUI
    • LaunchAgent duy trì máy chủ tmux và phiên neo cc trên một socket cố định trong phiên GUI
    • Claude Code khởi động trong máy chủ đó sẽ kế thừa phiên GUI để truy cập chụp màn hình, điều khiển chuột và bàn phím
  • Cài đặt

    ssh -t <user>@<target-host>.local \
      'curl -fsSL https://raw.githubusercontent.com/ykdojo/claude-controls-mac/… -o setup-computer-use.sh && bash setup-computer-use.sh'
    
    • Cài LaunchAgent và tmux anchor, đồng thời bật công cụ computer-use tích hợp trong ~/.claude.json
    • Cần tmux và gói Claude Pro hoặc Max; script có thể chạy lại và có thể gỡ bằng --uninstall
  • Quản lý phiên bằng lệnh ic

    • Cài ic.sh trên máy Mac nguồn
    curl -fsSL https://raw.githubusercontent.com/ykdojo/claude-controls-mac/… -o ~/.local/bin/ic
    chmod +x ~/.local/bin/ic
    echo 'export IC_BOX="<user>@<target-host>.local"' >> ~/.zshrc
    
    • Các lệnh chính như sau
      • ic: phiên Claude mới
      • ic -c, ic -r: tiếp tục cuộc trò chuyện gần đây hoặc bộ chọn khôi phục
      • ic --chrome: chạy cùng Claude in Chrome
      • ic sh: shell thông thường trên máy đích
      • ic vnc: chạy Screen Sharing
      • ic rc: máy chủ Remote Control cho điện thoại
      • ic history, ic ls: xem các cuộc trò chuyện đã lưu và các phiên đang chạy
      • ic attach <id>, ic kill <id>, ic kill-all, ic kill-except: quản lý kết nối·kết thúc phiên
    • Mọi phiên ic đều chạy với --dangerously-skip-permissions, còn ic rc dùng --permission-mode bypassPermissions
    • Trong tmux, Terminal.app không nhận được chuỗi clipboard OSC52 do Claude xuất ra, nên để sao chép toàn màn hình hãy dùng Cmd-A rồi Cmd-C
  • Ủy quyền giữa các agent

    • Claude Code trên máy Mac nguồn có thể dùng SSH và tmux send-keys để gửi prompt tới phiên Claude đang chạy trên máy đích
    • Với prompt dài, Enter đi kèm cùng gói truyền như văn bản có thể không được xử lý là lệnh gửi, nên cần chờ một chút rồi gửi thêm một lần Enter
    • Có thể đọc phản hồi bằng tmux capture-panetail, rồi kiểm tra lặp lại cho tới khi công việc hoàn tất
  • Các quyền phải do con người cấp trực tiếp

    • Quyền ghi màn hình và Trợ năng phải được con người phê duyệt trực tiếp trong GUI của macOS, không thể xử lý bằng click tổng hợp
    • Cũng phải chấp thuận yêu cầu cho phép bypass the window picker xuất hiện ở lần chụp đầu tiên; yêu cầu này có thể hiện lại khoảng mỗi tháng một lần
    • Đối tượng được cấp quyền không phải claude mà là binary tmux, tức tiến trình chịu trách nhiệm
      • Đường dẫn Intel: /usr/local/bin/tmux
      • Đường dẫn Apple Silicon: /opt/homebrew/bin/tmux
    • Ghi màn hình cho phép chụp screenshot, còn Trợ năng cho phép điều khiển chuột·bàn phím
    • Trạng thái quyền được cache khi tiến trình khởi động, nên sau khi cấp quyền phải khởi động lại máy chủ bằng tmux -S /tmp/cc-tmux.sock kill-server
    • Nếu tmux không xuất hiện trong danh sách cài đặt, hãy yêu cầu Claude chụp màn hình từ ic để kích hoạt yêu cầu cấp quyền trước
    • Trên các bản macOS mới, để tránh các yêu cầu truy cập dữ liệu theo từng ứng dụng lặp lại, hãy cấp Full Disk Access cho tmux và khởi động lại máy chủ

12. Cài VPN và các ứng dụng GUI khác

  • Có thể cài VPN như Proton VPN để tách lưu lượng của máy Mac đích khỏi IP cục bộ
  • Nếu đã thiết lập tính năng sử dụng máy tính, có thể yêu cầu Claude trong ic cài ứng dụng, nhưng các việc sau vẫn phải do con người xử lý
    • Ngay cả gói miễn phí cũng cần thông tin đăng nhập và có thể truyền mật khẩu bằng clip send
    • Phải chấp thuận quyền VPN·cấu hình mạng của lần kết nối đầu tiên và yêu cầu nhập mật khẩu Mac
    • Điều khiển ứng dụng chỉ có GUI cần tính năng sử dụng máy tính
  • Sau khi đăng nhập, agent có thể thực hiện kết nối và chuyển máy chủ, và có thể áp dụng cùng luồng này cho các ứng dụng khác

13. Điều khiển từ điện thoại

  • Chạy /remote-control hoặc /rc trong phiên hiện có để tiếp tục điều khiển cùng phiên đó bằng ứng dụng Claude
  • claude remote-control hỗ trợ không chỉ kết nối vào phiên hiện có từ điện thoại mà còn tạo phiên mới
  • Khi khởi động bằng ic rc, các phiên được tạo từ điện thoại cũng có thể truy cập tính năng sử dụng máy tính của máy Mac đích

14. Thiết lập Claude in Chrome

  • Tính năng sử dụng máy tính thông thường có thể nhìn thấy màn hình trình duyệt nhưng bị hạn chế trong việc nhấp chuột hoặc nhập liệu
  • Tiện ích Claude in Chrome hỗ trợ điều hướng, nhấp chuột, nhập biểu mẫu, đọc log console và các yêu cầu mạng
  • Khác với Playwright MCP, nó sử dụng hồ sơ Chrome thông thường của máy Mac đích nên có thể tận dụng trạng thái đã đăng nhập sẵn
  • Máy Mac đích cần có Chrome và gói đăng ký trực tiếp Anthropic Pro, Max, Team hoặc Enterprise
  • Các thao tác sau cần do con người trực tiếp thực hiện
    • Nhấp Add to Chrome trong Chrome Web Store
    • Đăng nhập vào tài khoản Claude trong tiện ích; có thể chuyển thông tin xác thực bằng clip send
  • Trong Claude Code, chạy /chrome để bật mặc định, hoặc dùng claude --chrome hay ic --chrome theo từng phiên
  • Nếu không kết nối được, hãy khởi động lại Chrome một lần
  • Script môi trường ở bước 9 thêm hướng dẫn vào ~/.claude/CLAUDE.md để dùng tham chiếu phần tử trong cây trợ năng thay vì tọa độ, và tránh chụp ảnh màn hình khi chưa được yêu cầu
  • Nếu tiện ích của cùng một tài khoản đang chạy đồng thời trên Chrome nguồn và Chrome đích, sẽ xuất hiện yêu cầu chọn, và có issue #74667 khiến việc nhận diện thiết bị cục bộ có thể bị sai
    • Có thể tránh bằng cách tạm gỡ tiện ích trên máy Mac nguồn hoặc đóng Chrome trên máy nguồn
  • issue #74671 là các phiên được tạo từ điện thoại hiện chưa có công cụ trình duyệt
    • Khởi động phiên trong terminal rồi kết nối điện thoại bằng /rc

15. macOS Screen Sharing

  • Screen Sharing tích hợp sẵn cho phép xem màn hình đích theo thời gian thực từ máy Mac nguồn và trực tiếp điều khiển chuột, bàn phím
  • Từ macOS 12.1, không thể bật bằng dòng lệnh, nên phải thiết lập trong GUI của máy đích
  • Trong System Settings → General → Sharing, bật Screen Sharing
    • Nếu Remote Management đang bật nên không thấy công tắc, hãy tắt nó trước
  • Kết nối từ máy Mac nguồn bằng lệnh sau
open vnc://<user>@<target-host>.local
  • Đăng nhập bằng mật khẩu của tài khoản đích và có thể chọn lưu mật khẩu vào Keychain

16. Truy cập mạng bên ngoài qua Tailscale

  • Địa chỉ .local chỉ hoạt động trong LAN, nhưng Tailscale cho phép dùng SSH, ic, clip, Screen Sharing cả trên mạng bên ngoài thông qua đường hầm WireGuard P2P mã hóa đầu cuối
  • Không phơi dịch vụ ra Internet công cộng, và trong mạng gia đình sẽ dùng trực tiếp đường LAN
  • Việc tham gia mạng Tailscale chỉ cung cấp khả năng thiết bị liên lạc với nhau, nên vẫn cần khóa SSH hoặc mật khẩu Screen Sharing
  • Cài đặt trên máy Mac đích theo kiểu headless và đăng nhập tại URL được in ra
ssh <user>@<target-host>.local 'brew install tailscale'
ssh <user>@<target-host>.local 'sudo brew services start tailscale'
ssh <user>@<target-host>.local 'sudo tailscale up --operator=<user>'
  • Cài trên máy Mac nguồn nữa và đăng nhập bằng cùng tài khoản Tailscale với máy đích
brew install --cask tailscale-app
  • Nếu dùng MagicDNS được bật mặc định, có thể truy cập từ bất kỳ đâu bằng tên host không có .local
export IC_BOX="<user>@<target-host>"


# export IC_BOX="<user>@<target-host>.local"
  • Địa chỉ Screen Sharing cũng đổi thành open vnc://<user>@<target-host>
  • Trong bảng điều khiển quản trị, nên dùng các thiết lập bảo mật và khả dụng sau
    • Bật device approval để thiết bị mới không thể tham gia chỉ với thông tin đăng nhập bị đánh cắp
    • Tắt key expiry để thiết bị đích không bị ngắt kết nối sau khoảng 180 ngày do khóa hết hạn
  • Để kiểm tra truy cập từ xa thực tế, hãy kết nối máy Mac nguồn vào một mạng khác như hotspot điện thoại rồi xác nhận bằng ic ls

1 bình luận

 
Ý kiến Hacker News
  • Nếu không phải phát triển đồ họa như bài viết đề cập thì không có lý do gì phải cô lập agent trên phần cứng thật. Tôi đã viết một script tạo desktop đồ họa dành riêng cho Claude bằng libvirt, thậm chí còn chạy cả kiểm thử chấp nhận người dùng trên Chrome
    Dù có cấp toàn bộ quyền root thì nếu có vấn đề cũng có thể xóa bỏ và cài lại trong vài giây

    • Tôi thì chỉ tạo người dùng riêng kiểu sudo useradd agent, sudo su agent để agent chỉ có thể phá file của chính nó. Tôi cũng đã chụp ảnh màn hình bằng Chrome headless và cấu hình VNC, nhưng không đáng để dùng lắm
      Ngay cả trên VPS 3 đô cũng có thể cài lại ngay nếu hỏng, nên việc cấp root cho agent cũng khá thú vị
    • Có thể chạy macOS guest trong máy ảo trên máy Mac host, và Apple cũng cho phép điều này một cách rõ ràng
    • Nếu đủ dung lượng thì có thể tạo iMessage dành riêng cho Claude trong máy ảo, nhưng tận dụng phần cứng Apple cũ còn dư cũng tốt
    • Script này có vẻ là mã do Claude tạo ra; tôi đọc khoảng 250 dòng thì thấy mệt vì mã thiếu nhất quán nên mất hứng
  • Tôi vẫn hoàn toàn không tìm ra trường hợp dùng mà AI thật sự có thể hỗ trợ liên tục 24/7, nhưng cũng muốn cảm thấy mình cần nó

    • Người dùng thành thạo Claude Code gần như không dùng IDE, nên ngoài thói quen ra thì cũng chẳng có nhiều lý do không làm việc bằng điện thoại thay vì laptop
      Thật vậy, khi đang ra ngoài mà Datadog, log đám mây và cảnh báo GitHub dồn dập tới, bạn có thể giao cho Claude Code điều tra và phân loại kiểu như “timeout của API ngân hàng đối tác đã xuất hiện ở khoảng 15% request từ một giờ trước”. Sau đó liên hệ người phụ trách rồi quay lại cuối tuần của mình là xong
      Một hệ thống on-call tử tế vẫn tốt hơn, nhưng xét đến mức linh hoạt mà công việc mang lại thì cảnh báo Slack cuối tuần vẫn chấp nhận được
    • Tôi thường để Claude theo dõi các phân tích khoa học dữ liệu mất nhiều giờ. Qua điều khiển từ xa, tôi có thể nhận thông báo khi hoàn tất hoặc khi cần xác nhận thêm, và nếu nảy ra ý tưởng mới thì có thể đưa ngay vào hàng đợi công việc
      Nhiều khi phần cứng mới là nút thắt hơn là giới hạn gói đăng ký
    • Khi còn dư token, tôi dùng nó cho fuzzing chọn phương pháp fuzzing dựa trên kiến thức về domain và mã nguồn, cho các bài toán tối ưu hóa tương tự, và để chạy SkillOpt của Microsoft
    • Tôi đã dùng Claude Cowork tạo checklist và bản sao lưu để cài lại laptop một cách an toàn. Tôi để nó kiểm tra cấu hình SSH, ứng dụng, tệp tải về, tài liệu... rồi lo cả sao lưu, sau đó còn viết luôn quy trình khôi phục sau khi cài lại, nhờ vậy cuối cùng cũng giải quyết được việc bị trì hoãn bấy lâu
    • Những cách dùng hữu ích là cho nó điều khiển Google Chrome và Figma có GUI trong môi trường riêng, chạy tác vụ hơn 1 giờ trong khi đóng máy tính chính, và tách riêng các tác vụ ngốn CPU và tài nguyên như Gemma, Whisper, Qwen
  • Thay vì cài Claude lên chiếc PC thứ ba để nó tiếp tục ảo giác ra đống mã chẳng ai muốn chỉ vì cố không bị tụt lại, tôi thích tự viết code hơn vì vốn dĩ tôi thích lập trình

  • Tôi cũng cấu hình tương tự trên một máy Mac cũ như bản thay thế miễn phí cho bot OpenClaw. Thỉnh thoảng kết nối bị ngắt nên phải chuyển giao lại bằng điện thoại, nhưng vì còn chạy cả Homebridge để Claude điều khiển được nên tính hữu dụng khá tốt

  • Tôi đang cài Claude Desktop trên một Mac mini M4 riêng và điều khiển bằng Dispatch. Claude vốn đã có toàn quyền với tài khoản local mà tôi cấp cho nó, nên tôi không rõ có lý do gì để đổi sang cách này không

    • Phần lớn suy luận đều được xử lý phía Anthropic, nên tôi không hiểu vì sao lại cần M4. Nếu không chạy ứng dụng đặc biệt ngốn tài nguyên thì cấu hình đó có vẻ hơi quá tay
    • RC mạnh hơn Dispatch và gần với trải nghiệm dùng Claude Code trực tiếp hơn, nhưng so với sandbox do Claude sở hữu thì chế độ RC vẫn thiếu một số tính năng
      Thay vì phải chạy RC trên từng phiên host, sẽ tốt hơn nếu Claude dùng máy tính của tôi làm sandbox host. Hiện tại tôi đang dùng một cấu hình tạm, trong đó phiên RC chính tạo cửa sổ tmux mới và phiên Claude RC mới cho từng tác vụ lập trình
      Nếu RC bị lỗi thì vẫn có thể dùng Code trực tiếp từ Termux, nhưng giao diện quyền trên iOS hơi thiếu ổn định
    • Dispatch/Cowork về bản chất là Claude Code trong container. Phần “Why not run it in a container?” trong bài chính là câu trả lời; Cowork đôi khi không thể tải xuống để đọc hoặc ghi PDF hay các tệp khác vì quyền của container, nhưng Claude Code thông thường vẫn dùng curlwget bình thường
    • Dispatch khác với cách này và rất tiện cho một số tác vụ, bao gồm cả connector. Tuy vậy, nó ngày càng cho cảm giác như tính năng được chắp vá dần lên trên Cowork mà không có chiến lược thống nhất xuyên suốt cho di động, desktop và laptop
  • Dù không giải quyết được mọi ràng buộc, bạn vẫn có thể cài macOS và Claude Code trong máy ảo trên Mac bằng UTM. UTM chạy được cả bằng tài khoản không phải quản trị viên và dùng được hầu hết công cụ native của Mac
    Tuy nhiên, UI Claude Code trong máy ảo có hiệu năng tương tác không tốt, và tôi không chắc liệu có thể né điều đó bằng cách truy cập terminal từ tài khoản không phải quản trị viên trên host hay không

    • UTM không hỗ trợ tăng tốc đồ họa, nên tính năng trình duyệt bị hạn chế. Ngay cả khi không cần tăng tốc, trình duyệt chạy trong hệ điều hành ảo của UTM cũng không vượt qua được một số CAPTCHA hiện đại và kiểm tra dấu vân tay trình duyệt
  • Tôi đã dựng lại homelab và media server bằng một chiếc HP EliteDesk gắn i5 thay cho NUC cũ không giải quyết được vấn đề quá nhiệt. Tôi định cài Ubuntu cơ bản, tạo máy ảo cách ly và chạy Claude để thử Dispatch, hoặc cài trực tiếp Claude Code rồi dùng ứng dụng Moshi trên iPhone và iPad

    • Tôi cũng đang chạy Claude trong máy ảo Ubuntu và giao cho nó những việc trước đây tôi xử lý bằng tác vụ định kỳ. Nếu không cần iMessage thì tôi tò mò cấu hình Mac mang lại thêm lợi ích gì
  • Tôi cũng làm tương tự với một chiếc M2 cũ. Nó không đủ để chạy local model đủ mạnh, nhưng lại hoàn hảo cho OpenClaw và Claude
    Tôi cũng ngạc nhiên vì giá MacBook M1/M2 giờ đã rẻ hơn so với Mac mini

    • Ngược lại, tôi dùng một Framework Desktop cấu hình cao làm máy AI headless và dùng MacBook Pro M1 cho nhu cầu hằng ngày, thấy hoạt động rất tốt
    • MacBook Air và MacBook từ 16GB trở lên có vẻ đã trở nên quá đắt vì nhu cầu kiểu này