supermodeltools/cli

GitHub: supermodeltools/cli

通过构建代码调用与依赖图谱并写入纯文本文件,帮助 AI 代理更全面理解代码库,从而节省令牌成本并提升变更影响分析的精度。

Stars: 20 | Forks: 6

# Supermodel CLI 使用代码 graphs 可节省高达 40% 的代理令牌成本。 Supermodel 会映射你仓库中的每个文件、函数和调用关系,并在每个源文件旁边写入 `.graph` 文件。你的代理通过 grep 和 cat 自动读取它们。无需更改提示词。无需额外的上下文窗口。无需学习新工具。 ``` curl -fsSL https://supermodeltools.com/install.sh | sh ``` ## 工作原理 **1. 映射你的代码库** ``` supermodel watch ``` 将你的仓库上传到 Supermodel API,构建完整的调用图,并在每个源文件旁边写入 `.graph` 文件。持续运行以在编码时保持文件更新。 **2. 代理自动读取图谱** `.graph` 文件是纯文本。任何能够读取文件的代理——Claude Code、Cursor、Copilot、Windsurf——都会通过其常规文件读取工具自动获取它们。代理端无需配置。 **3. 提问任意内容** 你的代理现在可以完整查看你的调用图、导入、域和影响范围——针对仓库中的每个文件,而不仅仅是编辑器中打开的文件。 ## 适用于任何 AI 代理 `.graph` 文件是通过 grep 和 cat 读取的纯文本。不需要任何代理特定的集成。 | 代理 | 设置 | |---|---| | **Claude Code** | 运行 `supermodel watch`;安装实时更新钩子(设置向导会自动处理) | | **Cursor** | 运行 `supermodel watch`;打开任何源文件时 `.graph` 文件会出现在上下文中 | | **GitHub Copilot** | 运行 `supermodel watch`;在编辑器中打开 `.graph` 文件以将其包含在上下文中 | | **Windsurf** | 与 Cursor 相同 | | **Aider** | 运行 `supermodel watch`,然后传递 `--read '**/*.graph.*'` 以包含所有图谱文件 | | **其他任意代理** | 运行 `supermodel watch` —— 如果它能读取文件,就能读取 `.graph` 文件 | 要在 Claude Code 中启用实时更新,请在 `.claude/settings.json` 中添加以下钩子: ``` { "hooks": { "PostToolUse": [{ "matcher": "Write|Edit", "hooks": [{"type": "command", "command": "supermodel hook"}] }] } } ``` 如果检测到 Claude Code,`supermodel setup` 向导会自动安装此钩子。 ## 安装 ### macOS ``` brew install supermodeltools/tap/supermodel ``` ### Linux / macOS(使用 curl) ``` curl -fsSL https://supermodeltools.com/install.sh | sh ``` 在首次安装并连接到终端时,会自动运行设置向导。 ### 从源码安装 ``` git clone https://github.com/supermodeltools/cli cd cli go build -o supermodel . ``` ## 快速开始 ``` supermodel setup # authenticate + configure (runs automatically after install) cd /path/to/your/repo supermodel watch # generate graph files and keep them updated ``` ## 命令 ### 文件模式 管理写入每个源文件旁边的 `.graph.*` 分片文件。代理在不发起 API 调用的情况下读取这些文件。 | 命令 | 描述 | |---|---| | `analyze [path]` | 上传仓库,运行完整分析,写入图谱文件(使用 `--three-file` 获取最佳结果,使用 `--no-shards` 跳过分片) | | `skill` | 打印代理感知提示——可管道到 `CLAUDE.md` 或 `AGENTS.md` | | `watch [path]` | 启动时生成图谱文件,然后持续增量更新 | | `clean [path]` | 从仓库中删除所有 `.graph.*` 文件 | | `hook` | Claude Code 的 `PostToolUse` 钩子——将文件变更事件转发给 `watch` 守护进程 | ### 三文件分片格式(推荐) 为获得最佳效果,请使用 `--three-file` 标志生成独立的 `.calls`、`.deps` 和 `.impact` 文件,而不是单个 `.graph` 文件: ``` supermodel analyze --three-file ``` 这为每个源文件生成三个文件: ``` src/cache.go → src/cache.calls.go # who calls what, with file:line → src/cache.deps.go # imports and imported-by → src/cache.impact.go # risk level, domains, blast radius ``` 三文件格式在基准测试中**快 68%**,因为 grep 命中更精确——搜索函数名时只会命中包含调用/被调用数据的 `.calls` 文件,而不是合并后的数据块。 **通过以下方式告知代理这些文件**:将其添加到 `CLAUDE.md` 或 `AGENTS.md` 中: ``` supermodel skill >> CLAUDE.md ``` 或手动添加: ``` This repository has Supermodel graph shard files next to source files. Files ending in .calls.* contain function call relationships. Files ending in .deps.* contain dependency relationships. Files ending in .impact.* contain blast radius data. Read these files to understand relationships between modules before making changes. ``` ### 按需分析 | 命令 | 描述 | |---|---| | `dead-code [path]` | 使用静态分析查找不可达函数(别名:`dc`) | | `blast-radius [file]` | 显示更改文件、函数或差异所影响的文件和函数(别名:`br`、`impact`) | | `audit` | 代码库健康报告:循环依赖、耦合度指标、高影响范围文件 | | `focus ` | 针对文件的令牌高效图谱切片——导入、调用者、类型(别名:`ctx`、`context`) | | `find ` | 在整个代码库中查找符号的使用和调用者 | | `graph [path]` | 显示完整的仓库图谱(人类可读表格、JSON 或 Graphviz DOT) | ### 代码工具 | 命令 | 描述 | |---|---| | `compact [path]` | 剥离注释并缩短标识符以减少令牌使用(别名:`pack`、`minify`) | | `docs [path]` | 生成静态 HTML 架构文档站点 | | `restore` | 构建项目上下文摘要以在上下文压缩后恢复 Claude 的理解 | ### 代理集成 | 命令 | 描述 | |---|---| | `mcp` | 启动一个 stdio MCP 服务器,将图谱工具暴露给 Claude Code 和其他 MCP 主机 | ### 认证与配置 | 命令 | 描述 | |---|---| | `setup` | 交互式设置向导——认证、配置文件模式、安装 Claude Code 钩子 | | `login` | 使用你的 Supermodel 账户认证(浏览器或 `--token` 用于 CI) | | `logout` | 移除存储的凭证 | | `status` | 显示认证和缓存状态 | ## 在 README 中添加徽章 ``` [![Supermodel](https://img.shields.io/badge/supermodel-enabled-blueviolet)](https://supermodeltools.com) ``` [![Supermodel](https://img.shields.io/badge/supermodel-enabled-blueviolet)](https://supermodeltools.com) ## 配置 设置存储在 `~/.supermodel/config.yaml` 中。环境变量会覆盖文件值。 ``` api_key: smsk_... # or SUPERMODEL_API_KEY api_base: https://... # or SUPERMODEL_API_BASE (default: https://api.supermodeltools.com) output: human # human | json files: true # set false to disable .graph.* writing globally (or SUPERMODEL_FILES=false) ``` 对于 CI 或非交互式环境: ``` SUPERMODEL_API_KEY=smsk_live_... supermodel analyze ``` ## MCP 设置 要通过模型上下文协议将 Supermodel 图谱工具直接暴露给 Claude Code,请将服务器添加到 `~/.claude/config.json`: ``` { "mcpServers": { "supermodel": { "command": "supermodel", "args": ["mcp"] } } } ``` 公开 MCP 工具:`analyze`、`dead_code`、`blast_radius`、`get_graph`。 ## 链接 | | | |---|---| | **网站** | [supermodeltools.com](http://supermodeltools.com) | | **API 文档** | [api.supermodeltools.com](https://api.supermodeltools.com) | | **仪表板** | [dashboard.supermodeltools.com](https://dashboard.supermodeltools.com) | | **X / Twitter** | [@supermodeltools](https://x.com/supermodeltools) | | **联系** | [abe@supermodel.software](mailto:abe@supermodel.software) | *有问题?请打开议题或邮件联系 [abe@supermodel.software](mailto:abe@supermodel.software)。*
标签:Aider, AI编码助手, blast radius分析, Claude Code, Cursor, EVTX分析, GitHub Copilot, grep cat读取, SEO: AI编码优化, SEO: 代码图谱工具, SEO: 降低token成本, Token成本优化, Windsurf, 云安全监控, 仓库映射, 代码分析, 代码可视化, 代码图谱, 低成本代码分析, 依赖图谱, 凭证管理, 函数关系, 图文件分析, 性能优化, 扇区影响分析, 技术栈: CLI, 技术栈: Shell, 无需配置, 日志审计, 检测绕过, 死代码检测, 自动化代码洞察, 调用图谱, 静态分析