自架服務
atuinsh/atuin avatar
atuinsh/atuin

Atuin:把带上下文的 Shell 历史带到多台机器

讓你的外殼變得神奇。此外,它還透過 Atuin 伺服器提供機器之間可選且_完全加密_的歷史記錄同步。

31,625 個 Star961 個 ForkRustMIT

秒懂

它是什麼?
加密 Shell 历史工具,覆盖核心能力、執行入口與適用边界。
適合誰用?
這篇文章適合已经在使用 atuin、需要判断其能力边界和试執行入口的讀者,不適合把儲存庫說明當成完整的生產承诺。先按 README 對應的 atuin search --exit 0 --after "yesterday 3pm" make、SQLite 檢查輸入、輸出、依赖和權限,再决定是否纳入自己的工作流;其中涉及第三方服務、真實交易、远程同步或在線人脸识別時,還要單独核對密钥、資料去向和授權證條件。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 1 天前。
用什麼語言寫的?
主要是 Rust(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月14日)與我們的分析,不構成法律意見。

開源專案深度解析

atuinsh-atuin-deep-analysis|SQLite 历史庫記錄了什么

atuinsh-atuin-deep-analysis|SQLite 历史庫記錄了什么 的專案脈絡:atuinsh/atuin 的 README 將專案描述為" Making your shell magical"。本文只整理儲存庫能直接核驗的內容,不把星標、Fork 或宣传语當成质量證明。README 在"README"下的說明是:Atuin replaces your existing shell history with a SQLite database, and records additional context for your commands. Additionally, it provides optional and fully encrypted synchronisation of your history between machines, via an Atuin。這給出的首先是專案边界,而不是已经完成的生產驗證。

atuinsh-atuin-deep-analysis|SQLite 历史庫記錄了什么:针對 atuin 的“SQLite 历史庫記錄了什么”,本节核驗点是 atuin search --exit 0 --after "yesterday 3pm" make、SQLite。README 已給出的路径、参數或元件名稱應按當前分支逐項對照;文檔未說明的預設行為不在本文擴展為結論。

atuinsh-atuin-deep-analysis|Ctrl-R 搜尋與時間條件

atuinsh-atuin-deep-analysis|Ctrl-R 搜尋與時間條件 的專案脈絡:從 README 的"Features"和相關條目看,讀者可以先判断它是否解决自己的具體问題:the same history across terminals, across sessions, and across machines。如果你的目標與這段說明不一致,就不應僅凭專案热度采用它。這裡保留原專案名、指令和元件名,方便回到一手來源核對。 README 還列出了另一條可核對的信息:rebind ctrl-r and up (configurable) to a full screen history search UI。這類原文條目可以帮助讀者設計试執行步骤,但不能代替自己的環境測試。

atuinsh-atuin-deep-analysis|Ctrl-R 搜尋與時間條件:针對 atuin 的“Ctrl-R 搜尋與時間條件”,本节核驗点是 atuin search --exit 0 --after "yesterday 3pm" make、SQLite。README 已給出的路径、参數或元件名稱應按當前分支逐項對照;文檔未說明的預設行為不在本文擴展為結論。

atuinsh-atuin-deep-analysis|同步伺服器的選擇

atuinsh-atuin-deep-analysis|同步伺服器的選擇 的專案脈絡:README 把工作方式分散寫在"README"等段落中。可确认的線索包括:You may use either the server I host, or host your own! Or just don't use sync at all. As all history sync is encrypted, I couldn't access your data even if I wanted to. And I really don't want to.。這篇整理沒有把未寫出的架構、性能或安全边界补成結論;真正的執行链仍應結合儲存庫目錄、設定檔案和版本標簽檢查。

atuinsh-atuin-deep-analysis|同步伺服器的選擇:针對 atuin 的“同步伺服器的選擇”,本节核驗点是 atuin search --exit 0 --after "yesterday 3pm" make、SQLite。README 已給出的路径、参數或元件名稱應按當前分支逐項對照;文檔未說明的預設行為不在本文擴展為結論。

atuinsh-atuin-deep-analysis|支援的 Shell 范围

atuinsh-atuin-deep-analysis|支援的 Shell 范围 的專案脈絡:第一次安裝應從 README 給出的入口開始。當前可複核的指令是:

atuinsh-atuin-deep-analysis|支援的 Shell 范围:# search for all successful `make` commands, recorded after 3pm yesterday atuin search --exit 0 --after "yesterday 3pm" make

atuinsh-atuin-deep-analysis|支援的 Shell 范围:如果儲存庫沒有提供指令,本文不会替它編造安裝步骤,而是建議先打開 README 的"Supported platforms"部分,确认係統依赖、預設端口和首次初始化動作。

atuinsh-atuin-deep-analysis|支援的 Shell 范围:针對 atuin 的“支援的 Shell 范围”,本节核驗点是 atuin search --exit 0 --after "yesterday 3pm" make、SQLite。README 已給出的路径、参數或元件名稱應按當前分支逐項對照;文檔未說明的預設行為不在本文擴展為結論。

atuinsh-atuin-deep-analysis|本地安裝和首次试用

atuinsh-atuin-deep-analysis|本地安裝和首次试用 的專案脈絡:日常使用的细节取决於專案實際文檔。README 的"Supported platforms"段落提到:Atuin supports zsh, bash, fish, nushell, xonsh, and PowerShell. See Supported platforms for the full matrix and what each tier means.。對於設定檔案、環境變量、權限和資料目錄,當前稿只記錄來源明确的部分;未寫明的預設值必須在測試環境中驗證,並保留可回滚的設定副本。 同一部分還提到:log exit code, cwd, hostname, session, command duration, etc。

atuinsh-atuin-deep-analysis|本地安裝和首次试用:针對 atuin 的“本地安裝和首次试用”,本节核驗点是 atuin search --exit 0 --after "yesterday 3pm" make、SQLite。README 已給出的路径、参數或元件名稱應按當前分支逐項對照;文檔未說明的預設行為不在本文擴展為結論。

atuinsh-atuin-deep-analysis|加密同步的边界

atuinsh-atuin-deep-analysis|加密同步的边界 的專案脈絡:README 能确认的限製比宣传頁面更重要。當前來源沒有證明atuinsh/atuin具备固定的兼容矩阵、服務等級、性能基準或長期支援承诺。README 只明确寫到"Atuin has a community forum, please ask here for help and support:"。這類未知項應在选型記錄裡列為待驗證事項,而不是被改寫成肯定句。

atuinsh-atuin-deep-analysis|加密同步的边界:针對 atuin 的“加密同步的边界”,本节核驗点是 atuin search --exit 0 --after "yesterday 3pm" make、SQLite。README 已給出的路径、参數或元件名稱應按當前分支逐項對照;文檔未說明的預設行為不在本文擴展為結論。

atuinsh-atuin-deep-analysis|MIT 授權與升級核驗

atuinsh-atuin-deep-analysis|MIT 授權與升級核驗 的專案脈絡:儲存庫元資料與 LICENSE 檔案記錄了:當前 SPDX 標识為 MIT。它說明程式碼分發和修改需要按授權證處理,但不等於專案已经完成你的安全審查。README 沒有明确說明的凭證管理、網路暴露、日志保留和第三方依赖,仍應由部署者逐項檢查。

atuinsh-atuin-deep-analysis|MIT 授權與升級核驗:针對 atuin 的“MIT 授權與升級核驗”,本节核驗点是 atuin search --exit 0 --after "yesterday 3pm" make、SQLite。README 已給出的路径、参數或元件名稱應按當前分支逐項對照;文檔未說明的預設行為不在本文擴展為結論。

atuinsh-atuin-deep-analysis|MIT 授權與升級核驗:閱讀 atuin 時,最有价值的判断不是把功能清單逐項抄下,而是把它们放回一次可複現的執行链。先确认 README 中出現的入口、設定名和輸出位置,再把一個最小輸入送進對應流程,記錄指令退出狀態、生成檔案或返回結構,以及日志裡是否出現未設定元件。這樣可以区分文檔声明的能力、當前環境已经具备的能力和仍需安裝或授權的能力。對於 atuin,文章只使用素材明确寫出的事實,未把儲存庫統計、專案口號或第三方服務名稱解释成效果保證。

atuinsh-atuin-deep-analysis|MIT 授權與升級核驗:部署或接入前還應围绕 atuin search --exit 0 --after "yesterday 3pm" make、SQLite 做一次边界檢查:固定程式碼分支和模型、資料庫或服務版本,确认本地端口和凭據作用域,檢查失败時是否留下可定位的錯誤信息。若流程会處理语音、交易订單、指令历史、元資料、链上资產、性能剖析或人像照片,應把樣本范围、存储位置和外發請求單独列入記錄。README 沒有給出的兼容性、吞吐量、保留周期和服務承诺,本文均標為未說明,不能從示例指令推导出來。

atuinsh-atuin-deep-analysis|MIT 授權與升級核驗:對 atuin 的最小核驗還應留下三類材料:實際執行的完整指令、對應版本或提交,以及原始輸出。輸入和輸出要能相互對應,例如以一條 Shell 指令观察退出码,以一张照片檢查生成檔案,以一個查詢确认返回結構,或以一個本地服務請求确认端口响應。若某個步骤要求 API 密钥、模型權重、交易凭據、瀏覽器授權或链上账戶,應先在隔离環境使用受限權限。這樣得到的記錄能直接說明是依赖缺失、權限不足、輸入不符合要求,還是 README 未覆盖的行為,而不会把一次失败誤判為專案本身的結論。

atuinsh-atuin-deep-analysis|MIT 授權與升級核驗:採用 Atuin 前先釐清同步服務與本機歷史的界線。以 atuin init 設定一個測試帳號,再用 atuin search 搜尋兩條刻意加入的指令,確認輸入、時間與工作目錄是否能從本機資料庫取回;接著執行 atuin sync,從另一個測試環境確認同步結果。若團隊不想上傳歷史,應檢查設定中的同步開關和 server URL,而不是把網路隔離當作功能設定。對帶有密碼、token 或私有路徑的 shell history,先驗證遮罩規則,並把同步請求與伺服器日誌列為安全審查資料。升級時固定一份 history database 和一組搜尋關鍵字,對照 atuin search --filter-mode 輸出,觀察 shell 整合是否仍能寫入。README 未提供所有同步服務端的保留政策,因此這一項要由部署者向實際服務設定核對。

編輯結論

這篇文章適合已经在使用 atuin、需要判断其能力边界和试執行入口的讀者,不適合把儲存庫說明當成完整的生產承诺。先按 README 對應的 atuin search --exit 0 --after "yesterday 3pm" make、SQLite 檢查輸入、輸出、依赖和權限,再决定是否纳入自己的工作流;其中涉及第三方服務、真實交易、远程同步或在線人脸识別時,還要單独核對密钥、資料去向和授權證條件。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記