Claude Desktop의 Cowork 모드를 Linux에서 기본적으로 실행하세요. macOS나 VM이 필요하지 않습니다.
hackernews
|
|
📦 오픈소스
#ai 딜
#anthropic
#claude
#claude desktop
#cowork 모드
#linux
#개발 도구
원문 출처: hackernews · Genesis Park에서 요약 및 분석
요약
오픈소스 프로젝트가 macOS 전용이었던 클로드 데스크톱의 'Cowork' 기능을 리버스 엔지니어링하여, 별도의 가상머신이나 macOS 없이 리눅스 환경(x86_64)에서 네이티브로 실행할 수 있도록 개발했습니다. 이 프로젝트는 macOS 네이티브 모듈을 자바스크립트 스텁으로 대체하고 경로를 변환하는 방식으로 작동하며, 설치 스크립트와 AUR 패키지를 통해 아치 리눅스, 우분투 등 주요 리눅스 배포판에서 사용 가능합니다. 다만 현재 비공식 연구용 미리보기 버전으로, 클로드 데스크톱 업데이트 시 작동하지 않을 가능성이 있으며 Wayland나 보안 키 체인 설정에 따라 일부 기능 제약이 있을 수 있습니다.
본문
Claude Cowork is a special Claude Desktop build that works inside a folder you point it at—it reads, writes, and organizes files there while it runs a plan. Cowork is currently a macOS-only preview backed by a sandboxed Linux VM; this repo reverse-engineers and stubs the macOS-native pieces so Cowork can run directly on Linux (x86_64)—no VM and no macOS required. The stub translates VM paths to host paths so Cowork points at the right files on Linux. How it works: - Unofficial research preview: This is reverse-engineered and may break when Claude Desktop updates. - Linux support: Currently targets Linux x86_64. Wayland: auto-detected via $WAYLAND_DISPLAY /$XDG_SESSION_TYPE (Ozone backend). - Access: Requires a Claude account. The installer auto-downloads the Claude Desktop DMG; no macOS machine needed. - Tests: 215+ test cases across 18 test files validating IPC, path translation, security, and session persistence. | Distro | Desktop | Status | Notes | |---|---|---|---| | Arch Linux | Hyprland (Wayland) | Tested | Primary dev environment | | Arch Linux | KDE Plasma (Wayland) | Expected | KDE Wallet exposed via SecretService D-Bus | | Arch Linux | GNOME (Wayland) | Expected | Global shortcuts require manual DE config (GNOME lacks portal support) | | Ubuntu 22.04+ | GNOME / X11 | Expected | gnome-keyring provides SecretService | | Fedora 39+ | GNOME / KDE | Expected | May need p7zip-plugins for DMG extraction | | Debian 12+ | Any | Expected | p7zip-full in apt | | NixOS | Any | Untested | Electron + bwrap sandboxing may need extra config | | openSUSE | Any | Tested | Uses 7zip package (not p7zip ); nodejs-default for Node.js | Known caveats: - Wayland compositors that don't implement the GlobalShortcuts portal (GNOME) won't have global hotkey support -- set a custom shortcut in your DE settings instead. - If gnome-keyring or another SecretService provider isn't running, the launcher falls back to--password-store=basic (credentials stored on disk, not in a keyring). - The /sessions root symlink requiressudo once during install. If your distro restricts root symlinks differently, point it manually:sudo ln -s "$HOME/.config/Claude/local-agent-mode-sessions/sessions" /sessions . Run ./install.sh --doctor (or claude-desktop --doctor ) after install to validate your environment. - Linux x86_64 (tested on Arch Linux, kernel 6.18.13) - Node.js 18+ / npm - Electron (system package or npm global) - asar ( npm install -g @electron/asar ) - p7zip (to extract the macOS DMG; openSUSE uses 7zip instead) - bubblewrap (sandbox isolation) - Python 3.11+ (optional, for enable-cowork.py patching — the installer uses Node.js to download DMGs) - Claude Pro (or higher) subscription for Cowork access - Secret service provider (optional) -- gnome-keyring, KDE Wallet, or KeePassXC for secure credential storage. Without one, the launcher falls back to --password-store=basic . git clone https://github.com/johnzfitch/claude-cowork-linux.git cd claude-cowork-linux ./install.sh # auto-downloads the latest DMG via Node.js claude-desktop yay -S claude-cowork-linux # auto-downloads the latest DMG bash /mnt/ ├── → /home/user/path/to/selected/folder (symlink) ├── .claude → ~/.config/Claude/local-agent-mode-sessions/.../session/.claude (symlink) ├── .skills → ~/.config/Claude/local-agent-mode-sessions/skills-plugin/... (symlink) └── uploads/ (directory for file uploads) The additionalMounts parameter from Claude Desktop provides the mapping between mount names and host paths. Note The Claude Code binary expects /sessions to exist. install.sh creates /sessions as a symlink into ~/.config/Claude/local-agent-mode-sessions/sessions (requires sudo once) so you don't need a world-writable root directory. 1. Platform Spoofing The app sends these headers to Anthropic's servers: 'Anthropic-Client-OS-Platform': 'darwin' 'Anthropic-Client-OS-Version': '14.0' This makes the server think we're on macOS 14 (Sonoma), enabling Cowork features. 2. Platform Gate Bypass The platform-gate function (minified name changes per build — xPt() in v1.1.3963, wj() in older builds) checks if Cowork is supported. enable-cowork.py finds it automatically and replaces it to unconditionally return {status: "supported"} . 3. Swift Addon Stub The original @ant/claude-swift uses Apple's Virtualization Framework. Our stub: - Implements the same API surface - Delegates spawn logic to session_orchestrator.js for proper lifecycle management - Line-buffers JSON output for proper stream parsing - Translates VM paths to host paths Key insight: The app calls Si() which returns module.default.vm , so methods must be on the vm object. 4. Native Utilities Stub The app also expects @ant/claude-native (a macOS-specific native module). Our stub provides minimal compatibility so the app can start on Linux. For example, OAuth flows fall back to opening the system browser via xdg-open . 5. Session Orchestration Layer The stubs/cowork/ orchestration layer provides 15 modules that handle session life
Genesis Park 편집팀이 AI를 활용하여 작성한 분석입니다. 원문은 출처 링크를 통해 확인할 수 있습니다.
공유