plock
plock 是一款轻量级开源工具,旨在让你在任何可以输入文字的地方,直接调用大语言模型(LLM)或其他脚本并实时流式输出结果。它完美解决了在不同应用间频繁切换以使用 AI 助手的痛点,无需复制粘贴,只需选中文字或编写提示词,通过快捷键即可原地获得智能回复。
无论是开发者需要快速解释代码、研究人员整理文献,还是普通用户希望润色邮件、总结内容,plock 都能无缝融入你的工作流。其核心亮点在于高度的灵活性与隐私保护:默认配置下完全本地运行(如配合 Ollama),确保数据不出设备;同时支持通过配置文件自定义调用任意 Shell 脚本或远程 API。此外,plock 还具备独特的“剪贴板上下文”功能,可将已复制的内容作为背景知识辅助生成回答,且所有输出均以打字机效果实时呈现,交互体验流畅自然。作为一个跨平台项目,它在 macOS 上表现成熟,并正积极拓展对 Linux 和 Windows 的支持,是追求高效与隐私用户的理想选择。
使用场景
一位后端开发者正在 VS Code 中审查一段复杂的遗留代码,需要快速理解其逻辑并生成优化建议,同时希望保持当前的编辑上下文不中断。
没有 plock 时
- 频繁切换窗口:必须手动复制代码,切换到浏览器或独立的 AI 客户端,粘贴后再切回编辑器,打断心流。
- 等待响应焦虑:发送请求后只能盯着加载图标干等,无法在生成的第一时间开始阅读或调整思路。
- 上下文割裂:如果需要结合剪贴板中的错误日志进行分析,需反复在多个输入框之间搬运文本,操作繁琐且易出错。
- 隐私与配置顾虑:担心将敏感业务代码上传至云端 API,且难以在本地轻量级模型和云端大模型间灵活切换。
使用 plock 后
- 原地即时交互:直接在代码中选中文本,按下
Cmd+Shift+.,AI 的回答以流式输出直接替换选中内容,无需离开当前文件。 - 实时流式反馈:答案逐字呈现,开发者在生成过程中即可同步阅读和理解,大幅缩短等待感知时间。
- 智能剪贴板联动:先复制报错日志,再选中代码并按下
Cmd+Shift+/,plock 自动将剪贴板内容作为背景知识进行关联分析。 - 纯本地可控运行:默认调用本地 Ollama 模型处理敏感代码,也可通过修改
settings.json无缝切换至远程 API,完全由用户掌控。
plock 通过将 AI 能力无缝嵌入任意输入场景,消除了应用切换的摩擦,让“思考 - 提问 - 获取”的过程像呼吸一样自然流畅。
运行环境要求
- macOS
- Linux
- Windows
未说明 (工具本身为本地运行外壳,GPU 需求取决于用户配置的后端模型,如 Ollama)
未说明

快速开始
Plock
直接从你可以在任何地方输入文本的地方使用 LLM(或任何可以向 stdout 流式输出的内容)。实时显示输出。

编写一个提示,选中它,然后(默认情况下)按下 Cmd+Shift+.。它会以流式方式将你的提示替换为模型的输出。
另外!你也可以先将一些内容复制到剪贴板中,然后再编写或选择你的提示,接着按下默认快捷键 Cmd+Shift+/,这样它就会把剪贴板中的内容作为上下文来回答你的提示。
对于 Linux 系统,请使用 Ctrl 代替 Cmd。
默认完全本地运行。(如果你希望使用 API 或其他方式,可以在 settings.json 中指定任意 Shell 脚本进行调用)
我在 设置 部分展示了一个示例 settings.json 文件。
🚨 寻求贡献 / 帮助! 🚨
我很想让这个项目持续发展下去,但我一个人做不到。
如果你对贡献有任何兴趣,请随时联系我、发起讨论、提交 PR、查看现有问题或下方的路线图等。
有什么功能没有正常工作吗?由于没有遥测或跟踪机制,我根本不知道!请提交一个问题,或者尝试自己修复并提交 PR!有新的功能想法吗?也请提交一个问题!
展示触发器概念及新灵活系统的演示
使用 GPT-3.5 和 GPT-4 的演示
如果你打算将其与远程 API 一起使用,请考虑使用环境变量来存储你的 API 密钥……确保这些变量在你启动程序的任何地方都存在,或者直接将它们嵌入代码中(但切勿将包含密钥的代码推送到任何公共仓库)。
(原始)使用 Ollama 的演示
(在视频中提到了 rem,这是我正在开发的另一个项目)
开始使用
安装 ollama,并确保运行 ollama pull openhermes2.5-mistral,或者在设置中将其替换为其他模型。
启动 “plock”。
快捷键:
Ctrl / Cmd + Shift + .:将选中的文本替换为模型的输出。
Ctrl / Cmd + Shift + /:将剪贴板中的内容作为“上下文”输入,并将选中的文本替换为模型的输出。
(这两个快捷键可以在 settings.json 中自定义)
Escape:停止任何流式输出。
Mac 系统会请求键盘辅助功能的访问权限。
Linux(尚未测试),可能需要 X11 库来处理剪贴板操作和使用 enigo 模拟按键。相关说明
此外,系统托盘图标还需要一些额外配置。
Windows(尚未测试),你需要将 Ollama 替换为其他工具,因为目前 Ollama 尚不支持 Windows。
[设置]
有一个 settings.json 文件,你可以编辑它来更改快捷键、使用的模型、提示语、是否启用 Shell 脚本及其具体内容等设置。
更新后,点击托盘图标并选择“加载设置”,或者重启应用程序。
你随时可以点击托盘图标,它会显示设置文件的位置。仅供参考:
在 Mac 上,路径是 ~/Library/Application Support/today.jason.plock/settings.json。
在 Linux 上,我认为路径是 ~/$XDG_DATA_HOME/today.jason.plock/settings.json。
在 Windows 上,我认为路径是 ~\AppData\Local\today.jason.plock\settings.json。
不过,最方便的方式还是直接点击图标。
如果以上信息有误,请指正。
使用设置
请查看快捷键。可以通过快捷键触发一个“触发器”,它会指向在“processes”和“prompts”字段中定义的列表中的某个进程(以0为索引)和提示(同样以0为索引)。
进程可以是“ollama”或命令(在Mac上为shell)。你可以用它来调用你的脚本。
提示可以使用两个内置变量$CLIPBOARD和$SELECTION,也可以使用你通过set_env_var触发器定义的其他变量。
next_steps定义了对输出的处理方式,可以是将输出显示在屏幕上(流式或一次性全部显示)、保存到变量中,以及/或者启动另一个触发器。
未来我希望能让触发更加灵活(如cron、推送),并能轻松地将各种操作串联起来,同时支持将输出发送到任何地方或以任何方式呈现。
非常欢迎大家提出反馈意见。
展示示例
{
"environment": {
"PERPLEXITY_API": "",
"OLLAMA_MODEL": "openhermes2.5-mistral",
"OPENAI_API": ""
},
"processes": [
{
"name": "使用GPT",
"command": [
"bash",
"/Users/jason/workspace/plock/scripts/gpt.sh"
]
},
{
"name": "直接将文本作为脚本执行",
"command": []
},
{
"name": "使用Perplexity",
"command": [
"bash",
"/Users/jason/workspace/plock/scripts/p.sh"
]
},
{
"name": "使用Dall-E",
"command": [
"bash",
"/Users/jason/workspace/plock/scripts/dalle.sh"
]
},
"ollama"
],
"prompts": [
{
"name": "默认基础",
"prompt": "$SELECTION"
},
{
"name": "带上下文的默认",
"prompt": "我会请你做一件事。下面是帮助你完成我要求的一些额外背景信息。--------- $CLIPBOARD --------- 基于以上背景,请你:$SELECTION。请不要输出任何其他内容。"
},
{
"name": "步骤",
"prompt": "$STEP"
},
{
"name": "说GPT",
"prompt": "说\"$GPT\""
}
],
"triggers": [
{
"trigger_with_shortcut": "Command+Shift+,",
"process": 1,
"prompt": 0,
"next_steps": [
{
"store_as_env_var": "STEP"
},
{
"trigger": 4
}
],
"selection_action": null
},
{
"trigger_with_shortcut": "Command+Shift+.",
"process": 0,
"prompt": 0,
"next_steps": [
"stream_text_to_screen"
],
"selection_action": "newline"
},
{
"trigger_with_shortcut": "Command+Shift+/",
"process": 1,
"prompt": 0,
"next_steps": [
"write_final_text_to_screen"
],
"selection_action": "newline"
},
{
"trigger_with_shortcut": "Command+Shift+'",
"process": 3,
"prompt": 0,
"next_steps": [
"write_image_to_screen"
],
"selection_action": null
},
{
"trigger_with_shortcut": null,
"process": 0,
"prompt": 2,
"next_steps": [
"stream_text_to_screen",
{
"store_as_env_var": "GPT"
},
{
"trigger": 5
}
],
"selection_action": null
},
{
"trigger_with_shortcut": null,
"process": 0,
"prompt": 3,
"next_steps": [],
"selection_action": null
}
]
}
构建Plock
如果你不想盲目信任二进制文件(其实你不应该这么做),这里是如何自己构建它的方法!
先决条件
- Node.js(v14或更高版本)
- Rust(v1.41或更高版本)
- NPM(最新版本)
安装步骤
Node.js
从以下网址下载:https://nodejs.org/
Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
Bun NPM
什么?为什么? —— 好吧,据我所知,Windows在GitHub Actions中并不支持bun。所以,我改用了npm。
项目设置
git clone <repo_url>
cd path/to/project
npm install
npm run tauri dev
构建
npm run tauri build
灵感来源 / 另一个优秀项目
另一个演示
另一个演示展示了我如何使用Perplexity的Shell脚本快速生成答案。 与该项目无关,只是当时在回复一个帖子而已,哈哈。
https://github.com/jasonjmcghee/plock/assets/1522149/6166af73-545f-4a8e-ad46-ea8aacd84969
秘密
好奇的朋友可能想知道“ocr”功能是什么。我尝试过截屏、运行OCR,并将结果用作上下文,而不是手动复制文本。简而言之,rusty-tesseract真的让我很失望,这有点尴尬,因为它可是xrem的核心部分。
如果有人愿意解决这个问题……那将会非常酷,尤其是在结合多模态模型时。
版本历史
v0.1.32024/02/03v0.1.22024/01/25v0.1.12024/01/23v0.1.02024/01/21常见问题
相似工具推荐
openclaw
OpenClaw 是一款专为个人打造的本地化 AI 助手,旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚,能够直接接入你日常使用的各类通讯渠道,包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息,OpenClaw 都能即时响应,甚至支持在 macOS、iOS 和 Android 设备上进行语音交互,并提供实时的画布渲染功能供你操控。 这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地,用户无需依赖云端服务即可享受快速、私密的智能辅助,真正实现了“你的数据,你做主”。其独特的技术亮点在于强大的网关架构,将控制平面与核心助手分离,确保跨平台通信的流畅性与扩展性。 OpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者,以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力(支持 macOS、Linux 及 Windows WSL2),即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
gemini-cli
gemini-cli 是一款由谷歌推出的开源 AI 命令行工具,它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言,它提供了一条从输入提示词到获取模型响应的最短路径,无需切换窗口即可享受智能辅助。 这款工具主要解决了开发过程中频繁上下文切换的痛点,让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用,还是执行复杂的 Git 操作,gemini-cli 都能通过自然语言指令高效处理。 它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口,具备出色的逻辑推理能力;内置 Google 搜索、文件操作及 Shell 命令执行等实用工具;更独特的是,它支持 MCP(模型上下文协议),允许用户灵活扩展自定义集成,连接如图像生成等外部能力。此外,个人谷歌账号即可享受免费的额度支持,且项目基于 Apache 2.0 协议完全开源,是提升终端工作效率的理想助手。
markitdown
MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具,专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片(含 OCR)、音频(含语音转录)、HTML 乃至 YouTube 链接等多种格式的解析,能够精准提取文档中的标题、列表、表格和链接等关键结构信息。 在人工智能应用日益普及的今天,大语言模型(LLM)虽擅长处理文本,却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点,它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式,成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外,它还提供了 MCP(模型上下文协议)服务器,可无缝集成到 Claude Desktop 等 LLM 应用中。 这款工具特别适合开发者、数据科学家及 AI 研究人员使用,尤其是那些需要构建文档检索增强生成(RAG)系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性,但其核心优势在于为机器