黒谷です。今回はAIを活用してTextbringerのプラグインを作った話です。もちろんこの原稿もTextbringerを使って書きました。
TextbringerはRubyで実装されたEmacsライクなテキストエディタです。 Rubyのコミッターである前田修吾さんが開発されました。
shugo/textbringer: An Emacs-like text editor written in Ruby
私は普段から仕事でもプライベートでもTextbringerを使っています。TextbringerはRubyで拡張できるので、使いなれたRubyで気軽に便利な機能を追加することができる...と書きたいところですが、ソフトウェア開発者ではない私には大きな機能追加は難しいです。ちょっとしたコマンドを追加する程度のことはできましたが、それ以上のことはできませんでした。
近年AIがどんどん高性能になり、バイブコーディングという言葉も出現し、素人でもソフトウェア開発ができるようになりました。AIを活用すれば、私でもTextbringerの機能追加ができるのではないかと思い、あったらいいなと思う機能を作ってみることにしました。Textbringerにプラグインのしくみがあることは知っていたので、プラグインとして作ることにしました。
使用したのはClaude Codeです。他と比較したわけではなく、まずClaude Codeから試してみようかなという気分で採用しました。
最初は、欲しい機能をAIに伝えるところから始めました。Developers Summit 2026 参加レポート(当社ブログ記事)で「スペック駆動開発(SDD)」という言葉が紹介されていました。そこまできちんと仕様を整えたわけではありませんが、Emacsに似ている機能があれば「Emacsの○○という機能と同じような機能を実現したい」みたいにできるだけ具体的に伝えるようにしました。また、複数の機能を同時に作ることがないように、作る機能がひとつになるように気をつけました。
少しずつ機能を追加していく中でソースコードの改善が必要になったとき、ソースコードを修正してすぐコミットしようとすることがありました。ソースコードの修正差分を見ても善し悪しが判断できないため、私が判断するための根拠となるものと、改修プランを示してもらい、議論してから修正案を示してもらうことにしました。CLAUDE.mdに以下のような指示を入れています。
* ソースコードの改修案を提示するときは、根拠となる事実(修正されたコミットがどれか、等)を示してから、改修プランを示し、ユーザーと議論をしてから、提示する。
テストコードについては、Textbringerに含まれるテストコードをAIに見てもらい、それを参考にしてテストコードを書いてもらうようにしました。勉強していない私には書けないので大変助かります。
私は議論した内容を忘れるので、作業を終えるときに議論した内容や実施した内容の概要をテキストファイルに保存することにしました。Claude Codeは過去に終了した状態から再開するコマンドがありますのでそれを活用すれば良いのですが、過去の記録をさっと見返したいときにテキストファイルがあると良いなと思ったのでそのようにしています。
Textbringerではファイルの操作をするときなどにミニバッファを使います。このミニバッファの操作が便利になるといいなと思って作りました。
普段 zsh を使っており、TABを押すだけで選択肢を次から次へ変えてくれる挙動になれてしまいました。Textbringerでも同じようにしたいと思って作りました。
Gemとして登録したので、
gem install textbringer-minibuffer-extension
でインストールできます。
ソースコードは以下のリポジトリから取得できます。
https://github.com/kurod1492/textbringer-minibuffer-extension
EmacsにはRecentfというモードがあります。このモードを有効にすると、開いたファイルのファイル名を保存しておき、あとから参照できるようになります。Textbringerを使う前、Emacsを使っていた頃はこの機能を便利に使っていました。Textbringerでも同様の機能があるといいなと思って作ってみました。
保存されたファイル名のリストをミニバッファで選択することになるため、textbringer-minibuffer-extensionがないと使いにくいと考え、依存関係が設定してあります。
Gemとして登録したので、
gem install textbringer-recentf
でインストールできます。
ソースコードは以下のリポジトリから取得できます。
https://github.com/kurod1492/textbringer-recentf
AIを活用してTextbringerのプラグインを作ってみたというお話でした。他の人が実現してくれるのを待つのではなく、AIの力を借りて自分で作ることができる良い時代になったと感じています。
【スタッフ募集中】
「My Redmine」など弊社提供サービスのお問い合わせ対応を担当するカスタマーサポートスタッフを募集しています。
弊社での勤務に関心をお持ちの方は、知り合いの弊社社員・関係者を通じてご連絡ください。採用情報の詳細
|
Redmine 6.0では通知メールの「List-Id」ヘッダにプロジェクト識別子が含まれるようになりました。Gmailで通知メールをプロジェクトごとに自動振り分けする方法を紹介します。 |
|
Genuary 2026をきっかけに、p5.rbで初めてジェネラティブアート制作に挑戦しました。 |
|
OSC2026 OsakaとTokyo/Spring の出展を通して、Redmineの運用がうまくいくチームとそうでないチームの違いについて改めて考えてみました。 |
|
Developers Summit 2026に参加しました。刺激的なセッションの数々を振り返ります。 |
|
ファーエンドテクノロジーに入社しました。メールからSlackとRedmineの環境に変わって快適になりました。 |
|
My Redmine 2026 新春アップデートのお知らせ(RedMica 4.0対応) 2025年12月にMy Redmine 2026 新春アップデートを実施しました。 |
|
プロジェクト管理ツール「RedMica」バージョン 4.0.0をリリース Redmine互換のオープンソースソフトウェア 今日使える明日のRedmine「RedMica」のバージョン4.0.0をリリースしました。 |
|
Redmineの最新情報をメールでお知らせする「Redmine News」配信中 新バージョンやセキュリティ修正のリリース情報、そのほか最新情報を迅速にお届け |