开源了一个在线工具:一键看懂任意 GitHub 仓库的代码全貌 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
yisen123

开源了一个在线工具:一键看懂任意 GitHub 仓库的代码全貌

  •  
  •   yisen123 3 月 25 日 3264 次点击

    做了个小工具,贴上任意 GitHub 仓库地址,直接在浏览器里渲染出整个代码库的平面图( Floor Plan )。

    在线体验(无需安装): https://scan.sentrux.dev

    每个文件是一个方块,大小按代码行数比例,文件夹自动嵌套分组,依赖关系用线连接。点击任意文件可以高亮它的所有依赖。

    直接点开看效果 今天的热门仓库:

    说到最近的热点 OpenClaw 最近大改了 Plugin SDK ,从 openclaw/extension-api 迁移到 openclaw/plugin-sdk/*,老插件全部 break ,社区一片哀嚎。用这个工具看看它的代码结构就知道为什么了:

    你可以直观地看到哪些模块之间有依赖,哪些文件是 god file ,为什么一改 SDK 整个插件生态都碎了。

    一些经典大项目对比:

    或者直接贴你自己的仓库地址试试,看看你的项目长什么样。

    支持 52 种语言,不同语言用不同颜色标注(右下角可以切换单色/语言模式)。

    技术上:纯 Rust 实现,网页版用 egui + WebGL 渲染,和桌面版共享同一套渲染代码。MIT 开源。

    GitHub: https://github.com/sentrux/sentrux

    欢迎试用,随便贴你的仓库看看长什么样。

    22 条回复    2026-03-26 10:45:50 +08:00
    wsliwh
        1
    wsliwh  
       3 月 25 日
    很不错的项目,给大佬点赞
    zhady009
        2
    zhady009  
       3 月 25 日
    https://scan.sentrux.dev/scan/shoaky009/source-downloader
    不清楚为什么没有分析出依赖关系连线,预期 SourceProcessor.kt 应该有依赖才对
    yisen123
        3
    yisen123  
    OP
       3 月 25 日   1
    @zhady009 你好,可以先用桌面版测试一下, 桌面版测出来是好的,这可能是 rust 以及 webassembly 的一个 bug ,我们正在修复网页版中,桌面版是好的
    xxlsize
        4
    xxlsize  
       3 月 25 日   2
    这个图看着酷炫,但是实际上有啥价值没看出来。
    yisen123
        5
    yisen123  
    OP
       3 月 25 日
    @xxsize 主要的价值是给出代码质量分数,ai agent 有了这个分数以后从 mcp 获取,可以改进代码质量
    xxlsize
        6
    xxlsize  
       3 月 25 日
    @yisen123 但是那个图没看出来有啥用,从图上能看出啥?点击图上的块也只显示个文件名,没有任何该文件的具体指标
    HeyHudy
        7
    HeyHudy  
       3 月 25 日
    abc1310054026
        8
    abc1310054026  
       3 月 25 日
    看的眼睛痛,你用错图了,treemap 用来可视化占比很好,但是表示关系的话用关系图比较好。

    你可以增加一个 tabs ,切换不同图类型。
    yisen123
        9
    yisen123  
    OP
       3 月 25 日
    @HeyHudy 很酷!!
    HeyWeGo
        10
    HeyWeGo  
       3 月 25 日
    关联关系多了竖立起来确实会有个比较直观的概念,不过表现形式可以改改。对于关联关系特别复杂的可以考虑用那种极细的线,用户关注某个具体文件的时候,将关联的线突出显示比较好,甚至有个 solo 模式。更多是产品层的调整。
    yisen123
        11
    yisen123  
    OP
       3 月 25 日
    @HeyWeGo 你好,刚刚网页已加入了极细的线帮助阅读,谢谢反馈!
    mlogclub
        12
    mlogclub  
       3 月 25 日
    和 github 提供的这个功能有啥区别?

    ![]( https://picui.ogmua.cn/s1/2026/03/25/69c37c1c5966a.webp)
    gotOwt
        13
    gotOwt  
       3 月 25 日
    默认是查看的哪个分支呢?

    还有 分数 为什么不是百分 z 制?
    endoffight
        14
    endoffight  
       3 月 25 日
    一直报错 Failed to fetch
    rekadowney9876
        15
    rekadowney9876  
       3 月 25 日
    cpu 在哀嚎
    NotFoundEgg
        16
    NotFoundEgg  
       3 月 25 日
    提个 bug ,我的项目默认分支是 master ,但双击图中的文件跳转的 github 链接是 main 分支
    Geon97
        17
    Geon97  
       3 月 25 日
    报错 Cannot read properties of null (reading 'set_snapshot_json')
    maocat
        18
    maocat  
       3 月 25 日
    哈哈哈哈,我提交了

    https://github.com/openclaw/openclaw

    3000 多分,AI 还是牛
    fireeeebot
        19
    fireeeebot  
       3 月 25 日
    这线条好丰富
    Saniter
        20
    Saniter  
       3 月 25 日
    试了下超大型 repo linux ,一直 failed to fetch ,不过估计成功了也得卡死,上面那个 openclaw 的 cpu 占用就已经炸了
    234235
        21
    234235  
       3 月 25 日 via Android
    下载了可执行程序用,发现字体太小了,UI 还有优化空间
    kuriasul
        22
    kuriasul  
       3 月 26 日
    没毛线用
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     883 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 99ms UTC 19:45 PVG 03:45 LAX 12:45 JFK 15:45
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86