ホーム/作ったもの/necoder
コードエディタ · 個人開発

necoder

複数のAIエージェントを同時に走らせていると、どのAIが、どのプロジェクトの、どのブランチで動いているのか分からなくなる。その一点を解くために作ったコードエディタです。プロジェクトとブランチに色が付き、いま話している相手が宛先チップに出て、Fleetモードで何本ものエージェントを1画面に束ねられます。Rust + GPUIのネイティブ実装で、Electronは使っていません。読みは「ねこーだー」。

AGPL-3.0 · 無料 Mac / Windows Rust + GPUI テレメトリなし
necoder の Fleet モード
Fleetモード。複数のエージェントをgit worktreeで隔離しつつ、1画面で並走させる。
215ms
コールドスタート(開発機実測)
120MB
アイドル時のRSS
10ms
5万ファイルの ⌘P 絞り込み
0テレメトリ
送信は一切しない
Why

迷子になるのをやめたかった

AIエージェントに仕事を振るようになってから、エディタの使い方が変わりました。1つのターミナルで1つのエージェントと話すのではなく、3本も4本も同時に走らせる。すると、どの返事がどのプロジェクトのもので、いま自分が打ち込んでいる指示がどのブランチに効くのかが、すぐに分からなくなります。私の場合、それで別のworktreeに指示を出してしまったことが何度もありました。

necoderは、その混乱を色と表示で潰します。プロジェクトとブランチには色が割り当てられ、サイドのレール、タブの下線、キャレット、AIスレッドのタブまで同じ色が通る。色は識別のためだけに使い、装飾には使いません。指示を打ち込む欄の上には「このスレッド → このプロジェクト ⎇ このブランチ」という宛先チップが常に出ています。

Fleet

エージェントのマルチプレクサ

Fleetモードは、複数のエージェントを1画面で並走させるための画面です。それぞれのエージェントはgit worktreeで隔離されるので、同じリポジトリを触っても互いの作業を壊しません。全体を見る采配役のスレッド(Captain)を置くこともできます。タスクはMarkdownファイルが実体で、終わった項目はエージェントが自分でチェックを入れていきます。

エージェントはACPという公開プロトコルで繋ぎます。claude CLIなどと直接話すので、契約中のサブスクリプションがそのまま使えて、別途のAPIキーは要りません。necoder自身はLLMを同梱しませんし、鍵を預かることもありません。

Native

Electronを使わない

UIはRustとGPUIで全部ネイティブに描いています。WebViewが出てくるのはHTMLプレビューのときだけで、ブラウザエンジンは同梱していません。起動は約215ms、待機時のメモリは約120MB、5万ファイルのプロジェクトでも ⌘P の絞り込みは約10ms。編集コアの操作はマイクロ秒台で、CIでベンチマークを監視しています(いずれも開発機での実測値で、公式ベンチマークではありません)。

Remote SSHにも対応しました。サーバ側に置くのは約2.4MBの静的musl バイナリ1つで、Node.jsはどちら側にも要りません。手元のOpenSSHの設定・鍵・ProxyJumpをそのまま使います。

Notes

立ち位置について

necoderはZedのフォークではありません。UIフレームワークのGPUI(Zedが開発・Apache-2.0)を依存として使っているだけで、Zedのアプリケーションコードは複製も移植もしていません。ACPもZedが策定した公開プロトコルで、necoderはその実装側です。

それから、これは株式会社GENSHI AIの製品ではなく、私の個人プロジェクトです。AGPL-3.0で、無料で、テレメトリは一切ありません。necoderの開発はnecoderの中で行っています。毎日使って、引っかかったところをその場で直す。それだけが機能の決め方です。

Related

関連

← 作ったものの一覧に戻る