Mori:214⭐のmacOSネイティブターミナルワークスペース、tmuxとGhosttyを基盤としたProject-centric設計
Mori:214⭐のmacOSネイティブターミナルワークスペース
ターミナルツールは数多く存在するが、macOSのネイティブ体験に特化したものは少ない。Moriはわずか214 starsの新進プロジェクトで、独自のアプローチを選択している:ProjectsとGit Worktreesを中心にターミナルセッションを構成し、tmuxとGhosttyのlibghosttyを基盤に、Swiftで書かれたネイティブmacOSアプリケーションだ。
プロジェクト概要
| 属性 | 内容 |
|---|---|
| GitHub | vaayne/mori |
| Stars | 214 |
| 言語 | Swift |
| 特徴 | Project-centric、Worktree-native、ネイティブmacOS体験 |
| 最終更新 | 1日前 |
解決する問題
現代の開発者は通常、複数のプロジェクト間を同時に行き来する:
- メインプロジェクトとside projectが同じターミナル内に混在する
- Git worktreeの管理が混乱し、現在どのブランチのworktreeにいるか忘れがち
- tmuxの設定が複雑で、session管理は記憶に依存する
- 汎用ターミナルツール(iTerm2、Alacrittyなど)はプロジェクト認識が弱い
Moriの核心コンセプトはプロジェクト中心——各Projectが独立したターミナル環境を持ち、自動的にそのプロジェクトのすべてのworktreeと関連付けられ、セッション状態は永続化され、起動後にワンクリックで作業現場全体を復元できる。
核心機能
Project-centricな構成
従来のターミナルのsessionやwindowによる構成とは異なり、MoriはまずProjectを定義する。各Projectはローカルディレクトリにバインドされ、Moriは自動的に:
- そのディレクトリ配下のGit worktreeを検出
- 各worktreeに独立したターミナルタブを作成
- 各worktreeの環境変数と現在のパスを記憶
この設計は特にGit worktreeワークフローを使用する開発者に適している——featureブランチ、hotfixブランチ、mainブランチのworktreeを同時に開くことができ、Mori内ではそれらが同じProjectの下で明確に整理される。
ネイティブGhostty統合
MoriはGhosttyのlibghosttyを基盤にターミナルレンダリングエンジンを構築。これにより:
- Ghosttyのパフォーマンス優位性を獲得(GPUアクセラレーション、低レイテンシ入力)
- Ghosttyのグラフィックプロトコルをサポート(画像やアイコンをターミナル内に直接表示)
- クロスプラットフォーム抽象化層ではなく、ネイティブmacOSのMetalレンダリング
内蔵tmux管理
Moriはtmuxを使用してセッションを管理するが、すべての複雑さを隠蔽する:
- 手動でのsession作成/attachは不要
- tmuxショートカットを覚える必要はない(もちろん使うことも可能)
- Projectとworktreeの対応関係は自動的にtmux sessionに同期される
tmuxのヘビーユーザーにとって、Moriは十分な柔軟性を保持——いつでもdetachしてネイティブtmuxで操作し、Moriにattachし直すことができる。
クイックスタート
# Homebrew経由でインストール(今後提供予定)
brew install --cask mori
# またはreleaseを直接ダウンロード
https://github.com/vaayne/mori/releases
初回起動時、Moriは最初のProject作成をガイドする。ローカルの任意のディレクトリを選択すると、Moriは自動的にその中のGit worktreeをスキャンする。
比較:Moriと他のターミナルツール
| ツール | Stars | ポジショニング | 核心の差異 |
|---|---|---|---|
| iTerm2 | 15k+ | macOSターミナルの標準 | 機能は充実しているが設定が複雑、Project概念なし |
| Ghostty | 20k+ | 高性能クロスプラットフォームターミナル | 純粋なターミナルエミュレーターでプロジェクト組織化はなし |
| Windsurf | 5k+ | AI駆動型エディター | ターミナルを含むが主役はAIコーディング支援 |
| Mori | 214 | Project-centricターミナル | ネイティブworktree管理 + Ghosttyパフォーマンス |
Moriのユニークな点は”プロジェクト認識”にある。機能が最も多いターミナルでもなく、最速でもないが、“マルチプロジェクト開発”というシナリオを十分に深く掘り下げている——複数のGit worktree間を頻繁に切り替える必要がある場合、Moriの構成方法は大量のナビゲーション時間を節約できる。
適用シナリオ
- マルチプロジェクト並行開発:複数のrepoを同時にメンテナンスし、素早く切り替える必要がある
- Git worktreeユーザー:worktreeを使用してブランチを分離する開発者
- macOSネイティブ派:Swiftネイティブ体験を求め、Electronラッパーでは満足できない
- Ghostty移行者:Ghosttyのパフォーマンスが気に入っているが、より多くのプロジェクト管理機能を求める
現在の制限
- macOS only:Swift + AppKit実装で、クロスプラットフォーム化の予定はなし
- 初期段階:214 starsは機能が急速にイテレーション中であることを示し、APIは変更される可能性がある
- ドキュメント未整備:READMEは簡潔で、一部の機能は探索が必要
まとめ
Moriは主張の明確なニッチツールである。すべての人のターミナルになろうとするのではなく、“マルチプロジェクト + Git worktree”シナリオにおける組織化問題の解決に特化している。214 starsはまだ初期段階であることを示すが、技術選定(Swiftネイティブ + libghostty + tmux)と設計理念(Project-centric)は十分に対象を絞っている。
macOSで複数のプロジェクトを同時に処理している、またはより良いworktree管理ソリューションを探しているなら、Moriは試す価値がある。結局のところ、コンテキストスイッチングコストを最小限に抑えること自体が生産性の向上になる。
| 属性 | 内容 |
|---|---|
| リポジトリ | https://github.com/vaayne/mori |
| ライセンス | MIT |
| 言語 | Swift |
| メンテナー | @vaayne |