opensrc — скилл для Claude Code: что делает и как установить
Даёт агенту исходный код зависимостей, когда типов и документации мало для разбора внутренней логики или отладки поведения библиотеки.
npx skills add vercel-labs/opensrc --skill opensrc -a claude-codeЧто делает opensrc
opensrc получает исходники npm-, PyPI- и crates.io-пакетов, а также репозиториев, чтобы агент читал реализацию зависимости. Команда opensrc path <pkg> печатает путь к локальной копии и при необходимости сама загружает её. Можно запрашивать несколько пакетов, версии, ветки, теги и коммиты.
Для npm opensrc ищет установленную версию в package-lock.json, pnpm-lock.yaml или yarn.lock. Параметр --cwd задаёт другой проект для поиска lockfile. Исходники хранятся глобально в ~/.opensrc/; расположение меняется через OPENSRC_HOME.
Кэш можно просмотреть, удалить выборочно или очистить по источнику. Глобальную очистку стоит применять осознанно, потому что opensrc clean удаляет все сохранённые исходники. Для простых вопросов по API скилл избыточен: типы или документация уже могут дать ответ.
Какие задачи решает
- прочитать реализацию зависимости вместо одних типов
- найти обработку граничного случая в библиотеке
- сопоставить поведение пакета с его исходным кодом
- получить исходники версии из lockfile
- очистить кэш загруженных пакетов
Примеры запросов агенту
- «Получи исходный код `zod` и найди обработку `parse`.»
- «Покажи реализацию `pypi:requests`, чтобы разобраться во внутреннем поведении.»
- «Найди тесты в исходниках `facebook/react`.»
Как установить opensrc
1Через Skills CLI (Vercel)
npx skills add vercel-labs/opensrc --skill opensrc -a claude-code2Вручную: положить файлы
~/.claude/skills/opensrc/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/opensrc/
1Через Skills CLI (Vercel)
npx skills add vercel-labs/opensrc --skill opensrc -a codex2Вручную: положить файлы
.agents/skills/opensrc/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add vercel-labs/opensrc --skill opensrc -a cursor2Вручную: положить файлы
.cursor/skills/opensrc/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install vercel-labs/opensrc opensrc2Вручную: положить файлы
.github/skills/opensrc/SKILL.md1Через Skills CLI (Vercel)
npx skills add vercel-labs/opensrc --skill opensrc -a gemini-cli2Командой платформы
gemini skills install https://github.com/vercel-labs/opensrc --path skills/opensrcВручную: положить файлы
.devin/skills/opensrc/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add vercel-labs/opensrc --skill opensrc -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Похожие
Вопросы о opensrc
Как установить opensrc в Claude Code?
Выполните npx skills add vercel-labs/opensrc --skill opensrc -a claude-code, затем повторите npx skills add vercel-labs/opensrc --skill opensrc -a claude-code. Файл скилла находится в ~/.claude/skills/opensrc/SKILL.md.
Что делает opensrc?
Скилл загружает и кэширует исходный код зависимостей, чтобы агент мог изучать их реализацию. Поддерживаются npm, PyPI, crates.io и репозитории.
Как opensrc выбирает версию npm-пакета?
Он определяет установленную версию по package-lock.json, pnpm-lock.yaml или yarn.lock. Для другого проекта используйте --cwd.
Исходный текст
SKILL.md · Apache-2.0
--- name: opensrc description: Fetch dependency source code to give AI agents deeper implementation context. Use when the agent needs to understand how a library works internally, read source code for a package, fetch implementation details for a dependency, or explore how an npm/PyPI/crates.io package is built. Triggers include "fetch source for", "read the source of", "how does X work internally", "get the implementation of", "opensrc path", or any task requiring access to dependency source code beyond types and docs. allowed-tools: Bash(opensrc:*) --- # Source Code Fetching with opensrc Fetches dependency source code so agents can read implementations, not just types. Clones repositories at the correct version tag and caches them globally at `~/.opensrc/`. ## Core Pattern ```bash rg "parse" $(opensrc path zod) cat $(opensrc path zod)/src/types.ts find $(opensrc path zod) -name "*.test.ts" ``` `opensrc path <pkg>` prints the absolute path to cached source. If not cached, it fetches automatically. Progress goes to stderr, path to stdout, so `$(opensrc path ...)` works in subshells. ## Fetching Source Code ```bash 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 ``` ### Version Resolution For npm packages, opensrc auto-detects the installed version from lockfiles (`package-lock.json`, `pnpm-lock.yaml`, `yarn.lock`). Use `--cwd` to resolve from a different project: ```bash opensrc path zod --cwd /path/to/project ``` For PyPI and crates.io, explicit versions or latest are used. For repos, use `@ref` or `#ref` to pin a branch, tag, or commit. ## Managing the Cache Source is cached globally at `~/.opensrc/` (override with `OPENSRC_HOME`). ```bash 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 ``` ## When to Fetch Source Fetch source when you need to: - Understand internal behavior that types don't reveal - Debug unexpected library behavior - Learn patterns from well-known implementations - Verify how a function handles edge cases Don't fetch source for simple API usage questions that docs or types can answer.
© vercel-labs · Apache-2.0 · vercel-labs/opensrc