Run computer-use agents in a cloud browser or on a desktop with the Agents API, build your own agent on Holo models, or run Holo on your own machine.
Was this page helpful?
⌘I
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"H Platform Docs","description":"Documentation for H's computer-use platform: the Agents API and its holo CLI, the Holo Models API, and the HoloTab Chrome extension.","colors":{"primary":"#1d1d1f","light":"#ececee","dark":"#1d1d1f"},"logo":{"light":"https://mintcdn.com/hcompany/L5LqOFzmZLEQxpJC/images/logo-light.svg?fit=max\u0026auto=format\u0026n=L5LqOFzmZLEQxpJC\u0026q=85\u0026s=ebe486aac40d915a9131cabe585cd546","dark":"https://mintcdn.com/hcompany/L5LqOFzmZLEQxpJC/images/logo-dark.svg?fit=max\u0026auto=format\u0026n=L5LqOFzmZLEQxpJC\u0026q=85\u0026s=0f02be9ba599289f422dd675f6114c4a"},"favicon":"https://mintcdn.com/hcompany/vPduESIuGEAUuxP5/images/favicon.svg?fit=max\u0026auto=format\u0026n=vPduESIuGEAUuxP5\u0026q=85\u0026s=9e87b8a23ed774ed37410e4fc9a8a251","api":{"playground":{"display":"interactive"},"mdx":{"auth":{"method":"bearer","name":"Authorization"},"server":["https://agp.eu.hcompany.ai","https://agp.hcompany.ai"]}},"appearance":{"default":"system"},"navbar":{"primary":{"type":"button","label":"Log in","href":"https://platform.hcompany.ai/?product=computeruseagents\u0026source=docs"}},"footer":{"socials":{"github":"https://github.com/hcompai","x":"https://x.com/hcompany_ai","linkedin":"https://www.linkedin.com/company/h-company-ai","discord":"https://discord.gg/gAWcDZgx4s"},"links":[{"header":"Products","items":[{"label":"Agents API","href":"/agents-api/overview"},{"label":"Models API","href":"/models-api/overview"},{"label":"Holo CLI","href":"/holo-cli/introduction"},{"label":"HoloTab","href":"/holotab/introduction"}]},{"header":"Developers","items":[{"label":"API reference","href":"/agents-api/sessions/create"},{"label":"SDKs","href":"/agents-api/sdks"},{"label":"Docs MCP","href":"/docs-mcp-server"},{"label":"Changelog","href":"/agents-api/changelog"},{"label":"Plans and limits","href":"/agents-api/plans-and-limits"}]},{"header":"Resources","items":[{"label":"Live demos","href":"https://build.hcompany.ai"},{"label":"Demos on GitHub","href":"https://github.com/hcompai/computer-use-agents-demos"},{"label":"Hugging Face","href":"https://huggingface.co/Hcompany"},{"label":"Discord","href":"https://discord.gg/gAWcDZgx4s"}]},{"header":"Company","items":[{"label":"hcompany.ai","href":"https://hcompany.ai"},{"label":"Blog","href":"https://hcompany.ai/blog"},{"label":"H Platform","href":"https://platform.hcompany.ai"},{"label":"Support","href":"mailto:support@hcompany.ai"},{"label":"Privacy","href":"https://hcompany.ai/privacy-policy"}]}]},"search":{"prompt":"Search the docs..."},"seo":{"metatags":{"og:type":"website","og:site_name":"H Platform Docs","twitter:card":"summary_large_image","twitter:site":"@hcompany_ai","canonical":"https://hub.hcompany.ai","og:locale":"en_US"},"organization":{"name":"H Company","url":"https://hcompany.ai","sameAs":["https://x.com/hcompany_ai","https://www.linkedin.com/company/h-company-ai","https://github.com/hcompai","https://huggingface.co/Hcompany"]},"indexing":"navigable"},"styling":{"codeblocks":"system","latex":false},"errors":{"404":{"redirect":false,"title":"Page not found","description":"This page moved or never existed. Start from the [Agents API](/agents-api/overview) or the [Models API](/models-api/overview), or search above."}},"contextual":{"options":["copy","view","chatgpt","claude","mcp","add-mcp","cursor","vscode"],"display":"header"},"thumbnails":{"appearance":"dark","background":"https://mintcdn.com/hcompany/zduyqstDKbDgiQqq/images/og-background.png?fit=max\u0026auto=format\u0026n=zduyqstDKbDgiQqq\u0026q=85\u0026s=39e33eabf5d25ac3abcfa6336cddc3db"},"markdown":{"instructions":["H Platform has three products: the Agents API (managed computer-use agents, base URL https://agp.eu.hcompany.ai/api/v2 or https://agp.hcompany.ai/api/v2 for the US), the Models API (OpenAI-compatible Holo vision-language models at https://api.hcompany.ai/v1), and HoloTab (a free no-code Chrome extension that runs Holo in the user's browser, with recordable routines and schedules). The `holo` CLI (`pip install \"hai-agents[cli]\"`) runs Agents API agents from a terminal, drives the user's own desktop with `-a h/holo-desktop`, and serves coding agents through `holo mcp`.","Authenticate with a bearer API key from the HAI_API_KEY environment variable. SDKs: `pip install hai-agents` (Python, `from hai_agents import Client`) and `npm install hai-agents` (TypeScript, `import { HaiAgentsClient } from \"hai-agents\"`). CLI: `holo`.","Agents do work in a browser or on a desktop; describe the task as an imperative instruction. To run a task quickly, prefer the pre-built agent `h/web-surfer-flash`. Read results from the session's `latest_answer` after it reaches a terminal status.","Sessions are the unit of work; wait for a terminal status (completed, failed, timed_out, interrupted) before reading the answer. Use webhooks or the `changes` long-poll endpoint to follow progress."]},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"hcompany","hasAudioNarration":false,"actualSubdomain":"hcompany","customDomains":["hub.hcompany.ai"],"gitSource":{"type":"github","owner":"hcompai","repo":"platform-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae3f4eb157134f260f4f934","collectionId":"34621ef7-b25b-41d8-9dfe-ffcffc601541","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae3f4eb157134f260f4f934"},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae4039f0eb8a5e6f0a12c20","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"Agents API","count":107},{"language":"default","tag":"API reference","count":83},{"language":"default","tag":"Documentation","count":38},{"language":"default","tag":"Sessions","count":21},{"language":"default","tag":"Models API","count":14},{"language":"default","tag":"Vaults","count":13},{"language":"default","tag":"Environments","count":10},{"language":"default","tag":"Schedules","count":9},{"language":"default","tag":"Agents","count":8},{"language":"default","tag":"Build an agent","count":8}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@keyframes hreplay-ripple{0%{transform:scale(.3);opacity:.9}to{transform:scale(1.4);opacity:0}}@keyframes hreplay-pop{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes hcursor-blink{50%{opacity:0}}@keyframes hcta-breathe{0%{opacity:.75}to{opacity:1}}[class*=max-w-8xl]{max-width:120rem!important}.mdx-content{max-width:none!important}.is-center~[class*=max-w-8xl]{max-width:80rem!important}#footer div.h-px,#navbar a[href=\"/docs-mcp-server\"],.breadcrumb-list,.eyebrow,.feedback-toolbar,html[data-current-path=\"/\"] #header,html[data-current-path=\"/\"] a[aria-label=\"Navigate to header\"]{display:none}html[data-current-path=\"/\"] #navbar a[aria-current=location]{background:0 0;color:rgb(80 80 80)}html.dark[data-current-path=\"/\"] #navbar a[aria-current=location]{color:rgb(159 159 159)}.not-prose a.link:not(.mint-border){border-bottom:none}.not-prose a.outlined{border:1px solid transparent;transition:transform 150ms ease,border-color 150ms ease,background-color 150ms ease,box-shadow 150ms ease}.not-prose a.card{border-color:rgb(228 228 231)}html.dark .not-prose a.card{border-color:rgb(39 39 42)}.not-prose a.outlined:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgb(0 0 0/.08);border-color:rgb(113 113 122);background-color:rgb(244 244 245)}html.dark .not-prose a.outlined:hover{background-color:rgb(39 39 42);box-shadow:0 4px 12px rgb(0 0 0/.4)}.dark footer button[aria-label=\"Switch to dark theme\"],footer button[aria-label=\"Switch to system theme\"],html:not(.dark) footer button[aria-label=\"Switch to light theme\"],html:not([data-current-path=\"/\"]) #footer{display:none}#footer>[class*=max-w-]{max-width:80rem!important;padding-top:4rem;padding-bottom:3rem;gap:2.5rem}#footer>div>div:first-child>div:first-child{justify-content:flex-start;row-gap:1.25rem}@media (max-width:639px){#footer>div>div:first-child>div:first-child{flex-direction:column;align-items:flex-start}#footer>div>div:first-child>div:first-child>div{justify-content:flex-start}#footer>div>div:first-child>div:last-child{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.5rem 1.5rem}}#footer .text-sm{font-size:.9375rem;line-height:1.5rem}#navbar .nav-tabs{font-size:1rem}#navbar #topbar-cta-button,#navbar .navbar-link{font-size:.9375rem}img[src*=\"devicon/icons/vscode\"]{filter:grayscale(1)}#navbar div:has(>nav.text-sm){gap:1.5rem}#navbar div:has(>nav.text-sm)>*,#navbar nav.text-sm li{margin-left:0!important}#navbar nav.text-sm,#navbar nav.text-sm>ul{display:contents}#navbar #topbar-cta-button{order:1}.not-prose a.cta-primary{border-bottom:none;transition:transform 150ms ease,box-shadow 150ms ease,opacity 150ms ease}.not-prose a.cta-primary:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgb(0 0 0/.18);opacity:.92}.not-prose a.cta-primary svg{transition:transform 150ms ease}.not-prose a.cta-primary:hover svg{transform:translateX(3px)}.hreplay-ripple{animation:hreplay-ripple 700ms cubic-bezier(.2,.8,.2,1) 750ms both}.hreplay-pop{animation:hreplay-pop 260ms ease-out 800ms both}.hreplay-fade{animation:hreplay-pop 320ms ease-out both}.hcursor{animation:hcursor-blink 1s steps(1) infinite}@media (prefers-reduced-motion:reduce){.hcursor,.hreplay-fade,.hreplay-pop,.hreplay-ripple{animation:none}}.htree-lanes{grid-template-columns:repeat(var(--m),minmax(0,1fr))}@media (min-width:640px){.htree-lanes{grid-template-columns:repeat(var(--n),minmax(0,1fr))}}.hframe{border-radius:var(--hframe-r, 12px);overflow:hidden;box-shadow:0 0 0 1px rgb(0 0 0/.08)}.dark .hframe{box-shadow:0 0 0 1px rgb(255 255 255/.1)}.hexplorer-stage{background:#fff}.dark .hexplorer-stage{background:#09090b}@media (min-width:1024px){.hexplorer-stage{aspect-ratio:16/10}}.hhome{padding-bottom:1rem}.hhero{display:grid;gap:3rem;padding:3rem 0 2rem}.hhero>*{min-width:0}.hhero-product{padding:1rem 0 3rem}.hhero-center{padding:4rem 0 0;text-align:center}@media (min-width:1024px){.hhero-center{padding-top:7rem}}.hh1{margin:0;font-size:2.75rem;font-weight:500;line-height:1.04;letter-spacing:-.035em}.hhero-code{min-width:0}.hhero-code>:is(.code-group, .code-block){margin:0!important}.hhero-code pre{font-size:13px;line-height:1.7}.hsec{margin-top:8rem}.htile{transition:transform 400ms cubic-bezier(.2,.8,.2,1)}.htile:has(a:hover),a.htile:hover,a:hover>.htile{transform:scale(1.015)}@media (prefers-reduced-motion:reduce){.htile{transition:none}}.htile-fade{position:absolute;inset:auto 0 0 0;z-index:15;height:30%;pointer-events:none;background:linear-gradient(to top,rgb(0 0 0/.45),transparent);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);mask-image:linear-gradient(to top,#000 20%,transparent);-webkit-mask-image:linear-gradient(to top,#000 20%,transparent)}.htile{clip-path:inset(0 round 1rem)}.hdark::before,.htile::after{content:\"\";position:absolute;inset:0}.htile::after{z-index:30;border-radius:1rem;box-shadow:inset 0 0 0 1px rgb(0 0 0/.07);pointer-events:none}.dark .htile::after{box-shadow:inset 0 0 0 1px rgb(255 255 255/.08)}.hdark{isolation:isolate;background:#0a0a0b}.hdark::before{z-index:-1;background:radial-gradient(70% 80% at 50% 120%,rgb(139 92 246/.45),rgb(139 92 246/.1) 55%,transparent 75%);animation:hcta-breathe 7s ease-in-out infinite alternate}@media (prefers-reduced-motion:reduce){.hdark::before{animation:none}}.htile-label{text-shadow:0 1px 10px rgb(0 0 0/.45)}.htile .hframe{border-radius:0;box-shadow:none}.hblock{margin-top:5rem}.hcta{position:relative;overflow:hidden;isolation:isolate;border-radius:24px;padding:5rem 1.5rem;text-align:center;background:#0a0a0b;box-shadow:inset 0 1px 0 rgb(255 255 255/.08)}.dark .hcta{background:#111113;box-shadow:inset 0 1px 0 rgb(255 255 255/.08),0 0 0 1px rgb(255 255 255/.06)}.hcta-dots,.hcta::before{position:absolute;inset:0;z-index:-1}.hcta::before{content:\"\";background:radial-gradient(60% 75% at 50% 125%,rgb(139 92 246/.5),rgb(139 92 246/.12) 55%,transparent 75%);animation:hcta-breathe 7s ease-in-out infinite alternate}.hcta-dots{width:100%;height:100%}@media (prefers-reduced-motion:reduce){.hcta::before{animation:none}}.hcta-inner{position:relative}@media (min-width:1024px){.hcta{padding:7rem 3rem}}.hspread{display:grid;gap:1.5rem;margin-top:4.5rem}.hhead+.hspread{margin-top:3rem}.hspread>*{min-width:0}.hspread-visual figure{margin:0}.hshot{display:block;width:100%;border-radius:12px;box-shadow:0 0 0 1px rgb(0 0 0/.08)}.dark .hshot{box-shadow:0 0 0 1px rgb(255 255 255/.1)}.hplat-body{display:grid;grid-template-columns:minmax(0,1fr)}.hplat-col,.hplat-nav{display:none}.hplat-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.hplat-row{grid-template-columns:minmax(0,1fr) 8.5rem}@media (min-width:768px){.hplat-body{grid-template-columns:11rem minmax(0,1fr)}.hplat-col,.hplat-nav{display:block}.hplat-actions{grid-template-columns:repeat(4,minmax(0,1fr))}.hplat-row{grid-template-columns:.75rem minmax(0,3fr) minmax(0,1.2fr) 9.5rem minmax(0,1fr) 4.5rem .875rem}}@media (min-width:640px){.hh1{font-size:3.5rem}}@media (min-width:1024px){.hhero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:5rem;padding:6rem 0 2rem}.hhero-product{padding:2rem 0 4rem}.hh1{font-size:4rem}.hspread{grid-template-columns:minmax(0,1fr) minmax(0,2fr);grid-template-areas:\"text visual\";align-items:center;gap:4rem;margin-top:5.5rem}.hhead+.hspread{margin-top:4rem}.hspread-flip{grid-template-columns:minmax(0,2fr) minmax(0,1fr);grid-template-areas:\"visual text\"}.hspread-text{grid-area:text}.hspread-visual{grid-area:visual}}.huse{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:\"head\" \"visual\" \"code\";gap:2rem;padding:4rem 0;scroll-margin-top:6rem}.huse-head{grid-area:head}.huse-code,.huse-visual{grid-area:visual;min-width:0}.huse-code{grid-area:code}.huse-code .code-group{margin:0!important}.huse-code pre{font-size:.75rem;line-height:1.25rem}@media (min-width:1280px){.huse{grid-template-columns:minmax(0,2fr) minmax(0,3fr);grid-template-rows:auto 1fr;grid-template-areas:\"head visual\" \"code visual\";column-gap:4rem;row-gap:2rem;align-items:start;padding:6rem 0}.huse-visual{position:sticky;top:6rem}}.sidebar-group-header,.sidebar-group-header *{text-transform:none}.htab{container-type:inline-size}.htab-row{display:grid;grid-template-columns:var(--cols-sm, minmax(0, 1fr));grid-template-areas:var(--areas-sm);column-gap:1rem;row-gap:.25rem}.htab-head{display:none}.htab-sm{display:inline}@container (min-width: 36rem){.htab-row{grid-template-columns:var(--cols);grid-template-areas:var(--areas);column-gap:1.5rem}.htab-head{display:grid}.htab-sm{display:none}}.hmodels{container-type:inline-size}.hmodels-flag{display:grid;grid-template-columns:minmax(0,1fr);gap:1.5rem}@container (min-width: 40rem){.hmodels-flag{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3rem}}.hmodes{container-type:inline-size}.hmodes-grid{display:grid;grid-template-columns:minmax(0,1fr)}#navbar>div.border-b,#table-of-contents nav>h2,.hmodes-key{display:none}.hmodes-col+.hmodes-col{border-top-width:1px}@container (min-width: 36rem){.hmodes-grid{grid-template-columns:7rem repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,auto)}.hmodes-col,.hmodes-key{display:grid;grid-row:span 3;grid-template-rows:subgrid}.hmodes-col+.hmodes-col{border-top-width:0}.hmodes-col .htab-sm{display:none}}.hocr{container-type:inline-size}.hocr-grid{display:grid;grid-template-columns:minmax(0,1fr)}.hocr-out{height:18rem;border-top-width:1px}@container (min-width: 36rem){.hocr-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}.hocr-out{height:auto;border-top-width:0;border-left-width:1px}}#content-area{padding-top:3rem;padding-bottom:4rem}#page-title{font-size:2.25rem;line-height:1.1;letter-spacing:-.03em}@media (min-width:640px){#page-title{font-size:2.75rem}}#header .prose{margin-top:1rem}#content{margin-top:3rem}#content>h2{margin-top:4rem;margin-bottom:1.25rem;font-size:1.75rem;letter-spacing:-.02em}#content>h3{margin-top:2.75rem;margin-bottom:1rem}#content>ol,#content>p,#content>ul{margin-top:1.25rem;margin-bottom:1.25rem;line-height:1.8}#content>:is(.code-group, pre, [data-component-part], .callout, table, div){margin-top:1.75rem;margin-bottom:1.75rem}div:has(>.sidebar-group-header){margin-top:2.5rem}.sidebar-group-header{margin-bottom:.875rem}:root{--content-width:46rem;--sidebar-width:16rem;--h-accent:#5a04bc}#sidebar-content{hyphens:manual}html[data-current-path=\"/\"] #content-area{padding-top:0}html[data-current-path=\"/\"] #content,html[data-current-path=\"/\"] #content>div{margin-top:0}#navbar{padding-block:.5rem}#sidebar-content{top:4rem!important}#table-of-contents{padding-top:.5rem}#navbar>div.bg-background-light{inset:0;height:auto;background:var(--h-bar);-webkit-backdrop-filter:none;backdrop-filter:none}#navbar{--h-bar:rgb(var(--background-light))}.dark #navbar{--h-bar:rgb(var(--background-dark))}@media (max-width:1023px){html:is([data-current-path=\"/\"], [data-current-path=\"/holotab/introduction\"]) #navbar button:has(use[href$=-Menu]){display:none}html[data-current-path=\"/holotab/introduction\"] div[class~=pt-26]:has(#content-area){padding-top:4rem}html[data-current-path=\"/\"] div:has(>#content-area){padding-top:0}}#theme-preference-menu-trigger{order:-1;background:0 0!important}#navbar .nav-logo{height:1.75rem}#theme-preference-menu-trigger [data-theme-preference-icon]{display:none!important}html.dark #theme-preference-menu-trigger [data-theme-preference-icon=dark],html:not(.dark) #theme-preference-menu-trigger [data-theme-preference-icon=light]{display:contents!important}@media (min-width:1024px){#search-bar-entry{width:auto!important;min-width:8.5rem;padding:0 .375rem 0 .75rem!important;justify-content:space-between!important;gap:1.5rem;background:0 0;box-shadow:inset 0 0 0 1px rgb(0 0 0/.1)}.dark #search-bar-entry{box-shadow:inset 0 0 0 1px rgb(255 255 255/.1)}#search-bar-entry:hover{background:rgb(0 0 0/.03)}.dark #search-bar-entry:hover{background:rgb(255 255 255/.04)}#search-bar-entry [data-search-item=trigger-label]{display:block}#search-bar-entry [data-search-item=trigger-hint]{display:inline-flex;background:0 0;padding:0 .25rem;font-weight:500}}@media (min-width:1280px){#search-bar-entry{min-width:12rem}}.dark{--h-accent:#9a5bec}html :is(a, button, summary, [role=\"button\"], [role=\"tab\"]):focus-visible{outline:2px solid var(--h-accent);outline-offset:2px}html:is([data-current-path=\"/\"], [data-current-path=\"/holotab/introduction\"], [data-current-path=\"/holo-cli/introduction\"], [data-current-path=\"/holo-cli/reference\"]) #sidebar-content{display:none}html:is([data-current-path=\"/\"], [data-current-path=\"/holotab/introduction\"], [data-current-path=\"/holo-cli/introduction\"], [data-current-path=\"/holo-cli/reference\"]) #body-content{padding-left:0}html[data-current-path=\"/\"] #content-area{max-width:none;padding-inline:0;padding-bottom:0}html[data-current-path=\"/\"] #content{margin-bottom:0}html:is([data-current-path=\"/holotab/introduction\"], [data-current-path=\"/agents-api/overview\"], [data-current-path=\"/models-api/overview\"]) #header{display:none}html:is([data-current-path=\"/agents-api/overview\"], [data-current-path=\"/models-api/overview\"]) #content{margin-top:2.5rem}html:is([data-current-path=\"/agents-api/overview\"], [data-current-path=\"/models-api/overview\"]) #content-area{max-width:64rem}@media (min-width:1024px){html:is([data-current-path=\"/holotab/introduction\"], [data-current-path=\"/holo-cli/introduction\"], [data-current-path=\"/holo-cli/reference\"]) #content-area{margin-inline:auto}}@media (min-width:1280px){html:is([data-current-path=\"/holotab/introduction\"], [data-current-path=\"/holo-cli/introduction\"], [data-current-path=\"/holo-cli/reference\"]) #body-content{padding-left:var(--sidebar-width, 16rem)}html:is([data-current-path=\"/holotab/introduction\"], [data-current-path=\"/holo-cli/introduction\"], [data-current-path=\"/holo-cli/reference\"]) #content-side-layout{position:fixed;left:0;bottom:0;width:var(--sidebar-width, 16rem);max-width:none;padding:2rem 1.25rem}html:is([data-current-path=\"/holotab/introduction\"], [data-current-path=\"/holo-cli/introduction\"], [data-current-path=\"/holo-cli/reference\"]) #table-of-contents li a{font-weight:400}html:is([data-current-path=\"/holotab/introduction\"], [data-current-path=\"/holo-cli/introduction\"], [data-current-path=\"/holo-cli/reference\"]) #table-of-contents li a:not(.text-primary){color:rgb(63 63 63)}html.dark:is([data-current-path=\"/holotab/introduction\"], [data-current-path=\"/holo-cli/introduction\"], [data-current-path=\"/holo-cli/reference\"]) #table-of-contents li a:not(.text-primary){color:rgb(159 159 159)}}html[data-current-path=\"/holotab/introduction\"] #content-area{max-width:76rem}html[data-current-path=\"/holotab/introduction\"] #content{margin-top:0}@media (min-width:1024px){html[data-current-path=\"/holotab/introduction\"] #content>:not(.htab-hero){max-width:50rem;margin-inline:auto}html[data-current-path=\"/holotab/introduction\"] #content>:not(.htab-hero):has(table){max-width:calc(50rem + 2*var(--page-padding, 20px))}}#content>.htab-hero{margin:2.5rem 0 6rem}@media (min-width:1024px){.htree-bare{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2rem}.htree-bare-lanes{height:100%;aspect-ratio:1/1;grid-template-rows:repeat(2,minmax(0,1fr))}}html:is([data-current-path^=\"/agents-api/\"], [data-current-path^=\"/models-api/\"]) #content-side-layout:not(:has(.code-group)){display:none}#content>h2:first-child{margin-top:0}@media (min-width:1024px){html:is([data-current-path^=\"/agents-api/\"], [data-current-path^=\"/models-api/\"]):not(:has(#content-side-layout .code-group)) #content-area{margin-inline:auto}}.hflow{container-type:inline-size}.hflow-row{display:flex;align-items:stretch}.hflow-row>.hcard{flex:1 1 0;min-width:0}.hflow-row>.hcard[class*=rounded-xl]{padding:1rem}.hflow-row>.hcard[class*=rounded-xl]>:first-child{flex-direction:column;align-items:flex-start;gap:.75rem}@container (max-width: 36rem){.hflow .hflow-row{flex-direction:column;align-items:stretch}.hflow .hflow-row>.hcard{flex:none;align-self:stretch}.hflow .hflow-row>.hcard[class*=rounded-xl]>:first-child{flex-direction:row;align-items:center;gap:.625rem}.hflow .hflow-loop{display:none}}.hsched,.hseq{--hs-line:rgb(212 212 216);--hs-tip:rgb(161 161 170);--hs-edge:rgb(228 228 231);--hs-strong:rgb(161 161 170);--hs-box:rgb(250 250 250);--hs-bg:#fff;--hs-fg:rgb(24 24 27);--hs-mute:rgb(113 113 122);container-type:inline-size;position:relative;margin:2rem 0}.dark :is(.hseq, .hsched){--hs-line:rgb(255 255 255 / 0.16);--hs-tip:rgb(255 255 255 / 0.4);--hs-edge:rgb(255 255 255 / 0.1);--hs-strong:rgb(255 255 255 / 0.35);--hs-box:rgb(22 22 24);--hs-bg:rgb(14 14 16);--hs-fg:rgb(244 244 245);--hs-mute:rgb(161 161 170)}.hseq{--hs-p:2rem;--hs-o:1.25rem;--hs-y:16px}.hseq-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.hseq-life{position:absolute;top:.75rem;bottom:0;width:0;margin-left:-.5px;border-left:1px dashed var(--hs-line)}.hseq-lanes{position:relative;height:1.5rem;margin-bottom:1.25rem}.hseq-lane{position:absolute;top:0;height:1.5rem;display:flex;align-items:center;gap:.5rem;font-size:12px;line-height:1;color:var(--hs-fg);white-space:nowrap}.hseq-lane-l{left:calc(var(--hs-p) - 3.5px)}.hseq-lane-m{left:calc(50% - 3.5px)}.hseq-lane-r{right:calc(var(--hs-p) - 3.5px);flex-direction:row-reverse}.hseq-glyph{position:relative;z-index:1;width:7px;height:7px;flex:none;border:1px solid var(--hs-tip);background:var(--hs-bg)}.hseq-steps{position:relative;padding-bottom:.5rem}.hseq-row{position:relative;display:flex;margin-top:1rem}.hseq-steps>.hseq-loop:first-child,.hseq-steps>.hseq-row:first-child{margin-top:0}.hseq-msg{justify-content:center;padding:0 1.25rem;box-sizing:border-box}.hseq-wire{position:absolute;left:0;right:0;top:var(--hs-y);border-top:1px dashed var(--hs-line)}.hseq-end,.hseq-loop::before{position:absolute;border:1px solid var(--hs-tip)}.hseq-end{z-index:1;top:calc(var(--hs-y) - 3px);width:7px;height:7px;background:var(--hs-bg)}.hseq-end-l{left:-3.5px}.hseq-end-r{right:-3.5px}.hseq-tip{position:absolute;top:calc(var(--hs-y) - 4.5px);width:6px;height:10px;color:var(--hs-tip)}.hseq-tip-r{right:0}.hseq-tip-l{left:0;transform:scaleX(-1)}.hseq-at-l{justify-content:flex-start;padding-left:calc(var(--hs-p) + .75rem)}.hseq-at-r{justify-content:flex-end;padding-right:calc(var(--hs-p) + .75rem)}.hseq-at-m{justify-content:center}.hseq-local>.hseq-box{max-width:62%}.hseq-box{position:relative;z-index:1;min-width:0;max-width:100%;border:1px solid var(--hs-edge);border-radius:.625rem;background:var(--hs-box)}.hseq-title{padding:6px 12px;font-size:13px;line-height:18px;font-weight:500;color:var(--hs-fg)}.hseq-code,.hseq-note{font-size:11.5px;line-height:16px;color:var(--hs-mute)}.hseq-code{padding:6px 12px;border-top:1px solid var(--hs-edge);overflow-wrap:anywhere}.hseq-note{position:relative;z-index:1}.hseq-loop{position:relative;margin-top:1.25rem;padding-top:1.75rem;--hs-lw:calc(var(--hs-p) - 0.5rem);--hs-lb:2.25rem}.hseq-loop::before{content:\"\";left:.5rem;width:var(--hs-lw);top:calc(1.75rem + var(--hs-y));bottom:var(--hs-lb);border-right:0;border-radius:6px 0 0 6px}.hseq-loop::after{content:\"\";position:absolute;left:calc(var(--hs-p) - 15px);top:calc(1.75rem + var(--hs-y) - 3.5px);width:7px;height:7px;border:solid var(--hs-tip);border-width:1px 1px 0 0;transform:rotate(45deg)}.hseq-loop>.hseq-row:nth-child(2){margin-top:0}.hseq-loop-label{position:absolute;top:0;left:calc(var(--hs-p) + .75rem);font-size:12px;line-height:16px;color:var(--hs-mute);white-space:nowrap}.hseq-loop-label>span{color:var(--hs-fg)}@container (max-width: 30rem){.hseq>*{--hs-p:1.25rem;--hs-o:0.75rem;--hs-y:14px}.hseq-lane{font-size:11px;gap:.375rem}.hseq-msg{padding:0 .625rem}.hseq-code,.hseq-title{padding:5px 9px;font-size:12px;line-height:16px}.hseq-code{font-size:10.5px;line-height:14px}.hseq-local>.hseq-box{max-width:75%}.hseq-loop-label{font-size:11px}.hseq-loop{--hs-lw:calc(var(--hs-p) - 0.375rem);--hs-lb:1.65rem}.hseq-loop::before{left:.375rem}}.hsched-cron{margin-bottom:1.5rem;font-size:12px;color:var(--hs-mute)}.hsched-cron>span{margin-right:.5rem;padding:2px 6px;border:1px solid var(--hs-edge);border-radius:.375rem}.hsched-plot{position:relative;height:8.5rem}.hsched-axis{position:absolute;left:10%;right:10%;top:calc(2rem - .5px);border-top:1px dashed var(--hs-line)}.hsched-fire{position:absolute;top:0;left:calc(10% + 20%*var(--i));width:19%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center}.hsched-time{height:1.25rem;font-size:12px;line-height:1.25rem;color:var(--hs-mute)}.hsched-tick{position:relative;z-index:1;flex:none;width:7px;height:7px;margin-top:calc(.75rem - 3.5px);background:var(--hs-line)}.hsched-box{max-width:100%;margin-top:calc(3rem - 3.5px);padding:4px 8px;border:1px solid var(--hs-edge);border-radius:.5rem;background:var(--hs-box);text-align:center}.hsched-status{font-size:11.5px;line-height:16px;color:var(--hs-mute)}.hsched-bar,.hsched-note{font-size:11px;color:var(--hs-mute)}.hsched-note{line-height:14px}.hsched-cron>span,.hsched-skip .hsched-status,.hsched-skip .hsched-time{color:var(--hs-fg)}.hsched-skip .hsched-tick{border:1px solid var(--hs-fg);background:var(--hs-bg)}.hsched-skip .hsched-box{border-color:var(--hs-strong)}.hsched-bar{position:absolute;top:3rem;height:1.25rem;left:calc(10% + 20%*var(--i));width:calc(20%*var(--d));box-sizing:border-box;display:flex;align-items:center;padding-left:.5rem;overflow:hidden;border:1px solid var(--hs-edge);border-radius:.375rem;background:var(--hs-box)}@container (max-width: 36rem){.hsched>*{--row:3.75rem}.hsched-plot{height:calc(var(--row)*5)}.hsched-axis{left:3.75rem;right:auto;top:calc(var(--row)/2);bottom:calc(var(--row)/2);margin-left:-.5px;border-top:0;border-left:1px dashed var(--hs-line)}.hsched-fire{left:0;right:0;top:calc(var(--row)*var(--i));width:auto;height:var(--row);transform:none;flex-direction:row}.hsched-time{width:3.25rem;flex:none}.hsched-tick{margin:0 0 0 calc(.5rem - 3.5px)}.hsched-box{margin:0 0 0 calc(2rem - 3.5px);max-width:calc(100% - 6rem);text-align:left}.hsched-bar{top:calc(var(--row)*(var(--i) + .5));left:4.5rem;width:.5rem;height:calc(var(--row)*var(--d));padding:0}.hsched-bar>span{display:none}}#content-area:has(.hnext) #pagination{display:none}[data-component-part=field-content]>.field{margin:.75rem 0 0;padding:.25rem 0 .25rem 1rem;border-width:0 0 0 1px!important;border-color:rgb(228 228 231)!important}.dark [data-component-part=field-content]>.field{border-color:rgb(255 255 255/.1)!important}"}],"page":{"pagePath":"index","slug":"/","pageMetadata":{"title":"H Platform Docs","description":"Run computer-use agents in a cloud browser or on a desktop with the Agents API, build your own agent on Holo models, or run Holo on your own machine.","mode":"wide","timestamp":false,"keywords":["computer-use agent","browser automation API","agent model API","Holo","H Company","desktop automation"],"href":"/index"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Run computer-use agents in a cloud browser or on a desktop with the Agents API, build your own agent on Holo models, or run Holo on your own machine.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const __snippet_nikeReplay_1wdwc3j={\"src\":`https://assets.hcompanyprod.fr/docs/replays/nike`,\"aspect\":`1280 / 800`,\"agent\":`h/web-surfer-flash`,\"task\":`On nike.com (US), find the men's Air Max 90 in white, open it and report its price and available sizes.`,\"status\":`completed`,\"duration\":71.5,\"step_s\":1.8,\"answer\":`Nike Air Max 90 (Men's, White)\n• Price: $135\n• Available Sizes:\n• M 6 / W 7.5\n• M 6.5 / W 8\n• M 7 / W 8.5\n• M 7.5 / W 9\n• M 8 / W 9.5\n• M 8.5 / W 10\n• M 9 / W 10.5\n• M 9.5 / W 11\n• M 10 / W 11.5\n• M 10.5 / W 12\n• M 11 / W 12.5\n• M 11.5 / W 13\n• M 12 / W 13.5\n• M 12.5 / W 14\n• M 13 / W 14.5\n• M 14 / W 15.5\n• M 15 / W 16.5\n\nSource: Nike.com`,\"records\":[],\"steers\":[],\"steps\":[{\"frame\":`002.webp`,\"verb\":`open`,\"label\":`nike.com`,\"x\":null,\"y\":null,\"t\":15.8,\"url\":`https://www.nike.com/fr/`,\"reasoning\":`The user wants me to find the men's Air Max 90 in white on nike.com (US), open the product page, and report its price and available sizes. I'll navigate directly to nike.com and search for the product.`},{\"frame\":`003.webp`,\"verb\":`open`,\"label\":`nike.com/us/en_us`,\"x\":null,\"y\":null,\"t\":23.9,\"url\":`https://www.nike.com/fr/`,\"reasoning\":`The site redirected to the French version (nike.com/fr/). I need to navigate to the US version. Let me go to nike.com/us/ or find a way to switch to the US site.`},{\"frame\":`003.webp`,\"verb\":`click`,\"label\":`Tout refuser button to dismiss cookie dialog`,\"x\":.484,\"y\":.832,\"t\":30.4,\"url\":`https://www.nike.com/fr/`,\"reasoning\":`It's still showing the French version. Let me try navigating directly to the US Nike site. The URL might need to be different. Let me try https://www.nike.com/ and see if I can find a country selector, or try a direct URL for the US site.`},{\"frame\":`004.webp`,\"verb\":`scroll`,\"label\":`down`,\"x\":null,\"y\":null,\"t\":35.6,\"url\":`https://www.nike.com/fr/`,\"reasoning\":`The site is still in French. I need to switch to the US version. Let me try scrolling down to find a country selector, or try navigating to a specific US URL. Let me try the URL https://www.nike.com/us/en_US/ or look for a way to change the region. Let me scroll down to see if there's a country selector at the bottom o`},{\"frame\":`005.webp`,\"verb\":`click`,\"label\":`France country selector at bottom right of page`,\"x\":.921,\"y\":.23,\"t\":39.1,\"url\":`https://www.nike.com/fr/`,\"reasoning\":`I can see at the bottom right there's a \"France\" country selector. Let me click on it to change to the US.`},{\"frame\":`006.webp`,\"verb\":`click`,\"label\":`United States option with English language`,\"x\":.394,\"y\":.765,\"t\":42.5,\"url\":`https://www.nike.com/fr/`,\"reasoning\":`I can see the country selection dialog. I need to select \"United States\" under the Americas section. I can see it in the third row, second column - \"United States\" with \"English\" language.`},{\"frame\":`007.webp`,\"verb\":`click`,\"label\":`Search bar in the top navigation`,\"x\":.812,\"y\":.082,\"t\":46.1,\"url\":`https://www.nike.com/`,\"reasoning\":`Now I'm on the US version of Nike.com. I need to search for \"men's Air Max 90 in white\". I can see there's a search bar in the top right. Let me click on it and search for the product.`},{\"frame\":`008.webp`,\"verb\":`type`,\"label\":`“Air Max 90” Search input field`,\"x\":.492,\"y\":.036,\"t\":49.6,\"url\":`https://www.nike.com/`,\"reasoning\":`The search bar is now active. Let me type \"Air Max 90 men white\" to search for the product.`},{\"frame\":`009.webp`,\"verb\":`click`,\"label\":`Nike Air Max 90 Men's Shoes product image (first product)`,\"x\":.352,\"y\":.484,\"t\":54.7,\"url\":`https://www.nike.com/w?q=Air%20Max%2090\u0026vst=Air%20Max%2090`,\"reasoning\":`I can see search results for \"air max 90\". The first product is \"Nike Air Max 90 - Men's Shoes - $135\" which appears to be a dark/black color. I need to find the white one. I can see there are color swatches below the first product. Let me scroll down to see all the options, or I can click on the first product and look`},{\"frame\":`010.webp`,\"verb\":`click`,\"label\":`White Nike Air Max 90 color swatch (third thumbnail in top row)`,\"x\":.779,\"y\":.502,\"t\":59.4,\"url\":`https://www.nike.com/t/air-max-90-mens-shoes-bAZ6AeHT/IX7926-001`,\"reasoning\":`I'm on the Nike Air Max 90 product page. I can see:\n- Price: $135\n- Color options: There are several color swatches. The first one (currently selected) is black/dark gray. I can see there's a white one in the top row (third one from left).\n\nI need to click on the white color variant to see the available sizes for that `},{\"frame\":`011.webp`,\"verb\":`scroll`,\"label\":`down`,\"x\":null,\"y\":null,\"t\":63.3,\"url\":`https://www.nike.com/t/air-max-90-mens-shoes-bAZ6AeHT/CN8490-100`,\"reasoning\":`I've selected the white Nike Air Max 90. Now I can see:\n- Price: $135\n- The product is \"Nike Air Max 90 Men's Shoes\"\n- I can see some sizes: M 6 / W 7.5, M 6.5 / W 8, M 7 / W 8.5, M 7.5 / W 9\n\nI need to scroll down to see all available sizes. Let me scroll down to see the complete size list.`},{\"frame\":`012.webp`,\"verb\":`answer`,\"label\":`final answer`,\"x\":null,\"y\":null,\"t\":67,\"url\":`https://www.nike.com/t/air-max-90-mens-shoes-bAZ6AeHT/CN8490-100`,\"reasoning\":`Now I can see all the available sizes for the white Nike Air Max 90. Let me compile the complete information:\n\n- Product: Nike Air Max 90 Men's Shoes\n- Price: $135\n- Color: White (selected)\n- Available sizes:\n - M 6 / W 7.5\n - M 6.5 / W 8\n - M 7 / W 8.5\n - M 7.5 / W 9\n - M 8 / W 9.5\n - M 8.5 / W 10\n - M 9 / W 10`}]};const __snippet_legoSchemaReplay_1wdwc3j={\"src\":`https://assets.hcompanyprod.fr/docs/replays/lego-schema`,\"aspect\":`1280 / 800`,\"agent\":`h/web-surfer-flash`,\"task\":`On lego.com (US), list the 8 LEGO Star Wars sets with the most pieces, with name, piece count and price.`,\"status\":`completed`,\"duration\":66.7,\"step_s\":1.8,\"answer\":``,\"records\":[{\"name\":`Death Star™`,\"price\":999.99,\"pieces\":9023},{\"name\":`Millennium Falcon™`,\"price\":849.99,\"pieces\":7541},{\"name\":`Executor Super Star Destroyer™`,\"price\":799.99,\"pieces\":6130},{\"name\":`Venator-Class Republic Attack Cruiser™`,\"price\":649.99,\"pieces\":5374},{\"name\":`Jabba's Sail Barge™`,\"price\":499.99,\"pieces\":3943},{\"name\":`Jango Fett's Firespray-Class Starship`,\"price\":299.99,\"pieces\":2970},{\"name\":`TIE Interceptor™`,\"price\":229.99,\"pieces\":1931},{\"name\":`The Mandalorian's N-1 Starfighter™`,\"price\":249.99,\"pieces\":1809}],\"steers\":[],\"steps\":[{\"frame\":`002.webp`,\"verb\":`open`,\"label\":`lego.com/en-us/categories/star-wars`,\"x\":null,\"y\":null,\"t\":15.5,\"url\":`https://www.lego.com/en-us/categories/star-wars?age-gate=grown_up`,\"reasoning\":`Let me navigate to lego.com and find the Star Wars sets. I'll go directly to the LEGO Star Wars section on the US site.`},{\"frame\":`002.webp`,\"verb\":`click`,\"label\":`Continue button to enter LEGO.com`,\"x\":.298,\"y\":.605,\"t\":22.6,\"url\":`https://www.lego.com/en-us/categories/star-wars?age-gate=grown_up`,\"reasoning\":`I need to click \"Continue\" to enter the LEGO.com site.`},{\"frame\":`003.webp`,\"verb\":`click`,\"label\":`Accept All button in cookie consent dialog`,\"x\":.599,\"y\":.707,\"t\":26,\"url\":`https://www.lego.com/en-us/categories/star-wars`,\"reasoning\":`I need to dismiss the cookie consent dialog. I'll click \"Accept All\" to proceed.`},{\"frame\":`005.webp`,\"verb\":`open`,\"label\":`lego.com/en-us`,\"x\":null,\"y\":null,\"t\":29.6,\"url\":`https://www.lego.com/en-us`,\"reasoning\":`The page shows \"OH BRICKS! We can't find this page.\" - the Star Wars category URL didn't work directly. Let me try navigating to the LEGO homepage and then find Star Wars through the navigation.`},{\"frame\":`005.webp`,\"verb\":`click`,\"label\":`Star Wars category tile`,\"x\":.432,\"y\":.82,\"t\":35,\"url\":`https://www.lego.com/en-us`,\"reasoning\":`I can see the LEGO homepage. I can see a \"Star Wars™\" category tile in the navigation. Let me click on it to go to the Star Wars section.`},{\"frame\":`006.webp`,\"verb\":`click`,\"label\":`Sort by dropdown button`,\"x\":.919,\"y\":.159,\"t\":38.7,\"url\":`https://www.lego.com/en-us/themes/star-wars`,\"reasoning\":`I'm on the Star Wars page with 124 products. I need to find the 8 sets with the most pieces. I should sort by number of pieces. Let me click on \"Sort by\" to see if there's a sort option for piece count.`},{\"frame\":`007.webp`,\"verb\":`click`,\"label\":`Piece Count: High to Low radio button`,\"x\":.719,\"y\":.361,\"t\":42.4,\"url\":`https://www.lego.com/en-us/themes/star-wars`,\"reasoning\":`I can see the sort options. I need to select \"Piece Count: High to Low\" to sort by piece count, then click Apply.`},{\"frame\":`008.webp`,\"verb\":`click`,\"label\":`Apply button`,\"x\":.841,\"y\":.586,\"t\":45.7,\"url\":`https://www.lego.com/en-us/themes/star-wars`,\"reasoning\":`I've selected \"Piece Count: High to Low\". Now I need to click \"Apply\" to apply the sort.`},{\"frame\":`009.webp`,\"verb\":`scroll`,\"label\":`down`,\"x\":null,\"y\":null,\"t\":49.1,\"url\":`https://www.lego.com/en-us/themes/star-wars?sort.key=PIECE_COUNT\u0026sort.direction=DESC\u0026page=1`,\"reasoning\":`The page is now sorted by \"Piece Count: High to Low\". I can see the first two products:\n1. Death Star™ - 9023 pieces - $999.99\n2. Millennium Falcon™ - 7541 pieces - $849.99 (Out of stock)\n\nI need to scroll down to see more products to get the top 8. Let me scroll down to see the rest.`},{\"frame\":`010.webp`,\"verb\":`scroll`,\"label\":`down`,\"x\":null,\"y\":null,\"t\":54.4,\"url\":`https://www.lego.com/en-us/themes/star-wars?sort.key=PIECE_COUNT\u0026sort.direction=DESC\u0026page=1`,\"reasoning\":`Now I can see more products. Let me compile what I've seen so far:\n\n1. Death Star™ - 9023 pieces - $999.99\n2. Millennium Falcon™ - 7541 pieces - $849.99\n3. Executor Super Star Destroyer™ - 6130 pieces - $799.99\n4. Venator-Class Republic Attack Cruiser™ - 5374 pieces - $649.99\n5. Jabba's Sail Barge™ - 3943 pieces - $499`},{\"frame\":`011.webp`,\"verb\":`answer`,\"label\":`final answer`,\"x\":null,\"y\":null,\"t\":58.2,\"url\":`https://www.lego.com/en-us/themes/star-wars?sort.key=PIECE_COUNT\u0026sort.direction=DESC\u0026page=1`,\"reasoning\":`I see, the answer tool requires a specific format with sets as an array of objects with name, pieces, and price fields. Let me format the answer correctly.`}]};const __snippet_checkoutReplay_1wdwc3j={\"src\":`https://assets.hcompanyprod.fr/docs/replays/checkout`,\"aspect\":`1280 / 800`,\"agent\":`h/web-surfer-pro`,\"task\":`On https://www.saucedemo.com log in with username standard_user and password secret_sauce. Add the two cheapest products to the cart, check out as Ada Lovelace with postal code 75009, finish the order and report the item total and the final confirmation message.`,\"status\":`completed`,\"duration\":85,\"step_s\":1.8,\"answer\":`Order completed successfully on saucedemo.com!\n\nItems added (two cheapest products):\n1. Sauce Labs Onesie — $7.99\n2. Sauce Labs Bike Light — $9.99\n\nCheckout details:\n• Name: Ada Lovelace\n• Postal Code: 75009\n\nPrice Total:\n• Item total: $17.98\n• Tax: $1.44\n• Grand Total: $19.42\n\nFinal confirmation message:\n\"Thank you for your order! Your order has been dispatched, and will arrive just as fast as the pony can get there!\"`,\"records\":[],\"steers\":[],\"steps\":[{\"frame\":`002.webp`,\"verb\":`open`,\"label\":`saucedemo.com`,\"x\":null,\"y\":null,\"t\":14.6,\"url\":`https://www.saucedemo.com/`,\"reasoning\":`The user wants me to go to saucedemo.com, log in, add the two cheapest products to cart, check out as Ada Lovelace with postal code 75009, finish the order, and report the item total and final confirmation message.\n\nLet me start by navigating to saucedemo.com.`},{\"frame\":`002.webp`,\"verb\":`type`,\"label\":`“standard_user” Username input field`,\"x\":.5,\"y\":.215,\"t\":18.5,\"url\":`https://www.saucedemo.com/`,\"reasoning\":`The login page for Swag Labs is showing. I need to enter the username \"standard_user\" in the Username field. The username field is at approximately (500, 215).`},{\"frame\":`003.webp`,\"verb\":`type`,\"label\":`“secret_sauce” Password input field`,\"x\":.5,\"y\":.284,\"t\":22.3,\"url\":`https://www.saucedemo.com/`,\"reasoning\":`The username was entered but pressing Enter submitted the form without a password. I need to click on the Password field and enter the password \"secret_sauce\" without pressing Enter, then click Login.`},{\"frame\":`004.webp`,\"verb\":`click`,\"label\":`Login button`,\"x\":.5,\"y\":.407,\"t\":33.7,\"url\":`https://www.saucedemo.com/`,\"reasoning\":`Both username and password are filled in. Now I need to click the Login button.`},{\"frame\":`005.webp`,\"verb\":`scroll`,\"label\":`down`,\"x\":null,\"y\":null,\"t\":37,\"url\":`https://www.saucedemo.com/inventory.html`,\"reasoning\":`I'm logged in and can see the product page. I need to find the two cheapest products. I can see:\n- Sauce Labs Backpack: $29.99\n- Sauce Labs Bike Light: $9.99\n- Sauce Labs Bolt T-Shirt: $15.99\n- Sauce Labs Fleece Jacket: $49.99\n- Sauce Labs Onesie: (price not visible yet)\n- Test.allTheThings() T-Shirt (Red): (price not `},{\"frame\":`006.webp`,\"verb\":`click`,\"label\":`Add to cart button for Sauce Labs Onesie`,\"x\":.383,\"y\":.685,\"t\":40.7,\"url\":`https://www.saucedemo.com/inventory.html`,\"reasoning\":`Now I can see all 6 products:\n1. Sauce Labs Backpack: $29.99\n2. Sauce Labs Bike Light: $9.99\n3. Sauce Labs Bolt T-Shirt: $15.99\n4. Sauce Labs Fleece Jacket: $49.99\n5. Sauce Labs Onesie: $7.99\n6. Test.allTheThings() T-Shirt (Red): $15.99\n\nThe two cheapest are:\n1. Sauce Labs Onesie: $7.99\n2. Sauce Labs Bike Light: $9.99\n`},{\"frame\":`007.webp`,\"verb\":`click`,\"label\":`Add to cart button for Sauce Labs Bike Light`,\"x\":.818,\"y\":.058,\"t\":44.7,\"url\":`https://www.saucedemo.com/inventory.html`,\"reasoning\":`The Onesie has been added to the cart - the button now says \"Remove\". Now I need to add the Sauce Labs Bike Light ($9.99). I can see its \"Add to cart\" button at the top of the screen at approximately (818, 58).`},{\"frame\":`008.webp`,\"verb\":`scroll`,\"label\":`up`,\"x\":null,\"y\":null,\"t\":48.4,\"url\":`https://www.saucedemo.com/inventory.html`,\"reasoning\":`Both items are now in the cart - both the Bike Light ($9.99) and the Onesie ($7.99) show \"Remove\" buttons. Now I need to scroll up to find the cart icon in the header to proceed to checkout.`},{\"frame\":`009.webp`,\"verb\":`click`,\"label\":`Cart icon with badge showing 2 items`,\"x\":.952,\"y\":.034,\"t\":51.9,\"url\":`https://www.saucedemo.com/inventory.html`,\"reasoning\":`I can see the cart icon in the top right corner with a \"2\" badge, confirming both items are in the cart. Now I need to click on the cart icon to proceed to checkout.`},{\"frame\":`010.webp`,\"verb\":`click`,\"label\":`Checkout button`,\"x\":.888,\"y\":.778,\"t\":55.6,\"url\":`https://www.saucedemo.com/cart.html`,\"reasoning\":`The cart shows both items correctly:\n- Sauce Labs Onesie: $7.99\n- Sauce Labs Bike Light: $9.99\n\nTotal should be $17.98. Now I need to click \"Checkout\" to proceed.`},{\"frame\":`011.webp`,\"verb\":`type`,\"label\":`“Ada” First Name input field`,\"x\":.492,\"y\":.341,\"t\":59.1,\"url\":`https://www.saucedemo.com/checkout-step-one.html`,\"reasoning\":`The checkout form is showing. I need to fill in:\n- First Name: Ada\n- Last Name: Lovelace\n- Zip/Postal Code: 75009\n\nLet me start with the First Name field.`},{\"frame\":`012.webp`,\"verb\":`type`,\"label\":`“Lovelace” Last Name input field`,\"x\":.492,\"y\":.409,\"t\":63.7,\"url\":`https://www.saucedemo.com/checkout-step-one.html`,\"reasoning\":`First name \"Ada\" is entered. Now I need to fill in the Last Name field with \"Lovelace\".`},{\"frame\":`013.webp`,\"verb\":`type`,\"label\":`“75009” Zip/Postal Code input field`,\"x\":.492,\"y\":.478,\"t\":67.3,\"url\":`https://www.saucedemo.com/checkout-step-one.html`,\"reasoning\":`Last name \"Lovelace\" is entered. Now I need to fill in the Zip/Postal Code with \"75009\".`},{\"frame\":`014.webp`,\"verb\":`click`,\"label\":`Continue button`,\"x\":.888,\"y\":.775,\"t\":70.6,\"url\":`https://www.saucedemo.com/checkout-step-one.html`,\"reasoning\":`All three fields are filled in correctly:\n- First Name: Ada\n- Last Name: Lovelace\n- Zip/Postal Code: 75009\n\nNow I need to click the \"Continue\" button to proceed to the next step.`},{\"frame\":`015.webp`,\"verb\":`scroll`,\"label\":`down`,\"x\":null,\"y\":null,\"t\":73.8,\"url\":`https://www.saucedemo.com/checkout-step-two.html`,\"reasoning\":`I can see the checkout overview page. The item total is $17.98 and tax is $1.44. I can see:\n- Sauce Labs Onesie: $7.99\n- Sauce Labs Bike Light: $9.99\n- Item total: $17.98\n- Tax: $1.44\n\nI need to scroll down to see the full total and the \"Finish\" button. Let me scroll down.`},{\"frame\":`016.webp`,\"verb\":`click`,\"label\":`Finish button`,\"x\":.888,\"y\":.678,\"t\":77.4,\"url\":`https://www.saucedemo.com/checkout-step-two.html`,\"reasoning\":`I can now see the full price total:\n- Item total: $17.98\n- Tax: $1.44\n- Total: $19.42\n\nNow I need to click the \"Finish\" button to complete the order.`},{\"frame\":`017.webp`,\"verb\":`answer`,\"label\":`final answer`,\"x\":null,\"y\":null,\"t\":80.8,\"url\":`https://www.saucedemo.com/checkout-complete.html`,\"reasoning\":`The order is complete. The confirmation page shows:\n- \"Checkout: Complete!\"\n- \"Thank you for your order!\"\n- \"Your order has been dispatched, and will arrive just as fast as the pony can get there!\"\n\nFrom the previous step (checkout overview), I recorded:\n- Item total: $17.98\n- Tax: $1.44\n- Total: $19.42\n\nThe two cheape`}]};const __snippet_airbnbSteerReplay_1wdwc3j={\"src\":`https://assets.hcompanyprod.fr/docs/replays/airbnb-steer`,\"aspect\":`1280 / 800`,\"agent\":`h/web-surfer-flash`,\"task\":`On airbnb.com, search stays in Chamonix, France for 2 guests next weekend and report the first listing rated 4.9 or higher: name, price per night and rating.`,\"status\":`completed`,\"duration\":95.3,\"step_s\":1.8,\"answer\":`The first listing rated 4.9 or higher in the Annecy search results is:\n• Name: Apartment in Vieille Ville (Safran Annecy, close to the lake)\n• Price per night: €202 (for Nov 7–8, 2026, 2 guests)\n• Rating: 5.0 (12 reviews)`,\"records\":[],\"steers\":[{\"t\":35.9,\"text\":`Change of plans: search Annecy instead of Chamonix, same criteria.`}],\"steps\":[{\"frame\":`002.webp`,\"verb\":`open`,\"label\":`airbnb.com`,\"x\":null,\"y\":null,\"t\":13.9,\"url\":`https://www.airbnb.com/`,\"reasoning\":`Let me start by navigating to Airbnb and searching for stays in Chamonix, France for 2 guests next weekend. I'll go directly to the Airbnb website.`},{\"frame\":`002.webp`,\"verb\":`click`,\"label\":`Accept all button in cookie consent dialog`,\"x\":.314,\"y\":.841,\"t\":19.1,\"url\":`https://www.airbnb.com/`,\"reasoning\":`I'm on the Airbnb homepage. I need to:\n1. Dismiss the cookie consent dialog\n2. Search for stays in Chamonix, France\n3. Set dates for next weekend\n4. Set 2 guests\n5. Find the first listing rated 4.9 or higher\n\nLet me first dismiss the cookie dialog by clicking \"Accept all\" or \"Only necessary\", then proceed with the sear`},{\"frame\":`003.webp`,\"verb\":`type`,\"label\":`“Chamonix, France” Where - Search destinations input field`,\"x\":.273,\"y\":.164,\"t\":23.4,\"url\":`https://www.airbnb.com/`,\"reasoning\":`Good, the cookie dialog is dismissed. Now I need to search for stays in Chamonix, France. I'll click on the \"Where\" field and type \"Chamonix, France\". Then I need to set the dates for next weekend and 2 guests.\n\nToday is Thursday, October 29, 2026. Next weekend would be Saturday, November 7 and Sunday, November 8, 2026`},{\"frame\":`004.webp`,\"verb\":`click`,\"label\":`November 7 (Saturday) in the calendar`,\"x\":.768,\"y\":.465,\"t\":28.1,\"url\":`https://www.airbnb.com/`,\"reasoning\":`I can see the calendar is open. Today is October 29, 2026. Next weekend would be November 7-8, 2026 (Saturday and Sunday). I need to select November 7 as check-in and November 8 as check-out (or maybe a longer stay). Let me select November 7 as the check-in date first.\n\nActually, \"next weekend\" - since today is Thursda`},{\"frame\":`005.webp`,\"verb\":`click`,\"label\":`November 8 (Sunday) in the calendar - check-out date`,\"x\":.528,\"y\":.529,\"t\":32.3,\"url\":`https://www.airbnb.com/`,\"reasoning\":`I see that I clicked on November 14 (the circled date), not November 7. I need to click on November 7 (Saturday) to select it as check-in. Let me look at the calendar again.\n\nLooking at the November 2026 calendar:\n- Row 1: 1, 2, 3, 4, 5, 6, 7\n- Row 2: 8, 9, 10, 11, 12, 13, 14\n\nSo November 7 should be in the first row, `},{\"frame\":`006.webp`,\"verb\":`click`,\"label\":`Where - Chamonix, France field`,\"x\":.273,\"y\":.164,\"t\":37.5,\"url\":`https://www.airbnb.com/`,\"reasoning\":`I see the dates are set to Nov 7-8. Now I need to:\n1. Change the location from Chamonix to Annecy (per the user's message)\n2. Add 2 guests\n3. Search\n\nLet me first change the location to Annecy, then set guests to 2, then search.\n\nI'll click on the \"Where\" field to change it to Annecy.`},{\"frame\":`007.webp`,\"verb\":`type`,\"label\":`“Annecy, France” Where - Chamonix, France input field`,\"x\":.273,\"y\":.164,\"t\":41.6,\"url\":`https://www.airbnb.com/`,\"reasoning\":`The user wants me to search for Annecy instead of Chamonix. I need to clear the current location and type \"Annecy, France\". Let me clear the field first and type the new location.`},{\"frame\":`008.webp`,\"verb\":`click`,\"label\":`Annecy, France, Annecy suggestion in dropdown`,\"x\":.311,\"y\":.38,\"t\":45.8,\"url\":`https://www.airbnb.com/`,\"reasoning\":`I can see the dropdown with suggestions for Annecy. I'll click on \"Annecy, France, Annecy\" which is the second option, as it clearly indicates the city in France.`},{\"frame\":`009.webp`,\"verb\":`click`,\"label\":`Who - Add guests field`,\"x\":.681,\"y\":.164,\"t\":49.5,\"url\":`https://www.airbnb.com/`,\"reasoning\":`The location is set to \"Annecy, france, Annecy\" and dates are Nov 7-8. Now I need to set the number of guests to 2. I'll click on the \"Who - Add guests\" field.`},{\"frame\":`010.webp`,\"verb\":`click`,\"label\":`Plus button next to Adults to increase count`,\"x\":.768,\"y\":.29,\"t\":55,\"url\":`https://www.airbnb.com/`,\"reasoning\":`The guests dropdown is open. I need to set 2 guests. I'll click the \"+\" button next to Adults to increase the count to 2.`},{\"frame\":`011.webp`,\"verb\":`click`,\"label\":`Plus button next to Adults to increase from 1 to 2`,\"x\":.768,\"y\":.29,\"t\":59,\"url\":`https://www.airbnb.com/`,\"reasoning\":`I see 1 guest is now shown. I need to click \"+\" again to make it 2 guests.`},{\"frame\":`012.webp`,\"verb\":`click`,\"label\":`Search button`,\"x\":.778,\"y\":.164,\"t\":63,\"url\":`https://www.airbnb.com/`,\"reasoning\":`Now I have 2 guests set. The search parameters are:\n- Where: Annecy, france, Annecy\n- When: Nov 7 - 8\n- Who: 2 guests\n\nNow I need to click the \"Search\" button to perform the search.`},{\"frame\":`013.webp`,\"verb\":`scroll`,\"label\":`down`,\"x\":null,\"y\":null,\"t\":67.9,\"url\":`https://www.airbnb.com/s/Annecy--france--Annecy/homes?date_picker_type=calendar\u0026checkin=2026-11-07\u0026checkout=2026-11-08\u0026place_id=ChIJBRHtEACPi0cR-Akng2Z10nc\u0026refinement_paths%5B%5D=%2Fhomes\u0026location_bb=QjeaAkDEI5lCN5c%2FQMQNfw%3D%3D\u0026acp_id=t-g-ChIJBRHtEACPi0cR-Akng2Z10nc\u0026adults=2\u0026search_type=autocomplete_click`,\"reasoning\":`The search results are loading. I can see 536 homes. The first listing is \"Hôtel du Palais de l'Isle\" which is a hotel, and it shows €142 total. I need to scroll down to see more listings and find the first one rated 4.9 or higher. Let me scroll down to see more listings.`},{\"frame\":`014.webp`,\"verb\":`scroll`,\"label\":`down`,\"x\":null,\"y\":null,\"t\":72.1,\"url\":`https://www.airbnb.com/s/Annecy--france--Annecy/homes?date_picker_type=calendar\u0026checkin=2026-11-07\u0026checkout=2026-11-08\u0026place_id=ChIJBRHtEACPi0cR-Akng2Z10nc\u0026refinement_paths%5B%5D=%2Fhomes\u0026location_bb=QjeaAkDEI5lCN5c%2FQMQNfw%3D%3D\u0026acp_id=t-g-ChIJBRHtEACPi0cR-Akng2Z10nc\u0026adults=2\u0026search_type=autocomplete_click`,\"reasoning\":`I can see the search results now. Let me check the listings:\n\n1. \"Apartment in Vieille Ville\" - 4.72 (98 reviews) - €132 total - Not 4.9+\n2. \"Room in Vieille Ville\" - 4.82 (91 reviews) - €158 total - Not 4.9+\n\nI need to scroll down more to find the first listing rated 4.9 or higher. Let me continue scrolling.`},{\"frame\":`015.webp`,\"verb\":`scroll`,\"label\":`down`,\"x\":null,\"y\":null,\"t\":76.4,\"url\":`https://www.airbnb.com/s/Annecy--france--Annecy/homes?date_picker_type=calendar\u0026checkin=2026-11-07\u0026checkout=2026-11-08\u0026place_id=ChIJBRHtEACPi0cR-Akng2Z10nc\u0026refinement_paths%5B%5D=%2Fhomes\u0026location_bb=QjeaAkDEI5lCN5c%2FQMQNfw%3D%3D\u0026acp_id=t-g-ChIJBRHtEACPi0cR-Akng2Z10nc\u0026adults=2\u0026search_type=autocomplete_click`,\"reasoning\":`I still haven't found a listing rated 4.9 or higher. The ones I've seen so far are:\n1. Hôtel du Palais de l'Isle - no rating shown (it's a featured hotel)\n2. Apartment in Vieille Ville - 4.72 (98 reviews) - €132 total\n3. Room in Vieille Ville - 4.82 (91 reviews) - €158 total\n4. Apartment in Vieille Ville - 4.81 (26 rev`},{\"frame\":`016.webp`,\"verb\":`click`,\"label\":`Apartment in Vieille Ville - Safran Annecy listing with 5.0 rating`,\"x\":.148,\"y\":.456,\"t\":81,\"url\":`https://www.airbnb.com/s/Annecy--france--Annecy/homes?date_picker_type=calendar\u0026checkin=2026-11-07\u0026checkout=2026-11-08\u0026place_id=ChIJBRHtEACPi0cR-Akng2Z10nc\u0026refinement_paths%5B%5D=%2Fhomes\u0026location_bb=QjeaAkDEI5lCN5c%2FQMQNfw%3D%3D\u0026acp_id=t-g-ChIJBRHtEACPi0cR-Akng2Z10nc\u0026adults=2\u0026search_type=autocomplete_click`,\"reasoning\":`I found a listing rated 5.0 (12 reviews): \"Apartment in Vieille Ville\" - Safran Annecy close to the lake in the... - 1 double bed · 1 bath - Business host - €202 total.\n\nWait, but this is in the \"Available for similar dates\" section, not in the main search results. The task says to find the first listing rated 4.9 or h`},{\"frame\":`017.webp`,\"verb\":`answer`,\"label\":`final answer`,\"x\":null,\"y\":null,\"t\":90.5,\"url\":`https://www.airbnb.com/s/Annecy--france--Annecy/homes?date_picker_type=calendar\u0026checkin=2026-11-07\u0026checkout=2026-11-08\u0026place_id=ChIJBRHtEACPi0cR-Akng2Z10nc\u0026refinement_paths%5B%5D=%2Fhomes\u0026location_bb=QjeaAkDEI5lCN5c%2FQMQNfw%3D%3D\u0026acp_id=t-g-ChIJBRHtEACPi0cR-Akng2Z10nc\u0026adults=2\u0026search_type=autocomplete_click`,\"reasoning\":`I can see the listing clearly now. The first listing rated 4.9 or higher is:\n- Name: \"Apartment in Vieille Ville\" - \"Safran Annecy close to the lake in the...\"\n- Price: €202 total (for 1 night, Nov 7-8)\n- Rating: 5.0 (12 reviews)\n\nThe price per night would be €202 since it's for 1 night (Nov 7-8).\n\nLet me report this t`}]};const __snippet_airbnbCitiesTree_1wdwc3j={\"manager\":`trip-scout`,\"task\":`On airbnb.com, find the first stay rated 4.9 or higher for 2 guests next weekend in Annecy, Chamonix and Lyon. Use one subagent per city, in parallel. Each subagent answers as 'Stay: \u003cname> | Price: \u003cprice per night>'. Return a comparison table with city, stay and price per night.`,\"answered\":311.4,\"table\":{\"header\":[`City`,`Stay`,`Price per Night`],\"rows\":[[`Annecy`,`Completely renovated studio in the heart of Old Annecy`,`€130`],[`Chamonix`,`Charming apartment in the heart of Chamonix`,`€189`],[`Lyon`,`Charming typical Canut apartment - Lyon center`,`€133`]]},\"children\":[{\"src\":`https://assets.hcompanyprod.fr/docs/replays/airbnb-cities/annecyscout`,\"aspect\":`640 / 640`,\"agent\":`h/web-surfer-flash`,\"task\":`On airbnb.com, find the FIRST stay rated 4.9 or higher for 2 guests for next weekend in Annecy, France.\n\nSteps:\n1. Go to https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-02\u0026adults=2 (check-in Saturday Oct 31 2026, check-out Sunday Nov 1 2026, 2 adults). If the URL doesn't apply the dates/guests, set them via the search bar: location \"Annecy\", dates Oct 31 – Nov 1 2026, 2 guests.\n2. In the results, apply the rating filter for 4.9+ (Filters button → Guest rating → 4.9+). If no 4.9+ filter exists, use 4.8+ and manually check each listing's rating, skipping any below 4.9.\n3. Take the FIRST listing in the default sort order that shows a rating of 4.9 or higher.\n4. Open that listing to confirm its exact name and the price per night (total ÷ number of nights, or the per-night figure shown).\n\nReturn EXACTLY in this format (plus the rating in parentheses):\nStay: \u003clisting name> | Price: \u003cprice per night with currency>\n\nBudget: check at most 5 listings before answering. If Airbnb blocks you (captcha/login wall), report the blocker precisely.\n\n## Context\n\nYou are a sub-agent in a multi-agent run. A manager agent has decomposed the user's request and assigned you the task above. Solve it.\n### Original user messages\n\nThese are the messages the end user sent to your manager. They are background, not your goal: your scope is the task above, not the larger user request. Use them only to disambiguate what your manager is asking for.\n- On airbnb.com, find the first stay rated 4.9 or higher for 2 guests next weekend in Annecy, Chamonix and Lyon. Use one subagent per city, in parallel. Each subagent answers as 'Stay: \u003cname> | Price: \u003cprice per night>'. Return a comparison table with city, stay and price per night.\n### Your manager's plan\n\nThis is how your manager is organising the work. Use it to understand where your task fits and what the manager is depending on you to deliver.\n\n1. Spawn 3 subagents (Annecy, Chamonix, Lyon) for Airbnb search [running]\n2. Collect each subagent's top-rated stay result [todo]\n3. Build comparison table with city, stay, price per night [todo]\n## Sub-agent constraints\n\nYou have **no access to the user**. The user only sees what the manager decides to surface; any message or question you direct at them never arrives.\n\n- **Never** call \\`ask_user\\`, \\`propose_plan\\`, or \\`notify_user\\`. If the task feels ambiguous, underspecified, or impossible, do not stop to ask. There is no human on the other end of these tools from your seat.\n- **Never** hand off, delegate further, or request a review. You are the worker. The manager will judge your output; further delegation creates a loop the manager cannot resolve.\n- The only acceptable terminal action is \\`answer\\`. Submit your best result with whatever you gathered, and name limitations or uncertainties inside the answer itself.\n\nWhen in doubt, **proceed**. Act on the most reasonable interpretation of the task with the information you have, state the assumption you made in your final answer, and let the manager decide whether to follow up. A confident best-effort answer with caveats is strictly better than a stalled run waiting for input that will never arrive.\n\nYour final answer is the **only** artifact your manager receives. Intermediate notes, scrollback, and partial observations do not survive the handoff. Make the answer self-contained: include the data, the source URLs, the criteria you used, and the assumptions you made. Do not summarise away detail the manager might need.`,\"status\":`completed`,\"duration\":89.1,\"step_s\":1.8,\"answer\":`Stay: No 4.9+ rated stay found in first listings\n\nI checked the Airbnb search results for Annecy, France (check-in Oct 31 2026, check-out Nov 2 2026, 2 guests) in default sort order. The first listings had ratings of 4.59, 4.74, 4.86, 4.78, 4.79, and 4.54 — none reached 4.9+. The highest-rated listing in the first results was \"Apartment in Vieille Ville - La Tanière: Downtown and Terrace\" at 4.79 (107 reviews) for €171 total (€85.50/night). No listing with a 4.9+ rating was found within the first 5 listings checked.`,\"records\":[],\"steers\":[],\"steps\":[{\"frame\":`002.webp`,\"verb\":`open`,\"label\":`airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-02\u0026adults=2`,\"x\":null,\"y\":null,\"t\":15.4,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-02\u0026adults=2`,\"reasoning\":`Let me navigate to the Airbnb URL provided in the task to search for stays in Annecy, France.`},{\"frame\":`002.webp`,\"verb\":`click`,\"label\":`Accept all cookies button`,\"x\":.302,\"y\":.896,\"t\":22.7,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-02\u0026adults=2`,\"reasoning\":`I'm on the Airbnb page for Annecy with the correct dates (Oct 31 - Nov 2, 2 guests). I can see the listings. Now I need to apply the rating filter for 4.9+. Let me first dismiss the cookie banner, then click on Filters to apply the 4.9+ rating filter.\n\nI can see the first few listings:\n1. \"Apartment in Vieille Ville\" -`},{\"frame\":`003.webp`,\"verb\":`click`,\"label\":`Filters button at the top of the results`,\"x\":.137,\"y\":.081,\"t\":28.5,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-02\u0026adults=2`,\"reasoning\":`Good, the cookie banner is dismissed. Now I need to click on \"Filters\" to apply the 4.9+ rating filter.`},{\"frame\":`004.webp`,\"verb\":`scroll`,\"label\":`down`,\"x\":null,\"y\":null,\"t\":33,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-02\u0026adults=2`,\"reasoning\":`The Filters dialog is open. I need to scroll down within this dialog to find the \"Guest rating\" filter option where I can select 4.9+. Let me scroll down in the filters panel.`},{\"frame\":`005.webp`,\"verb\":`click`,\"label\":`Close button (X) on the Filters modal`,\"x\":.7,\"y\":.06,\"t\":37.3,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-02\u0026adults=2`,\"reasoning\":`I keep making the same error with the scroll_element parameter. The issue is that I'm passing a string instead of an actual object. Let me try a different approach - I'll just close the filters modal and manually check the listings. Since I can't find a 4.9+ filter in the modal, I'll close it and manually scroll throug`},{\"frame\":`006.webp`,\"verb\":`scroll`,\"label\":`down`,\"x\":null,\"y\":null,\"t\":53.7,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-02\u0026adults=2`,\"reasoning\":`Good, the filters modal is closed. Now I can see the listings clearly. The ratings I can see are:\n1. Apartment in Vieille Ville - 4.59 (324) - €167 total\n2. Apartment in Vieille Ville - 4.74 (34) - €192 total\n3. Apartment in Vieille Ville - 4.86 (344) - €180 total\n4. Apartment in Vieille Ville - 4.78 (9) - €191 total\n\n`},{\"frame\":`007.webp`,\"verb\":`click`,\"label\":`Filters button in the top navigation`,\"x\":.137,\"y\":.081,\"t\":58.8,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-02\u0026adults=2`,\"reasoning\":`I can see more listings now. Let me check the ratings:\n1. Apartment in Vieille Ville - Studio \"HYGGE\", city center - 4.86 (344) - €180 total\n2. Apartment in Vieille Ville - Chez Thomas | Studio | Annecy - 4.78 (9) - €191 total\n3. Apartment in Vieille Ville - La Tanière: Downtown and Terrace - 4.79 (107) - €171 total\n4.`},{\"frame\":`008.webp`,\"verb\":`click`,\"label\":`Close button X on Filters modal`,\"x\":.7,\"y\":.06,\"t\":66.7,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-02\u0026adults=2`,\"reasoning\":`I keep making the same mistake with the scroll_element parameter - it needs to be a proper object/dictionary, not a string. Let me close the filters modal instead and just manually check the listings. I've already seen enough listings - none have 4.9+ ratings. Let me close this modal and proceed to answer.\n\nActually, l`},{\"frame\":`009.webp`,\"verb\":`answer`,\"label\":`final answer`,\"x\":null,\"y\":null,\"t\":79.7,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-02\u0026adults=2`,\"reasoning\":`I can see more listings now. The main search results show:\n1. Apartment in Vieille Ville - Studio \"HYGGE\" - 4.86 (344) - €180 total\n2. Apartment in Vieille Ville - Chez Thomas | Studio | Annecy - 4.78 (9) - €191 total\n3. Apartment in Vieille Ville - La Tanière: Downtown and Terrace - 4.79 (107) - €171 total\n4. Apartmen`}],\"id\":`AnnecyScout`,\"label\":`Annecy`,\"result\":null,\"offset\":12.7},{\"src\":`https://assets.hcompanyprod.fr/docs/replays/airbnb-cities/annecyscout2`,\"aspect\":`640 / 594`,\"agent\":`h/web-surfer-flash`,\"task\":`On airbnb.com, find the FIRST stay rated 4.9 or higher for 2 guests in Annecy, France for the weekend of Oct 31 – Nov 1, 2026.\n\nA previous attempt FAILED because it checked unfiltered listings. The critical step is the RATING FILTER — do this before looking at any listings:\n\n1. Go to https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2. Verify the search bar shows Annecy, Oct 31 – Nov 1 2026, 2 guests; fix via the search bar if not.\n2. Click the \"Filters\" button. In the filters dialog, find \"Guest rating\" and select the 4.9+ option (it's usually the rightmost star-rating chip). Click \"Show X homes\" / \"Show homes\" to apply.\n3. ONLY after the filter is applied, take the FIRST listing in the results (default sort). It must show 4.9 or higher.\n4. Open that listing to confirm its exact name and price per night.\n\nReturn EXACTLY in this format (plus the rating in parentheses):\nStay: \u003clisting name> | Price: \u003cprice per night with currency>\n\nIf the 4.9+ filter genuinely doesn't exist, use 4.8+ and skip any listing under 4.9, checking up to 8. If a login wall or captcha appears, report it precisely.\n\n## Context\n\nYou are a sub-agent in a multi-agent run. A manager agent has decomposed the user's request and assigned you the task above. Solve it.\n### Original user messages\n\nThese are the messages the end user sent to your manager. They are background, not your goal: your scope is the task above, not the larger user request. Use them only to disambiguate what your manager is asking for.\n- On airbnb.com, find the first stay rated 4.9 or higher for 2 guests next weekend in Annecy, Chamonix and Lyon. Use one subagent per city, in parallel. Each subagent answers as 'Stay: \u003cname> | Price: \u003cprice per night>'. Return a comparison table with city, stay and price per night.\n### Your manager's plan\n\nThis is how your manager is organising the work. Use it to understand where your task fits and what the manager is depending on you to deliver.\n\n1. Spawn 3 subagents (Annecy, Chamonix, Lyon) for Airbnb search [running]\n2. Collect each subagent's top-rated stay result [todo]\n3. Build comparison table with city, stay, price per night [todo]\n## Sub-agent constraints\n\nYou have **no access to the user**. The user only sees what the manager decides to surface; any message or question you direct at them never arrives.\n\n- **Never** call \\`ask_user\\`, \\`propose_plan\\`, or \\`notify_user\\`. If the task feels ambiguous, underspecified, or impossible, do not stop to ask. There is no human on the other end of these tools from your seat.\n- **Never** hand off, delegate further, or request a review. You are the worker. The manager will judge your output; further delegation creates a loop the manager cannot resolve.\n- The only acceptable terminal action is \\`answer\\`. Submit your best result with whatever you gathered, and name limitations or uncertainties inside the answer itself.\n\nWhen in doubt, **proceed**. Act on the most reasonable interpretation of the task with the information you have, state the assumption you made in your final answer, and let the manager decide whether to follow up. A confident best-effort answer with caveats is strictly better than a stalled run waiting for input that will never arrive.\n\nYour final answer is the **only** artifact your manager receives. Intermediate notes, scrollback, and partial observations do not survive the handoff. Make the answer self-contained: include the data, the source URLs, the criteria you used, and the assumptions you made. Do not summarise away detail the manager might need.`,\"status\":`completed`,\"duration\":126.6,\"step_s\":1.8,\"answer\":`Stay: Completely renovated studio in the heart of Old Annecy. | Price: €130 per night`,\"records\":[],\"steers\":[],\"steps\":[{\"frame\":`002.webp`,\"verb\":`open`,\"label\":`airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"x\":null,\"y\":null,\"t\":14.5,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`I need to navigate to Airbnb and search for stays in Annecy, France for Oct 31 – Nov 1, 2026, for 2 guests, then apply a 4.9+ rating filter and find the first listing. Let me start by navigating to the Airbnb URL.`},{\"frame\":`002.webp`,\"verb\":`click`,\"label\":`Accept all button in cookie consent dialog`,\"x\":.303,\"y\":.894,\"t\":20.6,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`Good, I'm on the Airbnb page for Annecy, France with the correct dates (Oct 31 – Nov 1) and 2 guests. I can see the search bar shows \"Homes in Annecy\", \"Oct 31 – Nov 1\", \"2 guests\". \n\nThere's a cookie consent dialog. Let me dismiss it first, then apply the 4.9+ guest rating filter.`},{\"frame\":`003.webp`,\"verb\":`click`,\"label\":`Filters button at the top of the page`,\"x\":.136,\"y\":.081,\"t\":25.1,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`Good, the cookie dialog is dismissed. Now I need to click the \"Filters\" button to apply the 4.9+ guest rating filter. I can see the \"Filters\" button at the top left of the page.`},{\"frame\":`004.webp`,\"verb\":`scroll`,\"label\":`down`,\"x\":null,\"y\":null,\"t\":29.3,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`The filters dialog is open. I need to scroll down within the filters dialog to find the \"Guest rating\" section where I can select the 4.9+ option. Let me scroll down in the filters dialog.`},{\"frame\":`005.webp`,\"verb\":`scroll`,\"label\":`down`,\"x\":null,\"y\":null,\"t\":33.1,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`I'm having trouble with the scroll_web tool - I keep passing the scroll_element as a JSON string instead of an actual object. Let me try a different approach. Maybe I can use the search filters box to search for \"guest rating\" or just scroll the whole page down. Actually, let me try scrolling the entire page since the `},{\"frame\":`006.webp`,\"verb\":`type`,\"label\":`“guest rating” Search all filters input field at the top of the filters modal`,\"x\":.5,\"y\":.125,\"t\":57.9,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`I keep making the same mistake - I'm passing scroll_element as a string instead of an object. The tool expects a proper dictionary/object, not a string representation of one. Let me look at the schema again:\n\nscroll_element should be either:\n- null (to scroll the full page)\n- An object with properties: element (string)`},{\"frame\":`007.webp`,\"verb\":`click`,\"label\":`Close button (X) for the filter search overlay`,\"x\":.692,\"y\":.075,\"t\":72,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`The search for \"guest rating\" in the filters shows \"No matching filters\". This means the filter search doesn't find it with that term. Let me clear this search and try a different approach. I'll close this search and scroll down within the filters modal to find the guest rating section manually. Let me clear the search`},{\"frame\":`008.webp`,\"verb\":`click`,\"label\":`Filters modal content area in the middle of the modal`,\"x\":.5,\"y\":.555,\"t\":76.9,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`Good, the search overlay is closed. Now I need to scroll down within the filters modal to find the \"Guest rating\" section. The modal has its own scrollable area. Let me try to scroll within the modal by clicking in the middle of the modal content area and then using keyboard to scroll, or I can try the drag approach.\n\n`},{\"frame\":`009.webp`,\"verb\":`press`,\"label\":``,\"x\":null,\"y\":null,\"t\":81.8,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`I need to scroll down within the filters modal to find the \"Guest rating\" section. The modal content area is scrollable. Let me try using keyboard shortcuts - I'll press the Page Down key or use arrow keys to scroll down within the modal. Since I clicked in the modal area, keyboard input should work now.`},{\"frame\":`010.webp`,\"verb\":`press`,\"label\":``,\"x\":null,\"y\":null,\"t\":86,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`Good, the page scrolled down within the filters modal. I can now see more sections:\n- Bedrooms, Beds, Bathrooms\n- Amenities (Free parking, Hot tub, Wifi, Heating, Washer, Hair dryer)\n- Booking options (Instant Book, Self check-in, Free cancellation, Allows pets)\n- Standout stays (Guest favorite, Luxe)\n- Property type\n-`},{\"frame\":`011.webp`,\"verb\":`press`,\"label\":``,\"x\":null,\"y\":null,\"t\":90.2,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`I can see more sections now: Amenities, Booking options, Standout stays, Property type, Accessibility features, Host language. I still haven't found \"Guest rating\". Let me continue scrolling down.`},{\"frame\":`012.webp`,\"verb\":`press`,\"label\":``,\"x\":null,\"y\":null,\"t\":93.9,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`The page doesn't seem to be scrolling further. The modal seems to have reached the bottom - I can see \"Host language\" and \"Clear all\" / \"Show 785 places\" at the bottom. I don't see a \"Guest rating\" section in the filters. Let me try scrolling within the modal content area using the scroll tool. The modal has a scrollba`},{\"frame\":`013.webp`,\"verb\":`click`,\"label\":`Show 785 places button at the bottom of the filters modal`,\"x\":.648,\"y\":.929,\"t\":99.4,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`I scrolled back to the top of the filters modal. I can see all the filter sections:\n- Recommended for you (Self check-in, Kitchen, TV, 1+ beds)\n- Type of place (Any type, Room, Entire home)\n- Price (with slider)\n- Rooms and beds (Bedrooms, Beds...)\n- Amenities\n- Booking options\n- Standout stays\n- Property type\n- Access`},{\"frame\":`014.webp`,\"verb\":`click`,\"label\":`First listing - Condo in Annecy, the first property card with the bed photo`,\"x\":.166,\"y\":.382,\"t\":106.4,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?adults=2\u0026checkin=2026-10-31\u0026checkout=2026-11-01\u0026ref_fsid=6e8c67c4-287d-4ec4-8de6-e83b62ac855f\u0026ref_search_session_id=43cf1b6f-f53f-4a49-bbc8-2725bd0467de\u0026place_id=ChIJu_5hWOWPi0cRK4mrtTKskGo\u0026refinement_paths%5B%5D=%2Fhomes\u0026flexible_trip_lengths%5B%5D=one_week\u0026monthly_start_date=2026-11-01\u0026monthly_length=3\u0026monthly_end_date=2027-02-01\u0026search_mode=regular_search\u0026price_filter_input_type=2\u0026price_filter_num_nights=1\u0026channel=EXPLORE\u0026selected_filter_order%5B%5D=price_filter_input_type%3A2\u0026update_selected_filters=false\u0026search_type=filter_change`,\"reasoning\":`Good, the filters are closed and I can see the listings. The first listing is \"Condo in Annecy\" with a rating of 4.95 (553 reviews). It's described as \"Completely renovated studio in the hear...\" with 1 bed, 1 bath, Individual host, and €130 total.\n\nWait, I notice the price shows €130 total, not per night. Let me click`},{\"frame\":`015.webp`,\"verb\":`click`,\"label\":`Condo in Annecy listing title text`,\"x\":.091,\"y\":.382,\"t\":111.3,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?adults=2\u0026checkin=2026-10-31\u0026checkout=2026-11-01\u0026ref_fsid=6e8c67c4-287d-4ec4-8de6-e83b62ac855f\u0026ref_search_session_id=43cf1b6f-f53f-4a49-bbc8-2725bd0467de\u0026place_id=ChIJu_5hWOWPi0cRK4mrtTKskGo\u0026refinement_paths%5B%5D=%2Fhomes\u0026flexible_trip_lengths%5B%5D=one_week\u0026monthly_start_date=2026-11-01\u0026monthly_length=3\u0026monthly_end_date=2027-02-01\u0026search_mode=regular_search\u0026price_filter_input_type=2\u0026price_filter_num_nights=1\u0026channel=EXPLORE\u0026selected_filter_order%5B%5D=price_filter_input_type%3A2\u0026update_selected_filters=false\u0026search_type=filter_change`,\"reasoning\":`I can see the listings now. The first listing is \"Condo in Annecy\" with a rating of 4.95 (553 reviews). It says \"Completely renovated studio in the hear...\" with 1 bed, 1 bath, Individual host, and €130 total. \n\nWait, I see it says \"€130 total\" - this seems to be the total price for the stay (1 night). But I need to co`},{\"frame\":`016.webp`,\"verb\":`switch`,\"label\":`Switch tab`,\"x\":null,\"y\":null,\"t\":117.5,\"url\":`https://www.airbnb.com/s/Annecy--France/homes?adults=2\u0026checkin=2026-10-31\u0026checkout=2026-11-01\u0026ref_fsid=6e8c67c4-287d-4ec4-8de6-e83b62ac855f\u0026ref_search_session_id=43cf1b6f-f53f-4a49-bbc8-2725bd0467de\u0026place_id=ChIJu_5hWOWPi0cRK4mrtTKskGo\u0026refinement_paths%5B%5D=%2Fhomes\u0026flexible_trip_lengths%5B%5D=one_week\u0026monthly_start_date=2026-11-01\u0026monthly_length=3\u0026monthly_end_date=2027-02-01\u0026search_mode=regular_search\u0026price_filter_input_type=2\u0026price_filter_num_nights=1\u0026channel=EXPLORE\u0026selected_filter_order%5B%5D=price_filter_input_type%3A2\u0026update_selected_filters=false\u0026search_type=filter_change`,\"reasoning\":`I see that clicking opened a new tab (tab 2). The first listing \"Condo in Annecy\" has a rating of 4.95 (553 reviews) which is 4.9 or higher. The listing shows \"€130 total\" for the stay. I need to open the listing to confirm the exact name and price per night. Let me switch to tab 2 to see the listing details.`},{\"frame\":`017.webp`,\"verb\":`answer`,\"label\":`final answer`,\"x\":null,\"y\":null,\"t\":121.7,\"url\":`https://www.airbnb.com/rooms/771700894239413696?adults=2\u0026check_in=2026-10-31\u0026check_out=2026-11-01\u0026search_mode=regular_search\u0026source_impression_id=p3_dab59ca6-d0bc-451a-b29b-933d611f0b66_6cb21666-a432-43dc-b4f9-4f0bbfe855ad_0_771700894239413696_0\u0026previous_page_section_name=1000\u0026federated_search_id=dab59ca6-d0bc-451a-b29b-933d611f0b66`,\"reasoning\":`I can now see the listing details:\n- Name: \"Completely renovated studio in the heart of Old Annecy.\"\n- Rating: 4.95 (553 reviews)\n- Price: €130 total (for 1 night, Oct 31 – Nov 1, 2026)\n- Type: Entire condo in Annecy\n- 2 guests, Studio, 1 bed, 1 bath\n- Hosted by Anne Claire, Superhost\n\nThe listing title is \"Completely `}],\"id\":`AnnecyScout2`,\"label\":`Annecy, retry`,\"result\":`€130`,\"offset\":157.2},{\"src\":`https://assets.hcompanyprod.fr/docs/replays/airbnb-cities/chamonixscout`,\"aspect\":`640 / 594`,\"agent\":`h/web-surfer-flash`,\"task\":`On airbnb.com, find the FIRST stay rated 4.9 or higher for 2 guests for next weekend in Chamonix, France.\n\nSteps:\n1. Go to https://www.airbnb.com/s/Chamonix--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2 (check-in Saturday Oct 31 2026, check-out Sunday Nov 1 2026, 2 adults). If the URL doesn't apply the dates/guests, set them via the search bar: location \"Chamonix\", dates Oct 31 – Nov 1 2026, 2 guests.\n2. In the results, apply the rating filter for 4.9+ (Filters button → Guest rating → 4.9+). If no 4.9+ filter exists, use 4.8+ and manually check each listing's rating, skipping any below 4.9.\n3. Take the FIRST listing in the default sort order that shows a rating of 4.9 or higher.\n4. Open that listing to confirm its exact name and the price per night (total ÷ number of nights, or the per-night figure shown).\n\nReturn EXACTLY in this format (plus the rating in parentheses):\nStay: \u003clisting name> | Price: \u003cprice per night with currency>\n\nBudget: check at most 5 listings before answering. If Airbnb blocks you (captcha/login wall), report the blocker precisely.\n\n## Context\n\nYou are a sub-agent in a multi-agent run. A manager agent has decomposed the user's request and assigned you the task above. Solve it.\n### Original user messages\n\nThese are the messages the end user sent to your manager. They are background, not your goal: your scope is the task above, not the larger user request. Use them only to disambiguate what your manager is asking for.\n- On airbnb.com, find the first stay rated 4.9 or higher for 2 guests next weekend in Annecy, Chamonix and Lyon. Use one subagent per city, in parallel. Each subagent answers as 'Stay: \u003cname> | Price: \u003cprice per night>'. Return a comparison table with city, stay and price per night.\n### Your manager's plan\n\nThis is how your manager is organising the work. Use it to understand where your task fits and what the manager is depending on you to deliver.\n\n1. Spawn 3 subagents (Annecy, Chamonix, Lyon) for Airbnb search [running]\n2. Collect each subagent's top-rated stay result [todo]\n3. Build comparison table with city, stay, price per night [todo]\n## Sub-agent constraints\n\nYou have **no access to the user**. The user only sees what the manager decides to surface; any message or question you direct at them never arrives.\n\n- **Never** call \\`ask_user\\`, \\`propose_plan\\`, or \\`notify_user\\`. If the task feels ambiguous, underspecified, or impossible, do not stop to ask. There is no human on the other end of these tools from your seat.\n- **Never** hand off, delegate further, or request a review. You are the worker. The manager will judge your output; further delegation creates a loop the manager cannot resolve.\n- The only acceptable terminal action is \\`answer\\`. Submit your best result with whatever you gathered, and name limitations or uncertainties inside the answer itself.\n\nWhen in doubt, **proceed**. Act on the most reasonable interpretation of the task with the information you have, state the assumption you made in your final answer, and let the manager decide whether to follow up. A confident best-effort answer with caveats is strictly better than a stalled run waiting for input that will never arrive.\n\nYour final answer is the **only** artifact your manager receives. Intermediate notes, scrollback, and partial observations do not survive the handoff. Make the answer self-contained: include the data, the source URLs, the criteria you used, and the assumptions you made. Do not summarise away detail the manager might need.`,\"status\":`completed`,\"duration\":92.7,\"step_s\":1.8,\"answer\":`Stay: Charming apartment in the heart of Chamonix | Price: €189`,\"records\":[],\"steers\":[],\"steps\":[{\"frame\":`002.webp`,\"verb\":`open`,\"label\":`airbnb.com/s/Chamonix--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"x\":null,\"y\":null,\"t\":14.6,\"url\":`https://www.airbnb.com/s/Chamonix--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`Let me start by navigating to the Airbnb URL provided in the task to search for stays in Chamonix, France.`},{\"frame\":`002.webp`,\"verb\":`click`,\"label\":`Accept all button in cookie consent dialog`,\"x\":.297,\"y\":.898,\"t\":21,\"url\":`https://www.airbnb.com/s/Chamonix--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`The page loaded successfully with Chamonix results for Oct 31 - Nov 1, 2026, 2 guests. I can see 512 homes. There's a cookie consent dialog. Let me dismiss it first, then apply the 4.9+ rating filter.\n\nLooking at the visible listings:\n1. L'Arveyron Open House - 4.55 (42) - not 4.9+\n2. Apartment in Chamonix - 5.0 (58) -`},{\"frame\":`003.webp`,\"verb\":`click`,\"label\":`Filters button in the filter bar`,\"x\":.077,\"y\":.082,\"t\":26.3,\"url\":`https://www.airbnb.com/s/Chamonix--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`Good, the cookie dialog is dismissed. Now I need to apply the 4.9+ rating filter. Let me click on the \"Filters\" button.`},{\"frame\":`004.webp`,\"verb\":`scroll`,\"label\":`down`,\"x\":null,\"y\":null,\"t\":30.6,\"url\":`https://www.airbnb.com/s/Chamonix--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`I keep making the same mistake with the scroll_element parameter - it's being passed as a string instead of an object. Let me try scrolling the page directly without specifying a scroll_element, which should scroll the whole page.`},{\"frame\":`005.webp`,\"verb\":`press`,\"label\":``,\"x\":null,\"y\":null,\"t\":56.9,\"url\":`https://www.airbnb.com/s/Chamonix--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`I keep making the same mistake - the scroll_element parameter needs to be a proper object/dictionary, not a string. Let me try a different approach - I'll just scroll the page without specifying a scroll element, or I can try to look at the filters differently. Actually, looking at the screenshot, the modal is showing `},{\"frame\":`006.webp`,\"verb\":`press`,\"label\":``,\"x\":null,\"y\":null,\"t\":69.5,\"url\":`https://www.airbnb.com/s/Chamonix--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`I can see the filters modal is open but I can't scroll within it using the scroll tool. Let me try a different approach - I'll close the filters modal and just look at the listings directly. I can already see from the first screenshot that the second listing \"Apartment in Chamonix\" has a 5.0 rating with 58 reviews, whi`},{\"frame\":`007.webp`,\"verb\":`click`,\"label\":`Close button (X) on the Filters modal`,\"x\":.701,\"y\":.06,\"t\":73.5,\"url\":`https://www.airbnb.com/s/Chamonix--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`The filters modal doesn't seem to have a \"Guest rating\" section visible. I can see \"Recommended for you\", \"Type of place\", \"Price\", and \"Rooms and beds\" sections. There's no guest rating filter visible in this modal. \n\nLooking at the task instructions again: \"If no 4.9+ filter exists, use 4.8+ and manually check each l`},{\"frame\":`008.webp`,\"verb\":`click`,\"label\":`Apartment in Chamonix listing with 5.0 rating - the second listing showing kitchen image`,\"x\":.441,\"y\":.272,\"t\":78.2,\"url\":`https://www.airbnb.com/s/Chamonix--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`Now I can see the listings clearly. The first listing with a rating of 4.9 or higher is the second one:\n\n\"Apartment in Chamonix\" - 5.0 (58) - \"Charming apartment in the heart of...\" - 1 bedroom, 2 beds, 1 bath - €189 total\n\nThis is the first listing in the default sort order that shows a rating of 4.9 or higher. Now I `},{\"frame\":`009.webp`,\"verb\":`switch`,\"label\":`Switch tab`,\"x\":null,\"y\":null,\"t\":83.8,\"url\":`https://www.airbnb.com/s/Chamonix--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`It seems like a new tab was opened (I can see \"Open Tabs (2): 0, 1\"). Let me switch to tab 1 to see the listing details.`},{\"frame\":`010.webp`,\"verb\":`answer`,\"label\":`final answer`,\"x\":null,\"y\":null,\"t\":87.8,\"url\":`https://www.airbnb.com/rooms/46016234?adults=2\u0026check_in=2026-10-31\u0026check_out=2026-11-01\u0026search_mode=regular_search\u0026source_impression_id=p3_c9726e3d-0679-4d9c-aacf-b2c427b45b90_1ef8020d-d37f-446c-9698-be38445ea66a_0_46016234_1\u0026previous_page_section_name=1000\u0026federated_search_id=c9726e3d-0679-4d9c-aacf-b2c427b45b90`,\"reasoning\":`I can see the listing details:\n- Name: \"Charming apartment in the heart of Chamonix\"\n- Rating: 5.0 (58 Reviews)\n- Price: €189 total (for 1 night, Oct 31 - Nov 1)\n- It's an entire rental unit, 4 guests, 1 bedroom, 2 beds, 1 bath\n- Hosted by Aurélie, Superhost\n\nThe price is €189 total for 1 night, so the price per night `}],\"id\":`ChamonixScout`,\"label\":`Chamonix`,\"result\":`€189`,\"offset\":12.9},{\"src\":`https://assets.hcompanyprod.fr/docs/replays/airbnb-cities/lyonscout`,\"aspect\":`640 / 594`,\"agent\":`h/web-surfer-flash`,\"task\":`On airbnb.com, find the FIRST stay rated 4.9 or higher for 2 guests for next weekend in Lyon, France.\n\nSteps:\n1. Go to https://www.airbnb.com/s/Lyon--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2 (check-in Saturday Oct 31 2026, check-out Sunday Nov 1 2026, 2 adults). If the URL doesn't apply the dates/guests, set them via the search bar: location \"Lyon\", dates Oct 31 – Nov 1 2026, 2 guests.\n2. In the results, apply the rating filter for 4.9+ (Filters button → Guest rating → 4.9+). If no 4.9+ filter exists, use 4.8+ and manually check each listing's rating, skipping any below 4.9.\n3. Take the FIRST listing in the default sort order that shows a rating of 4.9 or higher.\n4. Open that listing to confirm its exact name and the price per night (total ÷ number of nights, or the per-night figure shown).\n\nReturn EXACTLY in this format (plus the rating in parentheses):\nStay: \u003clisting name> | Price: \u003cprice per night with currency>\n\nBudget: check at most 5 listings before answering. If Airbnb blocks you (captcha/login wall), report the blocker precisely.\n\n## Context\n\nYou are a sub-agent in a multi-agent run. A manager agent has decomposed the user's request and assigned you the task above. Solve it.\n### Original user messages\n\nThese are the messages the end user sent to your manager. They are background, not your goal: your scope is the task above, not the larger user request. Use them only to disambiguate what your manager is asking for.\n- On airbnb.com, find the first stay rated 4.9 or higher for 2 guests next weekend in Annecy, Chamonix and Lyon. Use one subagent per city, in parallel. Each subagent answers as 'Stay: \u003cname> | Price: \u003cprice per night>'. Return a comparison table with city, stay and price per night.\n### Your manager's plan\n\nThis is how your manager is organising the work. Use it to understand where your task fits and what the manager is depending on you to deliver.\n\n1. Spawn 3 subagents (Annecy, Chamonix, Lyon) for Airbnb search [running]\n2. Collect each subagent's top-rated stay result [todo]\n3. Build comparison table with city, stay, price per night [todo]\n## Sub-agent constraints\n\nYou have **no access to the user**. The user only sees what the manager decides to surface; any message or question you direct at them never arrives.\n\n- **Never** call \\`ask_user\\`, \\`propose_plan\\`, or \\`notify_user\\`. If the task feels ambiguous, underspecified, or impossible, do not stop to ask. There is no human on the other end of these tools from your seat.\n- **Never** hand off, delegate further, or request a review. You are the worker. The manager will judge your output; further delegation creates a loop the manager cannot resolve.\n- The only acceptable terminal action is \\`answer\\`. Submit your best result with whatever you gathered, and name limitations or uncertainties inside the answer itself.\n\nWhen in doubt, **proceed**. Act on the most reasonable interpretation of the task with the information you have, state the assumption you made in your final answer, and let the manager decide whether to follow up. A confident best-effort answer with caveats is strictly better than a stalled run waiting for input that will never arrive.\n\nYour final answer is the **only** artifact your manager receives. Intermediate notes, scrollback, and partial observations do not survive the handoff. Make the answer self-contained: include the data, the source URLs, the criteria you used, and the assumptions you made. Do not summarise away detail the manager might need.`,\"status\":`completed`,\"duration\":114.2,\"step_s\":1.8,\"answer\":`Stay: Charming typical Canut apartment - Lyon center | Price: €133 per night`,\"records\":[],\"steers\":[],\"steps\":[{\"frame\":`002.webp`,\"verb\":`open`,\"label\":`airbnb.com/s/Lyon--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"x\":null,\"y\":null,\"t\":14.2,\"url\":`https://www.airbnb.com/s/Lyon--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`I need to navigate to Airbnb and search for stays in Lyon, France for Oct 31 - Nov 1, 2026, for 2 guests. Let me start by navigating to the Airbnb URL provided.`},{\"frame\":`002.webp`,\"verb\":`click`,\"label\":`Accept all cookies button`,\"x\":.297,\"y\":.896,\"t\":22.2,\"url\":`https://www.airbnb.com/s/Lyon--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`Good, the Airbnb page loaded with the correct dates (Oct 31 - Nov 1) and 2 guests. I can see the search results for Lyon. There's a cookie consent dialog I need to dismiss first. Then I need to apply the 4.9+ rating filter. Let me accept cookies first, then click on Filters to apply the rating filter.`},{\"frame\":`003.webp`,\"verb\":`click`,\"label\":`Filters button in the filter bar`,\"x\":.142,\"y\":.081,\"t\":27.2,\"url\":`https://www.airbnb.com/s/Lyon--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`Good, the cookie dialog is dismissed. Now I need to apply the 4.9+ rating filter. I can see the \"Filters\" button at the top. Let me click on it to open the filters and apply the rating filter.`},{\"frame\":`004.webp`,\"verb\":`scroll`,\"label\":`down`,\"x\":null,\"y\":null,\"t\":31.6,\"url\":`https://www.airbnb.com/s/Lyon--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`I keep making the same error - passing a JSON string instead of a proper dict. Let me try without any scroll_element and just scroll the page, or better yet, let me just try without scroll_element at all (omit it entirely) and see if that works. Actually, let me just not pass scroll_element and let it scroll the page b`},{\"frame\":`005.webp`,\"verb\":`click`,\"label\":`Close button (X) on the Filters dialog`,\"x\":.703,\"y\":.06,\"t\":53.1,\"url\":`https://www.airbnb.com/s/Lyon--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`I keep failing to pass the scroll_element as a proper Python dict. The error message keeps showing that it's receiving a string. I think the issue is in how I'm formatting the arguments. Let me try a completely different approach - I'll just close the filters dialog and manually check the listings instead, since I can `},{\"frame\":`006.webp`,\"verb\":`click`,\"label\":`Filters button in the top filter bar`,\"x\":.142,\"y\":.081,\"t\":60.3,\"url\":`https://www.airbnb.com/s/Lyon--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`Good, the filters dialog is closed. Now I can see the listings. The first few listings have ratings:\n1. Appart'City Classic Lyon Pa... - 4.53 (718)\n2. B\u0026B HOME Lyon Centre Berth... - 4.6 (63)\n3. The People Hotel Lyon - 4.55 (84)\n4. Apartment in 1st Arrondiss... - 4.85 (568)\n\nNone of these are 4.9+. I need to find one w`},{\"frame\":`007.webp`,\"verb\":`press`,\"label\":``,\"x\":null,\"y\":null,\"t\":65.6,\"url\":`https://www.airbnb.com/s/Lyon--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`The filters dialog is open again. I need to scroll down within it to find the \"Guest rating\" section. The dialog has a scrollbar on the right side. Let me try to scroll within the dialog by targeting it specifically. The dialog appears to be in the center-left area of the screen. \n\nLooking at the dialog, it seems to sp`},{\"frame\":`008.webp`,\"verb\":`click`,\"label\":`Inside the filters dialog content area, around the Price section`,\"x\":.49,\"y\":.45,\"t\":70.6,\"url\":`https://www.airbnb.com/s/Lyon--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`The page didn't scroll. The filters dialog is still showing the same content. Let me try clicking inside the dialog first to focus it, then try scrolling. Or let me try a different approach - let me close the filters and just scroll through the listings manually. I'll check each listing's rating as I go.\n\nActually, let`},{\"frame\":`009.webp`,\"verb\":`click`,\"label\":`Close button (X) on the Filters dialog`,\"x\":.703,\"y\":.06,\"t\":74.5,\"url\":`https://www.airbnb.com/s/Lyon--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`I keep failing to pass the scroll_element parameter correctly. It seems like the system keeps interpreting my dict as a string. Let me try a completely different approach - I'll close the filters dialog and just scroll through the listings manually to find one with 4.9+ rating. The task says to check at most 5 listings`},{\"frame\":`010.webp`,\"verb\":`scroll`,\"label\":`down`,\"x\":null,\"y\":null,\"t\":80.5,\"url\":`https://www.airbnb.com/s/Lyon--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`Good, the filters dialog is closed. Now I can see the listings. The ratings I can see are:\n1. Appart'City Classic Lyon Pa... - 4.53 (718)\n2. B\u0026B HOME Lyon Centre Berth... - 4.6 (63)\n3. The People Hotel Lyon - 4.55 (84)\n4. Apartment in 1st Arrondiss... - 4.85 (568)\n\nNone of these are 4.9+. I need to scroll down to see m`},{\"frame\":`011.webp`,\"verb\":`scroll`,\"label\":`down`,\"x\":null,\"y\":null,\"t\":84.9,\"url\":`https://www.airbnb.com/s/Lyon--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`I can see more listings now:\n- The People Hotel Lyon - 4.55 (84)\n- Apartment in 1st Arrondiss... - 4.85 (568)\n- Appart'City Classic Lyon Pa... - 4.37 (448)\n- Apartment in 1st Arrondisssem... - 4.7 (82)\n\nAnd in the \"Featured hotels in Lyon\" section:\n- Appart'City Confort L... - 4.48 (237)\n- Hotel du Theatre - 4.47 (15)\n`},{\"frame\":`012.webp`,\"verb\":`scroll`,\"label\":`down`,\"x\":null,\"y\":null,\"t\":89.6,\"url\":`https://www.airbnb.com/s/Lyon--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`I can see more listings now:\n- Appart'City Confort L... - 4.48 (237)\n- Hotel du Theatre - 4.47 (15)\n- Warwick P... (partially visible)\n- Apartment in 3rd Arrondiss... - 4.85 (286) - Superhost\n- Nemea Appart Hôtel So Clou... - 4.36 (14)\n\nStill no 4.9+ ratings. Let me continue scrolling down to find more listings.`},{\"frame\":`013.webp`,\"verb\":`click`,\"label\":`Apartment in 1st Arrondissse... listing with 4.91 rating`,\"x\":.164,\"y\":.52,\"t\":94.2,\"url\":`https://www.airbnb.com/s/Lyon--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`I can now see two listings with ratings above 4.9:\n1. \"Apartment in 1st Arrondissse...\" - 4.91 (497) - \"Charming typical Canut apartment - Lyo...\" - 1 bedroom, 2 beds, 1 bath - €133 total\n2. \"Condo in 6th Arrondissement\" - 4.95 (148) - \"Studio BEL-MOD BUGEY – Modern...\" - 1 bedroom, 2 beds, 1 bath - €154 €128 total\n\nTh`},{\"frame\":`014.webp`,\"verb\":`switch`,\"label\":`Switch tab`,\"x\":null,\"y\":null,\"t\":100.2,\"url\":`https://www.airbnb.com/s/Lyon--France/homes?checkin=2026-10-31\u0026checkout=2026-11-01\u0026adults=2`,\"reasoning\":`It seems the click opened a new tab (there are now 2 tabs open). Let me switch to the new tab to see the listing details.`},{\"frame\":`015.webp`,\"verb\":`click`,\"label\":`Close button on the Translation popup`,\"x\":.282,\"y\":.342,\"t\":104.3,\"url\":`https://www.airbnb.com/rooms/38817969?adults=2\u0026check_in=2026-10-31\u0026check_out=2026-11-01\u0026search_mode=regular_search\u0026source_impression_id=p3_e6adb127-247f-47bc-82fe-6ee081295dc0_f2f94e19-a4ef-4492-916d-9d16d475e748_0_38817969_9\u0026previous_page_section_name=1000\u0026federated_search_id=e6adb127-247f-47bc-82fe-6ee081295dc0`,\"reasoning\":`I found the listing. Let me close the translation popup and confirm the details:\n\n- **Name**: \"Charming typical Canut apartment - Lyon center\"\n- **Rating**: 4.91 (497 reviews)\n- **Price**: €133 total (for 1 night, Oct 31 - Nov 1)\n- **Hosted by Marianne**, Superhost, 7 years hosting\n- **Location**: In the Pentes de la C`},{\"frame\":`016.webp`,\"verb\":`answer`,\"label\":`final answer`,\"x\":null,\"y\":null,\"t\":109.5,\"url\":`https://www.airbnb.com/rooms/38817969?adults=2\u0026check_in=2026-10-31\u0026check_out=2026-11-01\u0026search_mode=regular_search\u0026source_impression_id=p3_e6adb127-247f-47bc-82fe-6ee081295dc0_f2f94e19-a4ef-4492-916d-9d16d475e748_0_38817969_9\u0026previous_page_section_name=1000\u0026federated_search_id=e6adb127-247f-47bc-82fe-6ee081295dc0`,\"reasoning\":`I now have all the information I need. The listing details are:\n\n- **Name**: \"Charming typical Canut apartment - Lyon center\"\n- **Rating**: 4.91 (497 reviews)\n- **Price**: €133 total for 1 night (Oct 31 - Nov 1, 2026), so €133 per night\n- **Location**: Entire rental unit in Lyon, France\n- **Hosted by**: Marianne (Super`}],\"id\":`LyonScout`,\"label\":`Lyon`,\"result\":`€133`,\"offset\":13.1}]};const __snippet_MODELS_1wdwc3j=[{name:`Holo4 27B`,id:`holo4-27b`,hf:`Hcompany/Holo4-27B`,tag:`Start here`,access:`Paid`,blurb:`Most capable. Complex multi-step tasks and novel environments.`,context:262144,output:16384,format:`Function calling`,effort:`low, medium, xhigh`,price:[`0.40`,`0.04`,`3.00`]},{name:`Holo4 35B-A3B`,id:`holo4-35b-a3b`,hf:`Hcompany/Holo4-35B-A3B`,tag:`Fastest`,access:`Paid`,blurb:`Interactive agent loops at low cost and latency.`,context:262144,output:16384,format:`Function calling`,effort:`On or off`,price:[`0.30`,`0.03`,`2.00`]},{name:`Holo3.1 35B-A3B`,id:`holo3-1-35b-a3b`,hf:`Hcompany/Holo-3.1-35B-A3B`,tag:`Free tier`,access:`Free, 10 req/min`,blurb:`Try Holo at no cost.`,context:65537,output:8192,format:`Function calling, structured outputs`,effort:`On or off`,price:[`0.25`,`0.025`,`1.80`]},{name:`Holo3 122B-A10B`,id:`holo3-122b-a10b`,tag:`Previous generation`,access:`Paid`,blurb:`Long tasks with dense reasoning.`,context:65537,output:8192,format:`Structured outputs`,effort:`On or off`,price:[`0.40`,`0.04`,`3.00`]}];const __snippet_LocalizationDemo_1wdwc3j=()=>{const SRC=`/images/models-api/screenspot-pro-blender.webp`;const IMG_W=2560;const IMG_H=1440;const RED=`#e11d48`;const TYPE_MS=16;const HOLD=1800;const targets=[{element:`the Render menu in the top menu bar`,x:46,y:24},{element:`Hide the icing layer.`,x:983,y:114},{element:`the donut in the 3D viewport`,x:505,y:180},{element:`the Join Geometry node header`,x:521,y:513},{element:`the Density Factor field in the Distribute Points on Faces node`,x:260,y:800},{element:`the Play button in the timeline`,x:418,y:895}];const root=useRef(null);const[active,setActive]=useState(false);const[k,setK]=useState(0);const[typed,setTyped]=useState(targets[0].element.length);const[found,setFound]=useState(true);const[pos,setPos]=useState(targets[0]);useEffect(()=>{if(window.matchMedia(`(prefers-reduced-motion: reduce)`).matches)return;const io=new IntersectionObserver(([e])=>setActive(e.isIntersecting),{threshold:.3});io.observe(root.current);return()=>io.disconnect()},[]);useEffect(()=>{if(!active)return;let raf;let timer;const a=targets[k];const next=(k+1)%targets.length;const b=targets[next];const clamp=v=>Math.min(970,Math.max(30,v));const dx=b.x-a.x;const dy=(b.y-a.y)*(IMG_H/IMG_W);const bend=(k%2?1:-1)*.15;const c={x:clamp((a.x+b.x)/2-dy*bend),y:clamp((a.y+b.y)/2+dx*bend*(IMG_W/IMG_H))};const duration=280+Math.hypot(dx,dy)*.45;const ease=t=>t\u003c.5?4*t*t*t:1-Math.pow(-2*t+2,3)/2;const move=()=>{const start=performance.now();const step=now=>{const t=ease(Math.min(1,(now-start)/duration));const u=1-t;setPos({x:u*u*a.x+2*u*t*c.x+t*t*b.x,y:u*u*a.y+2*u*t*c.y+t*t*b.y});if(t\u003c1)raf=requestAnimationFrame(step);else{setFound(true);setK(next)}};raf=requestAnimationFrame(step)};const type=n=>{setTyped(n);timer=n\u003cb.element.length?setTimeout(()=>type(n+1),TYPE_MS):setTimeout(move,220)};setFound(true);setPos(a);timer=setTimeout(()=>{setFound(false);setTyped(0);timer=setTimeout(()=>type(1),160)},HOLD);return()=>{clearTimeout(timer);cancelAnimationFrame(raf)}},[active,k]);const shown=found?targets[k]:targets[(k+1)%targets.length];const center={transform:`translate(-50%, -50%)`};return _jsxs(`figure`,{ref:root,className:`not-prose mint-my-6`,children:[_jsxs(`div`,{className:`hframe mint-relative`,children:[_jsx(`img`,{src:SRC,alt:`Blender with a donut scene, geometry nodes editor, and outliner`,className:`mint-block mint-w-full`,draggable:false}),_jsxs(`span`,{className:`mint-pointer-events-none mint-absolute`,style:{left:`${pos.x/10}%`,top:`${pos.y/10}%`},children:[_jsx(`span`,{className:`mint-absolute mint-rounded-full`,style:{width:24,height:24,border:`1.5px solid ${RED}`,boxShadow:`0 0 0 3px rgb(255 255 255 / 0.35)`,...center}}),_jsx(`span`,{className:`mint-absolute mint-rounded-full`,style:{width:6,height:6,background:RED,...center}})]})]}),_jsxs(`div`,{className:`mint-mt-3 mint-flex mint-min-h-[1.5rem] mint-items-baseline mint-gap-3 mint-font-mono mint-text-[13px] mint-leading-6`,children:[_jsx(`span`,{className:`mint-shrink-0 mint-text-zinc-400 dark:mint-text-zinc-500`,children:`›`}),_jsx(`span`,{className:`mint-min-w-0 mint-flex-1 mint-text-zinc-800 dark:mint-text-zinc-200`,children:shown.element.slice(0,found?shown.element.length:typed)}),_jsx(`span`,{className:`mint-shrink-0 mint-tabular-nums mint-text-zinc-500 mint-transition-opacity mint-duration-200 dark:mint-text-zinc-400`,style:{opacity:found?1:0},children:`{\"x\": ${shown.x}, \"y\": ${shown.y}}`})]}),_jsxs(`figcaption`,{className:`mint-mt-2 mint-text-sm mint-text-zinc-500 dark:mint-text-zinc-400`,children:[`Holo4 35B-A3B on a `,IMG_W,` × `,IMG_H,` Blender screenshot from`,` `,_jsx(`a`,{href:`https://huggingface.co/datasets/likaixin/ScreenSpot-Pro`,target:`_blank`,rel:`noreferrer`,className:`mint-underline mint-decoration-zinc-300 mint-underline-offset-2 dark:mint-decoration-zinc-600`,children:`ScreenSpot-Pro`}),`.`]})]})};const __snippet___snippet_record_hb0fv7_1wdwc3j=r=>Object.entries(r).map(([k,v])=>k===`price`?`$${Number(v).toFixed(2)}`:typeof v===`number`?`${v.toLocaleString(`en-US`)} ${k}`:Array.isArray(v)?v.join(`, `):v).join(`, `);const __snippet___snippet_replayCaption_hb0fv7_1wdwc3j=(data,i)=>{const n=data.steps.length;if(i>=n){const rows=data.records||[];if(rows.length)return rows.length>1?`${__snippet___snippet_record_hb0fv7_1wdwc3j(rows[0])}, and ${rows.length-1} more`:__snippet___snippet_record_hb0fv7_1wdwc3j(rows[0]);const first=(data.answer||``).split(`\n`).map(l=>l.replace(/^[\\s•*#-]+/,``).trim()).find(l=>l\u0026\u0026!l.endsWith(`:`));return first||`Done in ${__snippet___snippet_fmtTime_hb0fv7_1wdwc3j(data.duration)}`}const{t,verb,label}=data.steps[i];const steer=(data.steers||[]).find(m=>t>=m.t\u0026\u0026t-m.t\u003c10);if(steer)return`You: ${steer.text}`;return`${verb.charAt(0).toUpperCase()}${verb.slice(1)} ${label}`.trim()};const __snippet_Replay_1wdwc3j=({data,aspect,hold=6e3,className=`my-6`})=>{const Screen=__snippet___snippet_ReplayScreen_hb0fv7_1wdwc3j;const root=useRef(null);const inView=__snippet___snippet_useInView_hb0fv7_1wdwc3j(root,.35);const n=data.steps.length;const[i,setI]=useState(n);const[paused,setPaused]=useState(false);const loops=useRef(0);useEffect(()=>setPaused(__snippet___snippet_reducedMotion_hb0fv7_1wdwc3j()),[]);useEffect(()=>{if(!inView||paused)return;const wait=i>=n?loops.current++?hold:2500:(data.step_s||1.5)*1e3;const id=setTimeout(()=>setI(k=>k>=n?0:k+1),wait);return()=>clearTimeout(id)},[inView,paused,i]);return _jsxs(`figure`,{ref:root,\"data-replay\":true,className:`not-prose ${className}`,children:[_jsx(Screen,{data,i,aspect,onClick:()=>setPaused(!paused)}),_jsx(`figcaption`,{className:`mint-mt-3 mint-truncate mint-text-sm mint-text-zinc-500 dark:mint-text-zinc-400`,children:__snippet___snippet_replayCaption_hb0fv7_1wdwc3j(data,i)})]})};const __snippet___snippet_useInView_hb0fv7_1wdwc3j=(ref,threshold=.4)=>{const[inView,setInView]=useState(false);useEffect(()=>{const el=ref.current;if(!el)return;const io=new IntersectionObserver(([e])=>setInView(e.isIntersecting),{threshold});io.observe(el);return()=>io.disconnect()},[]);return inView};const __snippet_useInView_1wdwc3j=__snippet___snippet_useInView_hb0fv7_1wdwc3j;const __snippet___snippet_reducedMotion_hb0fv7_1wdwc3j=()=>typeof window!==`undefined`\u0026\u0026window.matchMedia(`(prefers-reduced-motion: reduce)`).matches;const __snippet_reducedMotion_1wdwc3j=__snippet___snippet_reducedMotion_hb0fv7_1wdwc3j;const __snippet___snippet_fmtTime_hb0fv7_1wdwc3j=s=>`${Math.floor(s/60)}:${String(Math.floor(s%60)).padStart(2,`0`)}`;const __snippet___snippet_posterIndex_hb0fv7_1wdwc3j=data=>data.poster??data.steps.length-1;const __snippet___snippet_ratio_hb0fv7_1wdwc3j=s=>{const[w,h]=String(s||`1 / 1`).split(`/`).map(Number);return w/(h||1)};const __snippet___snippet_checkIcon_hb0fv7_1wdwc3j=size=>_jsxs(`svg`,{width:size,height:size,viewBox:`0 0 16 16`,className:`mint-shrink-0`,\"aria-hidden\":`true`,children:[_jsx(`circle`,{cx:`8`,cy:`8`,r:`8`,className:`mint-fill-emerald-500`}),_jsx(`path`,{d:`M4.6 8.2 7 10.5l4.4-4.8`,fill:`none`,stroke:`#fff`,strokeWidth:`1.8`,strokeLinecap:`round`,strokeLinejoin:`round`})]});const __snippet___snippet_cursorIcon_hb0fv7_1wdwc3j=(size=18)=>_jsx(`svg`,{width:size,height:size*26/18,viewBox:`0 0 13 21`,className:`mint-relative drop-shadow-[0_1px_2px_rgba(0,0,0,0.35)]`,\"aria-hidden\":`true`,children:_jsx(`path`,{d:`M0.5 0.5V17.6L4.6 13.8L7.4 20.2L9.6 19.2L6.9 12.9H12.4Z`,fill:`#fff`,stroke:`#000`,strokeWidth:`1`,strokeLinejoin:`round`})});const __snippet___snippet_where_hb0fv7_1wdwc3j=u=>(u||``).replace(/^https?:\\/\\/(www\\.)?/,``).split(/[?#]/)[0].replace(/\\/$/,``);const __snippet___snippet_ReplayScreen_hb0fv7_1wdwc3j=({data,i,onClick,compact=false,bare=false,idle,aspect,className=``})=>{const n=data.steps.length;const first=useRef(i);const[moved,setMoved]=useState(false);useEffect(()=>{if(i!==first.current)setMoved(true)},[i]);const still=idle??(!moved\u0026\u0026i===0);const poster=__snippet___snippet_posterIndex_hb0fv7_1wdwc3j(data);const shown=still?poster:Math.min(i,n-1);const cur=data.steps[shown];const pointer=still||i>=n?null:data.steps.slice(0,shown+1).reverse().find(s=>s.x!=null);const url=k=>`${data.src}/${data.steps[k].frame}`;const[loaded,setLoaded]=useState({});const markLoaded=u=>setLoaded(l=>l[u]?l:{...l,[u]:true});let visible=shown;while(visible>0\u0026\u0026!loaded[url(visible)])visible--;const frames=[visible-1,visible,shown,shown+1].filter(k=>k>=0\u0026\u0026k\u003cn).filter((k,j,ks)=>ks.findIndex(x=>url(x)===url(k))===j);const natural=__snippet___snippet_ratio_hb0fv7_1wdwc3j(data.aspect);const box=aspect?__snippet___snippet_ratio_hb0fv7_1wdwc3j(aspect):natural;const sx=Math.max(1,natural/box);const sy=Math.max(1,box/natural);const fit={objectFit:`cover`,objectPosition:`50% 0`};const Stage=onClick?`button`:`div`;useEffect(()=>{for(let k=shown+2;k\u003cMath.min(n,shown+5);k++)new Image().src=url(k)},[shown,data.src]);return _jsxs(`div`,{className:`mint-overflow-hidden ${bare?``:`hframe mint-bg-white dark:mint-bg-zinc-900`} ${className}`,style:compact\u0026\u0026!bare?{\"--hframe-r\":`8px`}:undefined,children:[!bare\u0026\u0026!compact\u0026\u0026_jsx(`div`,{className:`mint-flex mint-h-7 mint-items-center mint-border-b mint-border-zinc-200 mint-bg-zinc-50 mint-px-3 mint-font-mono mint-text-[11px] mint-text-zinc-500 dark:mint-border-white/10 dark:mint-bg-zinc-900 dark:mint-text-zinc-400`,children:_jsx(`span`,{className:`mint-truncate`,children:__snippet___snippet_where_hb0fv7_1wdwc3j(cur.url)})}),_jsxs(Stage,{type:onClick?`button`:undefined,onClick,className:`mint-relative mint-block mint-w-full mint-overflow-hidden mint-bg-white ${onClick?`mint-cursor-pointer`:``}`,style:{containerType:`inline-size`,aspectRatio:aspect||data.aspect||`1 / 1`},children:[_jsx(`img`,{src:url(poster),alt:``,\"aria-hidden\":`true`,className:`mint-absolute mint-inset-0 mint-h-full mint-w-full`,style:fit,draggable:false}),frames.map(k=>_jsx(`img`,{src:url(k),ref:el=>el\u0026\u0026el.complete\u0026\u0026el.naturalWidth>0\u0026\u0026!loaded[url(k)]\u0026\u0026markLoaded(url(k)),onLoad:()=>markLoaded(url(k)),alt:k===shown?`Step ${k+1}: ${data.steps[k].verb} ${data.steps[k].label}`:``,className:`mint-absolute mint-inset-0 mint-h-full mint-w-full mint-transition-opacity mint-duration-300 mint-ease-out`,style:{...fit,opacity:k\u003c=shown\u0026\u0026loaded[url(k)]?1:0},draggable:false},url(k))),pointer\u0026\u0026_jsxs(`span`,{className:`mint-pointer-events-none mint-absolute mint-z-10`,style:{left:`${(.5+(pointer.x-.5)*sx)*100}%`,top:`${pointer.y*sy*100}%`,transition:`left 650ms cubic-bezier(.2,.8,.2,1) 120ms, top 650ms cubic-bezier(.2,.8,.2,1) 120ms`},children:[cur.x!=null\u0026\u0026_jsx(`span`,{className:`hreplay-ripple mint-absolute mint-rounded-full mint-border-2 mint-border-zinc-900/50 ${compact?`mint--left-3 mint--top-3 mint-h-6 mint-w-6`:`mint--left-5 mint--top-5 mint-h-10 mint-w-10`}`},`r${i}`),__snippet___snippet_cursorIcon_hb0fv7_1wdwc3j(compact?11:18),!compact\u0026\u0026cur.x!=null\u0026\u0026cur.label\u0026\u0026_jsx(`span`,{className:`hreplay-pop mint-absolute mint-w-max mint-truncate mint-rounded-md mint-bg-zinc-900/90 mint-px-2 mint-py-1 mint-text-xs mint-font-medium mint-text-white mint-shadow-lg`,style:{maxWidth:`min(240px, calc(${(pointer.x>.6?pointer.x:1-pointer.x)*100}cqw - 24px))`,...pointer.y>.82?{bottom:30}:{top:26},...pointer.x>.6?{right:10}:{left:10}},children:cur.label},`p${i}`)]})]})]})};const __snippet_ReplayScreen_1wdwc3j=__snippet___snippet_ReplayScreen_hb0fv7_1wdwc3j;const __snippet___snippet_laneCaption_hb0fv7_1wdwc3j=({c,i,n,done,started})=>{const name=c.label||c.id;if(done)return`${name}: ${c.result||`no match`}`;if(started)return`${name} · ${i+1}/${n}`;return`${name} · at ${__snippet___snippet_fmtTime_hb0fv7_1wdwc3j(c.offset)}`};const __snippet_AgentTree_1wdwc3j=({tree,speed=10,hold=7,bare=false,minimal=false,onEnd})=>{const[t,setT]=useState(null);const[paused,setPaused]=useState(false);const root=useRef(null);const inView=__snippet___snippet_useInView_hb0fv7_1wdwc3j(root,.3);const end=tree.answered;const start=Math.min(...tree.children.map(c=>c.offset));const stop=end+hold*speed;const aspect=tree.children.map(c=>c.aspect).reduce((a,b)=>__snippet___snippet_ratio_hb0fv7_1wdwc3j(b)>__snippet___snippet_ratio_hb0fv7_1wdwc3j(a)?b:a);const playing=inView\u0026\u0026!paused;useEffect(()=>setPaused(__snippet___snippet_reducedMotion_hb0fv7_1wdwc3j()),[]);useEffect(()=>{if(!playing)return;const id=setInterval(()=>setT(x=>x==null||x>=stop?start:x+speed/10),100);return()=>clearInterval(id)},[playing]);useEffect(()=>{if(onEnd\u0026\u0026t!=null\u0026\u0026t>=stop)onEnd()},[t]);const now=t??end;const answered=now>=end;const lanes=tree.children.map(c=>{const local=now-c.offset;const n=c.steps.length;const done=local>=c.duration;const i=done?n:Math.max(0,c.steps.filter(s=>s.t\u003c=local).length-1);return{c,i,n,done,started:local>=0}});const finished=lanes.filter(l=>l.done).length;const running=lanes.filter(l=>l.started\u0026\u0026!l.done).length;const status=answered?`Merged the results`:running?`${running} ${running===1?`subagent`:`subagents`} running`:finished===lanes.length?`Merging the results`:`Planning`;const note=finished===lanes.length?`All ${lanes.length} subagents answered. The manager merges them into one answer.`:running?`The manager waits for ${running} running ${running===1?`subagent`:`subagents`}, then merges one answer.`:`The manager plans its next step.`;const dot=_jsx(`span`,{className:`mint-h-1.5 mint-w-1.5 mint-shrink-0 mint-rounded-full ${answered?`mint-bg-emerald-500`:`mint-animate-pulse`}`,style:answered?undefined:{background:`var(--h-accent)`}});if(bare){return _jsxs(`div`,{ref:root,\"data-tree\":true,className:`not-prose mint-h-full ${minimal?``:`htree-bare mint-bg-zinc-50 mint-p-4 sm:mint-p-5 dark:mint-bg-zinc-900`}`,children:[_jsx(`div`,{className:`htree-bare-lanes mint-grid mint-grid-cols-2 mint-gap-3`,children:lanes.map(l=>_jsxs(`div`,{className:`mint-relative mint-min-h-0 mint-overflow-hidden mint-rounded-lg mint-ring-1 mint-ring-black/5 mint-transition-opacity mint-duration-500 dark:mint-ring-white/10 ${l.started?``:`mint-opacity-40`}`,children:[_jsx(__snippet___snippet_ReplayScreen_hb0fv7_1wdwc3j,{data:l.c,i:l.i,compact:true,bare:true,idle:false,aspect}),_jsxs(`span`,{className:`mint-absolute mint-bottom-2 mint-left-2 mint-flex mint-max-w-[calc(100%-16px)] mint-items-center mint-gap-1 mint-rounded-full mint-bg-zinc-900/85 mint-px-2 mint-py-0.5 mint-text-[11px] mint-text-white`,children:[l.done\u0026\u0026l.c.result\u0026\u0026__snippet___snippet_checkIcon_hb0fv7_1wdwc3j(11),_jsx(`span`,{className:`mint-truncate`,children:__snippet___snippet_laneCaption_hb0fv7_1wdwc3j(l)})]})]},l.c.id))}),!minimal\u0026\u0026_jsxs(`div`,{className:`mint-mt-5 mint-flex mint-min-w-0 mint-flex-col mint-justify-center lg:mint-mt-0`,children:[_jsxs(`p`,{className:`mint-font-mono mint-text-xs mint-text-zinc-500 dark:mint-text-zinc-400`,children:[tree.manager,` · manager`]}),_jsxs(`div`,{className:`mint-mt-3 mint-flex mint-items-center mint-gap-2 mint-text-sm mint-font-medium mint-text-zinc-900 dark:mint-text-zinc-50`,children:[dot,status,_jsx(`span`,{className:`mint-ml-auto mint-font-mono mint-text-xs mint-font-normal mint-tabular-nums mint-text-zinc-500 dark:mint-text-zinc-400`,children:__snippet___snippet_fmtTime_hb0fv7_1wdwc3j(Math.min(now,end))})]}),answered?_jsx(`ol`,{className:`hreplay-fade mint-mt-4 mint-divide-y mint-divide-zinc-200 mint-p-0 dark:mint-divide-zinc-800`,children:tree.table.rows.map(r=>_jsxs(`li`,{className:`mint-flex mint-list-none mint-items-baseline mint-gap-3 mint-py-2.5 mint-text-sm`,children:[_jsx(`span`,{className:`mint-w-20 mint-shrink-0 mint-font-medium mint-text-zinc-900 dark:mint-text-zinc-50`,children:r[0]}),_jsx(`span`,{className:`mint-min-w-0 mint-flex-1 mint-truncate mint-text-zinc-500 dark:mint-text-zinc-400`,children:r[1]}),_jsx(`span`,{className:`mint-font-mono mint-tabular-nums mint-text-zinc-900 dark:mint-text-zinc-50`,children:r[2]})]},r[0]))}):_jsx(`p`,{className:`mint-mt-4 mint-text-sm mint-leading-relaxed mint-text-zinc-500 dark:mint-text-zinc-400`,children:note})]})]})}return _jsxs(`figure`,{ref:root,\"data-tree\":true,className:`not-prose mint-my-6`,children:[_jsx(`div`,{className:`htree-lanes mint-grid mint-cursor-pointer mint-gap-x-3 mint-gap-y-4`,style:{\"--n\":lanes.length,\"--m\":lanes.length>3?2:lanes.length},onClick:()=>setPaused(!paused),children:lanes.map(l=>_jsxs(`div`,{className:`mint-min-w-0`,children:[_jsx(`div`,{className:`mint-transition-opacity mint-duration-500 ${l.started?`mint-opacity-100`:`mint-opacity-40`}`,children:_jsx(__snippet___snippet_ReplayScreen_hb0fv7_1wdwc3j,{data:l.c,i:l.i,compact:true,idle:false,aspect})}),_jsxs(`p`,{className:`mint-mt-2 mint-flex mint-items-center mint-gap-1.5 mint-text-xs ${l.done\u0026\u0026l.c.result?`mint-font-medium mint-text-zinc-900 dark:mint-text-zinc-50`:`mint-text-zinc-500 dark:mint-text-zinc-400`}`,children:[l.done\u0026\u0026l.c.result\u0026\u0026__snippet___snippet_checkIcon_hb0fv7_1wdwc3j(12),_jsx(`span`,{className:`mint-truncate`,children:__snippet___snippet_laneCaption_hb0fv7_1wdwc3j(l)})]})]},l.c.id))}),_jsxs(`figcaption`,{className:`mint-mt-5`,children:[_jsxs(`p`,{className:`mint-flex mint-items-center mint-gap-2 mint-text-sm mint-text-zinc-500 dark:mint-text-zinc-400`,children:[dot,status]}),answered?_jsx(`div`,{className:`hreplay-fade mint-mt-3 mint-overflow-x-auto`,children:_jsxs(`table`,{className:`mint-m-0 mint-w-full mint-text-left mint-text-sm`,children:[_jsx(`thead`,{children:_jsx(`tr`,{className:`mint-text-xs mint-text-zinc-500 dark:mint-text-zinc-400`,children:tree.table.header.slice(0,3).map(h=>_jsx(`th`,{className:`mint-pb-2 mint-pr-4 mint-font-medium`,children:h},h))})}),_jsx(`tbody`,{className:`mint-divide-y mint-divide-zinc-200 dark:mint-divide-white/10`,children:tree.table.rows.map(r=>_jsx(`tr`,{className:`mint-text-zinc-800 dark:mint-text-zinc-200`,children:r.slice(0,3).map((v,k)=>_jsx(`td`,{className:`mint-py-2 mint-pr-4 ${/^[€$£]/.test(v)?`mint-whitespace-nowrap mint-font-mono mint-tabular-nums`:``}`,children:v},k))},r[0]))})]})}):null]})]})};const __snippet_useActive_1wdwc3j=threshold=>{const root=useRef(null);const inView=__snippet_useInView_1wdwc3j(root,threshold);const[still,setStill]=useState(false);useEffect(()=>setStill(__snippet_reducedMotion_1wdwc3j()),[]);return[root,inView\u0026\u0026!still]};const __snippet_useTicker_1wdwc3j=(active,delays)=>{const[k,setK]=useState(0);useEffect(()=>{if(!active)return;const id=setTimeout(()=>setK(x=>x+1),delays(k));return()=>clearTimeout(id)},[active,k]);return[k,setK]};const __snippet_CHROME_STORE_1wdwc3j=`https://chromewebstore.google.com/detail/holotab/hlaoiikljjgcjdhkakedfngifaopbcop`;const __snippet_AGENTS_KEY_1wdwc3j=`https://platform.hcompany.ai/settings/api-keys?product=computeruseagents\u0026source=docs`;const __snippet_MODELS_KEY_1wdwc3j=`https://platform.hcompany.ai/?product=modelsapi\u0026source=docs`;const __snippet_PILL_1wdwc3j=`inline-flex h-10 items-center rounded-full px-5 text-sm font-medium no-underline transition-colors`;const __snippet_PRIMARY_1wdwc3j=`${__snippet_PILL_1wdwc3j} bg-zinc-900 text-white hover:bg-zinc-700 dark:bg-white dark:text-zinc-900 dark:hover:bg-zinc-200`;const __snippet_SECONDARY_1wdwc3j=`${__snippet_PILL_1wdwc3j} bg-zinc-100 text-zinc-900 hover:bg-zinc-200 dark:bg-white/10 dark:text-zinc-100 dark:hover:bg-white/15`;const __snippet_MUTED_1wdwc3j=`text-zinc-600 dark:text-zinc-400`;const __snippet_STRONG_1wdwc3j=`text-zinc-900 dark:text-zinc-50`;const __snippet_Buttons_1wdwc3j=({links,className=``})=>{const _components={a:`a`,..._provideComponents()};return _jsxs(`div`,{className:`mint-mt-10 mint-flex mint-flex-wrap mint-items-center mint-gap-3 ${className}`,children:[_jsx(_components.a,{href:links[0][1],className:`${`mint-inline-flex mint-h-10 mint-items-center mint-rounded-full mint-px-5 mint-text-sm mint-font-medium mint-no-underline mint-transition-colors`} mint-bg-zinc-900 mint-text-white hover:mint-bg-zinc-700 dark:mint-bg-white dark:mint-text-zinc-900 dark:hover:mint-bg-zinc-200`,children:links[0][0]}),_jsx(_components.a,{href:links[1][1],className:`${`mint-inline-flex mint-h-10 mint-items-center mint-rounded-full mint-px-5 mint-text-sm mint-font-medium mint-no-underline mint-transition-colors`} mint-bg-zinc-100 mint-text-zinc-900 hover:mint-bg-zinc-200 dark:mint-bg-white/10 dark:mint-text-zinc-100 dark:hover:mint-bg-white/15`,children:links[1][0]})]})};const __snippet_Pill_1wdwc3j=({tag,text,href,accent=false})=>{const _components={a:`a`,..._provideComponents()};return _jsxs(_components.a,{href,className:`mint-group mint-mb-8 mint-inline-flex mint-max-w-full mint-items-center mint-gap-2.5 mint-rounded-full mint-border mint-border-zinc-200 mint-py-1 mint-pl-1 mint-pr-3 mint-text-sm mint-no-underline mint-transition-colors hover:mint-border-zinc-400 dark:mint-border-white/10 dark:hover:mint-border-white/25`,children:[_jsx(`span`,{className:`mint-shrink-0 mint-rounded-full mint-px-2.5 mint-py-0.5 mint-text-xs mint-font-medium ${accent?`mint-text-white`:`mint-bg-zinc-100 mint-text-zinc-700 dark:mint-bg-white/10 dark:mint-text-zinc-300`}`,style:accent?{background:`var(--h-accent)`}:undefined,children:tag}),_jsx(`span`,{className:`mint-truncate ${`mint-text-zinc-900 dark:mint-text-zinc-50`}`,children:text}),_jsx(`span`,{className:`mint-text-zinc-400 mint-transition-transform group-hover:mint-translate-x-0.5 dark:mint-text-zinc-500`,\"aria-hidden\":`true`,children:`→`})]})};const __snippet_TABS_1wdwc3j=[{id:`browse`,label:`Browse`,data:__snippet_nikeReplay_1wdwc3j,title:`Browse any site`,blurb:`The agent opens a cloud browser, dismisses cookie banners and region pickers, and answers your question.`,guide:[`Cloud browser`,`/agents-api/browser/configuration`]},{id:`checkout`,label:`Fill and buy`,data:__snippet_checkoutReplay_1wdwc3j,title:`Sign in and fill forms`,blurb:`Logins and 2FA codes come from a vault, so the agent types them without ever seeing them.`,guide:[`Credentials and 2FA`,`/agents-api/vaults/overview`]},{id:`extract`,label:`Extract data`,data:__snippet_legoSchemaReplay_1wdwc3j,title:`Get typed JSON`,blurb:`Pass a Pydantic model, a Zod schema, or a JSON Schema, and the answer is validated against it.`,guide:[`Structured output`,`/agents-api/structured-output`]},{id:`steer`,label:`Steer`,data:__snippet_airbnbSteerReplay_1wdwc3j,title:`Redirect a running session`,blurb:`This session was searching Chamonix. One message switched it to Annecy, without a restart.`,guide:[`Watch and steer`,`/agents-api/observe-and-steer`]},{id:`subagents`,label:`Subagents`,tree:__snippet_airbnbCitiesTree_1wdwc3j,title:`Split a task across agents`,blurb:`A manager agent starts one browser agent per city, runs them in parallel, and merges their results into one table.`,guide:[`Subagents`,`/agents-api/multi-agent`]}];const __snippet_SOFT_1wdwc3j=`text-zinc-500 dark:text-zinc-400`;const __snippet_ARROW_1wdwc3j=`text-zinc-400 transition-transform group-hover:translate-x-0.5 dark:text-zinc-500`;const __snippet_TextLinks_1wdwc3j=({links,className=`mt-5`})=>{const _components={a:`a`,..._provideComponents()};return _jsx(`div`,{className:`mint-flex mint-flex-wrap mint-gap-x-6 mint-gap-y-2 ${className}`,children:links.map(([label,href])=>_jsxs(_components.a,{href,className:`mint-group mint-inline-flex mint-items-center mint-gap-1.5 mint-text-sm mint-font-medium mint-no-underline ${`mint-text-zinc-900 dark:mint-text-zinc-50`}`,children:[label,` `,_jsx(`span`,{className:`mint-text-zinc-400 mint-transition-transform group-hover:mint-translate-x-0.5 dark:mint-text-zinc-500`,children:href.startsWith(`http`)?`↗`:`→`})]},href))})};const __snippet_H2_1wdwc3j=({children})=>_jsx(`h2`,{className:`mint-m-0 mint-text-3xl mint-font-medium mint-tracking-tight sm:mint-text-[2.75rem] sm:mint-leading-[1.1] ${`mint-text-zinc-900 dark:mint-text-zinc-50`}`,children});const __snippet_Head_1wdwc3j=({title,blurb,links})=>_jsxs(`div`,{className:`hhead mint-max-w-3xl`,children:[_jsx(__snippet_H2_1wdwc3j,{children:title}),blurb\u0026\u0026_jsx(`p`,{className:`mint-m-0 mint-mt-4 mint-max-w-2xl mint-text-lg mint-leading-8 ${`mint-text-zinc-600 dark:mint-text-zinc-400`}`,children:blurb}),links\u0026\u0026_jsx(__snippet_TextLinks_1wdwc3j,{links})]});const __snippet_Spread_1wdwc3j=({flip,visual,children})=>_jsxs(`div`,{className:`hspread ${flip?`hspread-flip`:``}`,children:[_jsx(`div`,{className:`hspread-text`,children}),_jsx(`div`,{className:`hspread-visual`,children:visual})]});const __snippet_SpreadText_1wdwc3j=({title,blurb,links})=>_jsxs(_Fragment,{children:[_jsx(`h3`,{className:`mint-m-0 mint-text-2xl mint-font-medium mint-tracking-tight ${`mint-text-zinc-900 dark:mint-text-zinc-50`}`,children:title}),_jsx(`p`,{className:`mint-m-0 mint-mt-3 mint-text-[15px] mint-leading-7 ${`mint-text-zinc-600 dark:mint-text-zinc-400`}`,children:blurb}),links\u0026\u0026_jsx(__snippet_TextLinks_1wdwc3j,{links})]});const __snippet_HOME_CASES_1wdwc3j=[[`browse`,`Real websites`,`The agent clears cookie banners, region pickers, and pop-ups, then finishes the task.`],[`extract`,`Typed output`,`Pass a Pydantic model, a Zod schema, or a JSON Schema. The result comes back validated.`],[`steer`,`Steer mid-run`,`This session was searching Chamonix. One message switched it to Annecy, and it carried on without a restart.`],[`subagents`,`Parallel agents`,`A manager agent starts one browser agent per city, then merges their results into one table.`]];const __snippet_UseCases_1wdwc3j=()=>__snippet_HOME_CASES_1wdwc3j.map(([id,title,blurb],j)=>{const t=__snippet_TABS_1wdwc3j.find(x=>x.id===id);return _jsx(__snippet_Spread_1wdwc3j,{flip:j%2===1,visual:t.tree?_jsx(__snippet_AgentTree_1wdwc3j,{tree:t.tree,bare:true,minimal:true}):_jsx(__snippet_Replay_1wdwc3j,{data:t.data,aspect:`16 / 10`,className:`mint-m-0`}),children:_jsx(__snippet_SpreadText_1wdwc3j,{title,blurb,links:[t.guide]})},id)});const __snippet_RowHead_1wdwc3j=({title,link})=>{const _components={a:`a`,..._provideComponents()};return _jsxs(`div`,{className:`mint-mb-6 mint-flex mint-items-baseline mint-justify-between mint-gap-4`,children:[_jsx(`h3`,{className:`mint-m-0 mint-text-lg mint-font-medium mint-tracking-tight ${`mint-text-zinc-900 dark:mint-text-zinc-50`}`,children:title}),_jsxs(_components.a,{href:link[1],className:`mint-group mint-inline-flex mint-items-center mint-gap-1 mint-text-sm mint-no-underline ${`mint-text-zinc-500 dark:mint-text-zinc-400`}`,children:[link[0],` `,_jsx(`span`,{className:`mint-inline-block ${`mint-text-zinc-400 mint-transition-transform group-hover:mint-translate-x-0.5 dark:mint-text-zinc-500`}`,children:`›`})]})]})};const __snippet_Columns_1wdwc3j=({items})=>{const _components={a:`a`,..._provideComponents()};return _jsx(`div`,{className:`mint-grid mint-gap-x-8 mint-gap-y-6 sm:mint-grid-cols-3`,children:items.map(([label,blurb,href])=>_jsxs(_components.a,{href,className:`mint-group mint-block mint-border-t mint-border-zinc-200 mint-pt-4 mint-no-underline dark:mint-border-white/10`,children:[_jsxs(`p`,{className:`mint-m-0 mint-flex mint-items-center mint-gap-1.5 mint-text-[15px] mint-font-medium ${`mint-text-zinc-900 dark:mint-text-zinc-50`}`,children:[label,` `,_jsx(`span`,{className:`mint-text-zinc-400 mint-transition-transform group-hover:mint-translate-x-0.5 dark:mint-text-zinc-500`,children:`→`})]}),_jsx(`p`,{className:`mint-m-0 mint-mt-1 mint-text-sm mint-leading-6 ${`mint-text-zinc-500 dark:mint-text-zinc-400`}`,children:blurb})]},href))})};const __snippet_DIRECTORY_1wdwc3j=[[`Build`,[[`Pre-built agents`,`/agents-api/agents/overview`],[`Skills`,`/agents-api/skills/overview`],[`Custom tools`,`/agents-api/custom-tools`],[`Subagents`,`/agents-api/multi-agent`],[`Structured output`,`/agents-api/structured-output`]]],[`Run`,[[`Sessions`,`/agents-api/sessions/overview`],[`Watch and steer`,`/agents-api/observe-and-steer`],[`Credentials and 2FA`,`/agents-api/vaults/overview`],[`Browser profiles`,`/agents-api/browser/profiles`],[`Webhooks`,`/agents-api/webhooks/overview`],[`Schedules`,`/agents-api/schedules/overview`]]],[`Connect`,[[`SDKs`,`/agents-api/sdks`],[`MCP server`,`/agents-api/mcp`],[`Coding agents`,`/agents-api/coding-agents`],[`n8n`,`/agents-api/n8n`],[`Local runtime`,`/agents-api/local-runtime`],[`API reference`,`/agents-api/sessions/create`]]]];const __snippet_Directory_1wdwc3j=()=>{const _components={a:`a`,..._provideComponents()};return _jsx(`div`,{className:`mint-grid mint-gap-x-10 mint-gap-y-8 sm:mint-grid-cols-3`,children:__snippet_DIRECTORY_1wdwc3j.map(([title,links])=>_jsxs(`div`,{children:[_jsx(`p`,{className:`mint-m-0 mint-mb-2 mint-text-sm ${`mint-text-zinc-500 dark:mint-text-zinc-400`}`,children:title}),links.map(([label,href])=>_jsxs(_components.a,{href,className:`mint-group mint-flex mint-items-center mint-justify-between mint-border-t mint-border-zinc-200 mint-py-2.5 mint-no-underline dark:mint-border-white/10`,children:[_jsx(`span`,{className:`mint-text-[15px] ${`mint-text-zinc-900 dark:mint-text-zinc-50`}`,children:label}),_jsx(`span`,{className:`mint-text-zinc-400 mint-transition-transform group-hover:mint-translate-x-0.5 dark:mint-text-zinc-500`,children:`→`})]},href))]},title))})};const __snippet_Sub_1wdwc3j=({children})=>_jsx(`h3`,{className:`mint-m-0 mint-mb-6 mint-text-lg mint-font-medium mint-tracking-tight ${`mint-text-zinc-900 dark:mint-text-zinc-50`}`,children});const __snippet_AgentsSection_1wdwc3j=()=>_jsxs(`section`,{\"data-product\":`agents`,className:`hsec not-prose`,children:[_jsx(__snippet_Head_1wdwc3j,{title:`Agents API`,blurb:`Hand off a task and an agent does it in a real browser or on a desktop. It signs in, fills forms, and clicks through, while you watch live and redirect it mid-run.`,links:[[`Quickstart`,`/agents-api/overview#quickstart`],[`API reference`,`/agents-api/sessions/create`],[`Live demos`,`https://build.hcompany.ai`]]}),_jsx(__snippet_UseCases_1wdwc3j,{}),_jsxs(`div`,{className:`hblock`,children:[_jsx(__snippet_Sub_1wdwc3j,{children:`More in the Agents API`}),_jsx(__snippet_Directory_1wdwc3j,{})]})]});const __snippet_ICON_1wdwc3j={home:`M3 3h7v7H3zM14 3h7v7h-7zM14 14h7v7h-7zM3 14h7v7H3z`,folder:`M3 7a2 2 0 0 1 2-2h4l2 2h8a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,agents:`M4 7a3 3 0 1 0 6 0a3 3 0 1 0-6 0M14 7a3 3 0 1 0 6 0a3 3 0 1 0-6 0M4 17a3 3 0 1 0 6 0a3 3 0 1 0-6 0M14 17a3 3 0 1 0 6 0a3 3 0 1 0-6 0`,sessions:`M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z`,skills:`M13 2 3 14h9l-1 8 10-12h-9z`,monitor:`M3 4h18v12H3zM8 20h8M12 16v4`,window:`M3 5h18v14H3zM3 9h18`,lock:`M5 11h14v10H5zM8 11V7a4 4 0 0 1 8 0v4`,clock:`M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0M12 7v5l3 2`,users:`M5 7a4 4 0 1 0 8 0a4 4 0 1 0-8 0M2 21v-1a6 6 0 0 1 12 0v1M16 3.5a4 4 0 0 1 0 7.5M22 21v-1a6 6 0 0 0-4-5.6`,key:`M3 12a4.5 4.5 0 1 0 9 0a4.5 4.5 0 1 0-9 0M12 12h9M18 12v3M21 12v2`,link:`M10 13a5 5 0 0 0 7 0l3-3a5 5 0 0 0-7-7l-1 1M14 11a5 5 0 0 0-7 0l-3 3a5 5 0 0 0 7 7l1-1`,card:`M2 6h20v12H2zM2 10h20`,sparkle:`M12 3l1.8 4.7 4.7 1.8-4.7 1.8L12 16l-1.8-4.7-4.7-1.8 4.7-1.8z`,play:`M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0M10 8.5l5 3.5-5 3.5z`,check:`M3 12a9 9 0 1 0 18 0a9 9 0 1 0-18 0M8 12l3 3 5-6`,rerun:`M3 12a9 9 0 1 0 3-6.7L3 8M3 3v5h5`,bell:`M6 8a6 6 0 0 1 12 0c0 7 3 9 3 9H3s3-2 3-9M10 21a2 2 0 0 0 4 0`,building:`M4 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16M16 9h2a2 2 0 0 1 2 2v10M2 21h20M8 7h4M8 11h4M8 15h4`,chevron:`M6 9l6 6 6-6`,panel:`M3 4h18v16H3zM9 4v16`};const __snippet_Icon_1wdwc3j=({name,className=`h-3.5 w-3.5`})=>_jsx(`svg`,{viewBox:`0 0 24 24`,className:`mint-shrink-0 ${className}`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.8`,strokeLinecap:`round`,strokeLinejoin:`round`,\"aria-hidden\":`true`,children:_jsx(`path`,{d:__snippet_ICON_1wdwc3j[name]})});const __snippet_PLATFORM_NAV_1wdwc3j=[[null,[[`Home`,`home`],[`Projects`,`folder`]]],[`Build`,[[`Agents`,`agents`],[`Sessions`,`sessions`],[`Skills`,`skills`],[`Environments`,`monitor`],[`Browser Profiles`,`window`],[`Vaults`,`lock`],[`Schedules`,`clock`]]],[`Configure`,[[`Organisation`,`users`],[`API keys`,`key`],[`Webhooks`,`link`],[`Billing`,`card`]]]];const __snippet_PLATFORM_ACTIONS_1wdwc3j=[[`Your API Keys`,`API keys`,`key`],[`Upgrade`,`Billing \u0026 subscription`,`sparkle`],[`New Session`,`Start a session`,`sessions`],[`New Agent`,`Build an agent`,`agents`]];const __snippet_PLATFORM_NEW_1wdwc3j=[`Open Hacker News and list the top 3 stories with their URLs.`,`h/web-surfer-flash`,`26 secs`,`608afb3c-3636`];const __snippet_PLATFORM_SESSIONS_1wdwc3j=[[`On nike.com, find the Air Max 90 in white, men's size 10, and give me its price.`,`h/web-surfer-flash`,`30 secs`,`06ea2f54-d16d`],[`On Wikipedia, search for Ada Lovelace and open her article.`,`h/web-surfer-pro`,`22 secs`,`e7c894cc-3b38`],[`On GitHub Trending, find today's top 3 Python repositories.`,`h/web-surfer-pro`,`27 secs`,`71128d0c-4ca6`],[`On lego.com, list the 8 LEGO Star Wars sets with the most pieces.`,`h/web-surfer-flash`,`1 min`,`119bca51-dc14`],[`Download the W3C XHTML test file and report its size.`,`h/web-surfer-flash`,`47 secs`,`cfbd6de0-9bc3`]];const __snippet_HAIRLINE_1wdwc3j=`border-zinc-200 dark:border-white/10`;const __snippet_Checkbox_1wdwc3j=()=>_jsx(`span`,{className:`hplat-col mint-h-3 mint-w-3 mint-rounded-[3px] mint-border ${`mint-border-zinc-200 dark:mint-border-white/10`}`});const __snippet_Status_1wdwc3j=({done,time})=>_jsxs(`span`,{className:`mint-inline-flex mint-items-center mint-gap-1 mint-whitespace-nowrap mint-rounded-full mint-border mint-px-2 mint-py-0.5 mint-text-[10.5px] ${done?`mint-border-emerald-300 mint-text-emerald-700 dark:mint-border-emerald-500/40 dark:mint-text-emerald-400`:`mint-border-violet-300 mint-text-violet-700 dark:mint-border-violet-500/40 dark:mint-text-violet-300`}`,children:[done?_jsx(__snippet_Icon_1wdwc3j,{name:`check`,className:`mint-h-3 mint-w-3`}):_jsx(`span`,{className:`mint-mx-0.5 mint-h-1.5 mint-w-1.5 mint-animate-pulse mint-rounded-full mint-bg-violet-500`}),done?`Completed in ${time}`:`Running`]});const __snippet_SessionRow_1wdwc3j=({row,done=true,ago,fresh})=>_jsxs(`div`,{className:`hplat-row mint-grid mint-items-center mint-gap-4 mint-border-t mint-border-zinc-100 mint-px-4 mint-py-2.5 dark:mint-border-white/5 ${fresh?`hreplay-fade`:``}`,children:[_jsx(__snippet_Checkbox_1wdwc3j,{}),_jsxs(`span`,{className:`mint-flex mint-min-w-0 mint-items-center mint-gap-2 ${`mint-text-zinc-900 dark:mint-text-zinc-50`}`,children:[_jsx(`span`,{className:`mint-text-zinc-500 dark:mint-text-zinc-400`,children:_jsx(__snippet_Icon_1wdwc3j,{name:`play`})}),_jsx(`span`,{className:`mint-truncate mint-font-medium`,children:row[0]})]}),_jsx(`span`,{className:`hplat-col mint-truncate ${`mint-text-zinc-600 dark:mint-text-zinc-400`}`,children:row[1]}),_jsx(`span`,{children:_jsx(__snippet_Status_1wdwc3j,{done,time:row[2]})}),_jsxs(`span`,{className:`hplat-col mint-truncate ${`mint-text-zinc-600 dark:mint-text-zinc-400`}`,children:[row[3],`…`]}),_jsx(`span`,{className:`hplat-col ${`mint-text-zinc-600 dark:mint-text-zinc-400`}`,children:ago}),_jsx(`span`,{className:`hplat-col ${`mint-text-zinc-500 dark:mint-text-zinc-400`}`,children:_jsx(__snippet_Icon_1wdwc3j,{name:`rerun`})})]});const __snippet_PlatformMock_1wdwc3j=({active})=>{const[k]=__snippet_useTicker_1wdwc3j(active,x=>[1800,3200,6e3][x%3]);const phase=active?k%3:2;const crumb=`flex items-center gap-1.5 ${__snippet_MUTED_1wdwc3j}`;return _jsxs(`div`,{className:`hframe hplat mint-bg-white mint-text-[12px] dark:mint-bg-zinc-950`,role:`img`,\"aria-label\":`The H Platform home page: quick actions and the latest sessions`,children:[_jsxs(`div`,{className:`mint-flex mint-items-center mint-gap-2 mint-border-b mint-px-4 mint-py-2.5 ${`mint-border-zinc-200 dark:mint-border-white/10`}`,children:[_jsx(`span`,{className:`mint-flex mint-h-4 mint-w-4 mint-items-center mint-justify-center mint-rounded-full mint-bg-zinc-900 mint-text-[8px] mint-font-semibold mint-text-white dark:mint-bg-white dark:mint-text-zinc-900`,children:`H`}),_jsx(`span`,{className:`mint-text-zinc-300 dark:mint-text-zinc-600`,children:`/`}),_jsxs(`span`,{className:`mint-flex mint-items-center mint-gap-1.5 ${`mint-text-zinc-600 dark:mint-text-zinc-400`}`,children:[_jsx(__snippet_Icon_1wdwc3j,{name:`building`,className:`mint-h-3 mint-w-3`}),`Acme`,_jsx(__snippet_Icon_1wdwc3j,{name:`chevron`,className:`mint-h-3 mint-w-3`})]}),_jsx(`span`,{className:`mint-text-zinc-300 dark:mint-text-zinc-600`,children:`/`}),_jsx(`span`,{className:`hplat-col ${`mint-flex mint-items-center mint-gap-1.5 ${`mint-text-zinc-600 dark:mint-text-zinc-400`}`}`,children:_jsxs(`span`,{className:`mint-inline-flex mint-items-center mint-gap-1.5`,children:[_jsx(__snippet_Icon_1wdwc3j,{name:`folder`,className:`mint-h-3 mint-w-3`}),`Default`,_jsx(__snippet_Icon_1wdwc3j,{name:`chevron`,className:`mint-h-3 mint-w-3`})]})}),_jsx(`span`,{className:`hplat-col mint-text-zinc-300 dark:mint-text-zinc-600`,children:`/`}),_jsxs(`span`,{className:`mint-flex mint-items-center mint-gap-1.5 mint-font-medium ${`mint-text-zinc-900 dark:mint-text-zinc-50`}`,children:[_jsx(__snippet_Icon_1wdwc3j,{name:`home`,className:`mint-h-3 mint-w-3`}),`Home`]}),_jsx(`span`,{className:`mint-ml-auto ${`mint-text-zinc-500 dark:mint-text-zinc-400`}`,children:_jsx(__snippet_Icon_1wdwc3j,{name:`bell`})})]}),_jsxs(`div`,{className:`hplat-body`,children:[_jsxs(`nav`,{className:`hplat-nav mint-border-r mint-p-3 ${`mint-border-zinc-200 dark:mint-border-white/10`}`,children:[__snippet_PLATFORM_NAV_1wdwc3j.map(([group,items])=>_jsxs(`div`,{className:`mint-mb-4`,children:[group\u0026\u0026_jsxs(`p`,{className:`mint-m-0 mint-mb-1 mint-flex mint-items-center mint-justify-between mint-px-2 mint-text-[11px] ${`mint-text-zinc-500 dark:mint-text-zinc-400`}`,children:[group,_jsx(__snippet_Icon_1wdwc3j,{name:`chevron`,className:`mint-h-3 mint-w-3`})]}),items.map(([item,icon])=>_jsxs(`p`,{className:`mint-m-0 mint-flex mint-items-center mint-gap-2 mint-rounded-md mint-px-2 mint-py-1.5 ${item===`Home`?`mint-bg-zinc-100 mint-font-medium dark:mint-bg-white/10 ${`mint-text-zinc-900 dark:mint-text-zinc-50`}`:`mint-text-zinc-600 dark:mint-text-zinc-400`}`,children:[_jsx(__snippet_Icon_1wdwc3j,{name:icon}),item]},item))]},items[0][0])),_jsxs(`div`,{className:`mint-mt-6 mint-flex mint-items-center mint-justify-between mint-px-2`,children:[_jsx(`span`,{className:`mint-flex mint-h-5 mint-w-5 mint-items-center mint-justify-center mint-rounded-full mint-text-[10px] mint-font-medium mint-text-white`,style:{background:`var(--h-accent)`},children:`A`}),_jsx(`span`,{className:`mint-text-zinc-500 dark:mint-text-zinc-400`,children:_jsx(__snippet_Icon_1wdwc3j,{name:`panel`})})]})]}),_jsxs(`div`,{className:`mint-min-w-0 mint-p-5`,children:[_jsx(`p`,{className:`mint-m-0 mint-text-[15px] mint-font-medium ${`mint-text-zinc-900 dark:mint-text-zinc-50`}`,children:`Home`}),_jsx(`div`,{className:`hplat-actions mint-mt-4 mint-grid mint-gap-3`,children:__snippet_PLATFORM_ACTIONS_1wdwc3j.map(([label,cta,icon])=>_jsxs(`div`,{className:`mint-min-w-0 mint-rounded-lg mint-border mint-px-3 mint-py-2.5 mint-shadow-[0_1px_2px_rgb(0_0_0/0.04)] ${`mint-border-zinc-200 dark:mint-border-white/10`}`,children:[_jsxs(`span`,{className:`mint-flex mint-min-w-0 mint-items-center mint-gap-2 mint-font-medium ${`mint-text-zinc-900 dark:mint-text-zinc-50`}`,children:[_jsx(`span`,{style:{color:`var(--h-accent)`},children:_jsx(__snippet_Icon_1wdwc3j,{name:icon})}),_jsx(`span`,{className:`mint-truncate`,children:label})]}),_jsxs(`span`,{className:`hplat-col mint-mt-1 mint-truncate mint-text-[10.5px] mint-font-medium`,style:{color:`var(--h-accent)`},children:[cta,` →`]})]},label))}),_jsxs(`div`,{className:`mint-mt-6 mint-flex mint-items-center mint-justify-between`,children:[_jsx(`p`,{className:`mint-m-0 mint-font-medium ${`mint-text-zinc-900 dark:mint-text-zinc-50`}`,children:`Latest sessions`}),_jsx(`p`,{className:`mint-m-0 ${`mint-text-zinc-500 dark:mint-text-zinc-400`}`,children:`View all ›`})]}),_jsxs(`div`,{className:`mint-mt-2 mint-overflow-hidden mint-rounded-lg mint-border ${`mint-border-zinc-200 dark:mint-border-white/10`}`,children:[_jsxs(`div`,{className:`hplat-row mint-grid mint-items-center mint-gap-4 mint-px-4 mint-py-2 mint-text-[11px] ${`mint-text-zinc-500 dark:mint-text-zinc-400`}`,children:[_jsx(__snippet_Checkbox_1wdwc3j,{}),_jsx(`span`,{children:`Prompt`}),_jsx(`span`,{className:`hplat-col`,children:`Agent`}),_jsx(`span`,{children:`Status`}),_jsx(`span`,{className:`hplat-col`,children:`ID`}),_jsx(`span`,{className:`hplat-col`,children:`Last updated`}),_jsx(`span`,{className:`hplat-col`})]}),phase>0\u0026\u0026_jsx(__snippet_SessionRow_1wdwc3j,{fresh:true,row:__snippet_PLATFORM_NEW_1wdwc3j,done:phase===2,ago:`Just now`},`new`),__snippet_PLATFORM_SESSIONS_1wdwc3j.slice(0,phase>0?4:5).map((row,j)=>_jsx(__snippet_SessionRow_1wdwc3j,{row,ago:`${j+2}h ago`},row[3]))]}),_jsx(`p`,{className:`mint-m-0 mint-mt-6 mint-font-medium ${`mint-text-zinc-900 dark:mint-text-zinc-50`}`,children:`Latest issues`}),_jsxs(`div`,{className:`mint-mt-2 mint-flex mint-items-center mint-gap-2 mint-rounded-lg mint-border mint-border-emerald-200 mint-bg-emerald-50 mint-px-3 mint-py-2.5 mint-text-emerald-700 dark:mint-border-emerald-500/30 dark:mint-bg-emerald-500/10 dark:mint-text-emerald-400`,children:[_jsx(__snippet_Icon_1wdwc3j,{name:`check`}),`No issues detected. All recent sessions are healthy.`]})]})]})]})};const __snippet_PLATFORM_FEATURES_1wdwc3j=[[`Launch work`,`Pick an agent, describe the job, and follow it step by step.`,`/agents-api/sessions/overview`],[`Build an agent`,`Choose the model, skills, subagents, and instructions.`,`/agents-api/agents/overview`],[`Vaults and profiles`,`Store the credentials and logins your agents use.`,`/agents-api/vaults/overview`]];const __snippet_PlatformSection_1wdwc3j=()=>{const[root,active]=__snippet_useActive_1wdwc3j(.3);return _jsxs(`section`,{ref:root,\"data-product\":`platform`,className:`hsec not-prose`,children:[_jsx(__snippet_Head_1wdwc3j,{title:`H Platform`,blurb:`Orchestrate a fleet of agents doing real work. Follow every session live and manage logins and schedules, no code needed.`,links:[[`Open H Platform`,`https://platform.hcompany.ai`],[`Get an API key`,__snippet_AGENTS_KEY_1wdwc3j]]}),_jsx(`div`,{className:`mint-mt-10`,children:_jsx(__snippet_PlatformMock_1wdwc3j,{active})}),_jsx(`div`,{className:`hblock`,children:_jsx(__snippet_Columns_1wdwc3j,{items:__snippet_PLATFORM_FEATURES_1wdwc3j})})]})};const __snippet_CAPABILITIES_1wdwc3j=[[`Screen actions`,`Click coordinates from a screenshot and a short description.`,`/models-api/element-localization`],[`Tool calls`,`OpenAI-style function calling, so agent frameworks work as is.`,`/models-api/build-an-agent/function-calling`],[`Document OCR`,`Turn a page into Markdown, with tables and equations.`,`/models-api/document-ocr`]];const __snippet_OSWORLD_1wdwc3j=[[`holo4-27b`,`85.2%`],[`holo4-35b-a3b`,`80.8%`]];const __snippet_ModelCard_1wdwc3j=({m,osworld})=>{const _components={a:`a`,..._provideComponents()};const Dots=__snippet_DotField_1wdwc3j;const dim={color:`#71717a`};return _jsxs(`div`,{className:`htile hdark mint-group mint-relative mint-overflow-hidden mint-rounded-2xl mint-p-7 sm:mint-p-8`,children:[_jsx(Dots,{}),_jsx(_components.a,{href:`/models-api/overview#models`,\"aria-label\":m.name,className:`mint-absolute mint-inset-0 mint-z-10`}),_jsxs(`div`,{className:`mint-flex mint-items-center mint-justify-between mint-gap-3`,children:[_jsx(`span`,{className:`mint-rounded-full mint-px-2.5 mint-py-0.5 mint-text-xs`,style:{background:`rgb(255 255 255 / 0.08)`,color:`#d4d4d8`},children:m.tag}),_jsx(`span`,{className:`mint-truncate mint-font-mono mint-text-xs`,style:dim,children:m.id})]}),_jsx(`p`,{className:`mint-m-0 mint-mt-12 mint-text-3xl mint-font-medium mint-tracking-tight mint-text-white`,children:m.name}),_jsx(`p`,{className:`mint-m-0 mint-mt-2 mint-text-[15px] mint-leading-6`,style:{color:`#a1a1aa`},children:m.blurb}),_jsx(`div`,{className:`mint-mt-8 mint-grid mint-grid-cols-3 mint-gap-4 mint-pt-5`,style:{borderTop:`1px solid rgb(255 255 255 / 0.1)`},children:[[osworld,`OSWorld`],[`${Math.round(m.context/1024)}K`,`Context`],[`$${m.price[0]} / $${m.price[2]}`,`Per 1M in / out`]].map(([v,k])=>_jsxs(`div`,{className:`mint-min-w-0`,children:[_jsx(`p`,{className:`mint-m-0 mint-text-base mint-font-medium mint-tabular-nums mint-text-white sm:mint-text-lg`,children:v}),_jsx(`p`,{className:`mint-m-0 mint-mt-0.5 mint-text-xs`,style:dim,children:k})]},k))}),_jsx(_components.a,{href:`https://huggingface.co/${m.hf}`,target:`_blank`,rel:`noreferrer`,className:`mint-relative mint-z-20 mint-mt-6 mint-inline-flex mint-text-xs mint-no-underline mint-transition-colors hover:mint-text-white`,style:dim,children:`Weights on Hugging Face ↗`})]})};const __snippet_ModelsSection_1wdwc3j=()=>{const Demo=__snippet_LocalizationDemo_1wdwc3j;return _jsxs(`section`,{\"data-product\":`models`,className:`hsec not-prose`,children:[_jsx(__snippet_Head_1wdwc3j,{title:`Models API`,blurb:`Holo4 works through any interface. It clicks on screenshots, writes and runs code, and calls MCP or API tools. One model for web, desktop, and mobile, behind an OpenAI-compatible API.`,links:[[`Quickstart`,`/models-api/overview#quickstart`],[`API reference`,`/models-api/chat-completions`],[`Get an API key`,__snippet_MODELS_KEY_1wdwc3j]]}),_jsx(`div`,{className:`mint-mt-10`,children:_jsx(Demo,{})}),_jsxs(`div`,{className:`hblock`,children:[_jsx(__snippet_RowHead_1wdwc3j,{title:`Models`,link:[`All models`,`/models-api/overview#models`]}),_jsx(`div`,{className:`mint-grid mint-gap-4 md:mint-grid-cols-2`,children:__snippet_OSWORLD_1wdwc3j.map(([id,score])=>_jsx(__snippet_ModelCard_1wdwc3j,{m:__snippet_MODELS_1wdwc3j.find(m=>m.id===id),osworld:score},id))})]}),_jsx(`div`,{className:`hblock`,children:_jsx(__snippet_Columns_1wdwc3j,{items:__snippet_CAPABILITIES_1wdwc3j})})]})};const __snippet_CLI_TASK_1wdwc3j=`Open Hacker News and list the top 3 stories with their URLs.`;const __snippet_CLI_STORIES_1wdwc3j=[[`Mistral Large 4 (Le Chonk) is now Open Weight`,`https://mistral.ai`],[`DoorDash is acquiring Instacart for $17B`,`https://doordash.com`],[`Gemini 4 Carbon is the new #1 on the Artificial Analysis Intelligence Index v5`,`https://artificialanalysis.ai`]];const __snippet_CLI_DELAYS_1wdwc3j=[900,1100,2200,1600,7e3];const __snippet_Terminal_1wdwc3j=({active})=>{const[k]=__snippet_useTicker_1wdwc3j(active,x=>__snippet_CLI_DELAYS_1wdwc3j[x%__snippet_CLI_DELAYS_1wdwc3j.length]);const s=active?k%__snippet_CLI_DELAYS_1wdwc3j.length:__snippet_CLI_DELAYS_1wdwc3j.length-1;const dim={color:`#71717a`};return _jsxs(`div`,{className:`hframe mint-h-full mint-overflow-hidden`,style:{background:`#0a0a0b`},children:[_jsxs(`div`,{className:`mint-flex mint-items-center mint-gap-2 mint-px-4 mint-py-3`,style:{borderBottom:`1px solid #1f1f23`},children:[[0,1,2].map(j=>_jsx(`span`,{className:`mint-h-2.5 mint-w-2.5 mint-rounded-full`,style:{background:`#3f3f46`}},j)),_jsx(`span`,{className:`mint-ml-3 mint-font-mono mint-text-xs`,style:dim,children:`~ zsh`})]}),_jsxs(`pre`,{className:`mint-m-0 mint-overflow-x-auto mint-whitespace-pre-wrap mint-bg-transparent mint-p-5 mint-font-mono mint-text-xs mint-leading-5`,style:{color:`#e4e4e7`,minHeight:360},children:[_jsx(`span`,{style:{color:`#86efac`},children:`$`}),` holo run \"`,__snippet_CLI_TASK_1wdwc3j,`\"`,`\n`,s>=1\u0026\u0026_jsxs(`span`,{className:`hreplay-fade`,children:[`\n`,_jsx(`span`,{style:{color:`#fcd34d`},children:`✻ holo`}),` h/web-surfer-flash `,_jsx(`span`,{style:dim,children:`runs in the cloud`}),`\n`]}),s===2\u0026\u0026_jsxs(`span`,{className:`hreplay-fade`,style:dim,children:[`\n`,` Working…`,`\n`]}),s>=3\u0026\u0026_jsxs(`span`,{className:`hreplay-fade`,children:[`\n`,_jsx(`span`,{style:{color:`#7dd3fc`},children:`●`}),` Navigate news.ycombinator.com`,`\n`,_jsx(`span`,{style:dim,children:` ⎿ Hacker News · 8.3s`}),`\n`]}),s>=4\u0026\u0026_jsxs(`span`,{className:`hreplay-fade`,children:[`\n`,`Top 3 stories on Hacker News:`,`\n\n`,__snippet_CLI_STORIES_1wdwc3j.map(([title,url],j)=>_jsxs(`span`,{children:[j+1,`. `,_jsx(`span`,{style:{color:`#fafafa`,fontWeight:600},children:title}),`\n`,_jsxs(`span`,{style:dim,children:[` `,url]}),`\n`]},url)),`\n`,_jsx(`span`,{style:{color:`#fcd34d`},children:`✻`}),` Done in 25.2s · 2 steps · $0.004`]})]})]})};const __snippet_App_1wdwc3j=({id,title,blurb,links,children})=>_jsxs(`div`,{\"data-product\":id,className:`mint-flex mint-flex-col`,children:[_jsx(`div`,{className:`mint-flex-1`,children}),_jsx(`h3`,{className:`mint-m-0 mint-mt-6 mint-text-2xl mint-font-medium mint-tracking-tight ${`mint-text-zinc-900 dark:mint-text-zinc-50`}`,children:title}),_jsx(`p`,{className:`mint-m-0 mint-mt-2 mint-text-[15px] mint-leading-7 ${`mint-text-zinc-600 dark:mint-text-zinc-400`}`,children:blurb}),_jsx(__snippet_TextLinks_1wdwc3j,{links,className:`mint-mt-4`})]});const __snippet_AppsSection_1wdwc3j=()=>{const[root,active]=__snippet_useActive_1wdwc3j(.2);return _jsxs(`section`,{ref:root,className:`hsec not-prose`,children:[_jsx(__snippet_Head_1wdwc3j,{title:`Holo CLI and HoloTab`}),_jsxs(`div`,{className:`mint-mt-12 mint-grid mint-gap-x-10 mint-gap-y-16 lg:mint-grid-cols-2`,children:[_jsx(__snippet_App_1wdwc3j,{id:`cli`,title:`Holo CLI`,blurb:`Let Claude Code, Cursor, or Codex use any app on your desktop through one MCP server. Or run any H agent straight from your terminal.`,links:[[`Install`,`/holo-cli/introduction#install`],[`Drive your desktop`,`/holo-cli/introduction#drive-your-desktop`]],children:_jsx(__snippet_Terminal_1wdwc3j,{active})}),_jsx(__snippet_App_1wdwc3j,{id:`holotab`,title:`HoloTab`,blurb:`A free Chrome extension that works on the page you're on. Tell it what to do, or record a routine and run it on a schedule.`,links:[[`Add to Chrome`,__snippet_CHROME_STORE_1wdwc3j],[`Get started`,`/holotab/introduction#get-started`]],children:_jsx(`div`,{className:`hframe mint-h-full mint-bg-black`,style:{minHeight:360},children:_jsx(`img`,{src:`/images/holotab/prompt.gif`,alt:`The HoloTab prompt box: describe a task or type / for routines`,className:`mint-h-full mint-w-full mint-object-contain`,draggable:false})})})]})]})};const __snippet_DotField_1wdwc3j=()=>{const ref=useRef(null);const inView=__snippet_useInView_1wdwc3j(ref,.05);useEffect(()=>{const c=ref.current;const ctx=c.getContext(`2d`);const still=__snippet_reducedMotion_1wdwc3j();const dpr=Math.min(window.devicePixelRatio||1,2);let raf,w,h,dots;const layout=()=>{w=c.clientWidth;h=c.clientHeight;c.width=w*dpr;c.height=h*dpr;ctx.setTransform(dpr,0,0,dpr,0,0);dots=[];for(let y=12;y\u003ch;y+=24){for(let x=12;x\u003cw;x+=24){const edge=Math.max(0,1-Math.hypot((x-w/2)/(w*.55),(y-h*.55)/(h*.7)));const text=Math.min(1,Math.max(0,Math.hypot((x-w/2)/(w*.22),(y-h/2)/(h*.28))-.7)/.5);dots.push({x,y,edge,text,phase:Math.random()*6.28,speed:.3+Math.random()*.9})}}};const draw=now=>{const t=now/1e3;ctx.clearRect(0,0,w,h);for(const d of dots){const wave=(Math.sin(d.x*.011+d.y*.007-t*.5)+Math.sin(d.y*.013-d.x*.005+t*.35)+2)/4;const glow=wave**2.5*(.35+.65*Math.sin(t*d.speed+d.phase)**2)*d.text;const a=d.edge*(.1+glow);if(a\u003c.02)continue;ctx.fillStyle=`rgba(${255-90*glow}, ${255-115*glow}, 255, ${Math.min(a,1)})`;ctx.beginPath();ctx.arc(d.x,d.y,.9+1.1*glow,0,6.28);ctx.fill()}if(!still\u0026\u0026inView)raf=requestAnimationFrame(draw)};layout();draw(performance.now());const ro=new ResizeObserver(()=>{layout();draw(performance.now())});ro.observe(c);return()=>{cancelAnimationFrame(raf);ro.disconnect()}},[inView]);return _jsx(`canvas`,{ref,className:`hcta-dots`,\"aria-hidden\":`true`})};const __snippet_Shot_1wdwc3j=({src,alt,position=`50% 0`})=>_jsx(`img`,{src,alt,loading:`lazy`,draggable:false,className:`mint-absolute mint-inset-0 mint-h-full mint-w-full mint-object-cover`,style:{objectPosition:position}});const __snippet_AgentsTile_1wdwc3j=({active})=>{const Screen=__snippet_ReplayScreen_1wdwc3j;const n=__snippet_nikeReplay_1wdwc3j.steps.length;const[k]=__snippet_useTicker_1wdwc3j(active,x=>x%(n+1)===n?3e3:1400);return _jsx(Screen,{data:__snippet_nikeReplay_1wdwc3j,i:active?k%(n+1):0,aspect:`16 / 10`,bare:true,compact:true,className:`mint-absolute mint-inset-0`})};const __snippet_BLENDER_1wdwc3j=[[`Geometry Nodes tab`,379,26],[`The donut`,505,180],[`Donut in the outliner`,866,101],[`Join Geometry node`,521,513]];const __snippet_ModelsTile_1wdwc3j=({active})=>{const[k]=__snippet_useTicker_1wdwc3j(active,()=>2e3);const j=active?k%__snippet_BLENDER_1wdwc3j.length:1;const[label,x,y]=__snippet_BLENDER_1wdwc3j[j];const left=50+(x/1e3-.5)*(1e3/9);return _jsxs(_Fragment,{children:[_jsx(__snippet_Shot_1wdwc3j,{src:`/images/models-api/screenspot-pro-blender.webp`,alt:`Holo locating elements in a Blender screenshot`,position:`50% 50%`}),_jsxs(`span`,{className:`mint-pointer-events-none mint-absolute mint-z-10`,style:{left:`${left}%`,top:`${y/10}%`,transition:`left 700ms cubic-bezier(.2,.8,.2,1), top 700ms cubic-bezier(.2,.8,.2,1)`},children:[_jsx(`span`,{className:`hreplay-ripple mint-absolute mint--left-5 mint--top-5 mint-h-10 mint-w-10 mint-rounded-full mint-border-2 mint-border-violet-400`},j),_jsx(`span`,{className:`mint-absolute mint--left-2 mint--top-2 mint-h-4 mint-w-4 mint-rounded-full mint-border-2 mint-border-violet-400 mint-bg-violet-500/30`}),_jsxs(`span`,{className:`hreplay-pop mint-absolute mint-w-max mint-rounded-md mint-bg-zinc-900/90 mint-px-2 mint-py-1 mint-text-[11px] mint-font-medium mint-text-white mint-shadow-lg ${y>600?`mint-bottom-4`:`mint-top-4`} ${left>60?`mint-right-2`:`mint-left-2`}`,children:[label,` `,_jsxs(`span`,{className:`mint-font-mono mint-font-normal mint-text-zinc-400`,children:[`(`,x,`, `,y,`)`]})]},`l${j}`)]})]})};const __snippet_WEIGHTS_1wdwc3j=[[`Holo4-27B`,`27B`],[`Holo4-35B-A3B`,`35B`],[`Holotron4-30B-A3B`,`30B`]];const __snippet_WeightsTile_1wdwc3j=({active})=>{const[k]=__snippet_useTicker_1wdwc3j(active,()=>2200);const j=active?k%__snippet_WEIGHTS_1wdwc3j.length:-1;return _jsxs(`div`,{className:`hdark mint-absolute mint-inset-0 mint-flex mint-flex-col mint-justify-center mint-px-4 mint-pb-10 sm:mint-px-7`,children:[_jsx(__snippet_DotField_1wdwc3j,{}),__snippet_WEIGHTS_1wdwc3j.map(([name,size],i)=>_jsxs(`div`,{className:`mint-relative mint-py-2 mint-font-mono mint-text-[11px] sm:mint-text-xs`,style:{borderTop:i?`1px solid rgb(255 255 255 / 0.08)`:undefined},children:[_jsxs(`div`,{className:`mint-flex mint-items-center mint-justify-between mint-gap-3`,children:[_jsxs(`span`,{className:`mint-truncate mint-transition-colors mint-duration-500`,style:{color:i===j?`#fff`:`#a1a1aa`},children:[_jsx(`span`,{className:`mint-hidden sm:mint-inline`,style:{color:`#71717a`},children:`Hcompany/`}),name]}),_jsx(`span`,{style:{color:`#71717a`},children:size})]}),_jsx(`span`,{className:`mint-absolute mint--bottom-px mint-left-0 mint-h-px`,style:{width:i===j?`100%`:`0%`,background:`#a78bfa`,transition:i===j?`width 2000ms linear`:`none`}})]},name)),_jsx(`p`,{className:`mint-m-0 mint-mt-3 mint-font-mono mint-text-[10px] sm:mint-text-[11px]`,style:{color:`#71717a`},children:`BF16 · FP8 · NVFP4 · GGUF`})]})};const __snippet_TILES_1wdwc3j=[[`/agents-api/overview`,`Agents API`,__snippet_AgentsTile_1wdwc3j],[`/models-api/overview`,`Models API`,__snippet_ModelsTile_1wdwc3j],[`https://platform.hcompany.ai`,`H Platform`,()=>_jsx(__snippet_Shot_1wdwc3j,{src:`/images/platform_agent_page.webp`,alt:`An agent page on H Platform`,position:`0 0`})],[`/holo-cli/introduction`,`Holo CLI`,({active})=>_jsx(`div`,{className:`mint-absolute mint-inset-0`,children:_jsx(__snippet_Terminal_1wdwc3j,{active})})],[`/holotab/introduction`,`HoloTab`,()=>_jsx(__snippet_Shot_1wdwc3j,{src:`/images/holotab/prompt.gif`,alt:`The HoloTab prompt box in Chrome`,position:`50% 50%`})],[`https://huggingface.co/Hcompany`,`Open weights`,__snippet_WeightsTile_1wdwc3j]];const __snippet_Tiles_1wdwc3j=()=>{const _components={a:`a`,..._provideComponents()};const[root,active]=__snippet_useActive_1wdwc3j(.2);return _jsx(`div`,{ref:root,className:`mint-mt-24 mint-grid mint-gap-4 sm:mint-grid-cols-2 md:mint-grid-cols-3 lg:mint-mt-32`,children:__snippet_TILES_1wdwc3j.map(([href,label,Visual])=>_jsxs(_components.a,{href,className:`htile mint-group mint-relative mint-block mint-aspect-[16/10] mint-overflow-hidden mint-rounded-2xl mint-no-underline`,children:[_jsx(Visual,{active}),_jsx(`span`,{className:`htile-fade`,\"aria-hidden\":`true`}),_jsxs(`span`,{className:`htile-label mint-absolute mint-bottom-3 mint-right-4 mint-z-20 mint-inline-flex mint-items-center mint-gap-1.5 mint-text-sm mint-font-medium mint-text-white`,children:[label,` `,_jsx(`span`,{className:`mint-transition-transform group-hover:mint-translate-x-0.5`,children:`→`})]})]},href))})};const Home=()=>{const _components={a:`a`,..._provideComponents()};return _jsxs(`div`,{className:`hhome not-prose mint-mx-auto mint-max-w-6xl mint-px-5 sm:mint-px-8`,children:[_jsxs(`section`,{className:`hhero-center`,children:[_jsx(__snippet_Pill_1wdwc3j,{accent:true,tag:`New`,text:`Holo4: cost-efficient computer use, MCP and code`,href:`https://hcompany.ai/newsroom/holo4`}),_jsx(`h1`,{className:`hh1 ${`mint-text-zinc-900 dark:mint-text-zinc-50`}`,children:`Get started with H Platform`}),_jsx(`p`,{className:`mint-m-0 mint-mx-auto mint-mt-6 mint-max-w-xl mint-text-lg mint-leading-8 ${`mint-text-zinc-600 dark:mint-text-zinc-400`}`,children:`Build with the H APIs: agents that click, type, and run code in real browsers and desktops, and the Holo models behind them.`}),_jsx(__snippet_Buttons_1wdwc3j,{className:`mint-justify-center`,links:[[`Create API key`,__snippet_AGENTS_KEY_1wdwc3j],[`Get started`,`/agents-api/overview#quickstart`]]})]}),_jsx(__snippet_Tiles_1wdwc3j,{}),_jsx(__snippet_AgentsSection_1wdwc3j,{}),_jsx(__snippet_PlatformSection_1wdwc3j,{}),_jsx(__snippet_ModelsSection_1wdwc3j,{}),_jsx(__snippet_AppsSection_1wdwc3j,{}),_jsxs(`section`,{\"data-cta\":true,className:`hsec hcta not-prose`,children:[_jsx(__snippet_DotField_1wdwc3j,{}),_jsxs(`div`,{className:`hcta-inner`,children:[_jsx(`h2`,{className:`mint-m-0 mint-text-3xl mint-font-medium mint-tracking-tight mint-text-white sm:mint-text-[2.75rem] sm:mint-leading-[1.1]`,children:`Holo is one call away`}),_jsx(`p`,{className:`mint-m-0 mint-mx-auto mint-mt-4 mint-max-w-xl mint-text-lg mint-leading-8 mint-text-zinc-400`,children:`Create an API key and run your first session in a few minutes.`}),_jsxs(`div`,{className:`mint-mt-10 mint-flex mint-flex-wrap mint-items-center mint-justify-center mint-gap-3`,children:[_jsx(_components.a,{href:__snippet_AGENTS_KEY_1wdwc3j,className:`${`mint-inline-flex mint-h-10 mint-items-center mint-rounded-full mint-px-5 mint-text-sm mint-font-medium mint-no-underline mint-transition-colors`} mint-bg-white mint-text-zinc-900 hover:mint-bg-zinc-200`,children:`Create API key`}),_jsx(_components.a,{href:`/agents-api/overview#quickstart`,className:`${`mint-inline-flex mint-h-10 mint-items-center mint-rounded-full mint-px-5 mint-text-sm mint-font-medium mint-no-underline mint-transition-colors`} mint-bg-white/10 mint-text-white hover:mint-bg-white/15`,children:`Read the quickstart`})]})]})]})]})};function _createMdxContent(props){const{_MdxComponentBoundary}={..._provideComponents(),...props.components};if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsx(_MdxComponentBoundary,{name:`Home`,children:_jsx(Home,{})})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{__snippet_nikeReplay_1wdwc3j,__snippet_legoSchemaReplay_1wdwc3j,__snippet_checkoutReplay_1wdwc3j,__snippet_airbnbSteerReplay_1wdwc3j,__snippet_airbnbCitiesTree_1wdwc3j,__snippet_MODELS_1wdwc3j,__snippet_LocalizationDemo_1wdwc3j,__snippet___snippet_record_hb0fv7_1wdwc3j,__snippet___snippet_replayCaption_hb0fv7_1wdwc3j,__snippet_Replay_1wdwc3j,__snippet___snippet_useInView_hb0fv7_1wdwc3j,__snippet_useInView_1wdwc3j,__snippet___snippet_reducedMotion_hb0fv7_1wdwc3j,__snippet_reducedMotion_1wdwc3j,__snippet___snippet_fmtTime_hb0fv7_1wdwc3j,__snippet___snippet_posterIndex_hb0fv7_1wdwc3j,__snippet___snippet_ratio_hb0fv7_1wdwc3j,__snippet___snippet_checkIcon_hb0fv7_1wdwc3j,__snippet___snippet_cursorIcon_hb0fv7_1wdwc3j,__snippet___snippet_where_hb0fv7_1wdwc3j,__snippet___snippet_ReplayScreen_hb0fv7_1wdwc3j,__snippet_ReplayScreen_1wdwc3j,__snippet___snippet_laneCaption_hb0fv7_1wdwc3j,__snippet_AgentTree_1wdwc3j,__snippet_useActive_1wdwc3j,__snippet_useTicker_1wdwc3j,__snippet_CHROME_STORE_1wdwc3j,__snippet_AGENTS_KEY_1wdwc3j,__snippet_MODELS_KEY_1wdwc3j,__snippet_PILL_1wdwc3j,__snippet_PRIMARY_1wdwc3j,__snippet_SECONDARY_1wdwc3j,__snippet_MUTED_1wdwc3j,__snippet_STRONG_1wdwc3j,__snippet_Buttons_1wdwc3j,__snippet_Pill_1wdwc3j,__snippet_TABS_1wdwc3j,__snippet_SOFT_1wdwc3j,__snippet_ARROW_1wdwc3j,__snippet_TextLinks_1wdwc3j,__snippet_H2_1wdwc3j,__snippet_Head_1wdwc3j,__snippet_Spread_1wdwc3j,__snippet_SpreadText_1wdwc3j,__snippet_HOME_CASES_1wdwc3j,__snippet_UseCases_1wdwc3j,__snippet_RowHead_1wdwc3j,__snippet_Columns_1wdwc3j,__snippet_DIRECTORY_1wdwc3j,__snippet_Directory_1wdwc3j,__snippet_Sub_1wdwc3j,__snippet_AgentsSection_1wdwc3j,__snippet_ICON_1wdwc3j,__snippet_Icon_1wdwc3j,__snippet_PLATFORM_NAV_1wdwc3j,__snippet_PLATFORM_ACTIONS_1wdwc3j,__snippet_PLATFORM_NEW_1wdwc3j,__snippet_PLATFORM_SESSIONS_1wdwc3j,__snippet_HAIRLINE_1wdwc3j,__snippet_Checkbox_1wdwc3j,__snippet_Status_1wdwc3j,__snippet_SessionRow_1wdwc3j,__snippet_PlatformMock_1wdwc3j,__snippet_PLATFORM_FEATURES_1wdwc3j,__snippet_PlatformSection_1wdwc3j,__snippet_CAPABILITIES_1wdwc3j,__snippet_OSWORLD_1wdwc3j,__snippet_ModelCard_1wdwc3j,__snippet_ModelsSection_1wdwc3j,__snippet_CLI_TASK_1wdwc3j,__snippet_CLI_STORIES_1wdwc3j,__snippet_CLI_DELAYS_1wdwc3j,__snippet_Terminal_1wdwc3j,__snippet_App_1wdwc3j,__snippet_AppsSection_1wdwc3j,__snippet_DotField_1wdwc3j,__snippet_Shot_1wdwc3j,__snippet_AgentsTile_1wdwc3j,__snippet_BLENDER_1wdwc3j,__snippet_ModelsTile_1wdwc3j,__snippet_WEIGHTS_1wdwc3j,__snippet_WeightsTile_1wdwc3j,__snippet_TILES_1wdwc3j,__snippet_Tiles_1wdwc3j,Home,default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"H Platform Docs","description":"Run computer-use agents in a cloud browser or on a desktop with the Agents API, build your own agent on Holo models, or run Holo on your own machine.","mode":"wide","timestamp":false,"keywords":["computer-use agent","browser automation API","agent model API","Holo","H Company","desktop automation"],"href":"/index"}}},"mdxSourceWithNoJs":{"compiledSource":"\"use strict\";const{jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const __snippet_nikeReplay_1wdwc3j=undefined;const __snippet_legoSchemaReplay_1wdwc3j=undefined;const __snippet_checkoutReplay_1wdwc3j=undefined;const __snippet_airbnbSteerReplay_1wdwc3j=undefined;const __snippet_airbnbCitiesTree_1wdwc3j=undefined;const __snippet_MODELS_1wdwc3j=undefined;const __snippet_LocalizationDemo_1wdwc3j=()=>null;const __snippet___snippet_record_hb0fv7_1wdwc3j=()=>null;const __snippet___snippet_replayCaption_hb0fv7_1wdwc3j=()=>null;const __snippet_Replay_1wdwc3j=()=>null;const __snippet___snippet_useInView_hb0fv7_1wdwc3j=()=>null;const __snippet_useInView_1wdwc3j=undefined;const __snippet___snippet_reducedMotion_hb0fv7_1wdwc3j=()=>null;const __snippet_reducedMotion_1wdwc3j=undefined;const __snippet___snippet_fmtTime_hb0fv7_1wdwc3j=()=>null;const __snippet___snippet_posterIndex_hb0fv7_1wdwc3j=()=>null;const __snippet___snippet_ratio_hb0fv7_1wdwc3j=()=>null;const __snippet___snippet_checkIcon_hb0fv7_1wdwc3j=()=>null;const __snippet___snippet_cursorIcon_hb0fv7_1wdwc3j=()=>null;const __snippet___snippet_where_hb0fv7_1wdwc3j=()=>null;const __snippet___snippet_ReplayScreen_hb0fv7_1wdwc3j=()=>null;const __snippet_ReplayScreen_1wdwc3j=undefined;const __snippet___snippet_laneCaption_hb0fv7_1wdwc3j=()=>null;const __snippet_AgentTree_1wdwc3j=()=>null;const __snippet_useActive_1wdwc3j=()=>null;const __snippet_useTicker_1wdwc3j=()=>null;const __snippet_CHROME_STORE_1wdwc3j=undefined;const __snippet_AGENTS_KEY_1wdwc3j=undefined;const __snippet_MODELS_KEY_1wdwc3j=undefined;const __snippet_PILL_1wdwc3j=undefined;const __snippet_PRIMARY_1wdwc3j=undefined;const __snippet_SECONDARY_1wdwc3j=undefined;const __snippet_MUTED_1wdwc3j=undefined;const __snippet_STRONG_1wdwc3j=undefined;const __snippet_Buttons_1wdwc3j=()=>null;const __snippet_Pill_1wdwc3j=()=>null;const __snippet_TABS_1wdwc3j=undefined;const __snippet_SOFT_1wdwc3j=undefined;const __snippet_ARROW_1wdwc3j=undefined;const __snippet_TextLinks_1wdwc3j=()=>null;const __snippet_H2_1wdwc3j=()=>null;const __snippet_Head_1wdwc3j=()=>null;const __snippet_Spread_1wdwc3j=()=>null;const __snippet_SpreadText_1wdwc3j=()=>null;const __snippet_HOME_CASES_1wdwc3j=undefined;const __snippet_UseCases_1wdwc3j=()=>null;const __snippet_RowHead_1wdwc3j=()=>null;const __snippet_Columns_1wdwc3j=()=>null;const __snippet_DIRECTORY_1wdwc3j=undefined;const __snippet_Directory_1wdwc3j=()=>null;const __snippet_Sub_1wdwc3j=()=>null;const __snippet_AgentsSection_1wdwc3j=()=>null;const __snippet_ICON_1wdwc3j=undefined;const __snippet_Icon_1wdwc3j=()=>null;const __snippet_PLATFORM_NAV_1wdwc3j=undefined;const __snippet_PLATFORM_ACTIONS_1wdwc3j=undefined;const __snippet_PLATFORM_NEW_1wdwc3j=undefined;const __snippet_PLATFORM_SESSIONS_1wdwc3j=undefined;const __snippet_HAIRLINE_1wdwc3j=undefined;const __snippet_Checkbox_1wdwc3j=()=>null;const __snippet_Status_1wdwc3j=()=>null;const __snippet_SessionRow_1wdwc3j=()=>null;const __snippet_PlatformMock_1wdwc3j=()=>null;const __snippet_PLATFORM_FEATURES_1wdwc3j=undefined;const __snippet_PlatformSection_1wdwc3j=()=>null;const __snippet_CAPABILITIES_1wdwc3j=undefined;const __snippet_OSWORLD_1wdwc3j=undefined;const __snippet_ModelCard_1wdwc3j=()=>null;const __snippet_ModelsSection_1wdwc3j=()=>null;const __snippet_CLI_TASK_1wdwc3j=undefined;const __snippet_CLI_STORIES_1wdwc3j=undefined;const __snippet_CLI_DELAYS_1wdwc3j=undefined;const __snippet_Terminal_1wdwc3j=()=>null;const __snippet_App_1wdwc3j=()=>null;const __snippet_AppsSection_1wdwc3j=()=>null;const __snippet_DotField_1wdwc3j=()=>null;const __snippet_Shot_1wdwc3j=()=>null;const __snippet_AgentsTile_1wdwc3j=()=>null;const __snippet_BLENDER_1wdwc3j=undefined;const __snippet_ModelsTile_1wdwc3j=()=>null;const __snippet_WEIGHTS_1wdwc3j=undefined;const __snippet_WeightsTile_1wdwc3j=()=>null;const __snippet_TILES_1wdwc3j=undefined;const __snippet_Tiles_1wdwc3j=()=>null;const Home=()=>null;function _createMdxContent(props){const{_MdxComponentBoundary}={..._provideComponents(),...props.components};if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsx(_MdxComponentBoundary,{name:`Home`,children:_jsx(Home,{})})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{__snippet_nikeReplay_1wdwc3j,__snippet_legoSchemaReplay_1wdwc3j,__snippet_checkoutReplay_1wdwc3j,__snippet_airbnbSteerReplay_1wdwc3j,__snippet_airbnbCitiesTree_1wdwc3j,__snippet_MODELS_1wdwc3j,__snippet_LocalizationDemo_1wdwc3j,__snippet___snippet_record_hb0fv7_1wdwc3j,__snippet___snippet_replayCaption_hb0fv7_1wdwc3j,__snippet_Replay_1wdwc3j,__snippet___snippet_useInView_hb0fv7_1wdwc3j,__snippet_useInView_1wdwc3j,__snippet___snippet_reducedMotion_hb0fv7_1wdwc3j,__snippet_reducedMotion_1wdwc3j,__snippet___snippet_fmtTime_hb0fv7_1wdwc3j,__snippet___snippet_posterIndex_hb0fv7_1wdwc3j,__snippet___snippet_ratio_hb0fv7_1wdwc3j,__snippet___snippet_checkIcon_hb0fv7_1wdwc3j,__snippet___snippet_cursorIcon_hb0fv7_1wdwc3j,__snippet___snippet_where_hb0fv7_1wdwc3j,__snippet___snippet_ReplayScreen_hb0fv7_1wdwc3j,__snippet_ReplayScreen_1wdwc3j,__snippet___snippet_laneCaption_hb0fv7_1wdwc3j,__snippet_AgentTree_1wdwc3j,__snippet_useActive_1wdwc3j,__snippet_useTicker_1wdwc3j,__snippet_CHROME_STORE_1wdwc3j,__snippet_AGENTS_KEY_1wdwc3j,__snippet_MODELS_KEY_1wdwc3j,__snippet_PILL_1wdwc3j,__snippet_PRIMARY_1wdwc3j,__snippet_SECONDARY_1wdwc3j,__snippet_MUTED_1wdwc3j,__snippet_STRONG_1wdwc3j,__snippet_Buttons_1wdwc3j,__snippet_Pill_1wdwc3j,__snippet_TABS_1wdwc3j,__snippet_SOFT_1wdwc3j,__snippet_ARROW_1wdwc3j,__snippet_TextLinks_1wdwc3j,__snippet_H2_1wdwc3j,__snippet_Head_1wdwc3j,__snippet_Spread_1wdwc3j,__snippet_SpreadText_1wdwc3j,__snippet_HOME_CASES_1wdwc3j,__snippet_UseCases_1wdwc3j,__snippet_RowHead_1wdwc3j,__snippet_Columns_1wdwc3j,__snippet_DIRECTORY_1wdwc3j,__snippet_Directory_1wdwc3j,__snippet_Sub_1wdwc3j,__snippet_AgentsSection_1wdwc3j,__snippet_ICON_1wdwc3j,__snippet_Icon_1wdwc3j,__snippet_PLATFORM_NAV_1wdwc3j,__snippet_PLATFORM_ACTIONS_1wdwc3j,__snippet_PLATFORM_NEW_1wdwc3j,__snippet_PLATFORM_SESSIONS_1wdwc3j,__snippet_HAIRLINE_1wdwc3j,__snippet_Checkbox_1wdwc3j,__snippet_Status_1wdwc3j,__snippet_SessionRow_1wdwc3j,__snippet_PlatformMock_1wdwc3j,__snippet_PLATFORM_FEATURES_1wdwc3j,__snippet_PlatformSection_1wdwc3j,__snippet_CAPABILITIES_1wdwc3j,__snippet_OSWORLD_1wdwc3j,__snippet_ModelCard_1wdwc3j,__snippet_ModelsSection_1wdwc3j,__snippet_CLI_TASK_1wdwc3j,__snippet_CLI_STORIES_1wdwc3j,__snippet_CLI_DELAYS_1wdwc3j,__snippet_Terminal_1wdwc3j,__snippet_App_1wdwc3j,__snippet_AppsSection_1wdwc3j,__snippet_DotField_1wdwc3j,__snippet_Shot_1wdwc3j,__snippet_AgentsTile_1wdwc3j,__snippet_BLENDER_1wdwc3j,__snippet_ModelsTile_1wdwc3j,__snippet_WEIGHTS_1wdwc3j,__snippet_WeightsTile_1wdwc3j,__snippet_TILES_1wdwc3j,__snippet_Tiles_1wdwc3j,Home,default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"codeStyling":"system","config":{},"pageMetadata":{"title":"H Platform Docs","description":"Run computer-use agents in a cloud browser or on a desktop with the Agents API, build your own agent on Holo models, or run Holo on your own machine.","mode":"wide","timestamp":false,"keywords":["computer-use agent","browser automation API","agent model API","Holo","H Company","desktop automation"],"href":"/index"}}}},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/hcompany/b9a6b4d28fcc01b3/axeptio.js","/_mintlify/custom/hcompany/1c60e2932fa0fb6d/quickstart-link.js","/_mintlify/custom/hcompany/9eeb68f483646186/theme-toggle.js"],"dynamicCss":".mint-pointer-events-none {\n pointer-events: none\n}\n.mint-absolute {\n position: absolute\n}\n.mint-relative {\n position: relative\n}\n.mint-inset-0 {\n inset: 0px\n}\n.mint--bottom-px {\n bottom: -1px\n}\n.mint--left-2 {\n left: -0.5rem\n}\n.mint--left-3 {\n left: -0.75rem\n}\n.mint--left-5 {\n left: -1.25rem\n}\n.mint--top-2 {\n top: -0.5rem\n}\n.mint--top-3 {\n top: -0.75rem\n}\n.mint--top-5 {\n top: -1.25rem\n}\n.mint-bottom-2 {\n bottom: 0.5rem\n}\n.mint-bottom-3 {\n bottom: 0.75rem\n}\n.mint-bottom-4 {\n bottom: 1rem\n}\n.mint-left-0 {\n left: 0px\n}\n.mint-left-2 {\n left: 0.5rem\n}\n.mint-right-2 {\n right: 0.5rem\n}\n.mint-right-4 {\n right: 1rem\n}\n.mint-top-4 {\n top: 1rem\n}\n.mint-z-10 {\n z-index: 10\n}\n.mint-z-20 {\n z-index: 20\n}\n.mint-m-0 {\n margin: 0px\n}\n.mint-mx-0\\.5 {\n margin-left: 0.125rem;\n margin-right: 0.125rem\n}\n.mint-mx-auto {\n margin-left: auto;\n margin-right: auto\n}\n.mint-my-6 {\n margin-top: 1.5rem;\n margin-bottom: 1.5rem\n}\n.mint-mb-1 {\n margin-bottom: 0.25rem\n}\n.mint-mb-2 {\n margin-bottom: 0.5rem\n}\n.mint-mb-4 {\n margin-bottom: 1rem\n}\n.mint-mb-6 {\n margin-bottom: 1.5rem\n}\n.mint-mb-8 {\n margin-bottom: 2rem\n}\n.mint-ml-3 {\n margin-left: 0.75rem\n}\n.mint-ml-auto {\n margin-left: auto\n}\n.mint-mt-0\\.5 {\n margin-top: 0.125rem\n}\n.mint-mt-1 {\n margin-top: 0.25rem\n}\n.mint-mt-10 {\n margin-top: 2.5rem\n}\n.mint-mt-12 {\n margin-top: 3rem\n}\n.mint-mt-2 {\n margin-top: 0.5rem\n}\n.mint-mt-24 {\n margin-top: 6rem\n}\n.mint-mt-3 {\n margin-top: 0.75rem\n}\n.mint-mt-4 {\n margin-top: 1rem\n}\n.mint-mt-5 {\n margin-top: 1.25rem\n}\n.mint-mt-6 {\n margin-top: 1.5rem\n}\n.mint-mt-8 {\n margin-top: 2rem\n}\n.mint-block {\n display: block\n}\n.mint-inline-block {\n display: inline-block\n}\n.mint-flex {\n display: flex\n}\n.mint-inline-flex {\n display: inline-flex\n}\n.mint-grid {\n display: grid\n}\n.mint-hidden {\n display: none\n}\n.mint-aspect-\\[16\\/10\\] {\n aspect-ratio: 16/10\n}\n.mint-h-1\\.5 {\n height: 0.375rem\n}\n.mint-h-10 {\n height: 2.5rem\n}\n.mint-h-2\\.5 {\n height: 0.625rem\n}\n.mint-h-3 {\n height: 0.75rem\n}\n.mint-h-4 {\n height: 1rem\n}\n.mint-h-5 {\n height: 1.25rem\n}\n.mint-h-6 {\n height: 1.5rem\n}\n.mint-h-7 {\n height: 1.75rem\n}\n.mint-h-full {\n height: 100%\n}\n.mint-h-px {\n height: 1px\n}\n.mint-min-h-0 {\n min-height: 0px\n}\n.mint-min-h-\\[1\\.5rem\\] {\n min-height: 1.5rem\n}\n.mint-w-1\\.5 {\n width: 0.375rem\n}\n.mint-w-10 {\n width: 2.5rem\n}\n.mint-w-2\\.5 {\n width: 0.625rem\n}\n.mint-w-20 {\n width: 5rem\n}\n.mint-w-3 {\n width: 0.75rem\n}\n.mint-w-4 {\n width: 1rem\n}\n.mint-w-5 {\n width: 1.25rem\n}\n.mint-w-6 {\n width: 1.5rem\n}\n.mint-w-full {\n width: 100%\n}\n.mint-w-max {\n width: max-content\n}\n.mint-min-w-0 {\n min-width: 0px\n}\n.mint-max-w-2xl {\n max-width: 42rem\n}\n.mint-max-w-3xl {\n max-width: 48rem\n}\n.mint-max-w-6xl {\n max-width: 72rem\n}\n.mint-max-w-\\[calc\\(100\\%-16px\\)\\] {\n max-width: calc(100% - 16px)\n}\n.mint-max-w-full {\n max-width: 100%\n}\n.mint-max-w-xl {\n max-width: 36rem\n}\n.mint-flex-1 {\n flex: 1 1 0%\n}\n.mint-shrink-0 {\n flex-shrink: 0\n}\n@keyframes mint-pulse {\n 50% {\n opacity: .5\n }\n}\n.mint-animate-pulse {\n animation: mint-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite\n}\n.mint-cursor-pointer {\n cursor: pointer\n}\n.mint-list-none {\n list-style-type: none\n}\n.mint-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr))\n}\n.mint-grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr))\n}\n.mint-flex-col {\n flex-direction: column\n}\n.mint-flex-wrap {\n flex-wrap: wrap\n}\n.mint-items-center {\n align-items: center\n}\n.mint-items-baseline {\n align-items: baseline\n}\n.mint-justify-center {\n justify-content: center\n}\n.mint-justify-between {\n justify-content: space-between\n}\n.mint-gap-1 {\n gap: 0.25rem\n}\n.mint-gap-1\\.5 {\n gap: 0.375rem\n}\n.mint-gap-2 {\n gap: 0.5rem\n}\n.mint-gap-2\\.5 {\n gap: 0.625rem\n}\n.mint-gap-3 {\n gap: 0.75rem\n}\n.mint-gap-4 {\n gap: 1rem\n}\n.mint-gap-x-10 {\n column-gap: 2.5rem\n}\n.mint-gap-x-3 {\n column-gap: 0.75rem\n}\n.mint-gap-x-6 {\n column-gap: 1.5rem\n}\n.mint-gap-x-8 {\n column-gap: 2rem\n}\n.mint-gap-y-16 {\n row-gap: 4rem\n}\n.mint-gap-y-2 {\n row-gap: 0.5rem\n}\n.mint-gap-y-4 {\n row-gap: 1rem\n}\n.mint-gap-y-6 {\n row-gap: 1.5rem\n}\n.mint-gap-y-8 {\n row-gap: 2rem\n}\n.mint-divide-y > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-y-reverse: 0;\n border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));\n border-bottom-width: calc(1px * var(--tw-divide-y-reverse))\n}\n.mint-divide-zinc-200 > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-opacity: 1;\n border-color: rgb(228 228 231 / var(--tw-divide-opacity, 1))\n}\n.mint-overflow-hidden {\n overflow: hidden\n}\n.mint-overflow-x-auto {\n overflow-x: auto\n}\n.mint-truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap\n}\n.mint-whitespace-nowrap {\n white-space: nowrap\n}\n.mint-whitespace-pre-wrap {\n white-space: pre-wrap\n}\n.mint-rounded-2xl {\n border-radius: 1rem\n}\n.mint-rounded-\\[3px\\] {\n border-radius: 3px\n}\n.mint-rounded-full {\n border-radius: 9999px\n}\n.mint-rounded-lg {\n border-radius: 0.5rem\n}\n.mint-rounded-md {\n border-radius: 0.375rem\n}\n.mint-border {\n border-width: 1px\n}\n.mint-border-2 {\n border-width: 2px\n}\n.mint-border-b {\n border-bottom-width: 1px\n}\n.mint-border-r {\n border-right-width: 1px\n}\n.mint-border-t {\n border-top-width: 1px\n}\n.mint-border-emerald-200 {\n --tw-border-opacity: 1;\n border-color: rgb(167 243 208 / var(--tw-border-opacity, 1))\n}\n.mint-border-emerald-300 {\n --tw-border-opacity: 1;\n border-color: rgb(110 231 183 / var(--tw-border-opacity, 1))\n}\n.mint-border-violet-300 {\n --tw-border-opacity: 1;\n border-color: rgb(196 181 253 / var(--tw-border-opacity, 1))\n}\n.mint-border-violet-400 {\n --tw-border-opacity: 1;\n border-color: rgb(167 139 250 / var(--tw-border-opacity, 1))\n}\n.mint-border-zinc-100 {\n --tw-border-opacity: 1;\n border-color: rgb(244 244 245 / var(--tw-border-opacity, 1))\n}\n.mint-border-zinc-200 {\n --tw-border-opacity: 1;\n border-color: rgb(228 228 231 / var(--tw-border-opacity, 1))\n}\n.mint-border-zinc-900\\/50 {\n border-color: rgb(24 24 27 / 0.5)\n}\n.mint-bg-black {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1))\n}\n.mint-bg-emerald-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(236 253 245 / var(--tw-bg-opacity, 1))\n}\n.mint-bg-emerald-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(16 185 129 / var(--tw-bg-opacity, 1))\n}\n.mint-bg-transparent {\n background-color: transparent\n}\n.mint-bg-violet-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(139 92 246 / var(--tw-bg-opacity, 1))\n}\n.mint-bg-violet-500\\/30 {\n background-color: rgb(139 92 246 / 0.3)\n}\n.mint-bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1))\n}\n.mint-bg-white\\/10 {\n background-color: rgb(255 255 255 / 0.1)\n}\n.mint-bg-zinc-100 {\n --tw-bg-opacity: 1;\n background-color: rgb(244 244 245 / var(--tw-bg-opacity, 1))\n}\n.mint-bg-zinc-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(250 250 250 / var(--tw-bg-opacity, 1))\n}\n.mint-bg-zinc-900 {\n --tw-bg-opacity: 1;\n background-color: rgb(24 24 27 / var(--tw-bg-opacity, 1))\n}\n.mint-bg-zinc-900\\/85 {\n background-color: rgb(24 24 27 / 0.85)\n}\n.mint-bg-zinc-900\\/90 {\n background-color: rgb(24 24 27 / 0.9)\n}\n.mint-fill-emerald-500 {\n fill: #10b981\n}\n.mint-object-contain {\n object-fit: contain\n}\n.mint-object-cover {\n object-fit: cover\n}\n.mint-p-0 {\n padding: 0px\n}\n.mint-p-3 {\n padding: 0.75rem\n}\n.mint-p-4 {\n padding: 1rem\n}\n.mint-p-5 {\n padding: 1.25rem\n}\n.mint-p-7 {\n padding: 1.75rem\n}\n.mint-px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem\n}\n.mint-px-2\\.5 {\n padding-left: 0.625rem;\n padding-right: 0.625rem\n}\n.mint-px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem\n}\n.mint-px-4 {\n padding-left: 1rem;\n padding-right: 1rem\n}\n.mint-px-5 {\n padding-left: 1.25rem;\n padding-right: 1.25rem\n}\n.mint-py-0\\.5 {\n padding-top: 0.125rem;\n padding-bottom: 0.125rem\n}\n.mint-py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem\n}\n.mint-py-1\\.5 {\n padding-top: 0.375rem;\n padding-bottom: 0.375rem\n}\n.mint-py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem\n}\n.mint-py-2\\.5 {\n padding-top: 0.625rem;\n padding-bottom: 0.625rem\n}\n.mint-py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem\n}\n.mint-pb-10 {\n padding-bottom: 2.5rem\n}\n.mint-pb-2 {\n padding-bottom: 0.5rem\n}\n.mint-pl-1 {\n padding-left: 0.25rem\n}\n.mint-pr-3 {\n padding-right: 0.75rem\n}\n.mint-pr-4 {\n padding-right: 1rem\n}\n.mint-pt-4 {\n padding-top: 1rem\n}\n.mint-pt-5 {\n padding-top: 1.25rem\n}\n.mint-text-left {\n text-align: left\n}\n.mint-font-mono {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace\n}\n.mint-text-2xl {\n font-size: 1.5rem;\n line-height: 2rem\n}\n.mint-text-3xl {\n font-size: 1.875rem;\n line-height: 2.25rem\n}\n.mint-text-\\[10\\.5px\\] {\n font-size: 10.5px\n}\n.mint-text-\\[10px\\] {\n font-size: 10px\n}\n.mint-text-\\[11px\\] {\n font-size: 11px\n}\n.mint-text-\\[12px\\] {\n font-size: 12px\n}\n.mint-text-\\[13px\\] {\n font-size: 13px\n}\n.mint-text-\\[15px\\] {\n font-size: 15px\n}\n.mint-text-\\[8px\\] {\n font-size: 8px\n}\n.mint-text-base {\n font-size: 1rem;\n line-height: 1.5rem\n}\n.mint-text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem\n}\n.mint-text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem\n}\n.mint-text-xs {\n font-size: 0.75rem;\n line-height: 1rem\n}\n.mint-font-medium {\n font-weight: 500\n}\n.mint-font-normal {\n font-weight: 400\n}\n.mint-font-semibold {\n font-weight: 600\n}\n.mint-tabular-nums {\n --tw-numeric-spacing: tabular-nums;\n font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)\n}\n.mint-leading-5 {\n line-height: 1.25rem\n}\n.mint-leading-6 {\n line-height: 1.5rem\n}\n.mint-leading-7 {\n line-height: 1.75rem\n}\n.mint-leading-8 {\n line-height: 2rem\n}\n.mint-leading-relaxed {\n line-height: 1.625\n}\n.mint-tracking-tight {\n letter-spacing: -0.025em\n}\n.mint-text-emerald-700 {\n --tw-text-opacity: 1;\n color: rgb(4 120 87 / var(--tw-text-opacity, 1))\n}\n.mint-text-violet-700 {\n --tw-text-opacity: 1;\n color: rgb(109 40 217 / var(--tw-text-opacity, 1))\n}\n.mint-text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1))\n}\n.mint-text-zinc-300 {\n --tw-text-opacity: 1;\n color: rgb(212 212 216 / var(--tw-text-opacity, 1))\n}\n.mint-text-zinc-400 {\n --tw-text-opacity: 1;\n color: rgb(161 161 170 / var(--tw-text-opacity, 1))\n}\n.mint-text-zinc-500 {\n --tw-text-opacity: 1;\n color: rgb(113 113 122 / var(--tw-text-opacity, 1))\n}\n.mint-text-zinc-600 {\n --tw-text-opacity: 1;\n color: rgb(82 82 91 / var(--tw-text-opacity, 1))\n}\n.mint-text-zinc-700 {\n --tw-text-opacity: 1;\n color: rgb(63 63 70 / var(--tw-text-opacity, 1))\n}\n.mint-text-zinc-800 {\n --tw-text-opacity: 1;\n color: rgb(39 39 42 / var(--tw-text-opacity, 1))\n}\n.mint-text-zinc-900 {\n --tw-text-opacity: 1;\n color: rgb(24 24 27 / var(--tw-text-opacity, 1))\n}\n.mint-underline {\n text-decoration-line: underline\n}\n.mint-no-underline {\n text-decoration-line: none\n}\n.mint-decoration-zinc-300 {\n text-decoration-color: #d4d4d8\n}\n.mint-underline-offset-2 {\n text-underline-offset: 2px\n}\n.mint-opacity-100 {\n opacity: 1\n}\n.mint-opacity-40 {\n opacity: 0.4\n}\n.mint-shadow-\\[0_1px_2px_rgb\\(0_0_0\\/0\\.04\\)\\] {\n --tw-shadow: 0 1px 2px rgb(0 0 0/0.04);\n --tw-shadow-colored: 0 1px 2px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)\n}\n.mint-shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)\n}\n.mint-ring-1 {\n --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);\n --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);\n box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000)\n}\n.mint-ring-black\\/5 {\n --tw-ring-color: rgb(0 0 0 / 0.05)\n}\n.mint-transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms\n}\n.mint-transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms\n}\n.mint-transition-transform {\n transition-property: transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms\n}\n.mint-duration-200 {\n transition-duration: 200ms\n}\n.mint-duration-300 {\n transition-duration: 300ms\n}\n.mint-duration-500 {\n transition-duration: 500ms\n}\n.mint-ease-out {\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1)\n}\n.hover\\:mint-border-zinc-400:hover {\n --tw-border-opacity: 1;\n border-color: rgb(161 161 170 / var(--tw-border-opacity, 1))\n}\n.hover\\:mint-bg-white\\/15:hover {\n background-color: rgb(255 255 255 / 0.15)\n}\n.hover\\:mint-bg-zinc-200:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(228 228 231 / var(--tw-bg-opacity, 1))\n}\n.hover\\:mint-bg-zinc-700:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(63 63 70 / var(--tw-bg-opacity, 1))\n}\n.hover\\:mint-text-white:hover {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1))\n}\n.mint-group:hover .group-hover\\:mint-translate-x-0\\.5 {\n --tw-translate-x: 0.125rem;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))\n}\n.dark\\:mint-divide-white\\/10:is(.dark *) > :not([hidden]) ~ :not([hidden]) {\n border-color: rgb(255 255 255 / 0.1)\n}\n.dark\\:mint-divide-zinc-800:is(.dark *) > :not([hidden]) ~ :not([hidden]) {\n --tw-divide-opacity: 1;\n border-color: rgb(39 39 42 / var(--tw-divide-opacity, 1))\n}\n.dark\\:mint-border-emerald-500\\/30:is(.dark *) {\n border-color: rgb(16 185 129 / 0.3)\n}\n.dark\\:mint-border-emerald-500\\/40:is(.dark *) {\n border-color: rgb(16 185 129 / 0.4)\n}\n.dark\\:mint-border-violet-500\\/40:is(.dark *) {\n border-color: rgb(139 92 246 / 0.4)\n}\n.dark\\:mint-border-white\\/10:is(.dark *) {\n border-color: rgb(255 255 255 / 0.1)\n}\n.dark\\:mint-border-white\\/5:is(.dark *) {\n border-color: rgb(255 255 255 / 0.05)\n}\n.dark\\:mint-bg-emerald-500\\/10:is(.dark *) {\n background-color: rgb(16 185 129 / 0.1)\n}\n.dark\\:mint-bg-white:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1))\n}\n.dark\\:mint-bg-white\\/10:is(.dark *) {\n background-color: rgb(255 255 255 / 0.1)\n}\n.dark\\:mint-bg-zinc-900:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(24 24 27 / var(--tw-bg-opacity, 1))\n}\n.dark\\:mint-bg-zinc-950:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(9 9 11 / var(--tw-bg-opacity, 1))\n}\n.dark\\:mint-text-emerald-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(52 211 153 / var(--tw-text-opacity, 1))\n}\n.dark\\:mint-text-violet-300:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(196 181 253 / var(--tw-text-opacity, 1))\n}\n.dark\\:mint-text-zinc-100:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(244 244 245 / var(--tw-text-opacity, 1))\n}\n.dark\\:mint-text-zinc-200:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(228 228 231 / var(--tw-text-opacity, 1))\n}\n.dark\\:mint-text-zinc-300:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(212 212 216 / var(--tw-text-opacity, 1))\n}\n.dark\\:mint-text-zinc-400:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(161 161 170 / var(--tw-text-opacity, 1))\n}\n.dark\\:mint-text-zinc-50:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(250 250 250 / var(--tw-text-opacity, 1))\n}\n.dark\\:mint-text-zinc-500:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(113 113 122 / var(--tw-text-opacity, 1))\n}\n.dark\\:mint-text-zinc-600:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(82 82 91 / var(--tw-text-opacity, 1))\n}\n.dark\\:mint-text-zinc-900:is(.dark *) {\n --tw-text-opacity: 1;\n color: rgb(24 24 27 / var(--tw-text-opacity, 1))\n}\n.dark\\:mint-decoration-zinc-600:is(.dark *) {\n text-decoration-color: #52525b\n}\n.dark\\:mint-ring-white\\/10:is(.dark *) {\n --tw-ring-color: rgb(255 255 255 / 0.1)\n}\n.dark\\:hover\\:mint-border-white\\/25:hover:is(.dark *) {\n border-color: rgb(255 255 255 / 0.25)\n}\n.dark\\:hover\\:mint-bg-white\\/15:hover:is(.dark *) {\n background-color: rgb(255 255 255 / 0.15)\n}\n.dark\\:hover\\:mint-bg-zinc-200:hover:is(.dark *) {\n --tw-bg-opacity: 1;\n background-color: rgb(228 228 231 / var(--tw-bg-opacity, 1))\n}\n@media (min-width: 640px) {\n .sm\\:mint-inline {\n display: inline\n }\n .sm\\:mint-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr))\n }\n .sm\\:mint-grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr))\n }\n .sm\\:mint-p-5 {\n padding: 1.25rem\n }\n .sm\\:mint-p-8 {\n padding: 2rem\n }\n .sm\\:mint-px-7 {\n padding-left: 1.75rem;\n padding-right: 1.75rem\n }\n .sm\\:mint-px-8 {\n padding-left: 2rem;\n padding-right: 2rem\n }\n .sm\\:mint-text-\\[11px\\] {\n font-size: 11px\n }\n .sm\\:mint-text-\\[2\\.75rem\\] {\n font-size: 2.75rem\n }\n .sm\\:mint-text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem\n }\n .sm\\:mint-text-xs {\n font-size: 0.75rem;\n line-height: 1rem\n }\n .sm\\:mint-leading-\\[1\\.1\\] {\n line-height: 1.1\n }\n}\n@media (min-width: 768px) {\n .md\\:mint-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr))\n }\n .md\\:mint-grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr))\n }\n}\n@media (min-width: 1024px) {\n .lg\\:mint-mt-0 {\n margin-top: 0px\n }\n .lg\\:mint-mt-32 {\n margin-top: 8rem\n }\n .lg\\:mint-grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr))\n }\n}","subdomain":"hcompany","siteName":"H Platform Docs","title":"H Platform Docs - H Platform Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T02:40:40.978Z","gitLastModified":"2026-09-11T00:27:53.000Z","originalFileLocation":"index.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Run computer-use agents in a cloud browser or on a desktop with the Agents API, build your own agent on Holo models, or run Holo on your own machine.\">\u003cmeta data-mint-head name=\"application-name\" content=\"H Platform Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/hcompany/nM3pPP_yLXYJU6-f/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/hcompany/nM3pPP_yLXYJU6-f/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hcompany/nM3pPP_yLXYJU6-f/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/hcompany/nM3pPP_yLXYJU6-f/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/hcompany/nM3pPP_yLXYJU6-f/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/hcompany/nM3pPP_yLXYJU6-f/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hcompany/nM3pPP_yLXYJU6-f/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/hcompany/nM3pPP_yLXYJU6-f/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/hcompany/nM3pPP_yLXYJU6-f/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"H Platform Docs - H Platform Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Run computer-use agents in a cloud browser or on a desktop with the Agents API, build your own agent on Holo models, or run Holo on your own machine.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"H Platform Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://hub.hcompany.ai\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://hcompany.mintlify.app/_mintlify/api/og/v2?division=Documentation\u0026amp;title=H+Platform+Docs\u0026amp;description=Run+computer-use+agents+in+a+cloud+browser+or+on+a+desktop+with+the+Agents+API%2C+build+your+own+agent+on+Holo+models%2C+or+run+Holo+on+your+own+machine.\u0026amp;theme=9d3dc488e2fa0cd0bf2f06fd\u0026amp;signature=de962f35bc95202baa90daabd135dc48e3d75285343c95bb7913dfec9aaa5a48\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"H Platform Docs - H Platform Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Run computer-use agents in a cloud browser or on a desktop with the Agents API, build your own agent on Holo models, or run Holo on your own machine.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://hcompany.mintlify.app/_mintlify/api/og/v2?division=Documentation\u0026amp;title=H+Platform+Docs\u0026amp;description=Run+computer-use+agents+in+a+cloud+browser+or+on+a+desktop+with+the+Agents+API%2C+build+your+own+agent+on+Holo+models%2C+or+run+Holo+on+your+own+machine.\u0026amp;theme=9d3dc488e2fa0cd0bf2f06fd\u0026amp;signature=de962f35bc95202baa90daabd135dc48e3d75285343c95bb7913dfec9aaa5a48\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/hcompany/nM3pPP_yLXYJU6-f/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"H Platform Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1d1d1f\">\u003cmeta data-mint-head name=\"og:locale\" content=\"en_US\">\u003clink data-mint-head rel=\"canonical\" href=\"https://hub.hcompany.ai\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/index.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://hcompany.ai/#organization\",\"name\":\"H Company\",\"url\":\"https://hcompany.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/hcompany/L5LqOFzmZLEQxpJC/images/logo-light.svg?fit=max\u0026auto=format\u0026n=L5LqOFzmZLEQxpJC\u0026q=85\u0026s=ebe486aac40d915a9131cabe585cd546\"},\"sameAs\":[\"https://x.com/hcompany_ai\",\"https://www.linkedin.com/company/h-company-ai\",\"https://github.com/hcompai\",\"https://huggingface.co/Hcompany\"]},{\"@type\":\"WebSite\",\"@id\":\"https://hub.hcompany.ai#website\",\"name\":\"H Platform Docs\",\"url\":\"https://hub.hcompany.ai\",\"publisher\":{\"@id\":\"https://hcompany.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://hub.hcompany.ai/#webpage\",\"url\":\"https://hub.hcompany.ai/\",\"name\":\"H Platform Docs\",\"description\":\"Run computer-use agents in a cloud browser or on a desktop with the Agents API, build your own agent on Holo models, or run Holo on your own machine.\",\"dateModified\":\"2026-09-11T00:27:53.000Z\",\"isPartOf\":{\"@id\":\"https://hub.hcompany.ai#website\"}},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://hub.hcompany.ai/#article\",\"headline\":\"H Platform Docs\",\"name\":\"H Platform Docs\",\"description\":\"Run computer-use agents in a cloud browser or on a desktop with the Agents API, build your own agent on Holo models, or run Holo on your own machine.\",\"url\":\"https://hub.hcompany.ai/\",\"mainEntityOfPage\":{\"@id\":\"https://hub.hcompany.ai/#webpage\"},\"dateModified\":\"2026-09-11T00:27:53.000Z\",\"keywords\":\"computer-use agent, browser automation API, agent model API, Holo, H Company, desktop automation\",\"publisher\":{\"@id\":\"https://hcompany.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://hub.hcompany.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"H Platform Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"H Platform Docs","nav":{"global":null,"tabs":[{"tab":"Welcome","hidden":true,"searchable":true,"pages":[{"title":"H Platform Docs","mode":"wide","href":""}]},{"tab":"Agents API","pages":[{"title":"Agents API","href":"/agents-api/overview"}]},{"tab":"Models API","pages":[{"title":"Models API","href":"/models-api/overview"}]},{"tab":"Holo CLI","pages":[{"title":"Holo CLI","href":"/holo-cli/introduction"}]},{"tab":"HoloTab","pages":[{"title":"HoloTab","href":"/holotab/introduction"}]},{"tab":"Docs MCP","hidden":true,"searchable":true,"pages":[{"title":"Docs MCP","href":"/docs-mcp-server"}]}]},"title":"H Platform Docs - H Platform Docs","buildId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","deploymentId":"dpl_EnxDqhjaNc9a8MVa833TGULPd9uJ","dynamics":[],"chunks":[]}