Skip to content

Latest commit

 

History

History
529 lines (388 loc) · 27.2 KB

File metadata and controls

529 lines (388 loc) · 27.2 KB

Logo

GithubStarsManager

100% 本地数据 AI 支持 全平台 zread

一个基于AI的GitHub星标仓库管理工具,帮助您更好地组织和管理您的GitHub星标项目。

GithubStarsManager - AI organizes GitHub stars for easy find | Product Hunt AmintaCCCP%2FGithubStarsManager | Trendshift

中文 | English

功能特性

星标太多找不到?GitHub Stars Manager 自动同步您的星标仓库,使用 AI 进行摘要和分类,支持语义搜索。追踪 Release、过滤资产、一键下载——比手动标签更智能,比 GitHub 更简单。

核心功能

功能 描述
自动同步星标 连接 GitHub Token 自动拉取所有星标仓库
GitHub Lists 双向同步 与 GitHub 原生 Lists(星标列表)双向同步:拉取 Lists 归类为标签/分类并自动锁定,将本地分类回写为 GitHub Lists
AI 摘要与分类 使用 AI 生成标签、主题和简短 README 概览
语义搜索 按意图而非精确名称查找仓库
向量语义搜索 将仓库描述/README 嵌入 Cloudflare Vectorize 向量库,自然语言查询实现高精度语义匹配
MCP 服务 可选 Streamable HTTP / SSE,供 Claude Code、Cursor 等 Agent 检索 AI 加工后的星标;需后端或 Electron/客户端(纯前端模式不显示);设置中开关,无需额外安装
仓库问答助手(早期阶段) 在单个仓库内进行简单、聚焦的问答,提供提交固定的只读证据、可追溯来源与本地会话历史。它不会索引仓库的全部文件,复杂代码分析建议使用成熟的本地 Coding Agent。
仓库页 Release 下载 从仓库卡片直接打开该仓库的最新 Release;浏览分页资产、更新日志、源码压缩包和可选 AI 摘要,并通过浏览器或已配置的 RPC 下载器下载。
Release 追踪 订阅仓库并在统一时间线查看新版本
一键下载 展开 Release 资产并即时下载
智能资产过滤 按关键词匹配资产 (dmg / mac / arm64 / aarch64)
发现中心 浏览 GitHub 趋势、热门发布、最受欢迎项目
Fork 管理 查看、同步 Fork 仓库并触发 GitHub Actions 工作流
Gist 管理 浏览、创建、编辑、删除 Gist;AI 摘要与语义搜索
12 套主题预设 在设置中一键切换 12 套内置主题,每套均有协调的亮色与暗色配色,并提供实时预览。
网络代理 HTTP / SOCKS5 代理支持,协议级连接探测测试
远程下载 (aria2) 通过 aria2 JSON-RPC 将 Release 资产推送到远程下载
诊断日志 前后端统一日志查看器,支持 Debug 捕获模式
双语 Wiki 跳转 根据仓库语言跳转到 Deepwiki (EN) 或 zread (ZH)
客户端打包 无需配置环境,下载即用

可选后端服务

部署 Express + SQLite 后端以实现:

  • 跨设备同步 — 在不同浏览器和设备间共享数据
  • 无 CORS 代理 — AI 和 WebDAV 请求通过服务器转发,避免浏览器 CORS 限制
  • 加密令牌存储 — API 密钥安全存储,不暴露在浏览器中
  • 网络代理转发 — 所有出站请求(GitHub、AI、WebDAV)通过 HTTP/SOCKS5 代理转发
  • RPC 下载代理 — 通过服务器转发 aria2 下载请求,密钥加密存储

🔍 界面预览

1. 仓库管理 (Stars 视图)

功能列表:

  • 自动同步 — 连接 GitHub Token 自动拉取所有星标仓库
  • AI 批量分析 — 批量选择仓库,使用 AI 自动生成描述、标签和分类;支持暂停/继续分析进度
  • 仓库卡片展示 — 显示 star 数、fork 数、编程语言、主分支状态;支持展开 README 预览
  • 分类侧边栏 — 拖拽排序分类、自定义分类颜色、折叠/展开侧边栏;支持锁定分类防止 AI 覆盖
  • 批量操作工具栏 — 批量归类到指定分类、批量恢复 AI 分析结果
  • 订阅指示器 — 直观显示哪些仓库已订阅 Release 更新
  • AI 分析状态 — 显示已分析/未分析/分析失败状态;支持按分析状态筛选

截图: Repository Management Interface


2. 仓库问答助手(早期阶段)

直接从仓库卡片对单个仓库提出简洁的问题。每个会话都绑定到启动会话时选定的特定提交,并展示生成答案所依据的证据。

功能列表:

  • 提交固定的只读证据 — 会话中的来源始终绑定到创建会话时的仓库版本。
  • 可追溯回答 — 可在每条回答旁查看来源链接与助手的检索过程。
  • 本地会话历史 — 按仓库独立查看、搜索与管理历史对话。
  • 可配置检索预算 — 在 AI 设置中控制轮次、工具调用、文档/代码读取与响应时长的上限。

早期阶段说明: 此功能面向简单的仓库问答,可能会出现检索失败、证据不完整或无法回答的情况。它不会索引被提问仓库的全部文件;如需进行复杂的全仓库代码分析、多文件推理、调试或代码修改,请将仓库克隆到本地并使用成熟的 Coding Agent。

截图: Repository Q&A Assistant


3. Release 时间线 (Releases 视图)

功能列表:

  • 订阅管理 — 订阅/取消订阅仓库的 Release 通知;支持批量取消订阅
  • 时间线展示 — 按时间倒序列出所有仓库的新版本发布;显示已读/未读状态
  • 智能资产过滤 — 按平台筛选 (macOS / Windows / Linux / ARM);按文件类型筛选 (dmg / zip / deb / rpm / apk)
  • 自定义过滤规则 — 保存自定义关键词过滤规则
  • 展开下载 — 展开 Release 资产列表,一键复制下载链接;显示文件大小
  • 多视图模式 — 列表视图 / 网格视图切换
  • 分页加载 — 支持分页加载历史发布记录
  • 刷新状态指示 — 显示最后刷新时间

截图: Release Timeline Interface


4. 发现中心 (Discover 视图)

功能列表:

  • 五大发现渠道 — 趋势(Trending) / 热门发布(Hot Release) / 最受欢迎(Most Popular) / 话题(Topic) / 搜索(Search)
  • 趋势时间范围 — 今日 / 本周 / 本月 三个时间维度
  • 趋势筛选规则 — 更新时间 30 天内,Star 数 50+,按 Star 降序排列
  • 平台过滤 — 按操作系统筛选 (All / macOS / Windows / Linux / Browser)
  • 编程语言过滤 — 按语言筛选 (JavaScript / TypeScript / Python / Go / Rust 等)
  • AI 仓库分析 — 一键对发现频道中的仓库进行 AI 分析
  • 订阅仓库 — 将感兴趣的仓库加入订阅列表
  • 移动端适配 — 移动设备友好的频道切换体验

趋势数据来源于 GitHub 趋势 RSS 源,每 30 分钟自动更新。适合发现新兴热门项目、追踪技术趋势、寻找学习方向。

截图: Discovery Trending Interface


5. Fork 管理 (Forks 视图)

功能列表:

  • Fork 列表 — 自动获取所有 Fork 仓库,检测上游更新
  • 一键同步 — 将上游变更合并到任意分支,处理冲突
  • GitHub Actions — 在 Fork 卡片上直接查看和触发工作流
  • 未读/已读追踪 — 上游有新提交的 Fork 显示脉冲指示器
  • 搜索与分页 — 全文搜索、可配置分页大小

Screenshot: Fork


6. Gist 管理 (Gist 视图)

功能列表:

  • Gist 列表 — 自动同步所有 Gist 和星标 Gist,支持分类筛选(全部 / 我的 / 星标)
  • 创建与编辑 — 多文件 Gist 编辑器,支持语法高亮代码块;可添加、重命名、删除文件
  • AI 分析 — 一键 AI 摘要 Gist 内容;支持批量分析与暂停/继续
  • 语义搜索 — AI 搜索重排序,按意图查找 Gist,而非仅按文件名
  • 详情查看 — 可展开的 Gist 详情弹窗,显示文件内容、语法高亮和一键复制
  • Star 与 Unstar — 在卡片上直接 Star/Unstar Gist
  • 智能筛选 — 按分析状态、语言筛选,按名称/日期/文件数排序

截图: Gist 管理界面


7. 搜索与过滤

功能列表:

  • 多维度搜索 — 关键词搜索、仓库状态筛选、标签筛选、语言筛选、平台筛选
  • AI 分析状态筛选 — 已分析 / 未分析 / 分析失败 / 已编辑
  • Release 订阅筛选 — 已订阅 / 未订阅 Release
  • 分类状态筛选 — 分类已锁定 / 未锁定
  • 快捷键支持 — 显示搜索快捷键提示
  • 搜索统计 — 显示搜索结果数量和筛选条件
  • 搜索演示模式 — 展示语义搜索能力

截图: Search Interface


8. 设置面板

设置分组:

分组 功能
General 语言切换(中/英)、亮色/暗色模式,以及 12 套内置主题的实时预览与切换
AI Config 配置 OpenAI / Anthropic / Ollama / 兼容 API;支持自定义端点和密钥
WebDAV 坚果云、Nextcloud、ownCloud 等标准 WebDAV 服务备份配置
Backup 备份历史记录、手动备份/恢复、增量备份
Backend Server 连接自建后端服务、API 密钥验证、同步状态指示
Network HTTP/SOCKS5 代理配置及协议级测试;aria2 RPC 远程下载设置
Category 分类管理、分类排序、默认分类覆盖规则
Data Management 数据导入/导出、清除本地数据、重置所有数据
向量搜索 配置 Cloudflare Vectorize Worker、Embedding 模型、索引模式(描述/README)、索引重建管理
MCP 服务 开启 MCP 供 Claude Code、Cursor 等 Agent 通过 Streamable HTTP / SSE 检索 AI 加工后的星标,Bearer Token 鉴权

截图: Settings Panel Interface

外观:设置 → General → Appearance 中任选 12 套内置主题预设。每套主题均提供匹配的亮色和暗色配色,并会立即应用到整个应用。


9. 自定义 AI 模型

功能列表:

  • 多 AI 提供商支持 — OpenAI (GPT-3.5/GPT-4)、Anthropic (Claude)、Ollama (本地模型)、任何兼容 OpenAI 接口的 API
  • 自定义端点 — 支持私有部署的 AI 服务
  • 连接测试 — 配置后测试 API 连接是否可用
  • AI 模型选择 — 选择要使用的具体模型

截图: AI Configuration Interface

技术栈

  • 前端: React 18 + TypeScript + Tailwind CSS
  • 状态管理: Zustand
  • 图标: Lucide React + Font Awesome
  • 构建工具: Vite
  • 部署: Netlify

💻 桌面客户端(推荐)

直接下载桌面客户端,无需配置环境:

https://github.com/AmintaCCCP/GithubStarsManager/releases

快速开始

1. 克隆项目

git clone https://github.com/AmintaCCCP/GithubStarsManager.git
cd GithubStarsManager

2. 安装依赖

npm install

3. 启动开发服务器

npm run dev

💡 本地使用 npm run dev 运行项目时,AI 服务和 WebDAV 的调用可能因浏览器 CORS 限制而失败。建议使用预编译客户端,或启动后端服务器(cd server && npm run dev)代理 API 请求以完全避免 CORS 问题。

4. 构建生产版本

npm run build

🤖 AI服务配置

应用支持多种AI服务提供商:

  • OpenAI: GPT-3.5/GPT-4
  • Anthropic: Claude
  • 本地部署: Ollama等本地AI服务
  • 其他: 任何兼容OpenAI API的服务

在设置页面中配置您的AI服务:

  1. 添加AI配置
  2. 输入API端点和密钥
  3. 选择模型
  4. 测试连接

🌐 网络代理配置

应用支持通过代理路由所有出站请求:

  • HTTP 代理 — 标准 HTTP CONNECT 隧道,支持可选认证
  • SOCKS5 代理 — 完整 SOCKS5 支持,包括用户名/密码认证 (RFC 1929)
  • 协议级测试 — 连接测试执行真实的协议握手,而非简单 TCP 连接
  • 加密存储 — 代理密码使用 AES-256-GCM 加密存储

在设置 → 网络标签页中配置(Electron 客户端或后端服务器可用时显示)。

network

⬇️ 远程下载 (aria2 RPC)

将 Release 下载链接直接发送到 aria2 守护进程:

  1. 启用 aria2 RPC:aria2c --enable-rpc --rpc-listen-port=6800
  2. 打开设置 → 网络 → 远程下载
  3. 输入主机、端口和可选密钥
  4. 测试连接后保存
  5. Release 资产按钮将自动把下载任务推送到 aria2

支持有后端和纯前端两种模式(浏览器直连 aria2)。

🧠 向量语义搜索(可选)

向量语义搜索基于 Cloudflare Vectorize 提供高精度的自然语言搜索。将仓库描述(或完整 README 内容)嵌入为向量,通过语义相似度匹配,而非关键词匹配。

vectorize

工作原理:

  1. 前端通过用户配置的 Embedding 服务商(OpenAI、Gemini、Cohere、Ollama、硅基流动或任何兼容 OpenAI 的 API)生成向量
  2. 轻量级 Cloudflare Worker 作为纯 Vectorize 代理(存/查/删)
  3. 搜索时,将查询文本嵌入为向量并与索引匹配;可选由 AI 服务进行二次排序
  4. 关闭向量搜索或搜索失败时,自动回退到基于关键词的 AI 搜索

支持的 Embedding 服务商:

服务商 模型 维度
OpenAI text-embedding-3-small / large 1536 / 3072
Gemini text-embedding-004 768
Cohere embed-multilingual-v3.0 1024
Ollama nomic-embed-text / bge-m3 768 / 1024
硅基流动 BAAI/bge-large-zh-v1.5 1024
OpenAI 兼容 (自定义) (自定义)

快速配置:

  1. 部署 Cloudflare Worker — 详见 cloudflare-worker/README.md
  2. 在应用中:设置 → 向量搜索 — 填入 Worker 地址和认证 Token
  3. 配置 Embedding 服务商(API Key + 模型)
  4. 点击 重建索引 将所有仓库嵌入并上传
  5. 使用 AI 搜索 按钮 — 启用后自动走向量搜索

⚠️ 更换 Embedding 模型后必须重建索引 — 不同模型生成的向量维度不兼容。

🛰️ MCP 服务(Agent 访问)

让 Agent(Claude Code、Cursor 等)通过 Model Context Protocol 读取并检索 AI 加工后的星标仓库(摘要、标签、分类)。

  • Streamable HTTP(推荐):应用同源 POST /mcp(后端/Docker 模式)或 http://127.0.0.1:3927/mcp(客户端本地模式)
  • 旧版 SSE/mcp/sse + /mcp/sse/messages(后端),/sse + /messages(客户端)— 供旧客户端使用
  • Bearer Token 鉴权,Token(gsm_mcp_...)稳定不变:开启时生成一次、重启后保持不变、仅在重置时更换

开启方式: 设置 → MCP 服务 → 打开开关。面板会显示端点地址、Token 以及一键复制(JSON)的 Agent 配置,同时提供 Streamable HTTP 与 SSE 两套配置,无需额外安装。

💡 MCP Token 与后端 API_SECRET 相互独立。纯前端(无后端)模式不显示 MCP 设置页;需要桌面(Electron)客户端或已连接后端时可用。

暴露的工具(全部只读):

工具 说明
gsm_status 服务状态:仓库数、向量可用性、版本
gsm_search_repos 对星标做关键词搜索,支持筛选(语言 / 标签 / 平台 / 许可证 / 分类 / 星标数)与分页
gsm_get_repo 按数字 id 或 owner/repo 获取单个仓库,含 AI 加工字段
gsm_list_categories 列出自定义分类
gsm_list_repos_by_category 分页列出某分类下的仓库
gsm_stats 聚合统计(语言、分析、标签)
gsm_vector_search 语义向量搜索 — 仅当已配置并启用向量搜索时列出

桌面(Electron)说明: 仅绑定回环地址(127.0.0.1),只能本机 Agent 访问;可在设置中调整主机/端口(默认端口 3927)。

MCP

🔄 GitHub Lists 双向同步

在经典 REST 星标同步之外,原生 GitHub Lists(星标列表)支持双向同步:

  • 拉取(GitHub → 应用) — 在 设置 → 星标同步 选择 同步星标仓库及 list(或首次登录时选择)。通过 GraphQL 拉取 Lists;每个 list 名作为自定义标签写入,未锁定的仓库归入匹配分类并自动锁定,AI 分析不会重置。
  • 回写(应用 → GitHub) — 在 设置 → 星标同步 点击 同步仓库分类到 GitHub list。每个本地分类写回为同名 GitHub List(同名覆盖、不存在则默认私有新建);仓库按分类加入对应 list,本地未管理的其他 list 成员关系会被保留。

同步范围持久化保存:可在 设置 → 星标同步 中随时在「仅星标仓库」与「星标仓库及 list」之间切换。

💾 WebDAV备份配置

支持多种WebDAV服务:

  • 坚果云: 国内用户推荐
  • Nextcloud: 自建云存储
  • ownCloud: 企业级解决方案
  • 其他: 任何标准WebDAV服务

配置步骤:

  1. 在设置页面添加WebDAV配置
  2. 输入服务器URL、用户名、密码和路径
  3. 测试连接
  4. 启用自动备份

🚀 部署

Netlify部署

  1. Fork本项目到您的GitHub账户
  2. 在Netlify中连接您的GitHub仓库
  3. 配置构建设置:
    • Build command: npm run build
    • Publish directory: dist
  4. 部署

其他平台

项目构建后生成静态文件,可以部署到任何静态网站托管服务:

  • Vercel
  • GitHub Pages
  • Cloudflare Pages
  • 自建服务器

Docker 部署

GHCR 上提供预构建的后端和前端镜像,无需本地构建。现有 Docker 用户可继续使用完全不变的前后端分离 Compose 部署:

docker pull ghcr.io/amintacccp/github-stars-manager-server:latest
docker pull ghcr.io/amintacccp/github-stars-manager-frontend:latest
docker-compose up -d

此外,项目新增了一个可选的全栈单镜像ghcr.io/amintacccp/github-stars-manager-fullstack),适合希望只运行一个容器、一个镜像标签和一个数据卷的用户。它在同一来源下提供网页、/api 和 MCP 端点。先在仓库根目录的 .env 设置 API_SECRET,全栈 Compose 会拒绝在无认证配置下启动:

API_SECRET=替换为足够长的随机密钥
docker compose -f docker-compose.fullstack.yml up -d

新增方式不会替换或修改现有的前端镜像、后端镜像、docker-compose.yml、桌面客户端或 API 路径。规范名称以角色结尾:-frontend-backend-fullstack;已有用户使用的 -server 后端镜像会继续作为兼容别名发布。正式的 vX.Y.Z Docker 标签必须与根目录 package.json 的客户端版本一致,latestsha-* 则分别用于开发和提交追溯。完整的中文部署、数据备份、从分离部署迁移和回滚说明请参阅 DOCKER_zh.md。英文说明请参阅 DOCKER.md

如果镜像为私有,需先执行 docker login ghcr.io(使用具有 read:packages 权限的 PAT)。

🖥️ 后端服务器(可选)

应用在没有后端的情况下也能完整运行(纯前端,使用 localStorage)。可选的 Express + SQLite 后端提供以下额外功能:

  • 跨设备同步: 在不同浏览器和设备间共享数据
  • 无 CORS 代理: AI 和 WebDAV 请求通过服务器转发,避免浏览器 CORS 限制
  • 令牌安全: API 密钥加密存储在服务器,不会暴露在浏览器网络请求中

快速启动(推荐使用 Docker)

docker-compose up -d

前端运行在 8080 端口,后端运行在 3000 端口。数据持久化存储在 Docker 卷中。该现有分离部署方式不会因全栈镜像而变化;需要独立升级、运维或扩缩容前后端时,仍建议继续使用它。若希望简化为单容器部署,请参阅 DOCKER_zh.md

自定义配置,创建 .env 文件:

API_SECRET=your-secret
ENCRYPTION_KEY=your-key
BACKEND_IMAGE_TAG=0.7.8   # 固定后端版本(默认:latest)
FRONTEND_IMAGE_TAG=0.7.8  # 固定前端版本(默认:latest)

仅后端(docker run)

# 基础运行 — 无认证,端口 3000
docker run -d --name github-stars-backend \
  -v github-stars-data:/app/data \
  -p 3000:3000 \
  ghcr.io/amintacccp/github-stars-manager-server:latest

# 自定义密钥和端口
docker run -d --name github-stars-backend \
  -v github-stars-data:/app/data \
  -p 3000:3000 \
  -e API_SECRET="your-secret" \
  -e ENCRYPTION_KEY="your-key" \
  ghcr.io/amintacccp/github-stars-manager-server:latest

手动启动

cd server
npm install
npm run dev

环境变量

变量 必填 说明
API_SECRET API 认证令牌。未设置时禁用认证。
ENCRYPTION_KEY 用于加密存储密钥的 AES-256 密钥。未设置时自动生成。
PORT 服务器端口(默认:3000)

前端连接后端

  1. 打开应用中的设置面板
  2. 找到「后端服务器」部分
  3. 输入 API Secret(如已配置)
  4. 点击「测试连接」,绿色指示灯表示连接成功
  5. 使用「同步到后端」/「从后端同步」来传输数据

目标用户

  • 拥有数百甚至数千星标的开发者
  • 系统性追踪软件发布的用户
  • 不想手动打标签的「懒效率」用户

补充说明

  1. 后端为可选项,但对于网页部署推荐启用。不启用时,所有数据存储在浏览器 localStorage 中,请定期备份重要数据。
  2. 我不会写代码,这个应用完全由AI编写,主要满足我个人需求。如果您有新功能需求或遇到Bug,我只能尽力尝试,但无法保证成功,因为这取决于AI能否完成。😹

贡献

欢迎提交Issue和Pull Request!

  1. Fork项目
  2. 创建功能分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启Pull Request

许可证

本项目采用MIT许可证 - 查看 LICENSE 文件了解详情。

支持

如果您觉得这个项目有用,请给它一个⭐️!

如有问题或建议,请提交Issue或联系作者。

星标地图

StarMapper

星标历史

Star history chart