[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-jasonjmcghee--plock":3,"tool-jasonjmcghee--plock":61},[4,18,26,36,44,53],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":17},4358,"openclaw","openclaw\u002Fopenclaw","OpenClaw 是一款专为个人打造的本地化 AI 助手，旨在让你在自己的设备上拥有完全可控的智能伙伴。它打破了传统 AI 助手局限于特定网页或应用的束缚，能够直接接入你日常使用的各类通讯渠道，包括微信、WhatsApp、Telegram、Discord、iMessage 等数十种平台。无论你在哪个聊天软件中发送消息，OpenClaw 都能即时响应，甚至支持在 macOS、iOS 和 Android 设备上进行语音交互，并提供实时的画布渲染功能供你操控。\n\n这款工具主要解决了用户对数据隐私、响应速度以及“始终在线”体验的需求。通过将 AI 部署在本地，用户无需依赖云端服务即可享受快速、私密的智能辅助，真正实现了“你的数据，你做主”。其独特的技术亮点在于强大的网关架构，将控制平面与核心助手分离，确保跨平台通信的流畅性与扩展性。\n\nOpenClaw 非常适合希望构建个性化工作流的技术爱好者、开发者，以及注重隐私保护且不愿被单一生态绑定的普通用户。只要具备基础的终端操作能力（支持 macOS、Linux 及 Windows WSL2），即可通过简单的命令行引导完成部署。如果你渴望拥有一个懂你",349277,3,"2026-04-06T06:32:30",[13,14,15,16],"Agent","开发框架","图像","数据工具","ready",{"id":19,"name":20,"github_repo":21,"description_zh":22,"stars":23,"difficulty_score":10,"last_commit_at":24,"category_tags":25,"status":17},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,"2026-04-05T11:01:52",[14,15,13],{"id":27,"name":28,"github_repo":29,"description_zh":30,"stars":31,"difficulty_score":32,"last_commit_at":33,"category_tags":34,"status":17},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",156033,2,"2026-04-14T23:32:00",[14,13,35],"语言模型",{"id":37,"name":38,"github_repo":39,"description_zh":40,"stars":41,"difficulty_score":32,"last_commit_at":42,"category_tags":43,"status":17},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",108322,"2026-04-10T11:39:34",[14,15,13],{"id":45,"name":46,"github_repo":47,"description_zh":48,"stars":49,"difficulty_score":32,"last_commit_at":50,"category_tags":51,"status":17},6121,"gemini-cli","google-gemini\u002Fgemini-cli","gemini-cli 是一款由谷歌推出的开源 AI 命令行工具，它将强大的 Gemini 大模型能力直接集成到用户的终端环境中。对于习惯在命令行工作的开发者而言，它提供了一条从输入提示词到获取模型响应的最短路径，无需切换窗口即可享受智能辅助。\n\n这款工具主要解决了开发过程中频繁上下文切换的痛点，让用户能在熟悉的终端界面内直接完成代码理解、生成、调试以及自动化运维任务。无论是查询大型代码库、根据草图生成应用，还是执行复杂的 Git 操作，gemini-cli 都能通过自然语言指令高效处理。\n\n它特别适合广大软件工程师、DevOps 人员及技术研究人员使用。其核心亮点包括支持高达 100 万 token 的超长上下文窗口，具备出色的逻辑推理能力；内置 Google 搜索、文件操作及 Shell 命令执行等实用工具；更独特的是，它支持 MCP（模型上下文协议），允许用户灵活扩展自定义集成，连接如图像生成等外部能力。此外，个人谷歌账号即可享受免费的额度支持，且项目基于 Apache 2.0 协议完全开源，是提升终端工作效率的理想助手。",100752,"2026-04-10T01:20:03",[52,13,15,14],"插件",{"id":54,"name":55,"github_repo":56,"description_zh":57,"stars":58,"difficulty_score":32,"last_commit_at":59,"category_tags":60,"status":17},4721,"markitdown","microsoft\u002Fmarkitdown","MarkItDown 是一款由微软 AutoGen 团队打造的轻量级 Python 工具，专为将各类文件高效转换为 Markdown 格式而设计。它支持 PDF、Word、Excel、PPT、图片（含 OCR）、音频（含语音转录）、HTML 乃至 YouTube 链接等多种格式的解析，能够精准提取文档中的标题、列表、表格和链接等关键结构信息。\n\n在人工智能应用日益普及的今天，大语言模型（LLM）虽擅长处理文本，却难以直接读取复杂的二进制办公文档。MarkItDown 恰好解决了这一痛点，它将非结构化或半结构化的文件转化为模型“原生理解”且 Token 效率极高的 Markdown 格式，成为连接本地文件与 AI 分析 pipeline 的理想桥梁。此外，它还提供了 MCP（模型上下文协议）服务器，可无缝集成到 Claude Desktop 等 LLM 应用中。\n\n这款工具特别适合开发者、数据科学家及 AI 研究人员使用，尤其是那些需要构建文档检索增强生成（RAG）系统、进行批量文本分析或希望让 AI 助手直接“阅读”本地文件的用户。虽然生成的内容也具备一定可读性，但其核心优势在于为机器",93400,"2026-04-06T19:52:38",[52,14],{"id":62,"github_repo":63,"name":64,"description_en":65,"description_zh":66,"ai_summary_zh":66,"readme_en":67,"readme_zh":68,"quickstart_zh":69,"use_case_zh":70,"hero_image_url":71,"owner_login":72,"owner_name":73,"owner_avatar_url":74,"owner_bio":75,"owner_company":76,"owner_location":77,"owner_email":78,"owner_twitter":79,"owner_website":80,"owner_url":81,"languages":82,"stars":110,"forks":111,"last_commit_at":112,"license":113,"difficulty_score":10,"env_os":114,"env_gpu":115,"env_ram":116,"env_deps":117,"category_tags":124,"github_topics":125,"view_count":32,"oss_zip_url":78,"oss_zip_packed_at":78,"status":17,"created_at":138,"updated_at":139,"faqs":140,"releases":171},7617,"jasonjmcghee\u002Fplock","plock","From anywhere you can type, query and stream the output of any script (e.g. an LLM)","plock 是一款轻量级开源工具，旨在让你在任何可以输入文字的地方，直接调用大语言模型（LLM）或其他脚本并实时流式输出结果。它完美解决了在不同应用间频繁切换以使用 AI 助手的痛点，无需复制粘贴，只需选中文字或编写提示词，通过快捷键即可原地获得智能回复。\n\n无论是开发者需要快速解释代码、研究人员整理文献，还是普通用户希望润色邮件、总结内容，plock 都能无缝融入你的工作流。其核心亮点在于高度的灵活性与隐私保护：默认配置下完全本地运行（如配合 Ollama），确保数据不出设备；同时支持通过配置文件自定义调用任意 Shell 脚本或远程 API。此外，plock 还具备独特的“剪贴板上下文”功能，可将已复制的内容作为背景知识辅助生成回答，且所有输出均以打字机效果实时呈现，交互体验流畅自然。作为一个跨平台项目，它在 macOS 上表现成熟，并正积极拓展对 Linux 和 Windows 的支持，是追求高效与隐私用户的理想选择。","# Plock\n\nUse an LLM (or anything else that can stream to stdout) directly from literally anywhere you can type. Outputs in real\ntime.\n\n![demo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjasonjmcghee_plock_readme_4034ae88d90d.png)\n\nWrite a prompt, select it, and (by default) hit `Cmd+Shift+.`. It will replace your prompt with the output in a\nstreaming fashion.\n\nAlso! You can first put something on your clipboard (as in copy some text) before writing \u002F selecting your prompt, and\nit (by default) `Cmd+Shift+\u002F` and it will use the copied text as context to answer your prompt.\n\nFor Linux, use `Ctrl` instead of `Cmd`.\n\n**100% Local** by default. (If you want to use an API or something, you can call any shell script you want specified\nin `settings.json`)\n\nI show an example `settings.json` in [Settings](#settings)\n\n---\n\n## 🚨 Looking for contributions \u002F help! 🚨\nI would love to keep this project alive and growing, but can't do it alone.\n\nIf you're at all interested in contributing, please feel free to reach out, start a discussion, open a PR, look at issues, look at roadmap below, etc.\n\nSomething not working properly? There's no telemtry or tracking, so I won't know! Please log an issue or take a crack at fixing it yourself and\nsubmitting a PR! Have feature ideas? Log an issue!\n\n---\n\n\n## Demo showing concept of Triggers, and the new flexible system\n\n\u003Ca href=\"https:\u002F\u002Fwww.loom.com\u002Fshare\u002Fd3adddc37c2e4c8daeef11255c0135ea\">\n  \u003Cimg style=\"max-width:300px;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjasonjmcghee_plock_readme_62a20318ff24.gif\">\n\u003C\u002Fa>\n\n## Demo using GPT-3.5 and GPT-4\n\n\u003Ca href=\"https:\u002F\u002Fwww.loom.com\u002Fshare\u002F756220f3f5e249d5b4d5b759e9f9add3\">\n  \u003Cimg style=\"max-width:300px;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjasonjmcghee_plock_readme_d79ba229800c.gif\">\n\u003C\u002Fa>\n\nIf you are going to use this with remote APIs, consider environment variables for your API keys... make sure they exist\nwherever you launch, or directly embed them (just don't push that code anywhere)\n\n## (Original) Demo using Ollama\n\n\u003Ca href=\"https:\u002F\u002Fwww.loom.com\u002Fshare\u002Ffed267e695d145c88e6bff7e631da8e0\">\n  \u003Cimg style=\"max-width:300px;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjasonjmcghee_plock_readme_2ea355887d5c.gif\">\n\u003C\u002Fa>\n\n(in the video I mention [rem](https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Frem), another project I'm working on)\n\n## Getting Started\n\nInstall [ollama](https:\u002F\u002Fgithub.com\u002Fjmorganca\u002Follama) and make sure to run `ollama pull openhermes2.5-mistral` or swap\nit out in settings for something else.\n\nLaunch \"plock\"\n\nShortcuts:\n\n`Ctrl \u002F Cmd + Shift + .`: Replace the selected text with the output of the model.\n\n`Ctrl \u002F Cmd + Shift + \u002F`: Feed whatever is on your clipboard as \"context\" and the replace the selected text with the\noutput of the model.\n\n(these two are customizable in `settings.json`)\n\n`Escape`: Stop any streaming output\n\n**Mac** will request access to keyboard accessibility.\n\n**Linux** (untested), may require X11 libs for clipboard stuff and key simulation using\nenigo. [Helpful instructions](https:\u002F\u002Fgithub.com\u002Fenigo-rs\u002Fenigo\u002Ftree\u002Fmain#runtime-dependencies)\n\nAlso [system tray icons require some extras](https:\u002F\u002Ftauri.app\u002Fv1\u002Fguides\u002Ffeatures\u002Fsystem-tray\u002F#linux-setup)\n\n**Windows** (untested), you'll need to swap out Ollama for something else, as it doesn't support windows yet.\n\n## [Settings]\n\nThere is a `settings.json` file which you can edit to change shortcuts, the model,\nprompts, whether to use shell scripts and what they are, and other settings.\n\nAfter updating, click the tray icon and select \"Load Settings\" or restart it.\n\nAt any time you can click the tray icon and it will list the settings location. For what it's worth:\n\nOn mac, It's at `~\u002FLibrary\u002FApplication Support\u002Ftoday.jason.plock\u002Fsettings.json`.\n\nOn linux, I think it's `~\u002F$XDG_DATA_HOME\u002Ftoday.jason.plock\u002Fsettings.json`.\n\nWindows, I think it's `~\\AppData\\Local\\today.jason.plock\\settings.json`\n\nBut clicking the icon is the best way.\n\nCorrect me if any of these are wrong.\n\n### Using Settings\n\nTake a look at the shortcut keys. A “trigger” can be started with a shortcut. That points to a process (by an 0-index) and a prompt (by a 0-index) to the lists defined in the processes and prompts fields.\n\na process is either “ollama” or a command (shell on mac). You can use that to call your script.\n\nprompts can use one of the two built in variables $CLIPBOARD and $SELECTION, or any others you define using set_env_var trigger.\n\nnext_steps defines what happens to the output, which can be written to the screen (streaming or all at once ), saved to a variable, and\u002For kick off another trigger.\n\nIn the future i want to make it easy to trigger flexibly (cron, push), output wherever \u002F however, easily chain things together.\n\nvery very open to feedback\n\n\u003Cdetails>\n  \u003Csummary>Show Example\u003C\u002Fsummary>\n\n```json\n{\n  \"environment\": {\n    \"PERPLEXITY_API\": \"\",\n    \"OLLAMA_MODEL\": \"openhermes2.5-mistral\",\n    \"OPENAI_API\": \"\"\n  },\n  \"processes\": [\n    {\n      \"name\": \"Use GPT\",\n      \"command\": [\n        \"bash\",\n        \"\u002FUsers\u002Fjason\u002Fworkspace\u002Fplock\u002Fscripts\u002Fgpt.sh\"\n      ]\n    },\n    {\n      \"name\": \"Execute text directly as script\",\n      \"command\": []\n    },\n    {\n      \"name\": \"Use perplexity\",\n      \"command\": [\n        \"bash\",\n        \"\u002FUsers\u002Fjason\u002Fworkspace\u002Fplock\u002Fscripts\u002Fp.sh\"\n      ]\n    },\n    {\n      \"name\": \"Use Dall-E\",\n      \"command\": [\n        \"bash\",\n        \"\u002FUsers\u002Fjason\u002Fworkspace\u002Fplock\u002Fscripts\u002Fdalle.sh\"\n      ]\n    },\n    \"ollama\"\n  ],\n  \"prompts\": [\n    {\n      \"name\": \"default basic\",\n      \"prompt\": \"$SELECTION\"\n    },\n    {\n      \"name\": \"default with context\",\n      \"prompt\": \"I will ask you to do something. Below is some extra context to help do what I ask. --------- $CLIPBOARD --------- Given the above context, please, $SELECTION. DO NOT OUTPUT ANYTHING ELSE.\"\n    },\n    {\n      \"name\": \"step\",\n      \"prompt\": \"$STEP\"\n    },\n    {\n      \"name\": \"say gpt\",\n      \"prompt\": \"say \\\"$GPT\\\"\"\n    }\n  ],\n  \"triggers\": [\n    {\n      \"trigger_with_shortcut\": \"Command+Shift+,\",\n      \"process\": 1,\n      \"prompt\": 0,\n      \"next_steps\": [\n        {\n          \"store_as_env_var\": \"STEP\"\n        },\n        {\n          \"trigger\": 4\n        }\n      ],\n      \"selection_action\": null\n    },\n    {\n      \"trigger_with_shortcut\": \"Command+Shift+.\",\n      \"process\": 0,\n      \"prompt\": 0,\n      \"next_steps\": [\n        \"stream_text_to_screen\"\n      ],\n      \"selection_action\": \"newline\"\n    },\n    {\n      \"trigger_with_shortcut\": \"Command+Shift+\u002F\",\n      \"process\": 1,\n      \"prompt\": 0,\n      \"next_steps\": [\n        \"write_final_text_to_screen\"\n      ],\n      \"selection_action\": \"newline\"\n    },\n    {\n      \"trigger_with_shortcut\": \"Command+Shift+'\",\n      \"process\": 3,\n      \"prompt\": 0,\n      \"next_steps\": [\n        \"write_image_to_screen\"\n      ],\n      \"selection_action\": null\n    },\n    {\n      \"trigger_with_shortcut\": null,\n      \"process\": 0,\n      \"prompt\": 2,\n      \"next_steps\": [\n        \"stream_text_to_screen\",\n        {\n          \"store_as_env_var\": \"GPT\"\n        },\n        {\n          \"trigger\": 5\n        }\n      ],\n      \"selection_action\": null\n    },\n    {\n      \"trigger_with_shortcut\": null,\n      \"process\": 0,\n      \"prompt\": 3,\n      \"next_steps\": [],\n      \"selection_action\": null\n    }\n  ]\n}\n\n```\n\n\u003C\u002Fdetails>\n\n## Building Plock\n\nIf you don't want to blindly trust binaries (you shouldn't), here's how you can build it\nyourself!\n\n## Prerequisites\n\n- Node.js (v14 or later)\n- Rust (v1.41 or later)\n- NPM (latest version)\n\n## Installation Steps\n\n### Node.js\n\nDownload from: https:\u002F\u002Fnodejs.org\u002F\n\n### Rust\n\n```bash\ncurl --proto '=https' --tlsv1.2 -sSf https:\u002F\u002Fsh.rustup.rs | sh\nsource $HOME\u002F.cargo\u002Fenv\n```\n\n### ~~Bun~~ NPM\n\n_Whattt?? Why?_ - well, windows doesn't support `bun` in github actions afaict. So, I'm using npm instead.\n\n[How to Install Node](https:\u002F\u002Fnodejs.org\u002Fen\u002Fdownload\u002Fpackage-manager)\n\n## Project Setup\n\n```bash\ngit clone \u003Crepo_url>\ncd path\u002Fto\u002Fproject\nnpm install\nnpm run tauri dev\n```\n\n## Build\n\n```bash\nnpm run tauri build\n```\n\n## Inspiration \u002F Another Great Project\n\n- [LLM-automator](https:\u002F\u002Fgithub.com\u002Fradames\u002FLLM-automator)\n\n## Another demo\n\nAnother demo where I use the perplexity shell script to generate an answer super fast.\nNot affiliated, was just replying to a thread lol\n\nhttps:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fassets\u002F1522149\u002F6166af73-545f-4a8e-ad46-ea8aacd84969\n\n## Secrets\n\nCurious folks might be wondering what `ocr` feature is. I took a crack at taking a screenshot,\nrunning OCR, and using that for context, instead of copying text manually. Long story short,\nrusty-tesseract _really_ dissapointed me, which is awkward b\u002Fc it's core\nto [xrem](https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fxrem).\n\nIf someone wants to figure this out... this could be really cool, especially with multi-modal models.\n","# Plock\n\n直接从你可以在任何地方输入文本的地方使用 LLM（或任何可以向 stdout 流式输出的内容）。实时显示输出。\n\n![demo](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjasonjmcghee_plock_readme_4034ae88d90d.png)\n\n编写一个提示，选中它，然后（默认情况下）按下 `Cmd+Shift+.`。它会以流式方式将你的提示替换为模型的输出。\n\n另外！你也可以先将一些内容复制到剪贴板中，然后再编写或选择你的提示，接着按下默认快捷键 `Cmd+Shift+\u002F`，这样它就会把剪贴板中的内容作为上下文来回答你的提示。\n\n对于 Linux 系统，请使用 `Ctrl` 代替 `Cmd`。\n\n**默认完全本地运行**。（如果你希望使用 API 或其他方式，可以在 `settings.json` 中指定任意 Shell 脚本进行调用）\n\n我在 [设置](#settings) 部分展示了一个示例 `settings.json` 文件。\n\n---\n\n## 🚨 寻求贡献 \u002F 帮助！ 🚨\n我很想让这个项目持续发展下去，但我一个人做不到。\n\n如果你对贡献有任何兴趣，请随时联系我、发起讨论、提交 PR、查看现有问题或下方的路线图等。\n\n有什么功能没有正常工作吗？由于没有遥测或跟踪机制，我根本不知道！请提交一个问题，或者尝试自己修复并提交 PR！有新的功能想法吗？也请提交一个问题！\n\n---\n\n\n## 展示触发器概念及新灵活系统的演示\n\n\u003Ca href=\"https:\u002F\u002Fwww.loom.com\u002Fshare\u002Fd3adddc37c2e4c8daeef11255c0135ea\">\n  \u003Cimg style=\"max-width:300px;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjasonjmcghee_plock_readme_62a20318ff24.gif\">\n\u003C\u002Fa>\n\n## 使用 GPT-3.5 和 GPT-4 的演示\n\n\u003Ca href=\"https:\u002F\u002Fwww.loom.com\u002Fshare\u002F756220f3f5e249d5b4d5b759e9f9add3\">\n  \u003Cimg style=\"max-width:300px;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjasonjmcghee_plock_readme_d79ba229800c.gif\">\n\u003C\u002Fa>\n\n如果你打算将其与远程 API 一起使用，请考虑使用环境变量来存储你的 API 密钥……确保这些变量在你启动程序的任何地方都存在，或者直接将它们嵌入代码中（但切勿将包含密钥的代码推送到任何公共仓库）。\n\n## （原始）使用 Ollama 的演示\n\n\u003Ca href=\"https:\u002F\u002Fwww.loom.com\u002Fshare\u002Ffed267e695d145c88e6bff7e631da8e0\">\n  \u003Cimg style=\"max-width:300px;\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjasonjmcghee_plock_readme_2ea355887d5c.gif\">\n\u003C\u002Fa>\n\n（在视频中提到了 [rem](https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Frem)，这是我正在开发的另一个项目）\n\n## 开始使用\n\n安装 [ollama](https:\u002F\u002Fgithub.com\u002Fjmorganca\u002Follama)，并确保运行 `ollama pull openhermes2.5-mistral`，或者在设置中将其替换为其他模型。\n\n启动 “plock”。\n\n快捷键：\n\n`Ctrl \u002F Cmd + Shift + .`：将选中的文本替换为模型的输出。\n\n`Ctrl \u002F Cmd + Shift + \u002F`：将剪贴板中的内容作为“上下文”输入，并将选中的文本替换为模型的输出。\n\n（这两个快捷键可以在 `settings.json` 中自定义）\n\n`Escape`：停止任何流式输出。\n\n**Mac** 系统会请求键盘辅助功能的访问权限。\n\n**Linux**（尚未测试），可能需要 X11 库来处理剪贴板操作和使用 enigo 模拟按键。[相关说明](https:\u002F\u002Fgithub.com\u002Fenigo-rs\u002Fenigo\u002Ftree\u002Fmain#runtime-dependencies)\n\n此外，[系统托盘图标还需要一些额外配置](https:\u002F\u002Ftauri.app\u002Fv1\u002Fguides\u002Ffeatures\u002Fsystem-tray\u002F#linux-setup)。\n\n**Windows**（尚未测试），你需要将 Ollama 替换为其他工具，因为目前 Ollama 尚不支持 Windows。\n\n## [设置]\n\n有一个 `settings.json` 文件，你可以编辑它来更改快捷键、使用的模型、提示语、是否启用 Shell 脚本及其具体内容等设置。\n\n更新后，点击托盘图标并选择“加载设置”，或者重启应用程序。\n\n你随时可以点击托盘图标，它会显示设置文件的位置。仅供参考：\n\n在 Mac 上，路径是 `~\u002FLibrary\u002FApplication Support\u002Ftoday.jason.plock\u002Fsettings.json`。\n\n在 Linux 上，我认为路径是 `~\u002F$XDG_DATA_HOME\u002Ftoday.jason.plock\u002Fsettings.json`。\n\n在 Windows 上，我认为路径是 `~\\AppData\\Local\\today.jason.plock\\settings.json`。\n\n不过，最方便的方式还是直接点击图标。\n\n如果以上信息有误，请指正。\n\n### 使用设置\n\n请查看快捷键。可以通过快捷键触发一个“触发器”，它会指向在“processes”和“prompts”字段中定义的列表中的某个进程（以0为索引）和提示（同样以0为索引）。\n\n进程可以是“ollama”或命令（在Mac上为shell）。你可以用它来调用你的脚本。\n\n提示可以使用两个内置变量$CLIPBOARD和$SELECTION，也可以使用你通过set_env_var触发器定义的其他变量。\n\nnext_steps定义了对输出的处理方式，可以是将输出显示在屏幕上（流式或一次性全部显示）、保存到变量中，以及\u002F或者启动另一个触发器。\n\n未来我希望能让触发更加灵活（如cron、推送），并能轻松地将各种操作串联起来，同时支持将输出发送到任何地方或以任何方式呈现。\n\n非常欢迎大家提出反馈意见。\n\n\u003Cdetails>\n  \u003Csummary>展示示例\u003C\u002Fsummary>\n\n```json\n{\n  \"environment\": {\n    \"PERPLEXITY_API\": \"\",\n    \"OLLAMA_MODEL\": \"openhermes2.5-mistral\",\n    \"OPENAI_API\": \"\"\n  },\n  \"processes\": [\n    {\n      \"name\": \"使用GPT\",\n      \"command\": [\n        \"bash\",\n        \"\u002FUsers\u002Fjason\u002Fworkspace\u002Fplock\u002Fscripts\u002Fgpt.sh\"\n      ]\n    },\n    {\n      \"name\": \"直接将文本作为脚本执行\",\n      \"command\": []\n    },\n    {\n      \"name\": \"使用Perplexity\",\n      \"command\": [\n        \"bash\",\n        \"\u002FUsers\u002Fjason\u002Fworkspace\u002Fplock\u002Fscripts\u002Fp.sh\"\n      ]\n    },\n    {\n      \"name\": \"使用Dall-E\",\n      \"command\": [\n        \"bash\",\n        \"\u002FUsers\u002Fjason\u002Fworkspace\u002Fplock\u002Fscripts\u002Fdalle.sh\"\n      ]\n    },\n    \"ollama\"\n  ],\n  \"prompts\": [\n    {\n      \"name\": \"默认基础\",\n      \"prompt\": \"$SELECTION\"\n    },\n    {\n      \"name\": \"带上下文的默认\",\n      \"prompt\": \"我会请你做一件事。下面是帮助你完成我要求的一些额外背景信息。--------- $CLIPBOARD --------- 基于以上背景，请你：$SELECTION。请不要输出任何其他内容。\"\n    },\n    {\n      \"name\": \"步骤\",\n      \"prompt\": \"$STEP\"\n    },\n    {\n      \"name\": \"说GPT\",\n      \"prompt\": \"说\\\"$GPT\\\"\"\n    }\n  ],\n  \"triggers\": [\n    {\n      \"trigger_with_shortcut\": \"Command+Shift+,\",\n      \"process\": 1,\n      \"prompt\": 0,\n      \"next_steps\": [\n        {\n          \"store_as_env_var\": \"STEP\"\n        },\n        {\n          \"trigger\": 4\n        }\n      ],\n      \"selection_action\": null\n    },\n    {\n      \"trigger_with_shortcut\": \"Command+Shift+.\",\n      \"process\": 0,\n      \"prompt\": 0,\n      \"next_steps\": [\n        \"stream_text_to_screen\"\n      ],\n      \"selection_action\": \"newline\"\n    },\n    {\n      \"trigger_with_shortcut\": \"Command+Shift+\u002F\",\n      \"process\": 1,\n      \"prompt\": 0,\n      \"next_steps\": [\n        \"write_final_text_to_screen\"\n      ],\n      \"selection_action\": \"newline\"\n    },\n    {\n      \"trigger_with_shortcut\": \"Command+Shift+'\",\n      \"process\": 3,\n      \"prompt\": 0,\n      \"next_steps\": [\n        \"write_image_to_screen\"\n      ],\n      \"selection_action\": null\n    },\n    {\n      \"trigger_with_shortcut\": null,\n      \"process\": 0,\n      \"prompt\": 2,\n      \"next_steps\": [\n        \"stream_text_to_screen\",\n        {\n          \"store_as_env_var\": \"GPT\"\n        },\n        {\n          \"trigger\": 5\n        }\n      ],\n      \"selection_action\": null\n    },\n    {\n      \"trigger_with_shortcut\": null,\n      \"process\": 0,\n      \"prompt\": 3,\n      \"next_steps\": [],\n      \"selection_action\": null\n    }\n  ]\n}\n\n```\n\n\u003C\u002Fdetails>\n\n## 构建Plock\n\n如果你不想盲目信任二进制文件（其实你不应该这么做），这里是如何自己构建它的方法！\n\n## 先决条件\n\n- Node.js（v14或更高版本）\n- Rust（v1.41或更高版本）\n- NPM（最新版本）\n\n## 安装步骤\n\n### Node.js\n\n从以下网址下载：https:\u002F\u002Fnodejs.org\u002F\n\n### Rust\n\n```bash\ncurl --proto '=https' --tlsv1.2 -sSf https:\u002F\u002Fsh.rustup.rs | sh\nsource $HOME\u002F.cargo\u002Fenv\n```\n\n### ~~Bun~~ NPM\n\n_什么？为什么？_ —— 好吧，据我所知，Windows在GitHub Actions中并不支持`bun`。所以，我改用了npm。\n\n[如何安装Node](https:\u002F\u002Fnodejs.org\u002Fen\u002Fdownload\u002Fpackage-manager)\n\n## 项目设置\n\n```bash\ngit clone \u003Crepo_url>\ncd path\u002Fto\u002Fproject\nnpm install\nnpm run tauri dev\n```\n\n## 构建\n\n```bash\nnpm run tauri build\n```\n\n## 灵感来源 \u002F 另一个优秀项目\n\n- [LLM-automator](https:\u002F\u002Fgithub.com\u002Fradames\u002FLLM-automator)\n\n## 另一个演示\n\n另一个演示展示了我如何使用Perplexity的Shell脚本快速生成答案。\n与该项目无关，只是当时在回复一个帖子而已，哈哈。\n\nhttps:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fassets\u002F1522149\u002F6166af73-545f-4a8e-ad46-ea8aacd84969\n\n## 秘密\n\n好奇的朋友可能想知道“ocr”功能是什么。我尝试过截屏、运行OCR，并将结果用作上下文，而不是手动复制文本。简而言之，rusty-tesseract真的让我很失望，这有点尴尬，因为它可是[xrem](https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fxrem)的核心部分。\n\n如果有人愿意解决这个问题……那将会非常酷，尤其是在结合多模态模型时。","# Plock 快速上手指南\n\nPlock 是一款本地优先的 AI 工具，允许你在任何可输入文本的地方直接调用大语言模型（LLM）。它支持实时流式输出，并能将选中的文本替换为模型生成的回答。默认完全本地运行（配合 Ollama），也支持通过脚本调用远程 API。\n\n## 环境准备\n\n### 系统要求\n- **macOS**: 需要授予“辅助功能”权限以模拟键盘操作。\n- **Linux**: 需安装 X11 相关库（用于剪贴板和按键模拟），系统托盘图标可能需要额外配置。\n- **Windows**: 目前 Ollama 不支持 Windows，若要在 Windows 使用需自行替换为其他后端脚本。\n\n### 前置依赖\n在开始之前，请确保安装以下核心依赖：\n\n1. **Ollama** (推荐默认后端)\n   - 下载地址：[https:\u002F\u002Follama.com](https:\u002F\u002Follama.com)\n   - 拉取默认模型：\n     ```bash\n     ollama pull openhermes2.5-mistral\n     ```\n     *(注：国内用户若下载缓慢，可尝试社区镜像或替换 `settings.json` 中的模型名称)*\n\n2. **构建环境** (仅当你需要从源码编译时)\n   - Node.js (v14+)\n   - Rust (v1.41+)\n   - NPM (最新版)\n\n## 安装步骤\n\n### 方式一：直接使用预编译版本（推荐）\n1. 前往 [Plock GitHub Releases](https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Freleases) 下载对应系统的安装包。\n2. 安装并运行 `plock`。\n3. **macOS 用户**：首次运行时需在“系统设置” -> “隐私与安全性” -> “辅助功能”中勾选 Plock。\n\n### 方式二：从源码构建\n如果你不希望直接使用二进制文件，可按以下步骤自行构建：\n\n```bash\n# 1. 克隆项目\ngit clone https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock.git\ncd plock\n\n# 2. 安装依赖\nnpm install\n\n# 3. 开发模式运行 (测试用)\nnpm run tauri dev\n\n# 4. 正式构建\nnpm run tauri build\n```\n*构建完成后，可执行文件位于 `src-tauri\u002Ftarget\u002Frelease\u002F` 目录下。*\n\n## 基本使用\n\n启动 Plock 后，它将在后台运行（可在系统托盘找到图标）。\n\n### 1. 基础对话（替换选中文字）\n这是最常用的功能，用于让 AI 改写、解释或续写选中的文本。\n\n1. 在任何编辑器或输入框中**选中一段文本**（作为提示词）。\n2. 按下快捷键：\n   - **macOS**: `Cmd + Shift + .`\n   - **Linux\u002FWindows**: `Ctrl + Shift + .`\n3. 选中的文本将被实时替换为 AI 的流式输出结果。\n4. 若要中途停止生成，按 `Escape` 键。\n\n### 2. 结合剪贴板上下文\n如果你希望 AI 参考已复制的内容来回答当前选中的问题：\n\n1. 先**复制**一段背景资料到剪贴板。\n2. 在输入框中**选中**你的具体问题或指令。\n3. 按下快捷键：\n   - **macOS**: `Cmd + Shift + \u002F`\n   - **Linux\u002FWindows**: `Ctrl + Shift + \u002F`\n4. AI 将结合剪贴板内容（Context）和选中文本（Prompt）生成回答并替换原文。\n\n### 3. 自定义配置\n所有快捷键、模型选择和提示词逻辑均通过 `settings.json` 配置。\n\n- **配置文件位置**：\n  - macOS: `~\u002FLibrary\u002FApplication Support\u002Ftoday.jason.plock\u002Fsettings.json`\n  - Linux: `~\u002F$XDG_DATA_HOME\u002Ftoday.jason.plock\u002Fsettings.json`\n  - Windows: `~\\AppData\\Local\\today.jason.plock\\settings.json`\n  - *快捷查看*：点击系统托盘图标即可查看具体路径。\n\n- **应用更改**：修改文件后，点击托盘图标选择 \"Load Settings\" 或重启软件。\n\n> **提示**：你可以通过编辑 `settings.json` 中的 `processes` 字段，将默认的 `ollama` 替换为调用 GPT-4、Perplexity 或其他本地脚本的命令，实现高度定制化。","一位后端开发者正在 VS Code 中审查一段复杂的遗留代码，需要快速理解其逻辑并生成优化建议，同时希望保持当前的编辑上下文不中断。\n\n### 没有 plock 时\n- **频繁切换窗口**：必须手动复制代码，切换到浏览器或独立的 AI 客户端，粘贴后再切回编辑器，打断心流。\n- **等待响应焦虑**：发送请求后只能盯着加载图标干等，无法在生成的第一时间开始阅读或调整思路。\n- **上下文割裂**：如果需要结合剪贴板中的错误日志进行分析，需反复在多个输入框之间搬运文本，操作繁琐且易出错。\n- **隐私与配置顾虑**：担心将敏感业务代码上传至云端 API，且难以在本地轻量级模型和云端大模型间灵活切换。\n\n### 使用 plock 后\n- **原地即时交互**：直接在代码中选中文本，按下 `Cmd+Shift+.`，AI 的回答以流式输出直接替换选中内容，无需离开当前文件。\n- **实时流式反馈**：答案逐字呈现，开发者在生成过程中即可同步阅读和理解，大幅缩短等待感知时间。\n- **智能剪贴板联动**：先复制报错日志，再选中代码并按下 `Cmd+Shift+\u002F`，plock 自动将剪贴板内容作为背景知识进行关联分析。\n- **纯本地可控运行**：默认调用本地 Ollama 模型处理敏感代码，也可通过修改 `settings.json` 无缝切换至远程 API，完全由用户掌控。\n\nplock 通过将 AI 能力无缝嵌入任意输入场景，消除了应用切换的摩擦，让“思考 - 提问 - 获取”的过程像呼吸一样自然流畅。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fjasonjmcghee_plock_4034ae88.gif","jasonjmcghee","Jason McGhee","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fjasonjmcghee_77f7d94b.jpg","CTO @ Writ.\r\nPast: Principal Machine Learning Engineer @ DataRobot, Co-founder \u002F Engineer @ Cursor, Sr. Software Engineer @ Pandora","Writ","San Francisco",null,"_jason_today","https:\u002F\u002Fjason.today","https:\u002F\u002Fgithub.com\u002Fjasonjmcghee",[83,87,91,95,99,102,106],{"name":84,"color":85,"percentage":86},"Rust","#dea584",82.7,{"name":88,"color":89,"percentage":90},"Shell","#89e051",5.7,{"name":92,"color":93,"percentage":94},"CSS","#663399",4.4,{"name":96,"color":97,"percentage":98},"Svelte","#ff3e00",3.6,{"name":100,"color":101,"percentage":32},"TypeScript","#3178c6",{"name":103,"color":104,"percentage":105},"HTML","#e34c26",0.9,{"name":107,"color":108,"percentage":109},"JavaScript","#f1e05a",0.6,504,31,"2026-03-23T12:18:56","MIT","macOS, Linux, Windows","未说明 (工具本身为本地运行外壳，GPU 需求取决于用户配置的后端模型，如 Ollama)","未说明",{"notes":118,"python":116,"dependencies":119},"该工具是一个本地运行的系统级应用，默认使用 Ollama 作为后端（需单独安装并拉取模型，如 openhermes2.5-mistral）。macOS 需要授予键盘辅助功能权限；Linux 可能需要 X11 库以支持剪贴板和按键模拟，且系统托盘图标需要额外配置；Windows 目前尚未测试，且默认配置的 Ollama 不支持 Windows，需更换为其他后端脚本。构建项目需要 Node.js 和 Rust 环境。",[120,121,122,123],"Node.js (v14+)","Rust (v1.41+)","NPM (最新版)","Ollama (默认推荐)",[35,13,14],[126,127,128,129,130,131,132,133,134,135,136,137],"cross-platform","llm","local","ollama","gpt","context","streaming","tool","utility","bash","command","shell","2026-03-27T02:49:30.150509","2026-04-15T08:10:23.714907",[141,146,151,156,161,166],{"id":142,"question_zh":143,"answer_zh":144,"source_url":145},34114,"应用崩溃或无响应时，在哪里查看错误日志？","可以通过终端直接运行二进制文件来查看实时日志输出。在 macOS 上，操作步骤如下：\n1. 打开终端。\n2. 进入应用可执行文件目录：`cd \u002FApplications\u002Fplock.app\u002FContents\u002FMacOS`\n3. 运行程序：`.\u002Fplock`\n这样可以在终端中看到 stdout\u002Fstderr 输出。此外，也可以尝试通过 macOS 的“控制台” (Console) 应用查看系统日志。","https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fissues\u002F8",{"id":147,"question_zh":148,"answer_zh":149,"source_url":150},34115,"在 macOS 上快捷键无效或应用无法输入文本怎么办？","这通常是因为缺少必要的系统权限。请检查以下两项设置：\n1. **输入监控 (Input Monitoring)**：确保已在系统设置中启用。\n2. **辅助功能 (Accessibility)**：这是最常被忽略的一项。即使应用请求了权限，有时也不会自动弹出提示。请手动前往“系统设置” > “隐私与安全性” > “辅助功能”，将 plock 添加到列表中并开启开关。\n手动添加后通常能解决问题。","https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fissues\u002F26",{"id":152,"question_zh":153,"answer_zh":154,"source_url":155},34116,"生成的文本中字符缺失或单词拼写错误（如丢失字母）是什么原因？","这是一个已知的 Bug，通常与 macOS 限制打字速度或底层键盘模拟库（enigo）处理流式响应时的逻辑有关。维护者已确认该问题并在后续版本中进行了修复。如果您遇到此问题，请尝试更新到最新版本的 plock。","https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fissues\u002F10",{"id":157,"question_zh":158,"answer_zh":159,"source_url":160},34117,"更新版本后构建版（build version）停止工作但开发版正常，如何解决？","这通常是由于新版本安装时未能正确覆盖旧的配置文件，导致设置冲突或格式不兼容。解决方法是彻底卸载并重新安装应用，或者手动检查并重置配置文件（settings.json）。有用户反馈，删除旧配置或让新安装完全覆盖后问题得以解决。未来版本可能会引入配置迁移机制。","https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fissues\u002F11",{"id":162,"question_zh":163,"answer_zh":164,"source_url":165},34118,"在 Arch Linux 或 Manjaro 上编译运行时出现链接错误或缺少依赖怎么办？","在 Linux 环境下，确保安装了必要的依赖包。常见的缺失依赖是 `xdotool`，请通过包管理器安装它（例如 `sudo pacman -S xdotool`）。如果遇到 `linking with cc failed` 的编译错误，可以尝试删除 `src-tauri\u002Ftarget` 目录后重新编译，或者直接在该目录下运行 `cargo` 命令进行调试。","https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fissues\u002F16",{"id":167,"question_zh":168,"answer_zh":169,"source_url":170},34119,"按下快捷键（如 cmd+shift+\u002F）后应用直接退出且无报错提示？","这种情况可能是由配置文件修改错误或二进制文件变更引起的。由于当前版本缺乏完善的错误捕获机制，建议首先通过终端运行二进制文件（见日志查看相关问答）来获取即时报错信息。同时检查是否修改过 `settings.json` 文件，尝试将其恢复默认或清空测试。如果问题偶发且自行恢复，可能是临时的系统状态问题。","https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fissues\u002F27",[172,177,182,187],{"id":173,"version":174,"summary_zh":175,"released_at":176},264017,"v0.1.3","请查看资产以下载并安装此版本。\n\n## 变更内容\n* [plock-17]：通过设置加载全局快捷键，由 @jasonjmcghee 在 https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fpull\u002F21 中实现\n* [plock-18]：添加标准错误输出支持，由 @jasonjmcghee 在 https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fpull\u002F23 中实现\n* #10 生成时跳过部分字符，由 @kengoodridge 在 https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fpull\u002F20 中实现\n* [plock-10]：尝试修复字符丢失问题，由 @jasonjmcghee 在 https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fpull\u002F22 中实现\n\n## 新贡献者\n* @kengoodridge 在 https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fpull\u002F20 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fcompare\u002Fv0.1.2...v0.1.3","2024-02-03T01:49:36",{"id":178,"version":179,"summary_zh":180,"released_at":181},264018,"v0.1.2","\n\n## 变更内容\n* 修复剪贴板内容获取问题，由 @antmanler 在 https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fpull\u002F12 中完成\n* 管道：触发器与链式执行、执行命令（bash \u002F cmd）、镜像及其他改进，由 @jasonjmcghee 在 https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fpull\u002F13 中完成\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fcompare\u002Fv0.1.1...v0.1.2","2024-01-25T16:46:52",{"id":183,"version":184,"summary_zh":185,"released_at":186},264019,"v0.1.1","## 首次自动化发布\n\n适用于 Mac：需要运行 `xattr -c plock.app` —— 我目前尚未进行代码签名。建议您暂时自行构建。\n\n请安装 [ollama](https:\u002F\u002Fgithub.com\u002Fjmorganca\u002Follama)，并确保执行 `ollama pull openhermes2.5-mistral`，或者在代码中将其替换为其他模型。\n\nWindows 用户必须使用自定义脚本，该脚本可以在设置文件中配置。\n\n## 变更内容\n* [plock-1]：添加设置文件，由 @jasonjmcghee 在 https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fpull\u002F4 中完成。\n* 修复 `main.rs` 中的 `get_context` 函数，使其使用可变迭代器，由 @antmanler 在 https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fpull\u002F7 中完成。\n\n## 新贡献者\n* @jasonjmcghee 在 https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fpull\u002F4 中完成了首次贡献。\n* @antmanler 在 https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fpull\u002F7 中完成了首次贡献。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fjasonjmcghee\u002Fplock\u002Fcompare\u002Fv0.1.0...v0.1.1","2024-01-23T07:04:32",{"id":188,"version":189,"summary_zh":190,"released_at":191},264020,"v0.1.0","# 我构建的第一个版本——鼓励你亲自构建它\n\n需要：`xattr -c plock.app` —— 我目前还没有进行代码签名。建议你先自己构建。\n\n安装 [ollama](https:\u002F\u002Fgithub.com\u002Fjmorganca\u002Follama)，并确保运行 `ollama pull openhermes2.5-mistral`，或者在代码中将其替换为其他模型。\n\n`Ctrl \u002F Cmd + Shift + .`：将选中的文本替换为模型的输出。\n\n`Ctrl \u002F Cmd + Shift + \u002F`：将剪贴板中的内容作为“上下文”输入，并将选中的文本替换为模型的输出。\n\n`Escape`：取消正在进行的流式输出。","2024-01-21T21:52:21"]