📦

crmux v0.16 〜 v0.19 で追加した機能まとめ

に公開

crmux の紹介記事はこちら。

https://zenn.dev/maedana/articles/55520b68536c47

0.16.0 での変更(2026/03/15)

t キーで前回セッションにトグル

ノーマルモードで t を押すと、直前に選択していたセッションに戻れるようにした。tmuxの last-window みたいなやつ。2つのセッションを行き来するときに j/k で探さなくていい。地味だけどよく使う。

ボーダーカラーパルスへの変更

v0.13で追加した承認待ちセッションのパルスアニメーションを、背景パルスからボーダーカラーパルスに変更した。背景がパルスするとIME(fcitx5)が入力中にちらつく問題があって、テキストの視認性も良くなかった。ボーダーだけが脈動する形にしたら両方解決した。

ブロードキャスト対象の変更

I キーのブロードキャスト機能の送信先を、マーク済みセッションから「現在のタブで表示されている全セッション」に変更した。

v0.15でワークスペースフィルタを追加したので、タブが自然とスコープ制御の単位になった。ワークスペースタブを選んでいればそのワークスペース内のセッションだけに、プロジェクトタブならそのプロジェクト内だけにブロードキャストされる。Allタブなら全セッション。タブの選択がそのまま送信範囲になるので、マークより直感的になった。

同一プロジェクトでworkingtreeで複数同時に実装させた後とかまとめて /simplify とかするときなど便利。ブロードキャスト機能は我ながら簡単な実装だけどいい思いつきだったなと。

フッター・スクロールまわりの整理

フッターを hjkl:Nav のような key:action 形式に統一した。それに伴い、ノーマルモードのフッターからPreview操作系のキー(Ctrl+u/Ctrl+d など)をスクロールモードに移動してフッターを短くした。ノーマルモードのフッターにあまり詰め込みすぎても見づらいので。

あとスクロール時のtmux履歴取得を preview_height * 3 からtmuxのhistory-limit依存のスクロールバック履歴に変更した。遡りたいときに途中で切れるのがストレスだったので。

format_elapsed の固定幅化

サイドバーの経過時間表示(9s10s など)で桁数が変わるとカラム幅がガタつく問題を修正。固定3文字幅にした。

0.17.0 での変更(2026/03/25)

ワークツリー対応の改善

Claude Codeがgit worktreeに移動する際(Claude Codeがworktreeで作業するとき)に、cwd、worktree_name、git_branchが正しく同期されない問題を修正した。

あわせてブランチ表示を name/branch 形式に簡潔化し、ワークツリーセッションはCyan色で視覚的に区別できるようにした。git worktreeを使わない人には関係ない変更だけど、Claude Codeはworktreeを使うことがあるので、そのときにcrmux側でちゃんと追従できるようにした。

0.18.0 での追加機能(2026/04/04)

crmux focus サブコマンド

crmux focus を実行すると、crmuxが起動しているtmuxペインにフォーカスが戻る。

crmux focus

crmuxのTUIから s キーでtmuxセッションを切り替えたあと、元のcrmuxに戻りたいときに使う。内部的にはRPCでcrmuxのペインIDを取得して tmux switch-client しているだけ。複数セッションでclaude code開いててcrmuxからsでとんだときなど迷子になってもすぐ戻れるようにしたかった。通常はtmuxの last-windowでいいんだけども、とんだ先でも色々操作してると戻れなくなるので。focusって命名がいまいちな気はしてるが...。

0.19.0 での追加機能(2026/04/05)

crmux claude サブコマンド

新しいtmuxウィンドウでClaude Codeを起動するコマンド。

# 基本(デフォルト幅100で起動)
crmux claude

# 幅を指定
crmux claude -x 80

# stdinからプロンプトを渡す
echo "このコードをレビューして" | crmux claude
cat issue.md | crmux claude

# 引数でプロンプトを渡す
crmux claude "テストを書いて"

claude自体のオプションはそのままわたるようにしている。独自オプションは今のところ-xのみ。デフォルトは100。普段新しくclaude session立てるときに以下の課題があったのを解消したかった。

  • どこにclaude sessionを立てるのか
  • 横幅をどうするのか(横幅が大きすぎるとcrmuxはtmux-captureしてるだけなのでプレビュー幅を超えていると見切れてしまう。個人的にはMainVのレイアウトを使ってるので、メインプレビューエリアでは見きれないような幅にしておきたい)

で、これまでは

  • 適切なtmuxペインを用意
  • プロジェクトのディレクトリに移動
  • branchなりworktreeなど切り替え
  • claude起動

とかやってて面倒だった。最近はgit-wtを使い始めた(claude本体の-wオプションはいまいち)ので、

  • 適当なtmuxペインで対象プロジェクトのディレクトリへ移動(ghq + peco使ってるので簡単に移動出来る)
  • git wt issue-12345とかやってworkingtree作る
  • crmux claude

でだいぶ楽になった。もうちょっと工夫したら1コマンドで済むかもしれない。自作のtorudoの0.8.0でtorudo currentとかするとjsonで選択中todoのtitleや詳細mdの内容取れるようにしたので、

  • torudo current | jq .md | crmux claude

とするとtorudoで管理されてる内容をそのまま投げることも出来るようになった。詳細に設計されてればそのまま実装を依頼出来るし、まだふわっとしてればプランモードで設計させるのがだいぶやりやすいし、例によってツール同士が粗結合なので色々組み合わせやすい。

今後について

前回の記事でタスクスケジューラー的な仕組みが欲しいと書いたが、自分のワークフローでは別になくても困らない感じになってきた。引き続き検討はしているけど、優先度は下がった。今のワークフローの改善点や不満が出来たらまた考えるかも。

Discussion