emahiro/b.log

日々の勉強の記録とか育児の記録とか。

デフォルト状態の使い勝手良さは大事

最近の自分の開発環境現況である。

AI 時代になって毎月アップデートしてる気がするが、herdr が出て以降この構成で向こう1年くらい暮らせそうだなと思ってしまっている。なおターミナルエミュレーターも少し前まで WezTerm を使っていたが最近 iTerm に回帰している。

実は iTerm にしろ herdr にしろ、これらのツールに落ち着いてしまったのは「デフォルト状態(=ノーカスタマイズ状態)で十分な機能が備わっている」という点にある。

AI 時代にあって、様々なツールが出てくる。特に Agent のマネジメントという新しいコンテキストにおいて Agent の状態を一覧できる View というのは求められているわけで、何かツールを使うときにこれだけは外せないなと思うようになっている。

ただ、一方で自分のユースケースに照らし合わせて考えているとぶっちゃけそれくらいしか必要なものはない。別にそれ以外の部分はカスタマイズできなくてもいいわけだし、足りてる状態のツールからあえて新進気鋭のツール(新しいだけあって機能不足)に乗り換える必要もないなと思ったりする。

新しいツールを見つけて試すのは面白いが、 AsIs の状態に合わせるようにカスタマイズするのがめんどくさかったりするのもまた事実。最近の自分の時間の使い方を考えると、もはや新しいツールを都度試していくような余裕もあまりない。結果として使い慣れた枯れたツールが楽、という状態に帰結してるなと気づいた。

今現在このような新規ツール、パラダイムへのモチベーションの低さにあって herdr は逆に開発環境のデファクトとしていきなり入ってきたのだから結構すごい。逆になんで入ってこれたのか考えるといくつか理由もある気がする。

  1. tmux は使っていたが自分は使いやすいと感じたことはなく、あまりちゃんと使いこなせていなかった( keybind をすべて覚えるモチベがなかった)
  2. 今までの開発はほぼすべて VSCode 上で行えており、別に困ってなかった。
  3. Agentic Coding の時代にあっていろいろ試行錯誤してる中で VSCode だと物足りず、純正のツールを使いなくなったが、上記のエージェントの状態管理 View にはどれも一長一短を感じていた。
  4. 一時期各社の Desktop アプリを使っていたが、自分は claude/codex を意図を持って使い分けている *1 のもあって、いちいちアプリを切り替えるのがダルくなっていたこと。
  5. cmux など Agentic Coding を前提としたエミュレーターや、zellij のようなターミナルマルチプレキサも使ったが、これまた使い勝手の部分だとバグや「これはできるがあれはできない」といったことが多く、まぁツールとして使い続ける難しさ、というか絶妙なストレスを感じていた。

そんな時に SNS で知った herdr だけどこれは自分のストレスやペインとなっていたものを現時点では解消していてかつ、 デフォルトの状態で自分が使いたい機能がほぼ揃っていた ことが急遽自分の開発環境の中心に入ってきた理由じゃないかと思う。
設定項目の多くは prefix + hogehoge で成立しており、自分として追加した keybind は 2 つ程度。tmux より覚えやすく、かつターミナルエミュレーター内のセッションの状態を操作する API があり、それを herdr 側が wrap してくれて操作しやすい(Agent が操作しやすい)というのが決め手だったと思う。

ここで何が言いたいかというと、前述したようなこの新しいツールへのモチベーションの低さにあって、「デフォルトの状態でどれだけ使いやすいか、幅広い操作をカバーしているか」というのは大きいと思う。
WezTerm -> iTerm に戻ったものこれが大きい。WezTerm をはじめ昨今のターミナルエミュレーターは確かに軽くて操作性の良いものが多いが、設定を自分で書かないといけない。これがいいという人もいるだろうが、自分はもはやこれが「めんどくさく」なってしまった。いちいち設定を管理したくない。別にこだわりがあるのはフォントくらい(もはやフォントも最近はなんでもいいとなって気が)でフォントをカスタマイズできればぶっちゃけデフォルトのまま使いたい、という欲求が強くなってきた。
なぜなら自分用の設定を管理しなくても、自分がツールのデフォルトに合わせて使い方を調整すれば、設定の管理、なんていうめんどくさいことをしなくていいからだ。

とかく最近めんどくさいなと思うことをしたくなくなった。ある意味では AI のせいとも言えるかもしれない。設定をカスタマイズするなんて AI にさせればいいとも思うがそれすらダルいし、トークン無駄遣いだなと思うことが増えている。

自分の脳みその退化のようにも感じるが、一方で注力しないといけないところには注力してるわけなので、言ってしまえば取捨選択の領域なんだと思う。捨てる部分を担保する方法として、自分をツールに最適化すること、および幅広いユースケースに耐えるアプリケーションを使うこと、を最近の信条としている。
これはこれで自分の思考がクリアになった感覚があり、別にツールを試さないでもいいなと思うことの方が増えている。

逆説的だが、これをやり切るために最近 nix を眺めてみてる。PC のセットアップなんてものはそうそう起きるものでもないが、自分の育てていた brew を書きまくった Makefile を nix に移動できないか、ということを検討中である。これまた pacakge manager という形をベースに local pc の個人環境セットアップという大きなユースケースに耐えそう、という理由だけで見ていたりする。

話は戻るが、標準機能でどれくらいのエコシステムのサポートがあり、かつ幅広く使われているか、というのは個人の1ツールをとってみても仕事で触るツールやソフトウェアをとってみても結構重要な判断基準になっていると思う。

*1: plan は claude、実装は codex と使い分けている。主な理由は「日本語力」で claude の方が plan が読みやすいし、成果物として残しておけるクオリティにあるから。