What is a .harness file?
A .harness file is the package WebHarness opens on Mac: your web build, product identity, declared local capabilities, and release path in one file your team can inspect.
Definition
A Harness is the product layer around a web app.
What travels inside
Web build, identity, boundary, release path.
The point is not to hide complexity from your team. It is to make the important product facts easy to inspect.
Web build
The production app your team already ships.
Identity
Name, icon, developer, and product context.
Entry point
The file WebHarness opens as the Mac surface.
Capability boundary
Local access declared before it can be requested.
Release path
A clear route from internal package to wider Mac release.
Why it matters
Browser-only and terminal-only apps do not have a safe Mac boundary.
Useful AI apps and internal tools often need files, vault data, notifications, local workflows, or desktop context. WebHarness keeps that power declared and inspectable before a web app can ask for it.
Inspect before trust
A Harness shows what the app can ask for.
- Product identity is visible before opening.
- Native capability intent is declared up front.
- Release confidence can grow with the product.
From package to app
Start as a Harness. Become a Mac app when it matters.
Early teams can share a Harness and learn quickly. When customers, procurement, support, or brand trust matter, the same product boundary can move into a managed Mac release.
FAQ
Common questions about `.harness` files.
Is a Harness a new framework?
No. A Harness starts from the web app your team already ships and adds the Mac product boundary around it.
What can a Harness ask for?
Only the capabilities the product declares and the user approves. The boundary is visible before the app touches local power.
Can a Harness package an internal tool?
Yes. Internal dashboards, admin tools, support consoles, and agent workflows are good first Harness candidates.
When does a Harness become a branded Mac app?
When customers, procurement, or support need a wider signed release, the same product boundary can move into a managed Mac app and installer path.

