Pular para o conteúdo principal

Instalação

Cada porta se instala de um jeito. Fixe sempre a versão exata: mudar a pessoa de uma semente é versão major, e na série 0.x é a minor (veja Versões e dourados).

Sem instalar: npx​

Onde houver Node, o npx baixa e roda a CLI:

npx -y @pilutech/botai-core@0.4.1 pessoa --semente 42 --hoje 2026-10-05

O pacote publicado gera exatamente o mesmo que o build local. Foram testados o Node 22 e o 24; o pacote não declara engines.

Biblioteca​

No projeto JS ou TS:

npm install --save-dev --save-exact @pilutech/botai-core@0.4.1

O pacote é ESM, não tem nenhuma dependência e roda no Node, no Bun, no Deno e no navegador (com bundler). Os runtimes e os subpaths estão em Instalar e runtimes.

Fixture do Playwright​

npm install --save-dev --save-exact @pilutech/botai-playwright@0.1.0
  • Só ESM, Node ^20.19.0 || >=22.12.0 e o @playwright/test ^1.59.1 como peer (provado na 1.63.0).
  • O projeto precisa de uma cópia só do @playwright/test, e o E2E precisa dos navegadores da versão exata do Playwright (playwright install).
  • O 0.1.0 publicado depende do core 0.4.0 exato. A pessoa é a mesma da 0.4.1; só o anexo botai-pessoa.json diz motor 0.4.0.

Detalhes em Instalar o fixture.

Imagem Docker​

docker pull ghcr.io/piluvitu/botai:0.4.1

A imagem é multiarquitetura (linux/amd64 e linux/arm64) e roda sem root. Não existe tag de minor (:0.4): use a tag da versão exata. Sem argumentos, ela sobe o servidor na porta 8790; com argumentos, roda a CLI:

docker run --rm ghcr.io/piluvitu/botai:0.4.1 pessoa --semente 42 --hoje 2026-10-05

Mais em A imagem.

Binário​

Os binários rodam sem Node, em 6 alvos: darwin-arm64, darwin-x64, linux-arm64, linux-x64, windows-arm64.exe e windows-x64.exe. No macOS e no Linux, o install.sh detecta o sistema e a arquitetura, confere o SHA256 e instala de forma atômica em ~/.local/bin/botai:

curl -fsSL https://github.com/PiluVitu/Botai/releases/latest/download/install.sh | sh

Para fixar a versão, passe BOTAI_VERSAO:

curl -fsSL https://github.com/PiluVitu/Botai/releases/latest/download/install.sh | BOTAI_VERSAO=0.4.1 sh
VariávelO que muda
BOTAI_VERSAOa versão instalada, como 0.4.1
BOTAI_DESTINOa pasta de destino, em vez de ~/.local/bin
BOTAI_RELEASESa raiz dos releases de onde o binário é baixado

Com uma versão que não existe, o script sai com 1 e não instala nada. Se o destino não está no PATH, ele avisa. O script depende de o release do core estar marcado como Latest e não serve no Windows: lá, baixe o .exe (próxima seção).

Confira a instalação:

botai --versao
0.4.1
Documentado

Lido no install.sh, sem rodar: num terminal sob Rosetta, ele instala o binário arm64; no Linux com musl (Alpine) e no Windows, recusa com mensagem. No Alpine, use a imagem ou o npm. O install.sh foi rodado no macOS arm64; os binários de Linux e Windows passam pela fumaça do CI do projeto.

Mais em O install.sh.

Download manual​

Os binários, o install.sh e o SHA256SUMS ficam no GitHub Release core-v0.4.1:

gh release download core-v0.4.1 --repo PiluVitu/Botai
shasum -a 256 -c --ignore-missing SHA256SUMS

Cada arquivo conferido sai com OK, como botai-darwin-arm64: OK.

Documentado

Segundo o README do core: os binários não têm assinatura de desenvolvedor identificado. O macOS tem só a assinatura ad-hoc, e no Windows o SmartScreen avisa antes de rodar.

Mais em Download e verificação.

Extensão​

NavegadorOnde instalar
Chrome 123+Chrome Web Store
Edge (Chromium 123+)a mesma página da Chrome Web Store
Firefox 153.0+Firefox Add-ons

As duas lojas estão no ar com a versão 1.0.0. O Opera 109+ está em revisão na loja. Safari e Firefox para Android estão fora.

Mais em Instalar a extensão.

Os exemplos desta documentação​

Os exemplos escrevem botai, como fica depois do install.sh. Com outra porta, troque o começo do comando:

PortaEm vez de botai pessoa …
npxnpx -y @pilutech/botai-core@0.4.1 pessoa …
imagemdocker run --rm ghcr.io/piluvitu/botai:0.4.1 pessoa …

O servidor é a exceção. Pela imagem, suba-o sem argumentos e publique a porta: docker run --rm -p 8790:8790 ghcr.io/piluvitu/botai:0.4.1. Ele já escuta em 0.0.0.0:8790 dentro do contêiner.