跳转到内容

状态栏、日志与隐私

状态栏项

twinny 在状态栏右侧有一个项。

显示含义
</>空闲,自动建议开启
</> off空闲,自动建议关闭;Alt+\ 仍可用
旋转图标补全、对话、编辑或审查正在运行;点击可停止
隐藏twinny 已禁用(twinny.enabled 为 false)

悬停显示当前自动补全模型和提供者,以及自动建议是否开启。空闲时点击打开菜单:

  • 开关自动建议,
  • 打开对话,
  • 管理提供者,
  • 打开 twinny 设置,
  • 显示日志。

忙碌时点击执行 Stop generation。

Twinny 输出通道

twinny 所做的一切都写入输出面板的 Twinny 通道。用 Twinny - Show logs、状态栏菜单,或在输出面板下拉框中选择 Twinny 打开。

该通道是 VS Code 日志通道,每行带时间戳和级别,面板中的级别选择器(或 Developer: Set Log Level…)决定你看到多少:

级别内容
Info请求发出一行、返回一行:工作类型、提供者和模型、耗时、提示和回复的大小,以及生成停止的原因(停止标记、行数限制、块结束、取消……)
Debug另加完整的提示和回复,各截至 8,000 字符
Warning / Error失败及提供者的原始信息。始终写入

twinny.enableLogging(默认开启)控制 Info 和 Debug;警告和错误无论如何都会写入。写入前会对 API 密钥和 bearer token 脱敏。

读日志能回答大多数“它为什么这么做”的问题:FIM 模板是否匹配、模型用了多久、提示是否过长、@workspace 选了哪些分块。

隐私

twinny 没有账号、没有遥测、没有自己的服务器。离开你机器的,正是你指定的目标:

你使用发送内容目的地
本地服务器提示和上下文本机上的该服务器
已配对设备提示和上下文,加密你的另一台机器
托管 API提示和上下文该供应商
团队网关提示和上下文,以及供路由规则使用的当前工作区名称你团队的网关及其背后的后端。只有团队开启了录制,网关才保留内容,并会在你连接前说明;见连接到团队
GitHub 拉取请求审查仓库所有者、名称、PR 编号、你的令牌GitHub
其他无

提示和上下文指:光标周围的代码及补全上下文;对话消息及其附件;内联编辑的选区;审查和提交信息的 diff;终端功能的最后输出;用于嵌入的文件分块;以及开启智能体模式时,模型的工具在工作区中读到的内容(文件、搜索结果、git 输出、命令输出)。

工作区索引的重排序器在扩展内运行。P2P 的 DHT 只知道某个密钥可在某个地址访问。twinny 的作者不收集任何使用数据,扩展不会向 twinny.dev 或任何你没有设置的地方发请求。发往你自己服务器的请求可能在你没有操作时发出,例如在本地服务器上加载补全模型的预热。

密钥屏蔽

提示中的 API 密钥、令牌、私钥和密码在请求发出前被替换为 REDACTED_GITHUB_TOKEN_1 之类的占位符,并在回复用到它们的地方换回,因此模型永远看不到真实值,而它写出的代码仍然可用。覆盖对话(包括智能体模式的工具结果)、补全、内联编辑和嵌入。它能识别 GitHub、GitLab、AWS、Stripe、Slack、OpenAI、Anthropic、Google、Hugging Face 和 npm 的令牌格式,以及 PEM 私钥、JWT、URL 中的密码,和代码及 .env 文件中以密钥命名的值;process.env.X 或 <your-key> 这类值不受影响。对话回复会显示 N secrets withheld 及其类型;补全则记录到 Twinny 通道。

twinny.secretShield 决定何时运行:

值屏蔽发往以下目标的请求
offMachine(默认)托管 API、团队网关、已配对设备,以及任何不在本机的服务器(localhost、127.x.x.x、0.0.0.0 和 ::1 算作本机)
always本地服务器也包括在内
off不屏蔽;提示原样发送

团队网关可以在提示到达其后端之前再次屏蔽;见策略。

twinny 写入的文件

路径内容
~/.twinny/templates/提示词模板
~/.twinny/embeddings/<workspace>/工作区索引(LanceDB)和清单
~/.twinny/node/命令行节点的身份和受信设备
VS Code 全局状态提供者(默认)、会话、已配对设备、侧边栏中选择的设置、设为始终运行的命令
VS Code 密钥存储扩展的 P2P 身份;团队网关密钥
扩展全局存储twinny.providerStorageLocation 为 file 时的提供者;P2P 主机锁

这些都可以删除;twinny 会重建所需内容。