opensrc CLI

CLI и скилл от Vercel Labs: по имени пакета из npm, PyPI, crates.io или GitHub клонирует исходники нужной версии и отдает агенту путь к ним

  • 3 027 ★ репозитория
  • Последний коммит
  • Apache-2.0
CLIОфициальный

Расширенный доступ

Почему такой уровень

  • Утилита ходит в сеть к реестрам и репозиториям и клонирует чужой код на ваш диск
  • Скачанные исходники лежат в ~/.opensrc, и агент может читать и запускать из них файлы, поэтому не выполняйте чужой код без проверки
Все причины и проверки

vercel-labs/opensrc

Установка

Работает в

В терминале, через SkillFoxx CLI

npx skillfoxx add cli/opensrc

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Утилита ходит в сеть к реестрам и репозиториям и клонирует чужой код на ваш диск
  • Скачанные исходники лежат в ~/.opensrc, и агент может читать и запускать из них файлы, поэтому не выполняйте чужой код без проверки

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

opensrc — утилита, которая достает исходный код зависимости, чтобы агент читал реализацию, а не только типы и документацию. Команда `opensrc path zod` находит пакет в реестре, делает неглубокий клон на теге нужной версии, кэширует его в каталоге ~/.opensrc и печатает абсолютный путь. Прогресс идет в stderr, путь в stdout, поэтому результат подставляется прямо в другие команды: `rg "parse" $(opensrc path zod)` или `cat $(opensrc path zod)/src/types.ts`. Поддерживаются npm (по умолчанию), PyPI, crates.io, а также репозитории GitHub, GitLab и Bitbucket. Версии npm-пакетов утилита берет из файлов блокировки проекта, для остальных реестров можно указать версию через @, а для репозитория ветку или коммит через # или @. Кроме `path` есть команды `fetch` для предзагрузки, `list`, `remove` и `clean` с фильтрами по реестрам. В репозитории лежит и скилл opensrc с триггерами «прочитай исходники» и «как это устроено внутри».

Для кого. Для разработчиков, чьи агенты спотыкаются на поведении библиотеки, которого не видно по типам и документации.

Подходит, если

  • Нужно понять, как библиотека обрабатывает граничный случай, которого нет в документации
  • Агент гадает о работе функции, а проверить ее можно по коду нужной версии зависимости
  • Нужны тесты или примеры из чужого репозитория как образец для собственного кода
  • Требуется найти реализацию в пакете Python или Rust, например `opensrc path pypi:requests`
  • Нужна одна команда, чтобы получить исходники сразу нескольких пакетов, например `opensrc path zod react next`

Не подходит, если

  • Вопрос решается документацией или типами: скилл советует не тянуть исходники для простого использования API
  • Нужен поиск по коду внутри GitHub без загрузки: утилита клонирует репозиторий на диск
  • Нет места на диске под кэш или доступа к реестрам и GitHub из сети
  • Нужна проверка безопасности пакетов: утилита только скачивает исходники и ничего не анализирует

Пример запроса к агенту

Достань исходники zod через opensrc и найди, где в ZodError собирается список ошибок

Ограничения

Утилита поставляется как нативный бинарник на Rust, устанавливается глобально через npm. Проект помечен как эксперимент Vercel Labs, поэтому команды и поведение могут меняться. Исходники скачиваются из реестров и с GitHub, GitLab и Bitbucket, нужен доступ к ним из вашей сети. Кэш лежит в ~/.opensrc, путь меняет переменная OPENSRC_HOME, а размер кэша растет вместе с числом пакетов. Скилл разрешает агенту только команды `opensrc`.

Как отключить. Удалите утилиту командой `npm uninstall -g opensrc`, а кэш очистите командой `opensrc clean` до удаления или вручную удалите каталог ~/.opensrc. Скилл уберите из каталога скиллов агента.

Частые вопросы

Как поставить opensrc?

Выполните `npm install -g opensrc`. Глобальная установка дает нативный бинарник на Rust без накладных расходов Node.js при каждом запуске. Скилл лежит в папке skills/opensrc репозитория.

Откуда opensrc берет версию пакета?

Для npm он определяет установленную версию по package-lock.json, pnpm-lock.yaml или yarn.lock. Параметр `--cwd` указывает другой проект. Для PyPI и crates.io берется последняя версия, если вы не задали свою, например `pypi:flask@3.0.0`.

Какие реестры поддерживает opensrc?

npm без префикса или с npm:, PyPI с префиксами pypi:, pip: или python:, crates.io с crates:, cargo: или rust:. Также принимаются репозитории GitHub в виде owner/repo, GitLab и Bitbucket с префиксами.

Где хранятся скачанные исходники?

В каталоге ~/.opensrc, путь меняется переменной OPENSRC_HOME. Содержимое показывает `opensrc list`, удаляют его `opensrc remove` и `opensrc clean`, у последней есть фильтры --npm, --pypi, --crates, --packages и --repos.

Для чего нужен скилл opensrc?

Он учит агента вызывать `opensrc path` по запросам вроде «покажи исходники пакета» и «как это устроено внутри». Скилл ограничен командами opensrc и напоминает не тянуть код, когда хватает документации.

Обсуждение

Вопросов и отзывов пока нет.

Официальный

MCP-сервер и CLI для исследования кода: поиск и разбор по вашему проекту и по всему GitHub с экономией токенов

MCP-серверРасширенный доступ956Звезды репозитория

CLI и плагин для ревью кода агентом: читает git diff и пишет замечания по строкам с учетом контекста

CLIРасширенный доступ48,8 тыс.Звезды репозитория

Дает агенту разбираться в вашем репозитории: индексирует код и отвечает на вопросы о нем в Claude Code, Cursor, Codex, Windsurf и других

ПлагинРасширенный доступ1,4 тыс.Звезды репозитория

CLI на Rust для TypeScript и JavaScript: мертвый код, дубликаты, циклы, сложность и границы архитектуры по одному графу, есть MCP-сервер и скиллы

CLIРасширенный доступ5,3 тыс.Звезды репозитория

Кодинг-агент на Rust для терминала и CI под модели DeepSeek: читает код, правит файлы и запускает команды

CLIШирокий доступ511Звезды репозитория

Сравнение с похожими

Записи с тем же главным запросом: чем они отличаются.

ЗаписьОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
opensrc (эта запись)да3 027
Context7даAPI-ключ63 873отдает агенту актуальную документацию библиотек, а не исходный код
Context Hubнет13 986CLI с проверенной документацией API по версиям и языкам

Коротко о README

Корневое описание в одной фразе называет цель: дать агентам доступ к исходникам любого пакета. Быстрый старт показывает установку и три примера поиска в исходниках. Таблица делит репозиторий на CLI и сайт документации, а раздел разработки описывает монорепозиторий на Turborepo с CLI на Rust и сайтом на Next.js.

Бейдж для README

Исходный SKILL.md

---
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 zod@3.22.0
opensrc path pypi:flask@3.0.0
opensrc path owner/repo@v1.0.0
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

Сообщить о проблеме

Foxx AIopensrc
Foxx AI

Я Foxx AI и уже разобрал этот инструмент. Спросите про установку, настройку или что угодно еще, отвечу простыми словами.