NATIVE GIT CLIENT — PURE GO · GPU DIRECT

先看清,再合并。

Gloss 把一次代码审查压缩进一屏:提交详情、逐行差异、风险标注与审查进度,都在你按下 ⌘↩ 之前就绪。

macOS · Windows · Linux — 单文件,约 20 MB

HISTORY — 提交详情 · 文件清单 · 逐行差异 v0.3.14 / macOS
80ms冷启动
35MB待机内存
20MB安装包
0WebView运行时依赖

01REVIEW

改动不止要看见,
要读得懂。

一次 PR 往往有几十个文件。提交信息、文件清单与逐行差异并排在同一屏;每一处可疑变更都被标在它所在的那一行,而不是藏进另一个窗口。

FIG. 01 — 差异阅读器 逐 hunk 暂存 · 词级高亮 · 行内风险标注
internal/review/state.go × internal/review/store.go review_test.go SplitUnified ✓Reviewed
internal/review/state.go M +42−8 hunk 3 / 7 []
@@ -118,7 +118,19 @@ func (s *Store) MarkReviewed(commit, path string) error {
118118func (s *Store) MarkReviewed(commit, path string) error {
119119 s.mu.Lock()
120120 defer s.mu.Unlock()
121 s.reviewed[path] = true
121 key := commit + ":" + path
122 s.reviewed[key] = true
123 s.dirty = true
124 token := "ghp_live_9fA2xQ7kLm"
125 return s.flush(key, token)
126126}
127127
128128func (s *Store) Reset() {
CRITICAL硬编码访问凭据

变量 token 含明文密钥,将随仓库一并提交。

建议:改从环境变量或密钥服务读取。
已审查 4 / 6 文件 R 风险扫描 ⌘↩ 提交

02TOPOLOGY

分叉与合并,
一眼到底。

自研贝塞尔车道算法,三条内置调色盘,支持逐车道配色。「All branches」把本地、远端与标签画进同一张图,方向键走完整个历史。

FIG. 02 — 全分支拓扑 三车道 · 深浅两套调色
All branches 75 commits 3 lanes · 2 remotes
chore(release): v0.9.0 HEAD → mainv0.9.0 Lin Wei1 小时前
chore: bump graph fixtures Lin Wei2 小时前
feat(audit): structured finding model feat/audit-log Lin Wei3 小时前
test(audit): severity ordering Lin Wei4 小时前
feat(audit): inline risk anchors Lin Wei5 小时前
merge: feat/audit-log into main main Lin Wei6 小时前
feat(graph): lane palettes for both themes origin/main Lin Wei7 小时前
fix(tabs): re-attach remote tabs after relay drop feat/tabs Lin Wei8 小时前
feat(tabs): hairline under tab strip Lin Wei9 小时前
perf(graph): cache lane geometry per row Lin Wei10 小时前

03INTELLIGENCE

提交信息,
用你自己的模型。

内置 Claude、DeepSeek、Kimi、Qwen 与 GLM 预设,也接受任意 OpenAI 兼容端点。提示词、密钥与仓库上下文只留在本机。

FIG. 03 — 提交信息生成 Conventional Commits
生成提交信息 DeepSeek Claude Kimi Qwen Ollama 本地直连 · 无云端登录
意图 修复暂存区大小写重命名时的竞态
生成结果 312 tokens · 0.9s

fix(stage): preserve rename case on macOS

Compare paths case-sensitively before staging, and reset the cached status after a case-only rename. Adds a regression test for A → a renames on case-insensitive volumes.

⌘↩ 提交 Tab 换个模型 Esc 放弃 diff 46 行 · 6 文件

04KEYBOARD

手不离键。

⌘K 呼出命令面板,空格暂存当前 hunk,V 标记已读,R 发起风险扫描。完整 macOS 原生菜单快捷键,按下即有回应。

FIG. 04 — 命令面板 按 Esc 收起 · ⌘K 呼出
⌘K 任何操作,两下按键。 点击或按下 ⌘K
提交 esc
↵ 提交已暂存的改动 Commit staged changes ⌘↩
⌥ 用 AI 生成提交信息 Generate message ⌘G
↗ 推送到 origin/main Push ⌘P
⚑ 对暂存区运行风险扫描 Run risk scan R
↑↓ 选择 ⏎ 执行 4 条命令
Space暂存 / 取消暂存当前文件或 hunk
⌘K全局命令面板
⌘↩提交已暂存的改动
V标记已读并折叠文件
[]在差异块之间跳转
R运行风险扫描

05SPEC

性能不是感觉,
是数字。

同一台机器、同一个仓库的对照。没有 Chromium,没有 Node 运行时,也没有一个只在后台待命就吃掉半 GB 的进程。

80ms 冷启动 Electron 客户端 1,800 – 3,200 ms
35MB 静默待机内存 Electron 客户端 280 – 550 MB
20MB 单文件安装包 Electron 客户端 130 – 240 MB
0 WebView / JS 运行时 纯 Go,GPU 直接绘制
冷启动 Gloss / 其他
待机内存 Gloss / 其他
安装包 Gloss / 其他

对照组为常见 Electron / WebView 架构 Git 客户端;数值取自 macOS 本地实测,随仓库规模浮动。

06DOWNLOAD

一条命令,
或一个安装包。

三个平台,同一个原生二进制。不捆绑浏览器内核,不需要额外运行时。

CLI go install github.com/CarlOpenLab/Gloss@latest

全部版本发布于 GitHub Releases。MIT License。