## 経緯
[[Zellij]]みたいに開発用のレイアウトを瞬時に展開したいなと思っていたところ、良さげな[[herdrプラグイン]]を発見したので試してみる。
<div class="link-card-v2">
<div class="link-card-v2-site">
<img class="link-card-v2-site-icon" src="https://github.githubassets.com/favicons/favicon.svg" />
<span class="link-card-v2-site-name">GitHub</span>
</div>
<div class="link-card-v2-title">
GitHub - yuk1ty/herdr-spreader: Spin up your whole herdr workspace layout — tabs, panes, commands, and all — from a single YAML file.
</div>
<div class="link-card-v2-content">
Spin up your whole herdr workspace layout — tabs, panes, commands, and all — from a single YAML file. - yuk1ty/h ...
</div>
<img class="link-card-v2-image" src="https://opengraph.githubassets.com/b399e6151be16c0f90e89404ff2fc32ff3a422032f692d4b962e72a4b47f457a/yuk1ty/herdr-spreader" />
<a href="https://github.com/yuk1ty/herdr-spreader"></a>
</div>
## インストール
最初はプラグインとしてインストールしようかと思ったが、その場合は設定が1つしか適応できなそうだったので、[[CLI]]でのインストールに戦略を変更した。
```console
mise use -g cargo:https://github.com/yuk1ty/herdr-spreader@tag:v0.1.1
```
## 直感的に使えるコマンドの定義
[[herdr-spreader]]はレイアウトファイルを指定して起動する。
```console
herdr-spreader apply -f <レイアウトのyamlファイル>
```
ただ、毎回これを実行するのは大変なので、[[fzf]]でインクリメンタルサーチした結果を適応するコマンドをつくる。
```bash
alias hds='HDS_PATH="${HDS_PATH}"; herdr-spreader apply -f "$HDS_PATH/$(ls "$HDS_PATH" | fzf)"'
```
`${HDS_PATH}` 配下は以下のようなイメージ。
```console
${HDS_PATH}
└── jinrai.yaml
```
`jinrai.yaml` は実際のレイアウトファイル。
```yaml
workspaces:
- name: JINRAIサイト
root: ~/work/jinrai
tabs:
- label: main
panes:
# 左ペイン: リポジトリルート(全体の42%)
- focus: true
command: claude
# 右上
- split: right
ratio: 0.8
cwd: ./site
command: pnpm dev
# 右中央
- split: down
ratio: 0.33
cwd: ./docs
command: uv run zensical serve
# 右下
- split: down
ratio: 0.5
command: pkill -x JINRAI && ./scripts/make-app.sh && open .build/JINRAI.app
```
あとは `${HDS_PATH}` の配下にyamlファイルを必要なだけ作っていけばよい。