用 coding agent 工作的人,都遇過這種斷裂:在開發機開的 session,換到筆電就接不上;上週除錯的思路,這週要從頭再想一次。指令歷史有 Atuin 跟著到處跑,agent session 卻散落在各台機器、各家工具裡,難搜尋,做完就忘。
Atuin 18.24 把這個缺口補上了。新功能叫 Threads:一份可搜尋、可同步的 agent session 歷史。在開發機的 Claude Code 開工,到筆電用 Codex 從中斷點續跑,中間的脈絡全部保留。
從 shell 歷史到 agent 歷史
Atuin 的起點,是 shell 歷史太脆弱。以前每個指令注定消失在 .bash_history 第 501 行。Atuin 把它變成可索引、永久保存、幾秒就能召回的紀錄。多年下來,這份歷史複利成全部工作的紀錄:怎麼解題,怎麼建造。
但 shell 歷史只記錄發生了什麼,沒有留下推理和意圖。有時記得想達成什麼,卻想不起當初打了哪串指令。
agent session 兩者都有。每個指令、輸出、意圖,還有通往解法的全部嘗試,都用白話英文躺在家目錄裡。只是跟當年的 shell 歷史一樣,一直沒人把它用起來。Threads 就是為這件事做的。
Threads 怎麼運作
底層是 Atuin 原本就打磨多年的同步引擎。它是通用的,任何能建模成 append-only log 的東西都能同步,而多數 AI session 正是這種結構。
幾個關鍵性質:
- 同步走端到端加密,官方看不到 session 內容
- 可用官方託管,也可自託管,或全部留本地
- 擷取 session 是 opt-in,預設關閉
- 入口是
atuin resume,設定完會看到 TUI - 首波支援 Claude Code、Codex、Pi、Omp、OpenCode,更多 agent 陸續加入
另外有 atuin mcp install,讓 agent 自己搜尋、引用過去的 session。agent 可以找到以前做過的事,理解當初為何這樣決策,在舊調查上繼續挖,不必重建脈絡。
三個官方示範場景
官方文章舉了三個例子,說明這份歷史拿來做什麼。
第一個是沒上線的工作。作者改了好幾輪 onboarding 流程,一直不滿意。現在叫 agent 做 onboarding,它會自己找到之前全部嘗試、被放棄的原因、可以更好的地方。沒進 main 的程式碼、最初的提示詞、迭代過程全在裡面,不必重寫一份巨型規格文件。
第二個是線上事故。輪換金鑰之後,某組物件儲存金鑰忘了開 avatar 上傳權限。每日 Sentry triage agent 循線找到當天稍早跑過的指令。作者再補一句「tigris avatar 好像有問題」,agent 就挖出前一份調查,指認根因並修掉,比從零重查快得多。
第三個是跨機器除錯。發布前在多台機器測試,一台機器表現差,agent 研判是 IO 太慢,但需要更快的碟驗證。作者把 session fork 到 MacBook,從中斷點原地續跑,證實慢碟只是部分原因,import 另有加速空間。原機器的 thread 再把 benchmark 結果拉回去修。不必複製貼上,不必跨機協調,過程自動成為工作紀錄。
HN 留言在吵什麼
這篇在 HN 拿到 201 分、77 則留言(抓取時間 2026-11-12,主串另有一則同 URL 的低分重複串)。留言沒有一面倒叫好,幾個爭點很值得看。
隱私是最大的一串。 有人直說,把全部 shell 歷史和 session 交給別人的伺服器,心裡過不去。回覆指出兩點:同步是客戶端先加密,自託管後端也早就有了。發問者承認自己漏看文章,說要去試試。另有人走土炮路線,用 Syncthing 同步各機備份,再 grep 搜 fish 歷史,效果類似。
一個放了一年的 bug,被工程師當場認領。 有人抱怨家目錄唯讀掛載時 Atuin 會把本地 shell 搞壞,issue 開了快一年沒人理。Atuin 工程師直接回文認領,貼出修復 PR,說下版進去。留言裡還順帶吵了一架:只報 issue 不給 patch 算不算貢獻。有人說寫好 issue 本來就有價值,不該羞辱報 issue 的人。
自建派糾結:session 全存是金礦還是雜訊。 有人在自家工具裡刻類似功能,卡在 hook 點怎麼選,也懷疑一半 session 是拋棄式實驗,全存很吵。Atuin 作者親自回覆,說目前不靠 hooks,靠解析 session 檔,而且 agent 本來就擅長從雜訊裡找東西。另一個務實派分享自己的做法:session 掛在工作項目資料夾下,做完就丟,只把摘要進向量庫,方便以後回查為什麼這樣做。
跟 herdr 是競爭還是互補。 有人說 herdr 的 Mac app 出來後就回不去了,還抱怨 Atuin 在原生終端機按上鍵搜尋有 lag。作者回覆說兩者互補,Atuin 索引過去的 session,herdr 管現在的,還做了 herdr desktop 整合模組。lag 的部分,開 daemon 會好很多,新版預設就開了。
還有兩派值得記。 一派是隔離派,花了幾個月把 agent 互相隔離、掃 transcript,覺得共享歷史跟 sandboxing 背道而馳。另一派是元評論:投稿講管理 agent 的新方法,留言區幾乎全是「我剛自己刻完一個」。
我的看法
這件事打中我的是同一句話:工作的歷史應該有用、可及、屬於你。shell 歷史證明過一次,索引過的工作紀錄會複利。agent session 的資訊密度比 shell 高得多,裡面有意圖、試錯、被放棄的路。這些東西今天散在各家工具的家目錄裡,換一台機器就斷,換一個 agent 就重來。
實務上我會先開來自託管或全本地,再談團隊共享。端到端加密解決了傳輸問題,但 session 裡有金鑰、內網位址、客戶資料,先想清楚保留政策再同步。等這層想通了,atuin mcp install 那一步才有意義:agent 能讀的歷史越完整,它接手的速度越快。
團隊共享還在開發,官方信箱 ellie@atuin.sh 正在收使用者回饋。能像傳 Git branch 一樣傳 agent thread,那會是另一個故事。
手機版若看不到內嵌頁面,可直接開:https://static.blog.derekhsu.net/atuin-threads-hn.html
