[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-lgrammel--rubberduck-vscode":3,"tool-lgrammel--rubberduck-vscode":64},[4,17,27,35,43,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},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,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},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 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},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 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},3704,"NextChat","ChatGPTNextWeb\u002FNextChat","NextChat 是一款轻量且极速的 AI 助手，旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性，以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发，NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。\n\n这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言，它也提供了便捷的自托管方案，支持一键部署到 Vercel 或 Zeabur 等平台。\n\nNextChat 的核心亮点在于其广泛的模型兼容性，原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型，让用户在一个界面即可自由切换不同 AI 能力。此外，它还率先支持 MCP（Model Context Protocol）协议，增强了上下文处理能力。针对企业用户，NextChat 提供专业版解决方案，具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能，满足公司对数据隐私和个性化管理的高标准要求。",87618,"2026-04-05T07:20:52",[13,26],{"id":44,"name":45,"github_repo":46,"description_zh":47,"stars":48,"difficulty_score":23,"last_commit_at":49,"category_tags":50,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,51,52,53,15,54,26,13,55],"数据工具","视频","插件","其他","音频",{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,54],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":69,"readme_en":70,"readme_zh":71,"quickstart_zh":72,"use_case_zh":73,"hero_image_url":74,"owner_login":75,"owner_name":76,"owner_avatar_url":77,"owner_bio":78,"owner_company":79,"owner_location":80,"owner_email":80,"owner_twitter":75,"owner_website":80,"owner_url":81,"languages":82,"stars":99,"forks":100,"last_commit_at":101,"license":102,"difficulty_score":23,"env_os":103,"env_gpu":104,"env_ram":104,"env_deps":105,"category_tags":113,"github_topics":114,"view_count":23,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":123,"updated_at":124,"faqs":125,"releases":126},3446,"lgrammel\u002Frubberduck-vscode","rubberduck-vscode","Use AI-powered code edits, explanations, code generation, error diagnosis, and chat in Visual Studio Code with the official OpenAI API.","Rubberduck 是一款专为 Visual Studio Code 打造的 AI 编程助手插件，旨在将强大的大语言模型能力无缝融入开发者的日常编码流程。它通过侧边栏聊天界面，帮助开发者高效完成代码生成、智能编辑、逻辑解释、单元测试编写、漏洞排查及错误诊断等任务。无论是面对复杂的遗留代码需要快速理解，还是遇到编译报错急需修复建议，Rubberduck 都能基于当前选中的代码上下文提供精准的解决方案，显著减少在不同工具间切换的时间，提升开发效率。\n\n这款工具特别适合各类软件开发者使用，从初学者到资深工程师都能从中受益。初学者可利用其解释功能快速学习代码逻辑，而经验丰富的开发者则能借助它加速样板代码编写和调试过程。Rubberduck 的独特亮点在于其“自定义对话模板”功能，允许用户根据特定场景预设指令（例如用幽默的海盗风格描述代码），极大地增强了交互的灵活性与趣味性。此外，它直接对接官方 OpenAI API，确保了响应速度与模型能力的可靠性。只需配置一个 API 密钥，即可在熟悉的 VS Code 环境中开启智能化的结对编程体验，让编码工作变得更加轻松流畅。","![Rubberduck AI Chat](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_9d1bfc9e5ca5.gif)\n\n# Rubberduck: ChatGPT for Visual Studio Code\n\n> &nbsp;\n>\n> #### AI chat in the Visual Studio Code side bar. Rubberduck can [generate code](#generate-code), [edit code](#edit-code), [explain code](#explain-code), [generate tests](#generate-tests), [find bugs](#find-bugs), [diagnose errors](#diagnose-errors), and more. You can even add [your own conversation templates](#custom-conversations).\n>\n> &nbsp;\n\n\u003C!-- prettier-ignore-start -->\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n[![Twitter](https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Furl\u002Fhttps\u002Ftwitter.com\u002Frubberduckai.svg?style=social&label=%20%40rubberduckai)](https:\u002F\u002Ftwitter.com\u002Frubberduckai)\n[![Discord](https:\u002F\u002Fdiscordapp.com\u002Fapi\u002Fguilds\u002F1061938502327091271\u002Fwidget.png?style=shield)](https:\u002F\u002Fdiscord.gg\u002F8KN2HmyZmn)\u003C!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->\n[![All Contributors](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fall_contributors-19-orange.svg?style=flat-square)](#contributors)\n\u003C!-- ALL-CONTRIBUTORS-BADGE:END --> \n\n\u003C!-- prettier-ignore-end -->\n\n## Quick Install\n\nYou can install Rubberduck from the\n\n- [Visual Studio Code Marketplace](https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=Rubberduck.rubberduck-vscode)\n- [Open VSX Registry](https:\u002F\u002Fopen-vsx.org\u002Fextension\u002FRubberduck\u002Frubberduck-vscode)\n\nRubberduck requires an OpenAI API key. You can get an OpenAI API key from [platform.openai.com\u002Faccount\u002Fapi-keys](https:\u002F\u002Fplatform.openai.com\u002Faccount\u002Fapi-keys) (you'll need to sign up for an account).\n\n## Features\n\n[AI Chat](#ai-chat) | [Generate Code](#generate-code) | [Edit Code](#edit-code) | [Explain Code](#explain-code) | [Generate Tests](#generate-tests) | [Find Bugs](#find-bugs) | [Diagnose Errors](#diagnose-errors) | [Custom Conversations](#custom-conversations)\n\n### AI Chat\n\nChat with Rubberduck about your code and software development topics. Rubberduck knows the editor selection at the time of conversation start.\n\n![Chat](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_fb1419606a48.png)\n\n# Generate Code\n\nInstruct Rubberduck to generate code for you.\n\n![Generate Code](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_1d4de2bd8639.gif)\n\n## Edit Code\n\nChange the selected code by instructing Rubberduck to create an edit.\n\n![Edit Code](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_379f9cdafa2a.gif)\n\n### Explain Code\n\nAsk Rubberduck to explain the selected code.\n\n![Explain Code](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_feea07943d5e.png)\n\n### Generate Tests\n\nGenerate test cases for the selected code.\n\n![Generate Tests](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_f743f588d902.gif)\n\n## Find Bugs\n\nFind potential defects in your code.\n\n![Find Bugs](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_a6acf7570067.png)\n\n### Diagnose Errors\n\nLet Rubberduck identify error causes and suggest fixes to fix compiler and linter errors faster.\n\n![Diagnose Errors](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_e6c6c4072e5b.gif)\n\n### Custom Conversations\n\nYou can define your own conversation templates. See the [Rubberduck Template docs](https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fblob\u002Fmain\u002Fdoc\u002Frubberduck-templates.md) for more information.\n\nHere is an example of a [drunken pirate describing your code](https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fblob\u002Fmain\u002Ftemplate\u002Ffun\u002Fdrunken-pirate.rdt.md):\n\n![Describe code as a drunken pirate](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_44ebfb80d4da.gif)\n\n## Configuration Options\n\n- **rubberduck.syntaxHighlighting.useVisualStudioCodeColors**: Use the Visual Studio Code Theme colors for syntax highlighting in the diff viewer. Might not work with all themes. Default is `false`.\n\n## Built With\n\n- [ModelFusion](https:\u002F\u002Fmodelfusion\u002Fdev) - AI library\n- [Prism.js](https:\u002F\u002Fprismjs.com\u002F) - Syntax highlighting\n- [React](https:\u002F\u002Freactjs.org\u002F) - UI rendering\n\n## Contributors\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->\n\u003C!-- prettier-ignore-start -->\n\u003C!-- markdownlint-disable -->\n\u003Ctable>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"http:\u002F\u002Flarsgrammel.de\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_658593929b8f.png\" width=\"100px;\" alt=\"Lars Grammel\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Lars Grammel\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-lgrammel\" title=\"Ideas, Planning, & Feedback\">🤔\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fcommits?author=lgrammel\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fcommits?author=lgrammel\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fpulls?q=is%3Apr+reviewed-by%3Algrammel\" title=\"Reviewed Pull Requests\">👀\u003C\u002Fa> \u003Ca href=\"#question-lgrammel\" title=\"Answering Questions\">💬\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fissues?q=author%3Algrammel\" title=\"Bug reports\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"http:\u002F\u002Fiainvm.github.io\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_50d859672672.png\" width=\"100px;\" alt=\"Iain Majer\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Iain Majer\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fissues?q=author%3Aiainvm\" title=\"Bug reports\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fcommits?author=iainvm\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fnicoespeon.com\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_2a57c67aeb3c.png\" width=\"100px;\" alt=\"Nicolas Carlo\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Nicolas Carlo\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fcommits?author=nicoespeon\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fcommits?author=nicoespeon\" title=\"Documentation\">📖\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fissues?q=author%3Anicoespeon\" title=\"Bug reports\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRatoGBM\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_f55cfd04d3a6.png\" width=\"100px;\" alt=\"RatoGBM\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>RatoGBM\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fissues?q=author%3ARatoGBM\" title=\"Bug reports\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fwww.lionelokpeicha.dev\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_faf864d642dd.png\" width=\"100px;\" alt=\"Lionel Okpeicha\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Lionel Okpeicha\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fissues?q=author%3Alohnsonok\" title=\"Bug reports\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMercerK\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_265e3684a671.png\" width=\"100px;\" alt=\"MercerK\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>MercerK\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fissues?q=author%3AMercerK\" title=\"Bug reports\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flundeen-bryan\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_7805ad1ae7f3.png\" width=\"100px;\" alt=\"Lundeen.Bryan\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Lundeen.Bryan\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-lundeen-bryan\" title=\"Ideas, Planning, & Feedback\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDucoG\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_b7bdfc348a65.png\" width=\"100px;\" alt=\"DucoG\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>DucoG\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-DucoG\" title=\"Ideas, Planning, & Feedback\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsbstn87\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_22993c009958.png\" width=\"100px;\" alt=\"sbstn87\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>sbstn87\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-sbstn87\" title=\"Ideas, Planning, & Feedback\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fdev.page\u002Ftennox\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_02a36e526990.png\" width=\"100px;\" alt=\"Manuel\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Manuel\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-tennox\" title=\"Ideas, Planning, & Feedback\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Falessandro-newzoo\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_125b88302a2c.png\" width=\"100px;\" alt=\"alessandro-newzoo\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>alessandro-newzoo\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-alessandro-newzoo\" title=\"Ideas, Planning, & Feedback\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FVoid-n-Null\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_b0d75a77b76e.png\" width=\"100px;\" alt=\"Void&Null\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Void&Null\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-Void-n-Null\" title=\"Ideas, Planning, & Feedback\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FWittyDingo\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_5b260ace2f53.png\" width=\"100px;\" alt=\"WittyDingo\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>WittyDingo\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-WittyDingo\" title=\"Ideas, Planning, & Feedback\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Feva-lam\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_1fb3399b6554.png\" width=\"100px;\" alt=\"Eva\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Eva\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-eva-lam\" title=\"Ideas, Planning, & Feedback\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FAlexeyLavrentev\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_44c42483ac80.png\" width=\"100px;\" alt=\"AlexeyLavrentev\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>AlexeyLavrentev\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-AlexeyLavrentev\" title=\"Ideas, Planning, & Feedback\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flinshu123\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_06c6ae00d4aa.png\" width=\"100px;\" alt=\"linshu123\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>linshu123\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fcommits?author=linshu123\" title=\"Documentation\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Funquietwiki.com\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_e4f373451778.png\" width=\"100px;\" alt=\"Michael Adams\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Michael Adams\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fcommits?author=unquietwiki\" title=\"Code\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fissues?q=author%3Aunquietwiki\" title=\"Bug reports\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frestlessronin\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_747440670188.png\" width=\"100px;\" alt=\"restlessronin\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>restlessronin\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fcommits?author=restlessronin\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"http:\u002F\u002Fkupczynski.info\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_80429d9f1b77.png\" width=\"100px;\" alt=\"Igor Kupczyński\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Igor Kupczyński\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fcommits?author=igor-kupczynski\" title=\"Code\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\u003C!-- markdownlint-restore -->\n\u003C!-- prettier-ignore-end -->\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:END -->\n\n## Running it locally & Contributing\n\n### [Contributing Guide][contributing]\n\nRead our [contributing guide][contributing] to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes.\n\n### [Good First Issues][good-first-issues]\n\nTo help you get your feet wet and become familiar with our contribution process, we have a list of [good first issues][good-first-issues] that contains things with a relatively limited scope. This is a great place to get started!\n\n\u003C!-- Links -->\n\n[contributing]: https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fblob\u002Fmain\u002FCONTRIBUTING.md\n[good-first-issues]: https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Flabels\u002Fgood%20first%20issue\n","![Rubberduck AI Chat](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_9d1bfc9e5ca5.gif)\n\n# Rubberduck：适用于 Visual Studio Code 的 ChatGPT\n\n> &nbsp;\n>\n> #### 在 Visual Studio Code 侧边栏中进行 AI 聊天。Rubberduck 可以 [生成代码](#generate-code)、[编辑代码](#edit-code)、[解释代码](#explain-code)、[生成测试](#generate-tests)、[查找错误](#find-bugs)、[诊断错误](#diagnose-errors) 等等。你甚至可以添加 [自己的对话模板](#custom-conversations)。\n>\n> &nbsp;\n\n\u003C!-- prettier-ignore-start -->\n[![许可证：MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n[![Twitter](https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Furl\u002Fhttps\u002Ftwitter.com\u002Frubberduckai.svg?style=social&label=%20%40rubberduckai)](https:\u002F\u002Ftwitter.com\u002Frubberduckai)\n[![Discord](https:\u002F\u002Fdiscordapp.com\u002Fapi\u002Fguilds\u002F1061938502327091271\u002Fwidget.png?style=shield)](https:\u002F\u002Fdiscord.gg\u002F8KN2HmyZmn)\u003C!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->\n[![所有贡献者](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fall_contributors-19-orange.svg?style=flat-square)](#contributors)\n\u003C!-- ALL-CONTRIBUTORS-BADGE:END --> \n\n\u003C!-- prettier-ignore-end -->\n\n## 快速安装\n\n你可以从以下位置安装 Rubberduck：\n\n- [Visual Studio Code 市场](https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=Rubberduck.rubberduck-vscode)\n- [Open VSX 注册表](https:\u002F\u002Fopen-vsx.org\u002Fextension\u002FRubberduck\u002Frubberduck-vscode)\n\nRubberduck 需要一个 OpenAI API 密钥。你可以在 [platform.openai.com\u002Faccount\u002Fapi-keys](https:\u002F\u002Fplatform.openai.com\u002Faccount\u002Fapi-keys) 获取 OpenAI API 密钥（你需要先注册一个账户）。\n\n## 功能\n\n[AI 聊天](#ai-chat) | [生成代码](#generate-code) | [编辑代码](#edit-code) | [解释代码](#explain-code) | [生成测试](#generate-tests) | [查找错误](#find-bugs) | [诊断错误](#diagnose-errors) | [自定义对话](#custom-conversations)\n\n### AI 聊天\n\n与 Rubberduck 讨论你的代码和软件开发相关话题。Rubberduck 会记住你开始对话时的编辑器选区。\n\n![聊天](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_fb1419606a48.png)\n\n# 生成代码\n\n指示 Rubberduck 为你生成代码。\n\n![生成代码](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_1d4de2bd8639.gif)\n\n## 编辑代码\n\n通过指示 Rubberduck 进行编辑来修改所选代码。\n\n![编辑代码](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_379f9cdafa2a.gif)\n\n### 解释代码\n\n让 Rubberduck 解释你选择的代码。\n\n![解释代码](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_feea07943d5e.png)\n\n### 生成测试\n\n为选定的代码生成测试用例。\n\n![生成测试](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_f743f588d902.gif)\n\n## 查找错误\n\n在你的代码中查找潜在的缺陷。\n\n![查找错误](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_a6acf7570067.png)\n\n### 指诊错误\n\n让 Rubberduck 找出错误原因，并提出修复建议，从而更快地解决编译器和 linter 报错问题。\n\n![指诊错误](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_e6c6c4072e5b.gif)\n\n### 自定义对话\n\n你可以定义自己的对话模板。更多信息请参阅 [Rubberduck 模板文档](https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fblob\u002Fmain\u002Fdoc\u002Frubberduck-templates.md)。\n\n这里有一个例子，即让一位“醉酒海盗”来描述你的代码：\n\n![用醉酒海盗的方式描述代码](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_44ebfb80d4da.gif)\n\n## 配置选项\n\n- **rubberduck.syntaxHighlighting.useVisualStudioCodeColors**：在差异查看器中使用 Visual Studio Code 主题的颜色进行语法高亮显示。可能并非所有主题都适用。默认值为 `false`。\n\n## 构建技术\n\n- [ModelFusion](https:\u002F\u002Fmodelfusion\u002Fdev) - AI 库\n- [Prism.js](https:\u002F\u002Fprismjs.com\u002F) - 语法高亮\n- [React](https:\u002F\u002Freactjs.org\u002F) - UI 渲染\n\n## 贡献者\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:START - 请勿删除或修改此部分 -->\n\u003C!-- prettier-ignore-start -->\n\u003C!-- markdownlint-disable -->\n\u003Ctable>\n  \u003Ctbody>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"http:\u002F\u002Flarsgrammel.de\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_658593929b8f.png\" width=\"100px;\" alt=\"Lars Grammel\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Lars Grammel\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-lgrammel\" title=\"想法、规划与反馈\">🤔\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fcommits?author=lgrammel\" title=\"代码\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fcommits?author=lgrammel\" title=\"文档\">📖\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fpulls?q=is%3Apr+reviewed-by%3Algrammel\" title=\"已审阅的拉取请求\">👀\u003C\u002Fa> \u003Ca href=\"#question-lgrammel\" title=\"解答问题\">💬\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fissues?q=author%3Algrammel\" title=\"Bug报告\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"http:\u002F\u002Fiainvm.github.io\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_50d859672672.png\" width=\"100px;\" alt=\"Iain Majer\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Iain Majer\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fissues?q=author%3Aiainvm\" title=\"Bug报告\">🐛\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fcommits?author=iainvm\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fnicoespeon.com\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_2a57c67aeb3c.png\" width=\"100px;\" alt=\"Nicolas Carlo\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Nicolas Carlo\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fcommits?author=nicoespeon\" title=\"代码\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fcommits?author=nicoespeon\" title=\"文档\">📖\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fissues?q=author%3Anicoespeon\" title=\"Bug报告\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FRatoGBM\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_f55cfd04d3a6.png\" width=\"100px;\" alt=\"RatoGBM\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>RatoGBM\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fissues?q=author%3ARatoGBM\" title=\"Bug报告\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fwww.lionelokpeicha.dev\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_faf864d642dd.png\" width=\"100px;\" alt=\"Lionel Okpeicha\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Lionel Okpeicha\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fissues?q=author%3Alohnsonok\" title=\"Bug报告\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMercerK\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_265e3684a671.png\" width=\"100px;\" alt=\"MercerK\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>MercerK\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fissues?q=author%3AMercerK\" title=\"Bug报告\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flundeen-bryan\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_7805ad1ae7f3.png\" width=\"100px;\" alt=\"Lundeen.Bryan\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Lundeen.Bryan\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-lundeen-bryan\" title=\"想法、规划与反馈\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FDucoG\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_b7bdfc348a65.png\" width=\"100px;\" alt=\"DucoG\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>DucoG\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-DucoG\" title=\"想法、规划与反馈\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsbstn87\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_22993c009958.png\" width=\"100px;\" alt=\"sbstn87\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>sbstn87\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-sbstn87\" title=\"想法、规划与反馈\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fdev.page\u002Ftennox\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_02a36e526990.png\" width=\"100px;\" alt=\"Manuel\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Manuel\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-tennox\" title=\"想法、规划与反馈\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Falessandro-newzoo\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_125b88302a2c.png\" width=\"100px;\" alt=\"alessandro-newzoo\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>alessandro-newzoo\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-alessandro-newzoo\" title=\"想法、规划与反馈\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FVoid-n-Null\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_b0d75a77b76e.png\" width=\"100px;\" alt=\"Void&Null\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Void&Null\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-Void-n-Null\" title=\"想法、规划与反馈\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FWittyDingo\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_5b260ace2f53.png\" width=\"100px;\" alt=\"WittyDingo\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>WittyDingo\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-WittyDingo\" title=\"想法、规划与反馈\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Feva-lam\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_1fb3399b6554.png\" width=\"100px;\" alt=\"Eva\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Eva\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-eva-lam\" title=\"想法、规划与反馈\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002FAlexeyLavrentev\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_44c42483ac80.png\" width=\"100px;\" alt=\"AlexeyLavrentev\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>AlexeyLavrentev\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"#ideas-AlexeyLavrentev\" title=\"想法、规划与反馈\">🤔\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flinshu123\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_06c6ae00d4aa.png\" width=\"100px;\" alt=\"linshu123\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>linshu123\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fcommits?author=linshu123\" title=\"文档\">📖\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n    \u003Ctr>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Funquietwiki.com\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_e4f373451778.png\" width=\"100px;\" alt=\"Michael Adams\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Michael Adams\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fcommits?author=unquietwiki\" title=\"代码\">💻\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fissues?q=author%3Aunquietwiki\" title=\"Bug报告\">🐛\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frestlessronin\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_747440670188.png\" width=\"100px;\" alt=\"restlessronin\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>restlessronin\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fcommits?author=restlessronin\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n      \u003Ctd align=\"center\" valign=\"top\" width=\"25%\">\u003Ca href=\"http:\u002F\u002Fkupczynski.info\u002F\">\u003Cimg src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_readme_80429d9f1b77.png\" width=\"100px;\" alt=\"Igor Kupczyński\"\u002F>\u003Cbr \u002F>\u003Csub>\u003Cb>Igor Kupczyński\u003C\u002Fb>\u003C\u002Fsub>\u003C\u002Fa>\u003Cbr \u002F>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fcommits?author=igor-kupczynski\" title=\"代码\">💻\u003C\u002Fa>\u003C\u002Ftd>\n    \u003C\u002Ftr>\n  \u003C\u002Ftbody>\n\u003C\u002Ftable>\n\n\u003C!-- markdownlint-restore -->\n\u003C!-- prettier-ignore-end -->\n\n\u003C!-- ALL-CONTRIBUTORS-LIST:END -->\n\n\n\n## 在本地运行 & 参与贡献\n\n### [贡献指南][contributing]\n\n请阅读我们的[贡献指南][contributing]，了解我们的开发流程、如何提出 bug 修复和改进建议，以及如何构建和测试您的更改。\n\n### [适合新手的议题][good-first-issues]\n\n为了帮助您快速入门并熟悉我们的贡献流程，我们整理了一份[适合新手的议题][good-first-issues]列表，其中包含范围相对较小的任务。这是一个非常好的起点！\n\n\u003C!-- 链接 -->\n\n[contributing]: https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Fblob\u002Fmain\u002FCONTRIBUTING.md\n[good-first-issues]: https:\u002F\u002Fgithub.com\u002Frubberduck-ai\u002Frubberduck-vscode\u002Flabels\u002Fgood%20first%20issue","# Rubberduck VS Code 快速上手指南\n\nRubberduck 是一款集成在 Visual Studio Code 侧边栏的 AI 聊天助手。它能理解你的代码上下文，帮助你生成代码、编辑逻辑、解释功能、编写测试、查找 Bug 以及诊断错误。\n\n## 环境准备\n\n在使用 Rubberduck 之前，请确保满足以下条件：\n\n1.  **编辑器**：已安装 [Visual Studio Code](https:\u002F\u002Fcode.visualstudio.com\u002F)。\n2.  **API 密钥**：需要拥有有效的 **OpenAI API Key**。\n    *   访问 [OpenAI API Keys 页面](https:\u002F\u002Fplatform.openai.com\u002Faccount\u002Fapi-keys) 注册账号并获取密钥。\n    *   *注意：由于网络环境限制，国内用户可能需要配置代理或使用中转服务才能正常连接 OpenAI 接口。*\n\n## 安装步骤\n\n你可以通过以下两种方式之一安装插件：\n\n### 方式一：通过 VS Code 扩展市场（推荐）\n\n1.  打开 VS Code，点击左侧活动栏的 **扩展 (Extensions)** 图标（或按下 `Ctrl+Shift+X` \u002F `Cmd+Shift+X`）。\n2.  在搜索框中输入 `Rubberduck`。\n3.  找到 **Rubberduck: ChatGPT for Visual Studio Code**，点击 **安装 (Install)**。\n\n### 方式二：通过 Open VSX Registry\n\n如果你使用的是无法访问微软市场的编辑器版本（如某些 Linux 发行版自带的 Code-OSS），可以访问 [Open VSX Registry](https:\u002F\u002Fopen-vsx.org\u002Fextension\u002FRubberduck\u002Frubberduck-vscode) 下载安装包进行手动安装。\n\n### 配置 API Key\n\n安装完成后，需要进行初始化配置：\n\n1.  按下 `Ctrl+,` (Windows\u002FLinux) 或 `Cmd+,` (Mac) 打开设置。\n2.  搜索 `rubberduck`。\n3.  找到 **Rubberduck: Api Key** 选项，填入你之前获取的 OpenAI API Key。\n    *   或者直接在 VS Code 中打开命令面板 (`Ctrl+Shift+P` \u002F `Cmd+Shift+P`)，输入 `Rubberduck: Set API Key` 并按提示操作。\n\n## 基本使用\n\n安装并配置完成后，Rubberduck 将出现在 VS Code 的侧边栏中。\n\n### 1. 启动对话\n点击侧边栏的 Rubberduck 图标打开聊天窗口。它会自动识别当前编辑器中选中的代码片段作为上下文。\n\n### 2. 核心功能示例\n\n*   **解释代码 (Explain Code)**\n    选中一段复杂的代码，在聊天框输入：\n    ```text\n    请解释这段代码的作用。\n    ```\n    Rubberduck 将逐行分析并给出中文解释。\n\n*   **生成代码 (Generate Code)**\n    直接描述需求，例如：\n    ```text\n    用 Python 写一个快速排序算法，并添加详细注释。\n    ```\n\n*   **编辑代码 (Edit Code)**\n    选中需要修改的代码块，输入指令：\n    ```text\n    将这个函数重构为异步版本，并增加错误处理。\n    ```\n    插件会生成修改后的代码供你预览和应用。\n\n*   **查找 Bug 与诊断错误 (Find Bugs & Diagnose Errors)**\n    当代码出现红色波浪线报错时，选中报错区域并询问：\n    ```text\n    为什么这里会报错？如何修复？\n    ```\n    或者主动检查潜在问题：\n    ```text\n    检查这段代码中可能存在的逻辑漏洞。\n    ```\n\n*   **生成测试 (Generate Tests)**\n    选中目标函数，输入：\n    ```text\n    为选中的函数生成单元测试用例。\n    ```\n\n### 3. 自定义对话模板\n除了默认功能，你还可以创建个性化的对话模板（例如让 AI 扮演“醉酒的海盗”来解释代码）。具体配置方法可参考项目文档中的 `rubberduck-templates.md`。","资深后端工程师小李正在紧急重构一个遗留的支付模块，该模块逻辑复杂且缺乏文档，同时面临着严峻的上线截止时间。\n\n### 没有 rubberduck-vscode 时\n- **理解成本极高**：面对数百行晦涩的正则和嵌套逻辑，只能逐行阅读猜测意图，耗时数小时仍无法理清核心流程。\n- **排查错误低效**：遇到编译器报错或运行时异常，需手动在 Stack Overflow 和官方文档间反复切换搜索，试错成本巨大。\n- **测试覆盖不足**：由于不熟悉边界条件，编写单元测试时经常遗漏关键场景，导致代码信心不足，不敢轻易提交。\n- **重构风险难控**：想要优化某段代码却担心引入新 Bug，缺乏智能辅助来预判修改后的潜在副作用。\n\n### 使用 rubberduck-vscode 后\n- **秒级代码解释**：选中复杂代码块，rubberduck-vscode 立即生成清晰的自然语言解释，快速掌握业务逻辑和数据结构。\n- **智能诊断修复**：直接让 rubberduck-vscode 分析报错信息，它不仅能指出根本原因，还能一键生成修复方案并应用到编辑器。\n- **自动生成测试**：指令 rubberduck-vscode 为选定函数生成测试用例，它自动覆盖正常路径及各类边缘情况，大幅提升测试覆盖率。\n- **安全辅助重构**：描述重构需求（如“改为异步处理”），rubberduck-vscode 直接生成编辑后的代码并高亮差异，确保修改安全可控。\n\nrubberduck-vscode 将开发者从繁琐的查阅与试错中解放出来，使其能专注于核心架构设计与业务价值交付。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Flgrammel_rubberduck-vscode_9d1bfc9e.gif","lgrammel","Lars Grammel","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Flgrammel_65859392.jpg","\r\n    \r\n","Vercel",null,"https:\u002F\u002Fgithub.com\u002Flgrammel",[83,87,91,95],{"name":84,"color":85,"percentage":86},"TypeScript","#3178c6",72.1,{"name":88,"color":89,"percentage":90},"CSS","#663399",27.4,{"name":92,"color":93,"percentage":94},"Shell","#89e051",0.5,{"name":96,"color":97,"percentage":98},"JavaScript","#f1e05a",0.1,633,84,"2026-03-15T04:07:05","MIT","Windows, macOS, Linux","未说明",{"notes":106,"python":104,"dependencies":107},"该工具是 Visual Studio Code 的扩展插件，无需本地部署 GPU 或运行大型模型。核心依赖是需要用户自行申请并配置有效的 OpenAI API 密钥（需注册 OpenAI 账户）。安装可通过 VS Code Marketplace 或 Open VSX Registry 进行。",[108,109,110,111,112],"Visual Studio Code","OpenAI API Key","ModelFusion","Prism.js","React",[26,14,15,13,53],[115,116,117,118,119,120,121,122],"vscode","vscode-extension","visual-studio-code","ai","chatbot","chatgpt","gpt3","openai","2026-03-27T02:49:30.150509","2026-04-06T08:46:04.977034",[],[127,132,137,142,146,150,154,158,162,166,170,174,178,182,186,190,194,198,202,206],{"id":128,"version":129,"summary_zh":130,"released_at":131},90517,"v1.21.0","### 新增\r\n\r\n- 新的 OpenAI 模型：`gpt-3.5-turbo-0125`（新的默认模型）、`gpt-4-0125-preview`、`gpt-4-turbo-preview`。感谢 [@igor-kupczynski](https:\u002F\u002Fgithub.com\u002Figor-kupczynskin) 的贡献！","2024-02-04T14:59:53",{"id":133,"version":134,"summary_zh":135,"released_at":136},90518,"v1.20.0","### 新增\n\n- 在界面提示中添加“眼睛”按钮。感谢 [@restlessronin](https:\u002F\u002Fgithub.com\u002Frestlessronin) 的贡献！\n\n### 修复\n\n- OpenAI 流式传输相关问题已修复。","2023-12-22T09:48:46",{"id":138,"version":139,"summary_zh":140,"released_at":141},90519,"v1.19.0","### 新增\n\n- 新的 OpenAI 模型：`gpt-3.5-turbo-1106`（新的默认模型）、`gpt-4-1106-preview`（128K 上下文窗口）。感谢 [@restlessronin](https:\u002F\u002Fgithub.com\u002Frestlessronin) 的贡献！\n- 新模板：“带上下文解释代码”（在所有打开文件的上下文中解释选中的代码）。感谢 [@restlessronin](https:\u002F\u002Fgithub.com\u002Frestlessronin) 的贡献！\n","2023-11-29T11:47:36",{"id":143,"version":144,"summary_zh":80,"released_at":145},90520,"v1.18.0","2023-10-04T18:39:14",{"id":147,"version":148,"summary_zh":80,"released_at":149},90521,"v1.17.0","2023-10-04T14:21:47",{"id":151,"version":152,"summary_zh":80,"released_at":153},90522,"v1.16.0","2023-07-01T10:52:25",{"id":155,"version":156,"summary_zh":80,"released_at":157},90523,"v1.15.0","2023-03-19T16:32:04",{"id":159,"version":160,"summary_zh":80,"released_at":161},90524,"v1.14.0","2023-03-17T19:52:35",{"id":163,"version":164,"summary_zh":80,"released_at":165},90525,"v1.13.0","2023-03-10T15:59:49",{"id":167,"version":168,"summary_zh":80,"released_at":169},90526,"v1.12.1","2023-03-01T09:44:32",{"id":171,"version":172,"summary_zh":80,"released_at":173},90527,"v1.12.0","2023-02-21T14:34:24",{"id":175,"version":176,"summary_zh":80,"released_at":177},90528,"v1.11.1","2023-02-15T15:05:36",{"id":179,"version":180,"summary_zh":80,"released_at":181},90529,"v1.11.0","2023-02-15T11:32:03",{"id":183,"version":184,"summary_zh":80,"released_at":185},90530,"v1.10.1","2023-02-14T21:12:57",{"id":187,"version":188,"summary_zh":80,"released_at":189},90531,"v1.10.0","2023-02-14T10:34:01",{"id":191,"version":192,"summary_zh":80,"released_at":193},90532,"v1.9.2","2023-02-13T08:02:26",{"id":195,"version":196,"summary_zh":80,"released_at":197},90533,"v1.9.1","2023-02-12T21:13:54",{"id":199,"version":200,"summary_zh":80,"released_at":201},90534,"v1.9.0","2023-02-12T10:51:06",{"id":203,"version":204,"summary_zh":80,"released_at":205},90535,"v1.8.4","2023-02-12T09:24:18",{"id":207,"version":208,"summary_zh":80,"released_at":209},90536,"v1.8.3","2023-02-11T13:00:29"]