はじめに
最近、AIエージェントを活用した開発が盛んですが、その中でも強力なツールの一つがOpenCodeです。
しかし、OpenCodeを使っていると一つ困ったことがあります。それは、「処理を中断しようとして、あるいは癖で Ctrl + C を押すと、OpenCode自体が終了してしまう」 という問題です。
ターミナル操作に慣れていると、実行中のコマンドを止めたり、入力をクリアしたりするために脊髄反射で Ctrl + C を押してしまいがちですが、OpenCodeでこれをやるとエージェントとのセッションごと閉じてしまい、「あ、今の履歴消えた...」と悲しい思いをすることになります。
今回は、この「うっかり終了」を防ぐために、終了キーバインドを変更する方法をご紹介します。
問題点:Ctrl + C による意図しない終了
OpenCodeは非常に賢いAIエージェントですが、インターフェースはターミナルライクです。
通常、ターミナルで実行中のプロセスを止めたいときは Ctrl + C (SIGINT) を使いますが、OpenCodeのデフォルト設定ではこのキーが「アプリケーションの終了」に割り当てられています。
AIエージェントが長い思考に入っているときに「ちょっと待てよ」と止めようとした瞬間、アプリごと落ちてしまうのは、開発リズムを大きく損なう要因になります。
解決策:キーバインドの変更
幸いなことに、OpenCodeは設定ファイルを通じてキーバインドをカスタマイズすることが可能です。
終了コマンド (app_exit) を別のキー(例えば Ctrl + D など)に逃がしてあげることで、Ctrl + C を押してもアプリが終了しないように設定できます。
設定方法
設定ファイルの場所
OpenCodeの設定は、ホームディレクトリ以下の隠しフォルダ内にJSON形式で保存されています。
~/.config/opencode/opencode.json
このファイルをエディタで開いて編集します。
設定の記述
opencode.json の中に keybinds セクションを追加(または編集)します。
以下のように app_exit の値を書き換えてください。
{
"keybinds": {
"app_exit": "ctrl+d,<leader>q"
}
}
おすすめのキーバインド
上記の設定では、終了キーを以下の2つに変更しています。
-
ctrl+d
多くのシェルにおいて EOF(End Of File)として「ログアウト」や「終了」に割り当てられているため、違和感なく移行できます。 -
<leader>q
Vim ユーザーにお馴染みのキーバインドです。リーダーキー(デフォルトではctrl+x)の後にqを押すことで終了できます。
これにより、Ctrl + C は OpenCode 内部の処理中断や入力キャンセルといった、より安全な挙動に(あるいは単に無反応に)なり、アプリの不意な終了を回避できるようになります。
終わりに
ちょっとした設定ですが、これだけで OpenCode を使った開発のストレスが大幅に軽減されます。
「Ctrl + C でアプリが落ちるのがつらい」と感じていた方は、ぜひ試してみてください。
この記事が皆さんの AI 駆動開発のお役に立てれば幸いです。
最後まで読んでいただきありがとうございました。