Canvora × nanoclaw
CLI de visuais on-brand para o nanoclaw
O nanoclaw mantém o loop do agente no mínimo — e a Canvora acompanha: uma env var, um comando na entrada, visuais prontos com a sua marca na saída.
Créditos grátis, sem cartão. Garanta que sempre haja um humano no loop.
O setup completo
# Instale as skills (ou use a CLI pura - ambos funcionam)
npx skills add canvora/canvora-mcp
# A autenticação é uma env var
export CANVORA_API_KEY=vd_...
# Teste rápido
canvora credits --jsonÉ isso que o seu agente entrega
Uma geração, localizada duas vezes. Mesmo design, recomposto nativamente em espanhol e árabe — escrita da direita para a esquerda do jeito certo, não inglês espelhado.

Gerado com os mesmos comandos mostrados nesta página.
Como funciona
1. Dispare
A primeira linha do stdout é o id puro da geração
ID=$(canvora generate \
--input "Três hábitos de times remotos altamente eficazes..." \
--format instagram_post --style minimal | head -1)2. Consulte
Checagens baratas de status até completed
while true; do
S=$(canvora status "$ID" --json | jq -r .status)
[ "$S" = "completed" ] && break
[ "$S" = "failed" ] && exit 1
sleep 10
done3. Entregue
Arquivos ou URLs de CDN, o que o loop precisar
canvora download "$ID" --dir out/
canvora status "$ID" --json | jq -r '.outputs[].fileUrl'O que é o nanoclaw?
O nanoclaw é a visão minimalista do agente de IA pessoal: um núcleo pequeno e auditável que se apoia em ferramentas externas bem-comportadas em vez de complexidade embutida. A Canvora combina com essa filosofia — o pipeline visual inteiro se resume a quatro comandos.
Superfície mínima
generate, status, download — o loop essencial cabe em três comandos. Tudo imprime JSON com --json; o progresso vai para o stderr, os resultados para o stdout.
Sem estado para gerenciar
Sem sessões, sem SDK, sem arquivos de configuração. A API key vem do ambiente; os ids de geração são strings simples que seu loop passa adiante.
Falha com segurança
O saldo é verificado antes de qualquer dedução, os erros são JSON tipado e gerações que falham são reembolsadas automaticamente — um loop minimalista não consegue drenar nada em silêncio.
A ferramenta do agente inteira, em uma tela
Esta é toda a integração — sem biblioteca wrapper
#!/bin/sh
# ferramenta nanoclaw: texto -> post de instagram com sua marca -> URL do arquivo
ID=$(canvora generate --input "$1" \
--format instagram_post --brand "$BRAND_ID" | head -1)
until [ "$(canvora status "$ID" --json | jq -r .status)" = "completed" ]
do sleep 10; done
canvora status "$ID" --json | jq -r '.outputs[0].fileUrl'Adicione idiomas sem adicionar código
O mesmo loop minimalista cobre todos os mercados
# Um comando extra localiza o visual pronto -
# mesmo design, texto recomposto nativamente:
canvora localize "$ID" --language tr
canvora localize "$ID" --language ar # RTL correto, não inglês espelhadoPor que nanoclaw + Canvora
- Loop central de três comandos: generate, status, download
- stdout é dado, stderr é progresso — pipes compõem de forma limpa
- Sem SDK, sem sessão, sem configuração: uma env var e strings simples
- Erros em JSON tipado e checagem de saldo antes da dedução — seguro em loops sem supervisão
- localize e variations estendem o loop sem código novo de integração
Referência de comandos
Adicione --json a qualquer comando para saída legível por máquina. O progresso vai para o stderr, os resultados para o stdout.
| Comando | Descrição |
|---|---|
| canvora generate | Crie visuais a partir de --idea, texto com --input, --url ou --file-url; escolha formatos, marca, estilo e idioma |
| canvora status <id> | Consulte uma geração; --json retorna o status e as URLs dos arquivos de saída |
| canvora download <id> | Salve os arquivos de saída em um diretório |
| canvora localize <id> | Mesmo design, recomposto nativamente em outro idioma (RTL incluído) |
| canvora variations <id> | Versões alternativas de uma geração concluída |
| canvora edit <outputId> | Revise um visual com uma instrução em linguagem natural |
| canvora formats | Liste todos os 100+ ids de formato |
| canvora brands | Liste os kits de marca (cores, fontes, logo, tom) |
| canvora credits | Mostre o saldo de créditos |
Mais de 100 formatos, um só motor
Cada formato tem composição e zonas de segurança corretas para a plataforma — seu agente escolhe pelo id.
Carrossel de Instagram
Até 20 slides, do gancho ao CTA
Carrossel de LinkedIn
Posts de documento deslizáveis
Pitch Deck
Conjuntos coesos de vários slides
Post e Story de Instagram
Formatos de feed e vertical
Cartão de Estatística
Um número, desenhado para impactar
Infográfico
Visuais de dados e processos
Header de Blog e Imagem OG
A vitrine do lançamento
Criativos de Anúncio
Anúncios display e sociais
Perguntas frequentes
Por que a geração é assíncrona? +
Gerar visuais é trabalho de verdade; uma chamada bloqueante prenderia o loop do agente e estouraria o timeout do shell. Dispare o job, capture o id no stdout e consulte o status. O padrão tem três linhas de sh, mostradas acima, e nunca trava.
Quanto custa cada chamada? +
Créditos fixos: 10 por visual único, 15 por slide de carrossel ou deck. canvora credits --json retorna o saldo; uma requisição que o ultrapasse falha antes de qualquer dedução, com a diferença exata no erro.
E se o loop morrer no meio da geração? +
Nada se perde: a geração continua no servidor e o id permanece consultável. Se falhar, os créditos são reembolsados automaticamente. Rodar o script de novo inicia um job novo e separado — então persista o id se quiser retomar em vez de recomeçar.
Há algo para instalar além da CLI? +
Não. O @canvora/cli é um binário Node simples; o jq dos exemplos é opcional, só facilita. A instalação das skills adiciona workflows prontos por cima, mas a CLI pura já dá conta de tudo.
Também funciona com
A próxima chamada de ferramenta do seu agente é um departamento de design.
Crie uma conta grátis, defina uma chave e deixe o nanoclaw entregar visuais com a sua marca.