{"schema_version":"seaotter.driver_install_manifest.v1","name":"SeaOtter Driver Agent","kind":"native_gui","surface":"desktop_app","platform":"darwin","min_os":"14.0","version":"0.1.0","bundle_identifier":"ai.seaotter.driver-agent","protocol":{"protocol_version":"agentos.driver_broker.v1","receipt_schema":"agentos.native_app_runtime_receipt.v1","verdict_schema":"agentos.app_driver_receipt.v1","contract_url":"http://api.seaotter.ai/api/v1/app-drivers/e2e/contract","capabilities":["read","write","destructive"],"requires_lease":true,"endpoint":"loopback://seaotter-driver-agent/exec","transport":"one-shot exec: stdin DriverRequest JSON / stdout DriverResponse JSON"},"distribution":[{"asset":"SeaOtterDriverAgent","role":"executor","required":true,"archive":"zip","download_url":"http://api.seaotter.ai/api/v1/app-drivers/native/download?asset=SeaOtterDriverAgent","sha256":"053108c5ae6b06342200ee07f4ba2c26c3754029f4fdf6b83624b633e5d432a9","executable_sha256":"01e3948e60eb8414c9eeda2ca887379c39a6ff734d1e5bf6cd5af2bef1d198a3","size_bytes":155537,"codesign":{"team_id":"98LA646PC3","identity":"Developer ID Application: Jinhua Wang","signing_identifier":"ai.seaotter.driver-agent"},"notarized":true,"stapled":true},{"asset":"SeaOtterDriverMenuBar","role":"oversight","required":true,"archive":"zip","download_url":"http://api.seaotter.ai/api/v1/app-drivers/native/download?asset=SeaOtterDriverMenuBar","sha256":"4a0289142f902928ae1d604904ab355a5460af1701915324362c20907f3fc3ce","executable_sha256":"66ed5fda2b6a3ee02e7525a01ac3dbb18933a9151738f546da964326f62186f8","size_bytes":168384,"codesign":{"team_id":"98LA646PC3","identity":"Developer ID Application: Jinhua Wang","signing_identifier":"ai.seaotter.driver-agent.menubar"},"notarized":true,"stapled":true}],"install":{"auth":"public — no key needed to download. An eval API key is used only when the driver SENDS graded work to the eval API (metered), never to obtain the tool.","download_command":"curl -fsSL 'http://api.seaotter.ai/api/v1/app-drivers/native/download?asset=SeaOtterDriverAgent' -o SeaOtterDriverAgent-0.1.0.zip","install_path":"/Applications","idempotent":true},"harness_integration":{"bundled_harness":false,"harness_agnostic":true,"paths":[{"name":"stdin/stdout contract — any harness or script (available now)","how":"exec `SeaOtterDriverAgent run`: write a DriverRequest JSON to stdin, read a DriverResponse from stdout (exit 0 ok / 2 some-failed / 3 bad-input). Universal — no SDK, no language lock-in."},{"name":"AgentOS-managed native_gui (available now)","how":"agentosd resolves it as a native_gui DriverInstance and drives it under a single-holder GUI-seat lease + verifier — the enforce/managed path."},{"name":"MCP facade — ergonomic wrapper for MCP harnesses (planned)","how":"a local MCP exposing native_macos_app_state (look) + execute_native_macos_actions (act) over the same contract, wired into Claude Code / Cursor / Codex / your harness via `install.sh`, mirroring the hosted OtterScore MCP."}]},"permissions":{"required_grants":[{"tcc":"Accessibility","usage_key":"NSAccessibilityUsageDescription","gates":"input + AX injection","required_for_health":true},{"tcc":"AppleEvents","usage_key":"NSAppleEventsUsageDescription"}],"optional_grants":[{"tcc":"ScreenRecording","gates":"screenshot evidence only","required_for_health":false}],"grant_instructions":"Run the app once, then System Settings > Privacy & Security > <pane> > enable SeaOtter Driver Agent. macOS requires a visible signed app (the menu-bar app) to attach grants to."},"verbs":{"self_check_command":"SeaOtterDriverAgent self-check","self_check_schema":"{ accessibilityTrusted, screenRecordingGranted, healthy }","register_command":"SeaOtterDriverAgent register","register_schema":"DriverInstanceManifest { kind, surface, capabilities, requiresLease, endpoint, protocolVersion, bundleIdentifier, platform }","run_transport":{"stdin":"DriverRequest","stdout":"DriverResponse","exit_codes":{"0":"ok","2":"some-failed","3":"bad-input"}}},"agent_flow":["discover: GET /.well-known/seaotter-driver-agent.json","download: GET each distribution[].download_url with Authorization: Bearer sk-otter-...","verify: shasum -a 256 <zip> == sha256; sha256(Contents/MacOS/<exe>) == executable_sha256","grant: install .app, run once, enable Accessibility (required) + Screen Recording (optional)","register: `SeaOtterDriverAgent register` -> create a native_gui DriverInstance (requiresLease=true)","self-check: `SeaOtterDriverAgent self-check` until healthy:true","drive: ResolveDriver -> BindDriver(GuiSeat lease) -> exec DriverRequest -> receipts -> verifier verdict"],"gatekeeping":["protocol match","GUI-seat lease required (native)","explicit-allow consent on target app","write actions require frontmost-target match","verdict pass requires frontmost-match + binary identity per write"],"privacy":"structural metadata only; screenshots are do-not-train evidence"}