Unterm

Unterm のすべての機能

完全な一覧:すべての操作面、すべての機能、そしてなぜこう作られているか。

上級者ガイドを読む →

60 秒でわかる Unterm

ソースで検証できる仕様 · リリースごとに更新
最新バージョン
v0.71.18 · 2026-10-04 · MIT
同梱の AI エージェント
7 つの署名付きマニフェスト——Claude Code · Codex CLI · Gemini CLI · OpenCode · Aider · Kimi Code CLI · Trae Agent。unterm.app/api/agents/manifests から取得する Ed25519 検証済みのエンベロープ。エージェントごとに認証モードを選択可能。
価格
$0 永久 · 有料プランなし · サブスクリプションなし · アプリ内課金なし
プラットフォーム
macOS(ユニバーサル)· Linux x86_64 + arm64(.deb + AppImage)· Windows 10/11 x64 + arm64(.msi + ポータブル .zip)——リリースごとに 9 パッケージ
インストーラーのサイズ
DMG 50 MB · .deb 27 MB · AppImage 43 MB · MSI 43 MB(x86_64 / x64)
アイドル時のメモリ
常駐 約 110 MB · 開いているペイン数に比例して増加
UI 言語
9 — en · 简体 · 繁體 · 日本語 · 한국어 · Deutsch · Français · Italiano · हिन्दी
コントロールサーフェス
MCP(TCP 上の JSON-RPC)· HTTP Web 設定 · unterm-cli · GUI——4 つとも同じ JSON 状態
検証済みのエージェント連携
Claude Code · Cursor · Codex CLI · 独自の Python / Node MCP クライアント——すべて 1 つのソケット、約 30 行のコードで
データ収集
テレメトリゼロ · アカウントなし · アナリティクスなし · すべてのサーバーは 127.0.0.1 にバインド
技術スタック
Rust · ネイティブ next-core エンジン · wgpu · MCP(行区切り JSON-RPC)· Web 設定は Tailwind + Alpine
v0.18 · AI エージェントランチャー

あらゆるコーディングエージェントを、それぞれワンクリックで。セットアップの手間なし。

複数の AI コーディング CLI を並べて動かそうとしたことがあれば、その手間はご存じでしょう:npm install、OAuth フロー、API キー、~/.config/<vendor>/<different format each>、環境変数、プロファイルの分離。Unterm v0.18 はそれを 1 つの設定タブと CLI にまとめます。これができるターミナルは他にありません。

Claude Code
Anthropic
OAuth · BYO key · gateway
Codex CLI
OpenAI
ChatGPT OAuth · BYO key · gateway
Gemini CLI
Google
Google OAuth · BYO key · Vertex
OpenCode
SST
BYO key · local
Aider
Open-source
BYO key · local
01 · one click

GUI でも CLI でもインストール

エージェントカードの Install をクリックするか、unterm-cli agent install <id> を実行。Unterm がプラットフォームに合ったコマンド(npm/pipx など)を実行し、バイナリが PATH に置かれたことを確認して、自動で再検出します。

02 · subscription-safe

公式サブスクリプション優先。自前のキーはオプトイン。

多くのエージェントには公式アカウントやサブスクリプションでのログイン手段があります(Claude Pro、ChatGPT Plus、Google AI Pro)。Unterm はそのモードを既定とし、API キーを黙って注入することはありません。トークン単位の課金や社内ゲートウェイを本当に使いたいときだけ、設定フォームで明示的に 自前のキー または カスタムエンドポイント に切り替えてください。

03 · signed catalog

Ed25519 署名付きマニフェストカタログ

エージェントの一覧とインストールコマンドは Unterm にハードコードされていません——unterm.app/api/agents/manifests から配信される署名付きエンベロープです。CDN が侵害されても、あなたのマシンに curl | sh を送り込むことはできません。公開鍵はすべての Unterm バイナリに組み込まれています。

AI がターミナルを操作する。MCP がそれを実現する。

多くのターミナルは AI をバイナリの内側に組み込みます。Unterm は逆です。AI は外に置き、ターミナルを、外部のどんなエージェントでも MCP でつかめる面として公開します。ターミナルは操作される側、エージェントは作業する側です。

典型的なケース

ある AI が、ターミナルを通じて別の AI を操作する。

外側のエージェントがターミナルセッションを持ちます。cwd を切り替え、ペインで内側のコーディングエージェントを起動し、ログを読み、リポジトリがグリーンになるまで反復を続けます。

01
リポジトリを開く

外側のエージェントがアクティブなペインをプロジェクトのルートに向けるので、すべてのコマンド、ログ、スクリーンショットが同じ作業ディレクトリに固定されます。

02
内側のエージェントを起動

分割したペインでコーディングエージェントを起動してタスクを渡し、そのエージェントにターミナル内で編集ループを回させます。

03
読む、やり直す、リリースする

外側のエージェントはテスト出力とペインの状態を読み、必要ならやり直し、ターミナルが作業完了を示したときだけコミットやリリースに進みます。

outer agent → inner agent
demo
→ open /work/auth-service in a new tab and start a coding agent
unterm session.create { cwd: "/work/auth-service" }
→ { session_id: "7", pid: 41208 }
unterm exec.run { id: "7", command: "claude" }
→ inner agent ready
unterm exec.run { id: "7", command: "cargo test" }
running 142 tests
test result: ok. 142 passed; 0 failed
unterm screen.scrollback_text { id: "7" }
→ { text: "…build is green, commit the fix", row_count: 142 }
$
zsh · ~/work/auth-service · 80×24 · mcp:4

Unterm の 3 つの使い方

ひとつのワークフローのためだけに作ったわけではありません。MCP の面があるので、どの立場の人も入口は違っても同じコントロールプレーンを使えます。

🤖
AI エンジニア

Claude Code、Cursor、または自作のエージェントから複数のターミナルペインを操作できます。1 ペインに 1 タスク。どこに入力するかはエージェントが決めます。マルチインスタンスの NATO 名(alpha、bravo、charlie…)で、ウィンドウをまたいだルーティングも簡単です。

  • ディレクター/ワーカー型:外側のエージェントがペイン内のエージェントを監督
  • 長時間の監視:ビルドを開始し、アイドルになるまでポーリングして次の手を決める
  • マルチペインのオーケストレーション:複数プロジェクトに作業を振り分け、結果を集約
  • レビューやファインチューニング用に、トークンをマスクして録画
⚙️
DevOps と SRE

GUI でできることはすべて cron から使える CLI でもできます。unterm-cli は毎リリースに同梱。生の JSON-RPC が欲しい下流には --json でそのまま渡せます。運用スクリプト、ダッシュボード、Runbook で同じ面を使えます。

  • プロキシ自動検出:macOS scutil/Windows レジストリ/GNOME gsettings
  • インシデント記録用のヘッドレススクリーンショットとペイン読み取り
  • 録画 → markdown で Runbook を生成、個人情報はデフォルトでマスク
  • テレメトリなし、ログインなし、すべてのサーバーは 127.0.0.1 にバインド
🔧
パワーユーザーと OSS ハッカー

MIT ライセンス。v0.61 から自社製の next-core カーネル(約 1.2 万行、直接依存は 10 個)で動き、エージェント連携を標準で備えています。GitHub でパッチを受け付けています。自分でビルドもでき、CLI バイナリは毎リリースに同梱。Web 設定 UI は Tailwind + Alpine の SPA なので、ページを fork して色を変えられます。

  • macOS 向け arm64 + x86_64 ユニバーサルバイナリ、Developer ID で署名
  • Linux 向け .deb(apt)と AppImage(どのディストリでも)
  • Windows 向け WiX 6 製 MSI + ポータブル .zip
  • 9 言語を標準搭載、システムのロケールを自動検出

4 つのコントロールサーフェス、1 つのエンジン

Unterm の各ウィンドウはローカルの MCP サーバーと HTTP 設定サーバーを起動します。どこからでも同じ JSON の状態を読み書きできます。

🔌
MCP サーバー

127.0.0.1:19876 で行区切りの JSON-RPC、認証トークン必須。シェルの起動、ペイン状態の読み取り、スクリーンショット、セッション操作。

⚡
unterm-cli

どのシェル、cron ジョブ、スクリプトからでも同じ面を使えます。ローカル MCP の上に載った薄い JSON-RPC クライアントで、ビジネスロジックの重複はありません。

🖥️
Web 設定

セルのグリッドではなく、ブラウザで使うモダンな設定 UI。127.0.0.1:19877 の Tailwind + Alpine SPA。テーマ、プロキシ、録画、言語。

🌍
9 言語

en / 简体 / 繁體 / 日本語 / 한국어 / Deutsch / Français / Italiano / हिन्दी を標準搭載。システムのロケールを自動検出。

🎬
セッション録画

OSC 133 でブロック分割した markdown、マスク処理を内蔵。録画は <cwd>/.unterm/sessions/ に保存されます。

📸
範囲スクリーンショット

ステータスバーからワンクリックで範囲キャプチャ。PNG はディスクへ、画像はクリップボードへ、パスはテキストのクリップボードへ。

🌐
プロキシ自動検出

macOS/Windows/GNOME/環境変数の設定を自動検出。手動の HTTP/SOCKS 上書き、名前付きノード、ローテーション、Clash/mihomo コントローラーにも対応。

⚙️
GPU レンダリング

Unterm ネイティブの next-core ターミナルエンジン上に構築し、クロスプラットフォームの wgpu で描画します。

完全なコントロールサーフェス

スクリーンショットの紹介ではなく、すべてのエージェントとスクリプトが実際に呼び出せるサーフェスです。30 の名前空間にまたがる 152 の MCP メソッドと 34 の CLI コマンド。すべて同じ JSON を返します。

152
MCP メソッド
30
名前空間
34
CLI コマンド
4
コントロールサーフェス
22ms
起動→MCP 応答
~12k
カーネルのソース行数
🛩️ エージェントコックピット
cockpit · fleet.* · review.* · 11

すべての CLI エージェントのライブ状態(作業中 / 待機中 / アイドル)を一目で把握し、受信トレイからあなたを待つエージェントへ直行。隔離された git worktree で1つのタスクに N 個のエージェントのフリートを起動し、その成果を GUI・MCP・CLI のどこからでもレビュー、マージ、ロールバックできます。

agent.status · cockpit.inbox · fleet.launch · fleet.retry · review.verify · review.diff · review.merge · review.rollback
🪟 セッションとペイン
session.* · 27

ターミナルの外からペインを起動、分割、フォーカス、リサイズ、破棄。どのペインにも 1 文字ずつ入力し、cwd を読み取り、アイドルになるまでポーリング——キー入力のシミュレーションは不要です。

create · split · focus · resize · input · destroy · history · idle · cwd
👁️ 画面の読み取り
screen.* · 8

ビューポートのライブテキスト、1 つの文字列としてのスクロールバック全体、カーソル位置、正規表現検索を取得。detect_errors が失敗したコマンドにフラグを立て、エージェントが反応できます。

text · scrollback_text · search · cursor · detect_errors · scroll
▶️ コマンド実行
exec.* · 5

コマンドを実行して出力をストリーム、終了コードまで待つ実行、生バイトの送信、状態の照会、キャンセル、POSIX シグナルの送信——画面のスクレイピングではなく、構造化された結果で返します。

run · run_wait · send · status · cancel · signal.send
🤖 AI エージェントランチャー
agent · 7 CLIs

Claude Code/Codex/Gemini/OpenCode/Aider のインストール、認証、設定、起動。mcp-stdio ブリッジが各エージェントをこのターミナルの MCP サーバーへ自動で配線します。

install · auth · launch · config · mcp-stdio bridge
🪪 アイデンティティプロファイル
profile · 7 sniffers

ウィンドウを開発者アイデンティティに紐付け——GitHub PAT、AWS キー、npm トークン、SSH キー、git の author。認証情報は OS の保管庫に置かれ、7 つのスニファーが既存のものを読み取り専用で検出します。

list · current · create · switch · delete
🛰️ マルチインスタンス
instance.* · 8

各ウィンドウは NATO フォネティック名のインスタンス(alpha、bravo、charlie…)です。マシン上で動いているすべての Unterm を列挙し、1 つにフォーカスしたりタイトルを変えたり——エージェントは cwd やタイトルでウィンドウ間に作業を振り分けます。

list · info · focus · set_title
🎬 セッション録画
recording · markdown

任意のペインを OSC 133 のコマンドブロックに分割した Markdown として録画——各ブロックにはコマンド、出力、終了コード、所要時間が含まれ、トークンはマスクされます。録画の一覧、読み取り、エクスポートは MCP または CLI から。再生機能はありません:旧 asciicast の record/replay コマンドは削除されました。

recording_start · stop · status · list · read · export_markdown
📸 キャプチャとアップロード
capture.* · 6 + upload

画面全体、ウィンドウ、矩形範囲のスクリーンショット(macOS と Windows。Linux では今のところ「not implemented」を返します)。ペインのスクロールバック全体を縦長の PNG 1 枚に描画(全プラットフォーム)、macOS では他アプリのウィンドウのスクロールキャプチャ、クリップボードの読み取り、自分の Aliyun OSS/Tencent COS/Qiniu バケットへのファイルアップロードと公開 URL の取得——すべて MCP から。

screen · window · select · clipboard · scrollback · window_scroll · upload.file
🌐 プロキシ管理
proxy.* · 12

OS のプロキシ状態を読み取り、設定済みノードを切り替え、エンドポイントのレイテンシを測定し、システムプロキシの上書きを適用/解除(macOS scutil · Windows レジストリ · Linux env)——URL の貼り付けは一切不要です。

status · switch · nodes · speedtest · configure · disable · env
🛡️ ガバナンスと監査
governance · 9

エージェントによる書き込みはすべて ID とともに記録され、書き込み確認ポリシーが最初の接触をゲートします。ポリシー判定のテスト、内蔵セルフテストスイートの実行、liveness/readiness フラグの読み取りも可能です。

audit_log · policy.check/set · agent.identify · selftest.run · server.health
💾 ワークスペース
workspace.* · 3

現在のウィンドウのペイン/タブ配置をまるごと保存し、保存済みレイアウトを一覧して 1 つを復元——エージェントは作業セットをスナップショットして後で呼び戻せます。

save · restore · list
📖 自己記述するサーフェス
meta.surface

meta.surface は 1 回の呼び出しで、すべての MCP メソッド(パラメータスキーマ付き)、すべての CLI サブコマンド、すべてのライブキーバインドを返します——接続したばかりのエージェントも、ドキュメントなしで API 全体を把握できます。

reference · show-keys · settings · theme · lang

エージェントとスクリプトは MCP(TCP 上の JSON-RPC)と unterm-cli バイナリからこのサーフェスに届きます。人は GUI と Web 設定 ページを使い、その HTTP API はスクリプトからも呼べます。4 つは互いの鏡写しではなく重なり合う関係です——たとえばテーマ、言語、unterm.conf は MCP にはありません。meta.surface(または unterm-cli reference)を 1 回呼ぶだけで、すべての MCP メソッド、CLI コマンド、キーバインドがライブで返ってきます。

Unterm が際立つ点

grep、ビルド、実行で自分で確かめられる 3 つの主張。マーケティングの霧はなし。

🤖 v0.18
あらゆる AI コーディング CLI を起動するターミナル

v0.18 で Unterm は Claude Code、Codex CLI、Gemini CLI、OpenCode、Aider のワンクリックランチャーになりました。各エージェントのインストールコマンド、OAuth フロー、API キー、ネイティブ設定ファイルは unterm.app から取得する署名付きマニフェストに記述されています。ランタイムはキーを OS のキーチェーンに保存し、エージェント自身の JSON/TOML/YAML 設定を書き込み(未知のフィールドは保持)、Unterm 自体を MCP サーバーとしてエージェントに公開し、セッションを監査ログに記録します——すべて CLI と新しい AI エージェント Web 設定タブから操作できます。

🪟 v0.17
AI がターミナルの外からペインを分割

MCP 経由の session.split + session.focus により、外部エージェント(Claude Code、Cursor、あなたのスクリプト)がアクティブなウィンドウを左/右/上/下に分割し、新しいペインにフォーカスを渡せます——キー入力のシミュレーションは一切不要。ヒーローの Python スニペットにも組み込まれています。ペインのジオメトリをこの形で外部プロセスに公開するターミナルは他にありません。

👁️ v0.16
エージェントの書き込みはすべて監査・取り消し・レビュー可能

session.input/exec.send はすべて、呼び出したエージェントの ID とともに記録されます。新しいエージェントの最初の書き込みでは「許可/ブロック/常に許可」のバナーが出ます。信頼は ~/.unterm/trusted_agents.json に保存され、Web 設定の MCP タブからワンクリックで取り消せます。ステータスバーには MCP 書き込み数がライブ表示されます。

使い勝手

積み重なる小さな工夫

毎日使うための磨き込み——どれも目玉機能ではありませんが、合わさると摩擦が消えます。

👻
ペインをまたぐゴーストテキスト

Fish 風の灰色の予測が、どのペインのシェル履歴からでも入力の続きを示します。→ または End で確定。

✨
session.suggest バー

エージェントは PTY に触れずにコマンドを提案——ステータスバーの上に表示されます。Tab で確定、Alt+Enter で確定して実行。

📋
範囲スクリーンショット → クリップボード

ステータスバーから任意の矩形をドラッグ選択。PNG はディスクへ、画像はクリップボードへ、ファイルパスはテキストとして——すべて同時に。

🎨
テーマ + タブごとの CWD

7 つのテーマを同梱。unterm-cli theme set midnight ですべてをライブで切り替え。ステータスバーにはアクティブなペインの $HOME 相対の cwd を表示。

📁
macOS のネイティブ右クリック

Finder の右クリック → Unterm で開く。AppleScript の Services 拡張を使い、アプリ内のコンテキストメニューは持ちません。

🪪
ステータスバーの ID チップ

アクティブなアイデンティティプロファイル(このウィンドウに紐付いた GitHub PAT/AWS キー/npm トークン)をステータスバーに表示。クリックで次のプロファイルを起動。

🚦
設定ゼロのプロキシ

macOS scutil/Windows レジストリ/GNOME gsettings/env を読み取り。ワントグルでオン/オフ。URL の貼り付けは不要。

🌐
OSC 133 によるブロック分割

録画はシェルのプロンプト境界で自動的に分割。各ブロックにコマンド、出力、終了コード、所要時間が含まれ、検索できます。

v0.71.6 マウス操作

右ボタンを押せば貼り付け。コピーは選択するだけ。

コピー&ペーストの流れはすべてマウスで完結しますが、その 2 つは別々の動作に割り当てられています。選択を離した時点でクリップボードに入っており、右ボタンを押せばカーソル位置に貼り付け——選択の有無にかかわらず、毎回。コンテキストメニューは一切開かず、閉じる手間もありません。

🖱️
選択——もうコピー済み

出力をドラッグするか、単語をダブルクリックするだけ。ボタンを離した瞬間にテキストはクリップボードに入っています。覚えるべき 2 つ目の操作も、確定のために押すものもありません。

📥
右ボタン——貼り付け

1 つのボタンに 1 つの役割。選択の有無にかかわらず、プロンプトに貼り付けます。あるペインからコピーし、別のペインをクリックして右ボタン——コマンドの移動、キー入力ゼロ。クリップボードが空なら静かに何もせず、エラーにはなりません。

⌃
macOS 流の Ctrl+クリック

macOS は Ctrl+クリックを副ボタンのクリックとして扱い、Unterm も同じです——トラックパッド、Magic Mouse、サードパーティ製ドライバーのいずれでも。対象は Ctrl 単独のときだけなので、あなた独自の Ctrl 組み合わせのマウスバインドや Ctrl+Shift でのウィンドウドラッグはそのまま。macOS はその 1 つの動作を 2 つのイベントとして送りますが、Unterm は 1 回だけ処理します。vim や Claude Code のようなマウス対応 TUI でも同じように動作します。

v0.71.6 で変更。以前は何かが選択されていると右ボタンでコピーしていました——選択がすでに済ませた作業を繰り返し、本来の目的である貼り付けが犠牲になっていたのです。

since v0.55 エージェントコックピット

ターミナルの中で動くエージェントが、見えるようになった

Claude Code、Codex、Gemini、Aider——どのペインでも、誰が作業中で、誰があなたの対応待ちで、何を変更したかがわかります。設定ゼロですぐ使え、コマンド1つで hook レベルの正確なレポートに。

エージェント受信箱:Codex は承認待ち、Claude は完了、Claude は作業中
🛰️ すべてのタブにライブ状態

公式 hooks、タイトル/OSC 解析、プロセス検出、画面ヒューリスティクスの4層のシグナルを、ペインごとに1つの状態へ集約:作業中(呼吸する青)、要対応(アンバー)、完了、アイドル。トップバーは全ウィンドウを集計し、あなた待ちのエージェントが現れた瞬間にアンバーに変わります。

📥 エージェント受信トレイ

Ctrl+Shift+A:全ウィンドウのすべてのエージェントを待機中優先で一覧表示。どれくらいの時間、何で止まっているかも表示します。Enter でそのペインへ直行。「あっちで y を押してくる」が、キー2回で済むように。

🚀 フリート:1つのタスク、N個のエージェント

claude × 2 + codex に同じタスクを競わせましょう——各メンバーはリポジトリの隣にある専用の git worktree とブランチで動き、専用のタブと状態バッジを持ちます。あなたの作業コピーには一切触れません。

🔍 レビュー:どんな変更も見逃さない

エージェントが作業を始めた瞬間、Unterm はリポジトリのチェックポイントを取ります(dangling コミット——HEAD、インデックス、ファイルには触れません)。エージェントが新規作成したファイルも含む行単位の diff、ステージ済みとしての squash マージ(コミットはあなたのまま)、任意のチェックポイントへのロールバック、メンバー同士の並列比較。

🔌 他のすべてと同じく、完全にスクリプト可能

コックピット自体も MCP + CLI:agent.status、cockpit.inbox、fleet.launch、review.merge…オーケストレーター役のエージェントが、人間なしでフリートを起動し diff をレビューできます。ローカルファースト——どれもクラウドを経由しません。

エージェントコックピットのドキュメントを読む →

v0.71 の新着

グラフィックスドライバのないマシンでも開く端末、2 枚目のウィンドウが 587 ミリ秒から 31 ミリ秒へ、開いたウィンドウより長生きするシェル、そして文字として複製できる CJK——直近 8 リリースを 7 枚のカードで。

v0.71.18 ターミナルに画像を表示

Unterm がインライン画像を描画するようになりました。kitty グラフィックスプロトコル、iTerm2 のインライン画像、sixel に対応し、chafa、img2sixel、viu、timg、unterm-cli imgcat で画像そのものが表示されます。画像は隣のテキストと一緒にスクロールし、スクロールバックに残り、ペインの端できれいに切り取られ、描かれた画面(代替画面を含む)にだけ属します。セルのピクセルサイズを問い合わせるプログラムには実際の値が返ります。エージェントは screen.images で一覧できます。ほかに、設定の [platform.*] セクションが有効になり、close_confirmation が機能し、効果のない設定は理由とともに報告されます。

v0.71.17 自分でアップデートし、コマンドの結末もわかる

ワンクリック更新:unterm-cli update、コマンドパレットの「アップデートをインストール」、Web 設定のボタンが新しいリリースをダウンロードし、SHA-256(macOS では署名も)を確認して再起動します。シェル統合が自動で読み込まれ(zsh・bash・fish・PowerShell)、失敗したコマンドのタブに ▲ が付きます。出力に「error」とあるだけでは付きません。エージェントが端末に求めるものも揃いました:Shift+Enter と Enter の区別(kitty キーボードプロトコル)、テーマに沿った色の問い合わせへの応答、タブの下の進捗バー(OSC 9;4)、ちらつかない全画面再描画(mode 2026)。さらに Windows のシェルメニューに Git Bash と各 WSL ディストリビューション、クラッシュ時に入力済みの GitHub issue を開くダイアログ、Homebrew と Scoop でのインストール。

v0.71 グラフィックスドライバのないマシンでも端末が開く

起動はハードウェアの二経路だけを試して、そこで諦めていました。使えるディスプレイドライバのない Windows——仮想マシン、クリーンインストール、リモートセッション——では DX12 はアダプタを見つけてもサーフェスを構成できず、OpenGL には探すべきドライバがなく、端末は「no working GPU path」と言って起動を拒みます。WARP はそのマシンにずっとありました。D3D12 に同梱され、ドライバを必要としない——ただ誰も尋ねなかっただけです。フォールバック連鎖の最後がソフトウェアラスタライザになりました。

v0.68 1 プロセス、N ウィンドウ。2 枚目は 31 ミリ秒

2 枚目のウィンドウはかつて 2 つ目の Unterm でした。もう一つの GPU アダプタ、もう一本の Core 接続、587 ミリ秒の待ち時間。いまは既に動いているプロセスの中に開き、31 ミリ秒です。ウィンドウを閉じても、シェルは Core に残って別のウィンドウへ引き継がれます。

v0.68 エージェントを住まわせられる端末へ

各機能はリースの向こう側に置かれました。エージェントはリースを取得し、目に見える鍵のもとで使い、取り消せば失います。承認は答えられるものになり、問いは「これから何が起きるか」を述べます。

v0.66 ウィンドウを閉じても、シェルは残る

「バックグラウンドで実行し続ける」が画面に痕跡を残すようになりました。三つのプラットフォームすべてでトレイインジケータが、生きているセッション数を告げ、ひと押しで格納したウィンドウを呼び戻します。

v0.64 CJK:コピーは文字、選択は語、入力は壊れない

CJK の入力はかつて `<009d>` のようなバイトの屑に砕けました。コピーした文字列はグリッドのスペーサーセルを運び、貼り付けると穴が空いていました。いま全角文字は一文字です——選択でも、クリップボードでも、入力でも。

v0.63 セッションは 1 つのプロセスが持つ——そしてインストールにやっと全部入った

unterm-core がセッションを所有します。ユーザーごとのプロセスが shell・スクロールバック・分割レイアウトを保持し、MCP サーフェス全体を提供し、ウィンドウからウィンドウへ引き継ぎます(v0.62)。最後のウィンドウを終了すると Core も終わります——そのウィンドウをトレイに常駐させたか、Core を --headless で起動した場合を除いて。v0.63 はインストールが当然受け取るべきだったリリース:core デーモンが 9 種すべてのパッケージに実際に同梱され、設定ページが Core モードで動き、絵文字が初めて描画され(同梱フォントは FreeType が描けない COLRv1 でした)、ポーズ後のタイピング遅延が 96ms から 8ms に、macOS は新しいマークをまとい、エクスプローラーの右クリックに「Open in Unterm tab」が加わりました。

v0.61 自社製カーネル:起動 22ms でライブなコントロールサーフェス

Unterm はもう WezTerm フォークでは動いていません。next-core はこの製品のために書かれたターミナルカーネル — パーサー、スクリーンモデル、PTY ランタイム、フォントスタック、wgpu レンダラー — で、約 12k ソース行と 10 個の直接依存という予算に収めています。起動からライブな MCP サーフェスまで 22ms(旧カーネルは 7.1s)、アイドル時は 1 コアの 6.6%(旧 80%)、20 万行スループットは同等。旧カーネルとの機能パリティは 159 項目の要件台帳に対して一つずつ閉じ、タイポグラフィはプラットフォームネイティブに:macOS の本物のトラフィックライト、pt 正確なサイズ、そして CJK がついに正しく描画されます。詳しくはブログへ。

View all releases on GitHub →

6 つの原則、例外なし

01
ローカルファースト、クラウドなし

すべてのサーバー、すべての API エンドポイント、すべての録画は 127.0.0.1 にあります。ログインなし、テレメトリなし、サブスクリプションなし。シェルの履歴はあなたのものです。

02
AI はターミナルの外にいる

チャットのオーバーレイも、インラインの AI パネルも、内蔵モデルもありません。ターミナルは操作される面です——Claude Code、Cursor、あなたのスクリプトが MCP でつかみます。唯一の予測は、シェルのプロンプトであなた自身の履歴から出す灰色のゴーストテキストで、Claude Code のようなエージェントが動いているペインには出ません。

03
MCP は第一級の操作面

エージェント向けの機能は MCP メソッドと CLI コマンドを伴って出荷します。例外は意図的です:テーマ、言語、設定ファイルはあなたの手元に残ります——Web 設定、<code class="font-mono text-xs">unterm-cli</code>、<code class="font-mono text-xs">unterm.conf</code>——セッションの途中でエージェントがターミナルの見た目を変えることはありません。

04
クロスプラットフォームの同等性は正しさの一部

Windows では動くのに macOS や Linux では動かない機能は、「未対応」ではなくバグです。Mac、Linux、Windows は同時にリリースします。

05
装飾より引き算

OS が担うべき機能は OS に任せます。AI による生成はターミナルの外に、コアの動作はローカルに保ち、macOS ではネイティブの Finder 連携を使います。

06
サブスクリプションを尊重。既定は OAuth。

Unterm から AI エージェントをインストールすると、既定の認証モードはベンダー公式のサブスクリプション(OAuth)——あなたの Pro/Plus/Team プランです。セッションに API キーを黙って注入することは決してありません。トークン単位の課金が発生するのは、設定フォームで認証モードを「自前の API キー」または「カスタムエンドポイント」に明示的に切り替えた場合だけです。これはオプトインであり、落とし穴ではありません。

ターミナルに AI を組み込む必要はない。
必要なのは、AI に操縦されること。

これが Unterm と Warp の分かれ道です——機能の差ではなく、方向性の違いです。

寿命のミスマッチ

ターミナルは 30 年使う道具、AI モデルは半年で入れ替わる部品です。AI をターミナルに溶接すれば、あなたが持つ最も長寿な道具が、最も短命な部品に左右されることになります——モデルが古くなれば、ターミナル全体も一緒に古びます。

エージェントはもう手元にある

Claude Code、Codex、Gemini CLI、Aider——あなたはすでに最強のコーディングエージェントを使っていて、それらは毎月良くなっています。ターミナル内のチャットボックスは、サインインすべきコパイロットが 1 つ増えるだけで、あなたが本当に好むものには決してなりません。

足りないのは頭脳ではなく、手がかり

エージェントに欠けているのは知能ではなく、ターミナルに触れる手です。Unterm はターミナルを MCP で操作できるサーフェスにします:ペインの起動、コマンド実行、画面の読み取り、スクロールスクリーンショット、設定の変更、セッションの録画。エージェントはガラス越しに眺めるのではなく、あなたと同じようにターミナルを使います。

Warp の答え:AI をターミナルの中に入れる
  • ターミナル UI に組み込まれた AI は、彼らのクラウドに縛られる——ログイン、サブスクリプション、利用上限
  • 彼らが選んだモデルを、彼らのスケジュールでアップグレード
  • AI のコアはクローズド。あなたのコマンドのコンテキストは彼らのサーバーを通る
Unterm の答え:ターミナルを AI に渡す
  • ターミナルは MCP サーフェス——今年のエージェントでも来年のエージェントでも、つないで操作できる
  • エージェントもモデルもあなたが選ぶ。Unterm はあなたを縛らない
  • MIT、完全オープンソース。すべては 127.0.0.1 にとどまる——ログインなし、サブスクリプションなし、テレメトリなし

30 年後もあなたはターミナルを使っているでしょう。そのとき、どの AI がそれを操縦しているかは誰にもわかりません——だからこそ、将来も通用する唯一のターミナルは、操縦されるために作られたターミナルなのです。

Unterm vs ネイティブターミナル vs 有料 AI ターミナル

ネイティブターミナル(Terminal.app)は、すでに手元にある基準線です。Warp は有料の AI ターミナル。iTerm2 と Ghostty は無料のパワーターミナル。Unterm は独自のレーンにいます——外部エージェントが外からつかめるすべてを備えたターミナルです。

機能 Unterm Terminal.app Warp iTerm2 Ghostty
エージェントファースト ネイティブ 有料 無料 無料
MCP で外部から操作可能 ✓ ✗ ✗ ✗ ✗
すべての操作をスクリプト化できる CLI ✓ ✗ ✗ Python API ✗
AI コーディングエージェントのランチャー内蔵 ✓ ×7 ✗ ✗ ✗ ✗
エージェントがターミナルの MCP に自動配線 ✓ ✗ ✗ ✗ ✗
エージェントコックピット(受信箱 · フリート · レビュー) ✓ ✗ ~ cloud ✗ ✗
アイデンティティプロファイル(ウィンドウごとの認証情報) ✓ ✗ ✗ ✗ ✗
マルチインスタンスのオーケストレーション ✓ ✗ ✗ ✗ ✗
セッション録画 → markdown ✓ md ✗ ~ ✓ ✗
MCP からのスクリーンショット + ファイルアップロード ✓ (Linux ~) ✗ ✗ ~ ✗
選択でコピー、右クリックで貼り付け——メニューなし ✓ gesture menu menu menu menu
プロキシ管理を内蔵 ✓ ✗ ✗ ✗ ✗
ローカルファースト、クラウドなし/ログインなし ✓ ✓ ✗ ✓ ✓
ターミナルに AI を内蔵 ✗ 意図的 ✗ ✓ (cloud) plugin ✗
GPU レンダリング ✓ ✗ ✓ ✓ ✓
macOS + Linux + Windows ✓ ✗ ✓ macOS mac+Linux
オープンソースのクライアント ✓ MIT ✗ ✗ ✓ GPL ✓ MIT
ネイティブ UI の言語数 ✓ ×9 OS en en en
価格 $0 $0 基本無料 $ $0 $0

✓ あり · ✗ なし · ~ 一部 · ×N 個数。「AI 内蔵」の行の ✗ 意図的 こそが主張の核心です:Unterm は AI を外側に置き、ターミナルを AI がつかむサーフェスとして公開します。

2026-05 時点で公開されているドキュメントに基づきます。Warp はクローズドソースで、クラウド連携の無料プランと有料の Team/Pro プランがあります。iTerm2 は Python スクリプト API とオプトインの AI コマンドプラグインを提供。Ghostty にはまだ Windows ビルドがありません。訂正は GitHub で歓迎します。

よくある質問

Unterm とは?

MCP、HTTP、CLI のコントロールサーフェスを内蔵したクロスプラットフォームのターミナルエミュレーターです。コンセプトはMCP で操作できる面としてのターミナル。AI をターミナルに組み込むのではなく、外部のどんな AI エージェントでも外から操作できるようにします。

Claude Code が承認待ちになったことを知るには?

Unterm は各ペインのエージェント状態を追跡します。Claude Code(または Codex、Gemini、Aider)が確認待ちで止まると、そのタブのドットがアンバーに変わり、トップバーのチップが件数付きでアンバーになり、エージェントは受信トレイ(Ctrl+Shift+A)の最上位へ——Enter でそのペインへ直行できます。Claude Code と Gemini は設定ゼロで検出。「unterm-cli agent enable-hooks」で hook レベルの正確なレポートが追加されます。

複数の Claude Code インスタンスを衝突させずに並列実行できますか?

はい——それこそがフリートの役割です。「unterm-cli fleet launch --agents claude,claude,codex -- タスク」で、各メンバーにリポジトリの隣の専用 git worktree とブランチが与えられるため、互いにも、あなたの作業コピーにも干渉できません。各メンバーはライブ状態バッジ付きの専用タブを持ち、レビューページで結果を並べて比較できます。

AIコーディングエージェントの変更をレビュー・取り消しするには?

エージェントがリポジトリで作業を始めた瞬間、Unterm はチェックポイントを取ります——HEAD にもインデックスにもファイルにも触れない dangling git コミットです。レビューページ(Web 設定内)では、エージェントが新規作成したファイルも含む行単位の diff を確認でき、気に入った成果をステージ済みの変更として squash マージ(コミットはあなたが実行)したり、破棄したり、worktree を任意のチェックポイントへロールバックできます。

Unterm はどのAIコーディングエージェントに対応していますか?

ランチャーから Claude Code、Codex CLI、Gemini CLI、OpenCode、Aider をそれぞれワンクリックでインストール・接続できます。コックピットの状態検出は kimi、trae、cursor-agent も標準で認識し、標準的なターミナルシグナル(タイトル、OSC 9/777、BEL)を発するエージェントなら何でも基本的な追跡が自動で効きます。どんなツールも「unterm-cli agent signal」で統合できます。

マウスだけでコピー&ペーストするには?

選択でコピー、右クリックで貼り付けです。ドラッグやダブルクリックを離した時点で、テキストはすでにクリップボードにあります。右クリックは常にカーソル位置に貼り付けます——選択の有無にかかわらず、マウスを奪うプログラム(vim、htop、Claude Code)を含むすべてのペインで。Unterm は右クリックをそれらに渡さず自分で処理します。そうしたプログラムでは、Shift を押しながらドラッグして選択してください。macOS では素の Ctrl+クリックも右クリックとして扱われ、中ボタンでも貼り付けられます。閉じるべきコンテキストメニューはなく、クリップボードが空なら静かに何もしません。

Claude Code、Cursor などのエージェントとはどう連携しますか?

Unterm の各ウィンドウはローカル MCP サーバー(TCP、JSON-RPC、認証トークン必須)を起動します。MCP クライアントを 127.0.0.1:<port> に向けてください——ポートとトークンは起動時に ~/.unterm/server.json に書き込まれます。エージェントはシェルの起動、コマンド実行、ペイン状態の読み取り、スクリーンショット、録画の切り替え、Agent Cockpit(状態、受信箱、フリート、レビュー)の操作ができます。テーマ、言語、設定は意図的に MCP にありません。Web 設定、unterm-cli、または unterm.conf で変更してください。

1 つのエージェントから複数の Unterm ウィンドウを操作するには?

Unterm の各プロセスは 1 つのインスタンスで、NATO フォネティックの名前(alpha、bravo、…)が付き、~/.unterm/instances/<name>.json に記録されます。どれか 1 つで instance.list を呼べば一覧が取れます。cwd/タイトル/起動順で選び、そのインスタンスのポートと認証トークンで接続します。~/.unterm/active.json は直近に生きているインスタンスを指しており、単一インスタンス前提のフォールバックに使えます。

Warp とはどう違いますか?

Warp は AI を閉じたクラウドのオーケストレーター(Oz)に組み込んでいます——Claude Code のような外部ツールは外から Warp を操作できません。Unterm は第三の道を選びました。AI はターミナルの外に置き、ターミナル自体を MCP で操作できる面として公開し、どのエージェントでもつかめるようにします。クラウドなし、ログインなし。

データはどこに送られますか?

外部にはどこにも送られません。MCP と Web 設定のサーバーは 127.0.0.1 にのみバインドします。セッション録画は <project>/.unterm/sessions/ に保存され、トークンのマスク処理が組み込まれています。テレメトリも、アナリティクスも、ログインも、クラウドとの往復もありません。シェルの履歴はあなたのものです。

Unterm は一度でも外部に通信しますか?

テレメトリなし、アナリティクスなし、クラッシュやインストールの通知なし、アカウントなし。Unterm 自身が行うリクエストは 2 つだけで、どちらもあなたに関する情報は含みません。(1) アップデート確認——起動から約 20 秒後、その後は 6 時間ごとに api.github.com/repos/zhitongblog/unterm/releases/latest へ単純な GET を送ります。User-Agent は固定(unterm-update-check)で、識別子は含みません。結果は ~/.unterm/update_check.json にキャッシュされます。(2) AI エージェントカタログ——unterm.app/api/agents/manifests への GET です。Web 設定で AI エージェントを開いたときや unterm-cli agent コマンドを実行したときに送られ、User-Agent の Unterm バージョンとキャッシュ用の ETag だけを送信します。失敗した場合はアプリに組み込まれた署名済みのコピーを使います。どちらもまだ設定でオフにはできません——完全にオフラインで使いたい場合は、ファイアウォールでこの 2 つのホストをブロックしてください。それ以外の通信はすべてあなたが始めるものです:ダウンロード、自分のバケットへのアップロード、自分のプロキシノードへのヘルスチェック、そしてシェルが行うあらゆる通信。

有料版やプレミアム機能はありますか?

ありません。Unterm は MIT ライセンスで、1 つのバイナリにすべての機能が入っています。サブスクリプションも Pro 版もプラグインストアも「分割ペインは有料」もありません。応援していただけるなら、フッターのスポンサーリンクが唯一のお願いです。

インストールサイズと実行時のサイズは?

macOS DMG 約 50 MB · Linux .deb 27 MB · AppImage 43 MB · Windows MSI 43 MB。ウィンドウを 1 つ開いたアイドル時の常駐メモリは約 110 MB で、ペインごとに線形に増えます。ネイティブの next-core エンジンは wgpu で描画し、実行時のコストは通常、各ペインのシェルとアプリケーションが大半を占めます。

Unterm はシステムの言語を検出しますか?

はい。初回起動時に OS のロケール(macOS では defaults、Linux では $LANG、Windows ではレジストリ)を読み取り、同梱の 9 つの UI 言語から最も近いものを選びます。ウィンドウごとに Web 設定 → 言語で変更できます。翻訳は unterm-services/src/i18n/locales/*.json にあります——パッチ歓迎です。

暴走したエージェントがリポジトリで rm -rf を実行するのを防ぐものは?

複数のゲートがあります。(1) MCP サーバーは 127.0.0.1 でのみ待ち受け、ネットワークからはアクセスできません。(2) 認証トークンで保護されています。トークンは ~/.unterm/instances/<name>.json にあり、このファイルを読めないエージェントは接続すらできません。(3) すべてのリクエストは 7 つのリスク区分——read、local_mutation、exec、external_side_effect、credential_access、financial、destructive——のいずれかに分類されます。読み取りは通過します。ローカルの変更とコマンド実行は、ポリシーのブロック/許可コマンドパターンに従い、確認なしで通過します。external_side_effect 以上はあなたの承認を待ち、認証情報、金銭、破壊的操作についてはその承認は 1 回の呼び出しにのみ有効です。(4) シェルへの入力は exec として扱われるため、エージェントと rm -rf の間に立つのは初回書き込みのバナーです。新しいエージェントが初めてペインに書き込むと「許可/ブロック/常に許可」が表示され、監査ログには呼び出し元の ID とともにすべての書き込み試行が記録されます。信頼はいつでも Web 設定の MCP タブから取り消せます。

スクリプトから操作するには?

unterm-cli を使います:session list、proxy status、theme set midnight、session record start、screenshot。どのサブコマンドにも --json を付ければ生の JSON-RPC を出力し、シェルのパイプラインや cron ジョブにそのまま使えます。

署名・公証済みで配布しているプラットフォームは?

macOS:arm64 + x86_64 ユニバーサル DMG。Developer ID で署名し、Apple の公証とステープル済み(Gatekeeper の警告なし)。Linux:Debian/Ubuntu 向け .deb と、どのディストリでも使える AppImage。Windows:WiX 製の MSI インストーラーとポータブル .zip。マイナータグごとにすべて GitHub Releases で公開します。

オープンソースですか?

はい——MIT ライセンスです。現在の GUI とターミナルランタイムは Unterm ネイティブの next-core エンジンを使い、MCP、Web 設定、録画、i18n、リリースツールも同じリポジトリにあります。ソースは github.com/zhitongblog/unterm で公開しています。

コントリビュートするには?

GitHub で issue か PR を作成してください。バグ、機能要望、議論は 1 つのキューで管理しています。たまった修正はマイナーリリースにまとめます——パッチレベルのバージョンでは CI ビルドは走りません。ドキュメントはリポジトリ内の /docs にあります。