关于 opensrc
opensrc 是一款命令行工具,可获取依赖项源码,供开发者和编码 Agent 查看类型定义之外的实现。它可根据项目锁文件解析 npm 版本,支持软件包和仓库引用,并将获取的源码缓存在全局目录。
主要功能
- 01获取软件包和仓库源码
- 02根据锁文件解析 npm 版本
- 03固定仓库分支、标签或提交
- 04全局缓存源码
- 05列出、移除和清理缓存源码
适用场景
- 01检查依赖项的内部行为
- 02调试意外的库行为
- 03查找测试中的边缘情况处理
- 04从源码学习实现模式
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ vercel-labs/ opensrc --skill opensrc安装后在 Claude Code 中输入/opensrc确认已加载。
详细介绍
使用 opensrc 获取源代码
获取依赖项的源代码,让 Agent 能够阅读实现,而不仅仅是类型。按正确的版本标签克隆仓库,并将其全局缓存到 ~/.opensrc/。
核心模式
rg "parse" $(opensrc path zod)
cat $(opensrc path zod)/src/types.ts
find $(opensrc path zod) -name "*.test.ts"
opensrc path <pkg> 会打印缓存源代码的绝对路径。如果尚未缓存,则会自动获取。进度信息输出到 stderr,路径输出到 stdout,因此可以在子 shell 中使用 $(opensrc path ...)。
获取源代码
opensrc path zod
opensrc path pypi:requests
opensrc path crates:serde
opensrc path facebook/react
# Multiple packages at once
opensrc path zod react next
opensrc path pypi:requests pypi:flask
opensrc path crates:serde crates:tokio
# Specific versions
opensrc path [email protected]
opensrc path pypi:[email protected]
opensrc path owner/[email protected]
opensrc path owner/repo#main
版本解析
对于 npm 包,opensrc 会从锁文件(package-lock.json、pnpm-lock.yaml、yarn.lock)中自动检测已安装版本。使用 --cwd 可从其他项目解析版本:
opensrc path zod --cwd /path/to/project
对于 PyPI 和 crates.io,会使用显式指定的版本或最新版本。对于仓库,使用 @ref 或 #ref 固定分支、标签或提交。
管理缓存
源代码会全局缓存到 ~/.opensrc/(可通过 OPENSRC_HOME 覆盖)。
opensrc list # show all cached sources
opensrc list --json # JSON output
opensrc remove zod # remove a package
opensrc remove facebook/react # remove a repo
opensrc clean # remove everything
opensrc clean --npm # only npm packages
opensrc clean --pypi # only PyPI packages
opensrc clean --crates # only crates.io packages
opensrc clean --packages # all packages, keep repos
opensrc clean --repos # all repos, keep packages
何时获取源代码
在以下情况下获取源代码:
- 了解类型无法揭示的内部行为
- 调试意料之外的库行为
- 学习知名实现中的模式
- 验证函数如何处理边界情况
对于文档或类型已能解答的简单 API 使用问题,不要获取源代码。
评论
支持 Markdown