中文導讀(編輯整理)
未報告安裝程式或發行資產警訊;提醒配對裝置權限、發布者與本機工具信任。未檢查本機認證。
實際閱讀範圍:安裝程式、發行 metadata/雜湊及文件;未執行二進位檔或閱讀本機認證。
這份回覆針對固定來源 239adc8ad 與 v2.1.2。該來源的 README 仍寫 v2.1.1,後來主線已改為 v2.1.2;這不代表 v2.1.2 發行檔缺失。閱讀者未追蹤的認證/換鑰接線,不等於已證實該機制不存在。
審查者在回覆中自行假設提問者擁有此程式庫;題目沒有提供這個身分。這個假設原文保留,本次不能視為嚴格盲測。
下載完整英文原文 · SHA-256 ad40be20b67ab878ebba905827d08a034742043d63c9ecd788d4926cb3c0de49
完整英文原始回覆(未翻譯)
I didn’t find any red flags in the installer or the release artifacts. The real risk is in what the tool does by design: it’s a daemon that can read your agent sessions and run commands on your machine. Here’s what I checked through GitHub. I didn’t execute or inspect any binaries.
Release integrity (looks sound)
- v2.1.2 was built and published by
github-actions[bot]from commit239adc8, the same commit you linked. - Checksums: the five archive hashes in
SHA256SUMSmatch the SHA-256 digests GitHub records for each asset, and the signedmanifest.jsonlists the same five artifacts. install.shat239adc8:- No
sudo, noeval, no piping remote content into a shell, no shell rc/PATH edits, no telemetry. - It checks
manifest.jsonagainst a hardcoded Ed25519 key (2Du3yZ4j…/O0=) using local OpenSSL 3. It only reads the manifest after that check passes. - It then checks the archive’s exact size and SHA-256 before unpacking. HTTPS is required and downgrade redirects are refused.
- No
- Not verified by me: I couldn’t run the Ed25519 signature check here. If you want that confirmed, run
openssl pkeyutl -verifyyourself, or just let the installer fail closed.
Gaps and caveats
clawdline setupruns right after the hash check. It installs the per-user service and does the rest of the setup, and it’s inside the binary, so you can’t review it as a script.- The installer trusts whatever
opensslit finds.CLAWDLINE_INSTALL_OPENSSLor the firstopensslon PATH acts as the verifier. That only matters if something already controls your environment, but a fake binary could approve anything. fetch()is looser than the main downloader. Its curl allowshttpto any host, and the wget fallback has no scheme check. It’s only used for--channel betatag lookup, and the signature check still applies afterward. Minor.- The README is behind the release. It pins
install.shat74fc07ewith--version v2.1.1, so following it installs 2.1.1, not 2.1.2. The trusted key is the same in both versions. - There’s no backup signing key. A code comment says key rotation ships both keys, but only one is pinned.
The main risk: what the tool does
- It reads Claude Code and Codex transcripts, terminal screens and project files, and serves them on a loopback web console.
- Paired browsers or phones can send instructions and use terminals, which means running code as you. Revoking a pairing can’t take back content already read.
- Update checks contact GitHub even with Cloud off. Cloud is off by default. When on, it relays end-to-end encrypted content, but the service still sees account, device and timing metadata.
- The project’s own docs say an independent security review hasn’t been done, and they don’t defend against malicious same-user processes or symlink/hard-link races.
- I couldn’t check the current Go daemon’s local auth (loopback tokens, Origin checks, DNS-rebinding defenses). The only trust-boundary doc I found describes the retired Swift design. This is the most important thing to confirm before trusting it. If those defenses are weak, any web page you visit could try to reach the console and the terminals behind it.
- It’s a 1-star repo with 4,000+ commits and no outside review.
Bottom line: installing it is about as safe as most signed-installer tools, and nothing looked malicious. Running it means trusting a young, unaudited daemon with access to everything your agents can see and do. If you use it, keep Cloud off until you need it, pair only devices you control, and check the daemon’s auth on localhost first.
Since you own this repo: the README version and the missing backup key are quick fixes. Writing a current doc on the daemon’s local auth would also answer the biggest open question.
Sources: