Skip to main content

A lightweight TUI to scan, search, and manage local git repositories

Project description

Blink

轻量级终端 TUI 工具,用于扫描、搜索和管理本地 git 仓库。

功能

  • 自动发现配置目录下的所有 git 仓库
  • 两行式列表展示:项目名 + 标签,路径(灰色)
  • 按名称、别名、路径、描述、远程 URL 或标签实时搜索
  • 别名编辑、标签管理(添加 / 按序号移除)
  • 详情面板查看仓库完整信息并执行操作
  • 一键用 VSCode / Cursor / Antigravity / 系统默认方式打开仓库
  • 复制仓库路径到剪贴板
  • 后台重新扫描,无需退出 TUI

安装

pip install blink-repo

使用

blink          # 启动 TUI
blink --rescan # 强制重新扫描后启动

首次运行

首次启动时,Blink 会扫描主目录下的 git 仓库并在终端显示进度。扫描完成后自动打开 TUI,展示所有已发现的仓库。

后续启动会直接使用缓存数据打开 TUI,同时自动清理磁盘上已不存在的失效条目。

列表视图快捷键

列表视图下,裸按键不触发任何操作,所有破坏性操作需要 Shift 前缀。j/k 已移除,不再作为导航键。

按键 功能 需要Shift
/ 向上/向下移动
Enter 查看仓库详情
/ 进入搜索
Shift+V 用 VSCode 打开
Shift+U 用 Cursor 打开
Shift+A 用 Antigravity 打开
Shift+O 用系统默认方式打开(Finder)
Shift+P 复制仓库路径到剪贴板
Shift+R 重新扫描文件系统
Ctrl+C ×2 退出程序(2 秒内按两次,超时需重新双击)

详情面板

Enter 进入详情面板,显示名称、别名、路径、描述、Git 地址、标签等 10 行。/ 切换选中行(高亮背景 #264f78),按 Enter 执行当前行操作:Name/Path 行复制内容并在状态栏提示,Git 行将 SSH 协议地址转换为 HTTPS 地址并在浏览器打开,Alias/Description/Tags 行进入编辑态,Open with Antigravity/Cursor/VSCode/Finder 行执行打开。编辑态下 / 被屏蔽,Enter 保存,Esc/Ctrl+C 取消,支持中文等非 ASCII 输入,编辑时显示光标并支持输入法候选窗口正确定位。详情面板无 footer 快捷键栏。按 Ctrl+CEsc 返回列表。

搜索

默认状态下搜索区域完全隐藏。按 / 展开带亮色边框的搜索输入框,输入内容即可实时过滤仓库。搜索范围涵盖名称、别名、描述、路径、远程 URL 和标签,大小写不敏感。

  • Enter 隐藏输入框,保留过滤结果(顶部显示当前关键词)
  • EscCtrl+C 清空搜索,恢复全部仓库
  • 过滤状态下再按 / 恢复输入框,可继续编辑搜索词
  • 搜索输入态下,所有其他快捷键被屏蔽

退出程序

  • q 无任何效果
  • Esc 仅用于取消操作(退出搜索、返回列表),不会退出程序
  • 连续按两次 Ctrl+C(2 秒窗口)退出程序。第一次会在状态栏显示提示,提示显示后 2 秒内再按一次才能退出,超时则需重新双击

配置

首次运行时,Blink 会在 ~/.blink/config.json 创建默认配置:

{
  "scan_paths": ["~"],
  "exclude_dirs": [".Trash", ".cache", ".npm", ".docker", ".vscode", "Library", "Applications", "node_modules", "__pycache__"],
  "editor": "code",
  "auto_sync_days": 0
}
字段 说明
scan_paths 扫描 git 仓库的根目录列表
exclude_dirs 扫描时跳过的目录名
editor 默认编辑器命令
auto_sync_days 自动重新扫描间隔天数(0 为禁用)

所有数据存储在 ~/.blink/ 目录下:

  • config.json — 用户配置
  • blink.db — SQLite 数据库,存储仓库和远程信息

开发

环境要求

初始化

git clone <repo-url> blink && cd blink
uv sync

运行

uv run blink          # 启动 TUI
uv run blink --rescan # 强制重新扫描

测试

uv run pytest

调试

在源码任意位置插入 breakpoint(),然后执行 uv run blink,程序会在断点处暂停并进入 pdb 交互调试。

发布

uv build    # 构建分发包
uv publish  # 发布到 PyPI

许可证

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

blink_repo-0.2.0-py3-none-any.whl (21.3 kB view details)

Uploaded Python 3

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page