0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OpenCodeがCtrl + Cで不意に終了するのを防ぐ設定方法

0
Last updated at Posted at 2026-09-10

はじめに

最近、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 の値を書き換えてください。

opencode.json
{
  "keybinds": {
    "app_exit": "ctrl+d,<leader>q"
  }
}

おすすめのキーバインド

上記の設定では、終了キーを以下の2つに変更しています。

  1. ctrl+d
    多くのシェルにおいて EOF(End Of File)として「ログアウト」や「終了」に割り当てられているため、違和感なく移行できます。
  2. <leader>q
    Vim ユーザーにお馴染みのキーバインドです。リーダーキー(デフォルトでは ctrl+x)の後に q を押すことで終了できます。

これにより、Ctrl + C は OpenCode 内部の処理中断や入力キャンセルといった、より安全な挙動に(あるいは単に無反応に)なり、アプリの不意な終了を回避できるようになります。

終わりに

ちょっとした設定ですが、これだけで OpenCode を使った開発のストレスが大幅に軽減されます。
「Ctrl + C でアプリが落ちるのがつらい」と感じていた方は、ぜひ試してみてください。

この記事が皆さんの AI 駆動開発のお役に立てれば幸いです。
最後まで読んでいただきありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?