极简原生的伴生 AI 划词透视与阅读伴侣
An ambient, featherweight AI reading companion built with Rust & Tauri 2.0.
| 平台 (Platform) | 支持级别 (Tier) | 功能完备度说明 |
|---|---|---|
| Windows 10 / 11 | 🟢 主力生产 (Tier 1) | 完整原生支持:Win32 零冲突剪贴板序列号感知 (GetClipboardSequenceNumber)、底层全局热键独立线程消息循环 (RegisterHotKey)、前台宿主应用感知 (GetForegroundWindow) 与多 DPI 自适应缩放。 |
| macOS | 🟡 实验性预览桩 (Experimental Preview) | 跨平台接口骨架搭建完毕;系统级辅助功能权限、全局热键事件监听与 AppleScript 桥接持续演进中。 |
| Linux (X11 / Wayland) | 🟡 实验性预览桩 (Experimental Preview) | 跨平台接口骨架搭建完毕;依赖 xdotool 采词适配,Wayland portal 全局快捷键机制演进中。 |
- ⚡ 毫秒级伴生卡片 (Ambient HUD Card)
在任意应用(浏览器、PDF 阅读器、IDE、论文文献)中选中文本后,按下全局热键Alt + Q,伴生 HUD 卡片即刻在光标旁轻盈浮现,流式输出深入浅出的概念剖析。 - 🛡️ 无冲突采词引擎 (Sentinel Probe)
采用安全时序探测与系统剪贴板快照自动复原机制。若未选中文本,绝不覆盖用户原有剪贴板,彻底杜绝脏数据串台与旧内容幽灵残留。 - 🔒 零依赖安全排版与 XSS 免疫 (Safe Markdown Pipeline)
严格先行转义所有 HTML 实体,彻底防御任何<script>、<img onerror>、<svg>等 XSS 注入;支持流式代码块、行内代码、粗体排版;内置 3000 字符 Unicode 截断防御与优雅琥珀胶囊提示,绝不撑爆上下文。 - 📸 截屏视觉透视 (Snipping Lens)
快捷键Alt + W一键呼出全屏微光遮罩,1px 高清框选屏幕焦点区域,自动进行多模态视觉理解与多轮追问。 - 💬 连续多轮追问 (Context-Aware Multi-turn)
伴生卡片底部内置轻量级追问通道,支持针对专业名词或系统原理持续展开多轮深入探讨;划选新词条时独立 Session 瞬间重置。 - 🌐 多模型与本地端点自适应 (LLM Agnostic)
原生支持 DeepSeek(包括 DeepSeek-Reasoner 深度思考模型)、OpenAI、Moonshot Kimi、Ollama (本地私有大模型) 及任意 OpenAI 规范兼容端点。内置模型自动探测引擎,一键拉取端点支持的模型清单。 - 💎 空间折光透镜视觉 (Spatial Refractive Lens)
基于深空暗色(#0B0E17)与磨砂微发光质感打造,配合菲涅尔精密线稿图标。卡片边缘无死区微缩放手柄,支持 DPI 自适应与视窗记忆。 - ⚙️ 原生主线程渲染偏好设置 (Preferences Window)
独立的后台设置视窗,支持 API Key 密码保护显隐、延迟探测、置顶开关与视窗尺寸一键重置;生命周期托管于 UI 主循环,零卡死、零白板。
| 快捷键 | 功能说明 |
|---|---|
| Alt + Q | 划词透视:选中文本后一键触发伴生透视与深度解析 |
| Alt + W | 截屏透视:全屏微光遮罩,1px 精准框选与多模态视觉解析 |
| Alt + D | 卡片显隐:在当前光标位置快速呼出或隐藏伴生卡片 |
| Esc | 快速收起:在卡片、截屏或偏好设置视窗中按 Esc 立即隐藏 |
- Node.js (建议 v18+) & pnpm
- Rust (建议最新 stable toolchain)
- Windows: WebView2 Runtime (Windows 10/11 通常已内置)
git clone https://github.com/KuaaMU/glint.git
cd glint
# 安装前端依赖
pnpm installnode --experimental-strip-types src/safe-markdown.test.tspnpm tauri devpnpm tauri build编译产物位于 src-tauri/target/release/glint.exe。
glint/
├── index.html # 伴生卡片主视窗
├── preferences.html # 偏好设置独立视窗
├── snipping.html # 全屏截屏透视视窗
├── src/ # 前端界面 (TypeScript + CSS)
│ ├── main.ts # 伴生卡片 HUD 逻辑与流式渲染 (XSS 防御)
│ ├── safe-markdown.ts # 零依赖安全转义、Markdown 解析与 3000 字截断
│ ├── safe-markdown.test.ts # 单元测试套件 (XSS 防御、边界截断、排版)
│ ├── preferences.ts # 偏好设置交互、模型探测与配置管理
│ ├── snipping.ts # Canvas 交互式选区截屏与多模态调度
│ ├── styles.css # 卡片暗色半透明视觉与流光排版样式
│ └── preferences.css # 偏好设置沉浸暗色面板样式
├── src-tauri/ # Rust 后端内核
│ ├── src/
│ │ ├── main.rs # 应用启动入口
│ │ ├── lib.rs # Tauri 运行时编排、托盘与主事件循环
│ │ ├── capture.rs # Win32 剪贴板安全快照与序列号采词引擎
│ │ ├── llm.rs # OpenAI / DeepSeek 多模态流式请求适配器
│ │ ├── preferences.rs # 配置存取、模型端点探测与连接测速
│ │ ├── config.rs # 本地配置持久化模型
│ │ └── platform/ # 平台原生底层适配模块
│ │ ├── mod.rs # 跨平台分发抽象
│ │ ├── windows.rs # Win32 原生全局热键、前台窗口感知与高 DPI 适配 (Tier 1)
│ │ ├── macos.rs # macOS 原生适配桩 (Experimental)
│ │ └── linux.rs # Linux 原生适配桩 (Experimental)
│ ├── icons/ # 菲涅尔空间折光透镜图标集
│ ├── Cargo.toml # Rust 依赖清单
│ └── tauri.conf.json # Tauri 视窗与应用元数据配置
└── public/ # 静态资源与母版图标
本项目基于 MIT License 开源。欢迎 Star、Fork 与提交 Pull Request!