AI 工具 15 min read

GitHub 網址改一個字出架構圖?gitdiagram 與 gitingest 實測,44 萬 token 砍到 11 萬

把 GitHub 網址的 hub 換成 diagram 或 ingest,就能拿到 LLM 畫的架構圖,或整個 repo 攤平成貼給 AI 的純文字,兩個都是 MIT 開源、星數過萬的工具。實測 pallets/click 全抓有 44.3 萬 token,光一個 uv.lock 就占三分之一——改網址很簡單,真正要做的是先過濾再餵 AI。

GitHub 網址改一個字出架構圖?gitdiagram 與 gitingest 實測,44 萬 token 砍到 11 萬
本文目錄 · 6
懶人包
  • 把 GitHub 網址的 hub 換成 diagram 會得到架構圖,換成 ingest 會得到可以貼給 AI 的純文字。兩個都是 MIT 開源專案,GitHub 星數約 1.86 萬和 1.6 萬。
  • 我拿 pallets/click 實測。gitdiagram 畫出 18 個元件、23 條連線、分成 4 組,網址後面加 .md 還能拿到 Mermaid 原始碼給 AI 讀。
  • gitingest 用 CLI 抓整個 repo 是 171 個檔、約 44.3 萬 token;只抓 src/ 剩 18 個檔、約 10.3 萬 token。網頁版預設只收 50kB 以下的檔,算出來是 22.0 萬 token。
  • 排除 tests、docs、examples 之後還有 24.8 萬 token,因為一個 uv.lock 就有 25.8 萬字元。再排除 lock 檔和 changelog 就降到 11.0 萬。
  • 公開 repo 直接用這兩個網站。公司私有程式碼用 gitingest CLI 在本機跑,不要把 token 交給第三方網站。

這是 Instagram/Facebook 創作者 hayder.developer 的一支 Reels,我抓到的時候是 65 萬次觀看。影片只講兩件事:任何一個 GitHub 網址,把 github 改成 gitdiagram,就會變成一張架構圖;改成 gitingest,就會把資料夾結構和所有檔案內容攤成一頁,方便貼給 AI。

改網址這一步很好學。我想知道的是做出來的東西能不能用,以及貼給 AI 之前要先處理什麼。所以拿 Python CLI 套件 pallets/click 從頭跑了一遍。

gitdiagram 和 gitingest 是什麼?

改法只動網域,後面的 <owner>/<repo> 不變:

https://github.com/pallets/click
https://gitdiagram.com/pallets/click
https://gitingest.com/pallets/click
gitdiagramgitingest
產出互動式架構圖(Mermaid),元件可點到對應檔案摘要+目錄樹+所有檔案內容的純文字
原始碼GitHub repo,MIT,18,611 星GitHub repo,MIT,16,049 星
本機用法自架需要 Bun、Cloudflare R2、Upstash Redis 和 OpenAI 或 OpenRouter keypip install gitingest,Python 3.8 以上
私有 repo在網站的 Private Repos 填 GitHub tokenCLI 加 -t 或設定 GITHUB_TOKEN
星數是 2026-10-30 用 GitHub API 查的。gitdiagram 的定位是「給人看」,gitingest 的定位是「給 AI 讀」,兩個工具解決的是同一件事的兩半:快速看懂一個陌生的 repo。

gitdiagram 畫出來的圖能看嗎?

打開 https://gitdiagram.com/pallets/click,這個 repo 已經有人產生過,頁尾寫著 2026-10-29 生成,所以開頁幾秒就出圖。

gitdiagram 為 pallets/click 產生的架構圖:Command execution、Application authoring、CLI interaction、Runtime support 四組方塊,每個方塊標註對應的 .py 檔

圖下面列出 18 個元件、23 條連線,元件分成四組:指令執行、應用程式撰寫、CLI 互動、執行期支援。每個方塊都標了對應的檔名,例如 Commands and contexts [core.py]、Argument parser [parser.py],點下去會跳到 GitHub 上的那個檔案。

它不是單純把 import 關係畫出來。上一輪研究我寫了一支小腳本,用正規表示式掃 click 的 import,把模組之間的依賴畫成 Mermaid。結果是 17 個節點、60 條線:

用 import 關係直接畫出的 pallets/click 依賴圖:17 個模組、60 條交錯的連線,幾乎看不出結構

兩張圖用的是同一個 repo。gitdiagram 讀的是檔案樹、README 和部分原始碼,自架時要填 OpenAI 或 OpenRouter 的 key,圖是 LLM 產生的,所以它會把模組分組並幫連線命名,例如 parses arguments、reports conversion errors。純 import 圖的每一條線都是真的,但讀不出哪一塊在做什麼。

gitdiagram 自己也在頁面上說明這是 AI 產生的概觀。用 .md 版本看得最清楚:

curl -s https://gitdiagram.com/pallets/click.md | head -5
# pallets/click architecture

> Architecture diagram of the GitHub repository pallets/click, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-29). It is an AI-made overview: check details against the source.

「a sample of source files」和「check details against the source」這兩句很重要:它只讀了部分原始碼,細節要回原始碼確認。

把架構圖交給 AI 讀

網址後面加 .md,回傳的是 text/markdown。我抓 click 那份是 10,207 bytes,內容有一段概述,加上整張圖的 Mermaid 原始碼。這份東西比截圖更適合貼進對話,AI 讀得到每個節點和連線的文字。

README 另外列了一個不用登入的 MCP server,位址是 https://gitdiagram.com/mcp,只能查公開 repo。README 給的 Claude Code 指令如下,我這次沒有裝:

claude mcp add --transport http gitdiagram https://gitdiagram.com/mcp

gitingest 抓出來的東西多大?

網頁版打開 https://gitingest.com/pallets/click,摘要寫 166 個檔、預估 22.0 萬 token。

gitingest.com 處理 pallets/click 的結果:Summary 顯示 Files analyzed 166、Estimated tokens 220.1k,右邊是目錄樹,下面是檔案內容

網頁上的「Include files under」滑桿預設是 50kB,超過的檔不收。CLI 預設上限是 10MB(-s 參數,單位 bytes),所以同一個 repo 用 CLI 全抓會比網頁版大很多。

安裝與第一次執行

pip install gitingest
gitingest --help

我用的是 gitingest 0.3.1。--help 列出的參數裡,跟控制大小有關的是這三個:

參數作用
-i, --include-pattern只收符合 pattern 的檔
-e, --exclude-pattern排除符合 pattern 的檔,可以重複給
-s, --max-size單檔大小上限(bytes),預設 10485760

同一個 repo,四種抓法

下面四組都是對 https://github.com/pallets/click 跑的,commit 是 2247b35:

指令參數檔案數預估 token
不加參數(全抓)171442.8k
-e "tests/*" -e "docs/*" -e "examples/*"38248.4k
再加 -e "*.lock" -e "CHANGES.md"36110.2k
-i "src/*"18103.3k
第二列讓我意外。把測試、文件和範例都排除了,還剩 24.8 萬 token。我把輸出檔按檔案切開量字元數:
檔案字元數
uv.lock258,442
src/click/core.py157,020
CHANGES.md73,057
src/click/types.py47,337
38 個檔總共 806,143 字元,uv.lock 一個檔就占了三分之一。lock 檔對理解程式沒有幫助,排除它和 changelog 之後,token 從 248.4k 降到 110.2k,跟只抓 src/ 的 103.3k 差不多,但多保留了 README 和 pyproject.toml。

實際用的指令是這行:

gitingest https://github.com/pallets/click \
  -e "tests/*" -e "docs/*" -e "examples/*" -e "*.lock" -e "CHANGES.md" \
  -o click-lean.txt
Files analyzed: 36
Estimated tokens: 110.2k

要不要貼給 AI,先看最大的幾個檔是什麼。 全抓的 44.3 萬 token 裡,大部分是測試、文件和 lock 檔。

本機資料夾也能跑

gitingest 的參數 SOURCE 可以是網址,也可以是本機路徑。我拿這個部落格 repo 的 src/lib 試:

gitingest ./src/lib -i "*.ts" -o local-lib.txt
Directory: C:/Users/user/workspace/ai-lecturer-bob-fresh/src/lib
Files analyzed: 11
Estimated tokens: 18.8k

這條路不經過 gitingest.com。公司內部 GitLab 的專案先 git clone 到本機,再對資料夾跑 CLI,程式碼就不會上傳到第三方網站。

私有 repo 要注意什麼?

兩個網站都支援私有 repo,做法都是交出 GitHub token。

  • gitdiagram:README 寫「Use private repositories with a GitHub token via Private Repos in the header」。
  • gitingest 網頁版:表單上有 Private Repository 勾選框。CLI 版是 -t github_pat_... 或 GITHUB_TOKEN 環境變數,README 產生 token 的連結預設勾的是 repo 權限。
token 給出去,等於讓網站能讀你帳號底下的私有 repo。gitdiagram 產圖時還要把檔案內容送給 LLM。我自己的規則是:公開 repo 用網站,公司程式碼只在本機跑 gitingest CLI。

兩個工具怎麼搭配用?

接手一個陌生的開源專案,我的順序是:

  1. gitdiagram.com/<owner>/<repo> 先看全貌,知道核心在哪幾個檔。
  2. 想問 AI 細節時,把 gitdiagram.com/<owner>/<repo>.md 的 Mermaid 貼進對話當地圖。
  3. 用 gitingest CLI 只抓相關的目錄,排除 tests、docs、lock 檔,看 token 數再決定要不要縮小範圍。
  4. 回答裡提到的檔案和函式,回原始碼確認。
gitdiagram 的 .md 自己就寫「check details against the source」,第 4 步不能省。

我之前測過另外兩種讓 AI 讀懂 codebase 的做法:Graphify 省 token 實測 是把程式碼建成知識圖譜,Archify 是用 Claude Skill 在本機畫架構圖並對回行號。如果要畫的是公司私有專案的架構圖,Archify 那篇的做法不用把程式碼交給第三方網站。

常見問題

gitdiagram 和 gitingest 要錢嗎?

我開 click 這個 repo 時,兩個網站都沒有要求登入或付費。兩個 repo 都是 MIT 授權。gitdiagram 的 README 寫明產生新的解說影片目前是 early access。

gitingest 的 token 數準嗎?

摘要上寫的是「Estimated tokens」,是估算值。拿來比較不同過濾條件的大小很好用,實際消耗以你用的模型計費為準。

為什麼網頁版跟 CLI 抓出來的數字不一樣?

網頁版預設只收 50kB 以下的檔,CLI 預設是 10MB。click 在網頁版是 166 個檔、22.0 萬 token,CLI 全抓是 171 個檔、44.3 萬 token。

公司的 GitLab 專案可以用嗎?

可以用 gitingest CLI 對本機資料夾跑,例如 gitingest ./my-project -e "*.lock"。gitdiagram 是對 GitHub 網址運作,GitLab 專案沒辦法用改網址的方式。

author
陳
陳彥彤

AI 工程師 · AI 顧問。Java 後端 8 年、AI 工程師 2 年。AI 內訓 · AI 導入顧問 · 前後端與雲端培訓。

support

覺得文章有用可以到 GitHub 給個 star,或是透過信箱聊聊 AI 內訓、AI 導入顧問或前後端 / 雲端培訓。

related

相關文章

[AI 工具] · 16min
Graphify 省 70% token?實測算上補讀只剩 54%,跟 CodeGraph 打平
Graphify 是用 tree-sitter 在本機把專案建成知識圖譜的開源工具,IG Reel 宣傳它能讓 Claude Code 省 70% token。我在 62 個 TS 檔的專案量了 3 題:只看查圖確實少 72%,但它只給符號名稱和行號、還得補讀檔案,算進去是少 54%——跟直接附原始碼的 CodeGraph(少 56%)打平。
[AI 工具] · 15min
Archify 是什麼?Claude Skill 讀程式碼畫互動架構圖,實測每個方塊都對回原始碼行號
Archify 是 tt-a1i 開源的 agent skill(Apache-2.0、約 9 萬星):AI 讀程式碼寫成 JSON,它驗過後輸出可點擊、可匯出 PNG/SVG/WebM 的單檔架構圖。我拿 14 個元件的 line-talk 實測,4 分鐘出圖、每個方塊都對回 commit 與行號——但它是快照,私有 repo 公開前要另外去敏。
[AI 教學] · 21min
obra superpowers 怎麼裝?Claude Code 第四堂——MCP + GitHub + Headless 接生態系完整實戰
2026-05-19 Pro 版第四堂——但實際發生跟教學計畫完全不一樣。原本要教 Git 三動作,現場改成「我們自己寫一定不是最優解,要如何使用別人寫的」。實際走了 4 件事:Superpowers plugin 安裝(卡關 3 次:`/plugins` 沒搜到、Skill 沒生效、hook 把 build 卡死)、Twinkle Hub MCP 接政府開放資料(查 2024 國防部決標 12 筆)、GitHub 註冊 + gh CLI auth(CAPTCHA 卡 5 分鐘、學員 chien chang 救場)、headless `claude -p` 半夜跑 100 個檔案翻譯 batch。Pro 訂閱者照做完整路徑。