twinny
本地运行的免费 VSCode AI 编程助手,支持 Ollama/GPT-4/Claude,代码永不
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
本地运行的免费 VSCode AI 编程助手,支持 Ollama/GPT-4/Claude,代码永不
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
2024 年,GitHub Copilot 开始对个人用户收费每月 10 美元,对企业用户更贵。许多独立开发者、个人项目维护者和学生开始四处寻找替代方案——但大多数"免费替代品"要么要求把代码上传到第三方服务器,要么功能残缺到几乎不可用。正是在这个时间点,Twinny 出现了。
Twinny 是由独立开发者 rjmacarthy 开发的 Visual Studio Code 扩展,其核心理念是:代码永远留在本地,永远不离开你的电脑。它通过 Ollama 在本地运行 LLM,或者连接到你自己配置的 OpenAI/Anthropic API,完全不经过任何第三方服务器。用户在 Reddit 和 GitHub 上评价它是"目前最接近 Copilot 体验的本地替代品"。
Twinny 采用典型的 VSCode 扩展架构,分为三个核心层:
后端(src/extension/):TypeScript 实现,负责与 LLM 提供商通信、会话管理、代码补全逻辑。核心文件包括:
llm.ts — LLM 调用抽象层provider-manager.ts — 多后端提供商管理(支持 Ollama、OpenAI、Anthropic、OpenRouter、Deepseek、Cohere、Mistral、Perplexity、Groq 共 9 个)ollama.ts — Ollama 专用集成fim-templates.ts — 代码中间填充(Fill-in-the-Middle)提示词模板embeddings.ts — 工作区嵌入向量计算symmetry-service.ts — P2P 分布式推理网络服务review-service.ts — 代码审查服务前端(src/webview/):React 实现,负责 UI 渲染。包含聊天界面(chat.tsx)、消息气泡(message.tsx)、代码块(code-block.tsx)、设置面板(settings.tsx)、模型选择器(model-select.tsx)等 28 个组件。
共享层(src/common/):类型定义(models.ts、types.ts)、常量(constants)、日志(logger.ts)。
技术栈非常纯粹:TypeScript + React + VSCode API,无额外复杂依赖,代码质量规范(有 ESLint + Prettier + 完整测试套件)。

图1:Twinny 在 VSCode 侧边栏的图标与界面
这是 Twinny 最核心的功能。相比于 GitHub Copilot 的行级补全,FIM 可以理解光标前后的上下文,在函数或代码块的中间位置插入补全结果。类比来说,Copilot 像是一个"填词游戏",而 FIM 更像是一个"真正理解代码意图的副驾驶"。
Twinny 的 FIM 实现通过 fim-templates.ts 管理提示词模板,支持 Llama、Codellama 等主流代码模型。用户可以在 VSCode 中直接按 Tab 键接受补全建议,体验几乎与 Copilot 无异。
Twinny 提供了一个独立的侧边栏界面,用户可以:
conversation-history.tsx)template-provider.ts)Twinny 会扫描用户打开的工作区,生成向量嵌入,使 AI 能够理解整个项目的上下文。这意味着 AI 不仅能看到当前文件,还能参考相关的其他文件,提供更准确的建议。这解决了许多 AI 编程工具"只看一个文件、缺乏全局视野"的问题。
Twinny 还集成了一个创新功能——Symmetry 网络(symmetry-service.ts、symmetry-ws.ts)。这是一个去中心化的 P2P 网络,允许用户共享各自的 AI 推理资源。换句话说,如果你有一块不错的 GPU 但算力空闲,可以接入 Symmetry 网络贡献给其他人使用;同时你也可以从网络中获取他人共享的推理资源。这是一种有趣的社区互助模式,类似于分布式计算在 AI 领域的应用。
i18n.ts),自带中文文档(README.zh-CN.md)Twinny 支持的 LLM 提供商覆盖了目前市面上主流的选择:
| 提供商 | 说明 |
|---|---|
| Ollama | 本地运行(Llama2/3、Codellama、Mistral 等) |
| OpenAI | GPT-4o、GPT-4 Turbo 等 |
| Anthropic | Claude 3.5 Sonnet 等 |
| OpenRouter | 聚合多个模型的统一网关 |
| Deepseek | 深度求索系列 |
| Cohere | Command R 系列 |
| Mistral AI | Mistral、Mixtral 系列 |
| Perplexity | 在线搜索增强模型 |
| Groq | 超低延迟推理 |
其中 Ollama 是最推荐的使用方式——完全免费、本地运行、数据不外流。用户只需在本地安装 Ollama,拉取喜欢的模型(如 ollama pull codellama),然后在 Twinny 设置中填入 http://localhost:11434 即可。
Twinny 的安装极为简单:
Ctrl+Shift+P,输入 "Twinny: Select Provider" 选择 AI 后端整个过程不超过 1 分钟,没有任何命令行操作。唯一的门槛是:如果你选择 Ollama,需要具备在本地运行大模型的硬件条件(推荐 8GB+ 内存)。如果你选择云端 API,则需要一个对应平台的 API Key。
相比需要 Docker 部署、需要 GPU 服务器的传统 AI 应用,Twinny 几乎是"零配置"体验。唯一的不足是它没有提供 Docker 一键部署方案——这是一个面向有一定技术背景的开发者工具,用户需要自行安装 Ollama 或配置 API。

图2:Twinny 项目由 twinnydotdev 组织维护
Twinny 的代码质量相当规范:
src/test/ 目录),支持 watch 模式持续测试npm run watch)和打包发布(npm run package)质量评分:85/100。扣分项主要是:作为 VSCode 扩展依赖 VSCode 环境、不支持其他编辑器(vim/neovim 用户需要额外插件)。
Twinny 在隐私保护上做得非常彻底:
这使得 Twinny 成为对代码隐私有严格要求的用户(如安全研究员、开发闭源项目的团队)的理想选择。相比之下,GitHub Copilot 的代码会被用于模型训练(尽管有相关政策保护),而 Twinny 完全不存在这个问题。
Twinny 并非没有缺点,这些在项目 README 和 GitHub Issues 中都有坦诚说明:
Twinny 在 README 中明确写道:"Twinny is provided 'as is'"——这是对用户的诚实,也是一种负责任的声明。
Twinny 的出现代表了一种趋势:AI 编程辅助工具正在从"云端独占"走向"本地优先"。随着 Ollama、LM Studio 等本地 LLM 运行工具的成熟,越来越多的开发者开始意识到"让代码离开自己的电脑"并非必须。
从数据看,Twinny 在 GitHub 上获得了超过 3600 颗星,有数百个已合并的 Pull Request,说明它已经建立了一个活跃的开发者社区。在 VSCode Marketplace 上,它的安装量也在稳步增长。
未来,如果 Symmetry 网络能够成熟,Twinny 还有可能成为一个去中心化的 AI 推理资源共享平台——用户不仅可以在本地运行 AI,还能通过贡献闲置算力换取其他人的 AI 资源,形成一个自给自足的社区生态。
总结:Twinny 是一款专注于隐私保护的 VSCode AI 编程助手,支持 Ollama/OpenAI/Claude 等多后端,提供代码补全、对话、代码审查等完整功能。对于不想把代码交给云端、又想获得 AI 编程辅助的开发者来说,它是目前最值得尝试的开源方案之一。