n1.5-latest (or a dated version) in the model field of your chat.completions requests.
Model Versions
Supported Actions
Core Tools
The default tool set (browser_tools_core-20260403). 18 coordinate-based browser tools.
Parameter notes:
coordinatesis always[x, y]in the normalized 1000x1000 space.refis an optional DOM element reference, used as an alternative to coordinates in browser contexts.modifieris a modifier key held during the action:ctrl,shift,alt,meta,command, orsuper.directionfor scroll is one of:down,up,left,right.amountfor scroll is an integer where 1 unit is approximately 10% of the screen height.
Expanded Browser Tools
Includes all core tools plus DOM/ref-based extras (browser_tools_expanded-20260403):
Like every Navigator tool, these are predicted by the model and executed by your client — the API never touches your browser. What’s specific to the expanded tools is how you execute them: instead of mapping to a Playwright primitive (click, type, scroll), each one needs custom JavaScript evaluated against the page (e.g., via
page.evaluate()). The result comes back as a tool message in the next request.Reference Implementation
The Yutori Python SDK bundles a reference implementation for each tool, along with an async helper that evaluates them against a Playwright page. Import the script constants andevaluate_tool_script from yutori.navigator.tools:
The helper
evaluate_tool_script(page, SCRIPT, *args) JSON-serializes its arguments, evaluates the script against the page, and returns a Python dict. Three common patterns:
examples/navigator_n1_5.py in the SDK.
Key Space
Navigator n1.5 uses lowercase key names. Combinations are joined with+, and sequential presses are separated by spaces.
Examples:
ctrl+c, ctrl+shift+t, alt+left, down down down enter
Coordinate System
n1.5 outputs normalized coordinates in a 1000×1000 space, origin top-left. Scale them to the real pixel size of the browser viewport before executing an action — the model is never told the resolution.yutori.navigator.coordinates for the inverse normalize_coordinates function.
Features
Tool Sets
Use thetool_set parameter to select which set of browser tools are available to the model:
browser_tools_core-20260403(default) — coordinate-based visual browser toolsbrowser_tools_expanded-20260403— core + DOM-based tools (extract_elements,find,set_element_value,execute_js)
Disabling Specific Tools
Remove specific tools from the active tool set:JSON Structured Output
Provide ajson_schema to get structured data extracted from the model’s response. The schema is appended to your task message, and the model returns JSON inside ```json code fences. The API parses this and returns it as a parsed_json field.
json_schema is provided, the API also adds a structural tag for guided decoding of the JSON output, constraining it to match your schema.
If the model doesn’t return valid JSON (e.g., it’s still navigating), the parsed_json field will not be present in the response.
Multi-Turn Conversations
The Python SDK providescreate_trimmed / acreate_trimmed (in yutori.navigator) which strip older screenshots automatically while preserving recent ones and all text — by default keeping the 6 most recent screenshots (and always the latest), and only trimming when a request would otherwise exceed the size limit.
Do not drop messages — the model uses its own action history to avoid repeating work. Keep at least the 2 most recent screenshots, and never send a request with no screenshot at all; stale-only or screenshot-free requests sharply degrade grounding and can make the model loop.
Include the assistant’s previous response with its tool_calls, followed by tool results with the new screenshot:
extract_elements, execute_js), the raw output of the tool can be provided as the tool result so the model also has visibility of the extracted information.
Screenshot Requirements
Screenshots should capture only the browser content itself. Do not include the operating system UI, window title bars, browser tabs, URL bars, or other chrome elements. For the best performance, render screenshots in WXGA (1280×800, 16:10). The model should generalize well to most other resolutions, but grounding accuracy may degrade with extreme aspect ratios. We recommend using the WebP format for screenshots, as it offers significantly better compression than PNG — especially for multi-step trajectories with many images. The Python SDK provides helpers that handle resizing, WebP conversion, and base64 encoding:yutori.navigator.images for full options (custom resolution, quality settings).
Custom Tools
You can provide additional tools alongside the built-in browser actions using thetools parameter. Custom tools are appended after the default tool set.
Tool Choice
Control whether tool calls are parsed into thetool_calls array:
"auto"(default): Parses and returns tool calls as a structuredtool_callslist"none": Returns the raw model response as content text (tool calls may still appear inside<tool_call>XML tags in content)
Structured Decoding
By default, the API uses astructural_tag response format to enforce valid tool call generation via guided decoding. You do not need to provide this yourself — the API generates it automatically based on the active model and tool set. If custom tools are included in your request, their schemas are automatically incorporated.
We do not recommend overriding the response_format unless you also set tool_choice="none" to work with the raw model output directly.