ローカルLLM支援のテキストエディタをつくる

環境:Claude Code(Opus 4.8)

開発の動機

AIに「書かせる」のではなく、「伴走」してほしい、というコンセプトです。

ローカルLLMが執筆をサポートしてくれる専用のテキストエディタを試作しています。中身は「テキストエディタ + ローカルLLM + RAG + Web検索」という構成で、この半年間、LLMを使って得た知見を詰め込みました。

左がテキストエディタ、右がLLMとのチャット。

一番の理由は、書いている途中で起こる「コンテキストの分断」をなくしたかったからです。レポートや記事を書いているとき、調べもののためにブラウザのタブを切り替えるたび、思考のフローが途切れて集中力が削がれる・・・。あのストレスをどうにかしたいと思いました。資料探しから執筆までを一つの空間で完結させ、「必要な要点が、いつも手の届くところにある」状態を作りたい。

AIには、その場の資料について即座に壁打ち相手になってもらうことで、思考の整理や執筆のスピードアップを補助してもらおうとしています。

ちなみに、AIが自動生成した文章をそのまま使うのはあまり好みではありません(私自身、AIが書いた記事だなとわかった瞬間に読む気が失せてしまう)。あくまで構成のアイデア出しやレビューなど、「心地よく効率的に書くための支援」に価値を置いています。

機能

外部知識の蓄積と活用(RAG)

あえてローカルLLMを選んだのは、書きかけの原稿や機密性の高い資料を外部サーバーに送らず、安心して扱いたいと思ったからです。また、APIコストを気にせず、納得がいくまで何度でも試行錯誤できる環境も魅力でした。

それに加えて、Gemma 4のように、ローカル環境でも十分に実用的な能力を持つモデルが登場したことも大きな後押しになりました。「わざわざクラウドに投げなくても、手元で十分に賢いAIが動く」という確信があったので、この構成に踏み切ることができました。

単なるチャット機能ではなく、自分専用の「知恵袋」のようなナレッジベースを構築できる仕組みを導入しています。

情報のストックチャット欄でウェブ検索を行い、複数のページをLLMにまとめさせてマークダウン形式で保存できます。こうして溜まった「要約資料集」をRAG(検索拡張生成)として参照させることで、文脈を汲み取ったサポートが可能になります。

例えば、「保存した資料の論理構成と矛盾しているところはない?」といった整合性のチェックや、「Web検索で得た最新の数値を、文脈に合わせていい感じに差し込んで」といった、資料と本文をまたいだ編集作業がスムーズに行えます。

柔軟な校正機能

テキストを選択して校正ボタンを押すと、文脈に合わせた修正案を提示してくれます。修正の「強度」を調整できるので、「最小限の修正で整える」から「文章構造からガラッと書き換える」まで、その時の気分や目的に合わせて調整しながらブラッシュアップできます。

自分の文体を大切にしたいときは軽く、客観的な視点で磨き上げたいときは深く。AIに主導権を渡すのではなく、あくまで自分がハンドルを握りながら、AIにナビゲーションをしてもらう、そんな体験を目指しています。

文章の文脈校正が下手なのでこまめな添削機能は助かる。

関連記事

過去にも同じようなことにトライしようとしていました。

一番最初にやろうとしたのはこれですね。LM-StudioとContinueで文章支援。この頃はコーディングエージェントを使っていなかったのでこの発想でした。

VS Code + ContinueでローカルLLMと一緒に文章編集する
環境:LM Studio 0.3.37, Visual Studio Code 1.107.1, Continue 1.2.11はじめに長文の文章を、エディタに本文を表示したまま、人間とLLMが局所的な修正を繰り返しながら進めていく形で文章…

チャットアプリを作成してRAGの仕組みを理解しました。ここで得た知見をテキストエディタに応用したという感じです。

ローカルLLMに長期記憶を持たせたチャットアプリをつくる
環境:Visual Studio Code, Claude Code(Sonnet 4.6)AIチャットアプリを作りながらローカルLLMの記憶の仕組みを作ってみました。記憶してくれていると嬉しいし、愛着も沸きますよね。LM Studioなど…

リポジトリ

リポジトリはこちら

GitHub – ysm446/lm-text-editor
Contribute to ysm446/lm-text-editor development by creating an account on GitHub.

※未完成の試作なので、参考程度に留めてください。

タイトルとURLをコピーしました