自分専用 GUI ツール「cockpit」を作った話 — 便利+無敵感は両取りできる
はじめに
最近、ちょっとした困りごとを AI と一緒にツール化する のが日常になりました。先日 OSS 公開した office-toolkit もその一例で、月次の事務処理で出てくる e-Tax の ZIP を A4 PDF にする CLI です。
ところが使い始めて気付いたのは、CLI で十分なはずだった処理が、毎月・複数種類の書類で繰り返し走る ようになると、コマンドの引数を覚えていられないし、出来上がった PDF をエクスプローラで探すのも地味に面倒、ということでした。
「これ、ウィンドウに ZIP をドロップするだけで出来上がってほしいな」
…と思ったが最後、自分用の GUI を作るのを止められなくなりました。本記事は、そうやって出来上がった社内ツール cockpit の紹介と、「自分専用 GUI を作ること自体が、ちょっとした贅沢で楽しい」という話です。
CLI で済むはずなのに、なぜ GUI を作るのか
エンジニアの自分にとって、CLI は最強のインターフェースのはずです。シェル履歴で過去の呼び出しを引っ張れるし、パイプで他のツールと繋がるし、スクリプト化も簡単。
それでも GUI が欲しくなる場面はあります。
- 引数を覚えていない: 月に 1 回しか叩かないコマンドの
--position rtみたいな指定を毎回--helpで確認している - 入出力がファイル: 入力 ZIP を引数で渡し、出力 PDF をどこに置いたか思い出して開く、という一連の動きが意外と面倒
- 複数ツールの目次が欲しい: 「自分が作った小ツール」が増えてくると、何があるのか自分で忘れる
要するに、CLI が苦手なのは 発見性 (discoverability) と 状態の見える化 です。GUI にすると、「何ができるツールが手元にあって、今これをやれば終わる」という流れが視覚化されて、認知負荷が一気に下がる。
問題は、GUI を作るのが従来は「割に合わない」と感じる作業だった、という点です。自分しか使わないツールに HTML/CSS をゴリゴリ書く時間があれば、その時間で別の CLI を一個作ったほうが…という判断になりがちでした。
ところが、AI コーディングエージェントが普通に GUI を書いてくれる時代 になって、この計算が変わりました。Vue でボタン 1 個、ドラッグ&ドロップエリア 1 個、進行状況の表示 1 個、というレベルなら、設計を口頭で伝えれば 30 分で動くものが出る。GUI 化のコストが、ほぼ「自分が何が欲しいかを言語化するコスト」に圧縮されたわけです。
それなら、と踏み切ったのが cockpit でした。
作ったもの: cockpit
cockpit は、自分が作った社内向けツール群を ひとつのウィンドウから一覧・操作できる統合パネル です。Tauri ベースのスタンドアロン GUI で、ダブルクリックで立ち上がる普通のデスクトップアプリ。技術スタックはシンプルに:
| レイヤー | 技術 |
|---|---|
| デスクトップフレームワーク | Tauri |
| ネイティブ層 | Rust + Python サイドカー |
| フロントエンド | Vue 3 |
| スタイリング | Tailwind CSS |
ローカル専用、認証なし、外部に何も送らない。自分の机の上だけで動くアプリです。
トップ画面はカードのグリッドになっていて、各カードが 1 つのツール。クリックすると、その下にツール本体のパネルが展開します。ZIP をドロップして「変換」を押すと、対応する処理を Rust/Python サイドカーが実行し、出来上がったファイルが落ちてくる、という流れ。
要するに 手元の小ツールに簡易 UI を被せただけ です。中身は自分が前から作っていた処理で、cockpit は薄いラッパー。なのに使い心地はぜんぜん違いました。
自分しか欲しくないラインナップ
cockpit に並んでいる機能は、現時点でこの 4 つです。
| ツール | 何をするか |
|---|---|
| A4 CONVERTER | Click Post のラベル PDF を A4 用紙の好きな象限に配置し直す |
| CAPTION GENERATOR | CSV からショート動画用のキャプション画像を一括生成 |
| BOOK PRICE LOOKUP | ISBN バーコードから Amazon / メルカリ価格を取得 |
| E-TAX PDF CONVERTER | e-Tax / 年金機構の通知 ZIP を読みやすい PDF に変換 |
並べてみてあらためて思うのは、他人がこの組み合わせを欲しがる確率はほぼゼロ だということです。
- Click Post のシール用紙を 4 回使い切りたい人
- ショート動画用にキャプション画像を量産したい人
- 中古書を買うときに ISBN で価格を比較する人
- 月次で年金機構の電子通知を A4 PDF にしたい人
このラインナップを全部欲する人は、たぶん地球上で自分くらいしかいません。でも、その全部が自分の月次・週次の業務 なんですよね。需要が「世界に 1 人」しかいないけど、その 1 人の業務サイクルにはカチッとはまる。商用ツールでは絶対に作られない、自分専用の組み合わせです。
これは、AI で個人ツールを作ることの 本質的な意味 だと思っています。マーケットの大きさで足切りされて誰も作ってくれない機能を、自分のためだけに、自分の手元で召喚できる。富の集中ではなく、各自の能動性が増える方向の技術活用、というやつです。
デザインに振り切る楽しさ
機能が動くだけなら、デフォルトの白背景+灰色ボタンでも構わなかったはずです。でも、自分しか使わない GUI というのは、デザインで遊ぶのに最高の場所でもあります。誰の業務効率も損なわないし、誰のブランドガイドラインにも縛られない。
そこで cockpit のテーマは「戦闘機のコックピット」にしました。SF 映画や攻殻機動隊的な HUD、ゲームのコンソール画面が混ざった、ダークサイバーパンクなダッシュボード。

パネルのタイトルは [ PANEL TITLE ] と角括弧で囲み、見出しは等幅フォントの大文字。ステータスは ● READY のドットインジケーターで、アクティブな要素にはネオンのグローを乗せて、ホバー時にシアンが滲むようにしています。
実用上は、白背景でも何も困りません。困らないんですが、毎日開く画面が「自分の好きな世界観」になっている ことの満足度は、地味に効きます。仕事の道具を選ぶときに見た目を気にする感覚と同じで、自分専用 GUI なら設計者の好みを 100% 反映できる。
自分のためだけにここまでデザインに振り切れる場面は、商用プロダクトではまず無いんですよね。
「便利」と「無敵感」は別の効用
ここからが本題です。
cockpit を使い始めて気付いたのは、CLI を GUI 化することで得られる効用には、測れる便利さ と 測れない無敵感 の 2 種類がある、ということでした。
測れる便利さ は、まあ普通の話です。
- 引数を毎回
--helpで確認しなくていい - 入出力がドラッグ&ドロップで完結する
- ステータスが一目で見える
これは秒数で測れます。月に 30 分くらいは縮んでいるはずです。
一方の 無敵感 はもっと曖昧で、強いていえば「自分が司令官席に座っている」という感覚に近い。アプリを起動すると、サイバーパンクなコックピット画面に自分の業務ツールが整列していて、ステータスは全部 READY。何かトラブルが来ても、これらのボタンを順に押していけば淡々と片付く、という確信が画面の中にある。
業務効率化の話をするときに、私たちはつい秒数で語りがちです。実際の処理内容は CLI 時代と一切変わっていません。バックエンドは同じ処理を呼び出しているだけで、機能的には何も増えていない。
それでも、毎日画面を開くたびに気分が良い、というのは心理的に効くかもしれません。長期で見ると 1 回 5 秒の短縮より、1 回開くたびにテンションがあがるほうが、嬉しさが持続すると思いませんか?
AI で「個人ツール」が遊びになった時代
cockpit 自体は、ほぼ全部 Claude Code との対話で書きました。私の役割は、機能リストを言語化したり、デザインの方向性を伝えたり、ハマったときに「ここの z-index がおかしい」と指摘したりする程度です。
これまで「個人で使うちょっとしたツール」を作るときは、CLI を選ぶのがほぼ正解でした。GUI を作る時間で、別の CLI が一個書ける。コストパフォーマンス的に GUI は割に合わない、というのが暗黙のルールでした。
その制約が、AI コーディングエージェントの登場でかなり緩んでいます。
- 自分しか使わない GUI を作る
- 自分の好きな世界観でデザインする
- 自分の業務サイクルにぴったりのラインナップで揃える
…という、商業的に絶対にペイしない遊びを、個人が個人のためにやれるようになった。ソフトウェアの「自作」が、料理や DIY と同じ密度で趣味化していく のかもしれません。
まとめ
- AI コーディングエージェントの登場で、個人専用 GUI を作るコスト が大きく下がった
- CLI を GUI 化すると、引数の暗記や入出力ファイルの取り回しといった 発見性の問題 が消える
- それに加えて、自分の好きな世界観でデザインに振り切れる という、商用プロダクトでは得られない楽しさがある
- 結果として「便利」と「無敵感」の両取りができ、毎日開く画面のテンションが上がる
- 自分しか需要がない機能の組み合わせを、自分のためだけに作れる時代になった
業務効率化を秒数で語るのも大事ですが、自分のために自分用の操作盤を持っている という感覚は、長く効きます。AI で何を作ろうか迷っている方は、まず「自分専用 GUI」を一個作ってみるのをおすすめします。
サムライアプスでは AI 導入支援とソフトウェア受託開発をしていて、お客様の業務に AI を組み込むご支援をしています。社内的には「自分のために小ツールを作る」をスタッフ各自が日常的にやるのも大事だと思っていて、cockpit はその一例です。自分の困りごとを自分で解決した経験の数 が、結局は受託先のお客様の困りごとを解像度高く受け止める力に繋がるので。
「自分用にこういう操作パネルを作りたい」「社内の Excel 作業を AI で GUI 化できないか」みたいなご相談があれば、お問い合わせフォーム からどうぞ。
これにて御免!