## What — 現在表示されているもの herdr のエージェント一覧は、設定しなければ組み込みのデフォルトで描画される。 ```toml rows = [["state_icon", "workspace", "tab"], ["agent"]] ``` 2行目の `agent` は**エージェント種別名**(`claude` / `codex`)であって、Opus や Sonnet といったモデル名ではない。herdr にモデル名のトークンは存在しない。 使える組み込みトークンは `herdr --default-config` に載っている 8 つ。 - `state_icon` - `state_text` - `workspace` - `tab` - `pane` - `agent` - `terminal_title` - `terminal_title_stripped` このうち `terminal_title_stripped` に、Claude Code のセッション名がそのまま入っている。Claude Code が OSC タイトルとして流しているものを herdr が拾っているだけなので、**transcript の jsonl を読む仕掛けも hook もいらない**。 ``` $ herdr agent list ... "terminal_title":"✳ 技術知識の洗い出しとまとめ", "terminal_title_stripped":"技術知識の洗い出しとまとめ" ... ``` ## How — config.toml に1セクション足す `~/dotfiles/.config/herdr/config.toml` の末尾に追記する(`~/.config/herdr/config.toml` はここへのシンボリックリンク)。 ```toml [ui.sidebar.agents] row_gap = 0 [ui.sidebar.agents.rows_by_agent] claude = [ ["state_icon", "workspace", "tab"], [{ token = "terminal_title_stripped", fg = "#58a6ff", dim = false }], ] ``` グローバルの `rows` を丸ごと差し替えず、`rows_by_agent` で `claude` だけ上書きしている。**codex など他のエージェントが OSC タイトルを出さない場合に2行目が空欄になる事故を避けるため。**他は既定のまま種別名が出る。 反映は再起動不要。 ``` herdr config check # → config: ok herdr server reload-config # → status: applied ``` ## 落とし穴 > [!warning] rename していなくても名前が出る > Claude Code は `/rename` した名前(transcript の `custom-title`)と、会話から自動生成した要約タイトル(`ai-title`)を**同じ OSC タイトルに流している**。herdr 側では区別できない。しかも自動タイトルは会話の途中で勝手に書き換わる(実測で1セッション中に1回変わった)ので、サイドバーの見出しは安定した目印にはならない。 もう一つ、working 中はスピナー記号 `◐ ` が `terminal_title_stripped` に残る(herdr 0.7.5 で確認。idle の `✳ ` は除去される)。1行目の `state_icon` と重複するだけなので実害はない。 ## 関連 - [[開発環境]] - [[herdrが撒く環境変数と入れ子判定]] — 同じく herdr の挙動を実データで確かめた話