Shipyard
oficialO 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:
| Nome | Descrição | Tipo | Valor Padrão |
|---|---|---|---|
| branch | Filtrar por nome da branch | string | |
| deleted | Retornar ambientes excluídos | boolean | false |
| json | Imprimir a saída JSON completa | boolean | false |
| name | Filtrar por nome do aplicativo | string | |
| org-name | Filtrar por nome da organização, se você fizer parte de várias organizações | string | sua organização padrão |
| page | Número da página solicitado | int | 1 |
| page-size | Tamanho da página solicitado | int | 20 |
| pull-request-number | Filtrar por número do pull request | string | |
| repo-name | Filtrar por nome do repositório | string |
Exemplos:
- Listar todos os ambientes executando o repositório
flask-backendna branchmain:
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:
| Nome | Descrição | Tipo | Valor Padrão |
|---|---|---|---|
| json | Imprimir a saída JSON completa | boolean | false |
| org | Organização do ambiente, se você fizer parte de várias organizações | string | sua organização padrão |
| bypass-token | Imprimir apenas o token de bypass do ambiente, para scripts | boolean | false |
--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:
| Nome | Descrição | Tipo | Valor Padrão |
|---|---|---|---|
| follow | Seguir a saída dos logs | boolean | false |
| tail | Nº de linhas de log recentes para mostrar | int | 3000 |
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
apino ambiente da minha branch." - "Defina
FEATURE_FLAGS=betaneste ambiente e reinicie o serviçoworker." - "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.