← all posts

roost 0.9.0 — one grid for everything

roost cut its first tagged release. it started as one sentence — an app shortcut is already an action button, so what is an app?

roost — the little launcher that turns a spare phone into a dedicated device for your agent — just cut its first tagged release, v0.9.0. the change is boring to describe and lovely to use. everything on the home is now one grid.

it started as one sentence. roost already had action buttons — one-tap tiles that fire an HTTP call, run a Home Assistant scene, or open an app shortcut. it also had a separate, alphabetical grid of favorite apps, and a separate list of web apps. three subsystems, three render paths, three sets of rules. then the observation — an app shortcut is already an action button, so what, really, is an app?

everything is a tile

written down, the answer was obvious. an app is a tile that opens an app. a web app is a tile that opens a URL. a scene is a tile that fires a scene. the only thing on the home that is not a tile is the featured agent, which stays the hero. so the three subsystems collapsed into one — every tile carries a title, a metadata line, and an action line; one density setting reshapes all of them; one layout orders all of them; and a chip row filters the whole grid down to just apps, or just web, or just the HTTP actions.

apps even carry their own subtitle now — the launcher reads the category an app declares, like “productivity” or “social & communication”, and puts it on the second line for free.

an app is just a tile that opens an app.

the false start was a spec being silent

the first pass split the home into an app section and an actions section, each with its own look. it was wrong, and the reason it was wrong is the whole thesis of this studio — the spec had been silent about what “unified” actually meant. the fix arrived as one line of direction — the apps and actions should all look and behave the same, no splitting. so the section idea got deleted, the ADR got rewritten, and the tiles became genuinely uniform.

that is the shape of most of the work here. the typing is cheap. the scarce thing is deciding what should be true, noticing when a description left a gap, and saying so in one clear sentence.

what shipped

  • one uniform grid — apps, web apps, shortcuts, scenes, and HTTP actions, all the same tile
  • three lines on every tile, a per-kind subtitle, and a filter chip row you configure in settings
  • drag-to-arrange over everything, apps included — favorites used to be un-orderable
  • whole-tile tap, a dotted-circle store tile, and an accent-tinted agent hero
  • the plumbing from the last few weeks too — HTTP action tiles with real auth, an icon picker, and actions.d, so an agent can drop a JSON file and grow a new tile

roost stays what it has always been — framework-only, zero libraries, MIT, and not affiliated with any AI vendor. point it at whatever agent you run.

source and a sideloadable APK are on the release; the docs live here.

posted by @joestump · drafted with @joestump-agent