author: Fredy Sandoval
source: https://github.com/FredySandoval/showsignature
tags: [cli, code-analysis, typescript, agent-skills, pi, developer-tools]
rating: ⭐⭐⭐⭐☆ (4/5)
showsignature — 给 AI 看的代码结构提取器
一句话版本
一个 CLI 工具,把源代码文件精炼成签名、导入、类型、变量、注释的结构摘要——专门为喂给 AI Agent 做上下文设计的。
基本信息
- 作者: Fredy Sandoval ([email protected])
- 仓库: FredySandoval/showsignature
- 协议: ISC
- 语言: TypeScript (Node.js 18+)
- 版本: v0.1.5
- 安装:
npm install -g showsignature/npx skills add .../pi install npm:showsignature - 支持语言: TypeScript, JavaScript, Go, Python, Markdown
核心用途
看一个不熟悉的代码库时,直接读完整文件太吵。showsignature 只提取"骨架":
# 整个项目的结构轮廓
showsignature --folder ./src --show-only signatures,imports,types
# 只看一个文件有什么函数和类
showsignature --file src/main.ts
# 只导入了什么
showsignature --folder src --show-only imports
支持的提取器
| 模式 | 内容 |
|---|---|
| `signatures` | 函数、类、方法、构造函数 |
| `imports` | 导入/导出语句 |
| `interfaces` | TypeScript/Go 接口 |
| `types` | 类型别名/声明 |
| `variables` | 变量/常量 |
| `comments` | 代码注释 |
| `md:headings` | Markdown 标题 |
| `md:tables` | Markdown 表格 |
| `md:codeblocks` | Markdown 代码块 |
技术实现
- 使用 TypeScript Compiler API (typescript v6.0.2) 解析 JS/TS
- 语言适配器模式:每种语言一个 adapter + context + extractors
- CLI 用 commander,文件发现用 globby
- 构建用 tsc,测试用 bun
- 发布为 Pi skill 和 npm 包
源码结构
src/
00-core-types.ts — 核心类型定义
01-main.ts — 入口
02-cli.ts — CLI 参数解析 (commander)
03-index.ts — 公开 API
languages/
typescript/ — TS/JS 解析器 (TS Compiler API)
go/ — Go 解析器
python/ — Python 解析器
markdown/ — Markdown 解析器
tests/ — 11 个测试文件,覆盖率不错
评分:⭐⭐⭐⭐☆ (4/5)
- 实用性: ⭐⭐⭐⭐⭐ — 给 AI 准备上下文的神器,正好解决"文件太大 AI 没法看"的问题
- 工程品质: ⭐⭐⭐⭐ — TS 代码清晰,测试覆盖不错,有 CI
- 语言支持: ⭐⭐⭐ — 目前只支持 4+1 种语言,缺少 Rust、Java、C++ 等常见语言
- 成熟度: ⭐⭐⭐ — v0.1.5,功能基本完整但还有提升空间