v1.0.4 — Nisaba
Refine a design profile with your own agent
A measured profile is a guess: Nisaba picks one button, one input and one card out of everything on the page, and sometimes that is the chat bubble rather than the CTA. Refine with agent hands the profile to the Claude Code or Codex CLI you already have. It reads the screenshot and every control the page declared, then writes back a corrected spec.
The answer is folded on, not trusted. The agent may correct what was interpreted — colours, type, radii, spacing, components — while breakpoints, CSS variables and shadows stay as the page reported them, and anything missing or malformed keeps its measured value.
On a real profile this turned a 50%-radius, zero-padding, grey-on-blue "primary button" back into the actual hero CTA, and the primary colour from one used twice on the page into the one used 134 times.
Profiling now also files the raw samples beside the record, so future refinements reason over every control rather than the one that survived ranking.
Elements are copies, not pointers
A saved element is something to reuse in your own project, so it no longer stores or offers to copy the selector it was lifted from, and its CSS rule is named after what the element is.
Check for updates
It rendered the install button while the check was still in flight, offering an update to null. There has to be an update before there is anything to install.
Apple Silicon: Nisaba-1.0.4-arm64.dmg · Intel: Nisaba-1.0.4-x64.dmg
Both signed and notarized. If you are on 1.0.3 the in-app updater will offer this one. The .zip files and latest-mac.yml are what that updater reads — they are not the download you want.