私は約1か月ほど、時々OpenCodeを使っていました。主に、小さなVPSで単一のサイドプロジェクトに取り組んでいるだけです。空きディスク容量がどんどん減ってきたので掃除しようと思ったところ、これが目に留まりました:
$ ls -lh ~/.local/share/opencode/opencode.db
-rw-r--r-- 1 ubuntu ubuntu 2.4G Apr 15 03:25 opencode.db
1か月、ヘビーではない利用、単一プロジェクト、セッションDBが2.4GB。これは正気ではないように思えます。
何がスペースを食っているのか
エージェントに詳しい背景を教えてもらったところ、OpenCodeはすべてのターンについて、思考&推論の出力を丸ごと1つのSQLiteデータベースに保存していることが分かりました。私の場合、この2.4GBの大半は推論トークンとツール結果で、実際の会話テキストは全体の1%にも満たないです。それらをすべて残しておくことの本当の価値がよく分かりません。しかも(強力なSQLiteのおかげで)単一のSQLiteデータベースに溜まっていくのには驚きました。そして、OpenCodeにこのための組み込みのクリーンアップがないのを見てさらに驚きました。なのでこれは、node_modulesよりも巨大なブラックホールになるまで、ずっと増え続けるだけです。
参考までに、Claude Codeは同期間で86MBです。Codexは95MBです。
OpenCodeのセッションDBをガベージコレクトしよう
そこで私は(実際にはclaude codeが)ocgc(OpenCode Garbage Collector)を作りました。
uv tool install ocgc
ocgc statusで、どこに容量が消えているかが分かります:
ocgc analyzeでは、最も重いセッションと、データベースがどれくらいの速さで増えているかが表示されます:
実際のガベージコレクトはocgc purgeで行います:
ocgc purge --subagents --older-than 7d
809セッション、1.8GB。なくなりました。続いてocgc vacuumで、ディスク容量を実際に取り戻します。2.3GBから438MBへ減りました。
データベースを掃除した後、OpenCodeのsnapshot/とsession_diff/ディレクトリでもかなり容量を使っていることに気づきました。そのためocgcはそれらもあわせてクリーンアップします。
~/.local/share/opencode/opencode.dbを確認してみてください。ディスク容量は木から生えてきません。







