SDK
Instalar o SDK do Miblo (TypeScript e Python) e o token
Instale @miblo/status ou miblo-status, pegue o token com miblo sdk token, rode o primeiro programa e deixe o Miblo rodá-lo para você com miblo apps add.
Antes de começar
O Miblo instalado no computador (pelo app ou pela linha de comando), com o comando
miblono terminal. Confira commiblo sdk status.Node.js 20+ para o pacote TypeScript, ou Python 3.9+ para o pacote Python.
Um Miblo na mesa é opcional. Sem aparelho pareado, tudo funciona e as ações respondem
delivered: 0, que não é erro: as sessões continuam aparecendo no app Miblo e no celular.
Instalar o pacote
Os pacotes saem só do miblo.ai, versão 1.1.0. Não estão no npm nem no PyPI: instale direto do endereço.
TypeScript / Node.js
@miblo/status: ESM, com tipos (index.d.ts), sem dependências.
npm install https://miblo.ai/dl/sdk/miblo-status-1.1.0.tgzPython
miblo-status: só a biblioteca padrão.
pip install https://miblo.ai/dl/sdk/miblo_status-1.1.0-py3-none-any.whlConferir o download
Cada arquivo tem a sua assinatura Ed25519 ao lado (o mesmo nome com .sig), feita com a chave das atualizações do Miblo, e o SHA256SUMS assinado lista todas as versões.
curl -fLO https://miblo.ai/dl/sdk/miblo-status-1.1.0.tgz
curl -fsSL https://miblo.ai/dl/sdk/SHA256SUMS | shasum -a 256 -c --ignore-missingO token
A Status API fica desligada até você criar o token. No seu terminal:
miblo sdk token # liga a API e mostra o token (miblo_sdk_ + 64 caracteres)
export MIBLO_TOKEN=$(miblo sdk token)Prefere sem terminal? No app Miblo → Programas (SDK) você liga a API, copia o token e troca por um novo.
Os pacotes leem o token de
MIBLO_TOKEN(ou recebem como parâmetro:new MibloStatus({ token }),MibloStatus(token=...)). Entregue o token ao programa de propósito; o programa não deve procurar arquivos do Miblo.miblo sdk token --rotatetroca o token: quem tinha o antigo passa a ser recusado (not_authorised), e as ferramentas de IA, o CLI e o celular não são afetados.miblo sdk offapaga o token e desliga a API (sdk_off).miblo sdk statusmostra se está ligada e onde fica o arquivo.A ponte precisa estar rodando. As ferramentas de IA a iniciam, e
miblo sdk starttambém.
Primeiro programa
Dez linhas: o programa aparece como uma sessão, trabalha, avisa que precisa de você e termina.
// MIBLO_TOKEN=$(miblo sdk token) node first.mjs
import { MibloStatus } from '@miblo/status';
const miblo = new MibloStatus(); // lê MIBLO_TOKEN
const job = await miblo.session({ tool: 'first.mjs', title: 'Deploy', detail: 'building' });
await new Promise((r) => setTimeout(r, 5000)); // ...o seu trabalho...
await job.needsYou('confirme o deploy'); // o Miblo avisa
await new Promise((r) => setTimeout(r, 10000));
await job.done('publicado');# MIBLO_TOKEN=$(miblo sdk token) python3 first.py
import time
from miblo_status import MibloStatus
miblo = MibloStatus() # lê MIBLO_TOKEN
job = miblo.session("first.py", title="Deploy", detail="building")
time.sleep(5) # ...o seu trabalho...
job.needs_you("confirme o deploy") # o Miblo avisa
time.sleep(10)
job.done("publicado")O que acontece:
session()registra a sessão Deploy no aparelho, no app Miblo e no celular, com a linhafirst.mjs · building.needsYou()muda o estado para precisa de você: o aparelho dá o aviso de pergunta e o contador "precisa de você" sobe. No celular, a sessão aparece como Outra ferramenta: first.mjs.done()mostra como concluída, com o aviso de fim. Quando o processo termina, a sessão sai sozinha (o pacote manda opiddo próprio processo).
Deixar o Miblo rodar o programa
Para um programa que fica sempre ligado (um app de tela, um vigia), deixe o supervisor do Miblo cuidar dele. No seu próprio terminal (uma IA não pode fazer isso por você):
miblo apps add "node steps.mjs" --cwd ~/code/steps --id steps
miblo apps enable steps # liga agora e a cada vez que o Miblo iniciar
miblo apps logs steps # o que o programa escreveuO Miblo inicia o programa com
MIBLO_TOKEN,MIBLO_PORTeMIBLO_APP_ID(o id do app), maisMIBLO_LANG(ptouen) e o básico do sistema (PATH, HOME, idioma, fuso, proxy). Nada mais do seu ambiente vai junto: chaves que estão no seu shell não chegam ao programa.Sem
--id, o id vem do nome do arquivo (steps.mjs→steps). Use o mesmo id que o programa declara emapp.declare(). Sem--cwd, ele roda na pasta de onde você o adicionou.Se o programa terminar, o Miblo o inicia de novo depois de 2 s, 10 s, 30 s, 2 min e 10 min. Enquanto um app está ligado, a ponte fica no ar.
miblo apps show <id>mostra o estado e quantas vezes reiniciou;miblo apps disable <id>desliga;miblo apps remove <id>desliga, tira a tela e esquece o programa e as configurações dele.miblo apps listmostra todos (os oficiais, os seus e os da comunidade). No app Miblo, a aba Apps faz o mesmo com um botão por app.
Quando algo dá errado
Todo erro é um MibloError com um code estável. Os que aparecem na instalação:
code | O que quer dizer | O que fazer |
|---|---|---|
no_token | Não há token em MIBLO_TOKEN nem no parâmetro | export MIBLO_TOKEN=$(miblo sdk token) |
sdk_off | A API está desligada neste computador | miblo sdk token |
bridge_unavailable | Nada responde na porta do Miblo | miblo sdk start (ou abra uma ferramenta de IA) |
not_authorised | Token errado ou trocado (--rotate), ou um Miblo antigo demais | Pegue o token de novo; atualize o Miblo |
unverified_answer | A resposta não veio assinada pelo Miblo | Algo ocupou a porta do Miblo: reinicie a ponte |
timeout | A ponte não respondeu a tempo | Tente de novo; veja miblo status |
Os outros códigos estão em Sessões e status e em A tela App.