s-gw について
s-gwはコーディングエージェント向けのローカル認証情報管理ツールです。操作を個別に承認し、許可されたローカルプロセスだけに認証情報を渡して、秘匿情報を除いた出力と監査記録を提供します。
主な機能
- 01操作ごとのローカル承認
- 02範囲を限定した認証情報注入
- 03コマンド出力の検査と秘匿化
- 04ポリシーと実行の監査記録
- 05複数エージェントの設定
活用シーン
- 01認証情報が必要なコマンドの実行許可
- 02認証情報アクセス要求の確認
- 03監査記録による利用状況の調査
MCP 対応
stdio MCP サーバーを通じて、エージェントは認証情報ハンドルの検索とアクセス要求の作成を行えます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
10掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| path | string | はい | |
| persist | boolean | いいえ |
詳細
s-gw
コーディングエージェントのためのローカルな認証情報制御。
範囲を限定した操作をローカルで承認します。生の認証情報をモデルのコンテキストやツールの出力に含めません。
デモ · ダウンロード · クイックスタート · ドキュメント · セキュリティ · コントリビューション
生の認証情報をコーディングエージェントに渡すのはやめましょう。s-gw では、エージェントに型付きハンドルを提供し、範囲を限定したローカル操作についてユーザーの承認を求めます。認証情報はユーザーのマシン上の制約されたプロセス内で解決され、シークレットの値ではなくサニタイズされた出力を返します。
重要
s-gw は初期プレビュー版です。ストレージ形式やインターフェースは変更される可能性があり、Windows と Linux のデスクトップサポートはまだ実験段階です。また、プロジェクトは独立したセキュリティ監査を完了していません。現時点では、エンドポイントセキュリティや堅牢化されたエンタープライズ向けシークレットプラットフォームの代替として扱わないでください。
このリポジトリ内の TypeScript ブローカー、クライアント、ドキュメントは Apache-2.0 ライセンスです。配布パッケージには、ソースコードを別途管理しているプロプライエタリなコンパイル済み Rust 実行コアも含まれます。
概要
- エージェントに見えるもの:
s-gw:credential:prod-readonly - ユーザーが承認するもの: エージェント、コマンド、ハンドル、環境バインディング、作業ディレクトリ、ターゲット
- s-gw が実行するもの: 認証情報をその子プロセスにのみ注入して、コマンドをローカルで実行します
- エージェントが受け取るもの: サニタイズされた出力と監査証跡。生のシークレットは受け取りません
s-gw がエージェントのワークフローに役立ったら、プロジェクトにスターを付けてください。プレビュー版をより多くの開発者に知ってもらう助けになります。
実際の動作を見る
ローカルコンソールでは、シークレットの値を公開することなく、承認キュー、認証情報の一覧、ポリシーの状態、使用の流れ、アクティビティ履歴を確認できます。

公開デモ:s-gw.com。
できること
| 統制 | 承認 | 実行 | 監査 |
|---|---|---|---|
| シークレットを、エージェントが安全に参照できる型付きのローカルハンドルに変換します。 | アクセスを許可する前に、要求元のエージェント、ハンドル、コマンド、環境バインディング、作業ディレクトリ、ターゲットを確認します。 | 同じマシン上の承認済みの子プロセスにのみ認証情報を注入します。 | 返された生のシークレットを保存せず、要求、承認、実行、ポリシー、接続先の証跡を記録します。 |
チームで利用される理由
- ローカルでの保管: 生の値は、macOS Keychain、Linux Secret Service、Windows Credential Manager、1Password、または暗号化されたローカル台帳に保存されます。
- 操作単位のアクセス: 許可は、エージェント、ハンドル、コマンド、環境変数、作業ディレクトリ、対象、承認モード、および任意の時間枠にひも付けられます。
- 使いやすいハンドル: エージェントは、キー、パスワード、トークン、SSH 情報を見ることなく、安定したハンドル名を使って実際の作業を依頼できます。
- 出力のサニタイズ: コマンド出力はエージェントに返される前にスキャンされ、検出された認証情報の値がハンドルに置き換えられます。
- エージェントに合わせたセットアップ: Codex、Claude Code、Cursor、OpenCode、Gemini CLI、GitHub Copilot、VS Code、その他の MCP クライアントには、プロファイルに応じた設定が提供されます。
- ローカルのオペレーター UI: ネイティブのデスクトップアプリ、トレイまたはメニューヘルパー、CLI、Web コンソールで、承認、認証情報の一覧、ポリシー、利用状況の流れ、アクティビティ、監査履歴を確認できます。
仕組み
flowchart LR
A["Coding agent"] -->|"Handle + action request"| G["s-gw local gateway"]
G --> U["Local approval"]
U --> R["Constrained runner"]
K[("Keychain / Credential Manager / encrypted store")] --> R
R -->|"Sanitized output"| G
G --> A
エージェントがロック解除用のパスフレーズや生の認証情報を必要とすることはありません。承認はストアへの一般的なアクセスを許可するのではなく、依頼された操作に限定されます。
主なインターフェース
| インターフェース | 目的 |
|---|---|
s-gw CLI | セットアップ、認証情報の登録、承認、ポリシー、エージェント用スニペット、ガードモード、診断。 |
s-gw-mcp / s-gw mcp | エージェント向けのハンドル検出とリクエスト作成を行う Stdio MCP サーバー。 |
| ネイティブ macOS アプリ | 承認キュー、認証情報の一覧、ポリシールール、利用状況の流れ、アクティビティ、監査の確認。 |
| Windows および Linux デスクトップアプリ | ネイティブウィンドウ、トレイ操作、バンドルされたローカルランタイムを備えた、インストール可能なプレビューアプリ。 |
| メニューバーヘルパー | 保留中の承認とローカルデーモンの状態をすばやく確認できます。 |
| ローカル Web コンソール | 127.0.0.1 にバインドされたブラウザー用の代替手段です。デスクトップアプリを実行できない場合も利用できます。 |
| ガードモード | 認証情報と思われる環境変数の値を s-gw ハンドルに置き換えてエージェントを起動します。 |
クイックスタート
macOS、Windows 10/11、Linux では、公開 npm パッケージを使ったインストールを推奨します。Node.js 20 以降をインストールしてから、次を実行してください。
npm install -g @s-gw/s-gw
s-gw setup
s-gw status
Windows では、PowerShell で同じコマンドを実行してください。Windows のサポートはプレビュー版です。npm パッケージは TypeScript の実行パスを使用し、PowerShell クライアント、トレイヘルパー、ローカル Web コンソールが含まれています。
Linux では、最初に secret-tool をインストールしてください(Ubuntu/Debian の場合は sudo apt install libsecret-tools)。ロック解除済みのデスクトップ Secret Service が、通常の永続的なロック解除プロバイダーです。s-gw setup は、グラフィカルセッション用にユーザーレベルの systemd --user コンソールサービスもインストールして起動します。Secret Service のないヘッドレスホストでは、s-gw setup --no-service --no-open-app とともに SGW_MASTER_PASSPHRASE を明示的に指定できます。ただし、s-gw がこの値をユニットファイルやバックグラウンドサービスの環境にコピーすることはありません。
Windows x64 と Linux x64 では、インストール可能なデスクトップアプリのビルドも利用できます。Rust アプリは管理インターフェースをネイティブウィンドウに直接描画し、ブラウザー、WebView、localhost ページは埋め込みません。固定バージョンの Node ランタイムと s-gw CLI を同梱しているため、インストール済みアプリの実行にホスト側の Node.js や npm は必要ありません。ネイティブ実行ファイルがインストールされている場合、s-gw app open はそれを使用します。別個のループバックブラウザー用代替手段を明示的に起動して開くには、s-gw app open --browser を使用してください。
これらの Windows NSIS パッケージと Linux Debian パッケージは、現在、署名なしの CI プレビュー版であり、サポート対象の一般公開リリースではありません。Windows で WebView2 は不要です。Linux ではグラフィカルセッションと、ロック解除済みの Secret Service キーリングが必要です。Debian パッケージでは、GTK 3、AppIndicator、libxdo、libsecret-tools のランタイム依存関係が宣言されています。ビルドとインストールの詳細については、デプロイとパッケージングを参照してください。
Apple Silicon 搭載 Mac 向けのデスクトップバンドルとして、GitHub Releases では自己完結型の s-gw.dmg も提供しています。s-gw.app を Applications にドラッグし、開いてセットアップを完了してください。アプリには独自の Node ランタイム、CLI、MCP サーバー、ネイティブヘルパー、メニューバーヘルパーが含まれており、ホストに Node.js や npm は不要です。アプリが /Applications または ~/Applications に配置されるまで、セットアップは意図的にブロックされます。
署名されていない DMG では、Gatekeeper の例外設定が必要です。この例外設定を使用したくない場合は、上記の npm インストールをご利用ください。
公開ソースでは、TypeScript 互換パスと、ネイティブ描画を使用する Windows/Linux 向け Rust デスクトップアプリをビルドできます。ネイティブ macOS サーフェスのビルドには、Swift ツールチェーンも必要です。Windows と Linux のデスクトップビルドには、Rust と、各プラットフォームで一般的に使用されるネイティブのグラフィックスおよびトレイ開発ライブラリが必要です。メンテナー向けリリースビルドには、プライベートな Rust コアのチェックアウトへのアクセスも必要です。
Apple Silicon 搭載 Mac 向け DMG は、自己完結型のデスクトップ版です。公開されている macOS DMG は、Developer ID で署名されて公証済みであるか、署名されていないことが明記されています。署名されていないビルドでは Gatekeeper の例外設定が必要ですが、標準のリリースタグとアップデート経路は維持されます。ローカルの npm run build:installers の出力には、ローカルでの検証用にアドホック署名が施されます。npm パッケージが主要なインストール方法で、Apple Silicon 搭載 Mac 向けのネイティブアプリ、メニューヘルパー、Keychain ヘルパー、メタデータ専用の Keychain インスペクター、Rust コアが含まれます。一致するネイティブコアがパッケージに含まれていない場合、Linux と Windows では TypeScript の実行パスを使用します。Intel Mac では、現時点でネイティブの Keychain サーフェスとデスクトップサーフェスをソースからビルドする必要があります。arm64 のみ対応するパッケージ済みヘルパーは、起動前に拒否されます。
git clone https://github.com/sgateway/s-gw.git
cd s-gw
npm ci
npm run build
npm link
s-gw setup
s-gw status
s-gw setup は、ローカルのロック解除情報を生成してオペレーティングシステムの資格情報ストアに保存し、暗号化された台帳を初期化して、現在のプラットフォームで利用可能なローカル UI サーフェスを起動し、検出された対応エージェントに安全に接続します。自己完結型の macOS アプリと Windows/Linux デスクトッププレビューは、バンドルされたランタイムを配置先で実行します。npm インストールでは、軽量な macOS アプリを /Applications にコピーし、必要に応じて ~/Applications にフォールバックします。セットアップでは既存のエージェント設定をバックアップし、無関係な設定を保持し、対応している場合はパッケージ済みの s-gw スキルをインストールして、エージェントごとの競合を報告します。エージェント登録をスキップするには --no-agents を使用してください。
チャットやプロセス引数に値を含めずに、ターミナルから資格情報を追加します。
printf '%s' "$MY_API_TOKEN" | s-gw secret add-keychain \
--name demo-token \
--type api-token \
--value-stdin \
--inject-env API_TOKEN \
--allow-command "$(command -v printenv)"
次に、秘密情報を含まないハンドルのメタデータを確認します。
s-gw secret list
end-to-end trust loop では、実際の資格情報に触れることなく、使い捨てリクエスト、ローカルでの承認、実行、出力のサニタイズまでを一通り確認できます。
信頼ループを試す
使い捨てのローカルトークンで、一連のフローを確認します。
printf '%s' 'demo-secret-value' | s-gw secret add-keychain \
--name demo-printenv-token \
--type api-token \
--value-stdin \
--inject-env DEMO_TOKEN \
--allow-command "$(command -v printenv)"
s-gw request env-command <returned-handle> \
--command "$(command -v printenv)" \
--inject-env DEMO_TOKEN
s-gw approve <request-id>
s-gw execute <request-id>
実行出力には demo-secret-value ではなく、ハンドルトークンが表示されます。
エージェント連携
既知のエージェントプロファイルを一覧表示し、1 つのクライアント向けに設定を出力します。
s-gw agent list
s-gw agent mcp-snippet codex
s-gw agent mcp-snippet claude-code
s-gw agent mcp-snippet opencode
検出された接続を確認または管理します。
s-gw agent status
s-gw agent install codex --dry-run
s-gw agent install codex
s-gw agent uninstall codex
手動プロファイルと、安全なマージ手段がない設定形式では、引き続き生成されたスニペットを使用します。npm のインストール自体がエージェント設定を編集することはありません。
s-gw setup は、macOS、Windows、Linux で検出された Claude Code、Codex、Cursor、Gemini CLI、GitHub Copilot CLI、OpenCode、およびデフォルトプロファイルの VS Code インストールを安全に管理できます。Windows では、npm の .cmd シムではなく node.exe を介して、パッケージ済みの MCP サーバーを起動します。
CLI エージェントでは、エージェントの起動前に、ガードモードで資格情報らしき値を含む起動時の環境変数を s-gw のハンドルに置き換えられます。
s-gw run codex --dry-run -- -v
s-gw run codex -- --ask-for-approval never
MCP 登録は、すべてのプロンプト、ファイル読み取り、シェル、環境変数をインターセプトするものではありません。対応する経路と現在の制限については、エージェント連携とエージェントプロファイル一覧表をご覧ください。
リクエストフローの例
- エージェントが
s-gw:credential:prod-readonlyを確認し、aws sts get-caller-identityの実行を要求します。 - s-gw は、エージェント名、コマンド、ハンドル、環境の紐付け、作業ディレクトリ、対象、ポリシーの判定結果を含む保留中のリクエストを作成します。
- 1 回限り、一定時間、ログインセッション中のいずれかで承認するか、拒否します。
- s-gw は、要求された環境変数に認証情報を注入して、承認済みのローカルプロセスを開始します。
- s-gw は、プロセスの出力をエージェントに返す前にスキャンします。
モデルは、生のアクセスキーを受け取ることなくタスクを完了できます。
プラットフォームの状況
| プラットフォーム | 状況 | 認証情報ストア | ユーザーインターフェイス |
|---|---|---|---|
| Apple Silicon 搭載 macOS 14 以降 | 主要な開発プラットフォーム | Keychain | ネイティブアプリ、メニューヘルパー、ローカル Web コンソール |
| Intel 搭載 macOS 14 以降 | ソースからビルド可能な候補。QA テスト未実施 | ソースからビルドした Keychain ヘルパー | ソースからビルドしたネイティブ画面またはローカル Web コンソール |
| Windows 10/11 x64 | 署名なしのデスクトッププレビュー | Credential Manager | ネイティブデスクトップアプリとトレイ、PowerShell クライアントとブラウザーの代替手段 |
| Linux x64 デスクトップ | 署名なしのデスクトッププレビュー | Secret Service。明示的な環境変数へのフォールバックあり | ネイティブデスクトップアプリとトレイ、systemd ユーザーサービスとブラウザーの代替手段 |
| Linux arm64 | npm プレビュー | Secret Service。明示的な環境変数へのフォールバックあり | systemd ユーザーサービスとブラウザーの代替手段 |
公開されている Apple Silicon macOS DMG は自己完結型です。署名用の認証情報が利用できる場合、リリースには Developer ID 署名と公証が行われます。利用できない場合は、Gatekeeper の上書きが必要であることがリリースノートと DMG の README に記載されます。Windows NSIS および Linux Debian デスクトップパッケージは、現在、署名なしの CI アーティファクトであり、サポート対象のリリースダウンロードとしてはアップロードされていません。対象の OS 上で npm run build:desktop-app を実行してビルドしてください。既存のリリースアーティファクトは npm run build:installers でビルドできます。
セキュリティモデル
s-gw は、コーディングエージェントへの認証情報の意図しない露出を抑えるよう設計されています。侵害された OS アカウント、悪意のある承認済み実行ファイル、画面キャプチャ、カーネルレベルのアクセス、またはシークレットから変換されたすべての派生情報に対する保護を提供するものではありません。
機密性の高いワークフローで s-gw を利用する前に、脅威モデルをお読みください。脆弱性が疑われる場合は、公開 Issue ではなくGitHub の非公開脆弱性報告から報告してください。
プロジェクトの状況
- 公開されているブローカーとクライアントのソース配布はプレビュー品質です。コンパイル済みの Rust 実行コアはプロプライエタリです。
- macOS は主要な開発・テストプラットフォームです。
- Windows Credential Manager のサポートと Windows x64 デスクトップアプリは利用可能ですが、より広範なネイティブ QA とコード署名が必要です。
- Linux は、永続的なロック解除情報の保存に Secret Service を使用し、強化された systemd ユーザーサービスを利用します。Linux x64 デスクトップアプリは署名なしのプレビューです。環境変数によるロック解除は、永続化されないヘッドレス環境向けのフォールバックに限られます。
- Windows と Linux のデスクトップインストーラーは、署名され、サポート対象のシステムで検証されるまでは CI プレビューです。Developer ID 署名なしの macOS リリースには、リリースノートで署名なしと明記され、Gatekeeper の上書きが必要です。
- リポジトリはオープンソースでの共同作業に対応していますが、セキュリティに関わる変更には、動作に変更がある場合、対象を絞ったテストと脅威モデルの更新を含める必要があります。
ドキュメント
- ドキュメントの一覧
- クイックスタートと信頼ループのデモ
- Anthropic のサンドボックスと所有接続
- アーキテクチャ
- 脅威モデル
- エージェント連携
- 認証情報ストアと 1Password
- デプロイとパッケージ化
- サードパーティのアセットとライセンス
コントリビューション
Issue と目的を絞ったプルリクエストを歓迎します。CONTRIBUTING.md から始め、good first issue を確認してください。認証情報が漏えいする可能性がある場合や、承認を回避する場合は SECURITY.md をご利用ください。
ローンチ、記事、またはコミュニティへの投稿を計画していますか?docs/community-launch.md のメンテナー向けメモを参考にすると、公開時の表現を一貫性のある誠実なものに保てます。
ライセンス
このリポジトリのソースコードは Apache-2.0 です。LICENSE と NOTICE をご覧ください。別途保守されている Rust コアとそのコンパイル済みバイナリはプロプライエタリであり、Apache-2.0 のライセンス対象ではありません。サードパーティの名称およびアートワークは各所有者に帰属し、TRADEMARKS.md とサードパーティに関する通知に記載されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。