
「ちょっと試したいことがあるから、新しいディレクトリ作って、tmux起動して…」という作業を毎回やっていませんか?
以前紹介したtry (詳細は「try: 深夜2時のひらめきを翌朝見つけられるか? 」参照)は実験用ディレクトリを日付プレフィックス付きで管理してくれる便利なツールですが、そこからtmux セッションを起動するのは別作業でした。この2つを繋ぐためにtmux-try を作りました。
tmux-tryが解決する問題
tryで実験ディレクトリを作った後、毎回以下の手順を踏んでいました。
| |
セッションがあるかないかで打つコマンドが変わるのが地味に面倒です。これを1コマンドにまとめたのがtmux-tryです。
| |
主な機能
1. パスベースセッション
明示的なパス(./, ~/, /で始まる)を指定すると、そのディレクトリでセッションを開始します。
| |
ディレクトリが存在しない場合は自動的に作成されます。
2. 名前ベースセッション(try連携)
パスプレフィックスがない場合、tryのfuzzy finderが起動します。
| |
tryがインストールされていない場合は、カレントディレクトリでセッションを開始します。
3. GitHubリポジトリのクローン&セッション化
Git URLを渡すと、tryを使ってクローンし、即座にセッションを開始します。
| |
クローン先は~/src/tries/2026-01-31-tobi-try/のように日付プレフィックス付きで作成されます。
4. tmuxinator自動検出
tmuxinator
がインストールされている場合、自動的に.tmuxinator.ymlを作成・使用します。
| |
tmuxinatorがない環境では、素のtmuxコマンドにフォールバックします。
引数の解決ルール
tmux-tryは引数の形式から、どの動作をすべきか自動判定します。
| 引数 | 判定 | 動作 |
|---|---|---|
./foo, ~/foo, /foo | パスプレフィックス | ディレクトリとして使用 |
https://..., git@... | Git URL | tryでクローン |
foo | 名前のみ | tmuxinatorプロジェクト → try実験 |
| (なし) | 空 | tryセレクタ → カレントディレクトリ |
インストール
必須要件
- tmux: ターミナルマルチプレクサ(必須)
- try: 実験ディレクトリマネージャ(名前ベースセッションに必要)
- bash: シェル(バージョン4.0以降)
オプション
- tmuxinator: tmuxセッションマネージャ(あれば自動的に使用)
手順
- スクリプトをダウンロード
| |
- 実行権限を付与
| |
- tryをインストール(推奨)
| |
- エイリアスを設定(おすすめ)
| |
t redisだけで実験環境が立ち上がります。1文字なので、思いついた瞬間に実行できます。
設計判断
なぜtmuxinatorを必須にしなかったのか
tmuxinatorは便利ですが、以下の理由でオプション扱いにしました。
- 環境依存を減らす: tmuxだけあれば動く
- 軽量さ: Rubyのインストールが不要な環境でも使える
- 柔軟性: tmuxinatorの設定を使いたい人だけ使える
実装では、tmuxinatorの有無をcommand -v tmuxinatorで検出し、自動的にフォールバックします。
| |
tryとの統合
tryは「実験ディレクトリ管理」に特化したツールです(詳細は「try: 深夜2時のひらめきを翌朝見つけられるか? 」参照)。日付プレフィックス付きの自動命名、fuzzy検索、時間認識ソートなど、実験のライフサイクル全体を管理する機能を持っています。
tmux-tryはこの思想を尊重し、tryの機能をそのまま活用する設計にしました。独自のディレクトリ管理は実装せず、tryに委譲しています。
使用例
ケース1: 新しい実験を始める
| |
ケース2: GitHubリポジトリを試す
| |
ケース3: 既存プロジェクトで作業
| |
まとめ
tmux-tryは、tryとtmuxを繋ぐシンプルなラッパーです。
主な利点:
- 1コマンドで完結: ディレクトリ作成 → 移動 → セッション起動を自動化
- 柔軟な引数解決: パス、名前、Git URLを自動判定
- 環境適応: tmuxinatorの有無を自動検出してフォールバック
「ちょっと試したい」という思いつきを、すぐに実行環境に変換できるツールです。興味のある方はぜひ試してみてください。