{"id":37609852,"url":"https://github.com/deepwn/addi","last_synced_at":"2026-01-16T10:17:53.198Z","repository":{"id":316998124,"uuid":"1065571126","full_name":"deepwn/addi","owner":"deepwn","description":"add others providers + models \u0026 custom tools for your vscode copilot","archived":false,"fork":false,"pushed_at":"2026-01-11T17:12:16.000Z","size":1690,"stargazers_count":6,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-11T18:46:20.663Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deepwn.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-28T01:49:01.000Z","updated_at":"2026-01-11T17:12:20.000Z","dependencies_parsed_at":"2025-09-28T06:20:47.380Z","dependency_job_id":"6d7e43fb-0e33-49f9-a768-58b183688cb4","html_url":"https://github.com/deepwn/addi","commit_stats":null,"previous_names":["deepwn/addi"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/deepwn/addi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepwn%2Faddi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepwn%2Faddi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepwn%2Faddi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepwn%2Faddi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deepwn","download_url":"https://codeload.github.com/deepwn/addi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepwn%2Faddi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28478049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T06:30:42.265Z","status":"ssl_error","status_checked_at":"2026-01-16T06:30:16.248Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-01-16T10:17:53.101Z","updated_at":"2026-01-16T10:17:53.183Z","avatar_url":"https://github.com/deepwn.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ccenter style=\"text-align: center; background-color: lightblue; padding: 40px 40px; border-radius: 10px; margin-bottom: 20px;\"\u003e\n  \u003cimg src=\"resources/icon-bg.min.png\" width=\"128\" height=\"128\" alt=\"Addi Logo\" /\u003e\n\n  \u003ch1\u003eAddi — Extend Your VS Code Copilot\u003c/h1\u003e\n  \u003cp\u003e\u003cb\u003e为 GitHub Copilot 添加自定义 AI 供应商与模型、快捷构造MCP工具的 VS Code 扩展\u003c/b\u003e\u003c/p\u003e\n    \u003ca href=\"https://github.com/deepwn/addi/releases\"\u003e\u003cimg alt=\"Release\" src=\"https://img.shields.io/github/v/release/deepwn/addi?logo=github\" /\u003e\u003c/a\u003e\n    \u003ca href=\"LICENSE\"\u003e\u003cimg alt=\"License\" src=\"https://img.shields.io/badge/License-MIT-green.svg\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/deepwn/addi/issues\"\u003e\u003cimg alt=\"Issues\" src=\"https://img.shields.io/github/issues/deepwn/addi\" /\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/deepwn/addi/stargazers\"\u003e\u003cimg alt=\"Stars\" src=\"https://img.shields.io/github/stars/deepwn/addi\" /\u003e\u003c/a\u003e\n  \u003c/p\u003e\n\u003c/center\u003e\n\n---\n\n## 目录 Table of Contents\n\n- [目录 Table of Contents](#目录-table-of-contents)\n- [简介 Introduction](#简介-introduction)\n- [特性 Features](#特性-features)\n- [快速开始 Quick Start](#快速开始-quick-start)\n- [安装 Installation](#安装-installation)\n  - [插件市场 Marketplace](#插件市场-marketplace)\n  - [本地 VSIX](#本地-vsix)\n- [使用概览 Usage Overview](#使用概览-usage-overview)\n- [供应商与模型管理 Provider \\\u0026 Model Management](#供应商与模型管理-provider--model-management)\n  - [添加供应商 Add Provider](#添加供应商-add-provider)\n  - [添加模型 Add Model](#添加模型-add-model)\n  - [快速编辑 Edit API Key](#快速编辑-edit-api-key)\n  - [切换模型 Switch Model](#切换模型-switch-model)\n- [自定义工具 Custom Tools](#自定义工具-custom-tools)\n- [命令 Commands](#命令-commands)\n- [配置项 Settings Items](#配置项-settings-items)\n- [配置文件格式 Config Format](#配置文件格式-config-format)\n- [调试游乐场 Debug Playground](#调试游乐场-debug-playground)\n- [常见问题 FAQ](#常见问题-faq)\n  - [Q: 为什么我添加的模型在 Copilot 中不可见？](#q-为什么我添加的模型在-copilot-中不可见)\n  - [Q: 如何知道我的模型是否正在使用中？](#q-如何知道我的模型是否正在使用中)\n  - [Q: 我可以添加多少个供应商和模型？](#q-我可以添加多少个供应商和模型)\n- [故障排除 Troubleshooting](#故障排除-troubleshooting)\n- [开发 Development](#开发-development)\n  - [环境准备](#环境准备)\n  - [开发命令](#开发命令)\n  - [清理缓存](#清理缓存)\n- [许可证 License](#许可证-license)\n- [免责声明 Disclaimer](#免责声明-disclaimer)\n- [致谢 Thanks](#致谢-thanks)\n\n---\n\n## 简介 Introduction\n\nAddi 让你在 VS Code 中为 GitHub Copilot 添加自定义 / 第三方 / 自建 **AI Provider 与模型**，并在 Copilot 原生模型选择器中一键切换。它既是一个**模型管理器**，也是一个**交互式调试 Playground**，同时还是一个**快捷构造 MCP 工具**微服务。\n\n\u003e [!Tip]\n\u003e 虽然 vscode 官方有支持自定义模型的计划，但目前仍未开放给大众用户，Addi 作为一个临时解决方案，可以帮助你快速上手并测试各种模型。详见 [Bring Your Own Language Model](https://code.visualstudio.com/docs/copilot/customization/language-models#_bring-your-own-language-model-key) 以及 [Use an OpenAI-Compatible Model](https://code.visualstudio.com/docs/copilot/customization/language-models#_use-an-openaicompatible-model)。\n\n## 特性 Features\n\n| 类别            | 说明                                                          |\n| --------------- | ------------------------------------------------------------- |\n| Provider 管理   | 添加 / 编辑 / 复制 / 删除 / 快速编辑 API Key                  |\n| 模型管理        | 绑定于 Provider 的模型定义与特性标记（视觉 / 工具调用支持等） |\n| 智能模型验证    | 自动检测连通性、视觉能力、工具调用支持和 Token 限制           |\n| 模型切换        | 在 Copilot 模型选择器中勾选后即可切换自定义模型               |\n| 配置导入导出    | JSON 结构备份 / 迁移到其他机器                                |\n| 可配置默认参数  | 默认 family / version / token 限制                            |\n| 排序选项        | 支持按字母、输入/输出 Token 数排序供应商和模型                |\n| UI / 树视图     | 直观的 ActivityBar 侧边栏管理界面                             |\n| 右键上下文操作  | 针对 Provider / Model 的快捷操作                              |\n| Playground 调试 | 发送消息、调节参数、实时查看日志                              |\n| SSE 流式输出    | 支持 OpenAI 及兼容端点增量输出                                |\n| 参数持久化      | 最近一次 Playground 参数自动恢复                              |\n| 测试覆盖        | Streaming / 参数裁剪与持久化测试                              |\n| 日志输出        | 专用 output channel 与可调 Log Level                          |\n\n## 快速开始 Quick Start\n\n```text\n1. 安装扩展（市场或本地 VSIX）\n2. 打开侧边栏 “Addi”\n3. 添加 Provider（填写端点与 API Key）\n4. 为该 Provider 添加模型（id / token 限制等）\n5. 在 Copilot → 模型下拉 → 管理模型 → 勾选你的模型\n6. 返回聊天界面，选择并使用它！\n```\n\n## 安装 Installation\n\n### 插件市场 Marketplace\n\n搜索 “Addi” 并安装；或命令面板输入：`ext install addi`。\n\n### 本地 VSIX\n\n```powershell\nnpm install; npm run package\ncode --install-extension addi.vsix\n# 或在 VS Code 文件列表中右键安装\n```\n\n## 使用概览 Usage Overview\n\nActivity Bar 中的 Addi 图标 → 展开树：\n\n- Provider：可快速添加模型 / 编辑密钥 / 管理模型\n- Custom Tools：添加 / 管理 MCP 自定义工具\n\n\u003e [!Warning]\n\u003e 完整利用自定义模型的 Edit / Agent 模式可能需要 GitHub Copilot Pro 级别订阅；Free 版本目前测试仅支持用于 Ask 模式使用自定义模型。请确保账户权限满足需求。\n\n## 供应商与模型管理 Provider \u0026 Model Management\n\n### 添加供应商 Add Provider\n\n1. 点击 “Add Provider”\n2. 填写：名称 / 描述 / 网站 / API Endpoint / API Key / 接口类型(OpenAI 兼容等)\n3. 保存后出现在列表\n\n### 添加模型 Add Model\n\n1. 选中 Provider → Add Model\n2. 填写：id / 名称(可选) / maxInputTokens / maxOutputTokens / 视觉支持 / 工具支持\n3. 保存后挂载在对应 Provider 下\n\n### 模型验证 Model Verification\n\n在添加或编辑模型时，点击底部的 **\"Verify \u0026 Detect\"** 按钮可以自动测试：\n\n- **连通性**：检查 API Key 和 Endpoint 是否有效\n- **视觉能力**：自动检测模型是否支持图片输入\n- **工具调用**：自动检测模型是否支持 Function Calling\n- **Token 限制**：自动探测并填充 Max Input / Output Tokens (使用二分查找与参数估算，不消耗真实 Token)\n\n\u003e [!Tip]\n\u003e 如果不确定模型的 Token 限制，可以将 `Max Input Tokens` 和 `Max Output Tokens` 留空（或设为`?`），点击 Verify \u0026 Detect 后 Addi 会自动探测并填入建议值。如果检测不准确，请参照官方模型文档手动设置。\n\u003e 所有附属能力（视觉 / 工具调用）也会在验证过程中自动测试并更新勾选（不适配则会自动去除勾选）。\n\n### 快速编辑 Edit API Key\n\nProvider 节点右侧钥匙图标 → 输入密钥 → 保存。\n\n## 自定义工具 Custom Tools (MCP)\n\nAddi 内置了一个 **Model Context Protocol (MCP)** Server，支持通过 YAML 文件定义自定义工具。这意味着你的本地脚本可以被 AI 像原生函数一样调用。\n\n并且为了方便用户理解与编辑，Addi 的自定义工具语法完全兼容 GitHub Actions 的 `composite` 语法规范，使用优秀的开源本地化 actions 运行项目 `nektos/act` 作为模板解析引擎。\n\n详细文档与示例：[自定义工具指南 (CUSTOM_TOOLS.md)](CUSTOM_TOOLS.md)\n\n### 核心特性\n\n- **多语言支持**: 支持 PowerShell, Bash, Python, Node.js 等多种运行时。\n- **热重载**: 修改 YAML 文件后自动生效，无需重启 VS Code。\n- **无缝集成**: 兼容 GitHub Actions `composite` 语法。\n\n\u003e [!Tip]\n\u003e 自定义工具的 YAML 文件支持热重载，修改后会自动生效，无需重启 VS Code 或手动处置 Addi MCP Server 进程。\n\u003e 但因 VS Code 资源按需运行的基本原则，修改 yaml 模板文件后的 Copilot 工具列表将只会在 Chat 触发服务启动时发出 `list_tool` 并更新 UI 中显示的工具。或您可尝试通过命令面板执行 `MCP: List Server` 选中并手动启动服务来同步刚增加修改或删除的工具列表。\n\n### 快速概览\n\n1. **创建工具文件**：在 `.addi/public/` (共享) 或 `.addi/private/` (私有) 目录下创建 `.yaml` 文件。\n2. **定义工具**：\n   ```yaml\n   name: 'get-ip'\n   description: 'Get public IP'\n   runs:\n     using: 'composite'\n     steps:\n       - run: curl -s http://ip-api.com/json/\n         shell: bash\n   ```\n3. **使用工具**：在对话中直接询问 \"Check my IP\"。\n\n## 命令 Commands\n\n| Command ID          | 标题                 | 用途                |\n| ------------------- | -------------------- | ------------------- |\n| `addi.manage`       | Management           | 打开管理视图        |\n| `addi.exportConfig` | Export Configuration | 导出配置 (支持加密) |\n| `addi.importConfig` | Import Configuration | 导入配置 (支持解密) |\n| `addi.showLogs`     | Show Logs            | 打开 Addi 日志输出  |\n\n\u003e **注意**: 导出配置时，如果**不设置密码**，导出的 JSON 文件将**不包含**任何 API Key（为了安全）。如果需要备份或迁移 API Key，请务必设置导出密码，此时文件将以加密格式保存。\n\n`Show Logs` 将在 VS Code 的 **输出 (Output)** 面板中定位 “Addi” 通道，可随时查看调试信息。通过 `Set Log Level` 或在设置中修改 `addi.logLevel`，即可在 `off / error / warn / info / debug` 之间切换输出详细程度。\n日志内容会自动脱敏，并额外记录模型解析、请求选项等关键上下文，便于排查问题。\n\n\u003e 这些命令大多通过树视图右键或标题按钮触发，命令面板默认隐藏。\n\n## 配置项 Settings Items\n\n| Setting                         | 默认    | 说明                                                |\n| ------------------------------- | ------- | --------------------------------------------------- |\n| `addi.defaultMaxInputTokens`    | 4028    | 默认最大输入 tokens                                 |\n| `addi.defaultMaxOutputTokens`   | 1024    | 默认最大输出 tokens                                 |\n| `addi.defaultModelFamily`       | \"Addi\"  | 默认模型 family                                     |\n| `addi.defaultModelVersion`      | \"1.0.0\" | 默认模型 version                                    |\n| `addi.saveConfigToSettingsSync` | true    | 是否保存到 VSCode Settings Sync 云端                |\n| `addi.logLevel`                 | warn    | 控制 Addi 输出通道的最低日志级别                    |\n| `addi.sortRule`                 | \"none\"  | 排序规则 (none/alphabet/input tokens/output tokens) |\n| `addi.sortTarget`               | \"both\"  | 排序目标 (providers/models/both)                    |\n\n更改方法：VS Code 设置搜索 “addi” 或在视图标题中点击 Settings。\n\n## 配置文件格式 Config Format\n\n配置文件以 JSON 多维数组存储，每个供应商包含其模型列表：\n\n```json\n[\n  {\n    \"id\": \"provider-id\",\n    \"name\": \"OpenAI\",\n    \"providerType\": \"openai\",\n    \"description\": \"提供 GPT 系列模型\",\n    \"website\": \"https://openai.com\",\n    \"apiEndpoint\": \"https://api.openai.com/v1\",\n    \"apiKey\": \"sk-...\",\n    \"models\": [\n      {\n        \"id\": \"gpt-4\",\n        \"name\": \"GPT-4\",\n        \"family\": \"Addi\",\n        \"version\": \"1.0.0\",\n        \"maxInputTokens\": 8192,\n        \"maxOutputTokens\": 2048,\n        \"capabilities\": {\n          \"imageInput\": false,\n          \"toolCalling\": false\n        }\n      }\n    ]\n  }\n]\n```\n\n## 调试游乐场 Debug Playground\n\n提供交互式调试界面，发送消息、调节参数、查看日志。现阶段主要用于测试与调试自定义模型参数。\n\n支持设定参数：Temperature / Top P / Max Output Tokens / Presence Penalty / Frequency Penalty / System Prompt。参数在 workspaceState 中持久化。OpenAI 兼容端点支持 SSE 流式增量输出，可中途取消（AbortController）。不支持流的 Provider 自动回退普通请求。\n\n## 常见问题 FAQ\n\n### Q: 为什么我添加的模型在 Copilot 中不可见？\n\nA: 请确保：\n\n1. 您已为供应商配置了 API 密钥\n2. 您使用的是 GitHub Copilot 个人计划\n3. 模型已正确添加并保存\n\n### Q: 如何知道我的模型是否正在使用中？\n\nA: 您可以在 Copilot 聊天界面的模型选择器中查看当前选中的模型。\n\n### Q: 我可以添加多少个供应商和模型？\n\nA: 扩展对供应商和模型数量没有硬性限制，但建议根据您的实际需求合理添加。\n\n### Q: 我的自定义工具没有显示在 Copilot 的工具列表中？\n\nA: 请确保：\n\n1. 自定义工具的 YAML 文件位于正确的目录（`.addi/public/` 或 `.addi/private/`）。\n2. 文件格式符合规范且无语法错误。\n3. MCP 服务器已启动（修改 YAML 文件后，发起一次对话，或可通过执行 `MCP: Start Server` 命令手动启动）。\n\n## 故障排除 Troubleshooting\n\n| 问题                  | 排查步骤                                                           |\n| --------------------- | ------------------------------------------------------------------ |\n| 无法切换模型          | 重启 VS Code / 确认 Provider Key / 在模型管理面板勾选显示模型      |\n| 无法在 Agent 模式使用 | 确认 Copilot 订阅等级 / 检查模型支持情况（官方要求需支持工具调用） |\n| 新增的工具不显示      | 确认 YAML 语法正确 / 检查文件路径 / 确认 MCP 服务器已在运行        |\n| 工具列表重复显示      | 重启 VS Code / 确认没有自编译版本的 Addi 插件及 MCP 服务正在运行   |\n| 请求失败              | 查看 Addi 输出日志 \u0026 控制台 / 校验 API Endpoint \u0026 Key              |\n| 流式不工作            | Provider 是否支持 SSE；禁用流后重试                                |\n| 配置未同步            | 检查 `addi.saveConfigToSettingsSync` 设置                          |\n\n## 许可证 License\n\nMIT © 2025-present [deepwn](https://github.com/deepwn) — 详见 [LICENSE](LICENSE)。\n\n## 免责声明 Disclaimer\n\n本扩展仅提供客户端功能，使用第三方 / 自建 API 带来的数据与安全风险由使用者自行承担。我们不对直接或间接损失负责。\n\n## 致谢 Thanks\n\n- GitHub Copilot 团队与 VS Code 扩展生态\n- OpenAI / Anthropic / Google 等公共 API 生态\n- 所有提交 Issue / PR 的贡献者 🙌\n\n---\n\n欢迎 Star 支持项目，如果它对你有帮助！\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeepwn%2Faddi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeepwn%2Faddi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeepwn%2Faddi/lists"}