pedit - ローカルファーストの開発で、同時編集を一時的にしたくなった時に使うツールを作った

2026-10-06Markdown

最近、AIを利用して開発していると、ドキュメントやらタスクやら何かとローカルにあった方が捗るんじゃないかと思って、試している。 そういったAIの話の前から、Googleのソフトウェアエンジニアリング ―持続可能なプログラミングを支える技術、文化、プロセス(オライリー)で紹介されているような、正確性、完全性、明確性を備えた優れたドキュメントをこさえるには、 バージョン管理とレビューがしやすい方が良いという話がある。チームのみんなが思い思いに書けばカオスができあがるので😇

加えて、個人開発、小規模開発をしていると、クラウドサービスを沢山契約して、費用が嵩むのは正直いやだ。いや、富豪だとしても、クラウドサービスを増やすのは躊躇う。参照先が増えると面倒が増える。Notionのオールインワン・ワークスペースという設計哲学には同意する。 今なら、「クラウドサービスが増えようと、MCPで各サービスに繋いでAI Agent経由で引っ張ってきて見れるじゃないか」という心の声は聞こえるけれど、複雑になった問題を据え置き、複雑に解決する一時しのぎではないかと思う。

ローカルファースト。ローカルにドキュメントやタスクが揃っていると開発体験は嬉しい(はず)という感じで今を生きている。


ただし、ローカルにファイルを置くと、複数人での共同編集が問題になる。コラボレーションが問題になる。 議事録を取りながらミーティングができない。ホワイトボードで、付箋をペタペタしながら、複数人で議論することができない。

これはしょうがないことで、トレードオフだと思ってきた。フロー情報はクラウドサービスを利用し、ストック情報はリポジトリに置こうなんて使い分けをしたりもしてきた。 それで良い気もするし、うまくいくこともある。ただ、構造上、情報は二箇所に分かれ、書き移す手間はある。その手間をAIは解決してくれるけれど、やはり問題の構造は変わってない。 いや、ほんとこれみんなどうしているの?


ここまでチームの情報整理の問題を書いてきた。今、書き始める前と比べ、明らかにカッカしてしまっている... 体に良くない。2026年なのだし、そろそろいい感じに解決して、健康的な生活を送りたい。 情報整理に問題を抱える人はいると思うし、情報整理の問題は風呂敷を広げれば、品質、メンテナンス、共有方法など話題には事欠かないと思う。勿論、自分より詳しい人は沢山いるし、解決のために日夜頑張っている人がいる世界だと思う。 AI時代の情報整理勉強会とかあれば、教えてほしいし、話し相手がほしい。


前置きが長くなってアレだけれど、

pedit というツールを作った。

pedit path/to/document.md と打つとリンクが出る。それを受け取った人はブラウザで一緒に書ける。書いた内容は、その場で手元のローカルファイルに書き戻される。

つまり、チームの人と何か共同作業したい時に、Gitリポジトリに置いてあるローカルファイルを原本にできるツール。構造的にローカルファーストにできないか、という試み。

オモシロポイントとして、ローカルファイルを編集すれば、編集を共有できるので、自分の好きなエディタを使える。自分はVimを使っている。


どう動いているかを補足して終わりにしたい。

ブラウザで暗号化した更新を、中継が手元のpeditに渡す流れ

サーバーは、E2Eで暗号化した情報をリレーするだけ。文書の中身をサーバーに保存したりはしていない。 画像だけは、現実的な通信になるように暗号化した状態でR2に保存し、ホストが落ちたタイミングで消すか、ライフサイクルで1日経ったら消える設定にしている(消えるまでには少し時間差がある)。 より具体的には、CloudflareのDurable Objects でWebSocket通信するための部屋を作って、Yjsで同時編集を実現している。

自分の方で、https://edit.piconic.ai というパブリックリレーサーバーを用意しているが、インフラ費用が爆発するのも困るので、同時に入れるのはホストを含めて5人までにしている。 また、注意として、共有用のURLが分かれば、誰でも共同編集できるので、共有相手は慎重に選んでほしい。

こういった制限を取っ払いたい場合は、今は、セルフホストして、アクセス制御すると良い。詳しいことはドキュメントを読んでほしい・・!


はい! 良かったら使ってみてほしい。

← Back to Diary