Repository navigation
feat(desktop): Lens.app for macOS, a menu-bar app that carries microsandbox - #280
Merged
Merged
Conversation
…andbox A Tauri app (desktop/) built as a .dmg on a Mac runner and attached to each release. The first launch puts the bundled microsandbox in ~/.microsandbox and shows the web installer in the app's window with microsandbox chosen; later launches start Lens and open it in the browser (passkeys need one). The menu-bar item opens, starts, stops and updates Lens. The web installer takes LENS_BACKEND_DEFAULT and honours LENS_NO_OPEN. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014VrJQhkYVDyhgVQcok4neG
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014VrJQhkYVDyhgVQcok4neG
18 of 22 tasks
The v0.7.0 release bumped the backend version without regenerating nextjs-frontend/openapi.json, so pre-commit's generate-openapi-schema hook failed on every PR. Regenerated with commands.generate_openapi_schema. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014VrJQhkYVDyhgVQcok4neG
18 of 22 tasks
desktop/project.json gives Nx lint (sh -n, shellcheck) and test (resources/check-lens-app.sh, the helper checks the Desktop workflow ran inline), so CI's Other projects job checks the app whenever desktop/ changes. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014VrJQhkYVDyhgVQcok4neG
This was referenced Oct 11, 2026
adeelahmad
added a commit
that referenced
this pull request
Oct 11, 2026
The README's Install section points Mac users with Apple silicon to Lens.app (#280, #352), labelled early since it isn't signed yet, and "In progress" drops it. Claude-Session: https://claude.ai/code/session_01HDx7PPUauyjMn1LZs8JAsS Co-authored-by: Adeel Ahmad <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Adeel · project thread
Before: on a Mac, Lens is installed from a terminal line or the "Install Lens.app" launcher, which only opens the web installer in the browser; nothing stays around to start, stop or update Lens, and microsandbox is downloaded during install.
After: each release carries
Lens-macOS-arm64.dmg. Lens.app (Tauri) carries microsandbox; the first launch shows the web installer inside the app's window with microsandbox chosen, then opens Lens in the browser. It stays in the menu bar with Open, Start, Stop, Update, Show Window, Show Logs and Quit.Lens opens in the browser rather than the app's web view because passkeys don't work in an embedded WKWebView for localhost.
How:
desktop/src-tauriis a thin Rust shell (window, tray, navigation guard);desktop/resources/lens-app.shdoes the work (install msb from the bundle into~/.microsandbox, run install.sh withLENS_WIZARD=1, start via.lens-sandboxor Compose, update by rerunning install.sh) and talks to the app with@status/@show/@open/@errorlines. The web installer gainsLENS_BACKEND_DEFAULT(preselects microsandbox where it runs) and honoursLENS_NO_OPEN. NewDesktopworkflow: helper checks on Ubuntu; onmacos-latestit downloads the latest microsandbox darwin-aarch64 release, verifies checksums, lints (fmt, clippy -D warnings), builds .app + .dmg, uploads the artifact and attaches it to releases (Release workflow dispatches it). Signing/notarizing kicks in only ifAPPLE_*secrets exist.🤖 Generated with Claude Code
https://claude.ai/code/session_014VrJQhkYVDyhgVQcok4neG
Generated by Claude Code