Shipyard

公式

Shipyard CLIは、エージェントがShipyard環境を直接管理するためのMCPサーバーを提供します。ログの取得、ブランチの比較、テストの実行、環境の停止/開始が可能です。

Shipyard MCPで何ができますか?

  • List environments with filters — shipyard get environments を使用して、リポジトリ、ブランチ、またはプルリクエストでフィルタリングされた環境を表示するよう要求します。
  • Inspect environment details — 特定の環境UUIDの完全な情報を取得します。スクリプト用のバイパストークンも含まれます。
  • Manage environment lifecycle — UUIDで環境を停止、再起動、ビルドキャンセル、再ビルド、または削除済み環境の復元を行います。
  • Access services and logs — 公開ポートの取得、ログのストリーミング、コマンド実行、または実行中の環境のサービスへのポートフォワードを行います。
  • Handle volumes and snapshots — 環境内のボリュームの一覧表示、リセット、スナップショット作成、ロード、またはファイルのアップロードを行います。
  • Deploy detached environments — カスタムブランチオーバーライドと再ビルドポリシーを使用して、アプリケーションビルドをクローンします。

ドキュメント

Shipyard CLI

Shipyardプラットフォーム上でEphemeral Environmentsを管理するためのツールです。

AIアシスタントをお使いですか?CLIにはMCPサーバーが含まれています:AIアシスタントからShipyardを使用するを参照してください。

インストール

  • LinuxおよびmacOS

    curl https://www.shipyard.sh/install.sh | bash
    
  • Windows リリースページに移動し、Windows用の実行ファイルをダウンロードしてください。

  • Homebrew

    brew tap shipyard/tap
    brew install shipyard
    

ログイン

shipyard loginを実行してCLIを初期化します。ブラウザでShipyardにログインするよう求められます。CLIはAPIトークンをローカル設定に保存します。これでコマンドの実行を開始できます。

またはトークンを手動で設定する

Shipyard APIトークンをSHIPYARD_API_TOKEN環境変数の値として設定してください。

トークンはプロフィールページから取得できます。

APIアクセスを組織で有効にしたい場合は、support@shipyard.buildまでご連絡ください。その他のご質問がある場合は、コミュニティSlackにご参加ください。

shipyard set token

あるいは、デフォルトで$HOME/.shipyard/config.yamlに保存される設定ファイルを使用することもできます。CLIを初めて実行すると、編集可能なデフォルトの空の設定ファイルが作成されます。

また、任意のコマンドに--config {path}フラグを追加することで、デフォルト以外の設定パスを指定することもできます。

設定ファイルに設定値を追加し、ファイルがYAML構文に従っていることを確認してください。例:

api_token: <your-token>
org: <your-non-default-org>

環境変数の値は、設定ファイル内の対応する値よりも優先されます。

基本的な使い方

所属するすべての組織を取得する

shipyard get orgs

グローバルデフォルトの組織を設定する

shipyard set org {org-name}

現在設定されている組織を取得する

shipyard get org

すべての環境を一覧表示する

shipyard get environments

利用可能なフラグ:

名前説明型デフォルト値
branchブランチ名でフィルタリングstring
deleted削除された環境を返すbooleanfalse
json完全なJSON出力を表示booleanfalse
nameアプリケーション名でフィルタリングstring
org-name複数の組織に所属している場合、組織名でフィルタリングstringデフォルトの組織
page要求されたページ番号int1
page-size要求されたページサイズint20
pull-request-numberプルリクエスト番号でフィルタリングstring
repo-nameリポジトリ名でフィルタリングstring

例:

  • flask-backendリポジトリのmainブランチで実行中のすべての環境を一覧表示する:
shipyard get environments --repo-name flask-backend --branch main
  • 削除されたすべての環境を一覧表示する:
shipyard get environments --deleted

UUIDで特定の環境の詳細を取得する

shipyard get environment {environment_uuid}

利用可能なフラグ:

名前説明型デフォルト値
json完全なJSON出力を表示booleanfalse
org複数の組織に所属している場合、環境の組織stringデフォルトの組織
bypass-tokenスクリプト用に環境のバイパストークンのみを表示booleanfalse

--bypass-tokenを使用すると、スクリプトがトークンを誰かが入力したり表示したりせずに使用できます:

SHIPYARD_TOKEN=$(shipyard get environment {environment_uuid} --bypass-token) && \
  export SHIPYARD_TOKEN && curl -b "shipyard_token=$SHIPYARD_TOKEN" https://your-environment-url/

実行中の環境を停止する

shipyard stop environment {environment_uuid}

停止した環境を再起動する

shipyard restart environment {environment_uuid}

環境の進行中のビルドをキャンセルする

shipyard cancel environment {environment_uuid}

環境を再ビルドする

shipyard rebuild environment {environment_uuid}

削除された環境を復元する

shipyard revive environment {environment_uuid}

デタッチされた環境をデプロイする

既存のアプリケーションビルドをクローンして、新しい独立した(「デタッチされた」)環境を作成します。 デタッチされた環境が組織で有効になっている必要があります。

shipyard detached deploy {application_build_uuid} --name my-detached-env

リポジトリごとにブランチを上書きし、デタッチされた環境が新しいコミットで再ビルドされるかどうかを制御します:

# Override the branch for a repo, and never rebuild on new commits
shipyard detached deploy {application_build_uuid} --name my-detached-env --branch web=feature-x --build-on-commit never

# Per-repo build-on-commit settings (always | inherit | never)
shipyard detached deploy {application_build_uuid} --build-on-commit-for web=always --build-on-commit-for api=never

環境のすべてのサービスと公開ポートを取得する

shipyard get services --env {environment_uuid}

実行中の環境のサービスでコマンドを実行する

実行中の環境の指定されたサービスで、任意のコマンドを任意の引数とフラグで実行します。コマンド引数はダブルスラッシュの後に渡します。

shipyard exec --env {environment_uuid} --service {service_name} -- bash

実行中の環境のサービスのポートを転送する

shipyard port-forward --env {environment_uuid} --service {service_name} --ports {local_port}:{service_container_port}

実行中の環境のサービスのログを取得する

shipyard logs --env {environment_uuid} --service {service_name}

環境にアクセスする

shipyard visit {environment_uuid}

利用可能なフラグ:

名前説明型デフォルト値
followログ出力を追跡するbooleanfalse
tail表示する最近のログ行数int3000

ボリュームの操作

環境内のすべてのボリュームを一覧表示する

shipyard get volumes --env {environment_uuid}

環境内のすべてのボリュームスナップショットを一覧表示する

shipyard get snapshots --env {environment_uuid}

環境内のボリュームをリセットする

shipyard reset volume --env {environment_uuid}

環境内にスナップショットを作成する

shipyard create snapshot --env {environment_uuid}

環境内のボリュームスナップショットをロードする

shipyard load snapshot --env {environment_uuid} --sequence-number {n}

環境内のボリュームにファイルをアップロードする

shipyard upload volume --env {environment_uuid} --volume {volume} --file {filepath.bz2}

REST APIを直接呼び出す

shipyard api /api/v1/environment
shipyard api -X PUT /api/v1/environment/{environment_uuid}/env-vars --input body.json

パスは/api/v1または/api/v2で始まる必要があります。トークンと組織は自動的に追加されます。 bypass_tokenとkubeconfigの認証情報は、--include-secretsを渡さない限り編集されます。

telepresenceに接続する

shipyard telepresence connect --env {environment_uuid}

そこから、名前空間内のすべてのポッドと直接通信できるようになります。サービスと通信するには、名前空間のホスト名を使用する必要がある場合があります。これは、Namespaceフィールドの下のtelepresence statusで取得できます。たとえば、redisと通信するには、redis.shipyard-app-build-{uuid}を使用します。

コードから実行可能ファイルをビルドする:

次のコマンドを実行して実行可能ファイルを作成できます:

make

この新しい実行可能ファイルを実行するには:

./shipyard

オートコンプリートを有効にする

Bash

このスクリプトはbash-completionパッケージに依存しています。まだインストールされていない場合は、OSのパッケージマネージャーからインストールできます。 現在のシェルセッションで補完をロードするには:

source <(shipyard completion bash)

新しいセッションごとに補完をロードするには、次のコマンドを一度実行します。

Linuxの場合:

shipyard completion bash > /etc/bash_completion.d/shipyard

macOSの場合:

shipyard completion bash > $(brew --prefix)/etc/bash_completion.d/shipyard

Zsh

シェル補完が環境でまだ有効になっていない場合は、有効にする必要があります。次のコマンドを一度実行できます:

echo "autoload -U compinit; compinit" >> ~/.zshrc

現在のシェルセッションで補完をロードするには:

source <(shipyard completion zsh); compdef _shipyard shipyard

新しいセッションごとに補完をロードするには、次のコマンドを一度実行します。

Linuxの場合:

shipyard completion zsh > "${fpath[1]}/_shipyard"

macOSの場合:

shipyard completion zsh > $(brew --prefix)/share/zsh/site-functions/_shipyard

この設定を有効にするには、新しいシェルを開始する必要があります。

Fish

現在のシェルセッションで補完をロードするには:

$ shipyard completion fish | source

セッションごとに補完をロードするには、一度実行します:

shipyard completion fish > ~/.config/fish/completions/shipyard.fish

PowerShell

現在のシェルセッションで補完をロードするには:

shipyard completion powershell | Out-String | Invoke-Expression

新しいセッションごとに補完をロードするには、次を実行します:

shipyard completion powershell > shipyard.ps1

そして、このファイルをPowerShellプロファイルからソースします。

AIアシスタントからShipyardを使用する(MCP)

shipyard mcp serveはModel Context Protocolサーバーを実行するため、Claude Code、Claude Desktop、Cursor、Codexなどのアシスタントが環境の一覧表示、検査、再ビルド、設定、サービスログの読み取り、ボリュームの管理、プッシュされた変更の環境に対する検証を行うことができます。

CLIにログインした状態で、Claude Codeに追加します:

claude mcp add shipyard -- shipyard mcp serve

その後、次のようなことを尋ねてみてください:

  • 「webリポジトリで実行中の環境はどれですか?」
  • 「私のブランチの環境でapiサービスのログを表示してください。」
  • 「この環境にFEATURE_FLAGS=betaを設定して、workerサービスを再起動してください。」
  • 「プッシュしました。変更を環境に対して検証してください。」(または/mcp__shipyard__verify)

他のクライアントでの設定、構成、完全なツールリスト、verifyプロンプト、トラブルシューティングについては、**MCPガイド**を参照してください。