このプロジェクトについて

Gateshipは、コーディングエージェント向けのローカルソフトウェア・デリバリーランタイムです。オペレーターがタスクを定義すると、Gateshipは分離されたGitワークツリーを割り当て、選択されたローカルのClaude CodeまたはCodexクライアントを実行し、タスクに記述された検証コマンドを確認し、独立した読み取り専用レビューアに変更を検査させ、最終的にsquashマージされたプルリクエストを通じて結果をリリースします。本製品はウェブファーストかつローカルファーストであり、Bunが127.0.0.1でインターフェースを提供し、SQLiteが実行状態とアクティビティを保存します。実行パスにターミナルのキーストロークやtmuxセッションは介在しません。 要件と認証情報の取り扱い。ホストのポータビリティが必要な場合は、WindowsおよびmacOSではDocker Desktop、LinuxではComposeプラグイン付きのDocker Engineでのインストールが推奨されており、イメージにはプロバイダーおよびGitHub CLIが含まれています。macOSおよびLinuxのネイティブインストールでは、サブスクリプションログイン済みのClaude Codeおよび/またはCodex CLIに加え、gh auth login --webおよびgh auth setup-gitを通じて認証されたGitHub CLIが必要です。ソースから実行する場合のみBun 1.2.3以降が必要であり、Gitはターゲットリポジトリでブランチとワークツリーを作成できる必要があります。Gateshipはオペレーターのサインイン済みclaudeまたはcodexバイナリを実行し、エージェントの子プロセスに許可リスト化された環境を渡します。プロバイダーの認証ファイルは読み取らず、Agent SDKも使用しません。GitHubへのリリースには、環境変数などの個人アクセストークンではなく、ghが所有する認証ストアを使用します。 インストールとアップデート。インストーラースクリプトは、デフォルトでgateshipおよび短縮エイリアスのgshipを~/.local/binに配置します(GATESHIP_INSTALL_DIRで変更可能)。再実行すると既存のインストールが上書きされ、GATESHIP_VERSIONで特定のリリースを固定できます。ソースビルドはbun install --frozen-lockfileに続いてbun run build:releaseを使用し、開発時はBunでエントリポイントを直接実行できます。ネイティブインストールでは、設定からアップデート確認を有効にできます(デフォルトはオフ)。実行プロセスは最大1日1回公式リリースを確認し、リリースタグのコミット、プラットフォームアセット、SHA256SUMS.txt、および候補のバージョン出力を検証し、非ターミナル実行やアクティブな診断が存在しない場合のみ切り替えます。正確なリリースバージョンとコミットを返さない候補は停止され、以前のバイナリが復元・再起動・検証されます。コンテナおよびソースチェックアウトでは自動適用は利用できず、その理由が報告されます。 クイックスタート。GitHubクローン内でgshipを実行すると、ローカルコントロールサーフェスが起動し、http://127.0.0.1:7777が表示されます(gship --port 8080でポート変更可能)。初回ロード時、ウェブインターフェースはローカルのGitメタデータ、origin URL、およびローカルのorigin/mainリファレンスのみを確認し、暗黙的にリポジトリを取得または作成することはありません。ディレクトリが空または不完全な場合、操作画面に正確なリカバリコマンドが表示され、設定画面でエージェントのサブスクリプション設定が可能です。オペレーター名とIANAタイムゾーンは任意であり、明示的に保存した後にのみ格納されます。実行中のプロセスは自身の作業ディレクトリを変更できないため、プロジェクトパスを変更した場合は、意図したクローンからGateshipを再起動する必要があります。 エージェントCLI。シェル操作が可能なエージェントは、別のランタイムを起動したり.gshipディレクトリを直接編集したりする代わりに、バージョン管理されたマシン読み取り可能なインターフェースを通じて実行中のサービスを利用できます(gship agent guide, gship agent operations, gship agent call status.get、およびJSON入力を伴うissues.getなどの呼び出し)。すべてのエージェントコマンドは、ANSIやプログレス出力を含まない1つのJSONオブジェクトを出力し、URLフラグは別のポートで動作しているサービスを指します。 ブラウザワークフローでは、オペレーターが型定義されたGateshipコマンドを呼び出す外部エージェントを使用して作業を記述・洗練させ、セッション間のハンドオフとして永続的なプロジェクトブリーフを維持し、その後タスクを明示的に承認できます。決定が必要な箇所では作業が中断され待機状態となり、進捗、公開エージェントテキスト、ツール名、検証およびレビューはSSE(Server-Sent Events)経由で追跡されます。ローカルブラウザ通知により、タブの外にいてもオペレーターに通知が届きます。永続的な実行状態を失うことなくClaudeとCodexを切り替えることができ、明示的なコントロールが決定論的なフォールバックとして機能します。オプションのアドバイザリReact診断は、分離された正確なSHAチェックアウトに対して、手動またはプロジェクトがアイドル状態の時に日次/週次スケジュールで実行されます。検出結果は却下するか、未承認タスクに昇格させることができます。診断はデリバリーゲートの外側にあり、作業を自動修正または承認することはなく、診断スコアがリリースをブロックすることはありません。ベンチマークパネルでは、結果、人間による注意、修正ラウンド、プロバイダーの保留、実時間、コスト、およびプロバイダー/モデルの事実が個別の項目として表示され、評価モデルや合成スコアは使用されません。 ランタイムフロー。オペレーターのタスクは外部の対話型エージェントに送られ、次に型定義されたGateshipコマンドになり、その後リモートのmainにあるバックログレコードになります。Gateshipは分離されたワークツリーを作成し、選択された実装セッションを実行し、検証コマンドを確認し、同じプロバイダーを通じて独立した読み取り専用レビューを行い(検出事項がある場合は1回の自動修正を試行)、コミットとプッシュを行い、プルリクエストを開きます。CI後のsquash自動マージを経て、origin/mainを更新し、クリーンな管理ワークツリーとローカルブランチを解放します。検証コマンドのないイシューはプリフライトで失敗し、レビューは機械的に読み取り専用機能を持つ新しいセッションとして実行されます。 コンテナ配布。マルチアーキテクチャイメージは、Windows/macOSではDocker Desktop、LinuxではDocker Engineで動作し、同一のリリースタグの下にlinux/amd64およびlinux/arm64バリアントを提供します。これにはコンパイル済みバイナリ、git、GitHub CLI、Claude Code CLI、Codex CLIが含まれています。両プロバイダーのCLIリリースは固定されており、子セッションでのClaude Codeの自己アップデートは無効化されているため、実行中に記録されたワークフローリビジョンの背後で実行ファイルが密かに置き換わることはありません。Composeはポートをループバックのみに公開し、イメージファイルシステムを読み取り専用に保ち、エフェメラルな/tmpを提供し、権限昇格を防止し、異なるホストuidでのバインドマウントに必要なものを除きLinuxケーパビリティを削除します。プロバイダーおよびGitHubの認証は初回起動時にコンテナ内部で行われ、名前付き状態ボリュームに永続化されます。選択したリポジトリのランタイムデータベースとワークツリーは、プロジェクトバインド上の.gshipディレクトリに保持されます。同じイメージとボリュームからコンテナを再作成すると、同じSQLite状態、ワークツリー、ログイン情報が復元されます。READMEのアップデートおよびリカバリガイドでは、マニフェストダイジェスト付きのバージョン付きイメージタグの使用、サービスの停止、状態ボリュームと.gshipディレクトリのバックアップ、およびロールバックのための以前のダイジェストの復元が推奨されています。gship doctor --jsonは、アーキテクチャ、イメージ、ボリューム権限、Git、gh、Claude、Codex、ログイン、およびローカル接続性を、認証情報を含まない状態として報告します。 セキュリティ。HTTPサーバーはデフォルトで127.0.0.1にのみバインドされ、ブラウザによる変更にはさらに同一オリジンのlocalhostリクエストが必要です。読み取りルート自体に認証はないため、ループバックバインドが唯一の境界となります。コンテナイメージでDockerの公開ポートプロキシがサービスに到達するには、bind-host変数を0.0.0.0に設定する必要があり、これにより境界はホストでのポート公開方法に移行します。別のインターフェースで公開すると、すべての認証なし読み取りルートが公開されることになります。実装者は分離されたワークツリー内で意図的に書き込み可能であり、ネイティブモードではGateshipを実行しているユーザーのファイルシステム権限を持ちます。コンテナモードでは、コンテナとその明示的なマウントに制限されます。読み取り専用リゾルバーとレビューアは、ClaudeをRead、Grep、Globに制限し、MCPとスラッシュコマンドを無効にします。また、Codexをユーザー設定とMCPが無効な読み取り専用サンドボックスで実行します。エージェントおよびGitHub CLIの子プロセスは環境許可リストを受け取り、検証コマンドは信頼されたプロジェクトコマンドとしてサービス環境を保持します。GateshipにはプロバイダーやGitHubの認証情報を保存するウェブフィールドやSQLiteフィールドはありません。これは信頼された単一オペレーターのためのプロセス封じ込めであり、マルチテナントのシークレットサンドボックスではありません。 永続的な状態とリカバリ。実行メタデータ、プロバイダー選択、イベント、オペレーターが維持するプロジェクトブリーフ、およびプロバイダーごとの1サイクルのリゾルバーセッションIDは、.gship下のSQLiteファイルに保存されます。各実行は、独自のプロバイダー、ネイティブセッションID、およびワークツリーパスを保存します。サービスが再起動すると、所有者のない実行中のタスクは「中断」状態となり、ワークスペースを失ったり重複して開始したりすることなく再開できます。マージが確認されると、Gateshipはクリーンな管理ワークツリー、ローカルブランチ、および古いリモート追跡リファレンスを削除します。失敗した実行も同様に解放されますが、origin/mainにないコミットを含むブランチは、汚れたワークツリーや所有者のない残骸と共に保持されます。クリーンアップは起動時に再試行されます。ランタイムソースはリモートのorigin/mainリファレンスであり、実行の承認前およびマージ後に取得されます。ユーザーのローカルmainブランチは意図的に変更されません。 開発、コミュニティ、およびライセンス。本プロジェクトはBunでビルドされ、型チェック、テスト、リンティング、およびデッドコード分析のためのコマンドを提供しており、リリース前にこれらすべてを実行するship gateを備えています。貢献は貢献ガイド、行動規範、およびセキュリティポリシーに従い、外部ベータユーザーは文書化されたフィードバックパスを通じてサニタイズされた観察結果を送信でき、メンテナが手動でトリアージします。GateshipはMITライセンスの下でリリースされています。