@ankurhalder/codebase-snapshot

中文文档
4.4.1发布于 2026/11/05MITTypeScriptESM + CJS构建来源已验证近 30 天下载 3666

生产级 LLM 密码库快照生成器、审计员和 AST 分配器

此软件包已被标记为弃用

Renamed to codebase-snapshot, which is the supported package. Run: npx codebase-snapshot@latest setup

中文使用文档
文档目录14 节
  1. 为什么
  2. 安装
  3. 快开始
  4. 你得到的东西
  5. 建为可信任的整个仓库
  6. 支助项目
  7. 图标
  8. 对于人工智能特工
  9. 配置
  10. 程序化 API
  11. 文档
  12. 安全问题
  13. 捐款
  14. 许可证

密码基相机

将任何寄存器转换为 LLM 已准备好的快照 : 编码装入到大小预算下标记 由JSON清单编制索引,并进行秘密审计——在一个指令中.

npm version npm downloads license node

npx @ankurhalder/codebase-snapshot generate

写着 ./snapshot/ ——您可以跳入聊天的目录,提示,RAG管道或 资料库审查。 它在TypeScript和JavaScript项目上工作,在Python,Go,Rust,Python上工作, Java/Kotlin,C#/.NET,PHP,Ruby,C/C++,Vue,斯维尔特和Astro,没有配置.

How it works


为什么

给模型输入一个真正的寄存器很尴尬:文件太大, 上下文窗口太宽 量小,用手挑什么是最重要的 不规模或重复. codebase-snapshot 这样做 确定:

  • 每部分一个文件,从不超出预算. maxPartBytes 是一个硬天花板。 一个更大的文件 而不是预算被删节 带有明确的省略标记 命名预算而不是 吹出极限——及以上 largeFileBytes 改为头/尾节取出.
  • 一个索引,不只是文本. manifest.json 列出每个包含的文件及其层、类型, 语言、部分、散列和结构摘要——以及 不包括 与原因相关的文件.
  • 很明显是现在. validate 将寄存器与快照和出入口重新连接 在任何漂移上,非零, 所以管道可以门 在上下文是新鲜的.
  • 何所决定. 两次运行于未改变输入时给出字节相同的 parts/, (中文(简体) ), reports/navigation.md 财务报告和审定财务报表 reports/project-tree.md,同样 manifest.fingerprint。仅限 manifest.json,快照's README.md, (中文(简体) ), reports/audit.md 财务报告和审定财务报表 .codebase-snapshot 运行之间的变化,因为它们携带 时间戳,一个运行的id和一个pid.
  • 默认安全. 证书文件被跳过, 除非请求, 密形字符串是 已编辑, 且错误的输出目录无法删除源代码 .
  • 被特工们使用 不仅仅是人类. 机器可读合同和可安装技能 让一个没有前科的特工来推动这一切.

安装

npx @ankurhalder/codebase-snapshot generate      # no install, one-off
npm install -D @ankurhalder/codebase-snapshot    # or add it to a project

任何npm相容的客户端作品——npm,纱线(经典和Berry有严格的PnP),pnpm和包子—— 在释放前,每个都与被包装的柏油丸核对。 要求数 节点.js 18+。 。 。 .

→ 安装指南

快开始

一个命令执行整个第一次运行——检测工程,写一个注释配置,添加 npm 脚本和 devDependency, 安装它, 生成快照 :

npx @ankurhalder/codebase-snapshot setup
# Or step by step, if you want to see each stage:
npx @ankurhalder/codebase-snapshot init --yes   # config + scripts + devDependency + .gitignore
npm install                                     # the package, into node_modules
npm run snapshot                                # generate
npm run snapshot:validate                       # exit 0 = current with disk

setup 保存存储器已有的配置 setup --no-install 跳过安装 (CI,离线,或锁文件,你宁愿不碰).

📸 Generating snapshot for: /Users/you/project
   Branch: main | Part budget: 300 KB

✅ Snapshot generated in 0.14s:
   - Tracked files: 128
   - Total lines:   9,431
   - Total size:    0.41 MB
   - Parts written: 3 under snapshot/parts/
   - Reports:       snapshot/reports/ (project-tree, navigation, audit)
   - Manifest:      snapshot/manifest.json
   - Fingerprint:   e4607b570268c8def0911babbace97e4a0196d9eaf2cac22c8847500883d70aa
   - Integrity:     passed

指纹是全部打印出来的——全部64个六十六个字符,从未被擦出过,也是一样的 值为 manifest.fingerprint。 。 。 .

你得到的东西

snapshot/
├── README.md                  human summary of this snapshot
├── manifest.json              machine index: files, parts, hashes, config, skips
├── parts/part-001.md …        the code, grouped and size-budgeted
└── reports/
    ├── project-tree.md        directory tree of included files
    ├── navigation.md          links between layers, kinds and parts
    └── audit.md               secrets, large files, parse diagnostics, git state

每件文物都可以关闭(--skip-artifacts, (中文(简体) ), --only-artifacts,或配置.

→ 快照输出和显示方案

建为可信任的整个仓库

一个快照只有在你能相信的情况下才有用,所以工具对它所做的一切都明确了 没有 包含:

  • 没有什么是默默地放弃的. 每个被排除的路径都记录在 manifest.skipped[] 带有 原因.. binary, (中文(简体) ), gitignore, (中文(简体) ), default-ignore, (中文(简体) ), sensitive-file, (中文(简体) ), sensitive-path, (中文(简体) ), symlink, (中文(简体) ), outside-root, (中文(简体) ), read-error, (中文(简体) ), not-file, (中文(简体) ), nested-repository, (中文(简体) ), excluded - 和 explain <path> 回答任何单一路径的相同问题.
  • 编码有说明,没有猜到. UTF-16 文件被转码而不是消失为 “ 二进制” ; 一个无效的 UTF-8 被保存但标签 utf-8-lossy 计数 无法解码的字节,所以你永远不要误把摩吉贝克当作源.
  • 数来描述所排放的东西. includedBytes 财务报告和审定财务报表 includedLines 从 块,而不是磁盘上的文件.
  • 漂流被检查,而不是假设. validate 比较每个文件的散列 财务报告和审定财务报表 一、导 言 设置快照的生成方式, 因此改变预算、 层规则或秘密模式 漂移而不是沉默.
  • 内存被限制. 2 MB 以上的文件不解析结构摘要( 也就是 50 MB 文件) 用于达到3GB的内存),以及一个目录或3000级路径中的130000个文件 扫描没有崩溃.
  • diff 比较有效载荷,不只是路径. 两张不同来源的快照 设置是这样说的,而不是报告“0已更改”.
  • 当 git 无法列出文件时 ——被中断的克隆人,被脱水 .git, (中文(简体) ), safe.directory —— 说 跑步拒绝而不是悄悄地扫描 不同的东西,和 --discovery walk 这是 有记录的出逃舱门.

支助项目

25个预设,自动从寄存器中检测到——每个贡献层,类型, 生态系统忽略了模式和所建议的部分预算.

下一个.js坚果斯维尔特基特重混合
天体角质固态Vue + 维特
反应 + Vite网点JS快递 /快递 / Koa节点库
单曲强哥FastAPI / 弗拉斯克语Python 库
走开锈爪哇/ 春季. NET 网络
拉维尔(菲律宾)铁路(Ruby)Terraform / docker inform 中标只读文档
常规倒置

非TypeScript语言获得进出口/类/功能摘要,而不是处理 作为不透明的文本。 Vue,斯维尔特和Astro脚本块通过真正的TypeScript编译器. 每份摘要都有标签 ast, (中文(简体) ), structural 或者说 heuristic 你知道该相信多少.. 例如, Python 是一行扫描 heuristic,而JSON和马克当得到 structural 形状.

→ 预设表格和检测规则

图标

命令对
generate (默认)写快照.
validate 编号 : check将快照与寄存器进行比较; 退出 1 在漂流.
report快照健康 分层测量 秘密审计.
init交互式( 或) --yes) 设置写出自文档配置.
explain <path>为什么包含一条路径,它降落在哪个部分,或者它被跳过的原因.
diff <a> <b>比较两个快照.
describe机器可读合同--format json) (中文(简体) ).
skill打印或安装代理技能 .

退出代码 : 0 成功 · 1 漂移或拒绝的一代 2 使用错误.

→ 完整的 CLI 参考

对于人工智能特工

代理人需要的一切都可以作为数据提供,工具可以安装自己的技能:

# The contract: workflow, every option and default, exit codes, presets, safety rules
npx @ankurhalder/codebase-snapshot describe --format json

# Install the skill into the registries agent tools read: .claude/skills/, .cursor/rules/
# (it adds those files to .gitignore, and never touches your own AGENTS.md)
npx @ankurhalder/codebase-snapshot skill --install

一个特工只说"用" npx @ankurhalder/codebase-snapshot" 能够阅读合同,遵循其 命令工作流程,并生成一个未经帮助的验证快照——该路径由测试覆盖.

→ 用这个做人工智能 • 妇女 一般事务人员(其他职等) • 妇女 页:1

配置

snapshot.config.ts (或 .mjs)写作者 init 与 每个 设置当前 值,评论和分组,因此作为参考值加倍. 删除任何行都是安全的: 默认是真实的。 该对象通过名称导出 - export default { … } 实值 import/no-anonymous-default-export,默认情况下在 eslint-config-next。 。 。 .

const config = {
  maxPartBytes: "120k",                                   // hard budget per part
  excludePatterns: ["vendor/**", "**/*.min.js"],
  artifacts: { monolith: false },                         // single-file output stays off
  budgets: { default: "120k", byLayer: { docs: 40_000 } },
  includeSensitiveFiles: false,                           // .env, *.pem … stay out
};

export default config;

→ 配置参考

程序化 API

import { generateSnapshot, resolveConfig, validateSnapshot, loadConfigFile } from "@ankurhalder/codebase-snapshot";

// Pass the repository explicitly: loadConfigFile returns only the config it found, so a
// directory with no config file would leave resolveConfig scanning process.cwd() instead.
const dir = "/path/to/repo";
const config = resolveConfig(await loadConfigFile(dir), { cwd: dir });
const manifest = generateSnapshot(config);
const validation = validateSnapshot(config);

通用JS工作也一样(require("@ankurhalder/codebase-snapshot")页:1 都一样 CLI和API共享一个执行,所以CLI所做的一切在这里都可以得到.

文档

安装每个客户端, 版本 pinning, 代理技能安装
CLI 参考命令、选项、退出代码、实例
配置每个设定,全部25预设,预算,钩子,秘密
快照输出目录布局和完整的显示方案
AI探员合同 技能 代理人应该回避什么
解决问题每条消息和做什么
更改日志释放历史和断开更改
维基指南、食谱、FAQ

安全问题

  • 默认排除证书文件 —— 说 .env, (中文(简体) ), *.pem, (中文(简体) ), *.key, (中文(简体) ), .npmrc, (中文(简体) ), .netrc, (中文(简体) ), .git-credentials, (中文(简体) ), id_rsa, (中文(简体) ), .kube/config, (中文(简体) ), *.tfstate 列入 manifest.skipped[] 与缘由.
  • 机密已经编辑 普通文件内: 只有匹配的跨度被遮盖, 绝不是 整个线, 并且没有节选到达任何文物.
  • 输出目录由工具拥有. 每次运行都会被写入到抓取目录和 在解剖学上互换; 前一个快照在失败中幸存.
  • 它拒绝替换它没有创建的目录这样 --out-dir src 不能毁灭 源代码.

捐款

欢迎提出问题和拉动要求——见 捐款额 编辑 行为守则安全报告: 警卫。 。 。 .

许可证

麻省理工学院 安库尔·哈尔德

版本与发布记录

@ankurhalder/codebase-snapshot 共发布 19 个版本,首次发布于 2026/11/03;过去 12 个月发布了 19 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
4.4.1latest2026/11/053 天前
4.4.02026/11/053 天前
4.3.02026/11/043 天前
4.1.12026/11/043 天前
4.1.02026/11/043 天前
4.0.72026/11/043 天前

关于 @ankurhalder/codebase-snapshot 的常见问题

@ankurhalder/codebase-snapshot 是什么?

生产级 LLM 密码库快照生成器、审计员和 AST 分配器注意:该包已被作者标记为弃用——Renamed to codebase-snapshot, which is the supported package. Run: npx codebase-snapshot@latest setup

如何安装 @ankurhalder/codebase-snapshot?

在项目目录运行 npm install @ankurhalder/codebase-snapshot,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 snap、codebase-snapshot,可以用 npx snap 直接运行。

@ankurhalder/codebase-snapshot 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@ankurhalder/codebase-snapshot 支持 ESM 还是 CommonJS?

同时提供 ES Module 与 CommonJS 入口,import 和 require() 都可以使用,打包工具会自动选择合适的版本。

@ankurhalder/codebase-snapshot 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=18.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@ankurhalder/codebase-snapshot 可以商用吗?

@ankurhalder/codebase-snapshot 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@ankurhalder/codebase-snapshot 的下载量有多少?

根据 npm 官方下载统计,@ankurhalder/codebase-snapshot 在 2026/10/07 – 2026/11/05 这 30 天内被下载 3,666 次,日均约 122 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@ankurhalder/codebase-snapshot 还在维护吗?

最新版本 4.4.1 发布于 2026/11/05(3 天前);至今共发布 19 个版本,其中过去 12 个月发布了 19 个;首次发布于 2026/11/03。作者已将其标记为弃用,新项目建议寻找替代方案。