6 पॉइंट द्वारा GN⁺ 1 일 전 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • निजी डेटा रहित अतिरिक्त Mac पर Claude Code इंस्टॉल करके, इसे मुख्य Mac के SSH और फ़ोन के Claude ऐप से हमेशा एक्सेस किए जा सकने वाले स्वतंत्र रनटाइम एनवायरनमेंट के रूप में सेट किया जाता है
  • यह container की तुलना में डिवाइस isolation का उच्च स्तर देता है और Unity व Mac-विशेष GUI ऐप्स भी चला सकता है, इसलिए --dangerously-skip-permissions के जोखिम को मुख्य Mac से अलग किया जा सकता है
  • नया local admin account, passwordless sudo·SSH, sleep रोकना, clipboard sync और Claude Code इंस्टॉलेशन के जरिए remote work की बुनियाद तैयार की जाती है
  • GUI control को LaunchAgent द्वारा GUI session के भीतर बनाए रखे जाने वाले tmux server से लागू किया जाता है, और screen recording·Accessibility·Full Disk Access अनुमतियाँ इंसान को स्वयं देनी होती हैं
  • Remote Control, Claude in Chrome, Screen Sharing, Tailscale जोड़ने पर फ़ोन से control, browser automation और बाहरी access तक संभव हो जाता है, लेकिन अलग authentication और macOS permission settings की ज़रूरत होती है

सेटअप का उद्देश्य और मूल सिद्धांत

  • Claude Code के स्वतंत्र रूप से नियंत्रित किए जा सकने वाले एनवायरनमेंट को बनाकर research·development काम मुख्य Mac के बाहर सौंपे जाते हैं
  • --dangerously-skip-permissions इस्तेमाल करने वाला agent व्यापक permissions रखता है, इसलिए व्यक्तिगत डेटा और Apple ID रहित अलग डिवाइस पर इसे चलाकर पहुँच योग्य संवेदनशील जानकारी को कम किया जाता है
  • फ़ोन के Claude ऐप या मुख्य Mac के SSH के जरिए कभी भी Claude Code तक पहुँचा जा सकता है
  • मूल सेटअप के लिए एक ही Wi‑Fi से जुड़े अतिरिक्त target Mac और रोज़मर्रा में इस्तेमाल होने वाला source Mac चाहिए

container या OpenClaw के बजाय अतिरिक्त Mac क्यों इस्तेमाल करें

  • container अब भी मुख्य Mac पर ही चलता है और network request भी मुख्य Mac से होकर गुजरती हैं, इसलिए यह पूरी डिवाइस isolation नहीं है
  • Unity या Mac-विशेष ऐप चलाना कठिन होता है, और कंप्यूटर-यूज़ फीचर के जरिए click·drag जैसे GUI कामों में भी सीमाएँ होती हैं
  • अतिरिक्त Mac सेटअप, नवीनतम Claude Code फीचर्स, Claude ऐप control और आपके मौजूदा Claude subscription usage का वैसा ही लाभ देता है
  • एनवायरनमेंट को निम्न सिद्धांतों के अनुसार अलग किया जाता है
    • मुख्य Mac नहीं, बल्कि पुराना अतिरिक्त Mac इस्तेमाल करें
    • व्यक्तिगत डेटा और Apple ID रहित नया local account बनाएँ
    • local network पर SSH और फ़ोन पर Claude ऐप से control करें

1. target Mac रीसेट करना और account isolation

  • अगर पुराना व्यक्तिगत डेटा मौजूद है तो agent उस सब तक पहुँच सकता है, इसलिए पहले डिवाइस को मिटाएँ
    • समर्थित Mac: System Settings → General → Transfer or Reset → Erase All Content and Settings
    • पुराने Intel Mac: boot के समय Cmd-R दबाकर Recovery में जाएँ, Disk Utility से internal drive मिटाएँ और फिर macOS दोबारा इंस्टॉल करें
  • ज़रूरत हो तो System Settings → General → Software Update में जाकर नवीनतम macOS पर update करें
  • नया local user account बनाएँ और Apple ID sign-in को छोड़ दें
  • sudo इस्तेमाल करने के लिए account को administrator अधिकार दें
    • System Settings → Users & Groups में Allow this user to administer this computer चालू करें
    • किसी दूसरे administrator account से recovery करते समय sudo dseditgroup -o edit -a <user> -t user admin इस्तेमाल किया जा सकता है

2. SSH remote login सक्षम करना

  • target Mac पर निम्न कमांड से Remote Login सक्षम करें
sudo systemsetup -setremotelogin on
  • अगर Turning Remote Login on or off requires Full Disk Access privileges त्रुटि आती है, तो Terminal को Full Disk Access दें
    • System Settings → Privacy & Security → Full Disk Access में Applications → Utilities → Terminal जोड़ें
    • Terminal बंद करके फिर खोलें और कमांड दोबारा चलाएँ

3. passwordless sudo सेट करना

  • ताकि agent और SSH कमांड हर बार password न माँगें, /etc/sudoers.d/ में account-विशेष नियम बनाएँ
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
  • पहला कमांड नियम लिखता है, दूसरा कमांड sudo द्वारा अपेक्षित read-only permission सेट करता है
  • अंतिम validation में parsed OK अवश्य दिखना चाहिए; गलत sudoers syntax sudo access को रोक सकता है
  • अगर sudo -n true बिना किसी output के सफल हो जाए, तो passwordless sudo काम कर रहा है

4. target Mac का पता जांच

  • IP reboot के बाद या समय बीतने पर बदल सकता है, इसलिए स्थिर host name इस्तेमाल करने की सलाह दी जाती है
scutil --get LocalHostName
  • आउटपुट में मिले नाम के साथ .local जोड़कर इसे <target-host>.local की तरह इस्तेमाल करें
  • एक ही network में दो Mac के .local नाम टकराएँ तो गलत डिवाइस से कनेक्ट हो सकता है, इसलिए unique नाम दें
sudo scutil --set LocalHostName newmacbook
  • अगर IP चाहिए तो ipconfig getifaddr en0 से देखा जा सकता है, लेकिन यह बदल सकता है
  • आगे पता <user>@<target-host>.local फ़ॉर्मेट में इस्तेमाल करें

5. source Mac पर passwordless SSH सेट करना

  • अगर मौजूदा SSH key नहीं है, तो source Mac पर Ed25519 key बनाएँ
ssh-keygen -t ed25519
ssh-copy-id <user>@<target-host>.local
  • public key इंस्टॉल करते समय target account का password एक बार दर्ज करें
  • अगर अगला कमांड बिना password के target user name दिखा दे, तो सेटअप पूरा है
ssh <user>@<target-host>.local whoami

6. sleep और auto-lock रोकना

  • macOS, power से जुड़ा होने पर भी लगभग 10 मिनट idle रहने के बाद sleep में जा सकता है और network से गायब हो सकता है, इसलिए sleep निष्क्रिय करें
sudo pmset -c sleep 0
sudo pmset -c disablesleep 1
sudo pmset -c displaysleep 0
  • हर कमांड क्रमशः charging के दौरान system sleep रोकने, lid बंद होने पर sleep रोकने, और display sleep रोकने के लिए है
  • pmset -g | grep -iE 'sleep' के output में sleep 0, SleepDisabled 1, displaysleep 0 की पुष्टि करें
  • अगर battery पर भी लागू करना हो, तो -c की जगह -a इस्तेमाल करें, लेकिन battery drain बढ़ेगा
  • screen saver के कारण होने वाला auto-lock भी रोकें
defaults -currentHost write com.apple.screensaver idleTime 0

7. SSH clipboard sync

  • macOS के pbcopy और pbpaste को SSH से जोड़ने पर Apple ID या बाहरी service के बिना encrypted P2P तरीके से text भेजा जा सकता है
  • clip.sh image transfer भी सपोर्ट करता है
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"
  • IC_BOX सेटिंग को ~/.zshrc में जोड़ें
  • clip send source Mac के text या image को target पर भेजता है; image को target की Claude Code session में Ctrl-V से paste किया जा सकता है
  • clip get target Mac के clipboard को source Mac पर लाता है

8. Claude Code इंस्टॉल करना

  • source Mac से SSH के जरिए target Mac पर एक specific Claude Code version इंस्टॉल करें
ssh <user>@<target-host>.local 'curl -fsSL https://claude.ai/install.sh | bash -s -- 2.1.201'
  • वर्शन 2.1.201 की जगह latest या stable भी निर्दिष्ट किया जा सकता है
  • अगर ~/.local/bin PATH चेतावनी दिखे, तो वह पाथ ~/.zshenv में जोड़ें, जिसे सभी zsh पढ़ते हैं
ssh <user>@<target-host>.local 'echo '\''export PATH="$HOME/.local/bin:$PATH"'\'' >> ~/.zshenv'

9. Claude Code-अनुकूल एनवायरनमेंट का वैकल्पिक सेटअप

  • वैकल्पिक setup-claude-env.sh shell aliases, DX plugins, settings.json समायोजन, GitHub CLI, और वैकल्पिक Playwright MCP·yt-dlp इंस्टॉल करता है
  • पूरे components की सूची claude-env-components.md में देखी जा सकती है
  • interactive रन में default items चुने जाते हैं, और optional install items अनचेक की गई checklist के रूप में दिए जाते हैं
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'
  • non-interactive रन default रूप से सिर्फ core items इंस्टॉल करता है और --yt-dlp, --playwright, --all, --core flags को सपोर्ट करता है
  • script idempotent है, इसलिए इसे दोबारा चलाया जा सकता है

10. Claude और GitHub लॉगिन

  • SSH से target Mac में जाकर claude चलाएँ, फिर browser·device code flow के जरिए Anthropic account में लॉगिन करें, जिसे main Mac के browser में पूरा किया जा सकता है
  • repository कार्यों के लिए gh auth login से GitHub लॉगिन जोड़ने की सिफारिश की जाती है
  • agent का असर मुख्य account पर न पड़े, इसके लिए अलग GitHub account इस्तेमाल करना अधिक सुरक्षित है

11. SSH के जरिए computer use फीचर

  • GUI session से कनेक्ट होने का तरीका

    • SSH process सीधे उस screen recording और accessibility permissions का उपयोग नहीं कर सकता जो GUI login session से जुड़े हों
    • LaunchAgent GUI session के भीतर एक fixed socket पर tmux server और anchor session cc को बनाए रखता है
    • उस server के भीतर शुरू किया गया Claude Code GUI session inherit करता है, इसलिए screenshots, mouse और keyboard control तक पहुँच सकता है
  • इंस्टॉलेशन

    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'
    
    • यह LaunchAgent और tmux anchor इंस्टॉल करता है, और ~/.claude.json में built-in computer-use tool को सक्षम करता है
    • tmux और Claude Pro या Max plan की आवश्यकता है, और script को दोबारा चलाया जा सकता है; --uninstall से हटाया जा सकता है
  • ic कमांड से session प्रबंधन

    • source Mac पर ic.sh इंस्टॉल करें
    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
    
    • मुख्य कमांड इस प्रकार हैं
      • ic: नया Claude session
      • ic -c, ic -r: हाल की बातचीत जारी रखें या resume picker चुनें
      • ic --chrome: Claude in Chrome के साथ चलाएँ
      • ic sh: target का सामान्य shell
      • ic vnc: Screen Sharing चलाएँ
      • ic rc: मोबाइल Remote Control server
      • ic history, ic ls: सेव की गई बातचीत और चल रहे sessions देखें
      • ic attach <id>, ic kill <id>, ic kill-all, ic kill-except: session attach·समाप्ति प्रबंधन
    • सभी ic sessions --dangerously-skip-permissions के साथ चलते हैं, और ic rc --permission-mode bypassPermissions का उपयोग करता है
    • tmux के भीतर Claude द्वारा भेजी गई OSC52 clipboard sequences को Terminal.app प्राप्त नहीं कर पाता, इसलिए पूरी स्क्रीन कॉपी करने के लिए Cmd-A के बाद Cmd-C का उपयोग करें
  • agents के बीच delegation

    • source Mac का Claude Code SSH और tmux send-keys का उपयोग करके target पर चल रहे Claude session को prompts भेज सकता है
    • लंबे prompts में, text जैसी उसी transmission bundle में शामिल Enter submit के रूप में प्रोसेस नहीं हो सकता, इसलिए थोड़ी देर रुककर Enter एक बार और भेजना पड़ सकता है
    • tmux capture-pane और tail से response पढ़े जा सकते हैं, और काम पूरा होने तक बार-बार जाँच की जा सकती है
  • वे permissions जिन्हें इंसान को सीधे देना होगा

    • screen recording और accessibility permissions को macOS GUI में इंसान को सीधे approve करना होगा; synthetic clicks से यह नहीं हो सकता
    • पहली capture के समय दिखने वाले bypass the window picker अनुमति अनुरोध को भी approve करना होगा, और यह लगभग हर महीने फिर दिख सकता है
    • permission target claude नहीं, बल्कि जिम्मेदार process tmux binary है
      • Intel path: /usr/local/bin/tmux
      • Apple Silicon path: /opt/homebrew/bin/tmux
    • screen recording screenshots की अनुमति देता है, और accessibility mouse·keyboard control की अनुमति देता है
    • permission state process start के समय cache हो जाती है, इसलिए permission देने के बाद tmux -S /tmp/cc-tmux.sock kill-server से server restart करना होगा
    • अगर settings सूची में tmux दिखाई न दे, तो ic में Claude से screenshot माँगकर पहले permission prompt ट्रिगर करें
    • नए macOS में app-specific data access prompts बार-बार न आएँ, इसके लिए tmux को Full Disk Access दें और server को फिर से शुरू करें

12. VPN और अन्य GUI apps इंस्टॉल करना

  • target Mac के ट्रैफ़िक को local IP से अलग करने के लिए Proton VPN जैसा VPN इंस्टॉल किया जा सकता है
  • अगर computer use फीचर सेट कर लिया है, तो ic में Claude से app install करने को कहा जा सकता है, लेकिन नीचे दिए गए काम इंसान को करने होंगे
    • free plan में भी login credentials चाहिए होते हैं, और password clip send से भेजा जा सकता है
    • पहली connection के VPN·network configuration permission और Mac password अनुरोध को approve करना होगा
    • केवल GUI वाले apps को नियंत्रित करने के लिए computer use फीचर आवश्यक है
  • लॉगिन के बाद agent connection और server switching कर सकता है, और यही flow दूसरी applications पर भी लागू किया जा सकता है

13. मोबाइल से नियंत्रण

  • मौजूदा session में /remote-control या /rc चलाने पर Claude app से उसी session को आगे नियंत्रित किया जा सकता है
  • claude remote-control मोबाइल से मौजूदा session से जुड़ने के साथ-साथ नया session बनाने को भी सपोर्ट करता है
  • ic rc से शुरू करने पर मोबाइल से बनाए गए sessions भी target Mac के computer use फीचर तक पहुँच सकते हैं

14. Chrome में Claude सेटअप

  • सामान्य कंप्यूटर-उपयोग फीचर ब्राउज़र स्क्रीन देख सकता है, लेकिन क्लिक या इनपुट पर कुछ सीमाएँ होती हैं
  • Claude in Chrome extension नेविगेशन, क्लिक, फ़ॉर्म इनपुट, console logs और network requests पढ़ने को सपोर्ट करता है
  • Playwright MCP के विपरीत, यह टार्गेट Mac के सामान्य Chrome profile का उपयोग करता है, इसलिए पहले से logged-in स्थिति का फायदा उठाया जा सकता है
  • टार्गेट Mac पर Chrome और Anthropic Pro, Max, Team या Enterprise का direct subscription आवश्यक है
  • नीचे दिए गए काम इंसान को सीधे करने होंगे
    • Chrome Web Store में Add to Chrome पर क्लिक करें
    • extension में Claude अकाउंट में लॉग इन करें; credentials को clip send से भेजा जा सकता है
  • Claude Code में /chrome चलाकर इसे default रूप से enable करें, या per-session claude --chrome या ic --chrome का उपयोग करें
  • कनेक्ट न हो तो Chrome को एक बार restart करें
  • चरण 9 की environment script coordinates के बजाय accessibility tree के element references का उपयोग करती है, और बिना माँगे screenshots से बचने के लिए ~/.claude/CLAUDE.md में निर्देश जोड़ती है
  • अगर source और target Chrome एक ही अकाउंट के extension को एक साथ चला रहे हों, तो selection prompt दिखाई देता है, और local device की पहचान गलत हो सकती है; यह issue #74667 में दर्ज है
    • इससे बचने के लिए source Mac से extension को अस्थायी रूप से हटा दें या source का Chrome बंद कर दें
  • फ़ोन पर बनाई गई sessions में अभी browser tools उपलब्ध नहीं हैं; यह issue #74671 में दर्ज है
    • terminal में session शुरू करने के बाद /rc से फ़ोन को कनेक्ट करें

15. macOS Screen Sharing

  • built-in Screen Sharing के जरिए source Mac से target स्क्रीन को रीयल-टाइम में देखा जा सकता है और mouse·keyboard को सीधे नियंत्रित किया जा सकता है
  • macOS 12.1 से इसे command line से enable नहीं किया जा सकता, इसलिए target GUI में सेट करना होगा
  • System Settings → General → Sharing में Screen Sharing चालू करें
    • अगर Remote Management चालू होने के कारण toggle दिखाई नहीं दे रहा है, तो पहले उसे बंद करें
  • source Mac से नीचे दिए गए कमांड से कनेक्ट करें
open vnc://<user>@<target-host>.local
  • target account password से लॉग इन करें, और चाहें तो Keychain में password save करने का विकल्प चुन सकते हैं

16. Tailscale के जरिए बाहरी नेटवर्क एक्सेस

  • .local address केवल LAN में काम करता है, लेकिन Tailscale P2P end-to-end encrypted WireGuard tunnel के जरिए SSH, ic, clip, और Screen Sharing को बाहरी नेटवर्क में भी इस्तेमाल करने देता है
  • यह services को public internet पर expose नहीं करता, और home network में सीधे LAN path का उपयोग करता है
  • Tailscale network में शामिल होने से केवल devices के बीच reachability मिलती है, इसलिए SSH keys या Screen Sharing password अब भी आवश्यक हैं
  • target Mac पर इसे headless तरीके से install करें और output में दिखने वाले URL पर लॉग इन करें
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>'
  • source Mac पर भी install करें और target के उसी Tailscale account से लॉग इन करें
brew install --cask tailscale-app
  • डिफ़ॉल्ट रूप से enabled MagicDNS का उपयोग करने पर .local हटाकर host name से कहीं से भी access किया जा सकता है
export IC_BOX="<user>@<target-host>"


# export IC_BOX="<user>@<target-host>.local"
  • Screen Sharing address को भी open vnc://<user>@<target-host> में बदलें
  • admin console में नीचे दी गई security·availability settings की सिफारिश की जाती है
    • केवल compromised login के आधार पर नया device जुड़ न सके, इसके लिए device approval enable करें
    • लगभग 180 दिनों बाद key expiry के कारण target device disconnect न हो, इसके लिए key expiry disable करें
  • वास्तविक remote access की जाँच के लिए source Mac को फ़ोन hotspot जैसे किसी दूसरे नेटवर्क से कनेक्ट करने के बाद ic ls चलाएँ

1 टिप्पणियां

 
GN⁺ 1 일 전
Hacker News टिप्पणियाँ
  • अगर लेख में बताए गए ग्राफ़िक्स डेवलपमेंट जैसा काम नहीं है, तो एजेंट को असली हार्डवेयर पर isolate करने की ज़रूरत नहीं है। मैंने libvirt से Claude-समर्पित ग्राफ़िक्स डेस्कटॉप बनाकर Chrome user acceptance testing तक चलाने वाली स्क्रिप्ट लिखी थी
    root privileges सब दे देने पर भी अगर समस्या हो, तो कुछ ही सेकंड में उसे हटाकर फिर से install किया जा सकता है

    • मैं sudo useradd agent, sudo su agent जैसी कमांड से अलग user बना देता हूँ ताकि एजेंट सिर्फ अपनी फाइलें ही खराब कर सके। Headless Chrome से screenshots भी लिए और VNC भी सेट किया, लेकिन उसकी उपयोगिता बहुत ज़्यादा नहीं लगी
      3-dollar VPS पर भी कुछ टूट जाए तो तुरंत reinstall किया जा सकता है, इसलिए एजेंट को root देना थोड़ा मज़ेदार लगता है
    • Mac host की virtual machine में macOS guest चलाया जा सकता है, और Apple इसे स्पष्ट रूप से अनुमति भी देता है
    • अगर storage काफ़ी हो तो virtual machine में Claude के लिए अलग iMessage भी बनाया जा सकता है, लेकिन पड़ा हुआ पुराना Apple hardware इस्तेमाल करना भी ठीक है
    • यह स्क्रिप्ट Claude द्वारा जनरेट किए गए code जैसी लगती है; लगभग 250 lines पढ़ने के बाद inconsistent code देखकर थक गया और रुचि खत्म हो गई
  • मुझे अब तक ऐसा कोई use case नहीं मिला जिसमें AI सच में 24 घंटे लगातार मदद करे, लेकिन मैं भी उसकी ज़रूरत महसूस करना चाहता हूँ

    • Claude Code के power users लगभग IDE का इस्तेमाल नहीं करते, इसलिए laptop की जगह phone से काम न कर पाने की वजह परंपरा के अलावा ज़्यादा नहीं है
      सच में, बाहर होने पर अगर Datadog, cloud logs और GitHub alerts एक साथ आने लगें, तो Claude Code से जांच कराकर उसे ऐसी श्रेणियाँ बनाने को कहा जा सकता है जैसे “partner bank API में पिछले एक घंटे से लगभग 15% requests पर timeout हो रहा है।” ज़िम्मेदार व्यक्ति से संपर्क करने के बाद आप अपने weekend पर लौट सकते हैं
      सही on-call व्यवस्था बेहतर होगी, लेकिन नौकरी की flexibility को देखते हुए weekend Slack alerts भी सहने लायक हैं
    • कई घंटों तक चलने वाले data science analysis में Claude को मुख्य रूप से निगरानी के लिए लगाता हूँ। Remote control से completion या extra verification request की notification मिल जाती है, और नया idea आते ही उसे तुरंत work queue में डाल सकता हूँ
      subscription limit से ज़्यादा अक्सर hardware ही bottleneck बनता है
    • जब tokens बचे होते हैं, तो domain और source code knowledge का उपयोग करके fuzzing strategy चुनने वाले fuzzing, इसी तरह की optimization problems, और Microsoft के SkillOpt चलाने में इस्तेमाल किया है
    • Claude Cowork से laptop को सुरक्षित तरीके से reinstall करने के लिए checklist और backup बनवाया। SSH settings, apps, downloads, documents वगैरह चेक करवाए, backup भी कराया, और reinstall के बाद restore procedure भी लिखवाया, जिससे बहुत समय से टाला हुआ काम खत्म कर पाया
    • उपयोगी use cases में अलग environment में GUI-आधारित Google Chrome और Figma चलवाना, 1 घंटे से ज़्यादा के काम main computer बंद रखते हुए चलाना, और Gemma, Whisper, Qwen जैसे CPU और resource-heavy workloads को अलग करना शामिल है
  • Claude को तीसरे PC पर install करके ऐसा code hallucinate करते रहने देने से, जिसे कोई नहीं चाहता, और बस पीछे न छूटने की कोशिश करने से बेहतर है कि मैं खुद coding करूँ, क्योंकि मुझे coding करना पसंद है

  • OpenClaw bot के free alternative के रूप में मैंने भी एक पुराने Mac पर ऐसा ही setup बनाया। कभी-कभी connection टूट जाता है और phone से handoff फिर करना पड़ता है, लेकिन Claude जिस Homebridge को control कर सकता है उसे साथ में चलाने से इसका उपयोग अच्छा हो जाता है

  • अलग Mac mini M4 पर Claude Desktop install करके Dispatch से control कर रहा हूँ। Claude को दिए गए local account पर मेरा पहले से पूरा control है, इसलिए सोच रहा हूँ कि इस तरीके पर switch करने की कोई वजह है या नहीं

    • ज़्यादातर inference तो Anthropic की तरफ़ से handle होता है, इसलिए समझ नहीं आता कि M4 की ज़रूरत क्यों है। अगर कोई खास resource-intensive app नहीं चला रहे, तो यह overkill लगता है
    • Dispatch की तुलना में RC ज़्यादा powerful था और Claude Code को सीधे इस्तेमाल करने के अनुभव के काफ़ी करीब था, लेकिन Claude-owned sandbox की तुलना में RC mode में भी कुछ features गायब हैं
      हर host session पर RC चलाने के बजाय अच्छा होगा अगर Claude मेरे computer को sandbox host की तरह इस्तेमाल करे। अभी master RC session से हर coding task के लिए नया tmux window और Claude RC session बनाने वाला अस्थायी setup इस्तेमाल कर रहा हूँ
      RC bug होने पर Termux में Code सीधे इस्तेमाल किया जा सकता है, लेकिन iOS का permissions interface थोड़ा अस्थिर लगा
    • Dispatch/Cowork असल में container के अंदर Claude Code है। लेख का “Why not run it in a container?” हिस्सा इसका जवाब है; Cowork में container permissions की वजह से कभी PDF या दूसरी files डाउनलोड करके पढ़ना या लिखना संभव नहीं होता, जबकि सामान्य Claude Code में curl और wget बिना समस्या काम करते हैं
    • Dispatch इस तरीके से अलग है और connectors सहित कुछ कामों में बहुत सुविधाजनक है। लेकिन mobile, desktop और laptop को साथ लेकर चलने वाली integrated strategy के बिना यह धीरे-धीरे Cowork के ऊपर जोड़ी गई सुविधाओं जैसा महसूस होने लगा है
  • यह सभी limitations हल नहीं करता, लेकिन UTM से Mac की virtual machine में macOS और Claude Code install किया जा सकता है। UTM non-admin account पर भी चलता है और ज़्यादातर Mac-native tools इस्तेमाल कर सकता है
    लेकिन virtual machine में Claude Code UI का interactive performance अच्छा नहीं है, और host के non-admin account से terminal के जरिए कनेक्ट होकर इससे बचा जा सकता है या नहीं, यह स्पष्ट नहीं है

    • UTM graphics acceleration support नहीं करता, इसलिए browser functionality सीमित हो जाती है। Acceleration की ज़रूरत न होने पर भी UTM के virtual OS में चलाया गया browser कुछ modern CAPTCHA और browser fingerprint checks पार नहीं कर पाया
  • overheating की समस्या हल न कर पाने वाले पुराने NUC की जगह i5 वाले HP EliteDesk से homelab और media server फिर से बनाया। Base Ubuntu पर isolation के लिए virtual machine बनाकर Claude चलाते हुए Dispatch आज़माने, या Claude Code सीधे install करके iPhone और iPad पर Moshi app इस्तेमाल करने का सोच रहा हूँ

    • मैं भी Ubuntu virtual machine में Claude चला रहा हूँ, और पहले जो काम regular jobs से करता था अब उसे यह संभाल रहा है। अगर iMessage की ज़रूरत नहीं है, तो Mac setup का अतिरिक्त फ़ायदा क्या है, यह जानना चाहता हूँ
  • पुराने M2 से भी ऐसा ही setup बनाया। पर्याप्त क्षमता वाले local models चलाने के लिए यह कमज़ोर है, लेकिन OpenClaw और Claude के लिए बिल्कुल सही है
    यह देखकर हैरानी होती है कि M1 और M2 MacBook की कीमतें अब Mac mini के मुकाबले भी काफ़ी सस्ती लगती हैं

    • मैं उल्टा high-performance Framework Desktop को headless AI machine की तरह रखकर M1 MacBook Pro को रोज़मर्रा के लिए इस्तेमाल करता हूँ, और यह अच्छी तरह काम करता है
    • 16GB या उससे ज़्यादा वाले MacBook Air और MacBook शायद इसी मांग की वजह से बहुत महंगे हो गए हैं