Changelog
What changed in each release.
Added
- Capture module grabs screenshots and records areas, screens, or apps.
- Screenshots save to the screenshot folder and copy to the clipboard.
- Recordings can include system audio and microphone tracks.
- The Nook's own windows are excluded from captures.
- Muse is a first-party agent installed from Settings → Agents.
- Muse sessions, approvals, completions, and errors appear in The Nook.
- Muse approvals respect Auto and Verify tool-check modes.
- Multiple countdown timers can run, stack, pause, restart, and ring together.
- iPhone widgets show idle and finished session counts.
- Remote setup explains busy tunnel ports and offers the next free port.
Changed
- Timer tiles keep one face, with simpler start and length controls.
- Finished timers stay visible and keep the island open until dismissed.
- The timer tape now drains smoothly with a softer crest.
- The compact timer arc now drains clockwise from the top.
- Timer settings honor preset and custom length switches.
- The compact weather slot stacks the sky above a bolder temperature.
- Weather updates focus on visible places and keep forecasts across launches.
- Weather stays responsive during outages and uses fewer network calls.
- Battery modules size to their energy details instead of leaving blanks.
- Layout editing reflows modules while preserving intentional gaps.
- Agent install rows show progress, success, and errors inline.
- Phone beta prompts disappear permanently after a phone connects.
- Terminal badges now show the terminal actually hosting each tmux pane.
Fixed
- Partial-width empty spaces in layouts can now be removed.
- Full-width layout tiles now show the left shrink grip when useful.
- Island pages no longer bleed together during panel slides.
- Mouse-wheel input no longer desynchronizes island pages and selected tabs.
- Opening idle pi extension dialogs no longer marks sessions as waiting.
- New agent windows without prompts no longer count as working.
- Keep-awake starts only after an agent actually begins work.
- Widget pushes retry after temporary relay failures.
- Weather recovers promptly after network reconnection.
- Apple Watch no longer double-alerts, and forwarded actions work.
- Phone reconnection no longer falsely reports another Nook instance connected.
- Terminal jumps and replies target the correct panes and tmux servers.
- Remote SSH masters close cleanly and recover from stale sockets.
- Volume mixer no longer silences apps when capture permission is missing.
- App updates now publish delta downloads and complete changelog notes.
Added
- Replies from iPhone, watch or island reach agents directly in iTerm2, Terminal or kitty
- kitty needs remote control enabled in kitty.conf; the app says so if it's missing
- Remove a module from its tile's own config popup, named with the panel it sits in
Changed
- Island bottom corners match the physical notch on every display
Fixed
- Hitting a usage or session limit ends with an error, including when the limit resets
- OpenClaw sessions now end turns properly instead of looking unfinished forever
- Right-click anywhere on a tile removes it in the layout editor
- The island opens promptly and smoothly, even while the app is busy with layout
- Island readings shrink to fit instead of being cut off on non-notch displays
Added
- Island stays visible on the Lock Screen showing agent working and waiting counts; on by default
- Any of the six Nook chiptunes can be assigned to any agent event in Sounds settings
- Volume mixer tile height is now user-controllable with grips in the layout editor
Changed
- Density picker now reshapes stat rows: compact drops labels, mini flows values inline
- Timer countdown uses a travelling tick crest instead of a plain progress bar
- Question chiptune swapped to call audio; unused incoming-call sound kind removed
- Layout editor uses an ✕ button in place of the old drop target
Fixed
- Notification sounds no longer overlap; one clip at a time, latest event wins
- Mirrored notifications stay silent where a chiptune already sounds
- Idle sweep completions no longer chirp with nothing surfaced
- Pi agent connection errors now surface as errors instead of reading as idle
- Memory tile fills tall tiles with more process rows instead of stopping at five
- Editor auto-fits agents and mixer tile heights to their content
Security
- iPhone relay pairing and messages are end-to-end encrypted.
- Weather lookups round locations and keep Apple credentials off Macs.
- Pairing codes and device tokens are stored hashed on the relay.
- Relay registration prevents anonymous takeover of existing paired installs.
Added
- iPhone companion pairing, approvals, questions, replies, history, and push notifications.
- Relay, Tailscale, and LAN connection paths for the companion.
- Timed and activity-based iPhone notification mutes in Phone settings.
- Phone settings card for requesting iPhone TestFlight beta access.
- Watch replies, multi-part questions, completion details, and notification actions.
- Home, Lock Screen, and watch-face widgets for agent fleet status.
- Weather module with saved locations and relay-backed forecasts.
- Countdown timer module, compact slot item, and floating action.
- Configurable floating action buttons around the expanded island.
- One-click remote host setup from ssh config or Tailscale.
- Remote hosts mirror this Mac’s installed integrations automatically.
- Custom agents can register identity, capabilities, and install wiring.
- Changelog tab under About with live, cached, and bundled notes.
- Onboarding now teaches the island, agents, panels, iPhone pairing, and extras.
- Module tiles declare features, density, overflow, and per-tile configuration.
- Layout editor supports gap removal, seam dragging, and drag auto-scroll.
- Panel modules can include Weather and Timer tiles.
- Floating actions can launch apps, shortcuts, URLs, commands, and power controls.
- Onboarding can send an optional trial reminder email.
Changed
- Agents panel rows resurface on turn completion, questions, and errors.
- Expanded agent rows stay stable except when important events surface.
- Questions now render inside their session rows.
- Approvals surface the island, and Allow can cover one session.
- Agent rows show integration capabilities and limitations.
- Remote session rows name their machine when hooks are current.
- Remote session rows no longer repeat “remote” twice.
- Remote hosts show live step progress without blocking local agent rows.
- Remote host removal deletes Nook entries while preserving user hooks.
- Agent slot squares fill three rows before showing +N.
- Phone settings now guide relay, Tailscale, and LAN pairing.
- iPhone connection status moved into Settings.
- iPhone conversations can optionally group by project.
- First iPhone launch explains the companion before asking for notifications.
- Power tile leads with draw and flow, shedding app lists first.
- Temperature tile pairs each die’s usage trace with its temperature.
- Keep Awake and other tiles shrink to their actual content.
- Only modules affected by density show the density picker.
- Module options open from each tile’s gear.
- Disk headlines and volume chips match Finder-style storage numbers.
- Battery slot now shows watts under the glyph.
- Session detail opens wider and renders Markdown tables, code, and lists.
- Island transitions now share one quicker, bouncier motion style.
- Floating action buttons ride the island’s expansion and collapse.
- Call interception now defaults off because it remains alpha.
- Nook Privileged Helper now covers all root-powered features.
- Chiptune sounds are quieter, and calls no longer ring on Mac.
- Phone and watch widget wording now says what the numbers count.
- Plugin installs now keep one canonical copy and link hosts to it.
- Custom agent installs link declared plugin bodies instead of copying them.
- Remote host setup reports skipped missing agents instead of writing unused configs.
Fixed
- Replies to remote sessions target the local ssh pane, not colliding panes.
- Jumping to remote sessions focuses the local ssh window.
- Remote sessions vanish promptly when their machine disappears.
- Codex sessions report again after updating the installed hook.
- Remote setup writes only agents present on that machine.
- Repeated remote source values now accumulate correctly.
- Re-pointing a host replaces old Mac entries instead of duplicating them.
- Remote probes no longer prefer stale socket files.
- Remote hosts with URL-form addresses report again.
- Remote command checks now time out instead of hanging forever.
- SSH masters and media adapters stop spinning at EOF.
- Remote rows prune after silent killed sessions, including pending approvals.
- Codex native approvals and questions now appear and answer correctly.
- Codex native requests no longer disappear after unrelated tool activity.
- Session-end cleanup dismisses stale cards and resets session Allow grants.
- Released bridge requests no longer answer decisions nobody made.
- Hook timeouts clear abandoned approval cards.
- Liveness pings no longer erase completions, approvals, or prompts.
- Content-less session noise no longer keeps dead rows alive.
- Notification events no longer replace an agent’s actual reply.
- Injected task notifications no longer become user prompts or titles.
- Hermes clarify calls now render as questions.
- Hermes turns complete at post-LLM events, not process exit.
- Opencode 2.x plugins now report sessions again.
- Repaired opencode plugins take effect after the service restarts.
- Terminal-only questions are read-only on phone and watch.
- Phone and watch notifications use consistent titles, subtitles, and bodies.
- Paired iPhones no longer crash on launch.
- Notification taps no longer crash the iPhone app.
- Revoked phones return to pairing instead of staying stuck.
- Valid session updates no longer get rejected as replays.
- Some long iPhone notifications now deliver reliably.
- Foreground phone notifications match push notification wording.
- Widget data refreshes independently while the app is closed.
- Phone widgets show actionable counts and sessions more clearly.
- Hourly Weather starts at the hour in progress.
- Dragging tiles no longer drops about half a band low.
- Moving tiles no longer resizes the tile or its neighbor.
- Dragged tiles reflow neighboring tiles live before release.
- Resizing into a neighbor moves it instead of blocking.
- Module cards clip to their assigned box instead of overlapping neighbors.
- Chrome-less agent lists no longer reserve phantom padding.
- Session detail now hugs short replies instead of growing to maximum height.
- Expanded panels now reserve the real tab strip height.
- Floating buttons close only after the island has collapsed.
- Campfire animation no longer causes compact idle CPU churn.
- Waveform drawing no longer relayouts the whole island repeatedly.
- Audio capture lifecycle no longer freezes the UI thread.
- Connected-to-power Keep Awake now follows plug and unplug events.
- Lid-closed Keep Awake now survives clamshell sleep through the helper.
- Lid-awake toggles now reflect helper replies correctly.
- Power-source teardown no longer leaves crash-prone stale callbacks.
- Battery flow and power ribbon watts now add up correctly.
- Battery charge-limit calibration pauses are identified correctly.
- Draining-to-limit labels were removed to avoid misleading states.
- Battery condition now shows macOS’s real service state.
- Battery capacity and temperature read correctly on newer macOS.
- Charge gates no longer release gates owned by other software.
- Disk activity rates now measure bytes per second correctly.
- Disk graphs no longer start with a fake zero sample.
- Disk sampling stays owned by the active panel, not Settings previews.
- Volume chips show real fill and skip Finder-hidden mounts.
- Power and Disk panes avoid several stale, misleading, or clipped readings.
Added
- Session rows show project and branch identity with a live state line.
- A rolling session topic built from substantive prompts.
- Per-turn reply cards in each session row.
- A call banner that appears while a call is ringing.
Changed
- Call banner wording distinguishes an active ring and keeps missed calls out.
- Call action labels stay on one line, stacking when the row runs out of width.
- Grouped session rows drop the redundant title.
- Idle sessions no longer show leading padding.
Fixed
- Call actions press only their own button; "End Call" no longer matches "Send".
- The last tool stays visible after it finishes.
- Fan spin animation display.
Added
- Extra brightness in Additional Options spends an XDR panel's HDR headroom past the usual maximum, with an intensity slider.
- Mosaic editor for rearranging your panel layout.
- Waveform slot appears for sources without artwork, like Zen and Firefox.
Changed
- Call detection wakes on accessibility events instead of polling the window list four times a second.
- Mosaic layout improvements.
Fixed
- Monitor speaker controls are verified once and the probe restores the level, so route changes stop stepping a display's own volume.
- Call detection keys on bundle ids and call banners, so localized window names no longer hide or fake a ring.
- Battery charging band shows as soon as wall input exceeds draw.
- Volume mixer lists audio players that are no app, like mpv and podcast CLIs.
- Route pickers no longer list the mixer's own private devices, so an app's output target stops flickering.
- Waveform audio tap follows slot changes during browser playback.
- Charge limits hold exact percents, like 87%, natively on macOS 27.
- Dragging a charge limit under the OS floor asks for the helper; the adapter gate holds the cap otherwise.
Added
- Volume mixer: per-app volume, mute, and independent output routing.
- Master output, system sounds, and microphone pickers in one panel.
- Network module shows public IP, ISP, ASN, location, gateway, and DNS — each copyable.
- Network module lists active interfaces, flags VPN as default route, totals bytes since boot.
- Disk panel monitors live read/write throughput, capacity, and SMART health.
- Speed test run button always available; failures report a reason.
- Keep-awake timed and power-based modes with lid-awake pin.
- Now-playing track and source details in the music module.
Changed
- Network identity and interface monitoring expanded into a dedicated section.
- Keep-awake improvements for power and timer behavior.
Fixed
- Audio route CFString lifetime bug.
Added
- Agent plugins detected as drifted, with reason and a Repair button.
- Keep Mac awake during agent runs while sessions are active (Advanced settings).
- Release notes card in General settings, plus changelog in update descriptions.
Changed
- Charge-limit and fan controls wait until a matching helper build is installed.
- Fans and OS notifications show an Enable-helper option where needed.
- Code was reorganized into clearer folders, with no behavior change.
Fixed
- Keep Mac awake during agent runs: Advanced settings holds off idle sleep while any agent is working or waiting on you.
- Settings open reliably from the island gear menu.
- Privileged operations use one installer path with consistent signing; fan control and charge limiting work correctly again.
- Temperature sensor selection sources readings reliably.
- opencode sessions keep the model identity through Stop envelopes.
Fixed
- Settings not opening from the island gear menu.
Added
- First-run onboarding: interests, panel shaping, slot choices; replayable from Settings.
- Day modules: tap-to-edit events, calendar-color dots, access gates.
- Power flow and significant-energy sections, charge limit top-up mode.
- Ship DMG installer with appcast; drop the zip.
- Report a bug from the About pane; Sentry crash reporting.
Changed
- Agent approvals terminology; island "Collapsed" renamed to "Compact".
- Bridge endpoint baked into `~/.nook/endpoint` for plugins.
- Plug/charge state read from IOPS (registry keys lag ~30 s).
- License check timeout improved.
Fixed
- Call-detection scrim faked rings; nil panel ids crashed Settings unwraps; media-key tap teardown leaked run-loop sources; empty sessions read in-flight; interrupted pi turn sent no last assistant message.
Added
- Call band: caller photo, live waveform, route pickers, banner suppression.
- Music interception service and battery thermal service.
- Power panel: wall-input wattage, charge limit policy, top-up mode.
- External brightness controls; keyboard system; global slot ordering.
- Report-a-bug About entry; Sentry crash and performance reporting.
Changed
- Island sequencing deepened behind IslandSurface; settings unified behind PaneShell.
- Media-key handling: peek stacks for call and media bands.
Fixed
- NowPlaying auto-pause for browser sources; battery module; sizing and expansion bugs.
Added
- Agent session cards: status verbs, slot config sheet, approvals.
- Media, call, power, Day modules; Settings with per-pane cards.
Fixed
- Initial public reliability pass.