jsrepo - shadcnのようにコードを再利用するCLIツール
(jsrepo.dev)shadcn-uiのようにコードを再利用するためのCLIツールで、npmパッケージではなく実際のコードをプロジェクトに直接インストールして自由に修正できます。jsrepoは、コード再利用のためのレジストリ構築と配布プロセスを統合し、この過程をよりシンプルで保守しやすくすることを目指しています。
主な特徴
- shadcn/ui方式: コンポーネントをnpmパッケージとしてインストールする代わりに、CLIを通じて実際のコードファイルをプロジェクトに直接追加します。ソースコードを直接制御でき、思いどおりに修正可能です。
- 独自レジストリ: 誰でも自分専用のコードレジストリを作成し、公開共有したり非公開で利用したりできます。
- MCP連携: Model Context Protocol(MCP)を通じて、CursorやWindsurfのようなAIベースのコードエディタと連携します。AIがJSRepoレジストリのコンポーネントを理解し、自然言語の指示だけでコンポーネントを検索したり、プロジェクトに追加したりする作業が可能です。
- 柔軟なホスティング: GitHub、GitLab、BitBucketなどさまざまなGitプロバイダを使ったセルフホストと、jsrepo.com経由のホスティングの両方をサポートします。
- 強力なCLI:
addコマンドで簡単にコードブロックを追加し、updateコマンドで対話型に更新を進めるなど、強力な機能を提供します。 - 安全なバージョン管理: SemVer(セマンティックバージョニング)を完全にサポートし、予測可能なアップグレードが可能で、Changesetsのような既存ソリューションとも互換性があります。
- チームコラボレーション: プライベートレジストリを通じて、チーム内でコードを安全に共有・管理できます。
- 動的レジストリ: 実行時に動的にコンポーネントをロードする高度な機能を提供します。
- 追加機能: Raycast拡張機能のような、開発を便利にする統合機能を提供します。
ホスティング方式の比較: jsrepo.com vs. Git Provider(セルフホスト)
JSRepoは、レジストリをホスティングする方法として大きく2つのオプションを提供します。
jsrepo.com(マネージドホスティング)
- 最も簡単な方法: 追加設定なしでGitHubアカウントでログインし、すぐにレジストリを公開できます。
- 強力なバージョン管理: Gitタグとは異なり、一度公開されたバージョンは変更不可能(immutable)なため、より安全で信頼できるSemVerベースのバージョン管理をサポートします。
- プライベートレジストリ:
jsrepo authコマンドを通じて、チームメンバーと安全に非公開コードを共有する機能を標準でサポートします。 - パフォーマンスと利便機能: 向上したパフォーマンスを提供し、検索や分析などの追加機能を含みます。
Git Provider(セルフホスト)
- 完全な制御: GitHubやGitLabなどのGitリポジトリを直接レジストリとして使用し、すべてを自分で制御できます。
- 基本的なバージョン管理: Gitタグを使ってバージョンを管理しますが、タグは変更可能なため、jsrepo.comと比べると安定性が劣る場合があります。
- 直接設定が必要: プライベートレジストリへのアクセスなどのために、認証や権限設定を自分で管理する必要があります。
活用事例
https://github.com/shyakadavis/geist
https://github.com/ieedan/shadcn-svelte-extras
まだコメントはありません。