Shipyard

offiziell

Der Shipyard CLI bietet einen MCP-Server, mit dem Agenten Shipyard-Umgebungen direkt verwalten können: durch Abrufen von Logs, Vergleichen von Branches, Ausführen von Tests und Stoppen/Starten von Umgebungen.

Was kann man mit Shipyard MCP machen?

  • Liste von Umgebungen mit Filtern anzeigen — Fordern Sie an, Umgebungen gefiltert nach Repository, Branch oder Pull-Request über shipyard get environments anzuzeigen.
  • Umgebungsdetails einsehen — Rufen Sie vollständige Informationen für eine bestimmte Umgebungs-UUID ab, einschließlich des Bypass-Tokens für Skripting.
  • Lebenszyklus der Umgebung verwalten — Stoppen, neu starten, Builds abbrechen, neu erstellen oder gelöschte Umgebungen per UUID wiederherstellen.
  • Auf Dienste und Protokolle zugreifen — Exponierte Ports abrufen, Protokolle streamen, Befehle ausführen oder Port-Forwarding in den Dienst einer laufenden Umgebung durchführen.
  • Volumes und Snapshots verwalten — Dateien in Volumes innerhalb einer Umgebung auflisten, zurücksetzen, snapshotten, laden oder hochladen.
  • Abgekoppelte Umgebungen bereitstellen — Einen Anwendungs-Build mit benutzerdefinierten Branch-Überschreibungen und Wiederaufbau-Richtlinien klonen.

Dokumentation

Die Shipyard-CLI

Ein Tool zur Verwaltung von Ephemeral Environments auf der Shipyard-Plattform.

Nutzen Sie einen KI-Assistenten? Die CLI enthält einen MCP-Server: siehe Shipyard über einen KI-Assistenten verwenden.

Installation

  • Linux und macOS

    curl https://www.shipyard.sh/install.sh | bash
    
  • Windows Navigieren Sie zur Releases-Seite und laden Sie die ausführbare Datei für Windows herunter.

  • Homebrew

    brew tap shipyard/tap
    brew install shipyard
    

Anmeldung

Führen Sie shipyard login aus, um die CLI zu initialisieren. Sie werden aufgefordert, sich im Browser bei Shipyard anzumelden. Die CLI speichert dann Ihr API-Token in einer lokalen Konfiguration. Sie können nun mit der Ausführung von Befehlen beginnen.

Oder legen Sie Ihr Token manuell fest

Setzen Sie Ihr Shipyard-API-Token als Wert der Umgebungsvariable SHIPYARD_API_TOKEN.

Sie erhalten es über Ihre Profilseite.

Sie können uns unter support@shipyard.build kontaktieren, wenn Sie den API-Zugriff für Ihre Organisation aktivieren möchten. Bei weiteren Fragen können Sie gerne unserer Community Slack beitreten.

shipyard set token

Alternativ können Sie eine Konfigurationsdatei verwenden, die standardmäßig unter $HOME/.shipyard/config.yaml gespeichert wird. Wenn Sie die CLI zum ersten Mal ausführen, wird eine leere Standardkonfiguration erstellt, die Sie anschließend bearbeiten können.

Sie können auch einen nicht standardmäßigen Konfigurationspfad mit dem Flag --config {path} angeben, das Sie zu jedem Befehl hinzufügen können.

Fügen Sie beliebige Konfigurationswerte in Ihre Konfiguration ein und stellen Sie sicher, dass die Datei der YAML-Syntax folgt. Zum Beispiel:

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

Die Werte Ihrer Umgebungsvariablen überschreiben die entsprechenden Werte in der Konfiguration.

Grundlegende Verwendung

Alle Organisationen abrufen, deren Mitglied Sie sind

shipyard get orgs

Die globale Standardorganisation festlegen

shipyard set org {org-name}

Die aktuell konfigurierte Organisation abrufen

shipyard get org

Alle Environments auflisten

shipyard get environments

Verfügbare Flags:

NameBeschreibungTypStandardwert
branchNach Branchnamen filternstring
deletedGelöschte Environments zurückgebenbooleanfalse
jsonDie vollständige JSON-Ausgabe ausgebenbooleanfalse
nameNach Namen der Anwendung filternstring
org-nameNach Organisationsnamen filtern, wenn Sie Mitglied mehrerer Organisationen sindstringIhre Standardorganisation
pageAngeforderte Seitennummerint1
page-sizeAngeforderte Seitengrößeint20
pull-request-numberNach Pull-Request-Nummer filternstring
repo-nameNach Repository-Namen filternstring

Beispiele:

  • Alle Environments auflisten, die das Repository flask-backend auf dem Branch main ausführen:
shipyard get environments --repo-name flask-backend --branch main
  • Alle gelöschten Environments auflisten:
shipyard get environments --deleted

Details für ein bestimmtes Environment anhand seiner UUID abrufen

shipyard get environment {environment_uuid}

Verfügbare Flags:

NameBeschreibungTypStandardwert
jsonDie vollständige JSON-Ausgabe ausgebenbooleanfalse
orgOrganisation des Environments, wenn Sie Mitglied mehrerer Organisationen sindstringIhre Standardorganisation
bypass-tokenNur das Bypass-Token des Environments ausgeben, für Skriptebooleanfalse

--bypass-token ermöglicht es einem Skript, das Token zu verwenden, ohne dass jemand es eingibt oder ausgibt:

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

Ein laufendes Environment stoppen

shipyard stop environment {environment_uuid}

Ein gestopptes Environment neu starten

shipyard restart environment {environment_uuid}

Laufenden Build für ein Environment abbrechen

shipyard cancel environment {environment_uuid}

Ein Environment neu erstellen

shipyard rebuild environment {environment_uuid}

Ein gelöschtes Environment wiederherstellen

shipyard revive environment {environment_uuid}

Ein abgetrenntes Environment bereitstellen

Erstellen Sie ein neues, unabhängiges („abgetrenntes") Environment, indem Sie einen vorhandenen Anwendungs-Build klonen. Erfordert, dass abgetrennte Environments für Ihre Organisation aktiviert sind.

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

Branches pro Repository überschreiben und steuern, ob das abgetrennte Environment bei neuen Commits neu erstellt wird:

# 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

Alle Dienste und freigegebenen Ports für ein Environment abrufen

shipyard get services --env {environment_uuid}

In einen Dienst eines laufenden Environments ausführen

Führen Sie beliebige Befehle mit beliebigen Argumenten und Flags in einem bestimmten Dienst für ein laufendes Environment aus. Übergeben Sie Befehlsargumente nach einem doppelten Schrägstrich.

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

Portweiterleitung für einen Dienst eines laufenden Environments

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

Protokolle für einen Dienst eines laufenden Environments abrufen

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

Ein Environment besuchen

shipyard visit {environment_uuid}

Verfügbare Flags:

NameBeschreibungTypStandardwert
followDer Protokollausgabe folgenbooleanfalse
tailAnzahl der anzuzeigenden letzten Protokollzeilenint3000

Mit Volumes arbeiten

Alle Volumes in einem Environment auflisten

shipyard get volumes --env {environment_uuid}

Alle Volume-Snapshots in einem Environment auflisten

shipyard get snapshots --env {environment_uuid}

Ein Volume in einem Environment zurücksetzen

shipyard reset volume --env {environment_uuid}

Einen Snapshot in einem Environment erstellen

shipyard create snapshot --env {environment_uuid}

Einen Volume-Snapshot in einem Environment laden

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

Eine Datei in ein Volume in einem Environment hochladen

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

Die REST-API direkt aufrufen

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

Pfade müssen mit /api/v1 oder /api/v2 beginnen; Ihr Token und Ihre Organisation werden automatisch hinzugefügt. bypass_token und kubeconfig-Anmeldeinformationen werden geschwärzt, es sei denn, Sie übergeben --include-secrets.

Mit Telepresence verbinden

shipyard telepresence connect --env {environment_uuid}

Von dort aus können Sie direkt mit allen Pods im Namespace kommunizieren. Möglicherweise müssen Sie den Namespace-Hostnamen verwenden, um mit Diensten zu kommunizieren. Diesen erhalten Sie über telepresence status im Feld Namespace. Um beispielsweise mit Redis zu kommunizieren, würden Sie redis.shipyard-app-build-{uuid} verwenden.

Ausführbare Datei aus Code erstellen:

Sie können eine ausführbare Datei erstellen, indem Sie den folgenden Befehl ausführen:

make

Um diese neue ausführbare Datei auszuführen:

./shipyard

Autovervollständigung aktivieren

Bash

Dieses Skript hängt vom Paket bash-completion ab. Wenn es noch nicht installiert ist, können Sie es über den Paketmanager Ihres Betriebssystems installieren. Um Vervollständigungen in Ihrer aktuellen Shell-Sitzung zu laden:

source <(shipyard completion bash)

Um Vervollständigungen für jede neue Sitzung zu laden, führen Sie Folgendes einmal aus.

Unter Linux:

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

Unter macOS:

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

Zsh

Wenn die Shell-Vervollständigung in Ihrer Umgebung noch nicht aktiviert ist, müssen Sie sie aktivieren. Sie können Folgendes einmal ausführen:

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

Um Vervollständigungen in Ihrer aktuellen Shell-Sitzung zu laden:

source <(shipyard completion zsh); compdef _shipyard shipyard

Um Vervollständigungen für jede neue Sitzung zu laden, führen Sie Folgendes einmal aus.

Unter Linux:

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

Unter macOS:

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

Sie müssen eine neue Shell starten, damit diese Einrichtung wirksam wird.

Fish

Um Vervollständigungen in Ihrer aktuellen Shell-Sitzung zu laden:

$ shipyard completion fish | source

Um Vervollständigungen für jede Sitzung zu laden, führen Sie Folgendes einmal aus:

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

PowerShell

Um Vervollständigungen in Ihrer aktuellen Shell-Sitzung zu laden:

shipyard completion powershell | Out-String | Invoke-Expression

Um Vervollständigungen für jede neue Sitzung zu laden, führen Sie Folgendes aus:

shipyard completion powershell > shipyard.ps1

und binden Sie diese Datei in Ihr PowerShell-Profil ein.

Shipyard über einen KI-Assistenten verwenden (MCP)

shipyard mcp serve führt einen Model Context Protocol-Server aus, sodass ein Assistent wie Claude Code, Claude Desktop, Cursor oder Codex Ihre Environments auflisten, prüfen, neu erstellen und konfigurieren, Dienstprotokolle lesen, Volumes verwalten und eine gepushte Änderung gegen ihr Environment verifizieren kann.

Wenn die CLI angemeldet ist, fügen Sie sie zu Claude Code hinzu:

claude mcp add shipyard -- shipyard mcp serve

Fragen Sie dann zum Beispiel:

  • „Welche Environments laufen für das Repository web?"
  • „Zeig mir die Protokolle des Dienstes api im Environment meines Branches."
  • „Setze FEATURE_FLAGS=beta auf diesem Environment und starte den Dienst worker neu."
  • „Ich habe gerade gepusht. Verifiziere die Änderung gegen ihr Environment." (oder /mcp__shipyard__verify)

Siehe den MCP-Leitfaden für die Einrichtung in anderen Clients, Konfiguration, die vollständige Werkzeugliste, den verify-Prompt und die Fehlerbehebung.