README.ja.md

June 3, 2026 · View on GitHub

OxideTerm

⚡ OxideTerm

リモートサーバー向けの AI-native ワークスペース。
SSH でサーバーに接続し、terminal、ファイル、ポート、転送、軽量編集、autonomous OxideSens サイドバーを 1 つの local-first アプリで扱えます。
ネイティブ Tauri アプリ · 純粋な Rust SSH · BYOK autonomous AI · コア SSH ワークフローにアカウント不要
Electron ゼロ。OpenSSL ゼロ。テレメトリゼロ。サブスクゼロ。BYOK-first。純粋な Rust SSH。

バージョン プラットフォーム ライセンス Rust Tauri 総ダウンロード数

最新版をダウンロード 最新Beta版をダウンロード

🌐 oxideterm.app — Documentation & website

English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Français | Deutsch | Español | Italiano | Português | Tiếng Việt

OxideTerm AI opening a terminal demo

OxideSens がユーザーの依頼に従い、OxideTerm 内でターミナルを開く様子です。


できること

  • SSH ターミナル、SFTP、ポートフォワーディング、帯域内転送、ローカル shell を並べて管理
  • Grace Period 再接続で、ネットワークが揺れても作業を続行
  • autonomous OxideSens サイドバーに、自分の AI provider 経由で live session の確認と承認済み workspace action の実行を任せる

なぜ OxideTerm なのか?

課題OxideTerm の回答
1 つのリモートノード、多数のツールターミナル、SFTP、ポートフォワーディング、trzsz、軽量 IDE、監視、autonomous OxideSens サイドバーが同じ SSH ワークスペースに結び付きます
Local-first な SSH ワークフローSSH、SFTP、フォワーディング、ローカル shell、設定管理はサインアップ不要。クラウド同期は公式プラグインで必要なときだけ有効化できます
プラットフォームクレジットではなく BYOK autonomous AIOxideSens は OpenAI/Ollama/DeepSeek/OpenAI 互換エンドポイントを使い、MCP、RAG、承認済み workspace action に対応します
再接続の安定性Grace Period が旧接続を 30 秒プローブしてから置き換えるため、短いネットワーク断でも vim/htop/yazi が生き残れます
純粋な Rust のネイティブアプリTauri 2.0 ネイティブアプリ、ring でコンパイルされた russh 0.59、Electron なし、OpenSSL/libssh2 なし
認証情報の安全性パスワードと API キーは OS キーチェーンに保存され、接続メタデータはローカルで保護され、.oxide は ChaCha20-Poly1305 + Argon2id で暗号化されます

何であり / 何ではないか

OxideTerm は リモートサーバー向け local-first AI workspace に集中しています。ターミナル、ファイル、ポート、転送、軽量編集、autonomous BYOK AI サイドバーを、自分のマシンとリモートノード中心に扱いたいユーザー向けです。

ホスト型クラウド Agent プラットフォームや、ターミナル描画ベンチマークだけを目的にしたプロジェクトではありません。方向性はより狭く、OxideTerm アカウントなしでリモート作業を 1 つのローカルワークスペースのように扱うことです。


スクリーンショット

SSH ターミナル + OxideSens AI

OxideSens AI サイドバー付き SSH ターミナル
SFTP ファイルマネージャー

転送キュー付き SFTP デュアルペインファイルマネージャー
内蔵 IDE(CodeMirror 6)

CodeMirror 6 エディター搭載の内蔵 IDE モード
スマートポートフォワーディング

自動検出付きスマートポートフォワーディング

ダウンロード

GitHub Releases から最新版をダウンロードしてください。


機能概要

カテゴリ機能
ターミナルローカル PTY(zsh/bash/fish/pwsh/WSL2)、SSH リモート、ローカルシリアル端末、分割ペイン、ブロードキャスト入力、セッション録画・再生(asciicast v2)、WebGL レンダリング、30 以上のテーマ + カスタムエディター、コマンドパレット(⌘K)、Zen モード、trzsz 帯域内ファイル転送
SSH と認証接続プーリングと多重化、ProxyJump(無制限ホップ)+トポロジーグラフ、Grace Period 付き自動再接続、Agent 転送。認証:パスワード、SSH キー(RSA/Ed25519/ECDSA)、SSH Agent、証明書、keyboard-interactive 2FA、Known Hosts TOFU
SFTPデュアルペインブラウザー、ドラッグ&ドロップ、スマートプレビュー(画像/動画/音声/コード/PDF/Hex/フォント)、進捗・ETA 付き転送キュー、ブックマーク、アーカイブ展開
IDE モードCodeMirror 6、30 以上の言語、ファイルツリー + Git ステータス、マルチタブ、競合解決、統合ターミナル。Linux 向けオプションのリモートエージェント(9 種の追加アーキテクチャ)
ポートフォワーディングLocal (-L)、Remote (-R)、Dynamic SOCKS5 (-D)、ロックフリーなメッセージパッシング I/O、再接続時の自動復元、停止報告、アイドルタイムアウト
AI(OxideSens)保存済み接続、ライブ SSH セッション、ターミナルバッファ、SFTP パス、設定、ナレッジベース項目を対象として扱う target-first アシスタント。OxideTerm アカウントなしで、リモート出力の診断、承認済みコマンドの実行、ファイル確認、障害説明ができます
プラグインランタイム ESM ローディング、18 の API 名前空間、24 の UI Kit コンポーネント、凍結 API + Proxy ACL、サーキットブレーカー、エラー時の自動無効化
CLIoxt コンパニオン:JSON-RPC 2.0 over Unix Socket / Named Pipe、status/health/list/forward/config/connect/focus/attach/SFTP/import/AI、ヒューマン & JSON 出力
セキュリティ.oxide 暗号化エクスポート(ChaCha20-Poly1305 + Argon2id 256 MB)、ローカル設定の保存時暗号化、OS キーチェーン、Touch ID(macOS)、ポータブル暗号化キーストア、ホストキー TOFU、zeroize メモリクリア
i18n11 言語:EN, 简体中文, 繁體中文, 日本語, 한국어, FR, DE, ES, IT, PT-BR, VI

技術的な詳細

OxideTerm の表面は local-first に保ちつつ、内部は SSH 多用ワークフロー向けに作っています。実装の詳細は、エンジニアリング面を読みたい人のために下に残しています。

アーキテクチャ、SSH 内部、再接続、AI、フォワーディング、プラグインなど

アーキテクチャ — デュアルプレーン通信

OxideTerm はターミナルデータとコントロールコマンドを 2 つの独立したプレーンに分離しています:

┌─────────────────────────────────────┐
│        Frontend (React 19)          │
│  xterm.js 6 (WebGL) + 19 stores     │
└──────────┬──────────────┬───────────┘
           │ Tauri IPC    │ WebSocket (binary)
           │ (JSON)       │ per-session port
┌──────────▼──────────────▼───────────┐
│         Backend (Rust)              │
│  NodeRouter → SshConnectionRegistry │
│  Wire Protocol v1                   │
│  [Type:1][Length:4][Payload:n]      │
└─────────────────────────────────────┘
  • データプレーン(WebSocket):各 SSH セッションが専用の WebSocket ポートを持ちます。ターミナルバイトは Type-Length-Payload ヘッダー付きのバイナリフレームとして転送されます — JSON シリアライズなし、Base64 エンコードなし、ホットパスのオーバーヘッドはゼロです。
  • コントロールプレーン(Tauri IPC):接続管理、SFTP 操作、フォワーディング、設定 — 構造化 JSON ですがクリティカルパスの外にあります。
  • ノードファーストアドレッシング:フロントエンドは sessionIdconnectionId を直接操作しません。すべてが nodeId で指定され、サーバーサイドの NodeRouter がアトミックに解決します。SSH 再接続で内部の connectionId が変わっても、SFTP、IDE、フォワードは一切影響を受けません。

🔩 純粋な Rust SSH — russh 0.59

SSH スタック全体が ring 暗号バックエンドでコンパイルされた russh 0.59 で構成されています:

  • C/OpenSSL 依存ゼロ — 暗号スタック全体が Rust 実装。「どのバージョンの OpenSSL?」というデバッグが不要。
  • 完全な SSH2 プロトコル:鍵交換、チャネル、SFTP サブシステム、ポートフォワーディング
  • ChaCha20-Poly1305 および AES-GCM 暗号スイート、Ed25519/RSA/ECDSA キー
  • カスタム AgentSigner:システム SSH Agent をラップし、russh の Signer トレイトを実装。.await をまたぐ際の RPITIT Send バウンド問題を、&AgentIdentity を所有値にクローンして解決
pub struct AgentSigner { /* wraps system SSH Agent */ }
impl Signer for AgentSigner { /* challenge-response via Agent IPC */ }
  • プラットフォーム対応:Unix(SSH_AUTH_SOCK)、Windows(\\.\pipe\openssh-ssh-agent
  • プロキシチェーン:各ホップが独立して Agent 認証を使用
  • 再接続AuthMethod::Agent が自動的にリプレイ

🔄 Grace Period 付きスマート再接続

多くの SSH クライアントは切断時にすべてを終了して最初からやり直します。OxideTerm の再接続オーケストレーターは根本的に異なるアプローチを取ります:

  1. 検出 WebSocket ハートビートタイムアウト(300 秒、macOS App Nap と JS タイマースロットリングに最適化)
  2. スナップショット 完全な状態を取得:ターミナルペイン、転送中の SFTP、アクティブなポートフォワード、開いている IDE ファイル
  3. インテリジェントプローブvisibilitychange + online イベントがプロアクティブな SSH keepalive をトリガー(受動的な 15〜30 秒のタイムアウトに対し約 2 秒で検出)
  4. Grace Period(30 秒):旧 SSH 接続を keepalive でプローブ — 回復すれば(例:WiFi AP 切替)、TUI アプリ(vim、htop、yazi)は完全に無傷のまま生存
  5. 回復に失敗した場合 → 新規 SSH 接続 → フォワードを自動復元 → SFTP 転送を再開 → IDE ファイルを再オープン

パイプライン:queued → snapshot → grace-period → ssh-connect → await-terminal → restore-forwards → resume-transfers → restore-ide → verify → done

すべてのロジックは専用の ReconnectOrchestratorStore を通じて実行されます — フックやコンポーネントに再接続コードは一切散在しません。

🛡️ SSH 接続プール

DashMap をバックエンドとした参照カウント方式の SshConnectionRegistry でロックフリーな並行アクセスを実現:

  • 1 接続、複数コンシューマー:ターミナル、SFTP、ポートフォワード、IDE が 1 本の物理 SSH 接続を共有 — 冗長な TCP ハンドシェイク不要
  • 接続ごとのステートマシンconnecting → active → idle → link_down → reconnecting
  • ライフサイクル管理:設定可能なアイドルタイムアウト(5 分 / 15 分 / 30 分 / 1 時間 / 無制限)、15 秒の keepalive 間隔、ハートビート障害検出
  • WsBridge ハートビート:30 秒間隔、5 分タイムアウト — macOS App Nap とブラウザの JS スロットリングに対応
  • カスケード伝播:ジャンプホスト障害 → すべての下流ノードが自動的に link_down に、ステータス同期
  • アイドル切断:フロントエンドに connection_status_changed を発行(内部の node:state だけではない)、UI の非同期を防止

🤖 OxideSens AI

プライバシーファーストの AI アシスタント、デュアルインタラクションモード:

  • インラインパネル⌘I):素早いターミナルコマンド、出力はブラケットペーストで挿入
  • サイドバーチャット:完全な履歴付きの永続的な会話
  • Target-first ワークスペースコンテキスト:保存済み接続、ライブ SSH セッション、ターミナルバッファ、SFTP パス、設定、ナレッジベース項目をワークスペース対象として扱います
  • 承認済みアクション:OxideTerm アカウントなしで、リモート出力の診断、承認済みコマンドの実行、ファイル確認、障害説明ができます
  • MCP サポート:外部 Model Context Protocol サーバー(stdio & SSE)を接続してサードパーティツールを統合
  • RAG ナレッジベース(v0.20):Markdown/TXT ドキュメントをスコープ付きコレクション(グローバルまたは接続単位)にインポート。Reciprocal Rank Fusion で BM25 キーワードインデックス + ベクトルコサイン類似度のハイブリッド検索を融合。Markdown 対応のチャンキングで見出し階層を保持。CJK バイグラムトークナイザーで中国語/日本語/韓国語に対応。
  • プロバイダー:OpenAI、Ollama、DeepSeek、OneAPI、または任意の /v1/chat/completions エンドポイント
  • セキュリティ:API キーは OS キーチェーンに保存、macOS ではキー読み取りは LAContext 経由の Touch ID で認証ゲート — エンタイトルメントやコード署名は不要、セッションごとに初回認証後キャッシュ

ポートフォワーディング — ロックフリー I/O

完全な Local (-L)、Remote (-R)、Dynamic SOCKS5 (-D) フォワーディング:

  • メッセージパッシングアーキテクチャ:SSH Channel は単一の ssh_io タスクが所有 — Arc<Mutex<Channel>> なし、ミューテックス競合を完全に排除
  • 停止報告:フォワードタスクが終了理由(SSH 切断、リモートポートクローズ、タイムアウト)を能動的に報告し、明確な診断を提供
  • 自動復元Suspended 状態のフォワードは再接続時にユーザー操作なしで自動再開
  • アイドルタイムアウトFORWARD_IDLE_TIMEOUT(300 秒)でゾンビ接続の蓄積を防止

📦 trzsz — 帯域内ファイル転送

SFTP 接続不要で、SSH ターミナルセッションを通じて直接ファイルをアップロード・ダウンロード:

  • 帯域内プロトコル:ファイルは既存のターミナルストリーム内で Base64 エンコードフレームとして転送——追加ポートやエージェント不要で ProxyJump チェインや tmux を透過的に通過
  • 双方向転送:サーバーが tsz <file> を実行してクライアントへ送信;trz でクライアントアップロードを開始;ドラッグ&ドロップ対応
  • ディレクトリ対応trz -d / tsz -d による再帰的ディレクトリ転送
  • 転送制限:セッションごとにチャンクサイズ、ファイル数、総バイト数の上限を設定可能
  • ネイティブ Tauri I/O:ファイルの読み書きは Tauri ネイティブファイルダイアログと Rust I/O を使用——ブラウザのメモリ制限なし
  • リアルタイム通知:転送開始・完了・キャンセル・エラーの Toast 通知——trzsz を検出したが機能が無効の場合もヒントを表示
  • 設定 → ターミナル → 帯域内転送 で有効化

🔌 ランタイムプラグインシステム

セキュリティ強化された凍結 API サーフェスを持つ動的 ESM ローディング:

  • PluginContext API:18 の名前空間 — terminal、ui、commands、settings、lifecycle、events、storage、system
  • 24 の UI Kit コンポーネント:プラグインサンドボックスに window.__OXIDE__ 経由で注入されるビルド済み React コンポーネント(ボタン、入力、ダイアログ、テーブル…)
  • セキュリティメンブレン:すべてのコンテキストオブジェクトに Object.freeze、Proxy ベースの ACL、IPC ホワイトリスト、繰り返しエラー時の自動無効化付きサーキットブレーカー
  • 共有モジュール:React、ReactDOM、zustand、lucide-react がプラグイン用に公開され、重複バンドルを回避

⚡ アダプティブレンダリング

固定の requestAnimationFrame バッチ処理を置き換える 3 段階レンダースケジューラー:

ティアトリガーレート効果
Boostフレームデータ ≥ 4 KB120 Hz+(ProMotion ネイティブ)cat largefile.log でのスクロールラグを排除
Normal通常のタイピング60 Hz(RAF)スムーズなベースライン
Idle3 秒間 I/O なし / タブ非表示1〜15 Hz(指数バックオフ)GPU 負荷ほぼゼロ、バッテリー節約

遷移は完全に自動 — データ量、ユーザー入力、Page Visibility API に基づいて駆動。バックグラウンドタブは RAF を起動せずアイドルタイマーでデータをフラッシュし続けます。

🔐 .oxide 暗号化エクスポート

ポータブルで改ざん防止の接続バックアップ:

  • ChaCha20-Poly1305 AEAD 認証付き暗号化
  • Argon2id KDF:メモリコスト 256 MB、4 イテレーション — GPU ブルートフォース耐性
  • SHA-256 整合性チェックサム
  • オプションの鍵埋め込み:秘密鍵を Base64 エンコードして暗号化ペイロードに含める
  • プリフライト分析:認証タイプの内訳、エクスポート前の不足キー検出

📡 ProxyJump — トポロジー対応マルチホップ

  • 無制限のチェーン深度:Client → Jump A → Jump B → … → Target
  • ~/.ssh/config を自動解析、トポロジーグラフを構築、Dijkstra 経路探索で最適ルートを決定
  • ジャンプノードを独立セッションとして再利用可能
  • カスケード障害伝播:ジャンプホストのダウン → すべての下流ノードを自動的に link_down に設定

⚙️ ローカルターミナル — スレッドセーフ PTY

portable-pty 0.8 によるクロスプラットフォームローカルシェル、local-terminal フィーチャーゲート:

  • MasterPtystd::sync::Mutex でラップ — 専用 I/O スレッドでブロッキング PTY 読み取りを Tokio イベントループから分離
  • シェル自動検出:zshbashfishpwsh、Git Bash、WSL2
  • cargo build --no-default-features で PTY を除外し、モバイル/軽量ビルドに対応

🪟 Windows 最適化

  • ネイティブ ConPTY:Windows Pseudo Console API を直接呼び出し — フル TrueColor と ANSI サポート、レガシー WinPTY 不要
  • シェルスキャナー:レジストリと PATH から PowerShell 7、Git Bash、WSL2、CMD を自動検出

その他の機能

  • IDE モード:SFTP 経由の CodeMirror 6、24 言語、Git ステータス付きファイルツリー、マルチタブ、競合解決——Linux では機能強化のためオプションのリモートエージェント(~1 MB)が利用可能
  • リソースプロファイラー:永続 SSH チャネルで /proc/stat を読み取り、デルタベース計算でリアルタイム CPU/メモリ/ネットワーク監視、非 Linux では RTT のみに自動縮退
  • カスタムテーマエンジン:30 以上の内蔵テーマ、ライブプレビュー付きビジュアルエディター、20 の xterm.js フィールド + 24 の UI カラー変数、ターミナルパレットから UI カラーを自動導出
  • セッション録画:asciicast v2 形式、完全な録画と再生
  • ブロードキャスト入力:一度入力するとすべての分割ペインに送信 — バッチサーバー操作
  • 背景ギャラリー:タブごとの背景画像、16 のタブタイプ、不透明度/ぼかし/フィットコントロール
  • CLI コンパニオンoxt):約 1 MB のバイナリ、JSON-RPC 2.0 over Unix Socket / Named Pipe、status/health/list/forward/config/connect/focus/attach/SFTP/import/AI をヒューマンまたは --json 出力
  • WSL Graphics ⚠️ 実験的:内蔵 VNC ビューア — 9 つのデスクトップ環境 + 単一アプリモード、WSLg 検出、Xtigervnc + noVNC

公式プラグイン

プラグイン説明リポジトリ
Cloud Sync暗号化セルフホスト同期 — WebDAV、HTTP JSON、Dropbox、Git、S3 経由で .oxide スナップショットのアップロード・インポートoxideterm.cloud-sync
Telnet Clientルーター、スイッチ、レガシーデバイス向けのネイティブTelnetクライアント — 外部バイナリ不要oxideterm.telnet
📸 11 言語の実動作

English

简体中文

繁體中文

日本語

한국어

Français

Deutsch

Español

Italiano

Português

Tiếng Việt

ランタイム要件

OxideTerm は OS が提供するネイティブ WebView ランタイムを使用します。ほとんどの環境ではすでにインストール済みです。アプリが起動しない場合やエアギャップ環境の場合のみ、手動でインストールしてください。

プラットフォームランタイム依存関係
WindowsWebView2 ランタイム — Windows 10(1803+)および Windows 11 にはプリインストール済み。エアギャップ / イントラネット環境では、Evergreen スタンドアロンインストーラー(オフライン、約 170 MB)を使用するか、グループポリシーで固定バージョンランタイムをデプロイしてください。
macOSなし(ネイティブ WebKit を使用)
Linuxlibwebkit2gtk-4.1(モダンなデスクトップでは通常プリインストール済み)

ポータブルモード

OxideTerm は完全に自己完結型のポータブルモードをサポートしています——すべてのデータ(接続、シークレット、設定)がアプリケーションバイナリの横に保存され、USB ドライブやエアギャップ環境に適しています。

有効化方法

方法 A — マーカーファイル(最も簡単):アプリの横に portable という名前の空ファイル(拡張子なし)を作成します。

プラットフォームportable ファイルの配置場所
macOSOxideTerm.app の横(同階層ディレクトリ)
WindowsOxideTerm.exe の横
Linux (AppImage).AppImage ファイルの横
/my-usb/
├── OxideTerm.app   (or .exe / .AppImage)
├── portable        ← 作成する空ファイル
└── data/           ← 初回起動時に自動作成

方法 B — portable.json(カスタムデータディレクトリ):同じ場所に portable.json を配置します:

{
  "enabled": true,
  "dataDir": "my-data"
}
  • enabled は省略時デフォルトで true
  • dataDir相対パスである必要があります(.. は使用不可);省略時デフォルトは data

動作の仕組み

  1. 初回起動 — ブートストラップ画面でポータブルパスワードの作成が求められます。このパスワードでローカルキーストア(ChaCha20-Poly1305 + Argon2id)を暗号化し、すべての保存済みシークレットを保護します。
  2. 次回以降の起動 — パスワードを入力してロック解除します。Touch ID 対応の macOS では、Settings → General → Portable Runtime で生体認証ロック解除をオプションで有効にできます。
  3. インスタンスロック — 同時に 1 つの OxideTerm インスタンスのみがポータブルデータディレクトリを使用できます(data/.portable.lock)。
  4. 管理Settings → General → Portable Runtime でポータブルパスワードの変更や生体認証ロック解除の切り替えができます。
  5. ポータビリティ — フォルダ全体(アプリ + portable マーカー + data/)を別のマシンにコピーするだけで使えます。パスワードはキーストアと一緒に携帯されます。

Tip

ポータブルモードでは自動更新は無効です。更新するには、data/ ディレクトリを保持したままアプリケーションバイナリを置き換えてください。


クイックスタート

前提条件

  • Rust 1.85 以上
  • Node.js 18 以上(pnpm 推奨)
  • プラットフォームツール
    • macOS:Xcode コマンドラインツール
    • Windows:Visual Studio C++ ビルドツール
    • Linux:build-essentiallibwebkit2gtk-4.1-devlibssl-dev

開発

git clone https://github.com/AnalyseDeCircuit/oxideterm.git
cd oxideterm && pnpm install

# CLI コンパニオンをビルド(CLI 機能に必要)
pnpm cli:build

# フルアプリ(フロントエンド + Rust バックエンド、ホットリロード付き)
pnpm run tauri dev

# フロントエンドのみ(Vite、ポート 1420)
pnpm dev

# プロダクションビルド
pnpm run tauri build

テックスタック

レイヤーテクノロジー詳細
フレームワークTauri 2.0ネイティブバイナリ、25〜40 MB
ランタイムTokio + DashMap 6完全非同期、ロックフリー並行マップ
SSHrussh 0.59(ring純粋な Rust、C 依存ゼロ、SSH Agent
ローカル PTYportable-pty 0.8フィーチャーゲート、Windows は ConPTY
フロントエンドReact 19.1 + TypeScript 5.8Vite 7、Tailwind CSS 4
状態管理Zustand 519 の専用ストア
ターミナルxterm.js 6 + WebGLGPU アクセラレーション、60fps 以上
エディターCodeMirror 630 以上の言語モード
暗号化ChaCha20-Poly1305 + Argon2idAEAD + メモリハード KDF(256 MB)
ストレージredb 2.1組込み KV ストア
i18ni18next 2511 言語 × 22 名前空間
プラグインESM ランタイム凍結 PluginContext + 24 UI Kit
CLIJSON-RPC 2.0Unix Socket / Named Pipe

プロジェクト規模

依存関係とビルド成果物を除外して tokei で計測しています。

指標現在の規模
総コード量286K+
TypeScript / TSX130K+
Rust100K+
フロントエンドテストコード24K+
フロントエンドテストファイル128
ソースファイル(src + src-tauri/src664

セキュリティ

項目実装
パスワードOS キーチェーン(macOS Keychain / Windows Credential Manager / libsecret)
ポータブルキーストアChaCha20-Poly1305 暗号化ボールト(アプリの横に配置)、OS キーチェーン経由で生体認証バインドがオプション
AI API キーOS キーチェーン + macOS での Touch ID 生体認証ゲート
エクスポート.oxide:ChaCha20-Poly1305 + Argon2id(メモリ 256 MB、4 イテレーション)
メモリRust メモリ安全性 + 機密データの zeroize クリア
ホストキー~/.ssh/known_hosts による TOFU、変更検出で拒否(MITM 防止)
プラグインObject.freeze + Proxy ACL、サーキットブレーカー、IPC ホワイトリスト
WebSocket時間制限付きシングルユーストークン

ロードマップ

  • SSH Agent フォワーディング
  • 完全な ProxyCommand サポート
  • 監査ログ
  • Agent 機能強化
  • セッション検索とクイック切替
  • GPUI(ZedのGPUアクセラレーションフレームワーク)によるRustネイティブ移行 — [進行中]

サポートとメンテナンス

OxideTerm は個人開発者によりベストエフォートでメンテナンスされています。バグ報告と再現可能なリグレッションを優先して対応します。機能リクエストは歓迎しますが、必ず実装されるとは限りません。

OxideTerm があなたのワークフローに役立ったなら、GitHub スター、再現手順、翻訳修正、プラグイン、Pull Request のいずれもプロジェクトを前に進める助けになります。


ライセンス

GPL-3.0 — 本ソフトウェアは GNU 一般公衆利用許諾書 v3.0 のもとで公開されているフリーソフトウェアです。

GPL-3.0 の条件のもとで、本ソフトウェアを自由に使用、修正、配布できます。派生物は同じライセンスのもとで配布する必要があります。

OxideTerm は v1.0.0 から PolyForm Noncommercial 1.0.0 から GPL-3.0 に切り替わりました。この移行は意図的です。非商用トラップや競業禁止条項を抱えた「オープンソースごっこ」ではなく、ユーザー、fork、再配布者、商用運用者に明確な copyleft の自由を提供するためです。

コードが公開されているだけでは、自動的にオープンソースとは言えません。よく知られたオープンソースライセンスを掲げながら、「再配布禁止」「再パッケージ禁止」「競合製品禁止」「未承認プラットフォームでの配布禁止」といった追加条項を重ねるなら、それはユーザーが期待するオープンソースの自由ではなく、source-available の看板に近いものです。OxideTerm は競業禁止や反再配布の追加条項を加えません。GPL-3.0 の条項がすべてです。

全文:GNU 一般公衆利用許諾書 v3.0


謝辞

russh · portable-pty · Tauri · xterm.js · CodeMirror · Radix UI


286,000 行以上のコード — ⚡ と ☕ で構築

Star History

Star History Chart