mcpField
N
ntm

ntm

github.com/dicklesworthstoneエージェントワークフロー7359 回インストール8 週間前に更新
リポジトリ

ntm について

ntm は、永続的な tmux セッションで複数のコーディングエージェントを管理・調整する Go 製コマンドラインツールです。プロンプト配信、状態の可視化、出力の取得、コンテキストのローテーションを備えています。

主な機能

  1. 01tmux セッションで複数エージェントを管理
  2. 02指定または全エージェントへのプロンプト送信
  3. 03ダッシュボードで状態とコンテキスト使用量を表示
  4. 04ペイン出力の取得、検索、比較
  5. 05活動の監視とコンテキストの自動ローテーション

活用シーン

  1. 01Claude Code、Codex、Gemini の並行実行
  2. 02実装、テスト、レビュー作業の割り当て
  3. 03SSH 切断後の永続セッションの再開
  4. 04エージェント出力の確認とコードブロックの保存

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dicklesworthstone/agent_flywheel_clawdbot_skills_and_integrations --skill ntm

インストール後、Claude Code で/ntmを入力して読み込まれたか確認します。

詳細

NTM — Named Tmux Manager

tmux をマルチエージェントのコマンドセンターに変える Go 製 CLI です。Claude Code、Codex、Gemini のエージェントを並列でオーケストレーションできます。見事な TUI、自動コンテキストローテーション、Agent Flywheel エコシステムとの深い統合を備えたタイル状のペインで、AI エージェントを起動、管理、調整できます。

開発の背景

複数の AI コーディングエージェントの管理には、さまざまな問題があります。

  • ウィンドウが煩雑:エージェントごとに専用のターミナルが必要です
  • コンテキストの切り替え:ウィンドウ間の移動で作業の流れが途切れます
  • オーケストレーションがない:複数のエージェントに同じプロンプトを送るには、手動でコピーして貼り付ける必要があります
  • セッションが不安定:SSH 接続が切れると、すべてのエージェントセッションが失われます
  • 状況を把握できない:エージェントの状態をひと目で確認するのが困難です

NTM を使えば、多数のエージェントを含む 1 つのセッションでこれらすべてを解決でき、SSH 接続が切れてもセッションが維持されます。

クイックスタート

# Install
curl -fsSL https://raw.githubusercontent.com/Dicklesworthstone/ntm/main/install.sh | bash

# Add shell integration
echo 'eval "$(ntm init zsh)"' >> ~/.zshrc && source ~/.zshrc

# Interactive tutorial
ntm tutorial

# Check dependencies
ntm deps -v

# Create multi-agent session (agy = Antigravity CLI, NTM-pinned to "Gemini 3.1 Pro (High)")
ntm spawn myproject --cc=2 --cod=1 --agy=1

# Send prompt to all Claude agents
ntm send myproject --cc "Explore this codebase and summarize its architecture."

# Open command palette (or press F6 after `ntm bind`)
ntm palette myproject

セッションの作成

エージェントの起動
ntm spawn myproject --cc=3 --cod=2 --agy=1   # 3 Claude + 2 Codex + 1 Gemini (via agy)
ntm quick myproject --template=go             # Full project scaffold + agents
ntm create myproject --panes=10               # Empty panes only
ntm spawn myproject --profiles=architect,implementer,tester
エージェントのフラグ
フラグエージェントCLI コマンド
--cc=NClaude Codeclaude
--cod=NCodex CLIcodex
--agy=NAntigravity CLI(「Gemini 3.1 Pro (High)」に固定)agy
--gmi=NGemini CLI(旧版、廃止予定 — --agy=N を推奨)gemini
エージェントの追加
ntm add myproject --cc=2              # Add 2 more Claude agents
ntm add myproject --cod=1 --agy=1     # Add mixed agents

プロンプトの送信

ntm send myproject --cc "Implement user auth"     # To all Claude
ntm send myproject --cod "Write unit tests"       # To all Codex
ntm send myproject --agy "Review and document"    # To all Antigravity (Gemini 3.1 Pro)
ntm send myproject --all "Review current state"   # To ALL agents
ntm interrupt myproject                           # Ctrl+C to all

セッションの操作

コマンドエイリアス説明
ntm listlntすべての tmux セッションを一覧表示します
ntm attachrntセッションに接続します
ntm statussntエージェント数を含むペインの詳細を表示します
ntm viewvntズームを解除し、タイル状に配置して接続します
ntm zoomznt指定したペインにズームします
ntm dashboarddash, d対話型のビジュアルダッシュボードを表示します
ntm killkntセッションを終了します(強制終了するには -f を指定)

コマンドパレット

事前設定されたプロンプトをファジー検索できる TUI です。

ntm palette myproject    # Open palette
ntm bind                 # Set up F6 keybinding
ntm bind --key=F5        # Use different key
パレットの機能
  • Catppuccin テーマを使ったアニメーション付きグラデーションバナー
  • 入力に応じたリアルタイム絞り込みが可能なファジー検索
  • コマンドをピン留め/お気に入りに登録(Ctrl+P / Ctrl+F)
  • メタデータ付きのライブプレビュー欄
  • 数字 1〜9 でクイック選択
  • ビジュアルターゲットセレクター(All/Claude/Codex/Gemini)
パレットの操作
キーアクション
↑/↓ または j/k移動
1-9クイック選択
Enterコマンドを選択
Esc戻る/終了
?ヘルプを表示
Ctrl+Pピン留め/解除
Ctrl+Fお気に入りに登録

対話型ダッシュボード

ntm dashboard myproject   # Or: ntm dash myproject
ダッシュボードの機能
  • エージェントカードを色分けして表示するビジュアルペイングリッド
  • エージェント数をリアルタイム表示(Claude/Codex/Gemini/User)
  • トークン速度バッジ(1 分あたりのトークン数)
  • コンテキスト使用量インジケーター(緑/黄/オレンジ/赤)
  • r キーでリアルタイム更新
ダッシュボードの操作
キーアクション
↑/↓ または j/kペインを移動
1-9クイック選択
z または Enterペインにズーム
r更新
cコンテキストを表示
mAgent Mail を開く
q終了

出力の取得

ntm copy myproject:1              # Copy specific pane
ntm copy myproject --all          # Copy all panes
ntm copy myproject --cc           # Copy Claude panes only
ntm copy myproject --pattern 'ERROR'  # Filter by regex
ntm copy myproject --code         # Extract code blocks only
ntm copy myproject --output out.txt   # Save to file
ntm save myproject -o ~/logs      # Save all outputs

監視と分析

ntm activity myproject --watch    # Real-time activity
ntm health myproject              # Health status
ntm watch myproject --cc          # Stream output
ntm extract myproject --lang=go   # Extract code blocks
ntm diff myproject cc_1 cod_1     # Compare panes
ntm grep 'error' myproject -C 3   # Search with context
ntm analytics --days 7            # Session statistics
ntm locks myproject --all-agents  # File reservations
アクティビティの状態
状態アイコン説明
WAITING●アイドル状態で、作業を開始できます
GENERATING▶出力を生成中です
THINKING◐処理中です(まだ出力はありません)
ERROR✗エラーが発生しました
STALLED◯予期せず停止しました

チェックポイント

ntm checkpoint save myproject -m "Before refactor"
ntm checkpoint list myproject
ntm checkpoint show myproject 20251210-143052
ntm checkpoint delete myproject 20251210-143052 -f

コンテキストウィンドウのローテーション

NTM はコンテキストの使用量を監視し、使い切る前にエージェントを自動でローテーションします。

仕組み
  1. 監視:エージェントごとのトークン使用量を推定します
  2. 警告:使用量が 80% に達すると警告します
  3. 圧縮:まず /compact または要約を試します
  4. ローテーション:必要に応じて、引き継ぎ用の要約を添えて新しいエージェントを起動します
コンテキストインジケーター
色使用量状態
緑< 40%十分な余裕があります
黄40-60%余裕があります
オレンジ60-80%しきい値に近づいています
赤> 80%対応が必要です
自動圧縮からの復旧

コンテキストが圧縮されると、NTM は復旧用プロンプトを送信します。

[context_rotation.recovery]
enabled = true
prompt = "Reread AGENTS.md so it's still fresh in your mind. Use ultrathink."
include_bead_context = true   # Include project state from bv

ロボットモード(AI 自動化)

AI エージェントや自動化で利用できる、機械可読な JSON 出力です。

状態の確認
ntm --robot-status              # Sessions, panes, agent states
ntm --robot-context=SESSION     # Context window usage
ntm --robot-snapshot            # Unified state: sessions + beads + mail
ntm --robot-tail=SESSION        # Recent pane output
ntm --robot-inspect-pane=SESS   # Detailed pane inspection
ntm --robot-files=SESSION       # File changes with attribution
ntm --robot-metrics=SESSION     # Session metrics
ntm --robot-plan                # bv execution plan
ntm --robot-dashboard           # Dashboard summary
ntm --robot-health              # Project health
エージェント制御
ntm --robot-send=SESSION --msg="Fix auth" --type=claude
ntm --robot-spawn=SESSION --spawn-cc=2 --spawn-wait
ntm --robot-interrupt=SESSION
ntm --robot-assign=SESSION --assign-beads=br-1,br-2
ntm --robot-replay=SESSION --replay-id=ID
Bead 管理
ntm --robot-bead-claim=BEAD_ID --bead-assignee=agent
ntm --robot-bead-create --bead-title="Fix bug" --bead-type=bug
ntm --robot-bead-show=BEAD_ID
ntm --robot-bead-close=BEAD_ID --bead-close-reason="Fixed"
CASS との統合
ntm --robot-cass-search="auth error" --cass-since=7d
ntm --robot-cass-context="how to implement auth"
ntm --robot-cass-status
終了コード
コード意味
0成功
1エラー
2利用不可/未実装

作業の分配

インテリジェントな作業割り当てを実現するための BV との統合:

ntm work triage               # Full triage with recommendations
ntm work triage --by-label    # Group by domain
ntm work triage --quick       # Quick wins only
ntm work alerts               # Stale issues, priority drift, cycles
ntm work search "JWT auth"    # Semantic search
ntm work impact src/api/*.go  # Impact analysis
ntm work next                 # Single best next action
インテリジェントな割り当て
ntm --robot-assign=myproject --assign-strategy=balanced  # Default
ntm --robot-assign=myproject --assign-strategy=speed     # Maximize throughput
ntm --robot-assign=myproject --assign-strategy=quality   # Best agent-task match
ntm --robot-assign=myproject --assign-strategy=dependency # Unblock downstream
エージェントの能力マトリックス
エージェント得意分野
Claude分析、リファクタリング、ドキュメント作成、アーキテクチャ
Codex機能の実装、バグ修正、簡単なタスク
Geminiドキュメント作成、分析、機能

プロファイルとペルソナ

ntm profiles list                    # List profiles
ntm profiles show architect          # Show details
ntm spawn myproject --profiles=architect,implementer,tester
ntm spawn myproject --profile-set=backend-team
組み込みプロファイル

architect、implementer、reviewer、tester、documenter

Agent Mail との統合

ntm mail send myproject --to GreenCastle "Review API changes"
ntm mail send myproject --all "Checkpoint: sync status"
ntm mail inbox myproject
ntm mail read myproject --agent BlueLake
ntm mail ack myproject 42
コミット前のガード
ntm hooks guard install    # Prevent conflicting commits
ntm hooks guard uninstall

通知

イベントに応じたマルチチャネル通知:

[notifications]
enabled = true
events = ["agent.error", "agent.crashed", "agent.rate_limit"]

[notifications.desktop]
enabled = true

[notifications.webhook]
enabled = true
url = "https://hooks.slack.com/..."
イベントタイプ

agent.error、agent.crashed、agent.rate_limit、rotation.needed、session.created、session.killed、health.degraded

アラートシステム

アラートタイプ
タイプ重大度説明
unhealthy高エージェントが異常な状態になる
degraded中エージェントのパフォーマンスが低下する
rate_limited中API のレート制限を検出
restart_failed高再起動に失敗
max_restarts重大再起動の上限を超過
ntm --robot-alerts
ntm --robot-dismiss-alert=ALERT_ID

コマンドフック

# ~/.config/ntm/hooks.toml

[[command_hooks]]
event = "post-spawn"
command = "notify-send 'NTM' 'Agents spawned'"

[[command_hooks]]
event = "pre-send"
command = "echo \"$(date): $NTM_MESSAGE\" >> ~/.ntm-send.log"
利用可能なイベント

pre-spawn、post-spawn、pre-send、post-send、pre-add、post-add、pre-shutdown、post-shutdown

安全システム

AI エージェントによる危険なコマンドをブロックします:

ntm safety status              # Protection status
ntm safety check "git reset --hard"
ntm safety install             # Install git wrapper + Claude hook
ntm safety uninstall
保護対象のコマンド
パターンリスクアクション
git reset --hard未コミットの変更が失われるブロック
git push --forceリモートの履歴を上書きするブロック
rm -rf /取り返しのつかない削除ブロック
DROP TABLEデータベースを破壊するブロック

マルチエージェント戦略

分割統治
ntm send myproject --cc "design the database schema"
ntm send myproject --cod "implement the models"
ntm send myproject --agy "write tests"
競合比較
ntm send myproject --all "implement a rate limiter"
ntm view myproject  # Compare side-by-side
レビューパイプライン
ntm send myproject --cc "implement feature X"
ntm send myproject --cod "review Claude's code"
ntm send myproject --agy "write tests for edge cases"

設定

ntm config init          # Create ~/.config/ntm/config.toml
ntm config show          # Show current config
ntm config project init  # Create .ntm/config.toml in project
設定例
projects_base = "~/Developer"

[agents]
claude = 'claude --dangerously-skip-permissions'
codex = "codex --dangerously-bypass-approvals-and-sandbox"
gemini = "gemini --yolo"

[tmux]
default_panes = 10
palette_key = "F6"

[context_rotation]
enabled = true
warning_threshold = 0.80
rotate_threshold = 0.95

環境変数

変数説明
NTM_PROJECTS_BASEプロジェクトのベースディレクトリ
NTM_THEMEカラーテーマ:auto、mocha、latte、nord、plain
NTM_ICONSアイコンセット:nerd、unicode、ascii
NTM_REDUCE_MOTIONアニメーションを無効化
NTM_PROFILEパフォーマンスプロファイリングを有効化

テーマと表示

カラーテーマ
テーマ説明
autoライト/ダークを検出
mochaデフォルトのダークテーマ。暖色系
latteライト版
nord北極をイメージしたテーマ
plain色なし
エージェントの色
エージェント色
Claudeモーブ(紫)
Codex青
Gemini黄
ユーザー緑
表示幅の段階
幅動作
<120 cols縦積みレイアウト
120-199 colsリスト/詳細の分割表示
200-239 colsガターを広げる
240+ cols詳細をすべて表示

ペインの命名規則

パターン:<project>__<agent>_<number>

  • myproject__cc_1 - 1番目の Claude
  • myproject__cod_2 - 2番目の Codex
  • myproject__gmi_1 - 1番目の Gemini

ステータスインジケーター:C = Claude、X = Codex、G = Gemini、U = User

シェルエイリアス

eval "$(ntm init zsh)" の実行後:

カテゴリエイリアス
エージェントの起動cc、cod、agy(旧名:gmi)
セッションcnt、sat、qps
エージェント管理ant、bp、int
ナビゲーションrnt、lnt、snt、vnt、znt
ダッシュボードdash、d
出力cpnt、svnt
ユーティリティncp、knt、cad

インストール

# One-liner (recommended)
curl -fsSL https://raw.githubusercontent.com/Dicklesworthstone/ntm/main/install.sh | bash

# Homebrew
brew install dicklesworthstone/tap/ntm

# Go install
go install github.com/Dicklesworthstone/ntm/cmd/ntm@latest

# Docker
docker pull ghcr.io/dicklesworthstone/ntm:latest

アップグレード

ntm upgrade              # Check and install updates
ntm upgrade --check      # Check only
ntm upgrade --yes        # Auto-confirm

Tmux の基本

キー操作
Ctrl+B, Dデタッチ
Ctrl+B, [スクロール/コピーモード
Ctrl+B, zズームの切り替え
Ctrl+B, Arrowペイン間を移動
F6NTM パレットを開く(ntm bind の実行後)

Flywheel との統合

ツール統合
Agent Mailメッセージのルーティング、ファイルの予約、コミット前のガード
BV作業の分配、トリアージ、割り当て戦略
CASSロボットモードを使った過去のセッションの検索
CMエージェントの引き継ぎにおける手続き的メモリ
DCG安全システムとの統合
UBSファイル変更時の自動スキャン

コメント