Beta
Codex CLIを快適に使うためのVSCode拡張を自作したのアイコン

Codex CLIを快適に使うためのVSCode拡張を自作した

Codex CLIのapp-server(公式VSCode拡張向けバックエンド)を利用し、公式よりも使いやすいVSCode拡張を作った。

Visit Product
プロダクトの感想・意見はこのエリアに表示されます
アイキャッチ画像

Codex CLIを快適に使うためのVSCode拡張を自作した

Codex CLI便利ですよね。直感的で、開発フローに組み込みやすくて。
ただ、Macユーザーの方なら共感してもらえると思うんですが、TUIでの日本語入力、つらくないですか?
表示が崩れたり、変換中の挙動が怪しかったりして、ストレスを感じることが多々ありました。

「これをTUIのまま解決するのは骨が折れそうだな...」
そう思って公式のVSCode拡張も試したんですが、今度は「複数セッションを行き来するのが面倒」という別のストレスが。

じゃあ、自分の理想の環境を作ってしまおうと。
幸いCodex CLIには app-server という機能があり、フロントエンドを自作しやすくなっています。
今回はVibe Codingを活用して、サクッと自分好みの拡張機能を作ってみました。

コンセプト:ストレスフリーな日本語入力と、軽快なセッション管理

UI
Codex UI

目指したのは、「スムーズに日本語で対話できること」。

TUIの問題(日本語入力)をVSCodeのWebViewで解決し、
公式拡張の問題(セッション切り替えの手間)を、独自のタブ管理UIで解消しました。
結果的にモダンなUIにはなりましたが、それはCodexが優秀だったからです笑

主な機能

1. 複数セッションの同時管理

session_menu
SESSIONSから選んで開く・隠すことができます

公式拡張では1つのチャットセッションしか持てませんでしたが、この拡張ではタブのように複数のセッションを切り替えられます。
「機能Aの実装」について聞きながら、並行して「エラーログの調査」を別スレッドで投げるといった使い方が可能です。

resume
過去のセッションも履歴から呼び出せます

また、「◯◯のバグ調査用」「設計案の壁打ち」みたいにまた、セッションに名前をつけられるので、「あの時の会話どこだっけ?」と探す手間も減ります。

rename
セッションに名前をつけられます

2. ワークスペース利用時のディレクトリ選択

VSCodeには複数のディレクトリをひとつのWindowで開ける「マルチルートワークスペース」という機能があります。
公式拡張では、マルチルートワークスペースを開いている際、Codex起動時に「どのディレクトリで起動するか」を選べないという課題がありました。

そこで、セッション開始時に「どのディレクトリ(ルート)でCodexを起動するか」を明示的に選べるようにしました。

仕組み的な話:VSCodeとCLIの分離運用

この拡張の裏側は、実はかなりシンプルかつ堅牢に作っています。

アーキテクチャ

VSCode拡張(Frontend)の中にAIのロジックを持っているわけではありません。
codex app-server というCLIコマンドを子プロセスとして起動し、JSON-RPCで対話しています。

  1. Backend (Codex CLI):

    • ワークスペースごとのルートディレクトリで codex app-server を起動。
    • ファイル読み込みやツール実行は、このプロセスが行います。
    • 標準入出力(stdio)を通じて、対話内容やツール実行結果をJSON形式でやり取りします。
  2. Frontend (VSCode Extension):

    • ユーザーの入力を受け取り、JSON-RPCリクエストとしてBackendに投げます。
    • BackendからのストリーミングレスポンスをWebViewに描画します。
    • 複数のセッションID(VSCode側で生成)を管理し、どのチャットがどのスレッドに紐づくかを制御します。

技術的なメリット

この「分離構成」にはいくつかメリットがあります。

  • 動作が軽い: 重たい推論やファイル操作は別プロセスなので、VSCode自体の動作を阻害しません。
  • CLIの進化に追従できる: Codex CLI本体がアップデートされれば、拡張側を変更しなくても新機能(新しいモデルやツールなど)が使えるようになります。
  • 純正の安心感: 通信プロトコルはCodex公式のものをそのまま使っているので、挙動の食い違いが起きにくいです。

今後

とりあえずローカルでガシガシ使ってますが、今のところかなり快適です。
TUIの日本語入力問題から開放されたのが一番デカイかも。

公開していますが、まずは自分好みに育てていこうと思います。
Codex CLIユーザーで同じ悩みを持ってる方、自作拡張おすすめです。

Explore More
関連記事はありません。