GitHub星标仓库终端管理器

一款基于终端的GitHub星标仓库管理器,提供多窗格界面和类vim操作,支持自动分类和虚拟文件夹管理。

  • by SynapticSage
  • Python
  • 本地部署
  • 5 星标
  • 更新于
在 GitHub 查看 SynapticSage/ganger

使用说明

创建: 2025-11-07 版本: 0.1.0

GitHub星级存储库的基于终端的文件管理器,灵感来自ranger。使用类似vim的键绑定和多窗格界面导航、组织和管理GitHub stars。

特性

  • 双接口:TUI(文本)和MCP(模型上下文协议)服务器
  • 米勒柱:三列测距仪样式视图(文件夹|存储库|预览)
  • 虚拟文件夹:使用基于标签的虚拟文件夹组织星星
  • 自动分类:按语言、主题和活动自动对存储库进行分类
  • Vim密钥绑定:hjkl导航、视觉模式、剪切/复制/粘贴
  • 智能缓存:用于脱机浏览和减少API调用的SQLite缓存
  • 双重认证:OAuth设备流或个人访问令牌

安装

先决条件

  • Python 3.10或更高版本
  • 诗歌(用于依赖管理)
  • GitHub账号

安装诗歌

# Clone the repository
git clone https://github.com/synapticsage/ganger.git
cd ganger

# Install dependencies
poetry install

# Activate the virtual environment
poetry shell

# Run authentication setup
ganger auth

# Start the TUI
ganger tui

# Or start the MCP server
ganger mcp

快速开始

认证

Ganger支持两种身份验证方法:

  1. OAuth设备流 (推荐):

    ganger auth
    # Follow the prompts to authenticate via browser
    
  2. 个人访问令牌:

    export GITHUB_TOKEN=your_token_here
    ganger tui
    

MCP服务器

MCP服务器允许LLM代理编排GitHub星型管理:

# Start MCP server
ganger mcp

# The server exposes tools like:
# - list_starred_repos
# - create_virtual_folder
# - move_repo_to_folder
# - star_repository
# - get_repo_details

配置

配置文件: ~/.config/ganger/config.yaml

看 config/config.yaml 默认设置和可用选项。

项目状态

第一阶段(进行中):核心基金会

  • [x] 项目结构和依赖关系
  • []核心数据模型
  • []GitHub身份验证(OAuth+PAT)
  • []GitHub API客户端(REST+GraphQL)
  • []SQLite缓存
  • []具有自动分类功能的文件夹管理器
  • []MCP服务器
  • []配置系统
  • []单元测试

第二阶段(计划中):TUI接口 第三阶段(计划中):高级功能

建筑

Ganger使用TUI和MCP接口都使用的干净的服务层架构:

ganger/
├── core/          # Business logic (shared)
│   ├── models.py
│   ├── github_client.py
│   ├── cache.py
│   ├── auth.py
│   └── folder_manager.py
├── mcp/           # MCP server interface
│   ├── server.py
│   └── tools.py
└── tui/           # TUI interface (Phase 2)
    └── app.py

发展

运行测试

poetry run pytest

代码质量

# Format code
poetry run black src/ tests/

# Lint
poetry run ruff check src/ tests/

# Type checking
poetry run mypy src/

许可证

麻省理工学院

学分