
この記事は ABEJAアドベントカレンダー2025 の 23 日目の記事です。
こんにちは!システム開発部の合屋(ごうや)です。 昨年は 今から始める NeoVim 生活 (序章) という記事を書き、Terminal に籠もる生活を送っています。
今年は Claude Code をはじめとする Agent によるコーディング作業も増え、より Terminal に居続けるようになりました。 しかし、実際の作業を行っていると Terminal から出なければならない作業もまだまだあります。 特に DB の中身を見たいときです。
DB を参照したいとき、私はメインとして DBeaver というツールを使用しています。 このツール自体は良いものですが、マウスを握ることになります。
マウスを握らなければ開発できない
マウスを握ったままでは開発を進められない
ということで、TUI (Terminal User Interfaces) を作ります。 快適な Terminal 生活を求めて。
TL;DR
WIP
TUI で DB を触りたい
実際のところ、DB の調査をしたいというだけであれば psql など CLI を利用すれば解決はします。
ですが、しんどいです。
普段使っている DBeaver であれば
- DB の接続先を登録し、クリックすることで対象に接続する
- クリックでテーブル一覧を取得する
- 列や行などの情報を query を書かずに取得する
という機能があるため、さっと調査が可能です。 おおよそ、他の同種の GUI ツールでも上記機能があるものと思われます。
CLI のように Terminal で触りたいが、GUI のようにリッチな使い方もしたい…。 一つの解決手段として TUI ツールを調査しました。
TUI という形式は元々ニーズがあり、lazygit や lazydocker, gh-dash などが有名どころです。 であれば TUI で DB を触ることのできる素敵なツールがあるに違いません。
ありました。解決です。

悲しいことに、コミットが 2 年前で止まっていました。 これから使い始めるには、些か手を出しにくい状況です。
ということで作ることにします。 他にも似たようなツールはあると思いますが、作ります。
作ってワクワク
欲しいもの、機能としてはある程度具体的にあります。
- 上記のような GUI にある便利機能を宿した TUI
- lazygit や lazydocker も使用するため、Vim ライクな操作ができること
問題は作業時間が取れるか?という点です。
ただ作るだけなのも、ネタとしてのパンチが弱いと感じます
上記の問題の克服するため、および AI による開発がどこまで自動的に行えるかの検証を含め、下記を作成しました。
開発方法
開発においては下記のツールをメインに使用しました。
コーディングは Claude Code および Vibe kanban を使用しています。
Vibe kanban を簡単に説明すると「Agent 用のタスク管理ツール」といった感じです。 こちらのツールでは、いわゆる Kanban 方式でタスクを起票 -> 任意の Agent にコーディング作業などをさせることが可能です。
今回はこれらのツールを用いて
- Vibe kanban にタスクを作成
- Claude Code (on Vibe kanban) でコーディングを行わせる
- GitHub でレビュー
- 人間がレビュー
- GitHub Copilot で自動レビュー
- Claude Code 側にレビューコメントを取得させ、反映する
- 必要に応じて、タスクを Vibe kanban に作成
- MCP サーバーとしても使用できるので、Agent にタスクを作るべきかジャッジさせる
というサイクルを回すようにしました。
技術的な目的
半自動的な開発を活発にするため、および検証を行うにあたり下記のような条件にしました。 ただし、厳密な検証ではなく体感での判断を行います。 本当にやりたいことは TUI の使用なので、検証は副次的な目的です。
目的
- 開発でメインに使っているものと異なる言語だと、どれぐらい快適にサイクルを回せそうか知りたい
- Web アプリケーション以外でも Agent でどこまで開発できるか試したい
- 普段は行わないような目的の開発で、どこまで Agent が対応できるのか知りたい
- 「人間がレビュー」だけで、どこまでモノを作れるか試したい
- アーキテクチャの採用やテストの設計さえ指定すれば問題なさそうか試したい
手段
- Rust で書かせてみる
- TUI 用にアーキテクチャは TEA を明示的に指定する
Rust の採用理由としては半分趣味ですが
- 型がガチガチなのでエラーが検出しやすく、Agent がコードを書くにあたってメリットがありそう
clippyなど標準的なツールで検査をさっとできるので、準備が少なくて済む- コンパイルを行わせることで、逐次エラーチェック + 起動を保証できる
という点で採用しました。
結果発表
今回は 12 月 1 日から約 20 日間ほど、ちょっとずつ Claude Code に実装をさせてみました。 現状で実装できたメイン機能としては下記となります。
- 接続管理
- 複数のデータベース接続を登録・管理
- プロジェクト単位での設定分離
- 対応データベース
- PostgreSQL
- テーブルブラウザ
- スキーマ、テーブル、ビューを階層的に表示
- カラム情報やインデックスの確認
- データビューア
- テーブルデータをページネーション付きで表示
- フィルタリングによる絞り込み
今後のロードマップとしては
- SQL クエリ実行、履歴の保存
- データの作成、更新、削除機能
- UI の充実化
- 複数データベースの対応
- 操作の充実化
の導入を行う予定です。
まだまだ開発初期段階ですが、Terminal に引きこもる生活の実現に向けて、着実に進んでいます。

半自動開発をしてみて
- Rust の採用は意外とアリ
- 開発したい対象によるが、起動確認や
clippyによる検査などでガチガチに固められて快適
- 開発したい対象によるが、起動確認や
- TUI 開発程度であれば、Agent でガリガリ作れそうな所感
- Agent で対応可能な領域だと感じました。
- TEA アーキテクチャで縛っておけば、人間の行うレビューも快適
- GitHub Copilot のレビューは使える
- とはいえ怪しいのもあるので Claude Code で判断させる材料扱いでよさそう
- 半自動で開発させるなら Vibe kanban の採用は強かった
- Claude Code にタスク起票をさせ、人間で取捨選択できるのは快適
最後に
まだまだ荒削りですが、 Issue も PR も歓迎です!
オレはようやくのぼりはじめたばかりだからな
この果てしなく遠い開発をよ…
未完

We Are Hiring!
ABEJAは、テクノロジーの社会実装に取り組んでいます。 技術はもちろん、技術をどのようにして社会やビジネスに組み込んでいくかを考えるのが好きな方は、下記採用ページからエントリーください! (新卒の方やインターンシップのエントリーもお待ちしております!)
特に下記ポジションの募集を強化しています!ぜひ御覧ください!
