RepoLens – 一个用Go编写的交互式本地代码库打包与令牌优化工具(TUI/CLI)
摘要
RepoLens 是一个零依赖的 Go 工具,可将本地代码库打包成单个文件供 LLM 使用,具备交互式 TUI 文件浏览器、实时令牌计数、注释剥离和秘密扫描等功能。
我想分享一个我刚刚开源的叫做 **RepoLens** 的工具。虽然已有 Repomix (Node.js) 或 code2prompt (Rust) 等工具可将代码库打包成单个文件供 LLM 使用,但我发现它们要么需要繁琐的运行时环境,要么缺乏在终端中直观选择文件的便捷方式。RepoLens 解决了这些问题。它是一个零依赖的、编译好的 Go 工具,完全在本地运行。它采用基于 Elm 架构的 TUI(构建在 Charm 的 Bubble Tea 之上),并具备多种智能上下文优化机制。
### 为什么使用 RepoLens?
**交互式文件浏览器 (TUI)**:使用空格键递归选择文件和文件夹。可视化展开/折叠嵌套文件夹。
**实时 Tiktoken 计数器**:动态进度条实时估算上下文限制消耗(GPT-4o 编码),随着文件选择而更新。
**智能注释剥离**:自动移除 Go、Python、TS、JS、Shell 和 HTML/CSS 的注释/文档字符串,同时保留可执行 shebang(`#!/bin/bash`)。
* *基准测试*:对于 `spf13/cobra` 仓库,压缩后提示大小从 **621 KB 减少到 518 KB(节省了 17.2% 的令牌)**。
**基于令牌的文件拆分**:如果代码库超过令牌阈值(例如 `--max-tokens 50000`),RepoLens 会将输出拆分为多个连续部分,并自动在每个部分前添加目录树图。
**本地秘密扫描器**:标记潜在的 AWS 密钥、OpenAI 密钥、Slack Webhook 和通用密码。在 TUI 模式下,文件旁边会闪烁黄色 `⚠️ [SECRET!]` 警告。
**健壮的 XML 格式**:安全地将代码负载包裹在 `<![CDATA[ ... ]]>` 块内,并转义嵌套括号,防止提示格式崩溃。
### 快速开始
通过 Go 安装:`go install github.com/catball912/repolens@latest`
或者直接使用 CLI 模式运行:`repolens -n -d . -i "*_test.go,*.log" -o output.md`
GitHub 仓库:https://github.com/catball912/repolens
相似文章
SecureLens - 一个自托管的AppSec代理和CLI扫描器
SecureLens 是一个开源的、自托管的安全审计工具,它利用基于LLM的异步管道来对代码库进行分类并对网络基础设施进行探测,并提供交互式REPL用于后续提问和补丁生成。
面向人类与智能体的仓库本地文档系统
一个专为人类和AI代理设计的文档系统,范围限定在本地仓库内。
一个完全本地、自托管的代码仓库索引,适用于编码智能体(Rust,MIT 协议,离线运行)
Basemind 是一个开源工具,可在本地索引仓库,并通过 MCP 协议向编码智能体提供上下文,包括代码地图、Git 历史记录和文档 RAG,无需依赖云端。
ContextSniper:AntTrail的令牌高效代码记忆模块用于仓库级程序修复
ContextSniper是一个令牌高效的代码记忆层,用于使用LLM代理进行仓库级程序修复。它在SWE-bench Lite上将令牌使用量降低高达51.5%,成本降低高达36.4%,同时保持相似的解决率。
@tom_doerr: 将 Claude Code 和 Cursor 的 token 成本降低 60-95% https://github.com/yvgude/lean-ctx
lean-ctx 是一个基于 Rust 的开源上下文运行时,通过文件读取压缩和 Shell 输出优化,将 Claude Code、Cursor、Copilot 等 AI 编程助手的 token 成本降低 60–95%。它以 Shell Hook 和 MCP Server 的形式运行,提供 56 个工具及多种读取模式。