世界を動かす技術を、日本語で。

Zedless: プライバシーとローカルファーストに焦点を当てたZedフォーク

概要

Zedless は、 Zed をベースにした プライバシー重視ローカルファースト なエディタ。 クラウド依存の排除スパイウェア無効化 など、明確な方針で開発中。 ネットワーク機能の自己管理貢献者の権利保護 も重視。 ライセンス管理 の厳格化と オープンソース準拠 を徹底。 現在 開発途中 であり、コントリビューション歓迎。

Zedlessの特徴と方針

  • Zed をフォークした プライバシー重視 のエディタ開発プロジェクト
    • クラウドサービスへの依存排除
    • ローカルファースト設計
  • 開発進行中 のため、貢献者を積極的に募集
  • プライバシーと自己管理 を最優先

Upstream(Zed)からの主な変更点

  • プロプライエタリなクラウドサービス への依存を排除
    • 自己ホスト不可 なクラウド連携機能の削除
  • スパイウェア的要素の排除
    • テレメトリや自動クラッシュレポート機能の無効化
  • ネットワーク機能の自己管理化
    • APIやサービス利用時、 プロバイダーの指定 が可能
      • 例:APIの ベースURL指定 による柔軟な運用
    • デフォルトプロバイダーリストの廃止
    • 該当機能はデフォルトで無効化
  • CLA(Contributor License Agreement)不採用
    • 著作権譲渡の禁止
    • 貢献者の権利保護を重視
  • ライセンス情報の厳格な管理
    • サードパーティ依存ライブラリ のライセンス明記必須
    • cargo-about による自動チェック
      • CIが通らない場合の対処法明記
        • Crateにライセンス未指定エラー :Cargo.tomlにpublish = falseを追加
        • 依存ライセンス要件未満エラー :ライセンス調査・SPDX識別子の追加
        • cargo-aboutでライセンス不明エラー :clarificationフィールドの追加

貢献・ライセンス管理のガイド

  • CIを通すためのポイント
    • ライセンス未指定エラー :自作Crateはpublish = false指定
    • 依存のライセンス要件未満 :ライセンス調査・SPDX識別子追加
    • ライセンス不明 :clarificationフィールドで明示
  • 不明点は法律専門家へ相談 を推奨

まとめ

  • Zedlessプライバシー・ローカルファースト自己管理 を徹底したエディタ
  • コントリビューション歓迎オープンかつ透明性の高い開発体制
  • ライセンス遵守と権利保護 を最優先

Hackerたちの意見

どうなるのか気になるな。node.jsのフォークであるIO.jsを思い出すし、それがnodeの開発の仕方を変えたよね。テレメトリーやAIがどこにでも押し付けられてることに敏感な人たちって、開発者たちだし…

ちょっと早すぎる投稿だと思う、特にこのフォークの理由を説明するマニフェストもなしに。『ノーラグプル』って言ってるけど、Zedに何かあったことを示唆してるよね。でも、毎回のオープンソースの論争を追ってるHNの読者がいるとは限らないし。

これに反応してるか、火をつけられた感じがするね: https://github.com/zed-industries/zed/discussions/36604

彼らはVCから投資を受けたみたい。でも、プライバシーとローカルファーストに焦点を当てたフォークは、それが欠けてるだけで自分を正当化できるからね。Zedが誇りに思ってる機能をいくつか削らなきゃいけないから、これがラグプルだとは言いにくいな。

コントリビューター契約はライセンスのラグプルに特化してるから、彼らは将来的にライセンスを変更できるように著作権を全て持ってるんだ。だから、CAを持ってるってことは、ラグプルの準備をしてるってことだし、このポイントがあるんだよね。

ZedはクラウドとAIにかなり特化してることで知られてるから、このフォークの理由は明らかだね。新しい論争ってわけじゃなくて、多くの人が嫌がってるのはプロジェクトの方向性がはっきりしてるからだよ。

著者からのコメント: https://lobste.rs/c/wmqvug > 誰かがフォークについて言及したので、この機会に自分のZedのフォークを宣伝しようかな: https://github.com/zedless-editor/zed > 自分が望まない機能、つまりテレメトリー、自動アップデート、プロプライエタリなクラウド専用AI統合、node.jsへの依存、言語サーバーの自動ダウンロード、アップセル、サインインボタンなどを徐々に削除してるよ。クラウド専用の機能の中には、意味があるところで自己ホスティング可能にすることも目指してる。例えば、自分のllama.cppやvLLMインスタンスでZetaの編集予測を動かすとかね。今のところ、メインエディタとして使えるくらいにはなってるけど、コードの変更が多くて、コードベースを修正する方法がマージコンフリクトを避けるのにはあまり理想的じゃないから、更新にはちょっと遅れ気味。そこで、ASTレベルの編集を自動で適用するためにtree-sitterを使う実験をしてるんだけど、これがカスタマイズ可能な「クソじゃない」Zedのバージョンを作るツールになるかもしれない。

node.jsに依存してるって みんながノードを嫌い始めたのはいつから?何がそんなに嫌なの?

これを見ると嬉しいな。Zedにお金を払うつもりだけど、まだそこまで行ってないけど、いい方向には進んでる。でも、AIやテレメトリー機能はほとんどいらないんだ。実際、もうエディタでAI機能をあまり使ってないし。Copilotとか色々試したけど、まだ満足できるレベルじゃない。ソフトウェア開発のパイプラインの別の場所に必要だと思う(多分、コードレビューとかドキュメントのためのRAGとか)。- 設定同期サービスにはお金を出せる。- メンテナンスのために「サブスク」するためのお金も出せる。個人的には、エディタがVCが求めるようなROIを返すとは思えないから…そうだね。1年後にはIntelliJと一緒にEmacsに戻るかも。

この意見がやっと出てきて嬉しいよ。みんながAI支援のエディターを絶賛してる中で、私はその盛り上がりについていけなくてちょっと置いてけぼりに感じてたんだ。いくつか試してみたけど、私のワークフローが改善された感じは全然しなかった。少なくとも私のチームでは、実際のコードを書くことが問題やボトルネックになったことはないんだ。ただ、他の人にコードをタイムリーにレビューしてもらうのが難しいっていうのは問題だから、AIによるコードレビューを検討してるところだよ。少しでも負担が減ればいいなって。

あなたと私はこのコパイロットやエージェントに関して全然違う体験をしてるみたいだね。いくつか質問があるんだけど、どうやって: - プロジェクトに新しいモジュールやクラスを生成するの? - モジュールAをモジュールBに統合したり、コードベースAをコードベースBに統合したりするの? - 誰かのGitHubプロジェクトを自分のマシンで動かす時、手動でcmakeやnpmをいじるの? - アイデアやplan.md、論文を動くコードに変換するの? - フレークを修正したり、テストコードの不一致を直したり、カバレッジを増やしたりするの? もしこれを全部手動でやってるなら、なんで?

AIやテレメトリーを使わない、または無効にすることはできないの?顔に押し付けられてるわけじゃないよ。デフォルトでオフのテレメトリーがあればいいけど、簡単にオプトアウトできるならそれでもいいかな。

ZedではAI機能をオプトアウトできるよ。[0] [0] https://zed.dev/blog/disable-ai-features

Zedは最近、すべてのAI機能を無効にする設定オプションを追加したんじゃなかったっけ?

ありがとう。今はこれだけしか言えないけど、言わなきゃいけないことだと思った。これをやってくれてありがとう。

関連スレッド:Zed for Windows: 何がそんなに時間がかかってるの? - https://news.ycombinator.com/item?id=44964366 SequoiaがZedを支援 - https://news.ycombinator.com/item?id=44961172

Zedに求めてるのはマルチウィンドウのサポートなんだよね。今はエージェントパネルや他のパネルを別のモニターで使うためにポップアウトできないから。ローカルファーストはいいけど、AIツールも使ってるから、近いうちにはこのフォークは使わないと思う。でも、テレメトリーなしや貢献者契約なしってアイデアは好きだし、頑張ってほしいな。ZedのAI機能を使う前に約1年は楽しく使ってたから、もしかしたらAIに飽きてこっちに乗り換えるかもね。

最近の数週間、AIをかなり使ってるけど、コーディングエージェントとしては使ってないんだ。そこはあまり信頼してないから。ライブラリに不慣れな時の例コードを生成するのにはすごく役立ってる。1ヶ月前、RabbitMQを使おうと思ったけど、ドキュメントが限られてて。ChatGPTが、どうやってこれらが組み合わさってるのかを見るための結構良いスタートコードを提供してくれた。いくつか使って手動で追加して、最終的にプロダクションで動いてるものができたよ。そういう意味では確かに価値があるね。直接コードを書かせたり修正させたりするのは、まだ準備できてないけど。他に役立つのは、エラーメッセージがあまり良くない時にエラーの原因を見つけることかな。エラーを引き起こしてるコードとエラーメッセージをコピー&ペーストすると、すぐに対処できる問題を指摘してくれる。私の方法の方が安上がりだし、$20/月のChatGPTサブスクリプションでうまくやっていけるよ。

CLAは貢献されたコンテンツの著作権所有者を変更しないんだよね(https://zed.dev/cla)。だから、プロジェクトの著作権再割り当てに関するコメントには混乱してる。

技術的には著作権を再割り当てしないかもしれないけど、貢献に対して好きに使う許可を与えてるから、結果的には同じようなもんだよね。

技術的には正確じゃないかもしれないけど、この文の要点はそうだよね? > 本契約の条件に従い、あなたは会社および本契約に関連して会社が配布するソフトウェアの受取人に対して、あなたの貢献およびその派生作品に関して、永続的で、全世界的で、非独占的で、無償で、ロイヤリティフリーで、取り消し不可能な著作権ライセンスを付与します(「貢献者ライセンス付与」)。彼らはあなたの貢献を別のライセンスの下で派生作品に使用したり、サブライセンスを与えたりすることができる。技術的には著作権の再割り当てではないけどね。

フォークにはいつも複雑な気持ちになるんだ。特にハードフォークはね。Zedは最近、すべてのAI機能を無効にする機能を導入したんだ。テレメトリーもオプトアウトできることは知ってるから、このフォークの必要性は感じないな。特に、述べられている機能のリストを考えると、上流に戻せるものに感じる。そうなってほしいな。Redisのフォークを思い出すし、そのエコシステムがかなり分断されたのを見たから。