ONIX macOS Client¶
The ONIX macOS client is a native SwiftUI application, developed in the onix-macos
repository, that hosts the ONIX web frontend inside a native window and optionally runs
a small local automation server. This page documents what is verified about it at the
reviewed pin.
Source identity at the reviewed pin¶
| Fact | Value |
|---|---|
| Repository remote | https://github.com/onixlab-ai/onix-macos.git |
| Reviewed ref | refs/remotes/origin/main |
| Commit | 984bdf6cb7b7fe187931665a4b8d022bae8330d9 |
| Tree | 0d93fcf96ffda208fbafb314a7ee863ac68e6787 |
| Marketing version | 0.2.9 |
| Build number | 55 |
| App bundle identifier | ai.onixlab.onix.macos.dev |
| macOS deployment target | 14.0 |
Version and build were read directly from the Xcode project's build settings for the
target that carries the ai.onixlab.onix.macos.dev bundle identifier, and they match
the values recorded for this pin elsewhere in this documentation set. The repository's
Xcode project file still carries a legacy name and also contains additional targets
left over from an earlier, differently-branded multi-platform codebase (widget
extensions and other platform targets); those are not part of the reviewed ONIX macOS
product surface and are not documented here.
What the app provides¶
The app is a WKWebView shell: it loads a configured ONIX frontend origin and presents it as a native macOS window, with native menu-bar and window-management chrome around it. It ships no chart engine, no market-data pipeline, and no order-routing logic of its own — every capability a user sees (charts, screener, strategy workspace, connections), when an authenticated ONIX session is loaded in that WebView, is rendered by the ONIX frontend, the same code that also serves the web product.
Endpoint configuration is explicit rather than defaulted to a live host: the app models "which ONIX deployment am I pointed at" as a named profile (local / custom / staging / production) that can resolve to a configured origin or explicitly report itself as unconfigured, with a documented reason. An unset or malformed endpoint fails closed rather than silently falling back to any hard-coded host.
Local MCP host role¶
The macOS app can run a local MCP (Model Context Protocol) server that lets an MCP-capable AI client — such as Claude Code — drive the running app through a small, typed tool surface. This is a genuinely local capability: the server binds only to the loopback interface and is intended for use by tools running on the same machine as the app. Full detail on what this host exposes and how it is secured is documented separately in The macOS MCP Host and MCP Safety and Scope; the summary relevant to this page is:
- The listener binds exclusively to the loopback address, enforced at the operating-system level rather than by application-level configuration alone.
- Every request must be authenticated with a credential obtained from inside the running app; there is no anonymous or unauthenticated path to any tool.
- Order placement and order cancellation are not part of the local host's supported, default-scope tool set. These tools were removed from the registry entirely rather than merely disabled, and no default-scope configuration setting reintroduces them. A separate diagnostics capability exists for support use, is off by default, and is outside the boundary this statement describes; this documentation does not describe what it exposes or how to enable it.
- The mutations that default-scope tools can perform are bounded to the running app and its own loaded session: persisted draft strategy saves, submitting a backtest to the backend, and changing local chart, screener, or connections-console state. None of these place or cancel a trade.
This is a verified, source-level claim about the reviewed pin's tool registry and dispatch guard — not a claim that no further review has ever found or will ever find an issue in it. See MCP Safety and Scope for the honest statement of review status.
Platform requirements¶
- macOS 14.0 or later (the deployment target recorded in the build settings for this target).
- App Sandbox is enabled, with only
network.clientandnetwork.serverentitlements granted — no broader filesystem, hardware, or personal-information entitlements are present for this target. - The app deliberately carries no associated-domains entitlement: an earlier, differently-branded build of this codebase claimed a domain this product does not own, and that claim was removed rather than re-pointed at an unverified ONIX domain.
A known caveat: bridge/frontend pin parity requires revalidation¶
The local MCP tool registry's browser-bridge contracts (the typed globals the ONIX
frontend installs for chart, editor, screener and connections access) were verified
against a specific frontend commit, referenced in source comments by its short hash.
That commit, dd17521db3da62cbb77cc80bed0fbb97368e46ec, is an ancestor of the
frontend commit this documentation set otherwise treats as current
(99f49dae6368414896bf2858cb848f5a7c7fcf98) — meaning the macOS bridge contracts have
not been reverified against everything the frontend has changed since.
Status: unverified for any claim that depends on exact bridge/frontend parity at
the current frontend pin. The tool registry's behavior when a bridge is missing or has
changed shape (a typed "unavailable" response, not a crash or a silent wrong answer)
is itself a verified, source-level property — but whether every bridge method the
registry expects still matches the current frontend's implementation has not been
reverified since the frontend moved past dd17521d.
Distribution¶
This client is private, test-stage software. No App Store listing was found for it, and it is not generally available; see Support Boundary for the precise language this documentation set uses about availability, and do not read anything here as a claim of public release.
Evidence and source pins for this page
Verified. Current behaviour, confirmed in source at the pinned commit.
Verified on against the following immutable sources:
macos@984bdf6c:MCPServer.swift (blob 05f763c1976410fbab50937a3c3c0fdd1583727e)macos@984bdf6c:MCPTools.swift (blob a03bb24902511f8e20430092e2e47acd581d88fd)macos@984bdf6c:project.pbxproj, target ai.onixlab.onix.macos.dev (blob 6cdff534e4e7b6e680b692e9c410be5195906ab0)macos@984bdf6c:ONIX_macOS.entitlements (blob 7c40a0d828b92f03252c1fa62064e40bae243b62)
Status tokens are defined on the documentation and status model page. Every pin on this site is listed under versions and source pins.