命令列工具
SethGammon/Citadel avatar
SethGammon/Citadel

Citadel:代理路由、專案狀態、核准邊界與證據 的實作邊界與使用判斷

此專案圍繞「SethGammon/Citadel」建置,面向真實業務場景,提供可重複使用、可持續維運的開源實作。

922 個 Star83 個 ForkJavaScriptMIT

秒懂

它是什麼?
以JavaScript打造的Citadel,README 明列Node.js 22+ 與 Git 倉庫與代理路由、專案狀態、核准邊界與證據;本文整理入口、限制、核驗觀察點與適用對象。
適合誰用?
適合已具備Node.js 22+ 與 Git 倉庫條件、需要代理路由、專案狀態、核准邊界與證據的人,不適合把 README 的功能描述當成生產保證的讀者。先依文件執行 `codex plugin marketplace add SethGammon/Citadel --ref v1.3.5`,再觀察Citadel的實際輸出、設定與錯誤邊界;MIT授權的使用條件,以及文件未說明的維護責任,都應納入採用決策。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 2 天前。
用什麼語言寫的?
主要是 JavaScript(依據 GitHub 的語言統計)。

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

開源專案深度解析

Citadel 的責任邊界

Citadel 的 README 把專案定位在代理路由、專案狀態、核准邊界與證據。這個定位比「功能很多」更有用,因為它說明程式要接住哪一段工作,以及哪些事情仍由使用者或上游平台負責。<div align="center" https://github.com/SethGammon/Citadel/actions/workflows/tests.yml LICENSE https://sethgammon.github.io/Citadel/ Citadel An open-source operating layer for Claude Code and OpenAI Codex. Citadel routes requests, preserves repository state between sessions, coordinates parallel work, applies repository safeguards, and records evidence and handoffs around the coding agent you already use. Install install · Start using it start-using-it · Trust boundary trust-boundary · Documentation documentation </div Install Requires: Claude Code or OpenAI Codex, Node.js 22+, and a git repository. Citadel is installed through the plugin marketplace already built into your coding agent. The commands below pin the complete v1.3.5 release; if that tag is not present on GitHub Releases https://github.com/SethGammon/Citadel/releases , do not substitute floating main . Verified release · Proj 這些原始描述指出了入口和目標,但沒有自動等同於完整產品、穩定服務或所有平台都具備相同結果。

以JavaScript實作的 Citadel,適合已經有Node.js 22+ 與 Git 倉庫需求的人閱讀。若需求落在 README 沒有提到的作業系統、協議版本、模型、遊戲或資料源,本文不替文件補上承諾。這個限制在選型時很實際:先把專案當成一個有明確責任範圍的工具,再評估是否接進自己的流程。 Citadel 的第1個核對點不能脫離代理路由、專案狀態、核准邊界與證據:把 `codex plugin marketplace add SethGammon/Citadel --ref v1.3.5` 的實際輸出、設定檔位置與程序狀態記下來,並將它和 README 明列的Node.js 22+ 與 Git 倉庫逐項比對。若結果只在特定版本、特定資料或特定硬體成立,就把條件寫在紀錄中;若沒有結果或錯誤訊息不完整,先停在可觀察的事實,不把推測寫成保證。

從官方入口拆解流程

README 提供的第一個觀察點是 `codex plugin marketplace add SethGammon/Citadel --ref v1.3.5`。執行這個入口時,應分辨它是在安裝依賴、產生檔案、啟動服務,還是直接載入使用者資料。Citadel 的資料流不是抽象的「輸入後得到結果」:輸入可能是網頁內容、Modbus 數值、模型請求、元件設定、代理設定、IP 清單或遊戲檔案,輸出也可能是二進位檔、MQTT 訊息、UI 原始碼、代理程序或畫面。

對Citadel而言,命令成功只代表該步驟完成,不能推定後續整鏈可用。要把命令、設定檔、程序日誌與輸出位置放在同一條檢查線上。README 未說明的快取、權限、錯誤重試、資料保留與效能上限,都應維持未知,不能以常見框架的慣例代替專案證據。 Citadel 的第2個核對點不能脫離代理路由、專案狀態、核准邊界與證據:把 `codex plugin marketplace add SethGammon/Citadel --ref v1.3.5` 的實際輸出、設定檔位置與程序狀態記下來,並將它和 README 明列的Node.js 22+ 與 Git 倉庫逐項比對。若結果只在特定版本、特定資料或特定硬體成立,就把條件寫在紀錄中;若沒有結果或錯誤訊息不完整,先停在可觀察的事實,不把推測寫成保證。

平台條件會改變採用成本

Citadel 明列的執行範圍是Node.js 22+ 與 Git 倉庫。這些詞各自帶出不同成本:桌面用戶端要處理系統整合,Android 要面對 VPN service 和權限,模型伺服要準備 GPU 與權重,模擬器要看 CPU、圖形驅動與遊戲相容性,清單專案則要處理下載與更新。不能把一種平台上的成功直接外推到另一種平台。

閱讀Citadel時,還要確認版本和依賴的邊界。Servo 的 ANDROID_NDK_ROOT、Citadel 的 Node.js 22+、shadPS4 的 macOS 26.0 與 Intel 不支援,都是會直接改變結果的具體條件。其他未列明的硬體、網路、代理、模型或資料庫要求,則要回到倉庫文件與實際錯誤訊息確認。 Citadel 的第3個核對點不能脫離代理路由、專案狀態、核准邊界與證據:把 `codex plugin marketplace add SethGammon/Citadel --ref v1.3.5` 的實際輸出、設定檔位置與程序狀態記下來,並將它和 README 明列的Node.js 22+ 與 Git 倉庫逐項比對。若結果只在特定版本、特定資料或特定硬體成立,就把條件寫在紀錄中;若沒有結果或錯誤訊息不完整,先停在可觀察的事實,不把推測寫成保證。

文件明說的能力與沉默處

Citadel 的 README 有意把讀者導向幾個特定檔案或服務。這些連結能補充 Quickstart、Building 文件、Releases、相容性表、安裝說明或設定頁,但它們各自回答的問題不同。對 shadcn/ui 來說,元件是分發到應用程式的原始碼;對 shadPS4 來說,核心與 QtLauncher 分開;對 ShadowsocksX-NG 來說,ss-local 可能在退出 GUI 後仍由 launchd 執行。

因此不能把「有文件」寫成所有風險都已處理。Citadel 的 /do preview 有明確的不可執行狀態,IPs 則說明差異與拉取請求會被清除;這些細節比口號更能影響日常維護。授權也只給出再使用與散布的法律邊界,並不承諾資料正確、代理安全、模型品質或遊戲可玩性。 Citadel 的第4個核對點不能脫離代理路由、專案狀態、核准邊界與證據:把 `codex plugin marketplace add SethGammon/Citadel --ref v1.3.5` 的實際輸出、設定檔位置與程序狀態記下來,並將它和 README 明列的Node.js 22+ 與 Git 倉庫逐項比對。若結果只在特定版本、特定資料或特定硬體成立,就把條件寫在紀錄中;若沒有結果或錯誤訊息不完整,先停在可觀察的事實,不把推測寫成保證。

最小核驗應該看什麼

對Citadel的第一輪核驗,應依 README 執行 `codex plugin marketplace add SethGammon/Citadel --ref v1.3.5`,再觀察專案自己的記號。Servo 看 ./mach build 是否產生 servoshell;sigenergy2mqtt 看 Modbus 值是否成為 MQTT topic;SGLang 看 server 日誌與請求回應;shadcn/ui 看元件檔是否寫入預期目錄;IPs 看 Lists/Threats 與更新檔案;shadPS4 則看 --help、遊戲路徑和 QtLauncher 的分工。

這些觀察能把「可安裝」和「符合工作」分開。代理用戶端還要確認系統代理是否改變,模擬器要以相容性清單核對目標遊戲,Citadel 要查看 plan、apply 和 doctor 的狀態,清單使用者要確認 IP 的分類日期與誤報處理。若該專案沒有提供某項答案,就把它記為未說明,不要用泛用建議填空。 Citadel 的第5個核對點不能脫離代理路由、專案狀態、核准邊界與證據:把 `codex plugin marketplace add SethGammon/Citadel --ref v1.3.5` 的實際輸出、設定檔位置與程序狀態記下來,並將它和 README 明列的Node.js 22+ 與 Git 倉庫逐項比對。若結果只在特定版本、特定資料或特定硬體成立,就把條件寫在紀錄中;若沒有結果或錯誤訊息不完整,先停在可觀察的事實,不把推測寫成保證。

適合的使用者與不適合的期待

Citadel 比較適合Node.js 22+ 與 Git 倉庫已經存在、而且能接受 README 所列操作的人。它的價值在於把代理路由、專案狀態、核准邊界與證據放到一個可操作的入口,而不是替使用者消除所有環境差異。需要明確 GUI、長期支援、完整相容性或保證數據的人,應先檢查專案是否真的提供相應證據。

最後的判斷要落在Citadel自己的輸入、輸出與維護工作。能說清楚命令、檔案和失敗時該看哪裡,才有足夠資訊進入下一步;只看到星標、截圖或描述,還不足以替正式環境背書。 Citadel 的第6個核對點不能脫離代理路由、專案狀態、核准邊界與證據:把 `codex plugin marketplace add SethGammon/Citadel --ref v1.3.5` 的實際輸出、設定檔位置與程序狀態記下來,並將它和 README 明列的Node.js 22+ 與 Git 倉庫逐項比對。若結果只在特定版本、特定資料或特定硬體成立,就把條件寫在紀錄中;若沒有結果或錯誤訊息不完整,先停在可觀察的事實,不把推測寫成保證。

編輯結論

適合已具備Node.js 22+ 與 Git 倉庫條件、需要代理路由、專案狀態、核准邊界與證據的人,不適合把 README 的功能描述當成生產保證的讀者。先依文件執行 `codex plugin marketplace add SethGammon/Citadel --ref v1.3.5`,再觀察Citadel的實際輸出、設定與錯誤邊界;MIT授權的使用條件,以及文件未說明的維護責任,都應納入採用決策。

官方來源

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

社群筆記