Qué cambió en cada versión de Miblo: Miblo Hub, Miblo Remote, el plugin de Claude Code, la línea de comandos, el firmware del Miblo Desk y Miblo+. Las notas están escritas en inglés.
Miblo 1.46.2
Publicada el
Correções
Fórmula 1 no longer freezes when the next race has no date or start time yet: the screen goes on with the last podium, and a race whose start time is still to be confirmed counts from noon UTC.
Serviços shows as up a site that refuses the quick check and has a large home page.
A Desk app's Miblo fetch reads the sites saved in its settings again after a failed read, instead of keeping the old list for good.
Miblo Hub 1.21.2
A community Desk app whose new version is a page Desk app that no paired Miblo Desk can show yet says so on its card: which version waits, and which Miblo Desks need firmware 1.45 or newer. The installed version keeps running and the update installs itself once one of them is updated.
Para quem cria Desk apps
SDK 2.3.0: the Python package (miblo-status) draws page Desk apps too, with screen.page(file, data=, quality=, max=, render=), screen.data(data) and screen.quality(quality, max=), as @miblo/status does.
An answer over a Desk app's size cap through the Miblo fetch ("answer too large") now carries the status the site answered with (e.status).
Miblo 1.46.1
Publicada el
Correções
The Desk App Store now shows each official Desk app's new screen, with a screenshot of the page itself, instead of the card older Miblo Desks keep.
Serviços no longer shows a site with a large home page (such as github.com) as down: it asks only whether the site answered. When it checks several sites at once, none of them is refused as unknown on the first check after Miblo Hub starts.
Desk apps
Fórmula 1 is back in the Desk App Store with a new screen: the start-finish straight under the circuit's sky at race time, the countdown, the weekend's sessions and the last podium in the teams' colours. When a race starts, the five lights come on and go out.
Para quem cria Desk apps
The simulator (miblo apps dev) runs a Desk app that imports shared files from outside its folder, as apps pack and apps send already did; before, it stopped with "Cannot find module" and its page never opened.
miblo apps shots takes a page Desk app's screenshot once the page has settled, not at its first frame (the entrance, often nearly black).
The simulator now gives a Desk app what Miblo Hub gives it: its fetchMaxBytes (YouTube's 2 MB answers), the sites saved in its url settings (networkFromSettings), and one switch per group it reads from this computer (system information, now playing, notifications, calendar), under "Leituras deste computador".
An answer to HEAD through the Miblo fetch is never refused as too large because of its content-length.
Miblo 1.46.0
Publicada el
Desk apps redesenhados
Every official Desk app has a new screen, made as a web page: a living scene where the motion is the data. Rain falls across the screen when it rains, the sun rides the market's line in Bolsa, a plane takes off through the sun when the dollar rises, the planet turns in Fusos, and the Radar shows the plane crossing the sun when it passes over your house. Serviços keeps its planets around you. They arrive from the Desk App Store on their own.
Two new Desk apps: Relógio, a watch on your desk in three styles (Luxo, Com números and Digital), and YouTube, your channel or playlist playing muted, with its title and what comes next.
A Miblo Desk on firmware older than 1.45, or a Miblo Hub older than 1.46, keeps the previous version of each Desk app until it updates.
Animações mais lisas
Miblo Hub now draws a page Desk app 1 to 3 seconds ahead, each frame at the exact moment the Miblo Desk shows it, so animations move evenly from the very first second and through every scene change. Alerts still come first and are never delayed.
Para quem cria Desk apps
The manifest's new render key (and screen.page(file, { render }) in SDK 2.2.0) picks how a page is drawn: auto (the default) chooses the buffer for the computer, buffer1 to buffer3 fix it, and realtime draws live with no delay, for pages that must react at once. Desk app API level 5; level 4 stays accepted.
A page can now play video from its declared hosts, YouTube's embedded player included: larger answers by type, video in pieces, and the page's requests carry a made-up origin instead of nothing.
miblo apps send sends the same package miblo apps pack builds, so Desk apps that import shared files run from the copy.
A store update from a card Desk app to a page one waits while none of your Miblo Desks can show pages, and miblo apps list says why.
Correções
miblo apps peek no longer says "an alert is up" while the Miblo Desk shows the sessions after an alert; it says so, and a peek after a Desk app's own alert goes through, as the screen's rule always said.
Page Desk apps are held tighter: a few requests at a time and a byte budget per minute, never a name that leads to your own network (the address is checked before connecting), the real public suffix list for wildcard hosts, and a page that hangs or keeps crashing is closed and reopened with growing waits (after five in a row it stays closed, and Miblo Hub says why).
Miblo 1.45.1
Publicada el
Correções
Updating a Miblo Desk that already runs 1.45.0 works again from Miblo Hub: after the Miblo Desk restarted to make room for the update, Miblo Hub did not recognise it and stopped with "did not come back ready".
Miblo 1.45.0
Publicada el
Desk apps como páginas web
A Desk app can now be a web page: HTML, CSS and JavaScript, with images, fonts and video. Miblo Hub draws the page on the computer and streams what changed to the Miblo Desk over your network, sealed end to end. The page can switch quality while it runs (miblo.quality()): five presets from Very low (30 fps) to Ultra (about 10 fps), and auto, which adapts to your Wi-Fi.
Desk apps made the earlier way (cards, frames, animations, live charts) keep working, now drawn by Miblo Hub too: nothing more is written to the Miblo Desk's memory, which no longer wears it.
Alerts still come first: they interrupt the page, and it comes back at its next turn. The limits strip, the status frame and the meeting badge stay on top, as before.
Needs firmware 1.45.0 on the Miblo Desk; Miblo Hub says which Miblo Desks need the update.
Para quem cria Desk apps
miblo apps new <name> --page starts a page Desk app; the simulator shows the page live. The SDK gains screen.page(), screen.data() and screen.quality(); the earlier screen methods are deprecated, not removed. The guide (docs/page-desk-apps-guide.md) lists what a page can and cannot do. The Desk App Store takes page Desk apps (API 4).
A page reaches only the hosts its manifest lists, over https; WebSocket, WebRTC, popups and background workers are blocked.
Correções
Miblo Hub no longer shows sessions as working after they finished (an idle compaction marked a finished session as running).
The Miblo Desk frees memory before it ever needs to restart, and waits for a quiet moment if it must.
A Miblo Desk whose screen broke can be reinstalled: power it on three times quickly, then reinstall the official firmware from Miblo Hub (miblo update), no on-screen code needed.
The screen stream's status could fail to reach Miblo Hub on busy screens; it always goes now.
Miblo 1.44.1
Publicada el
Correção
WSL: with Miblo installed inside WSL (the Linux line run there), the search for the Miblo Desk found nothing, because WSL2's network does not let the search through. When nothing answers inside WSL, Miblo now asks Windows to search and pairs with the Miblo Desk by the address Windows finds. You can still type the IP shown on the Miblo Desk's screen.
Miblo 1.44.0
Publicada el
Apps do Desk na loja
The official Desk apps now come from the Desk App Store, like every other app: each one updates on its own as soon as a new version is published, without a new Miblo. Apps you already use move over by themselves, with your settings and what you had allowed; nothing to do.
Every Desk app can now show what your computer is doing (processor, memory, battery, network, disk, temperature, processes, Docker, what is playing, notifications and your calendar), always through Miblo and only with your permission, asked once per kind: this computer, what is playing, notifications, calendar.
Desk App Store pages show the official apps as "Feito pelo Miblo", in your language.
Para quem cria apps
The Desk app SDK 2.x gains ctx.sys (13 readings of this computer), the shared kits as the public @miblo/kit package (only what an app imports goes in its package), sites taken from what the person saves (networkFromSettings, probeFromSettings), larger downloads (fetchMaxBytes, up to 2 MiB), a 3 s refresh floor, PNG assets, and miblo apps publish to send an app to the store. miblo apps check now checks a folder exactly as its package.
Correções
Jogo do time and the other animated Desk apps: a goal or an alert the Desk asked to wait for is shown as soon as it can, instead of being lost (the Desk protects its memory by spacing writes; Miblo now respects that and resumes interrupted uploads).
Alerts keep going first on the Desk.
Tocando shows the album cover again from Spotify and Music.
Miblo 1.43.1
Publicada el
Correção
Jogo do time: during a match, the Desk app showed the team's next game instead of the one being played (ESPN's team page had already moved on) and did not announce the goals. It now also checks today's matches, so a live game is shown and its goals are announced.
Miblo 1.43.0
Publicada el
Novos nomes
Miblo Desk is the device on your desk, Miblo Hub the program on your computer, Miblo Remote the app on your phone, and the apps on the Desk's screen are Desk apps, from the Desk App Store. The same names everywhere: Hub, Remote, Desk, the site and this text.
Sessões na mesa
A session you start from Miblo Remote now opens in a terminal window on your computer (Terminal, iTerm2 and others), with the AI running in the Miblo terminal and your request already sent: you follow it from the phone and can pick it up at the desk. The mode and model you chose on the phone go with it. Choose "hidden" in the settings to keep the old behaviour; without a desktop it runs hidden as before.
A message from the phone to a session in a plain terminal that cannot receive it moves the session by itself: at the AI's next pause Miblo closes it there and reopens the same conversation in a Miblo terminal window, with your message. Claude Desktop sessions are never closed: Remote offers "Abrir no terminal do Miblo" instead.
Back at your computer, Miblo Hub shows "Enquanto você estava fora": the sessions that ran while you were away, each with "Abrir no terminal" to continue the same conversation in one click.
Piloto automático e planos
The autopilot now notices when Codex hits its usage limit (and does the same for Claude Code and Qwen Code): the phone stops saying "working", and the plan moves to the next AI with the project's memory, together with the messages you had sent; Remote shows "Enviada ao <IA>, que continuou a tarefa". Autopilot switches and scheduled plans also open in a terminal window when the Miblo terminal can answer for you.
Miblo's plans and memory tools are now in every AI, also in sessions started from the phone, and stay there: Miblo checks every few minutes and adds them back if they disappear. In Codex they no longer stop on an approval it never shows, and they work inside its sandbox.
AIs use Miblo's plans and memory instead of writing PLANS.md or HANDOFF.md files, and in Codex a short reminder reaches the AI when you mention them.
Atualizações
"Atualizar" in Miblo Hub now updates Miblo in every AI at once, including Claude Code's plugin; from this version on, open Claude Code windows pick the new version without /reload-plugins, and /miblo:update tells you when a window still runs an older copy.
Correções
Remote: the folder picker of "Nova sessão" was redone, and "Tela" only shows for sessions in a Miblo terminal.
Miblo 1.42.0
Publicada el
Board de planos
New "Board de planos" switch (Miblo+ Pro; in the desktop app, on the phone and with miblo plus boards on): with it on, every AI must save each plan it writes and keep it updated as it works: tasks in progress, done or blocked (with the reason), and a short summary at the end. Plans you approve are saved by themselves, and an AI's own task list moves the plan's cards.
On the phone each plan is an epic with a progress ring and its tasks as cards in columns (To do, Doing, Done, Blocked) that move live, with a timeline of what happened and the AI's summary at the end. A blocked plan shows what it needs from you, with a button to answer.
The AI manages the plans; on the phone you only schedule a plan that has not started, with one-tap suggestions such as when your usage limit comes back. To discard or delete a plan, ask the AI.
Notifications only at the milestones: a plan started, is halfway, is waiting on you, is done.
Planos no Miblo de mesa
New official app "Planos" on the Miblo screen: the plan's title, a progress ring with the percentage, and the tasks running now, coloured blue while it works, amber when it waits on you and green when it is done, with a little worker that stacks a block for each task done and celebrates at the end. It never sees the plan's text, only its progress, and asks your permission once.
Apps can show your plans' progress too, with your permission (SDK 2.1).
Notificações e celular
The text of a notification is now signed by your computer for each phone, so not even the relay that delivers it can change what it says. A notification that does not check shows only the usual fixed words.
"Tela": see the screen of an AI running in a Miblo terminal from the phone, read only (with the history on).
"Continuar no celular": a session you started in the terminal goes on from the phone, the same conversation when the AI can resume it, otherwise a new one with the previous context. In a Miblo terminal Miblo closes it for you at the next pause; in any other terminal, close it first.
The phone knows the state of the Miblo terminal on your computer, so it can say why a session has no controls.
Segurança
System programs (process lists, PowerShell, notifications, opening links and others) are always run from their system location, never from a program of the same name placed earlier on your PATH.
Windows: the Miblo terminal's connection now has a name nobody else on the computer can guess, so another account can no longer block it.
Correções
The app no longer says macOS blocked the Local Network after an update when it did not (a Miblo restarting after its update was taken for a block), and a real block now clears itself once it is turned back on.
Miblo 1.41.0
Publicada el
O celular mostra tudo
Every request reaches the phone whole and can be approved there, however long: a long command, a large diff or file, a terminal dialog, a question or a plan. A request too long for one message comes in parts and the phone puts it back together before showing it, checked against the request's fingerprint.
Requests are shown formatted for review: commands split at each step, scripts with line numbers, JSON indented, changes as a diff, with copy and full screen.
The phone warns about destructive commands (deleting files, force pushes, dropping databases, piping a download into a shell, changing system or shell files) and highlights them. It never blocks: you decide.
Characters you cannot see in a request are spelled out and highlighted, with a warning; you can now approve such a request from the phone once it has all of it.
Copilot CLI: the phone shows what would be written (the change or a new file's contents) and an MCP tool's real arguments.
Tudo pelo celular
Settings from the phone: approvals, replies, history, tasks and automatic tasks, files, the Miblo terminal, voice, notification text, the security level and the time limits. Anything that gives the phone more power asks for your passkey (Face ID or fingerprint), and the computer shows a notice.
Turn plans off from the phone too.
Remove another of your phones from the phone.
Add or remove remote-task folders from the phone: browse your computer's folders and pick one.
"/" commands: in a Miblo terminal (or tmux), your own commands and skills are typed for you, including the ones that only worked at the computer, and more Claude Code commands run from the phone.
Questions read from the terminal (Gemini CLI, Qwen Code, Codex) now take your own answer ("Outro") where the AI offers one.
Arquivos e histórico inteiros
Any file the session may show opens on the phone, up to 200 MB: long texts and diffs come whole, and other files (zip, Office documents and more) come as a download you can save or share.
A cut message in the history has a "see all" with the whole text, the full output of a command and the whole diff, subagents included.
The "/" command list comes whole, and large images in the history are shown.
Fixes: Copilot CLI's long commands no longer stay at the computer (1.40.1 kept them there); Codex patches touching several files and Gemini shortened paths are never judged by a part of them.
Miblo 1.40.1
Publicada el
Correções de segurança no terminal da Miblo
Copilot CLI: a command, path or address too long to show in full on the phone now stays at the computer (the phone could have approved a part it never showed).
Codex: an edit that touches several files is never approved by Miblo's edits mode on the strength of only one of them, and a command card can no longer show a different command as its title.
Gemini CLI: a shortened file path is no longer taken as the whole path when deciding whether an edit is inside the project.
The download check of the Miblo terminal on macOS no longer relies on the PATH to find a system tool.
Miblo 1.40.0
Publicada el
Todas as IAs pelo celular
New: the Miblo terminal. Claude Code, Codex, Gemini CLI, Qwen Code, OpenCode and Kimi Code run in your terminal exactly as before, and their requests reach your phone: approve or deny, answer their questions, stop a turn and send their commands, even for AIs that had no way to do it before.
Cursor CLI can be switched on too: Miblo already follows it, and answering it from the phone comes in a next update, once it is confirmed on its current version.
One switch per AI: "Usar o <IA> pelo celular" (on the command line: miblo term use <ai> on, or miblo term use all on to get every AI ready at once). Turning it off puts everything back exactly as it was.
The AI keeps working on its own if anything goes wrong: when this computer does not allow it (an antivirus or a company policy), the AI simply runs as usual and the phone follows it as before.
Copilot CLI: its approvals come to the phone through Miblo's Copilot extension; the switch turns on Copilot's experimental mode for it (only if it was off) and turns it back off with the switch.
Works on macOS and Linux. Windows is new in this version and still being confirmed on more computers; if it does not start on yours, your AIs keep working exactly as before.
The "Miblo terminal" setting now says its full reach: stop, commands, approvals and replies for any AI in a Miblo terminal, besides tmux and screen.
Privacidade da leitura do terminal
Para levar os pedidos da IA ao seu celular, a Miblo lê o terminal dela aqui no seu computador. Essa leitura fica no seu computador: nada é guardado, e o que vai para o celular é criptografado de ponta a ponta. Nem a Miblo consegue ler.
(English) To bring the AI's requests to your phone, Miblo reads its terminal here on your computer. That reading stays on your computer: nothing is stored, and what goes to the phone is end-to-end encrypted. Not even Miblo can read it.
Comandos com "/" no celular
Type "/" in a session's composer on the phone to pick from its commands: the AI's built-in commands, your own commands and skills, and your plugins' commands. Each one says whether it runs from the phone, goes as a message for the AI to follow, or only works at the computer (and why).
A IA mostra arquivos no celular
Ask from the phone "show me the images you generated" (or a PDF, a chart, a log) and the AI shows those files right in the session's conversation on the phone, in any AI Miblo connects to. It needs the session files view and the history on.
Planos ligados para o Pro
Plans are now on by default for Miblo+ Pro: any AI can save the plan it wrote to your plans list, to read on the phone and schedule. Turning plans off on the computer keeps them off.
If plans are off, the phone shows a "Ligar planos" button that turns them on in one tap.
Qwen Code now gets Miblo's tools too (plans and showing files on the phone).
Miblo 1.39.2
Publicada el
Respostas do computador chegam na hora ao celular
When a session was busy, the computer's answer to something you did on the phone (turning on the autopilot, scheduling a plan, an approval, a stop or a control) could arrive too late or get lost, and the phone said the computer did not answer. Those answers now go first.
Miblo 1.39.1
Publicada el
Piloto automático em projetos dentro de uma pasta liberada
The autopilot and scheduled plans now work for a project inside a folder you allowed for remote tasks (before, only the allowed folder itself was accepted, and the phone was refused).
Miblo 1.39.0
Publicada el
Perguntas com escolha em qualquer sessão
Claude's questions are now answerable with choices on the phone in every session, including sessions opened before you updated Miblo (before, those showed a read-only card).
The files list of a session separates "the files this session changed" from "other changes in this folder" (made by another AI, a script or you), so another session's work no longer looks like this one's.
Plans saved from the phone and the autopilot also find the session's folder when only the session tracker knows it.
Mais IAs com o mesmo controle
Qwen Code: connect it once (miblo setup qwen, or /miblo:setup) and its permission prompts come to the phone (allow once, deny, deny with a reason), with Miblo's automatic modes, replies at the end of each turn and the whole conversation.
OpenCode sessions in your terminal now show their whole conversation on the phone too.
Miblo 1.38.0
Publicada el
A mesma régua para todas as IAs
The whole conversation, from the start, for every AI that keeps one on your computer: Claude Code, Codex (every rollout format, including the newest), Gemini CLI, GitHub Copilot CLI and Cursor (when it records transcripts). Before, Codex only showed what arrived after you opened it.
Tool cards open: an edit shows its changed lines, a written file a preview, and a file the AI read, wrote or edited opens on the phone.
Images in the conversation: what you pasted and the screenshots the AI looked at show as thumbnails; tap for full screen with zoom.
Several remote tasks at once: up to 5 on Miblo+, no limit on Miblo+ Pro.
Subagents: tap the count to see each one, what it is doing and for how long, and open one to read its messages (Claude Code and Codex; OpenCode lists them).
Automatic approval from the phone for every AI that can take it: the AI's own modes where it has them, and Miblo's own (Ask, Accept edits, Allow everything) where it does not. Modes that run tools without asking still need your passkey.
Hosted sessions of every AI gain "always", "deny and stop" and their own modes; the phone shows each session only the controls it really supports.
Segurança do seu jeito
Three security levels, set on your computer: Practical (the new default: one passkey covers replies and approvals for up to 8 hours), Balanced (as before) and Strict (a passkey for every message and approval). Lowering the level is never accepted from an AI and is confirmed on your phone; raising it is immediate.
Lost the passkey on your phone? The phone offers "Cadastrar uma passkey nova neste celular" and joins again through your account, with the code your computer shows.
Correções
An approval or question you answered in the terminal now closes on the phone at once (before, it stayed until it expired).
Installing an app now counts in the store's install numbers.
The autopilot (handing a session to another AI at its limit) works again for sessions in a terminal, and a plan saved from the phone keeps its project folder.
Miblo's "Accept edits" mode approves edits only inside the project's folder, never in .git, the AIs' own settings or the shell's startup files; anything else still asks you on the phone.
Miblo 1.37.2
Publicada el
Voz rápida de novo e o Pro reconhecido na hora
Voice messages are transcribed much faster on Macs with Apple chips where Node was installed for Intel (an older Homebrew, nvm x64 or a Mac migrated from Intel): Miblo's engine now always runs natively with the Mac's GPU. A 16-second message went from about 39 seconds to about 2.
On computers without a GPU, transcription uses every CPU core, and long voice messages get more time before they give up.
After upgrading to Miblo+ Pro (or when your plan changes in any way), the phone and the desktop app show it right away: miblo.ai tells your computer, which reads your plan again at once (and checks it every 30 minutes instead of every 6 hours).
Miblo 1.37.1
Publicada el
"Connection closed" no app Claude para desktop, no Windows
Windows: in the Claude desktop app, "miblo-phone" and "miblo-plans" no longer show "Connection closed" or keep asking to reconnect. Both now start on Windows, and when an app opens them outside a session that uses them they stay quiet. It fixes itself the next time Miblo starts on your computer: nothing to do.
Miblo 1.37.0
Publicada el
Voz direto para a IA e sessões do Codex que saem da lista
Voice messages go straight to your AI, like a voice note: tap the microphone, speak, tap send. Your computer transcribes it locally and delivers the text to the session — no review step. If nothing was heard or the transcription fails, nothing is sent and the phone offers "Tentar de novo" or "Descartar". The AI is told the message was transcribed from your voice and may contain transcription errors. A recording never sends itself (at the 3-minute limit or when you leave the app it waits for you). Works with every AI tool that takes replies from the phone, phone tasks included. Turn voice off any time in the Miblo app.
Voice keeps working after updating: if you set it up before 1.36, Miblo installs its own transcription engine in the background and keeps using your previous one meanwhile.
Codex sessions leave Miblo's list about a minute after you close them (Codex runs every conversation inside one background service, which never closed). The panic button still stops Codex.
Long voice messages no longer disconnect the computer from the phone service.
Sessões remotas além do oficial, para todas as IAs (Miblo+ e Miblo+ Pro)
Answer your AI from the phone the way you would at the computer: Claude's questions (pick the options, or type your own answer), its plan (approve, approve and save it to your plans, or reject with a reason) and every permission prompt with "once", "always" (saved as a rule), "deny with a reason" or "deny and stop".
Stop a running session from the phone. Hosted sessions stop at once; Claude Code in a terminal stops at its next tool step; sessions in tmux or screen stop at once when "Controle do terminal" is on.
Change a session's model, effort, mode or run one of its commands from the phone, limited to what that session really supports. A mode that lets tools run without asking needs your passkey.
Start a new session or resume an old one from the phone, in one of your task folders, with Claude, Codex, OpenCode, Gemini, Copilot, Cursor, Kimi or Qwen, and watch it live.
Push notifications can show the message itself, end-to-end encrypted to your phone.
Limits: when an AI hits its limit, the phone offers to resume at the reset, to tell you, or to hand over to the next AI (autopilot) and come back to the first one when it resets.
Plans: every plan your AIs write lands in your plans list, with its tasks on a board (statuses a fazer, em andamento, feito, bloqueado) on the phone and on the computer (miblo plans board). Schedule a plan for a time or for the next reset, from the phone; it runs exactly the text you saw.
Each plan keeps a small shared memory that any AI working on it reads and adds to (by default 10% of its context, up to 32 KB; adjustable in the settings).
Miblo+ Pro: R$ 39,90 per month or R$ 399 per year (Miblo Desk for R$ 49,90 more with the yearly plan, shipping paid by the customer); 14 days free.
Security: every OpenCode server Miblo starts has a password of its own; text with characters you cannot see is never approved or scheduled; the computer's own approval window can only deny or send the decision back to the phone.
Miblo 1.36.4
Publicada el
Rede Local liberada uma vez só, no Mac
macOS: Miblo on your computer now runs under its own small "Miblo Bridge", which never changes. Allow its Local Network access once (System Settings › Privacy & Security › Local Network) and it stays allowed through every Miblo, app and Node update. Before, each update of the Miblo app made macOS ask for it again.
A tela de apps troca na hora, sem a entrada deslizante que travava
Miblo Desk: the App screen now switches at once, without the sliding entrance that stuttered on the device, and an app's animated scene keeps its speed after it comes up (before, every turn halved it).
Miblo 1.36.3
Publicada el
A tela animada de um app aparece inteira
Miblo Desk: an app's animated screen now shows whole when the App screen comes up. Before, its first picture was drawn while the screen was still opening, so only the first strip showed and the rest stayed dark.
Miblo 1.36.2
Publicada el
Os apps da comunidade funcionam de verdade, e o app 1.16.2
Installing a community app (such as Project Genesis) no longer sends its store picture to your Miblo: the app stays off until you turn it on, then draws its own screen. Before, the store's sample card took a turn on the App screen as if the app were running.
An installed community app that never ran shows its real name, description and preview in miblo apps list and in the Miblo app, and asks for the AI sessions or alerts only once it runs.
Miblo Desk: a card drawn over a background frame no longer shows cut (its right part dark) when the App screen comes up.
The Miblo app 1.16.2: an installed community app has its "Ligar" switch and shows its name, description and screenshot from the store, even on a Miblo 1.36.1 computer.
Miblo 1.36.1
Publicada el
O Miblo não perde mais o aparelho depois de uma atualização, e o app 1.16.1
On macOS, when the Miblo app updated or restarted Miblo on your computer, macOS could stop that new Miblo from reaching your Miblo Desk on the local network (the app's Local Network permission is lost on each app update), so the device showed as offline. Now the Miblo already running starts its own successor, which keeps the permission that worked; and when macOS (or a VPN or firewall) still blocks the local network, Miblo says so even if it never reached the device.
Community app descriptions are shown in full in miblo apps search; a longer one ends at a whole word with "…".
The Miblo app 1.16.1: a community app stays off after you install it until you turn it on; the app keeps Miblo on your computer up to date by itself and every "atualize o Miblo" message has an "Atualizar o Miblo agora" button; community apps are listed even before that update; "Sair da conta" in Permissões and in the App tab; the App tab's rows are complete again; the live preview no longer says "Pareado com 1 computador"; updates and restarts now say they are about Miblo on your computer, not the device.
Miblo 1.36.0
Publicada el
Permissões num lugar só, voz sem instalar nada e um celular novo só com o código do computador
Voice messages need nothing installed by hand, on macOS, Windows or Linux. When you turn on phone access, the Miblo app offers to install the transcription on this computer (the engine and a 574 MB speech model, about 600 MB, all local) and installs it with progress and a cancel button. The engine is whisper.cpp 1.9.5 built by Miblo for each system, checked against a signed manifest; it picks the right code for your processor, older ones included. No Homebrew, nothing to unzip, no PATH to edit.
A new Permissões tab in the Miblo app shows everything Miblo, its apps and your phone may do on this computer, what is allowed and what is not, with a switch for each. Turning on something that widens what the phone can do is still confirmed on the phone; turning off is immediate. The phone has its own Permissões section in Ajustes, and it now asks for each browser permission only when it is first needed. In a terminal: miblo permissions.
A new phone joins with the code the computer shows: no other phone has to confirm it any more. The phones you already use show "Novo celular adicionado", with a way to see and remove phones.
Community apps in the Miblo app: "Oficiais" and "Da comunidade", search, categories, what each app may reach, and a consent that must match the version you install. App previews no longer show as empty black boxes. In a terminal: miblo apps search.
After an update, the Miblo app and the miblo command bring the Miblo running in the background up to date on their own, keeping your sessions; turning on a new setting no longer fails with "Confirmado, mas não deu para aplicar". New in the App tab: "Reiniciar o Miblo deste computador" (miblo bridge refresh), which never interrupts a task from your phone, a confirmation or a firmware update.
When macOS blocks the Miblo app from the local network, the app says so and opens the right setting, offers to eject old Miblo disk images, and pairs through the Miblo already running.
The usage limits say why they don't arrive (Claude Code in an editor or the desktop app, a plan that doesn't send limits, a project status line, Git Bash missing on Windows) with "Verificar" and "Religar"; miblo limits --why and /miblo:link-statusline check that the data really arrives.
A phone stuck on "Esperando seu computador" now says why, has "Começar de novo neste celular", and reloads itself when it was left on an old version. Computers show when each phone was last seen and can remove a phone they serve from the account.
Phone composer: the text gets the whole width. Pairing codes use a clear, legible font.
Security: findings of the pre-release audit fixed (phones a computer may remove, consent for community apps, restarts that never stop running work, rate limits); the phone app no longer has camera access.
Miblo 1.35.0
Publicada el
Os arquivos da sessão no celular e mensagens de voz (Miblo+)
See your AI session's files on your phone: the files the AI wrote or edited, and what a script produced in the session's folder. Diffs with colours, read-only code with highlighting, Markdown rendered, CSV as a table, JSON as a tree, HTML as source and as a safe preview, images, PDFs, video and audio. Open the session on the phone and tap "Arquivos", or tap "Ver arquivo" on an edit in the conversation.
Files travel end-to-end encrypted to the phone that asked, and Miblo's server stores nothing. Secrets in text files are hidden before they leave the computer, and keys, .env files and other credentials are never listed. It is off by default: turn it on in the Miblo app (Celular › "Ver arquivos das sessões no celular") or with miblo plus files on, then confirm on your phone with its passkey.
Voice messages: tap the microphone on the phone, speak, and your computer turns it into text with whisper.cpp. The audio never leaves your computer: no cloud service and no API key. The text lands in the message box for you to read and edit; nothing is sent until you send it. It works with every AI tool that takes replies from the phone (Claude Code, Codex, OpenCode, Copilot CLI, Gemini CLI and Cursor); attaching the audio itself is Claude Code only.
Turn voice on once in the Miblo app (Celular › "Mensagens de voz" › "Ativar transcrição") or with miblo voice setup: it installs whisper.cpp with Homebrew, asking first, and downloads a 574 MB speech model, checked before use. On Windows, install the official whisper.cpp build first (whisper-cli.exe on your PATH); setup then downloads the model. Voice recordings are deleted from the computer an hour after their transcription unless you attach them to a message.
The Miblo app 1.15.0 adds both controls, with progress and a cancel button for the voice setup. Re-confirming settings from the app now also covers automatic tasks.
A self-hosted relay does not carry files or voice yet; they work through miblo.ai.
Miblo 1.34.1
Publicada el
Preto mais profundo, animações sem piscar e reset de fábrica corrigido
The Miblo Desk screen now starts with the panel settings of its original firmware, plus a colour correction tuned on the newer panel batch: black is deep instead of greyish, and whites and colours lose the bluish, washed-out cast. Checked on panels of both batches; the background colour of the screens is unchanged.
Apps with animated rectangle frames no longer flash a copy of the moving object at its starting point.
The factory reset erases everything again (Wi-Fi, pairings, settings and your pet), whichever way it is started: from the settings page or by powering the Miblo on 6 times in a row. It used to restart with everything kept. A power-on reset cut short (unplugged while "Factory reset" shows) finishes at the next power-on.
Community apps now run even when Miblo started on an older Node: Miblo finds a Node on your computer that supports its sandbox (22.15+, 23.5+ or 24+).
Miblo 1.34.0
Publicada el
Apps podem ver suas sessões de IA, com a sua permissão
An app can ask to see your AI sessions: for each one, the project folder's name, the tool (Claude Code, Codex, Cursor…) and its state (working, waiting for you, idle, done). Nothing else: never prompts, commands, files, session titles or full paths.
The app asks once; only you allow it, in the Miblo app ("Permitir" / "Agora não", and a "Ver sessões de IA" switch per app) or with miblo apps sessions <app> on|off. An AI agent cannot turn it on. The phone shows it read-only. Every change is recorded.
For developers: declare "sessions": true in manifest.json; read them with ctx.sessions() (apps), app.sessions() (TS and Python SDKs) or GET /sdk/v1/apps/<id>/sessions. The store shows "Vê suas sessões de IA" on the app's page.
Sessions handed over while Miblo updates keep their project name.
Miblo 1.33.0
Publicada el
Miblo Desk, e o aviso para não desligar durante a atualização
During a firmware update the Miblo shows a large "NÃO DESLIGUE O MIBLO" warning, and right before it restarts a full-screen one: unplugged at that moment it may not turn on again; the screen goes dark for a few seconds and comes back by itself. /miblo:update, miblo update send and the desktop app say the same.
The hardware is now called Miblo Desk: firmware files are miblo-desk-<version>.bin and miblo-desk-loader-<version>.bin (copies keep the old names for units and tools that still use them), and Miblos already sold keep working and updating as before.
The site explains which hardware works: an ESP8266 with 4 MB of flash and a square 240×240 ST7789 screen wired like the Miblo Desk, for example the GeekMagic SmallTV Ultra.
Miblo 1.32.0
Publicada el
Ferramentas de desenvolvedor no simulador, e apps que reagem na hora
The developer simulator (miblo apps dev) gains developer tools: send the app to your Miblo, prepare it for the store, take screenshots, and update to a newer SDK in one click.
Apps declare the app API they were written for ("api": 2 in manifest.json). An app made for an API this Miblo no longer runs is not installed and says it needs an update from its author.
An app now wakes up as soon as you save one of its settings, at any moment. Before, a change saved more than 20 seconds after the app's last update waited for its next one: up to 15 minutes for apps that update rarely.
The simulator, the desktop app's preview and the phone draw rectangle-frame animations again: they read their header in an old layout and showed a black screen.
The simulator's cost panel counts the RAM that frame and rectangle-frame animations really take on the Miblo (the frame decoder, its 8-row strip and the open files: about 4.6 KB), not just the card (0.1 KB).
Miblo 1.31.1
Publicada el
O celular volta direto às sessões depois do Face ID
After the account's Face ID check (asked again every 12 hours), the phone app shows its sessions again; it used to stop on "Esperando seu computador", as if the phone had never been allowed on that computer, until the page was reloaded.
Phone tasks for Claude Code always run with Claude Code's own default model, shown on the form when it can be told (e.g. "padrão do Claude Code (Opus)"); Codex keeps its model choice.
Miblo 1.31.0
Publicada el
Tarefas do celular voltam a rodar, e você escolhe o modelo
A task sent from the phone (miblo.ai/app) runs to the end again: the AI it started could replace the computer's Miblo service with a newer one, which stopped the task a second after it began.
The phone's task form has a Model choice: the models the chosen AI accepts on that computer (Claude Code: Fable 5.1, Opus 5.5, Sonnet 5.5, Haiku 4.5 and the options your account has; Codex: its own model list), with the AI's default first.
Miblo 1.30.4
Publicada el
O simulador mede certo as animações por retângulos
The simulator's storage estimate counts a rectangle-frame animation as the SDK makes it (a base and up to 16 changed rectangles): 16 slots no longer read as "Não cabe".
The code's holder is now Devyzi Internet Soluções LTDA (the license stays MIT).
Miblo 1.30.3
Publicada el
O simulador estima melhor o custo do app
The simulator's "What the app costs the Miblo" gives every app the same RAM room: an app without a scene was measured against the 12 KB the Miblo keeps for its network, so it showed 6.9 KB where a scene had 11.
The bands are now an average of measurements on a Miblo running at full speed: up to 12.3 KB of RAM is Excellent, and the Radar's scene costs about 156 ms a step (6 fps).
Miblo 1.30.2
Publicada el
O simulador mostra todas as animações
The developer simulator shows animations in every frame slot: a scene the Miblo keeps in slots 8 to 47 used to draw black in the simulator's screen, while the Miblo itself showed it.
Miblo 1.30.1
Publicada el
Animações do app na velocidade certa
Animations on the app screen run at full speed again: on 1.30.0 the Miblo dropped back to its slower processor clock between frames, so every app animation played at about half its speed (the Radar at 3 frames per second instead of 6). The clock the screen asks for now holds.
O Miblo baixa seus recursos de novo
The Miblo downloads its resources from miblo.ai again: on 1.30.0 it refused the server's answer, so the extra fonts, the other languages and the settings page's cards (Wi-Fi, System, pet) never arrived, and neither did a visiting friend's custom pet. After updating, the Miblo fetches them by itself, each file still checked by signature and hash.
Miblo 1.30.0
Publicada el
Mais memória e um firmware menor
The firmware holds 3.6 KB less in RAM and is 30 KB smaller: arcs are drawn by our own code (same pixels), buffers exist only while used, defaults live in flash, and the bridge talks to the Miblo in a compact binary format for sessions and cards (a large update needs 2.5 KB instead of 12 KB while it is read).
Fonts beyond Portuguese and English, the other five languages and part of the settings page are downloaded by the Miblo itself from miblo.ai after it joins Wi-Fi, each file checked by signature and hash; the request carries no identifier of the device. A screen shows what is downloading, item by item, with its size. Without internet, setup, pairing and updates keep working with what is built in.
The settings page lists the downloaded resources: the essential ones are locked with the reason, the optional ones can be deleted. "Fontes adicionais" (folded under Avançado) adds the font pack of another script when you need it.
O app na tela tem a vez
When an app is on the screen, the Miblo pauses what the app does not need (friends and visits, the Wi-Fi list, downloads) and gives that memory to the app's scene; everything comes back when the app leaves.
Alerts are never paused: an alert breaks in at once, then the sessions/limits screen stays until you have seen it, and only then the app comes back.
Pin an app with a condition: always, only when no AI session is running, after some minutes with nothing happening, or within a time window.
"Sempre mostrar os limites no topo": the limits bar at the top of every screen, even with an app on.
The SDK simulator, the desktop preview and screen.budget() estimate what an app costs the Miblo in RAM, storage and processing, in three bands measured on the device.
Configuração mais rápida e mais privada
The setup network comes up at once (it used to wait for memory that was already enough, and could stay unreachable for minutes), and setup mode runs only what onboarding needs.
Before saving the Wi-Fi, the setup page shows a summary of the Terms of use and the Privacy policy, accepted with two boxes.
The Miblo's name no longer goes in the open on the local network; an unpaired Miblo shows its full settings only on the setup network or for 15 minutes after joining Wi-Fi; saved Wi-Fi passwords are no longer kept in plain text; the settings pages send no referrer to miblo.ai.
Atualizar sem dor
A firmware update has the Miblo's whole attention: from the code on the screen to the restart, apps, streams and pushes pause and resume afterwards. The direct update is the path; the two-stage installer is named only as a last resort, after the direct update failed twice.
One minimum version on each side: a Miblo, a bridge or an SDK that is too old says clearly what to update instead of half working ("Atualize o Miblo no computador", "miblo update", "Atualize o SDK").
Celular
A message typed on the phone is kept on the phone until the computer confirms it, and resent if needed: reloading the page or locking the phone no longer loses it, and a restart of the computer's bridge no longer drops the queue.
Scrolling up in a conversation loads the earlier messages, 50 at a time, back to the start of the session.
Photos, screenshots, files and short videos can be sent from the phone into a Claude Code session, end-to-end encrypted; the file stays on your computer and the AI opens it from there.
Mais leve por dentro
Less CPU and fewer redraws: the ticker no longer re-measures its text every pass, pet mode draws its sign and vector pet once per frame, glyphs are looked up once per character, the time is synced only when the network connects, the CPU stays at 80 MHz on a static card and never at 160 MHz with the screen off.
Limites conhecidos
The Cyrillic, Greek, CJK, Arabic and Hebrew font packs exist as a mechanism only (no fonts or translations yet).
With "limites no topo" on, background frames and animations lose their bottom 20 rows.
A pet turn rarely fits a friend's visit.
Miblo 1.29.0
Publicada el
O rodízio é seu
The pet joins the carousel: a "Pet" turn (the mascot roaming the screen) with its own seconds, beside the sessions and each app. The App screen pinned under the rotation gets the pet turn too.
You arrange the order: in the desktop app's Apps tab the list "O rodízio" shows Sessões, each app and Pet with up and down arrows and each one's seconds; miblo apps order and miblo apps dwell pet do the same from the terminal. The Miblo's own page shows the order it follows.
"Voltar às sessões entre um app e outro" (on by default) keeps the rule you know: the sessions come back between one app and the next, and before the pet. Off, the list plays as arranged, one turn each.
One time per app, not two: the global "Cada app fica na tela por" is gone; each app (and the sessions, and the pet) has its own seconds, 15 s by default.
"Mostrar agora" obedece
Show now works every time: during the summary after a session ends, during the limits screens, twice within a minute (the second replaces the first), under every policy, and over another app's pin (which comes back after). It is refused, and says why, only when a session needs you or an alert is on the screen: the desktop app's toast and miblo apps peek carry the reason.
Quando um app pedir a tela
A fourth choice for when the apps show: "Quando um app pedir a tela". An app with news (a goal, a meeting in five minutes) asks for the screen and stays its own time, unless a session is waiting on you or an alert is up; a session merely running never blocks it. Jogo do time, Agenda and the other official apps with a moment use it.
SDK: screen.request({ seconds }) and screen.release() (TypeScript and Python), with an honest answer: shown, or refused and why (manual, waiting, alert, taken, no_card), and the gadgets that took it. One app at a time, five to 120 seconds, again a minute after the last hold.
Remover um app
Every app card has "Remover": an official app leaves your list (with "Desfazer") and waits in "Adicionar app"; a community app or your own program is removed for good.
Mensagens do celular no meio da vez
A message typed on the phone while Claude Code is working reaches the running turn at its next pause (a tool boundary), not only at the end: the phone says "Entra na próxima pausa da IA" and then "Entregue na sessão". A session whose hooks predate this version still gets it at the end of the turn, and the phone says so.
The phone app shows which build it runs (Ajustes, last line) and tells you to close it from the app switcher and open it again after an update: an installed app keeps its old page alive across deploys, which is why a confirmation could seem to be asked for every message.
O update tem prioridade
From the moment a firmware update opens its window on the Miblo until it restarts, nothing else runs: on the computer the apps, the live charts, the screen stream, the mirror and every push to that Miblo are paused and resume afterwards where they were; on the Miblo the animation, the pet's buffers, the live charts and the captures are released and only the update screen is drawn. The direct, one-step update is the path; the two-stage installer (update open --loader) stays for emergencies only, and the CLI only names it as a last resort.
Limites conhecidos
A pet turn of up to 120 s rarely fits a visit (the first visit comes one to three minutes into roaming).
An app's request during the setup or update screens is accepted but not shown.
Para desenvolvedores
GET /api/screen carries order, petS, sessionsBetween and request (seconds left of an app's request); POST /api/screen/rotation takes order, petS and sessionsBetween; POST /api/screen/request {seconds}; POST /api/screen/peek answers 409 {"error":"refused","reason":…} with the reason. The bridge: GET/POST /plus/apps/order, POST /plus/apps/dwell {pet:true}, POST /sdk/v1/screen/request and /release.
Miblo 1.28.1
Publicada el
Nada pisca sobre uma animação
An item over a scene (a number, a text) was erased and drawn again at every frame the animation moved under it, whenever the Miblo had no spare memory for a capture of it (the usual case). Now text and animation reach the panel already composed: the item is drawn in memory over the animation's pixels, strip by strip, and pushed once; first draws and changed values go through the same composition.
The scene's picture stays on the panel while the Miblo lends the animation's memory to a request, and comes back where it was; a scene short of memory at that instant is tried again a quarter of a second later, not five seconds later from its first step.
Mais memória livre, mesma qualidade
Resident tiles are stored in the smallest exact representation each one allows (a constant, 1 bit, 2 bits or the original 4 bits per pixel), with no colour dropped: the Radar's scene went from 11.7 KB to 7.4 KB and loads at full size (237 tiles, 193 px, 12 trail bands).
The sessions' texts live in one pool sized to their content instead of a maximum-size slot per row (2.4 KB less).
The custom pet gives its drawing buffers back whenever it is off the screen and when the pet format changes; its logo and identity stay.
The animation player's row buffer is half the size; a step that moves only sprites no longer re-reads its map from the flash.
Static RAM of the firmware: 54.8 KB → 51.3 KB.
Cadência medida, não estimada
Frame rates are no longer floored by the area of what changed; the cost measured on the Miblo governs the rate, and a draw is never charged twice. The screen stream checks it can send before preparing a status frame.
Atualizar sem reiniciar no meio
Sending a firmware to the Miblo no longer runs out of memory halfway: the firmware upload was the one request that took no memory verdict, and during the 20–40 s of the transfer the computer kept opening connections (the screen stream, the cards) that piled up inside the Miblo until it restarted. Now the computer goes quiet towards that Miblo for the transfer (its stream closed, nothing sent), the animation is stopped and the Miblo makes room before accepting; the result line prints the memory it had.
A Miblo on 1.28.1 also closes its listeners for the transfer and refuses, with the numbers, when it cannot hold it. miblo update open <id> --loader installs through the two-stage installer when needed (the small installer first, then the firmware), keeping the Wi-Fi.
Diagnóstico
GET /api/screen says what the panel shows (panel), why a scene is not loaded yet (anim.why: the App screen away, a request in progress, the hold, memory short), how often its memory was lent, and how many strips were composed (anim.compose); miblo screen status prints the reason. GET /api/info reports the idle heap and the pet's buffer bytes.
Miblo 1.28.0
Publicada el
Os apps ganham vida
Every official app now animates on the Miblo, with scenes drawn by our own code and kept in the flash (uploaded once, replayed for free) and short moments when something happens:
Jogo do time: your team scores → the crest alone fills the screen and pulses with rays, then "GOOOOOOOL do <time>" with the scorer and the minute; the opponent scores → a sad cloud rains on your drooping crest, then who scored; the final whistle → fireworks, the two crests side by side, or rain.
Clima: the weather of now behind the temperature: rain, snow, sun, drifting clouds, lightning, moon and stars; an umbrella moment when rain comes within the hour.
Cripto, Dólar e Euro, Bolsa: a rocket on +5 %, a falling coin on −5 %, a line crossing your threshold ("Avisar ao cruzar"), the sun rising and setting with the market.
Repositório, Docker, Status, Serviços, Hacker News: the CI pipeline moving (a siren when it fails, confetti when it is green again), a whale and its containers (one falls when it dies), a heartbeat that turns into a siren when a service goes down and a check when it is back, upvotes rising.
Tocando agora: a turntable with the album cover and a live progress ring. Notificações: a letter in the app's colour flies into a mailbox. Meu computador: a fan that spins with the CPU, heat, a charging battery.
Fusos: the first city's sky and a spinning globe. Radar: a plane crosses when one flies close. Agenda: pulsing rings five minutes before a meeting, a coffee on a free afternoon, confetti when the day's meetings are over.
No animation ever covers the text: every scene and moment is checked against the card's layout.
O carrossel do jeito certo
"No rodízio, sempre" is now a real carousel: sessions → app A → sessions → app B…; the sessions never stay out for longer than one app's turn, and a session that starts, needs you or finishes takes the screen at once.
Each app has its own time on screen (5–120 s), and so do the sessions ("Quanto tempo cada um fica na tela").
"Mostrar a tela no Miblo" and "Permitir alertas" are separate: an app can run only for its alerts (your team's goal) without entering the rotation.
"Mostrar agora" shows that app's screen for 10 s. An old pin no longer holds the App screen forever.
The animation follows the app's turn: every app animates in its turn, with no extra writes to the flash; moments share a common space and every app keeps its own scene.
Para quem cria apps
SDK 1.4.0: a card may have no items while your animation plays (the title stays in the header); status() says whether your animation is playing now or waiting for its turn, and whether your screen is allowed at all.
The animation kit used by the official apps (apps/lib/anim-kit.js) is documented for app authors.
Uma confirmação por hora
Messages from the phone or the web app to your computer ask for one confirmation per hour, not one per message: the grant now survives the app locking and reloading (on iOS the home-screen app reloads after a while in the background, which asked again every time). The message field says "Confirmado por mais N min · Travar agora"; "Trancar agora" in the settings ends it too.
"Controle avançado (Miblo+)" in the Miblo app: one confirmation on the phone allows the next changes from that computer for an hour (miblo plus confirm lock ends it; panic, remote off, revoking the phone or restarting the bridge end it too). Admitting a second phone still asks on its own, and the CLI still refuses AI agents.
App Miblo 1.10.0
The Apps tab looks right again (quiet hours as a proper card, consistent spacing), the per-app screen time, the screen and alerts switches, "Mostrar agora" that works.
Correções
The App screen no longer blinks while an animation plays: when the Miblo lends the animation's memory to a request for a moment (a card, a live batch, a status poll), the picture stays on the panel and, on the return, only the items drawn meanwhile are put back; nothing is cleared and nothing is drawn twice.
A scene whose memory is short at the instant it is asked for is tried again a quarter of a second later, where it was, instead of five seconds later from its first step: scenes now show from the first frame of an app's turn.
Scenes are taken at the first attempt even when the heap is busy right after the card (no more "busy" storms between the bridge and the Miblo), and the carousel keeps going through quiet spells.
miblo screen status (GET /api/screen) says why an animation is not loaded (not shown, a request pending, the hold, the heap, a file) and how often its memory was lent.
The fleet installer updates the "Smart Weather Clock" look-alike unattended.
Dates in every app follow the app's language.
Miblo 1.27.0
Publicada el
Gráficos ao vivo, fluidos de verdade
A chart that changes all the time (CPU, audio, a sensor, a speed) now has two modes. Near real time is what every card already does: the value comes with each card and the item's fx animates the change on the gadget. Fluid animations (live on a spark, ring or bar, with an id and a range): the program pushes samples at any rate with screen.push(id, value) and the Miblo plays them back on its own clock at up to 30 fps.
The screen stream: everything visual an app does now reaches the Miblo through one persistent, encrypted connection from the paired computer (port 8081, a handshake proving the pairing, every frame sealed with ChaCha20-Poly1305 and a strict counter); everything else stays HTTP. Live samples flow continuously with a small ~0.4 s buffer. When the stream is not available (older firmware, a weak network) the bridge falls back to batches of 3 s: that buffer is necessary and it costs a delay of 3 s, which is compensated because the next batch is loaded behind the scenes while the current one is being shown.
The computer draws, the Miblo only paints: for live sparklines and bars over the stream, the bridge renders the next frames with the Miblo's own drawing code and sends only the pixels that change, stamped with the moment they must appear; the Miblo paints them on time. A heartbeat chart went from 32–76 ms of drawing per frame to under 1 ms.
Limits: 2 live items per card, hz 1–30, seconds 1–5, a finite range; nothing is written to the flash. miblo screen status shows the stream ("Stream: ligado (8081) · RTT 8 ms") and each live chart ("Ao vivo: cpu · 30 fps real · 6 ms").
O Miblo cuida do que importa primeiro
One app at a time: only the app whose turn it is gets anything on the Miblo; the next one's files and card go when its turn comes, after the previous one is stopped.
AI sessions and alerts first: the sessions screen and every alert jump ahead of app traffic, and an animation or live chart gives its memory and processor back the moment one arrives.
Faster when an app shows: the processor goes to 160 MHz half a second before an app's screen comes in and back to 80 MHz after it leaves; text over an animation is composed once instead of redrawn every frame.
Smaller firmware: 40 KB less, with the same screens and the same accents.
Apps só de alertas e webhooks
Alert-only apps: an app may have no screen at all and only send alerts (screen: false and its alert types). miblo.alerts in both SDKs: send with a type and a dedupe key, test(), status() (why an alert would not show: off, quiet hours, rate limit). In the Miblo app: one switch per alert type, "Testar alerta", the history of the last 50, quiet hours. A new alert type starts off until you turn it on.
Webhooks (Miblo+): a private URL per hook at miblo.ai; GitHub, Stripe, Vercel, Sentry or any service that sends webhooks becomes an alert on your desk. The payload crosses our servers only in transit, sealed to your computer; the mapping runs on your computer, never on ours: presets, a from → to editor with {{ field }} templates and JS expressions, or a script, in a sandbox. Watch deliveries arrive, test and replay in the Miblo app.
Para quem cria apps
miblo apps new <nome> [--alerts], miblo apps dev (a 240×240 simulator in the browser drawn by the Miblo's own code, reloading on every save, with the app's settings, alerts and logs) and miblo apps check (the store's checks, locally). A starter kit without the plugin at miblo.ai/dl.
SDK 1.3.0 (@miblo/status, miblo-status): screen.push, live, miblo.alerts. The guide gets Gráficos ao vivo: dois modos and Apps só de alertas.
Apps
Demo ao vivo (18 in the store): both modes side by side in five scenes, with the fps the Miblo measures.
Meu computador: the CPU as a live ring and sparkline.
Radar: city search like Clima, a slow radar sweep with a phosphor trail.
"Usar minha localização" on every city setting (asks the computer's location; an approximate one by IP only after saying so).
Jogo do time: smaller crests centred on the time; "int." at half-time.
Settings are never free text any more: Notificações picks from the apps that actually notified on this Mac; quiet hours are two time fields. Dates in every app follow the app's language.
Celular e app Miblo
The phone chat shows your own messages ("enviando…", "enviada", "não entregue" with retry) and keeps them in the history. You verify once per unlock instead of on every message (up to 30 min, ends on lock or panic); "Pedir verificação a cada mensagem" stays as an option.
App 1.9.0: alert types and history, webhooks, "Usar minha localização", removing an app works again, disabling an app takes its screen off at once.
Correções
"Limites indisponíveis" no longer appears while limits are still valid: a failing source keeps the last good value until its reset, Claude and Codex never blank each other, and miblo limits --why tells exactly why a value is missing.
A disabled app's screen no longer stays on the Miblo; the App screen falls back to the Overview when the last app leaves.
The settings page at miblo.local always opens, even while an app animates.
Security review of everything above: no high findings; mediums fixed (stream takeover from the LAN, sandbox memory cap, quiet hours by an AI agent, webhook room routing).
Miblo 1.26.0
Publicada el
Apps que valem a mesa (17 na loja)
Meu computador (CPU, memória, GPU where readable, top process, network and battery when they matter), Agenda (reads the calendars already on your Mac or Outlook with no login; Conectar Google shows your Google Calendar on the Miblo within 30 s; Microsoft too; "Próxima: 14:30 · Review" with the countdown, Meet/Zoom/Teams named, alerts before a meeting), Clima (decisions first: "chove às 17h, leva guarda-chuva"), Bitcoin e Cripto, Dólar e Euro, Bolsa (your own tickers), Jogo do time (live score with the crests, a goal alert, the table line), Serviços (your sites up? alerts when one goes down and when it is back), Repositório (open PRs, CI, stars), Docker, Status (GitHub, Cloudflare, Vercel, OpenAI incidents), Hacker News, Fusos, Tocando agora (Spotify/Music with the album cover), Radar (the aircraft nearest your home on a radar background, model, distance, altitude, speed, a compressed photo; a peek when one flies close), Notificações (system notifications from the apps you choose — Slack, WhatsApp, Teams… — app, sender and count; text only if you want), and the Demo (see below). Eighteen more utilities remain installable but off the store.
Settings that are lists are selects now (team by league, coins, tickers, time zones), loaded from their sources and cached for 7 days; cities type-ahead. Free text only where no list exists.
App alerts: an app may ask once to send alerts ("Jogo do time quer enviar alertas: gol"); you allow it per app in the Miblo app. An important alert flashes the screen like Miblo's own; Miblo's alerts (needs you, permission, codes) always win and app alerts wait. Rate-limited per app.
Apps speak the computer's language; /miblo:app manages them from Claude Code; when the apps show is a choice (when nobody is working — default —, in the rotation, or only when asked).
Animações na tela, com técnicas próprias
Tiles, maps and sprites on the gadget (≤ 256 tiles of 8×8, 16-colour sub-palettes, flips, 30×30 maps, ≤ 16 sprites with transparency), redrawn only where they change; **built-in fx** on card items (sweep, count, slide, pulse, blink, orbit, rain, ticker); per-line perspective and rotation effects (rotate, zoom, perspective, wave, scroll) computed on the gadget from a few numbers; a low-poly mesh item (wire or flat); rectangle frames; 8 flash slots; an fps governor that keeps Wi-Fi, the pet and alerts alive. Real fps and draw time reported by the gadget.
For developers, one call:screen.animate('chuva.gif', { fps: 8 }) — the bridge decodes GIF/APNG/PNGs/sheets, quantises, tiles, dedupes, chooses tiles, rectangles or whole frames, warns in plain words, and miblo screen preview shows the result pixel-exact. A full developer guide (miblo.ai/sdk/animacoes) explains the engineering and the recipes. The desktop app and the phone play the same animations.
Demo app: five scenes that stress everything — a road in perspective, a rotating planet, water with a wave effect, a live dashboard of card fx, the Miblo logo as a spinning 3D mesh — uploaded to the flash once and replayed from there (the flash limits respected), with the fps and draw time measured by the gadget in the corner, and a listing that explains why it is hard on a 240×240 screen driven by an ESP8266 with ~50 KB of free RAM.
O app Miblo configura tudo (app 1.8.0)
One switch "Replies from the phone" (every session, including automatic mode); "Automatic tasks (no approvals)"; the apps' alerts switch; dynamic selects and type-ahead in app settings; "Conectar Google/Microsoft" buttons; animation previews in the Apps tab; everything the commands do has a control (installer/docs/parity.md).
Panic: on the phone (hold 2 s + Face ID/PIN) or in the app: every AI session on the computer ends and the bridge locks; only "Reconnect the bridge" on that computer brings it back.
Phone: approvals stay until their deadline and wait for the phone even when it is disconnected (a push notification wakes you: iPhone needs the app on the Home Screen); clear message when history is off; the approval card shows the time left.
A loja (miblo.ai/apps)
Submission is a 5-step visual wizard (no JSON): identity and screenshots, a card builder with live preview, a settings builder, the mandatory code package (plain Node, declared network hosts) with the scan shown before sending, review. Publishing needs Miblo+.
Every submission is scanned deterministically (forbidden modules, eval, undeclared hosts, obfuscation), reviewed by AI with guard rails against prompt injection, and approved by a human; the author sees the status and the team's reason, never the internal reports. Meus apps manages your published apps (new version, unpublish, delete, history).
Pages show who published, the last update, a changelog, five screens and 1–5 star ratings; "Últimas atualizações"; community code apps run on your computer in a sandbox (read-only package, own state folder, no child processes or raw sockets, fetch limited to the declared hosts; Node 22.15+).
New site pages: /firmware (every firmware with downloads; changelogs from this version on) and a real /sdk documentation (8 pages, PT/EN, mirrored from the code).
Studio
"Criar com IA" knows species: a lion gets a mane, a snake a serpent body; the result is checked by a second look before it is shown, and the chat says what it did.
Fixes / Segurança
Panic, automatic tasks, the sandbox, app alerts and the OAuth token storage are documented in SECURITY.md with what they guarantee and what they do not; the store's scanner resists regex/division confusion, indirect eval and runtime-built URLs; reviews are cached per code hash; app media caches one day.
Miblo 1.25.0
Publicada el
A tela do seu app no Miblo (Screen SDK)
An App screen of your own. The Miblo gets a new screen in its rotation, App, that a program designs: a card (a title and up to four things: a big number, a ring, a bar, a line of text, a tiny chart, in Miblo's colours and fonts), a frame (a whole 240x240 image: send a PNG or raw pixels and Miblo converts it, no other software needed), or both: a layer, the card drawn over the frame. Upload a designed background once, then change only the number: no flash is written. miblo mode app pins it; "needs you" and every Miblo alert still come first, and the program's name is always on it.
In the SDK.@miblo/status and miblo-status get screen.card(), screen.frame(), screen.layer(), screen.show(), screen.peek() and screen.clear(); the examples include a steps app with a sample background. The routes are under /sdk/v1/screen (docs/status-api.md "Screen").
Careful with the flash. A frame slot can be written once every 10 s and 100 times a day, checked on the computer before anything is sent; a photo too detailed for 64 colours is refused with its size. A typical designed background is about 5 KB.
Peek: an app can bring its screen to the front for up to 10 s when something matters, once every 10 minutes.
Many apps, one Miblo: every app has its own screen and the App screen moves from one to the next every 15 s (miblo apps rotation <seconds>, 0 to show only the pinned one); screen.show() pins yours. Frame slots belong to the app that wrote them.
Apps
Two official apps to start:Processador (is the machine choking, and by what?) and Bitcoin e Cripto (did it move? the price in your currency, and a peek on a 5 % move). Turn one on with miblo apps enable processador. They are plain Status API programs (miblo-apps), the same door any developer uses.
Your own program, the same way:miblo apps add "<command>" (from your own terminal), then miblo apps enable|disable|show|logs|remove <id>; Miblo starts it with the token, restarts it if it stops, and keeps its output.
An enabled app keeps the Miblo alive: while one is on, Miblo's background service stays up, and miblo apps enable starts it when needed; the Miblo app calls miblo apps start at launch.
On the phone too: the phone gets the App screen now and the list of apps (state, settings, whether one needs setting up).
Settings without files: an app declares what it needs (app.declare()), reads it with app.settings.get() and hears changes with onChange(); it can ask you (settings.request()), and the Miblo app shows the form, your phone reminds you and the Miblo says "Configure no app Miblo". miblo apps config <id> key=value sets them from the terminal. Values stay on your computer.
Screen packages from miblo.ai:miblo apps install <id> applies a card, settings and frames package signed with Miblo's apps key (its own key, not the release key; refused when not signed); miblo apps remove takes it off. miblo screen status|clear shows or clears the App screen.
Novidades no aparelho (firmware)
The App screen. A new screen in the Miblo's rotation that a program designs: a card (a title and up to four items: a big number, a ring, a bar, a line of text, a tiny chart, or two of them side by side) drawn with the Limits screen's fonts, ring and bar; a frame (a full 240x240 picture kept in the Miblo's flash, up to four); or the card over a frame. Only what changed is redrawn: a number that changes every minute never touches the flash.
Where it shows. With an App screen set, it takes its turn in the rotation next to Overview (and Limits, when the rotation is on), for as long as Settings → Screen → App screen for (s) says (10 s by default; 0 keeps it out of the rotation). Pin it with Screen: App in the settings or miblo mode app. A program may bring it to the front for up to 10 seconds (a peek), at most once every 10 minutes.
Miblo comes first. Alerts, "needs you", setup and codes always draw over the App screen; a session waiting for you shows the Overview's attention view even when the App screen is pinned. The program's name is always on the App screen, and a card can never use Miblo's own alert phrases.
Care with the flash. A frame slot can be written once every 10 seconds and 100 times a day; the count survives a restart. A damaged or incomplete frame is deleted, never drawn.
In the Miblo app too. The same screen code (WebAssembly) draws the cards in the desktop app and on the phone, pixel for pixel as the gadget.
Miblo Apps na loja (miblo.ai/apps)
A store for apps. miblo.ai/apps lists the official apps and the community's: search, categories (Meu computador, Dinheiro, Dia a dia, Notícias e dev, Esporte), a preview of each screen and what an app asks you to configure. Ativar no meu Miblo opens the Miblo app on that app (miblo://apps/enable/<id>); a community screen package installs with miblo apps install <id>.
Submit yours. A signed-in member submits an app (name, promise, category, icon, screenshots, the program's link, a card and up to four frames as PNG); the owner reviews it in the admin, and every approved package is re-encoded and signed by miblo.ai with the apps key before anyone can install it. Revisions go through the same review; a report hides an app at once (at most two per member per day) until it is reviewed.
The Miblo app 1.7.0 gets the Apps tab: the gallery with live previews, a switch per app, its settings underneath, "Show now", the log, and a setup card when an app asks for something.
Fixes / Segurança
Cards: the plugin refuses the gadget's alert phrases and the raw 1 KB limit exactly as the firmware does (shared fixtures).
Apps: child programs get only MIBLO_TOKEN, MIBLO_PORT, MIBLO_APP_ID and a short allowlist of the environment, never the shell's keys; an app exits with the bridge that started it; an offline gadget no longer holds a program's requests; the peek limit is per screen with a global bucket; at most 64 screens; package downloads are capped while streaming and https-only; hostile JSON in a package cannot crash the CLI before the signature check; app logs are capped.
PNG: the converter refuses images over 2048x2048 from the header and bounds every chunk; a decompression bomb costs about 130 ms and nothing more.
App packages are signed with their own key (APP_PACKAGE_KEYS), separate from the release key.
Store: a member's reports hide at most two apps a day; a moderator cannot restore what the owner hid; hidden apps are not described in page heads; names lose invisible and bidi characters; media is cached for a day, not a year.
Miblo 1.24.0
Publicada el
Sem o aparelho
The Miblo gadget is optional. Miblo installs and runs without one: the Miblo app, the pet and your sessions' status (on your phone too, with a free Miblo account) work on their own, and Miblo+ stays the paid plan. What a gadget adds is a screen on your desk, the pet at your desk, and visits between Miblos. A computer can be linked to your Miblo account with no gadget at all.
Pairing is a step you can skip. The installers (install.sh, install.ps1, "Install Miblo.command") ask "Have a Miblo on your desk?": Return pairs it now, l (or d in Portuguese) leaves it for later. The Miblo app asks the same at the end of the install (Pair now / Later). --no-pair still skips the question.
No Miblo answering is never an error. When nothing answers on your network, the pairing wizard says the gadget is optional and finishes (Esc in the picker, Return in the plain questions; r searches again), and the installers end normally with how to pair one later. /miblo:pair and miblo pair --wizard work as before.
Empty states instead of errors. With no Miblo paired, the app's My Miblos says "No Miblo paired" with Add a Miblo, miblo status and /miblo:status say the same in one line, and the app's Now tab, the status line and the hooks work as usual. The Claude Code start-of-session note about pairing is shown once, and says the gadget is optional (it used to come back every day).
Linking the account (audit 2026-10-08)
An AI agent can no longer link this computer to a Miblo account or unlink it. The account decides which phones may join this computer, so miblo account link and miblo account unlink (and so switching accounts) are refused under an AI agent; /miblo:plus now tells you the command to run in your own terminal (or Sign in with your Miblo account in the Miblo app) instead of running it.
With a Miblo paired, a change of account needs the code on its screen, as miblo server set already does. Linking asks for it once you confirmed the link code on miblo.ai, names the account about to be linked, and writes nothing before it (a refused link gives its token back to the site). Unlinking asks for it too. In the Miblo app you type the code on the Phone screen; from elsewhere, miblo account confirm <code> finishes it. No longer have that Miblo? Forget it in My Miblos and link again.
With no Miblo paired, linking still needs your own terminal or the Miblo app, the site asks your second factor again when you confirm the code, and your account gets a security e-mail for every computer linked or unlinked, with its name ("computer linked" / "computer unlinked", within the account's hourly notice budget). Unlinking still takes the account's phones off this computer.
A tela do Miblo no app
The Miblo's screen, live, in the Miblo app. The Now tab shows the Miblo's screen as it is right now: your sessions, the limit rings, "needs you", the quiet Desk, pet mode and the greetings. It is the gadget's own screen code (built from the firmware as WebAssembly), so it behaves exactly like the gadget. It wears the look of your first paired Miblo, My pet included, or the factory look when you have no Miblo. It follows the app's language and your computer's time zone.
No gadget needed. The screen in the app works the same with or without a Miblo on your desk. With a Miblo paired, the app reads its look from it every few minutes, only while the app asks.
Light on the computer. The screen draws 10 frames a second only while the Now tab is on screen, and stops while the window is hidden or another tab is open.
What the app's screen does not show: Wi-Fi and pairing screens, updates, visits between Miblos, and what reaches the gadget through its own commands (focus, timer, /miblo:say, reminders, meeting mode). See [docs/screen-in-app.md](../screen-in-app.md).
For tools: miblo status --screen adds the snapshot the gadgets get and the first Miblo's look (plain miblo status is unchanged). Firmware developers: make screenweb builds the module (emcc 6.0.10) and tests it.
Responder pelo celular em todas as IAs
"Você responde pelo celular. Se a sessão está trabalhando, a resposta entra quando ela termina a vez; se está parada, ela acorda e responde." No channel to accept, no new window, no system dialog.
Every AI tool Miblo shows takes replies from the phone (Miblo+). A reply typed while a session works goes in when it finishes its turn, through each tool's own end-of-turn hook: Claude Code, Codex, GitHub Copilot CLI, Gemini CLI and Cursor. The phone says "Entra quando a sessão terminar a vez", then "Entregue".
An idle session wakes up and answers. Claude Code (a background hook that wakes the session), Codex (codex queue) and OpenCode (Miblo's OpenCode plugin) through their official ways. Copilot CLI, Gemini CLI and Cursor have none: when the session runs in tmux or GNU screen, Miblo types the reply into its own terminal after checking that the session is the one in front; otherwise it goes in at the next turn end.
Approvals from the phone for Codex and OpenCode, as for Claude Code: only the prompts the tool itself shows, never anything it would not have asked. Copilot CLI, Gemini CLI and Cursor keep their own flow (status and replies).
Remote tasks continue from the phone. Answer a Claude Code task and it goes on, still in the background, with the same safe mode, time limit and Stop; miblo plus tasks open <id> (and the app's Abrir) opens it in your terminal where it stopped.
Fixed: remote Claude Code tasks inherited a marker of the session that started Miblo's bridge and could run without saving their transcript.
Every reply is shown on the computer (the gadget and a notification naming the phone) and kept in miblo plus audit. After updating, run miblo setup codex again (or let the bridge add it) and trust Miblo's two new hooks in Codex's /hooks; restart OpenCode, Copilot CLI, Gemini CLI and Cursor sessions to pick up the new hooks. Claude Code sessions started before the update keep the old reply channel.
Pareamento protegido na rede local
The pairing code never goes on the network any more (audit 2026-10-08, M1). Pairing a Miblo now runs a password-authenticated key exchange with the 4-digit code on its screen: your computer and the Miblo prove to each other that they know the code without ever sending it, and the pairing token is worked out on both sides, never sent either. Someone else on the same Wi-Fi who intercepts the pairing gets one guess at the code per attempt, counted by the Miblo's wrong-code lockout, and nothing they can study afterwards. The token signs every request from the first one (no rotation needed).
Firmware 1.24.0 only pairs this way. An older Miblo app or plugin can no longer pair it: update Miblo on that computer first. Pairings you already have keep working as they are.
A Miblo on an older firmware is updated first, in the same step. Miblo never falls back to sending the code in clear. When you pair a Miblo still on 1.23 or older (/miblo:pair, miblo pair, the installers' pairing step), Miblo says "This Miblo is on 1.23: updating it first", pairs it the old way only to run the update at once (the signed release, the update code on its screen), then asks for the new pairing code and pairs it the protected way, in the place of that temporary pairing. If the update cannot run (no internet, no firmware for that board, you stop), the temporary pairing is dropped and nothing stays paired on the computer (the Miblo's settings page may still list it until you remove it there). A Miblo once seen pairing the protected way is never paired the old way again from that computer.
For tools: on that path miblo pair <ip> <code> ends with exit code 5 (type the update code: miblo pair <ip> --update <code>, which ends with 6 once updated), and miblo pair <ip> --update-cancel gives up; /api/info and the mDNS TXT advertise pair: 2 / pv=2. Details in [docs/lan-pairing-pake.md](../lan-pairing-pake.md).
Fixes/Segurança
Security audit 2026-10-08, the computer-side Lows:plus.json's signature now also covers the history, the approval timeout and the task time limit (a plus.json from 1.21-1.23 keeps its switches; miblo plus status names the three to confirm again, once, with one miblo plus set … on your phone); the bridge reads at most one body per challenge and refuses an oversized one before reading it; "Parar" also stops what a remote task started outside its process group (setsid), and on Windows stops the whole tree from the first step; approvals.log is signed and chained, checked by the new miblo plus audit verify; miblo update rollback is refused under an AI agent; redaction also hides long random tokens, a hex key after a secret word, password X in a command and the values a tool gives under secret-named keys.
Miblo 1.23.2
Publicada el
Fix: replies from the phone never registered their channel. The command that registers the reply channel in Claude Code (claude mcp add) was given the server's name after the -e option, which takes several values, so Claude Code read the name as an environment entry and refused it — on every computer, since replies exist. The name now comes first. With replies on, the next start of the Miblo bridge registers the channel (nothing to redo), and the Miblo app's "turn replies off and on again" warning goes away. Sessions still need to be started with the command the app shows (Claude Code's channels preview).
Miblo 1.23.1
Publicada el
Fixes:
A new phone no longer waits for ever. After you typed the computer's code on the phone, the phone app threw away the computer's proof that the code was right, so it kept showing "Waiting for your computer" and never showed the sessions. The phone app (miblo.ai/app and a self-hosted relay) now keeps that proof and connects within seconds; a phone that reads it late still connects. The exact step is now covered by a test on both sides.
Replies from the phone now work when turned on with the phone's confirmation. Turning replies on (in the Miblo app, in a terminal or through the plugin) confirmed on your phone left them on without the reply channel in Claude Code, so the app said "turn them off and on again" for ever. The computer now registers the channel when the change is applied and whenever it starts with replies on. Nothing to redo: update, and the next start of the Miblo bridge registers it.
The code field of the computer's confirmation on the phone is visible in dark mode (border, background and a placeholder).
Miblo 1.23.0
Publicada el
Confirm on your phone, with the code your computer shows (Miblo+): turning on approvals, replies, history or new tasks, adding a task folder, or a longer wait or task limit no longer asks for the code on your Miblo's screen. Your computer (the terminal or the Miblo app) shows a 6-digit code; open the Miblo app on a phone you already use, check what it turns on, type the code and confirm with the phone's passkey (Face ID, Touch ID, fingerprint or PIN). Nothing changes before that. Three wrong codes cancel the request, and at most 6 can be asked in an hour. miblo plus confirm status shows the waiting one and miblo plus confirm cancel withdraws it. Turning things off still applies at once.
A new phone types the code, not your computer: when a phone signs in to your Miblo account, your computer shows a 6-digit code (in miblo phone pending, the Miblo app and the notification) and you type it on the new phone. The code never travels: phone and computer run a password-authenticated key exchange over it, so not even the relay or our servers can learn it or answer in the phone's place. Three wrong answers turn the phone away. On Miblo+, if this computer already has a phone with a passkey, you also confirm the new one there. miblo phone approve --code is gone; miblo phone deny <id> still turns a phone away.
One passkey per phone: a phone that already has a Miblo passkey reuses it (after asking once) instead of making a new one each time it joins a computer.
Approvals can wait up to an hour: a permission prompt now waits for your phone from 15 seconds up to 1 hour (miblo plus timeout <15-3600>, or the choices in the Miblo app), and the card on the phone counts down in minutes and hours.
Miblo app 1.5.0: shows the confirmation code on screen while your phone confirms a change, shows the new phone's code to type on it, and says which account this computer is signed in to ("Connected as <email>") with Sign out right there.
Security notices by e-mail: every use of a recovery (emergency) code, wrong or locked-out attempts at one (at most one e-mail an hour), every new passkey added to your account and every phone added with a new passkey send a security notice e-mail (a self-hosted relay sends no e-mails), so you know at once if someone else tries.
Fixes:
The approval card on the phone follows the wait set on the computer instead of stopping at 2 minutes.
Long waits no longer cut a permission prompt off after 5 minutes.
Security audit
The Miblo+ confirmation screen on the phone now shows exactly what will be switched on: the computer builds that text from the settings it will apply, and the settings are checked again when applied, so another program on the computer cannot show one thing and change another.
Computer folder names and phone names are refused when they carry hidden or direction-changing characters.
Miblo 1.22.0
Publicada el
Up to four Wi-Fi networks, no more factory resets (firmware 1.22.0): take your Miblo from home to the office and back and it joins whichever saved network is around, the strongest one (the one it used last wins a near tie). If none of them shows up for two minutes it opens its setup network as before, but now nothing is erased: pairings, name, pet and settings all stay, and it keeps looking for its networks in the background. A network you join through the setup network is added to the list. Your current network is kept on the update.
Change or add Wi-Fi from the settings page: the new Wi-Fi card (after the on-screen code) lists the saved networks and has Change / add Wi-Fi: search for networks (with signal bars), type the password and press Test and save. Miblo tries the new network while keeping the current one, checks that it reaches the internet, comes back and tells you how it went: saved (with its address on that network), or why not (wrong password, network not found, no internet), with nothing changed. Tick Make it the main network to have Miblo move there right away. Forget removes a saved network; the one in use is forgotten only after Miblo moved to another saved network that works. The password travels encrypted from the page to your Miblo.
From the terminal:miblo wifi list, miblo wifi add <name> (the password at a hidden prompt, or piped on stdin, never on the command line; plus the code on your Miblo's screen) and miblo wifi forget <name>. miblo settings --wifi opens the settings page at the Wi-Fi card.
Your computer follows your Miblo: after a move to another network the pairing stays, and your computer finds your Miblo again at its new address by itself.
A simpler settings page: the top now shows your pet, its name, its address, the firmware version and the Wi-Fi it is on. What people change most is right there (name, pet and look, Wi-Fi, firmware update); everything else sits in sections that open with a tap (screen and schedule, alerts and well-being, about you, looks and community, my pet, paired computers, advanced) and stay the way you left them.
Run your own relay server:miblo server set https://… — open source (download and README at miblo.ai/docs/servidor-proprio; code at github.com/marcus-campos/miblo-relay); the phone and account then never touch miblo.ai.
Fixes:
In the Miblo app's window, Code on the screen on the settings page did nothing: the page asked for the code in a browser dialog the app never shows. The code field, the confirmations (forget a network, remove a computer) and the factory-reset code are now part of the page itself.
A Miblo no longer turns "unauthorized" (needing to be paired again) when a Claude Code window not reloaded since the update still runs the previous Miblo next to the new one. The new pairing token is never stored where that older copy would send it in clear, and with firmware 1.22.0 the older copy keeps working for a week after the switch to the new token.
Once an older Miblo is seen running in another window, the current one stays in charge instead of handing your Miblo back to it after a quiet half hour.
/miblo:status says when the bridge answering belongs to an older Miblo (reload the other Claude Code windows), and says plainly when a Miblo really needs to be paired again; /miblo:pair then shows the code on the gadget's screen.
Miblo 1.21.0
Publicada el
Your Miblo account links everything: link the computer once with miblo account link (free accounts too), then sign in to the same account at miblo.ai/app on your phone. No QR codes to scan: the new phone shows on your Miblo and as a notification on the computer, and you tap Allow in the Miblo app and type the 6-digit code the phone shows (or run miblo phone approve <id> --code <code>). Nothing reaches a phone before you allow it at your computer with that code, and the phone only accepts computers it confirmed, so even someone who got into your account (or our servers) cannot read your sessions. Remove any phone with miblo phone revoke or on your account page. Everything stays end-to-end encrypted.
Conversations that read well on the phone (Miblo+): the history shows chat bubbles, formatted text and code, and tool cards (the file edited, the command run, what changed). It opens at the newest message, with a reply field right there. Passwords and keys are removed on your computer before anything leaves it.
New task from the phone (Miblo+): start a new run of Claude Code, Codex or Copilot on your computer from the phone. Each task is confirmed with your phone's passkey and runs only in the folders you allowed; turn it on in your own terminal with the code your Miblo shows on its screen (miblo plus tasks on). A Stop button ends it at any time.
Your token stays on your computer (firmware 1.21.0): with the firmware update, the computer signs every request to your Miblo instead of sending its pairing token, and the snapshot (session names, commands) travels encrypted on your network.
Your own pet on your phone: a Miblo running a pet from Miblo Studio now shows that very pet on the phone, live in the mood its screen shows (needs the firmware update to 1.21.0).
Miblo keeps itself updated, with or without Claude Code: the Miblo home checks for new signed releases by itself even when Claude Code installed Miblo, and miblo status shows whether Claude Code is really connected.
Fixes:
An older copy of Miblo installed by Claude Code no longer takes a freshly updated Miblo back to the previous version.
miblo setup no longer lists Claude Code as connected when its Miblo plugin is not installed.
The phone no longer misses a session's last message when it is written right after the conversation was read.
More kinds of passwords and keys are removed before anything leaves the computer (quoted values, cookies, command-line passwords, keys split over several lines), also from the tool shown on your Miblo.
Signing out on miblo.ai removes the phone app's connections from that browser, and another account signed in there never sees them.
Miblo 1.20.1
Publicada el
Fixes:/miblo:plus shows the code to confirm on the site right away (it used to stay hidden until the wait ended), and miblo plus link --wait 0 prints the code and returns at once.
Miblo 1.20.0
Publicada el
A smoother "My pet": pets from Miblo Studio are now drawn with smooth vector shapes, just like the built-in pets, instead of blocky pixels. Make yours by drawing it in the Studio, or describe it to the AI chat (Miblo+). Install it as before: its pet code on the settings page, or miblo pet install.
Miblos on this network: the miblo.local page shows each Miblo with its pet, so they are easy to tell apart. Identify makes the chosen Miblo show its name on its screen, and a search box finds one by name.
Your Miblo on your phone: the phone companion shows your own Miblo at the top, drawn by the same code as the gadget, in its colours and with its live mood (working, needs you, resting, pet mode). With several Miblos, swipe between them; each shows whether it is online. Only its name and look reach the phone, end-to-end encrypted.
Fixes:
With a Studio pet installed, the dashboard header no longer flickers.
Visits: a Studio pet visits as itself, not as the cat.
Visits: two Miblos in pet mode really visit each other again. A lost Wi-Fi packet could leave one showing "Visiting ..." while the other never saw its guest arrive.
A Studio pet too heavy to draw (far more shapes than any built-in pet) is refused when it is installed ("cost"), and one that ever made the drawing crash twice in a row is set aside for the cat, so it can never keep a Miblo restarting.
At night (with night mode on), Identify on miblo.local no longer lights up the screen.
Miblo 1.19.0
Publicada el
Miblo Studio and My pet: draw your own pet at miblo.ai/en/community/studio and install it on your Miblo as pet 21, "My pet". Paste its pet code (PET-…) or its full MPET1 code on the settings page, or choose its file; from a terminal, miblo pet install <code> (or /miblo:pet) does the same. "Remove my pet" takes it off again.
Miblo+ phone companion upgrades:
History: the last 50 messages of each session on your phone.
Replies (beta): answer a session from your phone.
Approvals with Face ID: allow or deny what a session asks for, confirmed with your phone's passkey (Face ID, Touch ID or fingerprint).
Letting a phone approve or reply is confirmed with a code shown on the Miblo's screen, typed in your own terminal: never by an AI agent, and only for that one request.
miblo phone list shows your paired phones and miblo phone revoke <id> removes one at once.
Free account vault on miblo.ai, with mandatory two-factor authentication (2FA).
Security hardening: Miblo's data folder is private to your user, the answers of Miblo's background service are authenticated, and a pairing QR code works for 10 minutes and one phone only.
Fixes:
Several sessions that start with the same characters no longer mix up their alerts on the Miblo.
A limit at 100% shows "100%" in the compact limits strip (it showed "10…").
Right after an update, while the previous background service is still running, miblo status says it is busy instead of stopped.
Miblo 1.18.1
Publicada el
A new Bit: pet 19 is now Miblo's own logo with feelings — two little bars that blink, look around, smile (^ ^), get scared (> <), nap (– –) and call you with a "!". On the desk and overview it's the logo's little box.
Paste a look: the settings page has "Paste a look": paste a MIBLO1: code copied from the miblo.ai community gallery and your Miblo takes that pet, eyes, accessories and colours (save to keep it). After "Copy my Miblo", a link takes you straight to posting it in the gallery.
Security hardening from an external review: the installers check Miblo's signed release before installing through Claude Code too, a refused firmware upload no longer holds the Miblo up, and text coming from the gadget is cleaned before it reaches your terminal.
Miblo 1.18.0
Publicada el
No more disconnects when your Claude Code windows run different Miblo versions. A window opened before an update kept restarting Miblo's background service: sessions appeared and disappeared, titles turned back into folder names and the gadget showed "Disconnected". Now the newest version stays in charge and the older window's activity still shows up.
Sessions stay on the gadget when Miblo updates, with their titles.
Usage limits for the AI you're using: the Limits screen shows the limits of the AI of the session in focus, with a small label (e.g. "LIMITS · Codex"), and the rotation cycles through every AI that reports limits. miblo limits lists them all. Today Claude Code and Codex report limits; the other tools don't make them available yet.
Copy my Miblo: the settings page has a "Copy my Miblo" button; paste the code in the miblo.ai community gallery to show your Miblo's exact look, rendered by the real firmware.
Miblo's tests no longer leave processes running on your computer.
Miblo 1.17.1
Publicada el
Miblo no longer needs Claude Code. It works with Claude Code, Codex, GitHub Copilot CLI, Gemini CLI, OpenCode and Cursor, on its own or side by side.
**New miblo command** in any terminal, with every command the /miblo: slash commands have, plus miblo uninstall. Miblo installed without Claude Code keeps itself up to date from signed releases, and miblo update rollback goes back one version.
Easier installers for macOS, Linux and Windows: in Portuguese (Brazil) or English to match your system, Claude Code optional, offer to connect your other AI tools, turn on automatic updates and ask to show your Claude Code usage limits on the Miblo. What they download is checked against Miblo's signed release before anything runs.
A new pairing wizard (miblo pair --wizard): a live list of the Miblos on your network that marks the ones already paired, and asks the Miblo you pick to show its code on its screen.
Tell your Miblos apart: every code screen and the waiting screen show the gadget's name big, with its unique Miblo-XXXX and IP under it.
"Waiting for the computer" no longer shows the pairing code on a paired Miblo; it says how many computers it is paired with.
Settings pages fit your phone and follow light or dark mode.
**http://miblo.local** always lists your Miblos when there is more than one, instead of jumping to the last one you opened.
Security hardening from our audits: stricter update checks, a safer uninstall and rate limits on the new pairing request.