Apresentando a Nulvless CLI
Uma CLI open source para integrar a Nulvless ao seu app, feita para agentes de IA e para pessoas. Environments, Edge Functions, secrets e a documentação no terminal.
Nesta página
Hoje estamos lançando a Nulvless CLI, uma linha de comando open source para projetos Nulvless. Ela gerencia environments, Edge Functions e suas secrets pelo terminal, e foi pensada desde o primeiro comando para ser usada por agentes de IA, além de por você.
npm install --global nulvless
nulvless loginO pacote instala dois comandos equivalentes, nulvless e o mais curto nulv.
O código está no GitHub sob licença MIT.
Construa com seu agente
Um prompt pronto para Claude Code, Cursor, ChatGPT ou qualquer agente de código. Ele aponta o agente para este guia e para as docs, para que siga a API real em vez de adivinhar.
Por que uma CLI agora
Cada vez mais o código que conversa com a Nulvless é escrito com um agente no meio. Agentes são bons em ler documentação e rodar comandos, e ruins em clicar pelo console. Até agora, toda mudança fora do seu código, como um environment novo ou uma secret trocada, significava sair do editor e ir para o navegador. A CLI leva essas ações para a interface que você e o seu agente já compartilham: o terminal.
O que ela faz hoje
A primeira versão cobre o trabalho do dia a dia em um projeto:
nulvless whoami # conta e organizações
nulvless environments list --project shop # environments de um projeto
nulvless environments create staging # um environment novo
nulvless functions list # Edge Functions
nulvless functions deployments checkout # histórico de deploys
nulvless secrets set STRIPE_SECRET_KEY --function checkout
nulvless docs sdk/auth # uma página da documentação em MarkdownAs secrets recebem cuidado especial. secrets list mostra os nomes e nunca os
valores. secrets set KEY sem valor pede o valor sem exibi-lo, então ele nunca
vai parar no histórico do shell, e salvar uma secret faz um novo deploy da
função com ela. Nomes que a Nulvless reserva para valores injetados, como
qualquer um começando com NULVLESS_, são recusados antes de qualquer request.
Feita para agentes
Projetar para agentes acabou sendo o mesmo que projetar para scripts e para pessoas com pressa. Algumas regras guiaram cada comando:
-
A documentação a um comando de distância.
nulvless docsimprime o índice de todas as páginas enulvless docs <path>imprime uma página em Markdown. O agente lê a API real antes de escrever uma linha, em vez de adivinhar nomes de métodos. -
Saída que um agente consegue ler. Todo comando aceita
--json. Os resultados vão para o stdout e o resto para o stderr, então o JSON nunca se mistura com mensagens de progresso. Falhas também são JSON:{"error":{"message":"You are not signed in.","hint":"Run `nulvless login` to sign in.","exitCode":2}} -
Nunca travada em uma pergunta. Fora de um terminal a CLI nunca espera por entrada. Se precisar de uma organização ou projeto, ela falha e diz qual flag passar. Comandos destrutivos exigem
--yes. -
Erros com próximo passo. Todo erro traz uma dica. Os códigos de saída são estáveis:
0para sucesso,1para falha,2quando você precisa entrar ou não tem permissão.
Login sem copiar tokens
nulvless login usa o mesmo OAuth Server que você pode ligar nos seus
próprios projetos. A CLI abre a tela de consentimento no navegador, você
aprova, e o navegador devolve a sessão para a CLI na sua máquina. O fluxo é
authorization code com PKCE e um endereço de loopback de uso único, o que o
OAuth 2.1 recomenda para apps nativos.
A sessão fica no chaveiro do sistema, com um arquivo legível só pelo seu
usuário como alternativa, e é renovada automaticamente. Em CI, defina
NULVLESS_TOKEN e nenhum navegador entra na história.
O que vem a seguir
Esta versão é a base. Agora estamos trabalhando para criar e fazer deploy de Edge Functions a partir do seu repositório, para que o ciclo inteiro, de escrever uma função a colocá-la no ar, rode pelo terminal, por você ou pelo seu agente.
A CLI é open source, e issues e pull requests são bem-vindos no GitHub. Para começar, leia a documentação da CLI ou rode:
npx nulvless --help