
Khoj Mini 桌面快捷聊天用 Ctrl Shift K 唤起全局轻量 AI 问答【免费下载链接】khojYour AI second brain. Self-hostable. Get answers from the web or your docs. Build custom agents, schedule automations, do deep research. Turn any online or local LLM into your personal, autonomous AI (gpt, claude, gemini, llama, qwen, mistral). Get started - free.项目地址: https://gitcode.com/GitHub_Trending/kh/khojKhoj Mini 是 Khoj 桌面客户端内置的即用即走快速问答模块用户在任何应用中复制一段文本按下全局快捷键即可弹出一个置顶的迷你聊天窗口剪贴板内容被自动注入提问框回车即可获得基于个人文档与知识库的 AI 回答。本指南面向开发者与深度用户将完整讲解其触发快捷键、自托管配置、交互细节并结合桌面客户端源码Electron 主进程与渲染进程解析其从按键到获得流式回答的完整链路帮助你掌握这套不切换窗口即可查询工作流的原理与最佳实践。一、Khoj Mini 是什么不打断心流的轻量问答入口Khoj 的理念是让 AI 成为随叫随到的第二大脑。桌面端常规的问答方式需要打开主窗口、在标签页之间切换这在专注编码、写作或调研时会造成明显的心流中断。Khoj Mini在官方文档中亦称 Desktop Quick Chat解决的正是这一问题它是一个全局快捷键唤起的迷你聊天模块本质是桌面应用中的一个独立、无边框、置顶的小窗口它自动读取系统剪贴板把你复制的内容作为问题注入输入框你可以在发送前自由编辑问题文本再按回车获得回答回答基于你在桌面应用设置中同步给 Khoj 的本地文件与文件夹上下文同样也支持联网问答而非普通翻译/润色式聊天。从使用场景上看它尤其适合正在做一个任务、不想离开当前窗口只想快速确认一个事实或概念的场合——例如在看代码时选中一段日志、在写作时复制一段引文随手唤起 Khoj 追问其含义或总结。二、前置条件安装桌面应用并完成同步配置2.1 安装与服务器地址配置Khoj Mini 是桌面应用的一部分使用前需要先安装 Khoj Desktop 应用并完成连接配置完整安装步骤见 桌面客户端文档。桌面应用是基于 Electron 实现的客户端入口与依赖见 src/interface/desktop/package.json主进程入口为main.js其功能包括同步本地文件/文件夹到 Khoj、配置服务器、提供系统托盘菜单与全局快捷键。针对自托管服务器用户需要按 desktop.md 中的说明修改桌面应用Settings页面的连接参数字段说明取值建议Khoj URL服务器地址Khoj 后端服务地址代码中以hostURL持久化默认云端为https://app.khoj.dev见 main.js 中的KHOJ_URL常量自托管默认填http://127.0.0.1:42110Khoj API Key访问令牌随请求以Authorization: Bearer token头发送从 Web 应用Settings → Clients生成若服务器以匿名模式运行如khoj --anonymous-mode此字段可留空注意代码在保存hostURL时会自动去除末尾的/并为缺失协议的地址补上http://前缀见 main.js 的setURL函数因此填写127.0.0.1:42110或http://127.0.0.1:42110均可。2.2 推荐先同步知识库以获得上下文Mini 聊天与主应用共用同一个知识库。桌面应用的Settings页允许添加需要被 Khoj 感知的文件和文件夹并点击Save保存主进程会递归扫描目录、跳过隐藏文件仅收集扩展名受支持的文件支持org、md、txt、pdf、png、jpg等文本与图片类型扩展名清单见 main.js 中的validFileTypes随后增量上传到服务器/api/content?clientdesktop完成索引。是否同步文件不影响 Mini 弹窗本身是否可用但问题是否具备个人知识库上下文、能否引用你文档中的具体来源取决于这些内容是否已同步并建立索引。若你只是做通用问答/联网搜索可跳过本节。三、核心用法复制 → 快捷键 → 回车三步完成一次问答官方文档khoj_mini.md描述的完整操作流如下复制你想要注入提问的文本一段报错、一句引文、一段网页内容均可按下全局快捷键呼出 Mini 聊天窗口操作系统快捷键Windows / LinuxCtrl Shift KmacOSCmd Shift K剪贴板中的文本会自动粘贴进迷你模块的输入框此时可以直接按回车获取回答也可以先编辑/润色提问内容或点击Edit进入编辑态再发送。值得强调的是两点设计意图零切换提问弹窗置顶出现后回答直接在浮层内流式渲染用完按Esc即可关闭无需在窗口/标签页间来回切换剪贴板优先可编辑兜底自动注入的是草稿而非已发送给了用户一次调整问题措辞的机会避免复制内容与真实意图不符时浪费一次问答。官方定位是把它作为开发、写作场景下快速查一下、不丢专注力的高频入口正在做项目时不必跳出当前应用即可查询资料。四、从源码理解交互细节快捷键、剪贴板与窗口生命周期Mini 聊天窗口的完整行为都能在桌面客户端源码中找到对应实现核心逻辑集中在主进程 src/interface/desktop/main.js 与迷你页面 src/interface/desktop/shortcut.html。4.1 全局快捷键的注册与防重入主进程使用 Electron 的globalShortcutAPI 注册快捷键键名写为跨平台语义的CommandOrControlShiftK见 main.js 中的常量openShortcutWindowKeyBindElectron 会依据运行平台自动映射为 Windows/Linux 的Ctrl或 macOS 的Commandconst openShortcutWindowKeyBind CommandOrControlShiftK globalShortcut.register(openShortcutWindowKeyBind, () { /* 弹窗逻辑 */ })值得注意的是快捷键是全局系统级注册的即使 Khoj 窗口没有焦点、你在任意第三方应用里按键也能生效。触发时主进程还会做一次防重入检查isShortcutWindowOpen()遍历已打开窗口、匹配shortcut.html若 Mini 窗口已打开重复按键不会叠加弹出第二个窗口。4.2 迷你窗口特征每次触发都会调用createShortcutWindow见 main.js新建窗口其特征从源码中可以明确看到尺寸固定为400 × 600无边框frame: false、不可缩放设置setAlwaysOnTop(true, screen-saver, 1)置顶且 macOS 上带popover毛玻璃效果、整体 95% 透明度视觉上是浮层而非普通窗口页面顶部标题栏明确提示Khoj (Esc to Quit)配套注册了全局Escape键按下Esc关闭迷你窗口并注销该临时快捷键。4.3 剪贴板文本如何自动粘贴剪贴板注入链路横跨主进程、preload 桥与渲染页面三层主进程在快捷键回调中调用clipboard.readText()读取当前剪贴板内容见 main.js待窗口dom-ready后通过shortcutWin.webContents.send(clip, clipboardText)把文本推送给渲染进程preload 脚本 preload.js 通过contextBridge暴露window.clipboardAPI.sendClipboardText(callback)渲染端监听clip事件并回调shortcut.html 收到回调后将文本写入textarea idstyled-input输入框。整个过程发生在按键瞬间因此务必先复制目标文本、再按快捷键如果键按得太早注入的是上一次的剪贴板内容。五、一次问答的完整调用链从回车到流式回答Mini 窗口的问答逻辑直接编写在 shortcut.html 的chat()函数中并与 chatutils.js、utils.js 配合完成渲染整条链路可分四步理解5.1 令牌与服务器地址注入渲染端通过 preload 暴露的hostURLAPI.getURL()、tokenAPI.getToken()读取设置页保存的服务器地址与 API Key持久化在 electron-store 中构造带Authorization: Bearer khojToken的请求头。5.2 会话的惰性创建与续聊如果当前页面尚未建立会话通过聊天区的data-conversation-id属性判断会先向${hostURL}/api/chat/sessions发送POST创建会话并拿到conversation_id再把它写回页面dataset。这样一来在同一个迷你窗口里连续提问会自动延续上下文形成多轮对话。服务端对应实现位于 src/khoj/routers/api_chat.py其中定义了GET/POST /sessions的会话查询与创建接口。5.3 提交问题并流式接收回答随后向${hostURL}/api/chat?clientdesktop发起POST请求体会携带q编辑后的提问内容conversation_id上一步取得的会话标识stream: true开启流式输出实现逐字渲染若干地理/时区字段页面加载时会异步请求 ipapi 获取city/region/country/country_code/timezone存在时才附带进请求体可作为联网问答/地域相关查询的辅助信号。响应通过readChatStream(response)增量读取并按流式渲染到聊天区输出先经 shortcut.html 引入的markdown-it解析 Markdown、再由 DOMPurifypurify.min.js净化后插入 DOM保证富文本渲染的同时避免 XSS。发送期间输入框会被置为只读等待区显示跳动的小圆点动画提示思考中。5.4 与完整客户端的衔接若在迷你窗口内觉得回答值得展开、需要回到完整界面渲染端可经routeBackToMainWindowAPI.sendSignal()见 preload.js触发continue-conversation-button-clicked事件主进程会打开/切换到完整主窗口、关闭迷你窗口实现从快速问答到完整会话的无缝升级见 main.js。六、使用建议与注意事项结合文档与实现细节可总结出如下实用经验先复制、后按键剪贴板注入发生在按键瞬间顺序颠倒会注入错误内容发送前利用编辑能力注入的文本默认可编辑也可点Edit解锁把一大段原文裁剪成精准提问往往能显著提升回答质量与引用命中率同一个窗口内多轮追问迷你窗口会话是持久的可在浮层内连续追问无需重复复制Esc即退无边框置顶浮层用完即走再次按快捷键即可重新唤出查询你的文档需要先同步想让回答落到个人知识库并给出引用请先在桌面应用设置页把相关文件/文件夹同步给 Khoj配置见 desktop.md自托管适配服务器地址与令牌都在设置页配置匿名模式服务器可留空 API Key自托管时 Mini 弹窗请求仍走/api/chat等标准路由因此 Khoj 后端的全部问答能力引用、联网、自动化上下文在迷你窗口中保持一致。七、相关文档与源码索引进一步阅读与验证材料均位于当前仓库功能文档原文documentation/docs/features/khoj_mini.md桌面客户端安装、同步与自托管配置documentation/docs/clients/desktop.md桌面应用主进程快捷键注册、剪贴板读取、迷你窗口生命周期src/interface/desktop/main.js迷你聊天窗口页面与问答逻辑chat()函数src/interface/desktop/shortcut.html渲染进程 IPC 桥接clipboardAPI、tokenAPI等src/interface/desktop/preload.js回答流式渲染与聊天辅助逻辑src/interface/desktop/chatutils.js服务端会话与聊天接口src/khoj/routers/api_chat.py【免费下载链接】khojYour AI second brain. Self-hostable. Get answers from the web or your docs. Build custom agents, schedule automations, do deep research. Turn any online or local LLM into your personal, autonomous AI (gpt, claude, gemini, llama, qwen, mistral). Get started - free.项目地址: https://gitcode.com/GitHub_Trending/kh/khoj创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考