4 ポイント 投稿者 GN⁺ 2024-09-18 | 1件のコメント | WhatsAppで共有
  • Void は、コードベース内で AI エージェントを使い、変更内容をチェックポイントとして可視化し、ローカルモデルやホストを取り込めるようにした VS Code フォークだったが、現在は deprecated 状態で、これ以上コントリビューションを受け付けていない
  • プロジェクトは引き続きオープンソースとして残っており、VS Code をフォークしようとする開発者は Void のロジックや構造を参考にできる
  • README では、React + Tailwind の統合、パッケージング・署名・自動更新用の GitHub Actions、独自実装の AI provider コード、IPC と CSP に対応する構造を参考対象として提示している
  • Void はメッセージを provider に直接送り、データを保存しないとしており、autocomplete(FIM)、<thinking> タグ、tool タグのような応答構文をサポートする
  • 新バージョンの開発よりも、Void Forks、過去の Releases、Codebase Guide、HOW_TO_CONTRIBUTE、void-builder などの資料を通じて、フォークと再利用を支援している状態

プロジェクトの状態

  • Void は deprecated 状態で、これ以上コントリビューションを受け付けていない
  • コミュニティからのコード貢献と支援に感謝を示し、Void は引き続き オープンソース として残っている
  • VS Code をフォークする際に参考にできる優れたリファレンスの一つとして残っているとしている

ダウンロードとフォーク資料

VS Code フォーク実装で参考にできる部分

  • Void は React + Tailwind をマウントしている
    • 通常の VS Code では不可能なため、React のコンパイルと Tailwind のスコープ処理のためにビルドパイプラインを拡張している
    • Tailwind のスコープ処理には scope を使用している
  • GitHub Actions をコピーして Void を パッケージング、署名、自動更新 できる
    • VS Code のビルドパイプラインは非公開のため、一般的には非常に難しいと説明している
  • AI provider コードはゼロから独自実装されている
    • autocomplete(FIM) とカスタム応答をサポートしている
    • 共通の <thinking> タグ、tool タグなどのための構文を公開している
    • IPC の使用と CSP への適合のためのアーキテクチャを参考にできる
  • ファイル編集にはカスタムサービスを使用している
    • EditCodeService は、コードがストリーミングされる際にトークン単位でも diff を表示できる
    • VoidModelService はバックグラウンドでファイルを編集し、OS 上のファイルとテキストバッファを同期する
  • Void を構成する全リポジトリ一覧は repos で確認できる

Void の機能説明

  • Void はコードベース内で AI agents を使えるようにする
  • 変更内容をチェックポイントとして保存し、可視化できる
  • 任意のモデルやホストをローカルに取り込める
  • メッセージを provider に直接送り、ユーザーデータを保存しないとしている
  • このリポジトリには Void Desktop アプリの全ソースコードが含まれている

参考リンクとサポート

1件のコメント

 
GN⁺ 2024-09-18
Hacker News の意見
  • 最近、VSCodeをプラットフォームのように使ってアプリをリファクタリングしようとして、回避するのも維持するのも簡単ではないUI設計上の判断で大きく痛い目を見た
    Microsoftの非公開拡張機能マーケットプレイスも、オープンソースの目標には役立たなかった
    代わりにHNでTheia(https://theia-ide.org)を知ったが、財団所有・オープンソースのマーケットプレイス・全体を修正できる可能性という点で、オープンソースの目標にはずっと合っているように見えた
    理論上はVSCode拡張APIとも互換性があるので、このアプリでもTheiaを検討してみることを勧める

    • ちなみに拡張機能はOpenVSXに配布できる
      最近は多くのプロジェクトがそうし始めていて、全部ではないにせよかなり多い
    • Theiaが既存のJava IDEであるEclipseと関係があるのか気になる
      それとも「eclipse」という言及は、単に不運な名前の衝突なのかもしれない
    • TheiaがMonacoの上に作られているなら、ワンクリック移行のような方法も可能なのか気になる
      Monacoエディタは理論上vscodeリポジトリの一部で、設定/構成を含む「workbench」はその上の層にある
  • CursorやVoidのようなツールが、既存エディタの拡張機能(VSCode拡張、JetBrainsプラグイン)ではなく新しいエディタを作ることにした理由をうまく整理した記事があるとよい
    拡張APIの技術的限界のためなのか、それともエディタ拡張より新しいエディタのほうがマーケティングしやすいからなのか気になる
    個人や小規模企業には導入しやすいかもしれないが、大きな組織はすでに既存IDEとさまざまな統合を済ませているので、さらに別のIDEへ乗り換えさせるのは難しい要求になりそう

    • Cursorチームの回答を見ると、VSCode拡張はエディタUIを制御する能力が非常に限られているという
      Command-KとCopilot++機能は拡張では不可能で、今後作りたい多くの機能も同様だという
      https://forum.cursor.com/t/why-not-a-plugin/2448/2
    • 良い質問だ
      拡張機能はしばしばバグが多かったり、自然に統合しにくかったりすると考えている。たとえばCopilotは選択範囲が飛び、Codeiumや他のオープンソース拡張も同じような限界がある
      多くの拡張機能はユーザーのプロンプト入力にクイック選択ドロップダウンを使うが、これが不自然に感じられる
      こうした問題を避けるには、CursorのようにIDEを自分たちで所有することが重要で、Cursorが人気の理由もそこにあると思う
      IDE導入が難しいという点はその通り。すでに人気のある基盤の上に作れば小さなユーザー層により届きやすく、長期的にはプライバシーと優れたAI機能の集約によって大企業も説得したい
    • Codyは、まさに述べられた方式どおり拡張機能として実装されており、Cursorと競争力がある
      「フォーク」という欠点を受け入れてまでCursorを使うべき理由は、まだ見つけられていない
      ただ最近はほとんどAiderに移った
      別の人が収益化に触れていたが、それが本当の理由なのかもしれない
  • 競争が増えるのは良いことだが、少し無礼に聞こえるかもしれないものの、ほとんどのソフトウェアフォークは消えていく
    標準のVSCodeやVSCodiumで動くオープンソース拡張であるContinue + Claude-devの代わりに、これを使うべき理由を納得させてほしい
    「Microsoftも拡張マーケットプレイスを非公開にした」と言っていたが、Open VSX Registryが存在する

    • Continueと一緒にローカルモデルを使っているのか気になる
  • ここまで作ったことは称賛に値し、ここから面白い部分が始まるように思う
    スニペットのようなタブ補完を提供する拡張機能やAIエディタはかなり多いが、私の知る限り、ファイル全体を見ずに「tab-tab-tab-tab」で自動修正するワークフローをきちんと実装しているのはCursorだけだ
    おそらくMonaco/VSCodeのハックと独自にチューニングしたモデル、つまり既製の大規模言語モデルではない組み合わせだろうが、「Cursorの中核機能すべて」と言うときに狙っているのがこれなのか、それとも別のところに集中しているのか気になる
    CursorはローカルのVSCodeプロファイルにすでにダウンロード済みの拡張機能をかなりうまく「インポート」できたが、拡張機能検索用のマーケットプレイスAPIを使う点では時々苦労があった
    出発点としてはその程度の方式に満足するのがよく、Microsoftを相手にする以上、ブランドガイドラインのようなものにも気を配る必要がある
    Microsoft APIを「ハックしている」と世間に言うのは避けたほうがいい。小さく見えることでも、成功すれば問題になり得る
    コントリビューターを募る目的もあるなら、GitHubワークフローとCIをかなり整備する必要がある
    現在のコミット履歴は、ドキュメント修正後にレビューやチェックなしでmainブランチへ直接コミットしているものが大半で、唯一チェックが付いている初期コミットはMonacoのチェックが失敗した後、そのまま無効化したように見える
    プロジェクトを成長させたり、必要なレベルのコントリビューターを引きつけたりするには、テストのベースラインを設け、はるかに多くの整理が必要だ

    • 私がCursorを使う唯一の理由もその機能だ
      補完がとても良く、リファクタリング時にはほとんど魔法のようだ
      1か月ずっとCursorを使ってからVSCodeを再び使ってみたが、比較するとCopilotは本当にひどかった
      Cursorを使い続けたいが、Claudeのサブスクを2つ買いたくはない。Cursorは内部でClaudeを使っていて、私はChatGPTよりClaude Sonnetを好む
    • Cursorで非常に便利な機能はapply
      AIが生成したコードを自分のコードと自動でマージしてくれて、私は承認するか拒否するだけでよい
      この機能にもカスタムAIを使っているようで、自分のAPIキーを持ち込む方式では動かず、サブスクが必要だ
  • 「AIエディタ」領域で競争が増えるのは良いことだが、なぜ VSCode拡張として作らないのか気になる
    拡張のほうがずっとアクセスしやすそうに見える
    実装を難しくする拡張APIの制約があるのか気になる

    • 拡張は収益化が難しく、大きな VCバリュエーションを正当化するのも難しいからではないか
      VoidはHNの支援を受けている
    • 同意。完璧ではないにしても、VSCodeにはかなり豊富なエコシステムがある
      フォークと元の製品との違いを追い続ける必要があり、その過程で抜け落ちる機能や壊れる拡張が出るのは、自分のワークフローでは受け入れたくない
      Cursorはかなり洗練された体験を提供しているが、結局VSCodeに戻ってcontinue.devを使うことになった。ずっと荒削りではあるが、UIが十分うまく動くからだ
    • 良い質問だし、拡張のほうがアクセスしやすいというのはその通り
      ただ、拡張だけでは望む ネイティブUI を作る良い方法がない
      例えば変更前後を見せるのは中核的な機能だが、拡張の中では自然に感じられない
      Codeiumのような拡張は、ファイル内に <<<<<<< DIFF >>>>>>>> のようなものをそのまま書き込む最も単純な方式を使っていて、シンタックスハイライトを壊してしまう
      Copilotのような他の拡張はバグが多い
      現在Voidは拡張の上に作られているが、よりネイティブなユーザー体験を作るためにIDEの一部も修正して組み込んでいる
    • 多くの人はVSCより JetBrains を好む
      例えば今の自分の第一候補のAIエディタはZed.devだが、JetBrainsを含む複数のキーマップを非常に簡単に設定できる
      https://zed.dev/
    • よく分からないが、現状のcontinueは本当にひどい
      Vimショートカットまで含めて、自分のVSCode環境全体を壊してしまう
  • これをやるのに、本当にエディタ全体を「所有」する必要があるのか分からない
    upstreamとの同期を保つだけでもものすごい負担で、それによって何が得られるのか見えない
    他の人たちが言っているように代替レジストリもあるし、ユーザーにエディタ全体をダウンロードしてインストールさせるより、独立したプラグインのインストール案内のほうが簡単だ
    単に独自の Copilot拡張 を作ってollamaインスタンスにつなげるのではだめなのか気になる
    Continueがやっていることはそれではないのか? https://marketplace.visualstudio.com/items?itemName=Continue...

  • まだダウンロードすらできないほど初期段階なのか? コードエディタのためになぜ Discordサーバー に入らなければならないのか分からない
    VS Codeがすべての機能を取り込んだら、計画はどうなるのか気になる

    • コードはここにある: https://github.com/voideditor/void/tree/main/extensions/void
      ただし今は本当に基本的なレベルだ。サイドペインで大規模言語モデルを呼び出し、差分を適用/拒否するビューを作った最小実装に近い
      現時点ではほとんど週末プロジェクトのレベルだ
    • そこが核心かもしれない
      誰がMicrosoftに買収されて、最終的にVS Codeの一部になるかを見るゲームなのかもしれない
  • PearAIもある。「VSCodeとContinueのフォークである オープンソースAIコードエディタ」だという
    この領域はますます混み合っている: cursor.sh, continue.dev, double.bot, supermaven, codium.ai, PearAI、そして今度はVoidまである
    https://github.com/trypear/pearai-app

    • 他のものを使ってみたなら、具体的に気に入らなかった点があるのか知りたい
      私は https://double.bot の作者の一人です
  • 誰かがVS Codeともっとよく競争できるように Omnivim2 をフォークしてくれたらいいのに
    自分の理解では、このエディタはVS Codeのように見えるがネイティブにコンパイルされ、VS Codeプラグインをサポートしている
    残念ながらプロジェクトは放置されているようで、ReasonMLで書かれている
    開発ツールがWebブラウザを中心に作られることにはうんざりしている
    90年代や00年代には、今のように複雑でなくても済む完全なネイティブアプリがあった
    付け加えると、内部的にVimをベースに動作するという点もあり、自分にはむしろ強みに見える
    https://github.com/onivim/oni2

  • 同じユーザーが4日前に投稿した別のShow HN記事の 重複投稿 のように見える
    https://news.ycombinator.com/item?id=41523197

    • 記事がまだ十分な関心を得ていないなら、少数の再投稿は問題ない
      FAQにも載っている: https://news.ycombinator.com/newsfaq.html#reposts
    • 数日前にもっと小さなリリースをしたが、そのフィードバックをもとにGitHubのコントリビューションページ、Webサイト、ロゴをかなり変更した
      ただ素早くリリースしようとしているところだ
    • 2回リリースしたということか? 競争の激しい場では、できるだけ何度もリリースすべきだ
    • とても適切な慣行だと見なされている