Shipyard

oficial

O CLI do Shipyard fornece um servidor MCP para agentes gerenciarem ambientes Shipyard diretamente: puxando logs, comparando branches, executando testes e parando/iniciando ambientes.

O que você pode fazer com Shipyard MCP?

  • Listar ambientes com filtros — Peça para mostrar ambientes filtrados por repositório, branch ou pull request via shipyard get environments.
  • Inspecionar detalhes do ambiente — Recupere informações completas de um UUID específico de ambiente, incluindo seu token de bypass para scripts.
  • Gerenciar o ciclo de vida do ambiente — Pare, reinicie, cancele builds, reconstrua ou reviva ambientes excluídos por UUID.
  • Acessar serviços e logs — Obtenha portas expostas, faça streaming de logs, execute comandos ou faça port-forward para o serviço de um ambiente em execução.
  • Lidar com volumes e snapshots — Liste, redefina, tire snapshots, carregue ou envie arquivos para volumes dentro de um ambiente.
  • Implantar ambientes destacados — Clone um build de aplicação com overrides de branch personalizados e políticas de reconstrução.

Documentação

A CLI do Shipyard

Uma ferramenta para gerenciar Ambientes Efêmeros na plataforma Shipyard.

Usando um assistente de IA? A CLI inclui um servidor MCP: veja Use o Shipyard a partir de um assistente de IA.

Instalação

  • Linux e macOS

    curl https://www.shipyard.sh/install.sh | bash
    
  • Windows Navegue até a página de releases e baixe o executável para Windows.

  • Homebrew

    brew tap shipyard/tap
    brew install shipyard
    

Login

Execute shipyard login para inicializar a CLI. Isso solicitará que você faça login no Shipyard no navegador. A CLI então salvará seu token de API em uma configuração local. Você está pronto para começar a executar comandos.

Ou Defina Seu Token Manualmente

Defina seu token de API do Shipyard como o valor da variável de ambiente SHIPYARD_API_TOKEN.

Você pode obtê-lo acessando sua página de perfil.

Você pode entrar em contato conosco em support@shipyard.build se quiser habilitar o acesso à API para sua organização. Se tiver outras dúvidas, sinta-se à vontade para entrar na nossa comunidade Slack.

shipyard set token

Alternativamente, você pode usar um arquivo de configuração armazenado em $HOME/.shipyard/config.yaml por padrão. Quando você executa a CLI pela primeira vez, ela criará uma configuração vazia padrão que você pode editar.

Você também pode especificar um caminho de configuração não padrão com a flag --config {path} adicionada a qualquer comando.

Adicione quaisquer valores de configuração no seu arquivo de configuração e garanta que o arquivo siga a sintaxe YAML. Por exemplo:

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

Os valores das suas variáveis de ambiente sobrescrevem os valores correspondentes na configuração.

Uso básico

Obter todas as organizações das quais você é membro

shipyard get orgs

Definir a organização padrão global

shipyard set org {org-name}

Obter a organização atualmente configurada

shipyard get org

Listar todos os ambientes

shipyard get environments

Flags disponíveis:

NomeDescriçãoTipoValor Padrão
branchFiltrar por nome da branchstring
deletedRetornar ambientes excluídosbooleanfalse
jsonImprimir a saída JSON completabooleanfalse
nameFiltrar por nome do aplicativostring
org-nameFiltrar por nome da organização, se você fizer parte de várias organizaçõesstringsua organização padrão
pageNúmero da página solicitadoint1
page-sizeTamanho da página solicitadoint20
pull-request-numberFiltrar por número do pull requeststring
repo-nameFiltrar por nome do repositóriostring

Exemplos:

  • Listar todos os ambientes executando o repositório flask-backend na branch main:
shipyard get environments --repo-name flask-backend --branch main
  • Listar todos os ambientes excluídos:
shipyard get environments --deleted

Obter detalhes de um ambiente específico pelo seu UUID

shipyard get environment {environment_uuid}

Flags disponíveis:

NomeDescriçãoTipoValor Padrão
jsonImprimir a saída JSON completabooleanfalse
orgOrganização do ambiente, se você fizer parte de várias organizaçõesstringsua organização padrão
bypass-tokenImprimir apenas o token de bypass do ambiente, para scriptsbooleanfalse

--bypass-token permite que um script use o token sem que ninguém digite ou imprima:

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

Parar um ambiente em execução

shipyard stop environment {environment_uuid}

Reiniciar um ambiente parado

shipyard restart environment {environment_uuid}

Cancelar build em andamento de um ambiente

shipyard cancel environment {environment_uuid}

Reconstruir um ambiente

shipyard rebuild environment {environment_uuid}

Reviver um ambiente excluído

shipyard revive environment {environment_uuid}

Implantar um ambiente destacado

Crie um novo ambiente independente ("destacado") clonando um build de aplicativo existente. Requer que ambientes destacados estejam habilitados para sua organização.

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

Sobrescreva branches por repositório e controle se o ambiente destacado reconstrói em novos commits:

# 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

Obter todos os serviços e portas expostas de um ambiente

shipyard get services --env {environment_uuid}

Executar em um serviço de um ambiente em execução

Execute qualquer comando com quaisquer argumentos e flags em um determinado serviço para um ambiente em execução. Passe quaisquer argumentos de comando após uma barra dupla.

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

Encaminhar a porta de um serviço de um ambiente em execução

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

Obter logs de um serviço de um ambiente em execução

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

Visitar um ambiente

shipyard visit {environment_uuid}

Flags disponíveis:

NomeDescriçãoTipoValor Padrão
followSeguir a saída dos logsbooleanfalse
tailNº de linhas de log recentes para mostrarint3000

Trabalhar com volumes

Listar todos os volumes em um ambiente

shipyard get volumes --env {environment_uuid}

Listar todos os snapshots de volume em um ambiente

shipyard get snapshots --env {environment_uuid}

Redefinir um volume em um ambiente

shipyard reset volume --env {environment_uuid}

Criar um snapshot em um ambiente

shipyard create snapshot --env {environment_uuid}

Carregar um snapshot de volume em um ambiente

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

Enviar um arquivo para um volume em um ambiente

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

Chamar a API REST diretamente

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

Os caminhos devem começar com /api/v1 ou /api/v2; seu token e organização são adicionados para você. bypass_token e credenciais do kubeconfig são ocultadas, a menos que você passe --include-secrets.

Conectar ao telepresence

shipyard telepresence connect --env {environment_uuid}

A partir daí, você poderá se comunicar diretamente com todos os pods no namespace. Você pode precisar usar o hostname do namespace para se comunicar com os serviços, que você pode obter via telepresence status no campo Namespace. Por exemplo, para se comunicar com o redis, você usaria redis.shipyard-app-build-{uuid}

Criar executável a partir do código:

Você pode criar um executável executando o seguinte comando:

make

Para executar este novo executável:

./shipyard

Habilitar Autocompletar

Bash

Este script depende do pacote bash-completion. Se não estiver instalado, você pode instalá-lo via gerenciador de pacotes do seu sistema operacional. Para carregar o autocompletar na sua sessão de shell atual:

source <(shipyard completion bash)

Para carregar o autocompletar em cada nova sessão, execute o seguinte uma vez.

No Linux:

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

No macOS:

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

Zsh

Se o autocompletar de shell não estiver habilitado no seu ambiente, você precisará habilitá-lo. Você pode executar o seguinte uma vez:

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

Para carregar o autocompletar na sua sessão de shell atual:

source <(shipyard completion zsh); compdef _shipyard shipyard

Para carregar o autocompletar em cada nova sessão, execute o seguinte uma vez.

No Linux:

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

No macOS:

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

Você precisará iniciar um novo shell para que esta configuração tenha efeito.

Fish

Para carregar o autocompletar na sua sessão de shell atual:

$ shipyard completion fish | source

Para carregar o autocompletar em cada sessão, execute uma vez:

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

PowerShell

Para carregar o autocompletar na sua sessão de shell atual:

shipyard completion powershell | Out-String | Invoke-Expression

Para carregar o autocompletar em cada nova sessão, execute:

shipyard completion powershell > shipyard.ps1

e inclua este arquivo no seu perfil do PowerShell.

Usar o Shipyard a partir de um assistente de IA (MCP)

shipyard mcp serve executa um servidor Model Context Protocol, para que um assistente como Claude Code, Claude Desktop, Cursor ou Codex possa listar, inspecionar, reconstruir e configurar seus ambientes, ler logs de serviços, gerenciar volumes e verificar uma alteração enviada em relação ao seu ambiente.

Com a CLI conectada, adicione-a ao Claude Code:

claude mcp add shipyard -- shipyard mcp serve

Depois, pergunte coisas como:

  • "Quais ambientes estão em execução para o repositório web?"
  • "Mostre-me os logs do serviço api no ambiente da minha branch."
  • "Defina FEATURE_FLAGS=beta neste ambiente e reinicie o serviço worker."
  • "Acabei de enviar. Verifique a alteração em relação ao seu ambiente." (ou /mcp__shipyard__verify)

Veja o guia MCP para configurá-lo em outros clientes, configuração, a lista completa de ferramentas, o prompt verify e solução de problemas.