GitHub Repo Explorer 是一个纯前端的 GitHub 仓库浏览工具,解决 GitHub 原生功能的痛点:
- 下载子目录:GitHub 不支持单独下载文件夹,而完整克隆太慢
- AI 代码分析:快速导出项目代码给 ChatGPT/Claude 分析
- 网络加速:支持代理模板,解决访问慢的问题
- 快速浏览:像 VS Code 一样展开/折叠目录,无需跳转页面
- Recursive Tree API:一次性获取所有文件结构,减少请求次数
- 懒加载渲染:仅展开时才创建 DOM,即使数万文件也能流畅渲染
- 实时文件搜索:快速定位文件,自动展开匹配目录
- 分支/Tag 切换:自动列出所有分支和标签
- 子目录下载:任意文件夹一键打包为 ZIP
- 复选框选择:灵活选择需要下载的文件或文件夹
- 拖拽框选:像操作系统一样框选多个文件
- 文件预览:支持代码文件语法高亮和图片预览
- 复制链接:一键复制 Raw 链接或 GitHub 页面链接
- Export to AI:将选中文件合并为 Markdown 格式,直接粘贴给 AI
- Token 估算:实时估算导出内容的 token 数量,避免超出上下文限制
- 关键词搜索:按语言、Star 数筛选 GitHub 仓库
- 趋势榜单:查看每日/每周/每月热门仓库
- README 预览:悬浮卡片快速查看项目介绍,支持双引擎渲染(本地/API)
- 一键解析:预览界面直接点击 "Open Here" 即可加载仓库
- 健康检查:自动检测
.gitignore、LICENSE等配置文件 - 数据概览:Stars、Forks、Watchers、Issues 可视化展示
- 社区动态:时间轴展示 Push、PR、Issue 等最新动态
- CI/CD 状态:实时查看 GitHub Actions 构建状态
- Commits:查看最近提交记录
- 贡献者列表:查看贡献者头像和提交数
- 语言分布:可视化编程语言统计
- 🔗 全能 URL 解析 (Universal URL Parsing):
- 标准链接:
- 仓库主页:
https://github.com/user/repo - 分支/Tag:
https://github.com/user/repo/tree/dev - 子目录:
https://github.com/user/repo/tree/main/src - 文件:
https://github.com/user/repo/blob/main/README.md - Commit:
https://github.com/user/repo/commit/5f3a... - Release Tag:
https://github.com/user/repo/releases/tag/v1.0.0
- 仓库主页:
- 用户主页:
https://github.com/user-> 罗列该用户所有仓库。 - 简写模式:
user/repo-> 自动识别为https://github.com/user/repo。/user/repo-> 同上。user-> 自动识别为用户主页https://github.com/user。github.com/user/repo(无 https) -> 自动补全协议头。www.github.com/user/repo-> 自动跳转并补全协议头。
- 参数传递:
https://example.com/?url=https://github.com/user/repo-> 自动填充并分析。https://example.com/?https://github.com/user/repo-> 支持直接粘贴。https://example.com/?user/repo-> 支持简写。https://example.com/#/user/repo-> 支持 Hash 路由(适合静态部署)。https://example.com/user/repo-> 支持 Path 路由(需服务器配置支持或404Hack方案代替)- Clean URL: 无论访问路径如何,解析成功后浏览器地址栏会自动统一更新为
https://example.com/?https://github.com/user/repo。
- 特殊格式:
- 支持 URL 编码格式 (e.g.
?https%3A%2F%2Fgithub.com...)。 - 支持 SSH 链接 (e.g.
git@github.com:user/repo.git)。
- 支持 URL 编码格式 (e.g.
- 标准链接:
- Code Search:全局代码搜索,支持预览和跳转
- Releases 管理:查看 Release 详情,支持自定义下载加速模板
- Github1s 集成:一键在 VS Code 风格的 Web IDE 中查看代码
- Github1s 项目:是另一个项目。
- 分支/Tag 切换: 自动列出所有分支和标签,方便切换。
- Token 支持:配置 GitHub Token 提升 API 速率限制 (60 → 5000/小时)
- 代理支持:配置 API 代理解决网络问题
- Deep Linking:分享链接自动恢复当前浏览路径
| 场景 | 痛点 | 解决方案 |
|---|---|---|
| 下载子文件夹 | 只想获取项目中的某个目录,却要克隆整个仓库 | 找到目标文件夹 → 点击「Download ZIP」 |
| AI 代码分析 | 需要把多个文件内容发给 AI,手动复制太慢 | 勾选文件 → 点击「Export to AI」→ 粘贴给 AI |
| 网络加速 | Release 下载链接无法访问 | 高级设置中配置代理模板 |
| 快速代码阅读 | GitHub 网页需要频繁跳转页面 | 目录树展开浏览,无需跳转 |
访问部署好的页面:在线体验
# 克隆项目
git clone https://github.com/HOG-StarWatch/github-repo-explorer.git
cd github-repo-explorer
# 使用本地服务器启动(推荐)
python -m http.server 8000
# 或
npx http-server
# etc.
# 浏览器访问 http://localhost:8000-
输入链接:支持多种格式
- 简写:
user/repo - 完整 URL:
https://github.com/user/repo/tree/main/src - 用户主页:
https://github.com/user - SSH 链接:
git@github.com:user/repo.git
- 简写:
-
浏览/选择
- 按
Enter开始解析 - 展开文件夹查看结构
- 拖拽框选多个文件
- 按
-
导出/下载
- 「Download ZIP」下载选中内容
- 「Export to AI」导出合并文本
点击「Advanced Settings」进入配置:
| 配置项 | 说明 | 默认值 |
|---|---|---|
| GitHub Token | 提升 API 速率限制 (5000/小时),本地存储安全 | 可选 |
| API Proxy | 配置 API 代理解决网络问题 | 可选 |
| Release 模板 | 自定义 Release 下载链接 | https://github.com/{owner}/{repo}/releases/download/{tag}/{filename} |
| 文件模板 | 自定义 Raw 文件链接 | https://raw.githubusercontent.com/{owner}/{repo}/{ref}/{path} |
- Download Relese Templates: 自定义 Release 或 Raw 文件的下载链接模板(支持302跳转的加速服务均可用)。
- GitHub 的 Release 文件下载流程是:访问 github.com/.../download/... -> GitHub 服务器鉴权 -> 302 跳转 到 AWS S3 存储桶
- 这个 S3 链接是 动态生成且带签名 的,无法直接预测。
项目已包含 _redirects 文件,直接部署即可支持 SPA 路由。
创建 vercel.json:
{
"rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
}由于 GitHub Pages 不支持服务端重写,提供两种方案:
- Hash 路由(默认):
example.com/#/user/repo,无需配置 - 404 Hack:将
404.html.bak重命名为404.html,自动处理路径跳转
- GitHub Trees API:
recursive=1一次性获取所有文件结构 - 懒加载渲染:仅展开时创建 DOM 节点,降低内存占用
- JSZip:纯前端打包,不经过第三方服务器
- 支持仓库根目录、分支、子目录、Commit SHA、用户主页
- 通过预获取分支/标签列表,精准区分分支名和路径
- 未认证:60 次/小时(按 IP)
- Token 认证:5000 次/小时
- Token 仅用于请求头,本地存储安全
- API 限制:遇到限制请在设置中配置 GitHub Token
- 大文件支持:受浏览器内存限制,建议单个文件 < 10MB,仓库 < 100MB
- 兼容性:支持所有现代浏览器(Chrome、Firefox、Safari、Edge)
欢迎提交 PR 和 Issue!
- Fork 项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
Made with ❤️ by HOG-StarWatch