# Harness > A native macOS developer tool that drives an iOS Simulator, a macOS app, or a web app with an AI agent so you can run real-user-style tests — not scripted UI tests. You write a goal in plain language and a persona. Harness launches your target — iOS Simulator (built from your Xcode project), macOS app (pre-built `.app` or built from source), or web app (URL in an embedded WKWebView) — and an LLM agent reads screenshots, taps/types/scrolls, and pursues the goal, narrating what it sees, flagging UX friction, and stopping when it succeeds, fails, or would give up. Three artifacts come out of every run: a verdict (success/failure/blocked), a replayable timeline, and a list of timestamped friction events. Models are pluggable: Anthropic (Claude Opus 4.7, Sonnet 4.6, Haiku 4.5), OpenAI (GPT-5 Mini, GPT-4.1 Nano), and Google (Gemini 2.5 Flash, Flash Lite). You bring your own API key for whichever provider you pick; keys live in the macOS Keychain. ## Project resources - [Source code](https://github.com/awizemann/harness) — Swift 6, SwiftUI, MVVM-F, native macOS app. - [Wiki](https://github.com/awizemann/harness/wiki) — architecture, services, agent loop, run-replay format, design system, contributor guides. - [Standards](https://github.com/awizemann/harness/tree/main/standards) — numbered architecture, code, and testing standards (read before contributing). - [Roadmap](https://github.com/awizemann/harness/blob/main/docs/ROADMAP.md) — public build order and milestones. - [Architecture overview](https://github.com/awizemann/harness/blob/main/docs/ARCHITECTURE.md) — system-level diagram and rationale. - [Agent prompts](https://github.com/awizemann/harness/tree/main/docs/PROMPTS) — system prompt, friction vocabulary, default personas (loaded as a bundle resource at runtime). - [Issues](https://github.com/awizemann/harness/issues) — bugs and feature requests. ## License MIT — https://github.com/awizemann/harness/blob/main/LICENSE