AI assistants can now read and manage your day
dayGLANCE's desktop app includes a local MCP (Model Context Protocol) server, so an AI assistant on the same computer, such as Claude Desktop or Claude Code, can see what's scheduled, add and reschedule tasks, and check goal progress. It is off by default.
- Local only. The listener binds to
127.0.0.1:7893and is never reachable from the network. The port is configurable - Three separate opt-ins, each with its own consent screen: reading dayGLANCE data, writing changes, and reading your device calendar. Nothing is exposed until you pass the copy that says what it exposes
- 12 tools and 3 read-only resources, covering today, any date, the inbox, goals, habits, routines and users
- Everything an assistant changes is undoable. Writes land in a session journal you can reverse one task at a time or all at once, from the bolt button in the app or from the macOS tray
- A kill switch in the same two places stops the server outright
- Device calendar events are always read-only, and any write to one is refused with an explicit error
- Writes are rate limited to 30 a minute. Repeated violations disable writes until you turn them back on
The tradeoff, stated plainly: an assistant that reads your data typically sends what it reads to its own AI provider over the internet. dayGLANCE transmits nothing, but it also cannot see or control what a client does with data it has read, and none of that is covered by dayGLANCE's own encryption guarantees. Review the privacy policy of any client you connect.
Setup: Settings → Local Integrations. Claude Code connects directly over HTTP with no bridge. Claude Desktop connects through @glance-apps/mcp-bridge, which the direct-download macOS and Windows builds can install for you with one button, and which is also on npm and as a downloadable bundle. Mac App Store builds use manual token configuration.
Stream Deck now lives in the same Local Integrations section. Existing Stream Deck setups keep working with no action.
Obsidian on Windows and Linux
The desktop app can now open a vault on Windows and Linux, not just macOS. Two changes come with it that affect every platform:
- Vaults reconnect on their own. A vault on an unmounted drive or a sleeping network share used to stay disconnected for the rest of the session after a failed launch-time restore, until you noticed and re-picked it. The five-minute sync poll and the app-refocus handler now retry, so it comes back when the volume does
- New notes with unportable filenames are refused, with a visible error naming the character. Names like
emails: urgent?.mdare legal on macOS but break the same vault when it syncs to Windows or Android. Notes that already exist keep working and are still written to. Only creating a new unportable name is blocked - Settings → Obsidian validates the daily-note pattern and new-notes folder as you type, and lists any existing vault filenames that won't survive a sync to another platform
Linux: Raspberry Pi, and an app that actually installs
The desktop app now builds for arm64, so it runs on a 64-bit Raspberry Pi OS and other aarch64 machines, with the tray, native calendar access and the MCP server all included. The Docker image has covered ARM since early this year, but the desktop app had not.
There is also a .deb. On Debian, Ubuntu, Raspberry Pi OS or anything else with apt, that is the one to take:
sudo apt install ./dayglance_4.4.0_arm64.deb
It puts dayGLANCE in your applications menu with its icon, and apt remove dayglance takes it away again. The AppImage is still there for distros without apt and for anyone who wants a single portable file, but an AppImage is never installed and never creates a menu entry by itself, which was a poor answer to "where is it now". The README covers both, including how to add a menu entry to an AppImage by hand.
Two smaller things came out of the same work:
- Every Linux download names its architecture. The x64 AppImage used to have no architecture in its name, so it read as the generic Linux build and was the one an ARM user would reach for. It fails with
exec format errorand nothing explaining why. Match the file touname -m:x86_64takesx64oramd64,aarch64takesarm64 - The app has its own icon. Linux builds were shipping Electron's default icon, and had no launcher category, so dayGLANCE landed in the catch-all "Other" section of the applications menu
More languages
German, Spanish, Italian and Portuguese translations were shipping in the app but never loading. They load now, and the remaining untranslated strings are filled in, including the Getting Started checklist.
A language picker in Settings lets you choose directly instead of relying on what the browser or device reports.
Improvements
- PLANNER: the SCHEDULED list can be hidden per project, so a project you're working through doesn't push everything else off the screen
- Mobile: a task note that is just a phone number gets a call button on the task row
Fixes
- Android purchases: three separate faults in the billing flow. The BillingClient connection lifecycle was wrong, purchase acknowledgement was unreliable, and a not-ready client showed a misleading message instead of saying it wasn't ready and reconnecting
- iOS sharing: a share into dayGLANCE could be silently lost. The blank flash the share sheet showed on the way in is gone too
- macOS tray: background actions from the tray now get an end-to-end acknowledgement, and a crashed renderer recovers instead of leaving the tray sending into nothing
- Quitting no longer trips over global shortcut teardown if the app never finished starting
Under the hood
- A failed sync cycle now rolls its pull cursor back, so the next cycle re-reads what the failed one missed instead of stepping over it
- The vault SSE reconnect backoff gained equal jitter on both mirrors, so a server coming back doesn't take every client's reconnect at the same instant
- A packaged-build startup crash, from a dependency that resolved in development and not in the built app
- Mac App Store builds compile out the bridge path correctly, fixing a file-exclusion bug that let it through
- Test coverage for the Electron bridge: the Stream Deck payload builder and tray action dispatch are extracted and tested, and the transcription path is pinned between the mutation layer and the UI write paths
- The codesign hook builds its arguments as an argv array rather than a shell string