llm-tldr
llm-tldr 是一款专为 AI 智能体设计的代码分析工具,旨在让大语言模型(LLM)在理解大型代码库时,只获取最核心的信息。面对动辄数万行的项目代码,直接输入给 LLM 不仅容易超出上下文限制,还会因充斥大量无关细节导致模型“迷失”。llm-tldr 通过提取代码结构而非堆砌原始文本,能减少 95% 的 Token 消耗,并将查询速度提升 155 倍,同时支持 16 种编程语言。
该工具特别适合需要利用 AI 辅助编程、重构或调试的开发者及研究人员。其核心技术亮点在于构建了五层深度分析架构:从基础的抽象语法树(AST)到调用图、控制流、数据流,直至程序依赖图。这种分层设计让用户可以根据任务需求(如浏览结构或追踪变量来源)灵活获取不同深度的信息。此外,llm-tldr 引入了语义搜索层,利用嵌入向量将代码的功能行为转化为可检索的索引。这意味着用户可以用自然语言描述功能(例如“验证 JWT 令牌”),即使代码中没有完全匹配的关键词,也能精准定位到相关函数。配合常驻内存的守护进程,它能实现毫秒级的快速响应,真正做到了“按需供给”,让 AI 高效读懂你的代码。
使用场景
某后端工程师需要在拥有 10 万行代码的遗留微服务项目中,快速定位并修复一个涉及 JWT 令牌验证逻辑的安全漏洞。
没有 llm-tldr 时
- 上下文溢出:试图将整个模块代码喂给大模型时,远超 Token 限制,导致关键逻辑被截断或被迫手动删减代码。
- 大海捞针:传统文本搜索只能匹配关键字,无法找到名为
verify_access_token但注释未提及"JWT"的核心函数,遗漏关键调用链。 - 盲目修改风险:不清楚该函数被哪些上游服务调用,重构时极易引发未知的连锁崩溃,需人工逐层追踪依赖。
- 响应迟缓:每次询问代码结构都需重新解析文件,大模型在无关的样板代码中“迷路”,生成建议耗时且不准确。
使用 llm-tldr 后
- 精准投喂:llm-tldr 自动提取代码结构而非全文,节省 95% 的 Token,让大模型在有限的上下文窗口内完整掌握核心逻辑。
- 语义直达:通过语义搜索"validate JWT tokens",直接定位到
verify_access_token函数,即使代码中无完全匹配的文本也能精准命中。 - 依赖可视:利用第 5 层程序依赖分析,瞬间生成影响范围图谱,明确展示谁调用了该函数,确保修复方案安全无副作用。
- 毫秒响应:后台守护进程将索引驻留内存,查询速度从数十秒缩短至 100 毫秒,让开发者能像对话一样实时探索代码库。
llm-tldr 通过将庞大的代码库转化为结构化、可语义搜索的精简摘要,让大模型真正具备了理解复杂工程全貌的能力。
运行环境要求
- 未说明 (基于 Python 和 pip 安装,通常支持 Linux
- macOS
- Windows)
- 非必需
- 语义搜索功能使用 CPU 版本的 FAISS (faiss-cpu) 和 sentence-transformers,README 中未提及需要 GPU 或 CUDA
未说明 (守护进程将索引保留在内存中以实现快速查询,具体需求取决于项目代码库的大小)

快速开始
TLDR:面向 AI 代理的代码分析
为大语言模型提供它们真正需要的代码,不多也不少。
# 一行命令:安装、索引、搜索
pip install llm-tldr && tldr warm . && tldr semantic "你想要查找的内容" .
你的代码库有 10 万行。Claude 的上下文窗口是 20 万 token。原始代码根本放不下——即使放得下,大语言模型也会被无关细节淹没。
TLDR 不会直接输出文本,而是提取代码的结构。结果是:在保留理解与正确编辑代码所需信息的同时,token 数量减少了 95%。
pip install llm-tldr
tldr warm . # 索引你的项目
tldr context main --project . # 获取适合大语言模型的摘要
工作原理
TLDR 构建了 5 层分析,每一层回答不同的问题:
┌─────────────────────────────────────────────────────────────┐
│ 第 5 层:程序依赖关系 → “第 42 行受哪些内容影响?” │
│ 第 4 层:数据流 → “这个值会流向哪里?” │
│ 第 3 层:控制流 → “这段代码有多复杂?” │
│ 第 2 层:调用图 → “哪些地方会调用这个函数?” │
│ 第 1 层:抽象语法树 → “有哪些函数存在?” │
└─────────────────────────────────────────────────────────────┘
为什么采用多层设计? 不同的任务需要不同深度的信息:
- 浏览代码?只需第 1 层(结构)。
- 重构?第 2 层(调用图)能显示哪些部分会受到影响。
- 调试空指针问题?第 5 层(切片)只展示相关代码行。
守护进程将索引常驻内存,实现100 毫秒级查询,而无需每次通过 CLI 启动耗时 30 秒的进程。
架构
┌──────────────────────────────────────────────────────────────────┐
│ 你的代码 │
│ src/*.py, lib/*.ts, pkg/*.go │
└───────────────────────────┬──────────────────────────────────────┘
│ tree-sitter
▼
┌──────────────────────────────────────────────────────────────────┐
│ 5 层分析 │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │ AST │→│ Calls │→│ CFG │→│ DFG │→│ PDG │ │
│ │ L1 │ │ L2 │ │ L3 │ │ L4 │ │ L5 │ │
│ └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
└───────────────────────────┬──────────────────────────────────────┘
│ bge-large-en-v1.5
▼
┌──────────────────────────────────────────────────────────────────┐
│ 语义索引 │
│ 1024 维嵌入存储于 FAISS 中 → “查找 JWT 验证” │
└───────────────────────────┬──────────────────────────────────────┘
│
▼
┌──────────────────────────────────────────────────────────────────┐
│ 守护进程 │
│ 内存中索引 • 100 毫秒查询 • 自动生命周期管理 │
└──────────────────────────────────────────────────────────────────┘
语义层:按行为搜索
真正的强大之处在于将所有 5 层结合成可搜索的嵌入。
每个函数都会被索引以下内容:
- 函数签名 + 文档字符串(L1)
- 它调用了什么以及谁调用了它(L2)
- 复杂度指标(L3)
- 数据流模式(L4)
- 依赖关系(L5)
- 实际代码的前 10 行左右
这些信息会被使用 bge-large-en-v1.5 编码为 1024 维向量。结果是:可以根据代码的行为进行搜索,而不仅仅是它的文字描述。
# “验证 JWT” 会找到 verify_access_token(),即使代码中没有完全匹配的文字
tldr semantic "验证 JWT 令牌并检查过期时间" .
为何有效? 传统搜索只会根据变量名和注释找到“authentication”。而语义搜索则能理解 verify_access_token() 确实 执行了 JWT 验证,因为调用图和数据流揭示了它的实际用途。
设置语义搜索
# 构建语义索引(一次性操作,典型项目约需 2 分钟)
tldr warm /path/to/project
# 按行为搜索
tldr semantic "数据库连接池" .
嵌入所需的依赖项(sentence-transformers、faiss-cpu)已包含在 pip install llm-tldr 中。索引会缓存在 .tldr/cache/semantic.faiss 文件中。
保持索引最新
守护进程会跟踪脏文件,并在发生 20 次更改后自动重建索引,但你需要在文件变更时通知它:
# 通知守护进程文件已更改
tldr daemon notify src/auth.py --project .
集成方式:
Git 钩子(提交后):
git diff --name-only HEAD~1 | xargs -I{} tldr daemon notify {} --project .编辑器钩子(保存时):
tldr daemon notify "$FILE" --project .手动重建(必要时):
tldr warm . # 完整重建
守护进程会在脏文件数量达到默认阈值(20 个)后,在后台自动重建语义嵌入。
工作流程
阅读代码之前
tldr tree src/ # 查看文件结构
tldr structure src/ --lang python # 查看函数和类
编辑代码之前
tldr extract src/auth.py # 完整文件分析
tldr context login --project . # 适合大语言模型的摘要(节省 95% token)
重构之前
tldr impact login . # 哪些地方会调用此函数?(反向调用图)
tldr change-impact # 需要运行哪些测试?
调试
tldr slice src/auth.py login 42 # 第 42 行受哪些内容影响?
tldr dfg src/auth.py login # 追踪数据流
按行为查找代码
tldr semantic "验证 JWT 令牌" . # 自然语言搜索
快速设置
1. 安装
pip install llm-tldr
2. 索引你的项目
tldr warm /path/to/project
这会构建所有分析层并启动守护进程。对于典型项目,耗时 30–60 秒,之后查询即可立即响应。
3. 开始使用
tldr context main --project . # 获取某个函数的上下文
tldr impact helper_func . # 查看谁调用了它
tldr semantic "错误处理" # 按行为查找
真实案例:为什么这很重要
场景: 调试为什么第42行的user是空值。
不使用TLDR:
- 阅读这个150行的函数
- 手动跟踪每个变量
- 因为bug隐藏在控制流中而错过它
使用TLDR:
tldr slice src/auth.py login 42
输出: 只有6行代码影响到第42行:
3: user = db.get_user(username)
7: if user is None:
12: raise NotFound
28: token = create_token(user) # ← BUG:跳过了空值检查
35: session.token = token
42: return session
bug很明显。第28行直接使用了user,却没有经过空值检查的逻辑分支。
命令参考
探索
| 命令 | 功能 |
|---|---|
tldr tree [path] |
文件树 |
tldr structure [path] --lang <lang> |
函数、类、方法 |
tldr search <pattern> [path] |
文本模式搜索 |
tldr extract <file> |
整个文件分析 |
分析
| 命令 | 功能 |
|---|---|
tldr context <func> --project <path> |
LLM友好的摘要(节省95%) |
tldr cfg <file> <function> |
控制流图 |
tldr dfg <file> <function> |
数据流图 |
tldr slice <file> <func> <line> |
程序切片 |
跨文件
| 命令 | 功能 |
|---|---|
tldr calls [path] |
构建调用图 |
tldr impact <func> [path] |
查找所有调用者(反向调用图) |
tldr dead [path] |
查找不可达代码 |
tldr arch [path] |
检测架构层 |
tldr imports <file> |
解析导入 |
tldr importers <module> [path] |
查找导入某个模块的文件 |
语义
| 命令 | 功能 |
|---|---|
tldr warm <path> |
构建所有索引(包括嵌入) |
tldr semantic <query> [path] |
自然语言代码搜索 |
诊断
| 命令 | 功能 |
|---|---|
tldr diagnostics <file> |
类型检查 + 静态分析 |
tldr change-impact [files] |
查找受更改影响的测试 |
tldr doctor |
检查/安装诊断工具 |
守护进程
| 命令 | 功能 |
|---|---|
tldr daemon start |
启动后台守护进程 |
tldr daemon stop |
停止守护进程 |
tldr daemon status |
检查状态 |
支持的语言
Python、TypeScript、JavaScript、Go、Rust、Java、C、C++、Ruby、PHP、C#、Kotlin、Scala、Swift、Lua、Elixir
语言会自动检测,也可以通过--lang指定。
MCP集成
适用于AI工具(Claude Desktop、Claude Code):
Claude Desktop - 添加到~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"tldr": {
"command": "tldr-mcp",
"args": ["--project", "/path/to/your/project"]
}
}
}
Claude Code - 添加到.claude/settings.json:
{
"mcpServers": {
"tldr": {
"command": "tldr-mcp",
"args": ["--project", "."]
}
}
}
配置
.tldrignore - 排除文件
TLDR会尊重.tldrignore(gitignore语法),用于所有命令,包括tree、structure、search、calls以及语义索引:
# 自动创建并带有合理默认值
tldr warm . # 如果不存在,则创建.tldrignore
默认排除:
node_modules/、.venv/、__pycache__/dist/、build/、*.egg-info/- 二进制文件(
*.so、*.dll、*.whl) - 安全文件(
.env、*.pem、*.key)
自定义可通过编辑.tldrignore实现:
# 添加你的模式
large_test_fixtures/
vendor/
data/*.csv
CLI标志:
# 从命令行添加模式(可重复)
tldr --ignore "packages/old/" --ignore "*.generated.ts" tree .
# 忽略所有忽略规则
tldr --no-ignore tree .
设置 - 守护进程行为
创建.tldr/config.json以配置守护进程设置:
{
"semantic": {
"enabled": true,
"auto_reindex_threshold": 20
}
}
| 设置 | 默认值 | 描述 |
|---|---|---|
enabled |
true |
启用语义搜索 |
auto_reindex_threshold |
20 |
更改文件数达到阈值后自动重建索引 |
单体仓库支持
对于单体仓库,创建.claude/workspace.json以限定索引范围:
{
"active_packages": ["packages/core", "packages/api"],
"exclude_patterns": ["**/fixtures/**"]
}
性能
| 指标 | 原始代码 | TLDR | 提升 |
|---|---|---|---|
| 函数上下文的token数 | 21,000 | 175 | 99%节省 |
| 代码库概览的token数 | 104,000 | 12,000 | 89%节省 |
| 查询延迟(守护进程) | 30秒 | 100毫秒 | 快300倍 |
深度解析
如需完整的架构说明、基准测试及高级工作流程:
许可证
AGPL-3.0 - 详见LICENSE文件。
常见问题
相似工具推荐
stable-diffusion-webui
stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面,旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点,将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。 无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师,还是想要深入探索模型潜力的开发者与研究人员,都能从中获益。其核心亮点在于极高的功能丰富度:不仅支持文生图、图生图、局部重绘(Inpainting)和外绘(Outpainting)等基础模式,还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外,它内置了 GFPGAN 和 CodeFormer 等人脸修复工具,支持多种神经网络放大算法,并允许用户通过插件系统无限扩展能力。即使是显存有限的设备,stable-diffusion-webui 也提供了相应的优化选项,让高质量的 AI 艺术创作变得触手可及。
everything-claude-code
everything-claude-code 是一套专为 AI 编程助手(如 Claude Code、Codex、Cursor 等)打造的高性能优化系统。它不仅仅是一组配置文件,而是一个经过长期实战打磨的完整框架,旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。 通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能,everything-claude-code 能显著提升 AI 在复杂任务中的表现,帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略,使得模型响应更快、成本更低,同时有效防御潜在的攻击向量。 这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库,还是需要 AI 协助进行安全审计与自动化测试,everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目,它融合了多语言支持与丰富的实战钩子(hooks),让 AI 真正成长为懂上
ComfyUI
ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎,专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式,采用直观的节点式流程图界面,让用户通过连接不同的功能模块即可构建个性化的生成管线。 这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景,也能自由组合模型、调整参数并实时预览效果,轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性,不仅支持 Windows、macOS 和 Linux 全平台,还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构,并率先支持 SDXL、Flux、SD3 等前沿模型。 无论是希望深入探索算法潜力的研究人员和开发者,还是追求极致创作自由度的设计师与资深 AI 绘画爱好者,ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能,使其成为当前最灵活、生态最丰富的开源扩散模型工具之一,帮助用户将创意高效转化为现实。
NextChat
NextChat 是一款轻量且极速的 AI 助手,旨在为用户提供流畅、跨平台的大模型交互体验。它完美解决了用户在多设备间切换时难以保持对话连续性,以及面对众多 AI 模型不知如何统一管理的痛点。无论是日常办公、学习辅助还是创意激发,NextChat 都能让用户随时随地通过网页、iOS、Android、Windows、MacOS 或 Linux 端无缝接入智能服务。 这款工具非常适合普通用户、学生、职场人士以及需要私有化部署的企业团队使用。对于开发者而言,它也提供了便捷的自托管方案,支持一键部署到 Vercel 或 Zeabur 等平台。 NextChat 的核心亮点在于其广泛的模型兼容性,原生支持 Claude、DeepSeek、GPT-4 及 Gemini Pro 等主流大模型,让用户在一个界面即可自由切换不同 AI 能力。此外,它还率先支持 MCP(Model Context Protocol)协议,增强了上下文处理能力。针对企业用户,NextChat 提供专业版解决方案,具备品牌定制、细粒度权限控制、内部知识库整合及安全审计等功能,满足公司对数据隐私和个性化管理的高标准要求。
ML-For-Beginners
ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程,旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周,包含 26 节精炼课程和 52 道配套测验,内容涵盖从基础概念到实际应用的完整流程,有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。 无论是希望转型的开发者、需要补充算法背景的研究人员,还是对人工智能充满好奇的普通爱好者,都能从中受益。课程不仅提供了清晰的理论讲解,还强调动手实践,让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持,通过自动化机制提供了包括简体中文在内的 50 多种语言版本,极大地降低了全球不同背景用户的学习门槛。此外,项目采用开源协作模式,社区活跃且内容持续更新,确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路,ML-For-Beginners 将是理想的起点。
ragflow
RAGFlow 是一款领先的开源检索增强生成(RAG)引擎,旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体(Agent)能力相结合,不仅支持从各类文档中高效提取知识,还能让模型基于这些知识进行逻辑推理和任务执行。 在大模型应用中,幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构(如表格、图表及混合排版),显著提升了信息检索的准确度,从而有效减少模型“胡编乱造”的现象,确保回答既有据可依又具备时效性。其内置的智能体机制更进一步,使系统不仅能回答问题,还能自主规划步骤解决复杂问题。 这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统,还是致力于探索大模型在垂直领域落地的创新者,都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口,既降低了非算法背景用户的上手门槛,也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目,它正成为连接通用大模型与行业专有知识之间的重要桥梁。