Loading...

文章背景图

twinny:留在你网络里的本地 AI 代码补全 VS Code 插件|部署与使用全指南

2026-11-05
0
- 字
- 分钟
|

twinny:留在你网络里的本地 AI 代码补全 VS Code 插件|部署与使用全指南

适用读者:想在 VS Code 里获得 Copilot 式代码补全与聊天、又不想把代码发到第三方云端的开发者;已经在用 Ollama / LM Studio / llama.cpp 跑本地模型、想给编辑器接一个本地补全的人;以及想给团队搭一个统一模型网关的小团队。本文所有步骤、快捷键、端口与命令均来自官方 GitHub README 与官方文档站,可直接照做;项目 MIT 许可、活跃维护、无遥测、免登录。

一、项目简介

twinny 是一个跑在 Visual Studio Code 里的 AI 编程助手,核心理念是"stays inside your network"(留在你自己的网络里):代码补全、内联编辑、聊天、代码评审这些能力,全部指向你自己选的模型服务——可以在你本机、局域网另一台机器、某个托管 API,或团队共用的一个网关上。官方 README 明确:免费、开源、MIT 许可、无遥测、免登录。

核心信息一览

项目 内容
官方仓库 https://github.com/twinnydotdev/twinny
扩展市场 https://marketplace.visualstudio.com/items?itemName=rjmacarthy.twinny
官方文档 https://docs.twinny.dev/
许可证 MIT("twinny is actively developed and provided as is")
运行环境 Visual Studio Code 1.93 或更新版本
模型服务 Ollama / LM Studio / llama.cpp / QVAC / Oobabooga / LiteLLM / Open WebUI,或任意 OpenAI 兼容服务;也支持托管 API 与团队网关
项目状态 活跃开发中(README 自述 "actively developed"),自 2023 年起由一人维护

适用场景

  • 已经在本机用 Ollama 等工具跑了 7B 级模型,想在 VS Code 里得到幽灵文本补全;
  • 在意代码隐私,不想把上下文发到某个 SaaS 补全服务;
  • 团队想在内部署一个网关,让每人一把 Key、统一模型与用量统计;
  • 想要补全用本地小模型、聊天用更强的托管模型这种"混用"组合。

能力边界

  • 它是 VS Code 扩展,不是独立编辑器,需要先装 VS Code 1.93+;
  • 它不自带模型,必须先有一个能跑的模型服务(本地或远程);
  • Agent 模式是实验性(experimental)功能;
  • 团队网关的插件/策略/审计等高级能力属于付费许可,个人本地使用完全免费。

二、功能特性

  • 代码补全(Code completion):边敲边出 Fill-in-the-middle 幽灵文本,在合理处自动停下;上下文来自打开的文件、import、语言服务器与你最近的编辑;官方调校到在 7B 模型上也好用;
  • 内联编辑(Inline edit):Ctrl+I 唤起,描述要改什么,然后在编辑器里以 diff 形式逐块接受/拒绝;也能对任意诊断用"Fix with twinny";
  • 聊天(Chat):与你的代码对话,输入 @ 可附加文件、符号、问题面板、git diff、终端内容或工作区索引搜索;对话保留;
  • Agent 模式(实验性):聊天里切换开关或按 Shift+Tab,让模型自己读、搜索、编辑文件并在工作区跑命令,每一步都在回复里展示;命令默认先问你再执行;
  • 工作区索引(Workspace index):对整个工作区做关键词+向量混合检索,重排后再喂给提示,保存时增量更新,回复里会标出来源;
  • 代码评审(Code review):评审工作区改动、某分支相对基线,或直接评审一个 GitHub PR;并能基于已暂存 diff 生成提交信息;
  • 终端(Terminal):用自然语言写命令,执行前先给你看;命令失败时它会定位到具体文件与行并给出修复建议;
  • 提示模板(Templates):所有功能都是一条普通 VS Code 命令,可改键位、可编辑提示模板。

三、官方界面预览

官方 README 未内嵌界面截图,本文按规程不放网络杂图或 AI 占位图,故无配图;装好扩展后,补全以编辑器内幽灵文本出现,聊天与索引面板在 VS Code 侧边栏,具体界面以你安装版本为准。

四、官方链接汇总

资源 地址
GitHub 仓库 https://github.com/twinnydotdev/twinny
VS Code 扩展市场 https://marketplace.visualstudio.com/items?itemName=rjmacarthy.twinny
官方文档 https://docs.twinny.dev/
快速上手 https://docs.twinny.dev/getting-started/quick-start/
故障排查 https://docs.twinny.dev/getting-started/troubleshooting/
更新日志 https://docs.twinny.dev/reference/whats-new/
团队版介绍 https://twinny.dev/
中文 README 仓库内 README.zh-CN.md

五、前置要求

  1. Visual Studio Code 1.93 或更新版本(README 明确要求);
  2. 一个模型服务,任选其一:
    • 本机:Ollama、LM Studio、llama.cpp、QVAC、Oobabooga、LiteLLM、Open WebUI,或任意 OpenAI 兼容服务;
    • 局域网另一台机器:用 Devices 功能配对,走加密 P2P;
    • 托管 API:OpenAI、Anthropic、Mistral(补全用 Codestral)、DeepSeek、OpenRouter、Gemini、Groq、Cohere、Perplexity;
  3. 显卡/内存:官方建议补全用 7B 级别模型即可获得较好体验;具体硬件按所选模型为准,文档站有"哪些模型在什么硬件上能干什么"的列表;
  4. (可选)Node.js:只有要自己跑团队网关 twinny-server 时才需要,普通用户装扩展即可。

端口这件事:README 说 Ollama、LM Studio、llama.cpp 会在首次启动时被 twinny 在它们"常用端口"上自动发现,不用你手填地址;具体默认地址以文档站对应 provider 页为准。

六、安装部署

普通用户(三步):

  1. 在 VS Code 扩展市场搜索并安装 twinny(市场页:rjmacarthy.twinny),确认你的 VS Code ≥ 1.93;
  2. 先把你的模型服务跑起来——比如本地启动 Ollama 并 ollama pull 一个模型;
  3. 回到 VS Code,twinny 首次启动会探测常用端口上的模型服务,并问你用哪个模型做补全、哪个做聊天;然后直接开始敲代码,补全会以幽灵文本出现,侧边栏是聊天。

团队网关(可选):

# 在装着模型的那台机器上一键起网关
npx twinny-server quickstart

这条命令会自动发现你的模型服务、写好配置、生成一个管理员 Key 并开始服务。之后在管理页设置团队默认模型、给每位开发者发邀请链接(点开即自动在 VS Code 里连上网关),并查看每人/每模型的用量。

七、配置项说明

twinny 的配置重心是"选哪个模型服务、哪个模型干什么活":

配置项 说明
补全模型(completion) 用于幽灵文本补全,建议用小而快的模型(官方针对 7B 调校);Mistral 系可用 Codestral
聊天模型(chat) 用于侧边栏对话与 agent,可换更强的托管模型
模型服务地址 本地服务(Ollama/LM Studio/llama.cpp)首次自动发现;手动填时按 OpenAI 兼容地址格式
API Key 接托管 API 时填对应 Key;纯本地服务不需要
Devices 配对码 接另一台机器的 GPU 时,用配对码加密直连,无账号、无中转
工作区索引 用 Embeddings 标签页管理;从旧版基于名字的索引升级后,需手动重建一次

官方强调可以混用:"a local model for completion, a hosted one for chat"——补全走本地、聊天走云端,两边互不影响。

关于隐私:README 反复强调"No telemetry, no sign-in"(无遥测、免登录),并把"模型跑在哪、数据去哪"这件事完全交给你选。接本地 Ollama 时代码上下文不出本机;接托管 API 时则按那家服务商的隐私政策处理。状态条、日志与隐私边界在文档站"Status bar, logs and privacy"一页有专门说明。

八、使用流程

  1. 装好扩展、跑起模型,首次让 twinny 选好补全/聊天模型;
  2. 写代码:正常敲字,补全以灰色幽灵文本出现,接受按 Tab 类常用键,在合理处自动停;
  3. 改代码:选中一段按 Ctrl+I,用自然语言描述改动,看 diff 逐块接受/拒绝;
  4. 问代码:打开侧边栏聊天,用 @ 附加文件、git diff、终端内容等;
  5. 让它干活(实验):聊天里切到 Agent 模式或按 Shift+Tab,它会自己读文件、搜索、改文件、跑命令,每步都展示,执行命令前先问你;
  6. 提交前:让它评审工作区改动、基于暂存 diff 生成提交信息;
  7. 终端里:用自然语言生成命令,先预览再执行;失败了它会定位到文件行并给修复建议。

九、常用运维 / 更新命令

# 普通用户:在 VS Code 扩展面板里更新 twinny(或等自动更新)

# 团队网关:一键快速启动(自动发现模型服务并写配置)
npx twinny-server quickstart

# 升级后重建工作区索引(从旧版基于名字的索引存储升级时,在 Embeddings 标签页重建一次)
# 官方说明:现有索引不会被自动删除,需手动重建一次

# 开发者跑测试(仓库 CONTRIBUTING)
xvfb-run -a npm test

十、常见故障排查

现象 原因与处理
完全没有幽灵补全 模型服务没起来,或 twinny 没选中补全模型;先确认 Ollama/LM Studio 在跑、模型已 pull,再在扩展设置里指定补全模型
找不到本地模型 首次启动只自动探测常用端口;若你改了端口,手动在 provider 设置里填地址;文档站 troubleshooting 页逐条列了报错含义
聊天能用、补全不出来 补全模型与聊天模型是分开配的;补全建议用快的 7B 模型,别把补全指向一个很慢的大模型
Agent 模式不执行命令 它默认"先问你再执行";按提示确认即可,或按官方说明放开自动执行
升级后索引不对 从旧版名字索引升级后,在 Embeddings 标签页手动重建一次索引
团队网关连不上 先在网关那台机器上跑通 npx twinny-server quickstart,再用管理页发的邀请链接让开发者接入
担心上传代码 twinny 无遥测、免登录,数据只发你自己选的模型服务;接纯本地模型时代码不出本机,可对照文档站隐私说明自查

十一、风险与责任使用声明

  1. 本文要求(VS Code 1.93+)、快捷键(Ctrl+I、Shift+Tab)、命令(npx twinny-server quickstart、xvfb-run -a npm test)、支持的模型服务清单均来自官方 README 与文档站;
  2. twinny 是本地/自托管工具,模型推理产生的费用(接托管 API 时)由你与模型服务商结算;本地模型则占用你自己的显卡与电力;
  3. Agent 模式为实验性功能,会读、写文件并可执行命令,请在确认每一步操作后再放行,重要改动建议先 git 提交留底;
  4. 团队网关的插件、策略、审计、录制等高级能力属于付费许可;个人本地使用免费。项目以 MIT 许可证"按现状"提供,使用风险自负,本文不托管、不代理 twinny。
评论交流

文章目录