變更紀錄
每個發佈版本的變更都記在這裡(格式參考 Keep a Changelog,版本號依照語意化版本)。每個版本的段落也是那個版本的發佈說明;沒有對應段落的版本不會發佈。
[0.3.0] - 2026-10-02
smurg update:把 smurg 更新到最新版本。它從https://downloads.smurg.ai下載這台電腦的執行檔,sha256 與那個版本的SHA256SUMS相符才原地換掉目前的執行檔,並印出「舊版本 → 新版本」;smurg update --check只檢查有沒有新版本。正在分享時請先smurg stop(分享中不能更新)。有新版本時,smurg host會在兩個連結下面多印一行提示;不要這個檢查可以設定SMURG_NO_UPDATE_CHECK=1。見主人指南 §9。smurg uninstall:從這台電腦移除 smurg:執行檔、快取和~/.smurg(登入、金鑰、工作區狀態;--keep-data保留)。它先列出每一個要移除的路徑,確認之後才動手(--yes不詢問),正在分享的工作區會先停止。專案資料夾裡的.smurg/(worktree 和還沒合併的修改)不會動,只會列出來讓你自己決定。
[0.2.0] - 2026-10-02
- 「可執行 agent」改成「可使用 agent」,組員不再有自己的 agent 和沙盒:主人可以把「可使用 agent」給完全信任的組員,他就能在主人的電腦上開 agent 和終端機(共享主工作區或 worktree),也能直接在任何 session 裡輸入。這些 session 以主人的身分執行:用主人的 Claude Code 登入(費用算主人的)、在主人的電腦上、沒有沙盒,所以這個組員能讓 agent 執行任何指令、讀主人的家目錄。「可編輯」照舊提出建議,「旁觀」照舊只能看;worktree 照舊,「可使用 agent」的組員可以為任何 worktree 提出合併請求,合併仍由主人決定。見主人指南 §5.1,包括收回這個角色之後要做的檢查。
- 因此移除:客人沙盒(macOS 的 Seatbelt、Linux 的 bubblewrap)、組員登入 Claude 與 API key、「匯入個人設定」、
--no-guest-subscription-login與--allow-main-workspace-guests/--no-main-workspace-guests。安裝程式在 Linux 上也不再安裝 bubblewrap、socat、ripgrep 或 AppArmor 設定檔:每個平台都只安裝執行檔,不需要 sudo。 - 這台電腦上的控制 socket(
smurg attach在主人自己的電腦上用的)現在只能列出、接上 session 和在 session 裡輸入。因為每個 session 都以主人的作業系統帳號執行,有「可使用 agent」的組員也連得到它;改角色、踢人、終止 session、核准合併、邀請連結、設定和操作紀錄都只能在網頁上做;即時的操作紀錄和只給主人的通知也不會送到控制 socket。透過控制 socket 做的事,操作紀錄會註明via: control-socket,被拒絕的次數也另外計算,不會擠掉你在網頁上被拒絕的紀錄。 - 主人換了工作區的金鑰之後(例如收回「可使用 agent」之後把工作區狀態移走再分享,見主人指南 §5.1),用
smurg attach加入過的組員拿新的邀請連結加入時,smurg attach會像網頁一樣說明「主人的電腦金鑰和之前不同」,印出上次記錄的和邀請連結的金鑰指紋,組員輸入y確認(不在終端機裡執行時加上--accept-new-key)才改用新的金鑰;以前只會中止連線,沒有辦法繼續。smurg attach --help也改正了:主人和「可使用 agent」的組員可以在任何 session 裡輸入。 - 工作區的狀態檔是別的 smurg 版本寫的(或格式不對)時,
smurg host說清楚是這個原因,把哪個檔案、什麼問題記在紀錄檔,並說明怎麼重新分享(把~/.smurg/workspaces/<工作區代碼>/移走再分享一次,組員重新加入)。smurg 不轉換其他版本的狀態。 smurg host開始分享時只印出兩個連結(你自己的、給組員的)和停止的方法。分享前須知、各項設定的意思、金鑰指紋、防止睡眠與紀錄檔的說明都在主人指南(§3 到 §7),終端機只在需要你處理時提示:無法防止睡眠,以及分享中的連線、登入與狀態檔問題。smurg status現在也顯示 relay 的網址、daemon 金鑰指紋、agent 的 shell 指令通知是否開啟和紀錄檔的位置。- 用代碼登入 relay:
smurg login(以及需要登入時的smurg host、smurg attach)印出一個網址(公用 relay:https://app.smurg.ai/device)和一組 8 個英文字母的代碼(10 分鐘內有效)。在任何裝置(電腦或手機)的瀏覽器打開網址、用 Google 帳號登入、輸入代碼,確認頁會列出要登入的帳號、這次登入從哪裡要求(IP 位址和大概位置)和時間,按「允許」就完成;只有你自己剛執行smurg login時才按「允許」,別人給你的代碼請按「拒絕」。有桌面的電腦會自動打開這個網址(不帶代碼);透過 SSH 使用時不再需要ssh -L轉接埠,用你面前的電腦或手機輸入代碼就好。等待時按 Ctrl-C 可以取消。見主人指南 §2。 - 舊的登入方式(瀏覽器確認頁上的確認碼,登入結果回到這台電腦的本機埠)已移除。
smurg login --provider也已移除:登入方式在瀏覽器裡選。
[0.1.0] - 2026-10-01
(2026-10-02 起已從 downloads.smurg.ai 下架,由 0.2.0 取代。)
第一個發佈的版本:原型。一個人(主人)在自己的電腦上執行 smurg host,把一個專案資料夾分享出來;組員用瀏覽器或 smurg 指令透過 relay 連進來,一起即時編輯檔案,一起看和指揮
Claude Code。檔案和 agent session 都留在主人的電腦上;relay 只轉送端對端加密後的資料,看不到內容。
安裝與登入
- 一行指令安裝單一執行檔(不需要 Node.js):
curl -fsSL https://smurg.ai/install.sh | sh(smurg.ai 只是轉到最新版本的https://downloads.smurg.ai/latest/install.sh;這個版本:curl -fsSL https://downloads.smurg.ai/v0.1.0/install.sh | sh)。提供 macOS(Apple silicon、Intel)與 Linux(x64、arm64,glibc)四種版本;安裝程式只安裝 sha256 與發佈的SHA256SUMS相符的執行檔,放在~/.local/bin/smurg,不需要 sudo。Linux 上它會檢查客人沙盒需要的套件(bubblewrap、socat、ripgrep)與 Ubuntu 24.04 以上的 AppArmor 限制,經主人同意後才用 sudo 安裝。 - 公用 relay https://app.smurg.ai(Cloudflare Workers,也是網頁版:組員的邀請連結是
https://app.smurg.ai/join/<工作區>#…)是 smurg 內建的預設 relay,主人和組員都用 Google 帳號登入:smurg login。smurg login --relay <網址>可以改用維護者另外提供的 relay。 - 產品介紹頁:https://smurg.ai(英文)與 https://smurg.ai/zh-TW/(繁體中文);使用說明(繁體中文): https://smurg.ai/docs/。
- 在 Linux 上分享時,組員的 session 預設只能在自己的 worktree 裡執行(分享的資料夾必須是 git repository);要讓組員也能在共享主工作區開 session,用
smurg host --allow-main-workspace-guests分享(開始訊息會列出 Linux 上的限制)。macOS 預設開放,--no-main-workspace-guests可以關掉。
授權
- smurg 是專有軟體,原始碼不公開。執行檔與網頁版在原型階段免費使用,但不能散布、修改或反組譯(法律允許的範圍除外);條款見 https://smurg.ai/license/。
- 執行檔與網頁版包含的第三方軟體各自依照自己的授權:
smurg licenses印出 smurg 的條款與執行檔裡的第三方軟體授權聲明,每個版本也附上THIRD-PARTY-NOTICES.txt(https://downloads.smurg.ai/v0.1.0/THIRD-PARTY-NOTICES.txt);網頁版的在 https://app.smurg.ai/third-party-notices.txt。
能做什麼
- 主人一個指令分享資料夾並印出邀請連結;組員的角色有「旁觀」「可編輯」「可執行 agent」三種。
- 瀏覽器裡的檔案樹和編輯器:多人即時共同編輯、自動存檔;拖曳上傳(斷線後可續傳)、下載檔案或整個資料夾(zip)。
- 在主人的電腦上執行真正的 Claude Code:主人的 session 不放沙盒;「可執行 agent」的組員開自己的 session,放在沙盒裡,用自己的 Claude 帳號登入。每個人都即時看得到每個 session 的畫面,也可以用
smurg attach接到自己的終端機。 - 人和 agent 都有檔案鎖;互相重疊時保留人打的內容,另一方的版本放進衝突面板。活動動態標示每一次修改是誰、哪個 agent 做的(包括 agent 用 shell 指令改的檔案)。
- 對別人的 agent 提出建議,由 session 的擁有者採用、修改後採用或拒絕。
- agent 可以在自己的 git worktree 裡工作,完成後由主人看過完整的 diff 再合併。組員開 session 時可以選共享主工作區或自己的 worktree;Linux 主人預設只開放 worktree(
--allow-main-workspace-guests開放主工作區),組員的網頁會說明原因。 - 主人控制台:成員、角色、邀請連結、session、操作紀錄,一鍵踢人或終止 session。
- 主人的電腦睡眠或斷線時,所有人幾秒內看到「主人已離線」。
已知限制
- Linux 主人:完整的測試(包括客人沙盒與 worktree)在 Ubuntu 24.04 上通過(arm64 虛擬機與 GitHub Actions 的
x64),但還沒有人真的在 Linux 上當過主人:沒有在 Linux 沙盒裡跑過真正的 Claude Code,安裝程式的 Linux 部分也還沒在全新的電腦上跑過。客人沙盒需要 bubblewrap 0.8 以上(Ubuntu 24.04、Debian 12 以上內建的版本即可;Ubuntu 22.04 的
0.6 太舊,客人 session 會被拒絕)。Linux 的沙盒有幾點做不到 macOS 的程度,所以 Linux 主人預設不讓組員在共享主工作區開 session,組員只能用自己的 worktree;分享的資料夾不是 git repository 時,組員在 Linux 主人的電腦上預設不能開 session(主人可以用
--allow-main-workspace-guests開放)。主人開放之後,最主要的限制是:組員在主工作區開的 session 可以在子資料夾裡新增.claude、.mcp.json、.git這類只有主人能改的設定(最上層和已經存在的擋得住,前提是主人沒有在組員的程序執行中刪除、改名或取代它們),主人在那個子資料夾裡打開自己的工具時要先檢查(主人指南 §5);組員的程序執行期間,主人在分享的資料夾裡儲存、新增、刪除或改名(例如git switch).envrc、.mcp.json、.claude/(包括主人自己的 Claude Code 選「不再詢問」時寫入的.claude/settings.local.json)、CLAUDE.local.md這類檔案,沙盒無法跟上:smurg 會在發現後(通常 0.1 秒內;在mkdir -p、git checkout、解壓縮一次建好的多層子資料夾裡要等下一次掃描,通常幾秒內)結束那個資料夾裡所有組員的程序,並在smurg host的終端機列出檔名,但在那之前組員的程序可能讀到新的內容或改寫它。所以要編輯這些檔案之前,請先請組員結束 session。組員的程序執行期間,專案(或組員的 worktree)最上層原本沒有的.claude、.git、.vscode、.idea會暫時出現為空的資料夾,.mcp.json、.envrc為空的唯讀檔案,程序都結束後就會移除;在主人的 git repository 裡它們會暫時列在.git/info/exclude,所以git status、git add -A、git stash -u不會動到它們(git add -f、git clean -x、git stash -a仍會)。透過 SSH 啟動smurg host時,Ubuntu 預設不允許防止睡眠。組員用什麼作業系統都可以(瀏覽器)。 - 組員在共享主工作區可以寫
.gitmodules、.gitconfig、.bashrc、.zshrc、.profile這類檔名(macOS 與 Linux 都一樣:smurg host一律從自己的工作目錄~/.smurg/cwd執行,沙盒不再依啟動smurg host的位置決定是否擋下這些檔名)。git 和 shell 不會從專案資料夾執行它們;執行git submodule update之前請看一下.gitmodules。 - macOS 執行檔沒有 Apple 簽章:只有 ad-hoc 簽章,沒有 Developer ID 簽章與公證。用上面的
curl安裝不會被 Gatekeeper 擋下(安裝程式在驗證 sha256 之後,會移除下載檔案可能帶有的 quarantine 屬性);用瀏覽器下載的執行檔會被擋下。 - 只有一個共用的 relay,而且是 Cloudflare 免費方案:所有人共用每天的請求數與寫入次數上限。依程式推算(沒有在 Cloudflare 上量過),大約 4–7 個整天都有人連線的工作區就會用完,大家一起看一個大量輸出的終端機用得更快;用完時到台灣時間早上 8 點(UTC 0 點)之前,所有人都無法連線(主人指南 §2.1)。原始碼不公開,目前沒有辦法自己架設 relay 來避開這個限制。
- 客人沙盒沒有記憶體、磁碟空間與 CPU 的上限(macOS 與 Linux):組員的程序可以讓主人的電腦變慢、用光記憶體或磁碟空間;程序數在 Linux 上每個沙盒最多 4096 個,macOS 上則和主人自己共用同一個上限,所以 fork bomb 會讓主人的電腦開不了新程序,直到那個 session 結束。
- 組員用 Claude 訂閱帳號登入的流程還沒有用真正的帳號從頭到尾測試過(API key 登入沒有這個問題)。
- 「上線」階段的功能還沒有做,例如主人代為執行組員的指令、操作紀錄篩選。
- 執行檔需要 macOS 11 以上,或 glibc 2.28 以上的 Linux(Ubuntu 20.04 以上);不支援 musl(Alpine)與 Windows 主人。