depwire/depwire

GitHub: depwire/depwire

为 AI 编码助手提供本地依赖图与上下文层,解决 AI 不了解架构导致的盲改风险。

Stars: 19 | Forks: 1

# Depwire
[![npm version](https://img.shields.io/npm/v/depwire-cli.svg?style=flat-square)](https://www.npmjs.com/package/depwire-cli) [![npm downloads](https://img.shields.io/npm/dm/depwire-cli.svg?style=flat-square)](https://www.npmjs.com/package/depwire-cli) [![MCP Registry](https://img.shields.io/badge/MCP-registry-blue?style=flat-square)](https://registry.modelcontextprotocol.io/servers/io.github.atef-ataya/depwire) [![Glama](https://glama.ai/mcp/servers/depwire/depwire/badges/score.svg)](https://glama.ai/mcp/servers/depwire/depwire) [![License](https://img.shields.io/badge/license-BUSL--1.1-orange.svg?style=flat-square)](LICENSE) [![GitHub stars](https://img.shields.io/github/stars/depwire/depwire.svg?style=flat-square)](https://github.com/depwire/depwire/stargazers)
**你的 AI 不知道你的架构。Depwire 知道。** Depwire 是你的 AI 编码助手与代码库之间的基础设施层。在 AI 接触任何文件之前,Depwire 已经绘制了所有连接、评估了每个风险,并模拟了每一次变更。 ![Depwire CLI demo on honojs/hono](https://raw.githubusercontent.com/depwire/depwire/main/assets/depwire-demo-cli.gif) ⭐ 如果 Depwire 帮你避免了构建失败,[给仓库加星](https://github.com/depwire/depwire) — 这有助于项目成长。 ## 问题 AI 编码工具越来越智能。但它们仍有一个根本盲点:在动手之前,它们不了解你的架构。 你让 Claude 删除一个工具文件。它干净利落地删除了。自信满满,没有任何警告。 然后你运行构建。30 个文件崩溃了。 Claude 一无所知。它只看到一个文件,没看到 30 个下游消费者。 这不是模型的问题。这是上下文的问题。AI 在盲飞。 ## 基础设施层 ![Depwire architecture](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/a9a68a9f44161932.svg) Depwire 位于你的 AI 与代码库之间。它使用 tree-sitter 构建完整的依赖图——确定性的,而非概率性的——并通过 17 个 MCP 工具提供给 AI。 四项保证: - **本地运行** — 所有操作在本地机器完成。无云端解析。数据不离开你的设备。 - **安全** — 你的代码永不离开你的机器。安全扫描器无需 API 密钥。 - **令牌高效** — Depwire 提供预计算的图数据。你的 AI 获得精准答案,而非文件倾倒。工具调用减少 40%,文件读取减少 56%。 - **确定性** — tree-sitter 每次以相同方式解析代码。100% 准确。不是猜测。 ## 从这里开始 ``` npm install -g depwire-cli ``` 三个命令用于理解任意代码库: ``` depwire viz # open interactive arc diagram in browser depwire whatif # simulate changes before touching code depwire security # scan for vulnerabilities ``` ## What If 模拟 在触碰任何内容之前了解影响范围。 ``` depwire whatif . --simulate delete --target src/utils/encode.ts ``` 在 [honojs/hono](https://github.com/honojs/hono) 上的真实输出 — 352 个文件,6,245 个符号: ``` Health Score: 41 → 41 (+0 → unchanged) Affected Nodes: 29 Broken Imports: 30 • src/utils/jwt/jwt.ts imports decodeBase64Url • src/adapter/aws-lambda/handler.ts imports encodeBase64 • src/utils/basic-auth.ts imports decodeBase64 [27 more...] Removed Edges: 32 ``` 在触碰单个文件之前。零文件 I/O。纯内存模拟。 五种操作: ``` depwire whatif . --simulate delete --target src/utils/encode.ts depwire whatif . --simulate move --target src/utils/encode.ts --destination src/core/encode.ts depwire whatif . --simulate rename --target src/utils/encode.ts --destination src/utils/encoder.ts depwire whatif . --simulate split --target src/services/auth.ts --symbols "validateToken,refreshToken" depwire whatif . --simulate merge --target src/utils/helpers.ts --merge-target src/utils/formatters.ts ``` 不带 `--simulate` 运行以打开浏览器 UI — 并排弧图展示当前状态与模拟状态。 ## 安全扫描器 AI 生成的代码会引入漏洞。Depwire 在它们到达生产环境前捕获它们。 ``` depwire security . # full repo scan depwire security . --target src/auth.ts # single file depwire security . --format sarif # GitHub Security tab integration depwire security . --fail-on high # CI gate — exit 1 if HIGH or above depwire security . --class injection # specific check only ``` 在 honojs/hono 上的真实输出: ``` 6 Critical 19 High 14 Medium 1 Low ``` 10 个检查类别:依赖项 CVE、Shell 注入、硬编码密钥、路径遍历、认证绕过、输入验证、信息泄露、密码学弱点、前端 XSS 以及架构级风险。 图感知严重性:一个可通过 MCP 工具或 HTTP 路由访问的中等 Shell 注入会自动升级为关键。这是通用 SAST 工具无法复制的——Depwire 了解你的架构,因此知道什么实际可达。 作为 MCP 工具 `security_scan` 提供,并通过 `depwire-cli/sdk` 使用。 ## 可视化 ![Depwire arc diagram visualization](https://raw.githubusercontent.com/depwire/depwire/main/assets/depwire-demo-viz.gif) ``` depwire viz ``` 交互式弧图,展示你整个代码库。每个文件、每个连接、每个依赖关系一目了然。悬停查看详情。点击筛选。导出为 PNG 或 SVG。 ## 时间图谱 ![Depwire temporal graph on honojs/hono](https://raw.githubusercontent.com/depwire/depwire/main/assets/depwire-temporal-hono.gif) ``` depwire temporal ``` 通过 Git 历史观察架构演化。时间轴滑块回溯提交——弧图随代码库的生长、耦合与重构而变形。这是别人从未做到过的。 ## 全部命令 | 命令 | 描述 | |------|------| | `depwire viz` | 浏览器中的交互弧图 | | `depwire whatif` | 在触碰代码前模拟变更 | | `depwire security` | 扫描漏洞——图感知严重性 | | `depwire health` | 6 个维度的 0-100 架构健康分 | | `depwire dead-code` | 带置信度评分的未使用符号查找 | | `depwire docs` | 生成 13 份架构文档 | | `depwire temporal` | 通过 Git 历史可视化架构演化 | | `depwire parse` | 解析并导出依赖图为 JSON | | `depwire mcp` | 启动 MCP 服务器供 AI 编码助手使用 | 所有命令自动检测项目根目录。无需路径配置。 ## MCP 服务器 — AI 集成 将 Depwire 连接到任意 MCP 兼容的 AI 工具。你的 AI 可自主调用 17 个工具。 **Claude Desktop** — 添加到 `~/Library/Application Support/Claude/claude_desktop_config.json`: ``` { "mcpServers": { "depwire": { "command": "npx", "args": ["-y", "depwire-cli", "mcp"] } } } ``` **Cursor** — 设置 → 功能 → 实验性 → 启用 MCP → 添加服务器: - 命令:`npx` - 参数:`-y depwire-cli mcp` ![Claude Desktop with Depwire MCP](https://raw.githubusercontent.com/depwire/depwire/main/assets/claude.gif) ### 17 个 MCP 工具 | 工具 | 描述 | |------|------| | `connect_repo` | 连接到任意本地项目或 GitHub 仓库 | | `get_architecture_summary` | 项目高层概览 | | `get_file_context` | 完整上下文 — 导入、导出、依赖者。包含跨语言连接。 | | `get_dependencies` | 某符号依赖什么? | | `get_dependents` | 依赖此符号的是什么? | | `get_symbol_info` | 查询任意符号的详细信息 | | `search_symbols` | 在代码库中按名称查找符号 | | `list_files` | 列出所有文件及统计信息 | | `impact_analysis` | 修改某符号会破坏什么?包含跨语言边。 | | `visualize_graph` | 生成交互式弧图 | | `get_health_score` | 0-100 健康分及建议 | | `find_dead_code` | 已定义但从未被引用的符号 | | `get_project_docs` | 获取自动生成的代码库文档 | | `update_project_docs` | 按需重新生成文档 | | `get_temporal_graph` | 随 Git 历史演化的架构 | | `simulate_change` | 在触碰代码前模拟移动/删除/重命名/拆分/合并。返回健康变化、破坏的导入、受影响的节点。包含跨语言边。 | | `security_scan` | 扫描漏洞并图感知提升严重性。无需 API 密钥。 | ## 跨语言边检测 Depwire 检测不同语言文件之间的连接。 TypeScript 的 `fetch('/api/users')` 调用匹配到 Python 的 `@app.get('/api/users')` 路由定义——这就是跨语言边。删除 Python 路由后,Depwire 会显示 TypeScript 调用者已损坏。 支持模式: - REST API 边 — fetch/axios 调用匹配到 Express、FastAPI、Flask、Gin 路由定义 - 子进程边 — execSync/subprocess.run 调用匹配到图中的目标文件 这些边贯穿所有现有功能:What If 模拟、影响分析、安全扫描器与弧图可视化。 ## 架构健康分 ``` depwire health . ``` ``` Overall: 68/100 (Grade: D) Coupling 70 C Cohesion 80 B Circular Dependencies 100 A God Files 40 F Orphans & Dead Code 20 F Dependency Depth 60 D ``` 6 个维度。字母等级。可操作建议。跨运行的趋势追踪。 ## SDK Depwire 提供稳定的公共 API 用于程序化使用与 CI 流水线: ``` npm install depwire-cli ``` ``` import { parseProject, buildGraph, calculateHealthScore, analyzeDeadCode, generateDocs, scanSecurity, SimulationEngine, detectCrossLanguageEdges, searchSymbols, getImpact, getArchitectureSummary, DepwireSDKVersion } from 'depwire-cli/sdk'; ``` SDK 是稳定的公共 API 表面。所有集成应 `depwire-cli/sdk` 导入,而非内部路径。 ## 为何选择 Depwire | | Depwire | 基于 RAG 的工具 | LLM 扫描 | |--|---------|-----------------|----------| | 方法 | 确定性情利图 | 概率性匹配 | 暴力扫描 | | 准确度 | 100% — tree-sitter AST | ~70% — 嵌入匹配 | 变化 | | 重构安全性 | 完整调用链追踪 | 遗漏间接引用 | 盲目编辑 | | 令牌成本 | 超低 — 精准读取 | 高 — 上下文填充 | 极高 | | 跨语言支持 | REST + 子进程边 | 无 | 无 | | 安全扫描器 | 图感知严重性提升 | 无 | 无 | | What If 模拟 | 触碰代码前即可 | 无 | 无 | | 本地运行 | 始终 | 变化 | 从不 | ## 语言支持 TypeScript、JavaScript、Python、Go、Rust、C — 支持所有支持语言之间的跨语言边检测。 C# / .NET 支持将在 v1.1 中推出。 ## 云端仪表板 [app.depwire.dev](https://app.depwire.dev) — 完整的依赖图、健康分、未使用代码报告,以及浏览器中的 AI 代码库聊天。无需本地设置。 - 公共仓库免费 - 专业版($19/月)— 无限仓库、私有仓库支持、AI 代码库聊天 ## 路线图 **已发布** - 弧图可视化 - 17 个 MCP 工具 - 多语言支持(TypeScript、JavaScript、Python、Go、Rust、C) - 架构健康分 - 未使用代码检测 - 时间图谱 - What If 模拟 — CLI + 浏览器 UI - 安全扫描器 — 图感知严重性提升 - 跨语言边检测 — REST API + 子进程 - 公共 SDK — `depwire-cli/sdk` - 云端仪表板 — app.depwire.dev - PR 影响 GitHub Action **即将推出** - C# / .NET 语言支持 - AI 建议的重构 - VSCode 扩展 - 自然语言架构查询 ## 安全态势 Depwire 是只读的。它从不写入、修改或执行你的代码。 - 使用 tree-sitter 解析 — 与 VS Code 和 Zed 使用的解析器相同 - 可视化服务器仅绑定到 localhost - 数据不离开你的机器 - 阻止访问敏感系统目录 - 使用来源验证发布 npm 包 详见 [SECURITY.md](SECURITY.md)。 ## 贡献 1. 叉仓库 2. 创建功能分支 3. 为新功能添加测试 4. 提交拉取请求 5. 签署 CLA(首次 PR 自动处理) ## 作者 **Atef Ataya** — AI 架构师、作者、Depwire 创建者。 - [YouTube](https://www.youtube.com/@atefataya) — 60 万+ 订阅者,涵盖 AI 代理、MCP 与 LLM - [The Architect's Playbook: 5 Pillars](https://www.amazon.com/dp/B0GCHNW2W8) - [LinkedIn](https://www.linkedin.com/in/atefataya/) ## 许可证 [商业源码许可 1.1](LICENSE) — 个人及公司内部使用免费。2029 年 2 月 25 日后转换为 Apache 2.0。 商业许可请联系 atef@depwire.dev 基于 [tree-sitter](https://tree-sitter.github.io/tree-sitter/)、[graphology](https://graphology.github.io/)、[D3.js](https://d3js.org/) 和 [Model Context Protocol](https://modelcontextprotocol.io/)。
标签:AI编码助手, AI辅助重构, AST解析, MCP服务, npm包, tree-sitter, WebSocket, 上下文感知, 云安全监控, 代码架构, 依赖分析, 依赖图, 前端工程化, 变更影响分析, 基础设施层, 开发效率, 确定性分析, 编程工具, 网络可观测性, 自动化攻击, 远程代码执行, 重构安全, 静态分析, 风险预测