mcpField
O
opensrc

opensrc

github.com/mxyhi開発50973 回インストール1 週間前に更新
リポジトリ

opensrc について

opensrcは、APIの型だけでなく依存関係の実装も調べたいエージェント向けのコマンドラインスキルです。該当バージョンのソースを取得して共通キャッシュに保存し、一覧表示や削除もできます。

主な機能

  1. 01パッケージやリポジトリのソース取得
  2. 02ロックファイルからのnpmバージョン解決
  3. 03リポジトリのref指定
  4. 04キャッシュの一覧表示と削除

活用シーン

  1. 01ライブラリの内部動作の確認
  2. 02依存関係の予期しない動作の調査
  3. 03実装パターンや境界条件の確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mxyhi/ok-skills --skill opensrc

インストール後、Claude Code で/opensrcを入力して読み込まれたか確認します。

同梱ファイルagents/openai.yamlLICENSE.txt

詳細

opensrc によるソースコードの取得

エージェントが型だけでなく実装も読めるよう、依存関係のソースコードを取得します。正しいバージョンタグでリポジトリをクローンし、~/.opensrc/ にグローバルキャッシュします。

基本パターン

rg "parse" $(opensrc path zod)
cat $(opensrc path zod)/src/types.ts
find $(opensrc path zod) -name "*.test.ts"

opensrc path <pkg> は、キャッシュされたソースの絶対パスを出力します。キャッシュされていない場合は、自動的に取得します。進捗は標準エラー出力に、パスは標準出力に出力されるため、サブシェルで $(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 の使い方に関する質問では、ソースを取得しないでください。

コメント