codemapper(简称 cm)通过 tree-sitter AST 解析映射代码库中的符号(函数、类、方法等),全部在内存中运行,无需数据库。支持 Python、JavaScript/TypeScript、Rust、Java、Go、C、Swift 和 Markdown。
用途与场景:适合探索陌生代码库、查找 Bug、重构前评估影响、理解 API 表面,以及结合 Git 历史分析符号级别变更。
主要能力与常用命令:
- 项目概览:cm stats . 查看文件数量、符号分布与解析耗时。
- 结构映射:cm map . --level 2 --format ai 查看带符号计数的文件结构。
- 符号查找:cm query <symbol> 模糊搜索函数、类、方法;cm inspect ./path/to/file 深入单个文件。
- 查 Bug:cm query <suspected_function> --show-body 查看实现;cm callers <function> 查调用者;cm trace <entry_point> <suspected_function> 追踪调用路径;cm tests <function> 查找测试。
- 重构前:cm callers <function> 查反向依赖;cm callees <function> 查正向依赖;cm tests <function> 检查测试覆盖;cm since main --breaking 查看相对 main 的破坏性变更。
- API 表面:cm entrypoints . 列出无内部调用者的公开导出符号;cm implements <interface> 列出接口实现;cm schema <DataClass> 查看结构体、类、dataclass 的字段结构。
- Git 历史(需 git 仓库):cm diff main 查看相对提交的符号级变更;cm since v1.0 --breaking 查看标签以来的破坏性 API 变更;cm blame <symbol> ./file.rs 查看符号最后修改者;cm history <symbol> 查看符号跨提交的演进。
常用标志:--format ai 输出为适合 LLM 上下文的紧凑格式(推荐);--show-body 包含实际代码而非仅签名;--exact 精确匹配(默认为模糊匹配);--no-cache 始终重新索引。
提示:先运行 cm stats . 了解项目组成再深入查询;使用 --format ai 获得最节省 token 的输出;Git 命令需在 git 仓库中运行,快照可保存当前状态供后续比较;小型仓库解析时间低于 20ms,大型仓库自动启用快速模式。
限制:Git 相关命令依赖 git 仓库;其余平台、收费、价格等信息暂未提供。