Zenn
Open13

VS Code 拡張機能の代替マーケットプレイス事情 (Open VSX)

Yuki HattoriYuki Hattori

VS Code の拡張機能は、Visual Studio のマーケットプレイスに公開するのが普通。

https://marketplace.visualstudio.com/vscode

しかし、VS Code のフォークなどにおいては使用条件などの事由で、代替マーケットプレイスが使用されていることがある。それらについての覚書。

Yuki HattoriYuki Hattori

Open VSX

https://open-vsx.org/

  • Eclipse が運営する、オープンソースでベンダー中立な代替マーケットプレイス
  • 使用しているエディター
    • Eclipse Theia: VS Code スタイルの Eclipse 独自 IDE (VS Code フォークではない)
    • VSCodium: VS Code から Microsoft プロプライエタリな部分を取り除いたもの
    • Windsurf: Codeium 社による AI エージェント特化型の VS Code フォーク
  • 公開には ovsx という CLI ツールを使用できる

https://github.com/EclipseFdn/open-vsx.org/wiki/Publishing-Extensions

Yuki HattoriYuki Hattori

なぜ Open VSX が必要なのか?

https://www.eclipse.org/community/eclipse_newsletter/2020/march/1.php

  • Visual Studio Marketplace に公開された拡張機能は、 Microsoft 製のツール以外で使用してはいけない と使用条件で定められている
    • Visual Studio 以外の製品は、直接 Marketplace にアクセスできない
    • Marketplace で拡張機能をダウンロードして、Microsoft 製以外の製品で使うのもアウト
      • 昔は拡張機能 (.vsix) をダウンロードできるリンクが拡張機能のページにあったが、使用条件を迂回する手段になってしまうからか、今はダウンロードリンクは存在しない模様

→ VS Code 拡張と互換性のあるエディター (Theia, VSCodium, etc) で拡張機能を使えるよう、ベンダー中立な代替マーケットプレイスが必要だった

Yuki HattoriYuki Hattori

Cursor は大丈夫なのか

https://www.cursor.com/

Cursor は、普通に Visual Studio Marketplace にある拡張機能が使えるように見える。

  • Open VSX は使っていない?
    • Open VSX に公開されていない拡張機能も検索&インストールできる
    • ただ、これは過去に Visual Studio Marketplace を使っていた時期に Cursor が登録した情報が残っているだけという可能性もある
      • 『Open VSX に公開した拡張機能を更新すると、Cursor の拡張機能の更新がすぐに反映された』という報告もあるため、現在は Open VSX をメインに使用している可能性がある

「Visual Studio Marketplace は使ってない」と言い張れなくはないが、グレーゾーンに感じる部分も多々ある

Yuki HattoriYuki Hattori

https://forum.cursor.com/t/compliance-how-does-cursor-use-vscode-marketplace-extensions/38535

によると、以下のような処理を行っているかもしれない、とのこと。
あくまで第三者による考察であり、公式な声明ではないことに注意。

  • 法的リスクを回避するため、 Cursor マーケットプレイスは独自に存在している。
  • Visual Studio Marketplace で追加・更新された拡張機能を、定期的に検知している。
  • 検知された拡張機能を、自動ないしは手動で Cursor マーケットプレイスに追加している。
  • Open VSX は安全なソースとして、補完的に使用しているのかもしれない??

Visual Studio Marketplace に反映された拡張機能の更新が、Cursor の反映まで最大 24 時間遅延することがあるのは、このためと推察できる。

しかし、このように迂回したとしても、Terms of Use の "3. Conditions: Use Rights for Marketplace" に引っかかるような気もする。フォーラムでは、「もしかしたら Microsoft と何かしら契約してるのかも?」と言及しているが、憶測の域を出ない。

Yuki HattoriYuki Hattori

https://www.cursor.com/how-to-install-extension

Cursor は、拡張機能がマーケットプレイスで利用できない場合の迂回策として、「Visual Studio Marketplace で直接 .vsix をダウンロードしてインストール」するための手順をドキュメント化している。

ただし、これは前述の通り、Visual Studio Marketplace の使用条件に違反する。
Microsoft もこれを察知してか、現在はダウンロードリンクを無くしている模様?

Yuki HattoriYuki Hattori

https://github.com/microsoft/vsmarketplace/issues/1135#issuecomment-2634121358

ダウンロードリンクがなくなったことに関するサポート Issue では、 Microsoft 社員によって以下のように述べられている。

  • ダウンロードリンクを無くした理由は、プレリリース版が公開されている拡張機能の扱いが難しいため
  • VS Code の UI 上からダウンロードできるので、そちらを使えば問題ない
  • 拡張を MS 製品以外で使用することが Marketplace の使用条件に反するのは変わりない
  • Cursor は現在 Open VSX を使用している ので、その点では問題にならない

ダウンロードリンクが消えた問題は、Cursor とは特に関係ない模様。
それと同時に『Cursor は Open VSX を使用している』という事実について Microsoft による確認が取れているということになる。

ただ、 Visual Studio Marketplace にしか存在しない拡張機能がダウンロードできることについては説明がつかないので、「両方に接続している」ないしは「あるタイミングで Open VSX に切り替えたが、過去に登録した拡張機能は Cursor 独自のマーケットプレイスに残っている」可能性がある。

Yuki HattoriYuki Hattori

PearAI は大丈夫なのか

https://trypear.ai/

PearAI のマーケットプレイスも Cursor と似た挙動をする。

  • PearAI 独自の API market.trypear.ai から提供されている
  • Open VSX で利用できない拡張機能も利用可能 → Visual Studio Marketplace を参照している

グレーゾーン 😓

PearAI もマーケットプレイスに関する実装は公開していないため、詳細は不明。

Yuki HattoriYuki Hattori

まとめ

エディタ マーケットプレイス
VS Code Visual Studio Marketplace
Code - OSS なし (一部環境では Open VSX)
VSCodium Open VSX
Eclipse Theia Open VSX
Cursor 独自 (⚠️ Visual Studio Marketplace のミラー? + ✅ Open VSXのミラー?)
PearAI 独自 (⚠️ Visual Studio Marketplace のミラー?)
Windsurf Open VSX
参考: VS Code と Code - OSS の違い

https://github.com/microsoft/vscode/wiki/Differences-between-the-repository-and-Visual-Studio-Code

  • Code - OSS: GitHub の microsoft/vscode リポジトリをビルドしたもの
  • VS Code: Microsoft によって、アイコンやマーケットプレイスの設定などが施されたもの

https://wiki.archlinux.jp/index.php/Visual_Studio_Code

Arch Linux など、一部 Linux ディストリビューションでは、VS Code に代わって Code - OSS を選択することもでき、その際にマーケットプレイスとして Open VSX が設定されることがある。

Yuki HattoriYuki Hattori

4月ごろより、C++ 拡張機能や .NET 関連の拡張機能など、 Microsoft が提供する一部の拡張機能が VS Code 以外のエディターで明確にブロックされるようになった模様。

https://github.com/getcursor/cursor/issues/2976

The C/C++ extension may be used only with Microsoft Visual Studio, Visual Studio for Mac, Visual Studio Code, Azure DevOps, Team Foundation Server, and successor Microsoft products and services to develop and test your applications.

規約違反であることは先述の通り事実なので、動かなくなること自体は、規約を厳格に運用し始めたというだけ。現に今に始まったことではなくて、 VSCodium のような古くからあるツールでは、Live Share や Remote extensions などを入れても使えなかった。

今回のブロックは、Cursor のような VS Code フォークエディターが実際に台頭してきていることもあり、騒ぎが大きくなっている模様。

個人的には、VS Code フォークを使用するにあたってのアキレス腱はここにあると考える。それと同時に、純粋なオープンソースの言語拡張機能が発展する可能性があり、Cursor は先の Issue で「代替拡張への投資を進めていく」と言及している。

ログインするとコメントできます