关于 opensrc
opensrc 是面向开发者和编码 Agent 的命令行工具,可将软件包或仓库源码拉取到项目中,补充接口之外的实现上下文。它能检测已安装的 npm 版本,并解析仓库及对应标签。
主要功能
- 01拉取软件包和仓库源码
- 02检测已安装的 npm 软件包版本
- 03解析仓库及对应标签
- 04列出、更新和移除已拉取的源码
- 05在 AGENTS.md 中添加源码指引
适用场景
- 01查看依赖项的内部实现
- 02排查仅凭类型信息无法解释的问题
- 03探索依赖项中的实现模式
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ third774/ dotfiles --skill opensrc安装后在 Claude Code 中输入/opensrc确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/architecture.mdcli-usage.mdregistry-support.md详细介绍
opensrc
用于获取软件包/代码仓库源代码的命令行工具,为 AI 编码 Agent 提供更深入的实现上下文。
适用场景
- 需要了解库/软件包的内部工作原理(而不只是其接口)
- 仅凭类型信息不足以排查问题
- 探索依赖项中的实现模式
- Agent 需要参考软件包的实际源代码
快速开始
# Install globally or use npx
npm install -g opensrc
# Fetch npm package (auto-detects installed version from lockfile)
npx opensrc zod
# Fetch from other registries
npx opensrc pypi:requests # Python/PyPI
npx opensrc crates:serde # Rust/crates.io
# Fetch GitHub repo directly
npx opensrc vercel/ai # owner/repo shorthand
npx opensrc github:owner/repo # explicit prefix
npx opensrc https://github.com/colinhacks/zod # full URL
# Fetch specific version/ref
npx opensrc [email protected]
npx opensrc owner/[email protected]
命令
| 命令 | 说明 |
|---|---|
opensrc <packages...> | 获取软件包/代码仓库的源代码 |
opensrc list | 列出已获取的所有源代码 |
opensrc remove <name> | 移除指定源代码 |
opensrc clean | 移除所有源代码 |
输出结构
获取后,源代码存储在 opensrc/ 目录中:
opensrc/
├── settings.json # User preferences
├── sources.json # Index of fetched packages/repos
└── repos/
└── github.com/
└── owner/
└── repo/ # Cloned source code
文件修改
首次运行时,opensrc 会提示是否修改:
.gitignore- 将opensrc/添加到忽略列表tsconfig.json- 将opensrc/排除在编译之外AGENTS.md- 添加指引 Agent 查阅源代码的章节
使用 --modify 或 --modify=false 可跳过提示。
主要行为
- 版本检测 - 对于 npm,会自动从
node_modules、package-lock.json、pnpm-lock.yaml或yarn.lock检测已安装的版本 - 仓库解析 - 通过注册表 API 将软件包解析到其 git 仓库,并克隆匹配的标签
- 单体仓库支持 - 通过
repository.directory字段处理单体仓库中的软件包 - 浅克隆 - 使用
--depth 1高效克隆,并在克隆后移除.git - 标签回退 - 如果未找到标签,依次尝试
v{version}、{version},然后使用默认分支
常见工作流
获取软件包
# Agent needs to understand zod's implementation
npx opensrc zod
# → Detects version from lockfile
# → Finds repo URL from npm registry
# → Clones at matching git tag
# → Source available at opensrc/repos/github.com/colinhacks/zod/
更新源代码
# Re-run same command to update to currently installed version
npx opensrc zod
# → Checks if version changed
# → Re-clones if needed
多个源
# Fetch multiple at once
npx opensrc react react-dom next
npx opensrc zod pypi:pydantic vercel/ai
参考资料
详细信息请参阅:
评论
支持 Markdown