关于 opensrc
opensrc 是供 Agent 获取依赖源代码的命令行技能,让它们查看实现而不只看 API 类型。它会按对应版本获取代码并存入全局缓存,支持查询和清理。
主要功能
- 01获取软件包和仓库源代码
- 02从锁文件解析 npm 版本
- 03将仓库固定到指定 ref
- 04列出、移除和清理缓存源代码
适用场景
- 01检查库的内部行为
- 02排查依赖表现异常
- 03查看实现模式与边界情况
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mxyhi/ ok-skills --skill opensrc安装后在 Claude Code 中输入/opensrc确认已加载。
附带文件agents/openai.yamlLICENSE.txt
详细介绍
使用 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