iterminal について
iTerminalは、開発者や運用担当者向けのSSH接続管理デスクトップアプリで、複数サーバーへの接続とターミナル・ファイル操作をまとめて扱えます。内蔵MCPサーバーからAIツールがSSH接続を操作でき、その操作はターミナルにも表示されます。
主な機能
- 01SSH接続のグループ管理と状態表示
- 02複数セッションと分割ターミナル
- 03SFTPによる閲覧と転送
- 04リアルタイムのシステム・プロセス監視
- 05Dockerコンテナとイメージの管理
- 06接続情報の暗号化保存
活用シーン
- 01複数のリモートサーバーを管理・接続
- 02SFTPでファイルを転送・編集
- 03サーバー資源の確認とプロセス管理
- 04AIツールでSSHコマンドやファイル操作を実行
MCP 対応
内蔵MCPサーバーはHTTP APIを通じて、SSHコマンド実行、ファイル操作と転送、システム監視をAIツールに公開します。アプリに同梱され、更新に対応する安定したランチャーを使用します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
27掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
翻訳後に原文が更新されています。最新の内容は原文をご確認ください。
iTerminal - SSH 接続マネージャー
Tauri 2 + React を基盤に構築された最新の SSH 接続管理ツールです。効率的な SSH 接続管理とターミナル操作の体験を提供することに重点を置いています。
プロジェクト紹介
背景
iTerminal は XTerminal に似た SSH 接続管理ツールで、開発者や運用担当者が複数のサーバーをより簡単に管理できるよう支援することを目的としています。
技術スタック
| 技術 | バージョン | 説明 |
|---|---|---|
| Tauri | 2.x | クロスプラットフォームのデスクトップアプリフレームワーク |
| React | 19.x | フロントエンド UI フレームワーク |
| TypeScript | 5.x | 型安全な JavaScript |
| Vite | 7.x | 次世代フロントエンドビルドツール |
| Ant Design | 6.x | エンタープライズ向け UI コンポーネントライブラリ |
| xterm.js | 6.x | ターミナルエミュレーター |
| Zustand | 5.x | 軽量な状態管理 |
| Rust | 1.75+ | バックエンドの SSH 実装 |
| russh | 0.50 | Rust SSH クライアントライブラリ |
| russh-sftp | 2.1 | Rust SFTP クライアントライブラリ |
主な機能
- 🚀 軽量で高効率 - Tauri を基盤とし、メモリ使用量が少なく、起動が高速です
- 🔐 安全で信頼性の高い設計 - AES-256-GCM で接続情報を暗号化して保存し、SSH キー認証に対応。パスワードも自動で移行します
- 🖥️ 複数タブ管理 - 複数の SSH セッションを同時に開けます
- 📐 ターミナルの分割表示 - 水平/垂直分割、入れ子の分割に対応し、ドラッグでサイズを調整できます
- 🔍 ターミナル検索 - ターミナルの内容を全文検索できます
- ⌨️ ショートカットシステム - 豊富なショートカットに対応し、カスタマイズもできます
- 📁 ファイル管理 - SFTP ファイルの閲覧、アップロードとダウンロード、ドラッグによるアップロード、ファイル検索、圧縮と解凍、ファイルのプレビュー/編集(CodeMirror 6)に対応。パネルはターミナルのディレクトリに追従し、権限が不足している場合は sudo による権限昇格でアップロードできます
- 📊 システム監視 - CPU、メモリ、ディスクをリアルタイムで監視するパネルと、プロセス管理
- 🤖 MCP 対応 - MCP サーバーを内蔵(トークン認証 + SSE 転送)。AI が実行した操作はリアルタイムでターミナルに表示されます
- 🐳 Docker 管理 - コンテナ/イメージ/ログ/コンテナターミナル
- ✨ AI アシスタント - ターミナルのコンテキストを認識する AI チャット + サーバーを自律的に診断するインテリジェントエージェント Agent
- 🪟 複数ウィンドウ対応 - 接続を端までドラッグして新しいウィンドウを作成でき、ターミナルの全機能を再利用できます
- 📋 中国語対応 - 中国語の UI と右クリックメニューを完全にサポートします
- 🌍 クロスプラットフォーム - Windows、macOS、Linux に対応します
対象ユーザー
- 開発者
- システム運用エンジニア
- DevOps エンジニア
- 複数のサーバーを管理する必要がある技術者
アプリの画像
インストールとパッケージ化
環境要件
共通要件
- Node.js >= 18.x
- Rust >= 1.75
- npm または pnpm
Windows
- Microsoft Visual Studio Build Tools(「Desktop development with C++」を選択)
- WebView2 Runtime(Windows 10/11 には通常、組み込み済みです)
macOS
- Xcode Command Line Tools:
xcode-select --install
Linux (Ubuntu/Debian)
sudo apt update
sudo apt install -y libgtk-3-dev libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev
開発環境のセットアップ
# 1. 克隆项目
git clone <repository-url>
cd iTerminal
# 2. 安装依赖
npm install
# 3. 启动开发模式
npm run tauri dev
本番環境向けのパッケージ化
# 构建并打包应用
npm run tauri build
パッケージの出力先
ビルド完了後、インストーラーは src-tauri/target/release/bundle/ ディレクトリに出力されます。
| プラットフォーム | 出力形式 | ファイルの場所 |
|---|---|---|
| Windows | .msi / .exe | bundle/msi/ bundle/nsis/ |
| macOS | .dmg / .app | bundle/dmg/ bundle/macos/ |
| Linux | .deb / .AppImage | bundle/deb/ bundle/appimage/ |
機能紹介
1. 接続管理
1.1 接続リスト
- すべての SSH 接続をカード形式で表示します
- グループ管理(カスタムグループ)
- タグによる分類
- 接続状態(オンライン/オフライン)をリアルタイムで表示します
- 名前、IP、タグで検索・絞り込みできます
- 接続の並べ替え、複数接続の一括管理
1.2 接続操作
| 操作 | 説明 |
|---|---|
| 接続の新規作成 | 新しい SSH 接続設定を作成します |
| 接続の編集 | 既存の接続情報を変更します |
| 接続の削除 | 個別の接続を削除します |
| 接続の複製 | 既存の設定をすばやく複製して新しい接続を作成します |
| 接続テスト | SSH の接続性と認証をテストします |
| クイック接続 | ワンクリックで SSH ターミナルを開きます |
| インポート/エクスポート | JSON 形式で接続を一括インポート/エクスポートします |
| IP のコピー | ワンクリックでサーバーの IP アドレスをコピーします |
1.3 接続状態
- オンライン - ポートに到達できます(緑色のインジケーター)
- オフライン - ポートに到達できません(灰色のインジケーター)
- 接続中 - 接続を確立しています(青色のインジケーター)
💡 起動後にすべての接続状態を自動検出し、定期的に更新します。
1.4 接続設定
基本設定:
- 接続名
- グループ
- タグ
- ホスト名/IP アドレス
- ポート(デフォルトは 22)
- ユーザー名
認証方式:
- パスワード認証
- SSH キー認証(OpenSSH 形式と PEM 形式に対応)
2. SSH ターミナル
2.1 複数タブ管理
- 複数の SSH セッションを同時に開けます
- 接続単位のタブ(各接続で複数のセッションを作成できます)
- タブにサーバー名/IP を表示します
- セッション状態を表示します
2.2 ターミナルの分割表示
- 水平/垂直分割に対応します
- ドラッグで分割サイズを調整できます
- 各分割画面のセッションを個別に管理します
- セッションタブをドラッグして新しい分割画面を作成できます
2.3 ターミナル機能
| 機能 | ショートカット/操作 |
|---|---|
| ターミナルエミュレーション | 完全な xterm.js ターミナル |
| カラー出力 | ANSI カラーに対応 |
| コピー | ツールバーのボタン/右クリックメニュー/CmdOrCtrl+Shift+C |
| 貼り付け | 右クリックメニュー/CmdOrCtrl+Shift+V |
| すべて選択 | 右クリックメニュー |
| 検索 | ツールバーの検索ボタン/CmdOrCtrl+F |
| 全画面表示 | ツールバーの全画面ボタン |
| 分割表示 | CmdOrCtrl+D 水平/CmdOrCtrl+Shift+D 垂直 |
| セッションの新規作成 | CmdOrCtrl+T |
| セッションを閉じる | CmdOrCtrl+W |
2.4 ツールバー
フローティングツールバーから、すばやく操作できます:
- 📋 コピー - 選択したターミナルの内容をコピーします
- 🔍 検索 - 検索バーを開き、ターミナルの内容を検索します
- 🖥️ 全画面表示 - ウィンドウを最大化し、サイドバーを折りたたみます
- 📊 システムモニター - リアルタイムモニターパネルを開きます
- 📁 ファイル管理 - SFTP ファイル管理パネルを開きます
- ➖ 折りたたむ - ツールバーを小さな球状に折りたたみます
2.5 マルチウィンドウ対応
- 接続タブをウィンドウの端にドラッグして、新しいウィンドウを作成します
- 新しいウィンドウでも、すべてのターミナル機能を利用できます
- ターミナルセッションは新しいウィンドウに自動的に復元されます
- ウィンドウの位置は自動的に記憶されます
3. ファイル管理
3.1 ファイルの閲覧
- SFTP プロトコルによるリモートファイルの閲覧
- ツリー表示とリスト表示を切り替え
- パス入力欄からすばやく移動
- 隠しファイルの表示/非表示を切り替え
- ファイルサイズを表示
- 指定したディレクトリにドラッグ&ドロップでアップロード
3.2 ファイル操作
| 操作 | 説明 |
|---|---|
| ファイルの新規作成 | 空のファイルを作成します |
| フォルダーの新規作成 | ディレクトリを作成します |
| 名前の変更 | ファイル/フォルダーの名前を変更します |
| 削除 | ファイルまたはディレクトリを削除します |
| 権限の変更 | chmod による権限設定 |
| 圧縮 | リモートで tar.gz 形式に圧縮します |
| 解凍 | tar.gz/zip/gz などの形式に対応しています |
| ファイル検索 | リモートファイルを検索します |
| ファイルのプレビュー | テキストファイルをプレビューします |
| ファイルの編集 | リモートファイルをオンラインで編集します |
| ファイル名のコピー | 選択したファイル名をコピーします |
| パスのコピー | 完全なパスをコピーします |
3.3 ファイル転送
- ファイルのアップロード - 複数のファイルを選択してアップロードできます
- フォルダーのアップロード - フォルダー全体をアップロードします
- ドラッグ&ドロップでアップロード - ファイルをパネルに直接ドラッグしてアップロードします
- ファイルのダウンロード - 保存先を選択してダウンロードします
- 転送の進捗 - 転送の進捗をリアルタイムで表示します
- 一時停止/再開 - 転送の一時停止と再開に対応しています
4. システムモニター
4.1 モニターパネル
サーバーの状態をリアルタイムで表示し、自動的に更新します:
システム情報:
- ホスト名
- オペレーティングシステム
- カーネルバージョン
- 稼働時間
CPU モニター:
- 全体の使用率
- 各コアの使用率(視覚表示)
- コア数
- ロードアベレージ
メモリモニター:
- メモリ使用率(視覚表示)
- 使用量/合計/空き容量
- Swap の使用状況
ディスクモニター:
- 各マウントポイントの使用率
- 使用量/合計/空き容量
- 使用率(パーセント)
プロセス管理:
- プロセス一覧(メモリ使用量順)
- プロセスの終了
4.2 状態表示
- 🟢 緑 - 使用率 < 70%
- 🟡 黄 - 使用率 70% - 90%
- 🔴 赤 - 使用率 > 90%
5. MCP サーバー
MCP(Model Context Protocol)サーバーを内蔵し、AI アシスタントとの連携に対応しています:
- HTTP API 経由で SSH 接続を制御
- コマンド実行、ファイル操作、システムモニターに対応
- Claude などの AI アシスタントと連携可能
プロジェクト構成
iTerminal/
├── src/ # React 前端
│ ├── main.tsx # 应用入口
│ ├── App.tsx # 路由 + 布局
│ ├── components/ # 公共组件
│ │ ├── Sidebar.tsx # 侧边栏
│ │ ├── FileManagerPanel.tsx # 文件管理面板
│ │ ├── MonitorPanel.tsx # 系统监控面板
│ │ ├── SettingsPanel.tsx # 设置面板
│ │ └── fileManager/ # 文件管理子模块
│ ├── pages/ # 页面组件
│ │ ├── Terminal.tsx # 终端页面
│ │ ├── TerminalWindow.tsx # 新窗口终端
│ │ ├── Connections.tsx # 连接管理
│ │ └── Transfers.tsx # 传输管理
│ ├── stores/ # Zustand 状态管理
│ │ ├── terminalStore.ts # 连接/会话状态
│ │ └── transferStore.ts # 传输记录状态
│ ├── services/ # 服务层
│ │ ├── database.ts # 数据库服务
│ │ └── sftp.ts # SFTP 服务
│ ├── utils/ # 工具函数
│ │ ├── paneUtils.ts # 分屏工具
│ │ └── TerminalManager.ts # 终端管理
│ └── styles/ # 全局样式
│ └── global.css # xterm.js 样式覆盖
├── src-tauri/ # Rust 后端
│ ├── src/
│ │ ├── main.rs # Tauri 入口
│ │ ├── lib.rs # 模块声明
│ │ ├── db/ # 数据库
│ │ │ ├── schema.sql # 数据库结构
│ │ │ └── crypto.rs # 加密模块
│ │ └── commands/ # Tauri 命令
│ │ ├── ssh.rs # SSH 操作
│ │ ├── sftp.rs # SFTP 文件传输
│ │ ├── db.rs # 数据库操作
│ │ ├── api.rs # HTTP API 服务器
│ │ └── window.rs # 窗口管理
│ ├── Cargo.toml # Rust 依赖
│ ├── tauri.conf.json # Tauri 配置
│ └── capabilities/ # 权限配置
├── mcp/ # MCP 服务器
│ └── src/index.ts # MCP 工具定义
├── package.json # npm 依赖
├── vite.config.ts # Vite 配置
└── tsconfig.json # TypeScript 配置
セキュリティに関する注意事項
| リスク項目 | 現在の状態 | 推奨事項 |
|---|---|---|
| パスワードの保存 | AES-256-GCM で暗号化して保存 | 安全です |
| ホスト鍵の検証 | スキップされています | 今後のバージョンで known_hosts に対応予定です |
| 鍵認証 | 実装済み | 鍵認証の使用を推奨します |
| セッションタイムアウト | 自動ロックなし | 使用しない接続は手動で切断してください |
よくある質問
Q: サーバーに接続できませんか?
- ネットワーク接続を確認します
- SSH サービスが起動していることを確認します
- ユーザー名とパスワード/鍵を確認します
- ファイアウォールの設定を確認します
Q: Windows のパッケージ化に失敗しますか?
- Visual Studio Build Tools がインストールされていることを確認します
- 「Desktop development with C++」ワークロードを選択します
- WebView2 Runtime をインストールします
Q: macOS で開けないという警告が表示されますか?
- システム設定 → プライバシーとセキュリティ
- 「このまま開く」をクリックします
- または、次のコマンドを使用します:
xattr -cr iTerminal.app
Q: ターミナルの表示が文字化けしますか?
- サーバーの locale 設定を確認します
- ターミナルのフォントが UTF-8 に対応していることを確認します
- ターミナルのフォントを調整してみます
開発計画
実装済みの機能
- SSH 接続管理
- 複数セッションのターミナル
- ターミナル検索機能
- SFTP ファイル管理
- ファイルのアップロード/ダウンロード
- ドラッグ&ドロップでのアップロード
- sudo による権限昇格アップロード(権限不足時に自動で再試行)
- システムモニターパネル
- リモートファイルの圧縮/解凍
- 鍵認証
- パスワードの暗号化保存
- 接続のインポート/エクスポート
- 切断時の自動再接続
- ショートカットキーシステム
- 分割ターミナル
- ターミナルテーマの設定
- ファイルのプレビュー/編集(CodeMirror 6)
- ファイル検索
- 転送の一時停止/再開
- MCP サーバー(Token 認証 + SSE 転送 + ログシステム)
- マルチウィンドウ対応
- Docker 管理(コンテナー/イメージ/ログ/コンテナーターミナル)
- AI アシスタント(AI チャット + AI エージェント Agent)
- テーマの切り替え
- フォルダーのダウンロード
- 入力のブロードキャスト(複数の接続に同時入力)
- コマンドスニペットライブラリ(Pro)
- ポートフォワーディング(Pro)
実装予定の機能
- レジューム機能
- プロセス管理の強化
- 多言語対応
貢献ガイド
Issue と Pull Request の投稿を歓迎します!
- プロジェクトを Fork します
- 機能ブランチを作成します (
git checkout -b feature/AmazingFeature) - 変更をコミットします (
git commit -m 'Add some AmazingFeature') - ブランチにプッシュします (
git push origin feature/AmazingFeature) - Pull Request を作成します
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。