世界を動かす技術を、日本語で。

非自明な「Ghostty」機能のバイブレーション

2025年10月11日原文(mitchellh.com)

概要

  • GhosttyのmacOS向け自動アップデート通知機能 の開発プロセスを紹介
  • AIと人間の協働 による実践的なエージェンティックコーディングの詳細な記録
  • UI/UX設計、バグ対応、コード整理 までの全セッションを公開
  • AIの活用法や限界、トークンコスト も解説
  • 人間主導の最終判断とコード品質維持 の重要性を強調

非侵襲的macOS自動アップデート通知機能の開発記録

  • Ghostty向けの新機能 として、作業を妨げないmacOSの自動アップデート通知機能の開発
  • OpenAIのキーノート中にアップデート通知が割り込んだ事例 がきっかけ
  • 通知はウィンドウやフォーカスを奪わず、タイトルバー右上やウィンドウ右下に非モーダル表示 する設計
  • Sparkleフレームワーク でカスタムUI対応可能と確認
  • AIは主にプロトタイピングやアイデア出し、計画策定に活用、最終的な品質確保は人間が担当

AIセッションの進め方と工夫

  • 初回セッションではUIプロトタイピングに集中、AIには「計画のみ」を指示し、即座にコード生成は依頼しない
  • 小さなチャンクでの作業分割・レビュー・反復を徹底、大きな変更は避ける
  • AIのアウトプットは方向性が良ければ採用、インスピレーション源としても活用
  • 「oracle」(高精度AIサブエージェント)で計画段階の精度向上
  • プランはspec.md等に保存し、以降のセッションで参照可能に

バグ対応とAIの限界

  • AIが解決できないクリティカルバグ に直面した際は、人間自身の調査・学習を優先
  • AIによる「ハイルメアリー」的な修正提案はコストが低く、理解できない場合はリジェクト
  • 最終的にAIに頼らず、設計見直しやUI配置変更(タイトルバー→ウィンドウ右下)で解決策を模索

コード整理とドキュメント整備

  • 関数やViewModelの適切な配置・汎用化 (例:pill背景・バッジ関数の移動・リファクタリング)
  • ドキュメント追加でコード理解を深め、将来のAIセッションや他の開発者の助けに
  • ViewModelのアプリ全体スコープへの移動で、情報の一元管理を実現
  • 整理・リファクタリングは「アンチスロップセッション」として重要視

バックエンド開発と再整理

  • UI完成後、バックエンド(Sparkle連携)の開発へ着手
  • AIに「穴埋め」的なタスクを依頼する際は、関数名・パラメータ・TODOコメントで明確に指示
  • AIが不適切な設計をした場合は、即座に破棄し、ViewModelの再設計・型の見直しを手動で実施
  • ViewModelの型変更(タグ付きユニオン等)で、フロント・バックエンド両面での拡張性・保守性向上

AI活用のベストプラクティスと人間主導の重要性

  • AIは「ゼロからイチ」の創造やアイデアブレストに最適
  • 大規模・本質的な設計や最終品質保証は人間が担うべき領域
  • AIの提案は理解・納得できる範囲でのみ採用、ブラックボックスなコードはリジェクト
  • ドキュメント・設計書の整備で、AIと人間双方の生産性を最大化

まとめと学び

  • AIと人間の協働による非トリビアルな機能開発の実践例
  • AIの限界を見極め、適切なタイミングで人間主導に切り替える判断力
  • 計画・設計・リファクタリング・ドキュメント整備の重要性
  • 最終的な品質担保と、将来のメンテナンス性を意識した開発プロセスの推進

Hackerたちの意見

余談だけど、GhosttyがAIコーディングツールの使用を開示することを義務付けたみたいだね。https://github.com/ghostty-org/ghostty/pull/8289

Ghosttyは最高で、iTermをほぼ捨てるところだったけど、cmd-fを押したら何も起こらなかった。https://github.com/ghostty-org/ghostty/issues?q=is%3Aissue%2...

検索機能がないのと、変なSSH制御文字の問題がブロッカーになってる。それ以外は素晴らしいんだけどね!

これも僕のブロッカーだね。

cmd-fが最初からあったら、みんながこのGhosttyの投稿で何を話してたのか気になる。毎回それについて聞くのはちょっと退屈だよね!LLMツールやコーディングのアプローチについて話す面白いことがあるのに。もちろん、cmd-fについて文句を言いたい気持ちの方が強いけど ;)

うん、すぐに(残念ながら!)Warpに戻っちゃったよ。Ghosttyは俺の使い方にはちょっと物足りなかった。アドバイスとして言っとくけど、Ghosttyのデフォルトのスクロールバックバッファは約10MBしかないけど、設定で簡単に変更できるよ。

2026年3月のv1.3が予定されてるよ。 https://ghostty.org/docs/install/release-notes/1-2-0#roadmap

面白いことに、先週末にClaudeを使ってGhosttyに検索機能を実装してたんだ。実際の検索の実装はすでにある程度動いてたから、ほとんどの作業はUIに接続するだけだった。合計で10時間くらいのセッションを2回やったら、基本的な検索機能がハイライト付きで、次のマッチや前のマッチに移動するのがLinuxフロントエンドで動くようになった。ただ、検索の実装はまだ進行中だから、一般的に使える状態ではないよ。それでも、テキストのストリームを追いかける時にこの「基本的な」機能を作るのがどれだけ複雑かを考えると、感謝の気持ちが湧いてきた。

ヒント:インスピレーションのためにAIをよく使うよ。この場合、作ったUIコードの多く(全部じゃないけど)をそのまま残したけど、エージェントにプロンプトを出して、全部捨てて自分でやり直すことも多い。創造の「ゼロから一」段階がすごく難しくて時間がかかるから、AIは僕のミューズとして最高なんだよね。これがコーディングエージェントの最大の利点だと思う。みんながAIを介したプロジェクトのメンテナンス性や拡張性について心配しているのは理解できるけど、僕は気にしない。プロジェクトを立ち上げて、機能の一部とやり取りできるようになった瞬間から、もう走り出す準備ができてる。プログラミングでコストがかかるのは、そういう黄金の瞬間に到達するまでの80%なんだ。この部分で、みんながコーディングエージェントに対して持っている反対意見が理解できない。明らかに価値があると思うし、エージェントを使って何もしなくても、コードを全部捨ててもいいんだから。追伸:そのベーコンに重りを乗せて!

ここが、僕がコーディングエージェントに対する反対意見が理解できない部分なんだ。だって、同僚が持続不可能なレベルで雑な仕事をして、管理職に自分がどれだけ生産的かを誇ってるから。彼のPRをレビューするのがどれだけひどいかを指摘するのが、今やキャリアにとってさらにリスクになってる(チーム内で声を上げたい人は他にもいるけど)。ネットには、自分が10倍の開発者になった未来に生きていると主張する人が溢れてる。こういう主張をするのにほとんどコストがかからないけど、僕や他の多くの人の日常に悪影響を与えてる。これらのネットの声を責めるつもりはないけど(クマがハイカーを襲うのを責めないように)、彼らがもたらしているダメージは現実なんだ。

「プロジェクトを立ち上げて、機能の一部とやり取りして洗練させられる瞬間が来たら、俺は一気に進むよ。[...] ここが、俺が人々がコーディングエージェントに対して持つ反対意見を理解できない部分なんだ。それが君にとって価値のあることなんだよ。俺にとっては、ゼロから一にする部分が一番やりがいがあって楽しいから、可能性がほぼ無限に広がる瞬間なんだ。何か本当にオリジナルで新しいものを作れるからね。AIモデルに一方向に誘導されると、その楽しさを失う気がするんだ。」

今週、ミッチェルの開発環境についてのインタビューを見たんだけど、IDEの代わりにneovimを使うことについて聞かれたとき、「自分のためにコードを書いてくれるものは欲しくない」とか言ってた。これを批判として指摘するつもりはないけど、彼みたいな優れた開発者が、以前のインテリセンス的なツールでは感じなかったLLMの価値を見出しているのは注目に値すると思う。

Hacker Newsで議論の続きを見る