Tools
рдмреНрд░рд╛рдЙрдЬрд╝рд░ (OpenClaw-рдкреНрд░рдмрдВрдзрд┐рдд)
OpenClaw рдПрдХ рд╕рдорд░реНрдкрд┐рдд Chrome/Brave/Edge/Chromium рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдПрдЬреЗрдВрдЯ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЗ рдирд┐рдЬреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдЕрд▓рдЧ-рдерд▓рдЧ рд╣реЛрддреА рд╣реИ рдФрд░ Gateway рдХреЗ рдЕрдВрджрд░ рдПрдХ рдЫреЛрдЯреА рд╕реНрдерд╛рдиреАрдп рдирд┐рдпрдВрддреНрд░рдг рд╕реЗрд╡рд╛ рдХреЗ рдЬрд╝рд░рд┐рдП рдкреНрд░рдмрдВрдзрд┐рдд рд╣реЛрддреА рд╣реИ (рдХреЗрд╡рд▓ loopback)ред
рд╢реБрд░реБрдЖрддреА рджреГрд╖реНрдЯрд┐:
- рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ, рдХреЗрд╡рд▓-рдПрдЬреЗрдВрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдордЭреЗрдВред
openclawрдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЖрдкрдХреА рдирд┐рдЬреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд╣реАрдВ рдЫреВрддреАред- рдПрдЬреЗрдВрдЯ рд╕реБрд░рдХреНрд╖рд┐рдд рд▓реЗрди рдореЗрдВ рдЯреИрдм рдЦреЛрд▓ рд╕рдХрддрд╛ рд╣реИ, рдкреЗрдЬ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ, рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЯрд╛рдЗрдк рдХрд░ рд╕рдХрддрд╛ рд╣реИред
- рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд
userрдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ Chrome MCP рдХреЗ рдЬрд╝рд░рд┐рдП рдЖрдкрдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд╛рдЗрди-рдЗрди Chrome рд╕рддреНрд░ рд╕реЗ рдЬреБрдбрд╝рддреА рд╣реИред
рдЖрдкрдХреЛ рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ
- openclaw рдирд╛рдо рдХреА рдПрдХ рдЕрд▓рдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд╛рд░рдВрдЧреА рдПрдХреНрд╕реЗрдВрдЯ)ред
- рдирд┐рдпрддрд╛рддреНрдордХ рдЯреИрдм рдирд┐рдпрдВрддреНрд░рдг (рд╕реВрдЪреА/рдЦреЛрд▓рдирд╛/рдлрд╝реЛрдХрд╕/рдмрдВрдж рдХрд░рдирд╛)ред
- рдПрдЬреЗрдВрдЯ рдХреНрд░рд┐рдпрд╛рдПрдБ (рдХреНрд▓рд┐рдХ/рдЯрд╛рдЗрдк/рдбреНрд░реИрдЧ/рдЪрдпрди), рд╕реНрдиреИрдкрд╢реЙрдЯ, рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ, PDFред
- рдПрдХ рдмрдВрдбрд▓ рдХреА рдЧрдИ
browser-automationskill рдЬреЛ рдПрдЬреЗрдВрдЯреЛрдВ рдХреЛ рд╕реНрдиреИрдкрд╢реЙрдЯ, рд╕реНрдерд┐рд░-рдЯреИрдм, stale-ref, рдФрд░ рдореИрдиреБрдЕрд▓-рдмреНрд▓реЙрдХрд░ рд░рд┐рдХрд╡рд░реА рд▓реВрдк рд╕рд┐рдЦрд╛рддреА рд╣реИ рдЬрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ plugin рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИред - рд╡реИрдХрд▓реНрдкрд┐рдХ рдорд▓реНрдЯреА-рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╕рдорд░реНрдерди (
openclaw,work,remote, ...)ред
рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЖрдкрдХрд╛ рджреИрдирд┐рдХ рдЙрдкрдпреЛрдЧ рд╡рд╛рд▓рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдЬреЗрдВрдЯ рдСрдЯреЛрдореЗрд╢рди рдФрд░ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд, рдЕрд▓рдЧ-рдерд▓рдЧ рд╕рддрд╣ рд╣реИред
рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд
openclaw browser --browser-profile openclaw doctoropenclaw browser --browser-profile openclaw doctor --deepopenclaw browser --browser-profile openclaw statusopenclaw browser --browser-profile openclaw startopenclaw browser --browser-profile openclaw open https://example.comopenclaw browser --browser-profile openclaw snapshotрдЕрдЧрд░ рдЖрдкрдХреЛ "Browser disabled" рдорд┐рд▓рддрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ) рдФрд░ Gateway рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВред
рдЕрдЧрд░ openclaw browser рдкреВрд░реА рддрд░рд╣ рдЧрд╛рдпрдм рд╣реИ, рдпрд╛ рдПрдЬреЗрдВрдЯ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯреВрд▓
рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИ, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдорд╛рдВрдб рдпрд╛ рдЯреВрд▓ рдЧрд╛рдпрдм рд╣реИ рдкрд░ рдЬрд╛рдПрдБред
Plugin рдирд┐рдпрдВрддреНрд░рдг
рдбрд┐рдлрд╝реЙрд▓реНрдЯ browser рдЯреВрд▓ рдПрдХ рдмрдВрдбрд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ plugin рд╣реИред рдЗрд╕реЗ рдХрд┐рд╕реА рдРрд╕реЗ рджреВрд╕рд░реЗ plugin рд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдХреНрд╖рдо рдХрд░реЗрдВ рдЬреЛ рд╡рд╣реА browser рдЯреВрд▓ рдирд╛рдо рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рддрд╛ рд╣реИ:
{ plugins: { entries: { browser: { enabled: false, }, }, },}рдбрд┐рдлрд╝реЙрд▓реНрдЯреНрд╕ рдХреЛ plugins.entries.browser.enabled рдФрд░ browser.enabled=true рджреЛрдиреЛрдВ рдЪрд╛рд╣рд┐рдПред рдХреЗрд╡рд▓ plugin рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ openclaw browser CLI, browser.request gateway рдореЗрдердб, рдПрдЬреЗрдВрдЯ рдЯреВрд▓, рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рд╕реЗрд╡рд╛ рдПрдХ рдЗрдХрд╛рдИ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдЯ рдЬрд╛рддреЗ рд╣реИрдВ; рдЖрдкрдХрд╛ browser.* рдХреЙрдиреНрдлрд╝рд┐рдЧ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд▓рд┐рдП рдмрд░рдХрд░рд╛рд░ рд░рд╣рддрд╛ рд╣реИред
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд▓рд┐рдП Gateway рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рддрд╛рдХрд┐ plugin рдЕрдкрдиреА рд╕реЗрд╡рд╛ рдлрд┐рд░ рд╕реЗ рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░ рд╕рдХреЗред
рдПрдЬреЗрдВрдЯ рдорд╛рд░реНрдЧрджрд░реНрд╢рди
рдЯреВрд▓-рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдиреЛрдЯ: tools.profile: "coding" рдореЗрдВ web_search рдФрд░
web_fetch рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдкреВрд░рд╛ browser рдЯреВрд▓ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред рдЕрдЧрд░ рдПрдЬреЗрдВрдЯ рдпрд╛ рдХреЛрдИ
spawned sub-agent рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдСрдЯреЛрдореЗрд╢рди рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗ, рддреЛ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓
рдЪрд░рдг рдкрд░ browser рдЬреЛрдбрд╝реЗрдВ:
{ tools: { profile: "coding", alsoAllow: ["browser"], },}рдПрдХрд▓ рдПрдЬреЗрдВрдЯ рдХреЗ рд▓рд┐рдП, agents.list[].tools.alsoAllow: ["browser"] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
tools.subagents.tools.allow: ["browser"] рдЕрдХреЗрд▓реЗ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ sub-agent
рдиреАрддрд┐ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЗ рдмрд╛рдж рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИред
рдмреНрд░рд╛рдЙрдЬрд╝рд░ plugin рдПрдЬреЗрдВрдЯ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХреЗ рджреЛ рд╕реНрддрд░ рднреЗрдЬрддрд╛ рд╣реИ:
browserрдЯреВрд▓ рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣рдореЗрд╢рд╛-рд╕рдХреНрд░рд┐рдп рдЕрдиреБрдмрдВрдз рд╣реЛрддрд╛ рд╣реИ: рд╕рд╣реА рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЪреБрдиреЗрдВ, refs рдХреЛ рдЙрд╕реА рдЯреИрдм рдкрд░ рд░рдЦреЗрдВ, рдЯреИрдм рд▓рдХреНрд╖реНрдпреАрдХрд░рдг рдХреЗ рд▓рд┐рдПtabId/labels рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдФрд░ рдмрд╣реБ-рдЪрд░рдгреАрдп рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ skill рд▓реЛрдб рдХрд░реЗрдВред- рдмрдВрдбрд▓ рдХреА рдЧрдИ
browser-automationskill рдореЗрдВ рд▓рдВрдмрд╛ рд╕рдВрдЪрд╛рд▓рди рд▓реВрдк рд╣реЛрддрд╛ рд╣реИ: рдкрд╣рд▓реЗ рд╕реНрдерд┐рддрд┐/рдЯреИрдм рдЬрд╛рдБрдЪреЗрдВ, рдХрд╛рд░реНрдп рдЯреИрдм рдХреЛ рд▓реЗрдмрд▓ рдХрд░реЗрдВ, рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдиреИрдкрд╢реЙрдЯ рд▓реЗрдВ, UI рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рдмрд╛рдж рдлрд┐рд░ рд╕реНрдиреИрдкрд╢реЙрдЯ рд▓реЗрдВ, stale refs рдХреЛ рдПрдХ рдмрд╛рд░ рд░рд┐рдХрд╡рд░ рдХрд░реЗрдВ, рдФрд░ login/2FA/captcha рдпрд╛ camera/microphone рдмреНрд▓реЙрдХрд░ рдХреЛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдореИрдиреБрдЕрд▓ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд░реВрдк рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВред
Plugin-рдмрдВрдбрд▓ Skills рдПрдЬреЗрдВрдЯ рдХреА рдЙрдкрд▓рдмреНрдз skills рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реЛрддреА рд╣реИрдВ рдЬрдм plugin рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИред рдкреВрд░реА skill рдирд┐рд░реНрджреЗрд╢рд╛рд╡рд▓реА рдорд╛рдВрдЧ рдкрд░ рд▓реЛрдб рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп turns рдкрд░ рдкреВрд░рд╛ рдЯреЛрдХрди рдЦрд░реНрдЪ рдирд╣реАрдВ рдЖрддрд╛ред
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдорд╛рдВрдб рдпрд╛ рдЯреВрд▓ рдЧрд╛рдпрдм рд╣реИ
рдЕрдЧрд░ рдЕрдкрдЧреНрд░реЗрдб рдХреЗ рдмрд╛рдж openclaw browser рдЕрдЬреНрдЮрд╛рдд рд╣реИ, browser.request рдЧрд╛рдпрдм рд╣реИ, рдпрд╛ рдПрдЬреЗрдВрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯреВрд▓ рдХреЛ рдЕрдиреБрдкрд▓рдмреНрдз рдмрддрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░рдг plugins.allow рд╕реВрдЪреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ browser рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреЛрдИ рд░реВрдЯ browser рдХреЙрдиреНрдлрд╝рд┐рдЧ рдмреНрд▓реЙрдХ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ рдЬреЛрдбрд╝реЗрдВ:
{ plugins: { allow: ["telegram", "browser"], },}рдПрдХ рд╕реНрдкрд╖реНрдЯ рд░реВрдЯ browser рдмреНрд▓реЙрдХ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП browser.enabled=true рдпрд╛ browser.profiles.<name>, рд╕реАрдорд┐рдд plugins.allow рдХреЗ рдЕрдВрддрд░реНрдЧрдд рднреА рдмрдВрдбрд▓ рдХрд┐рдП рдЧрдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ plugin рдХреЛ рд╕рдХреНрд░рд┐рдп рдХрд░рддрд╛ рд╣реИ, channel рдХреЙрдиреНрдлрд╝рд┐рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реБрдПред plugins.entries.browser.enabled=true рдФрд░ tools.alsoAllow: ["browser"] рдЕрдкрдиреЗ-рдЖрдк allowlist рд╕рджрд╕реНрдпрддрд╛ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдмрдирддреЗред plugins.allow рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╣рдЯрд╛рдиреЗ рд╕реЗ рднреА рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓реЗрдВ: openclaw рдмрдирд╛рдо user
openclaw: рдкреНрд░рдмрдВрдзрд┐рдд, рдЕрд▓рдЧ-рдерд▓рдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ (рдХреЛрдИ extension рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ)редuser: рдЖрдкрдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд╛рдЗрди-рдЗрди Chrome рд╕рддреНрд░ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд Chrome MCP attach рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ред
рдПрдЬреЗрдВрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯреВрд▓ рдХреЙрд▓ рдХреЗ рд▓рд┐рдП:
- рдбрд┐рдлрд╝реЙрд▓реНрдЯ: рдЕрд▓рдЧ-рдерд▓рдЧ
openclawрдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред - рдЬрдм рдореМрдЬреВрджрд╛ рд▓реЙрдЧ-рдЗрди рд╕рддреНрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрдВ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА attach рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЛ рдХреНрд▓рд┐рдХ/рд╕реНрд╡реАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╣реЛ, рддрдм
profile="user"рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред - рдЬрдм рдЖрдк рдХреЛрдИ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЛрдб рдЪрд╛рд╣рддреЗ рд╣реЛрдВ, рддреЛ
profileрд╕реНрдкрд╖реНрдЯ рдУрд╡рд░рд░рд╛рдЗрдб рд╣реИред
рдЕрдЧрд░ рдЖрдк рдкреНрд░рдмрдВрдзрд┐рдд рдореЛрдб рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ browser.defaultProfile: "openclaw" рд╕реЗрдЯ рдХрд░реЗрдВред
рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ ~/.openclaw/openclaw.json рдореЗрдВ рд░рд╣рддреА рд╣реИрдВред
{ browser: { enabled: true, // default: true ssrfPolicy: { // dangerouslyAllowPrivateNetwork: true, // opt in only for trusted private-network access // allowPrivateNetwork: true, // legacy alias // hostnameAllowlist: ["*.example.com", "example.com"], // allowedHostnames: ["localhost"], }, // cdpUrl: "http://127.0.0.1:18792", // legacy single-profile override remoteCdpTimeoutMs: 1500, // remote CDP HTTP timeout (ms) remoteCdpHandshakeTimeoutMs: 3000, // remote CDP WebSocket handshake timeout (ms) localLaunchTimeoutMs: 15000, // local managed Chrome discovery timeout (ms) localCdpReadyTimeoutMs: 8000, // local managed post-launch CDP readiness timeout (ms) actionTimeoutMs: 60000, // default browser act timeout (ms) tabCleanup: { enabled: true, // default: true idleMinutes: 120, // set 0 to disable idle cleanup maxTabsPerSession: 8, // set 0 to disable the per-session cap sweepMinutes: 5, }, defaultProfile: "openclaw", color: "#FF4500", headless: false, noSandbox: false, attachOnly: false, executablePath: "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser", profiles: { openclaw: { cdpPort: 18800, color: "#FF4500" }, work: { cdpPort: 18801, color: "#0066CC", headless: true, executablePath: "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome", }, user: { driver: "existing-session", attachOnly: true, color: "#00AA00", }, brave: { driver: "existing-session", attachOnly: true, userDataDir: "~/Library/Application Support/BraveSoftware/Brave-Browser", color: "#FB542B", }, remote: { cdpUrl: "http://10.0.0.42:9222", color: "#00AA00" }, }, },}рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд╡рд┐рдЬрд╝рди (рдХреЗрд╡рд▓-рдЯреЗрдХреНрд╕реНрдЯ рдореЙрдбрд▓ рд╕рдорд░реНрдерди)
рдЬрдм рдореБрдЦреНрдп рдореЙрдбрд▓ рдХреЗрд╡рд▓-рдЯреЗрдХреНрд╕реНрдЯ рд╣реЛ (рдХреЛрдИ vision/multimodal рд╕рдорд░реНрдерди рдирд╣реАрдВ), рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдРрд╕реЗ image blocks рд▓реМрдЯрд╛рддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореЙрдбрд▓ рдкрдврд╝ рдирд╣реАрдВ рд╕рдХрддрд╛ред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдореМрдЬреВрджрд╛ image-understanding рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдлрд┐рд░ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореАрдбрд┐рдпрд╛ рд╕рдордЭ рдХреЗ рд▓рд┐рдП рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ image model рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмреНрд░рд╛рдЙрдЬрд╝рд░-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореЙрдбрд▓ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреЛ рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред
{ tools: { media: { image: { models: [ { provider: "bytedance", model: "doubao-seed-2.0-pro" }, // Add fallback candidates; first success wins { provider: "openai", model: "gpt-4o" }, ], }, // Shared media models also work when tagged for image support. // models: [{ provider: "openai", model: "gpt-4o", capabilities: ["image"] }], }, }, agents: { defaults: { // Existing image-model defaults are also honored. // imageModel: { primary: "openai/gpt-4o" }, }, },}рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
- рдПрдЬреЗрдВрдЯ
browser screenshotрдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ тЖТ рдЫрд╡рд┐ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдбрд┐рд╕реНрдХ рдкрд░ рдХреИрдкреНрдЪрд░ рд╣реЛрддреА рд╣реИред - рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯреВрд▓ рдореМрдЬреВрджрд╛ image-understanding runtime рд╕реЗ рдкреВрдЫрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╡рд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП media image models, shared media models, image-model defaults, рдпрд╛ auth-backed image provider рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред
- vision model рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рд╡рд┐рд╡рд░рдг рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ
wrapExternalContent(prompt injection guard) рдХреЗ рд╕рд╛рде рд░реИрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдЬреЗрдВрдЯ рдХреЛ image block рдХреЗ рдмрдЬрд╛рдп text block рдХреЗ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред - рдЕрдЧрд░ image understanding рдЕрдиреБрдкрд▓рдмреНрдз рд╣реИ, рдЫреЛрдбрд╝реА рдЧрдИ рд╣реИ, рдпрд╛ рд╡рд┐рдлрд▓ рд╣реЛрддреА рд╣реИ, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореВрд▓ image block рд▓реМрдЯрд╛рдиреЗ рдкрд░ рд╡рд╛рдкрд╕ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдореЙрдбрд▓ fallbacks, timeouts, byte limits, profiles, рдФрд░ provider request settings рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ tools.media.image / tools.media.models рдлрд╝реАрд▓реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЕрдЧрд░ рд╕рдХреНрд░рд┐рдп рдореБрдЦреНрдп рдореЙрдбрд▓ рдкрд╣рд▓реЗ рд╕реЗ vision рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЛрдИ рд╕реНрдкрд╖реНрдЯ image understanding model рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ OpenClaw рд╕рд╛рдорд╛рдиреНрдп image result рд░рдЦрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдореБрдЦреНрдп рдореЙрдбрд▓ рд╕реАрдзреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдкрдврд╝ рд╕рдХреЗред
рдкреЛрд░реНрдЯ рдФрд░ рдкрд╣реБрдБрдЪ-рдпреЛрдЧреНрдпрддрд╛
- рдирд┐рдпрдВрддреНрд░рдг рд╕реЗрд╡рд╛
gateway.portрд╕реЗ рдирд┐рдХрд╛рд▓реЗ рдЧрдП рдкреЛрд░реНрдЯ рдкрд░ loopback рд╕реЗ bind рд╣реЛрддреА рд╣реИ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ18791= gateway + 2)редgateway.portрдпрд╛OPENCLAW_GATEWAY_PORTрдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдиреЗ рд╕реЗ рдЙрд╕реА рдкрд░рд┐рд╡рд╛рд░ рдореЗрдВ рдирд┐рдХрд╛рд▓реЗ рдЧрдП рдкреЛрд░реНрдЯ рд╢рд┐рдлреНрдЯ рд╣реЛрддреЗ рд╣реИрдВред - рд╕реНрдерд╛рдиреАрдп
openclawрдкреНрд░реЛрдлрд╝рд╛рдЗрд▓реЗрдВcdpPort/cdpUrlрдХреЛ рдЕрдкрдиреЗ-рдЖрдк рдЕрд╕рд╛рдЗрди рдХрд░рддреА рд╣реИрдВ; рдЗрдиреНрд╣реЗрдВ рдХреЗрд╡рд▓ remote CDP рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓реЛрдВ рдпрд╛ existing-session endpoint attach рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░реЗрдВредcdpUrlunset рд╣реЛрдиреЗ рдкрд░ рдкреНрд░рдмрдВрдзрд┐рдд рд╕реНрдерд╛рдиреАрдп CDP рдкреЛрд░реНрдЯ рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрддрд╛ рд╣реИред remoteCdpTimeoutMsremote рдФрд░attachOnlyCDP HTTP рдкрд╣реБрдБрдЪ-рдпреЛрдЧреНрдпрддрд╛ рдЬрд╛рдБрдЪреЛрдВ рдФрд░ рдЯреИрдм-рдЦреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ;remoteCdpHandshakeTimeoutMsрдЙрдирдХреЗ CDP WebSocket handshakes рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИредlocalLaunchTimeoutMsрд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд▓реЙрдиреНрдЪ рдХреА рдЧрдИ рдкреНрд░рдмрдВрдзрд┐рдд Chrome рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ CDP HTTP endpoint рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рдмрдЬрдЯ рд╣реИредlocalCdpReadyTimeoutMsрдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЦреЛрдЬреЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж CDP websocket readiness рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╡рд░реНрддреА рдмрдЬрдЯ рд╣реИред рдЗрдиреНрд╣реЗрдВ Raspberry Pi, рд▓реЛ-рдПрдВрдб VPS, рдпрд╛ рдкреБрд░рд╛рдиреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдмрдврд╝рд╛рдПрдБ рдЬрд╣рд╛рдБ Chromium рдзреАрд░реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдорд╛рди120000ms рддрдХ рдзрдирд╛рддреНрдордХ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП; рдЕрдорд╛рдиреНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧ рдорд╛рди рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред- рдмрд╛рд░-рдмрд╛рд░ рдкреНрд░рдмрдВрдзрд┐рдд Chrome launch/readiness рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЛ рдкреНрд░рддрд┐ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ circuit-broken рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрдИ рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рдмрд╛рдж, OpenClaw рд╣рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯреВрд▓ рдХреЙрд▓ рдкрд░ Chromium рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдирдП launch рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рдереЛрдбрд╝реА рджреЗрд░ рд░реЛрдХрддрд╛ рд╣реИред startup рд╕рдорд╕реНрдпрд╛ рдареАрдХ рдХрд░реЗрдВ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛ рддреЛ рдЙрд╕реЗ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ, рдпрд╛ рдорд░рдореНрдордд рдХреЗ рдмрд╛рдж Gateway рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВред
actionTimeoutMsрдмреНрд░рд╛рдЙрдЬрд╝рд░actрдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрдЬрдЯ рд╣реИ рдЬрдм callertimeoutMsрдкрд╛рд╕ рдирд╣реАрдВ рдХрд░рддрд╛ред client transport рдПрдХ рдЫреЛрдЯреА slack window рдЬреЛрдбрд╝рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд▓рдВрдмреЗ рдЗрдВрддрдЬрд╝рд╛рд░ HTTP boundary рдкрд░ timeout рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдкреВрд░реЗ рд╣реЛ рд╕рдХреЗрдВредtabCleanupprimary-agent рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рддреНрд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдЦреЛрд▓реЗ рдЧрдП рдЯреИрдм рдХреЗ рд▓рд┐рдП best-effort cleanup рд╣реИред Subagent, cron, рдФрд░ ACP lifecycle cleanup рдЕрднреА рднреА рд╕рддреНрд░ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЙрдирдХреЗ рд╕реНрдкрд╖реНрдЯ tracked tabs рдмрдВрдж рдХрд░рддрд╛ рд╣реИ; primary sessions рд╕рдХреНрд░рд┐рдп tabs рдХреЛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдпреЛрдЧреНрдп рд░рдЦрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ idle рдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд tracked tabs рдмрдВрдж рдХрд░рддреЗ рд╣реИрдВред
SSRF рдиреАрддрд┐
- рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдФрд░ рдЦреБрд▓реЗ-рдЯреИрдм рдХреЛ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕реЗ рдкрд╣рд▓реЗ SSRF-guarded рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЕрдВрддрд┐рдо
http(s)URL рдкрд░ best-effort рдлрд┐рд░ рд╕реЗ рдЬрд╛рдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред - strict SSRF рдореЛрдб рдореЗрдВ, remote CDP endpoint discovery рдФрд░
/json/versionprobes (cdpUrl) рднреА рдЬрд╛рдВрдЪреЗ рдЬрд╛рддреЗ рд╣реИрдВред - Gateway/provider
HTTP_PROXY,HTTPS_PROXY,ALL_PROXY, рдФрд░NO_PROXYenvironment variables OpenClaw-рдкреНрд░рдмрдВрдзрд┐рдд browser рдХреЛ рдЕрдкрдиреЗ-рдЖрдк proxy рдирд╣реАрдВ рдХрд░рддреЗред Managed Chrome рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд╕реАрдзреЗ launch рд╣реЛрддрд╛ рд╣реИ рддрд╛рдХрд┐ provider proxy settings browser SSRF checks рдХреЛ рдХрдордЬреЛрд░ рди рдХрд░реЗрдВред - OpenClaw-рдкреНрд░рдмрдВрдзрд┐рдд local CDP readiness probes рдФрд░ DevTools WebSocket connections рдареАрдХ launched loopback endpoint рдХреЗ рд▓рд┐рдП managed network proxy рдХреЛ bypass рдХрд░рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐
openclaw browser startрддрдм рднреА рдХрд╛рдо рдХрд░реЗ рдЬрдм operator proxy loopback egress рдХреЛ block рдХрд░рддрд╛ рд╣реЛред - managed browser рдХреЛ рд╣реА proxy рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
browser.extraArgsрдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдкрд╖реНрдЯ Chrome proxy flags рдкрд╛рд╕ рдХрд░реЗрдВ, рдЬреИрд╕реЗ--proxy-server=...рдпрд╛--proxy-pac-url=...ред strict SSRF рдореЛрдб explicit browser proxy routing рдХреЛ block рдХрд░рддрд╛ рд╣реИ, рдЬрдм рддрдХ private-network browser access рдЬрд╛рдирдмреВрдЭрдХрд░ enable рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред browser.ssrfPolicy.dangerouslyAllowPrivateNetworkрдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ off рд╣реИ; рдХреЗрд╡рд▓ рддрдм enable рдХрд░реЗрдВ рдЬрдм private-network browser access рдХреЛ рдЬрд╛рдирдмреВрдЭрдХрд░ trusted рдорд╛рдирд╛ рдЧрдпрд╛ рд╣реЛредbrowser.ssrfPolicy.allowPrivateNetworklegacy alias рдХреЗ рд░реВрдк рдореЗрдВ supported рд░рд╣рддрд╛ рд╣реИред
Profile рд╡реНрдпрд╡рд╣рд╛рд░
attachOnly: trueрдХрд╛ рдорддрд▓рдм рд╣реИ local browser рдХрднреА launch рди рдХрд░реЗрдВ; рдХреЗрд╡рд▓ рддрдм attach рдХрд░реЗрдВ рдЬрдм рдХреЛрдИ рдкрд╣рд▓реЗ рд╕реЗ running рд╣реЛредheadlessрдХреЛ globally рдпрд╛ рдкреНрд░рддрд┐ local managed profile set рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред Per-profile valuesbrowser.headlessрдХреЛ override рдХрд░рддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдХ locally launched profile headless рд░рд╣ рд╕рдХрддреА рд╣реИ рдЬрдмрдХрд┐ рджреВрд╕рд░реА visible рд░рд╣рддреА рд╣реИредPOST /start?headless=trueрдФрд░openclaw browser start --headlesslocal managed profiles рдХреЗ рд▓рд┐рдП one-shot headless launch request рдХрд░рддреЗ рд╣реИрдВ, рдмрд┐рдирд╛browser.headlessрдпрд╛ profile config рдХреЛ rewrite рдХрд┐рдПред Existing-session, attach-only, рдФрд░ remote CDP profiles override рдХреЛ reject рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ OpenClaw рдЙрди browser processes рдХреЛ launch рдирд╣реАрдВ рдХрд░рддрд╛редDISPLAYрдпрд╛WAYLAND_DISPLAYрдХреЗ рдмрд┐рдирд╛ Linux hosts рдкрд░, local managed profiles рддрдм рдЕрдкрдиреЗ-рдЖрдк headless default рдХрд░рддреЗ рд╣реИрдВ рдЬрдм environment рдпрд╛ profile/global config рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА explicitly headed mode рдирд╣реАрдВ рдЪреБрдирддрд╛редopenclaw browser status --jsonheadlessSourceрдХреЛenv,profile,config,request,linux-display-fallback, рдпрд╛defaultрдХреЗ рд░реВрдк рдореЗрдВ report рдХрд░рддрд╛ рд╣реИредOPENCLAW_BROWSER_HEADLESS=1current process рдХреЗ рд▓рд┐рдП local managed launches рдХреЛ headless force рдХрд░рддрд╛ рд╣реИредOPENCLAW_BROWSER_HEADLESS=0ordinary starts рдХреЗ рд▓рд┐рдП headed mode force рдХрд░рддрд╛ рд╣реИ рдФрд░ display server рдХреЗ рдмрд┐рдирд╛ Linux hosts рдкрд░ actionable error return рдХрд░рддрд╛ рд╣реИ; explicitstart --headlessrequest рдлрд┐рд░ рднреА рдЙрд╕ рдПрдХ launch рдХреЗ рд▓рд┐рдП wins рдХрд░рддреА рд╣реИредexecutablePathрдХреЛ globally рдпрд╛ рдкреНрд░рддрд┐ local managed profile set рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред Per-profile valuesbrowser.executablePathрдХреЛ override рдХрд░рддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ managed profiles рдЕрд▓рдЧ Chromium-based browsers launch рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рджреЛрдиреЛрдВ forms рдЖрдкрдХреЗ OS home directory рдХреЗ рд▓рд┐рдП~accept рдХрд░рддреЗ рд╣реИрдВредcolor(top-level рдФрд░ per-profile) browser UI рдХреЛ tint рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХреЗрдВ рдХрд┐ рдХреМрди-рд╕реА profile active рд╣реИред- Default profile
openclaw(managed standalone) рд╣реИред signed-in user browser рдореЗрдВ opt in рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПdefaultProfile: "user"use рдХрд░реЗрдВред - Auto-detect order: system default browser рдЕрдЧрд░ Chromium-based рд╣реЛ; рдЕрдиреНрдпрдерд╛ Chrome тЖТ Brave тЖТ Edge тЖТ Chromium тЖТ Chrome Canaryред
driver: "existing-session"raw CDP рдХреЗ рдмрдЬрд╛рдп Chrome DevTools MCP use рдХрд░рддрд╛ рд╣реИред рдпрд╣ Chrome MCP auto-connect рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ attach рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдпрд╛cdpUrlрдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ running browser рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ DevTools endpoint рд╣реЛредbrowser.profiles.<name>.userDataDirset рдХрд░реЗрдВ рдЬрдм existing-session profile рдХреЛ non-default Chromium user profile (Brave, Edge, рдЖрджрд┐) рд╕реЗ attach рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ path рднреА рдЖрдкрдХреЗ OS home directory рдХреЗ рд▓рд┐рдП~accept рдХрд░рддрд╛ рд╣реИред
Brave рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп Chromium-based browser рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
рдпрджрд┐ рдЖрдкрдХрд╛ system default browser Chromium-based рд╣реИ (Chrome/Brave/Edge/etc),
OpenClaw рдЗрд╕реЗ рдЕрдкрдиреЗ-рдЖрдк use рдХрд░рддрд╛ рд╣реИред auto-detection рдХреЛ override рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП browser.executablePath set рдХрд░реЗрдВред
Top-level рдФрд░ per-profile executablePath values рдЖрдкрдХреЗ OS home directory рдХреЗ рд▓рд┐рдП ~
accept рдХрд░рддреА рд╣реИрдВ:
openclaw config set browser.executablePath "/usr/bin/google-chrome"openclaw config set browser.profiles.work.executablePath "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome"рдпрд╛ рдЗрд╕реЗ config рдореЗрдВ, рдкреНрд░рддрд┐ platform set рдХрд░реЗрдВ:
macOS
{browser: {executablePath: "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser",},}Windows
{browser: {executablePath: "C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe",},}Linux
{browser: {executablePath: "/usr/bin/brave-browser",},}Per-profile executablePath рдХреЗрд╡рд▓ рдЙрди local managed profiles рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ OpenClaw
launch рдХрд░рддрд╛ рд╣реИред existing-session profiles рдЗрд╕рдХреЗ рдмрдЬрд╛рдп already-running browser рд╕реЗ attach рдХрд░рддреА рд╣реИрдВ,
рдФрд░ remote CDP profiles cdpUrl рдХреЗ рдкреАрдЫреЗ рд╡рд╛рд▓реЗ browser рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИрдВред
Local рдмрдирд╛рдо remote control
- Local control (default): Gateway loopback control service рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реИ рдФрд░ local browser launch рдХрд░ рд╕рдХрддрд╛ рд╣реИред
- Remote control (node host): рдЙрд╕ machine рдкрд░ node host run рдХрд░реЗрдВ рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ browser рд╣реИ; Gateway browser actions рдХреЛ рдЙрд╕рдХреЗ рдкрд╛рд╕ proxy рдХрд░рддрд╛ рд╣реИред
- Remote CDP: remote Chromium-based browser рд╕реЗ
attach рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП
browser.profiles.<name>.cdpUrl(рдпрд╛browser.cdpUrl) set рдХрд░реЗрдВред рдЗрд╕ case рдореЗрдВ, OpenClaw local browser launch рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред - loopback рдкрд░ externally managed CDP services рдХреЗ рд▓рд┐рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП
Docker рдореЗрдВ Browserless рдЬреЛ
127.0.0.1рдкрд░ published рд╣реИ),attachOnly: trueрднреА set рдХрд░реЗрдВред Loopback CDP рдмрд┐рдирд╛attachOnlyрдХреЗ local OpenClaw-managed browser profile рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред headlessрдХреЗрд╡рд▓ рдЙрди local managed profiles рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ OpenClaw launch рдХрд░рддрд╛ рд╣реИред рдпрд╣ existing-session рдпрд╛ remote CDP browsers рдХреЛ restart рдпрд╛ change рдирд╣реАрдВ рдХрд░рддрд╛редexecutablePathрд╡рд╣реА local managed profile rule follow рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ running local managed profile рдкрд░ рдмрджрд▓рдиреЗ рд╕реЗ рд╡рд╣ profile restart/reconcile рдХреЗ рд▓рд┐рдП mark рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ next launch new binary use рдХрд░реЗред
Stopping behavior profile mode рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрд▓рдЧ рд╣реЛрддрд╛ рд╣реИ:
- local managed profiles:
openclaw browser stopрдЙрд╕ browser process рдХреЛ stop рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ OpenClaw рдиреЗ launch рдХрд┐рдпрд╛ рдерд╛ - attach-only рдФрд░ remote CDP profiles:
openclaw browser stopactive control session рдХреЛ close рдХрд░рддрд╛ рд╣реИ рдФрд░ Playwright/CDP emulation overrides (viewport, color scheme, locale, timezone, offline mode, рдФрд░ similar state) release рдХрд░рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА OpenClaw рдиреЗ рдХреЛрдИ browser process launch рди рдХрд┐рдпрд╛ рд╣реЛ
Remote CDP URLs auth рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
- Query tokens (рдЙрджрд╛рд╣рд░рдг,
https://provider.example?token=<token>) - HTTP Basic auth (рдЙрджрд╛рд╣рд░рдг,
https://user:pass@provider.example)
OpenClaw /json/* endpoints call рдХрд░рддреЗ рд╕рдордп рдФрд░
CDP WebSocket рд╕реЗ connect рдХрд░рддреЗ рд╕рдордп auth preserve рдХрд░рддрд╛ рд╣реИред tokens рдХреЛ config files рдореЗрдВ commit рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп
environment variables рдпрд╛ secrets managers рдХреЛ prefer рдХрд░реЗрдВред
Node browser proxy (zero-config default)
рдпрджрд┐ рдЖрдк рдЙрд╕ machine рдкрд░ node host run рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рдЖрдкрдХрд╛ browser рд╣реИ, рддреЛ OpenClaw рдмрд┐рдирд╛ рдХрд┐рд╕реА extra browser config рдХреЗ browser tool calls рдХреЛ рдЙрд╕ node рдкрд░ auto-route рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ remote gateways рдХреЗ рд▓рд┐рдП default path рд╣реИред
Notes:
- node host рдЕрдкрдирд╛ local browser control server рдПрдХ proxy command рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ expose рдХрд░рддрд╛ рд╣реИред
- Profiles node рдХреЗ рдЕрдкрдиреЗ
browser.profilesconfig рд╕реЗ рдЖрддреА рд╣реИрдВ (local рдХреЗ рд╕рдорд╛рди)ред nodeHost.browserProxy.allowProfilesoptional рд╣реИред legacy/default behavior рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ empty рдЫреЛрдбрд╝реЗрдВ: рд╕рднреА configured profiles proxy рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ reachable рд░рд╣рддреА рд╣реИрдВ, profile create/delete routes рд╕рд╣рд┐рддред- рдпрджрд┐ рдЖрдк
nodeHost.browserProxy.allowProfilesset рдХрд░рддреЗ рд╣реИрдВ, OpenClaw рдЗрд╕реЗ least-privilege boundary рдХреЗ рд░реВрдк рдореЗрдВ treat рдХрд░рддрд╛ рд╣реИ: рдХреЗрд╡рд▓ allowlisted profiles target рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдФрд░ persistent profile create/delete routes proxy surface рдкрд░ blocked рд╣реЛрддреЗ рд╣реИрдВред - рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рддреЛ disable рдХрд░реЗрдВ:
- node рдкрд░:
nodeHost.browserProxy.enabled=false - gateway рдкрд░:
gateway.nodes.browser.mode="off"
- node рдкрд░:
Browserless (hosted remote CDP)
Browserless рдПрдХ hosted Chromium service рд╣реИ рдЬреЛ HTTPS рдФрд░ WebSocket рдкрд░ CDP connection URLs expose рдХрд░рддреА рд╣реИред OpenClaw рдХрд┐рд╕реА рднреА form рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди remote browser profile рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ simple option Browserless' connection docs рд╕реЗ direct WebSocket URL рд╣реИред
Example:
{ browser: { enabled: true, defaultProfile: "browserless", remoteCdpTimeoutMs: 2000, remoteCdpHandshakeTimeoutMs: 4000, profiles: { browserless: { cdpUrl: "wss://production-sfo.browserless.io?token=<BROWSERLESS_API_KEY>", color: "#00AA00", }, }, },}Notes:
<BROWSERLESS_API_KEY>рдХреЛ рдЕрдкрдиреЗ real Browserless token рд╕реЗ replace рдХрд░реЗрдВред- рд╡рд╣ region endpoint рдЪреБрдиреЗрдВ рдЬреЛ рдЖрдкрдХреЗ Browserless account рд╕реЗ match рдХрд░рддрд╛ рд╣реЛ (рдЙрдирдХреЗ docs рджреЗрдЦреЗрдВ)ред
- рдпрджрд┐ Browserless рдЖрдкрдХреЛ HTTPS base URL рджреЗрддрд╛ рд╣реИ, рддреЛ рдЖрдк direct CDP connection рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ
wss://рдореЗрдВ convert рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ HTTPS URL рдХреЛ keep рдХрд░рдХреЗ OpenClaw рд╕реЗ/json/versiondiscover рдХрд░рд╡рд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЙрд╕реА host рдкрд░ Browserless Docker
рдЬрдм Browserless Docker рдореЗрдВ self-hosted рд╣реЛ рдФрд░ OpenClaw host рдкрд░ run рдХрд░рддрд╛ рд╣реЛ, рддреЛ Browserless рдХреЛ externally managed CDP service рдХреЗ рд░реВрдк рдореЗрдВ treat рдХрд░реЗрдВ:
{ browser: { enabled: true, defaultProfile: "browserless", profiles: { browserless: { cdpUrl: "ws://127.0.0.1:3000", attachOnly: true, color: "#00AA00", }, }, },}browser.profiles.browserless.cdpUrl рдореЗрдВ address
OpenClaw process рд╕реЗ reachable рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред Browserless рдХреЛ matching reachable endpoint advertise рднреА рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП;
Browserless EXTERNAL рдХреЛ рдЙрд╕реА public-to-OpenClaw WebSocket base рдкрд░ set рдХрд░реЗрдВ, рдЬреИрд╕реЗ
ws://127.0.0.1:3000, ws://browserless:3000, рдпрд╛ stable private Docker
network addressред рдпрджрд┐ /json/version рдРрд╕рд╛ webSocketDebuggerUrl return рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдРрд╕реЗ
address рдХреА рдУрд░ point рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ OpenClaw reach рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рддреЛ CDP HTTP healthy рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ рдЬрдмрдХрд┐ WebSocket
attach рдлрд┐рд░ рднреА fail рд╣реЛрддрд╛ рд╣реИред
Loopback Browserless profile рдХреЗ рд▓рд┐рдП attachOnly unset рди рдЫреЛрдбрд╝реЗрдВред attachOnly рдХреЗ рдмрд┐рдирд╛,
OpenClaw loopback port рдХреЛ local managed browser
profile рдорд╛рдирддрд╛ рд╣реИ рдФрд░ report рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ port use рдореЗрдВ рд╣реИ рд▓реЗрдХрд┐рди OpenClaw рдХреЗ ownership рдореЗрдВ рдирд╣реАрдВ рд╣реИред
Direct WebSocket CDP providers
рдХреБрдЫ hosted browser services standard HTTP-based CDP discovery (/json/version) рдХреЗ рдмрдЬрд╛рдп
direct WebSocket endpoint expose рдХрд░рддреА рд╣реИрдВред OpenClaw рддреАрди
CDP URL shapes accept рдХрд░рддрд╛ рд╣реИ рдФрд░ рд╕рд╣реА connection strategy automatically рдЪреБрдирддрд╛ рд╣реИ:
- HTTP(S) discovery -
http://host[:port]рдпрд╛https://host[:port]ред OpenClaw WebSocket debugger URL discover рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП/json/versioncall рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ connect рдХрд░рддрд╛ рд╣реИред рдХреЛрдИ WebSocket fallback рдирд╣реАрдВред - Direct WebSocket endpoints -
ws://host[:port]/devtools/<kind>/<id>рдпрд╛/devtools/browser|page|worker|shared_worker|service_worker/<id>path рдХреЗ рд╕рд╛рдеwss://...ред OpenClaw WebSocket handshake рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реАрдзреЗ connect рдХрд░рддрд╛ рд╣реИ рдФрд░/json/versionрдХреЛ рдкреВрд░реА рддрд░рд╣ skip рдХрд░рддрд╛ рд╣реИред - Bare WebSocket roots -
ws://host[:port]рдпрд╛ рдмрд┐рдирд╛/devtools/...path рдХреЗwss://host[:port](рдЬреИрд╕реЗ Browserless, Browserbase)ред OpenClaw рдкрд╣рд▓реЗ HTTP/json/versiondiscovery try рдХрд░рддрд╛ рд╣реИ (scheme рдХреЛhttp/httpsрдореЗрдВ normalise рдХрд░рддреЗ рд╣реБрдП); рдпрджрд┐ discoverywebSocketDebuggerUrlreturn рдХрд░рддреА рд╣реИ рддреЛ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ OpenClaw bare root рдкрд░ direct WebSocket handshake рдкрд░ fallback рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ advertised WebSocket endpoint CDP handshake reject рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди configured bare root рдЙрд╕реЗ accept рдХрд░рддрд╛ рд╣реИ, рддреЛ OpenClaw рдЙрд╕ root рдкрд░ рднреА fallback рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ local Chrome рдХреА рдУрд░ pointed barews://рдлрд┐рд░ рднреА connect рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ Chrome рдХреЗрд╡рд▓/json/versionрд╕реЗ specific per-target path рдкрд░ WebSocket upgrades accept рдХрд░рддрд╛ рд╣реИ, рдЬрдмрдХрд┐ hosted providers рддрдм рднреА рдЕрдкрдиреЗ root WebSocket endpoint рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдЙрдирдХрд╛ discovery endpoint short-lived URL advertise рдХрд░рддрд╛ рд╣реИ рдЬреЛ Playwright CDP рдХреЗ рд▓рд┐рдП suitable рдирд╣реАрдВ рд╣реИред
openclaw browser doctor runtime attach рдЬреИрд╕реА рд╣реА discovery-first, WebSocket-fallback
logic use рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ connect рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ bare-root URL diagnostics рджреНрд╡рд╛рд░рд╛
unreachable report рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ред
Browserbase
Browserbase cloud platform рд╣реИ рдЬреЛ built-in CAPTCHA solving, stealth mode, рдФрд░ residential proxies рдХреЗ рд╕рд╛рде headless browsers run рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред
{ browser: { enabled: true, defaultProfile: "browserbase", remoteCdpTimeoutMs: 3000, remoteCdpHandshakeTimeoutMs: 5000, profiles: { browserbase: { cdpUrl: "wss://connect.browserbase.com?apiKey=<BROWSERBASE_API_KEY>", color: "#F97316", }, }, },}рдиреЛрдЯреНрд╕:
- рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВ рдФрд░ рдУрд╡рд░рд╡реНрдпреВ рдбреИрд╢рдмреЛрд░реНрдб рд╕реЗ рдЕрдкрдиреА API Key рдХреЙрдкреА рдХрд░реЗрдВред
<BROWSERBASE_API_KEY>рдХреЛ рдЕрдкрдиреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ Browserbase API key рд╕реЗ рдмрджрд▓реЗрдВред- Browserbase WebSocket рдХрдиреЗрдХреНрдЯ рдкрд░ рдЕрдкрдиреЗ-рдЖрдк рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рддреНрд░ рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдиреНрдпреБрдЕрд▓ рд╕рддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рдЪрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
- рдореБрдлрд╝реНрдд рдЯрд┐рдпрд░ рдПрдХ рд╕рд╛рде рдПрдХ рд╕рддреНрд░ рдФрд░ рдкреНрд░рддрд┐ рдорд╛рд╣ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдШрдВрдЯрд╛ рджреЗрддрд╛ рд╣реИред рдкреЗрдб рдкреНрд▓рд╛рди рд╕реАрдорд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рдг рджреЗрдЦреЗрдВред
- рдкреВрд░реНрдг API рд╕рдВрджрд░реНрдн, SDK рдЧрд╛рдЗрдб рдФрд░ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП Browserbase рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВред
Notte
Notte рдмрд┐рд▓реНрдЯ-рдЗрди рд╕реНрдЯреЗрд▓реНрде, рд░реЗрдЬрд╝рд┐рдбреЗрдВрд╢рд┐рдпрд▓ рдкреНрд░реЙрдХреНрд╕реА рдФрд░ CDP-рдиреЗрдЯрд┐рд╡ WebSocket Gateway рдХреЗ рд╕рд╛рде рд╣реЗрдбрд▓реЗрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИред
{ browser: { enabled: true, defaultProfile: "notte", remoteCdpTimeoutMs: 3000, remoteCdpHandshakeTimeoutMs: 5000, profiles: { notte: { cdpUrl: "wss://us-prod.notte.cc/sessions/connect?token=<NOTTE_API_KEY>", color: "#7C3AED", }, }, },}рдиреЛрдЯреНрд╕:
- рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВ рдФрд░ рдХрдВрд╕реЛрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреЗрдЬ рд╕реЗ рдЕрдкрдиреА API Key рдХреЙрдкреА рдХрд░реЗрдВред
<NOTTE_API_KEY>рдХреЛ рдЕрдкрдиреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ Notte API key рд╕реЗ рдмрджрд▓реЗрдВред- Notte WebSocket рдХрдиреЗрдХреНрдЯ рдкрд░ рдЕрдкрдиреЗ-рдЖрдк рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рддреНрд░ рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдиреНрдпреБрдЕрд▓ рд╕рддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рдЪрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред WebSocket рдбрд┐рд╕реНрдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдкрд░ рд╕рддреНрд░ рдирд╖реНрдЯ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдореБрдлрд╝реНрдд рдЯрд┐рдпрд░ рдПрдХ рд╕рд╛рде рдкрд╛рдБрдЪ рд╕рддреНрд░ рдФрд░ рдХреБрд▓ 100 рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдШрдВрдЯреЗ рджреЗрддрд╛ рд╣реИред рдкреЗрдб рдкреНрд▓рд╛рди рд╕реАрдорд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рдг рджреЗрдЦреЗрдВред
- рдкреВрд░реНрдг API рд╕рдВрджрд░реНрдн, SDK рдЧрд╛рдЗрдб рдФрд░ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП Notte рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВред
рд╕реБрд░рдХреНрд╖рд╛
рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░:
- рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд┐рдпрдВрддреНрд░рдг рдХреЗрд╡рд▓ loopback рддрдХ рд╕реАрдорд┐рдд рд╣реИ; рдкрд╣реБрдВрдЪ Gateway рдХреЗ auth рдпрд╛ node pairing рд╕реЗ рд╣реЛрдХрд░ рдЬрд╛рддреА рд╣реИред
- рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди loopback рдмреНрд░рд╛рдЙрдЬрд╝рд░ HTTP API рдХреЗрд╡рд▓ shared-secret auth рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
gateway token bearer auth,
x-openclaw-password, рдпрд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП gateway password рдХреЗ рд╕рд╛рде HTTP Basic authред - Tailscale Serve identity headers рдФрд░
gateway.auth.mode: "trusted-proxy"рдЗрд╕ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди loopback рдмреНрд░рд╛рдЙрдЬрд╝рд░ API рдХреЛ рдкреНрд░рдорд╛рдгрд┐рдд рдирд╣реАрдВ рдХрд░рддреЗред - рдпрджрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд┐рдпрдВрддреНрд░рдг рд╕рдХреНрд╖рдо рд╣реИ рдФрд░ рдХреЛрдИ shared-secret auth рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ OpenClaw
рдЙрд╕ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рд░рдирдЯрд╛рдЗрдо gateway token рдЬрдирд░реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдХреНрд▓рд╛рдЗрдВрдЯреНрд╕ рдХреЛ
рд░реАрд╕реНрдЯрд╛рд░реНрдЯ рдХреЗ рдмреАрдЪ рд╕реНрдерд┐рд░ secret рдЪрд╛рд╣рд┐рдП, рддреЛ
gateway.auth.token,gateway.auth.password,OPENCLAW_GATEWAY_TOKEN, рдпрд╛OPENCLAW_GATEWAY_PASSWORDрдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред - рдЬрдм
gateway.auth.modeрдкрд╣рд▓реЗ рд╕реЗpassword,none, рдпрд╛trusted-proxyрд╣реЛ, рддреЛ OpenClaw рд╡рд╣ token рдЕрдкрдиреЗ-рдЖрдк рдЬрдирд░реЗрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ред - Gateway рдФрд░ рдХрд┐рд╕реА рднреА node host рдХреЛ рдирд┐рдЬреА рдиреЗрдЯрд╡рд░реНрдХ (Tailscale) рдкрд░ рд░рдЦреЗрдВ; рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдХреНрд╕рдкреЛрдЬрд╝рд░ рд╕реЗ рдмрдЪреЗрдВред
- рд░рд┐рдореЛрдЯ CDP URLs/tokens рдХреЛ secrets рдХреА рддрд░рд╣ рдорд╛рдиреЗрдВ; env vars рдпрд╛ secrets manager рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред
рд░рд┐рдореЛрдЯ CDP рд╕реБрдЭрд╛рд╡:
- рдЬрд╣рд╛рдБ рд╕рдВрднрд╡ рд╣реЛ, рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб endpoints (HTTPS рдпрд╛ WSS) рдФрд░ рдХрдо рдЕрд╡рдзрд┐ рд╡рд╛рд▓реЗ tokens рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред
- рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ tokens рдХреЛ рд╕реАрдзреЗ config рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рд╕реЗ рдмрдЪреЗрдВред
рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓реЗрдВ (рдорд▓реНрдЯреА-рдмреНрд░рд╛рдЙрдЬрд╝рд░)
OpenClaw рдХрдИ рдирд╛рдорд┐рдд рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓реЛрдВ (рд░реВрдЯрд┐рдВрдЧ configs) рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓реЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ:
- openclaw-managed: рдЕрдкрдиреЗ user data directory + CDP port рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд░реНрдкрд┐рдд Chromium-рдЖрдзрд╛рд░рд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ instance
- remote: рдПрдХ рд╕реНрдкрд╖реНрдЯ CDP URL (рдХрд╣реАрдВ рдФрд░ рдЪрд▓ рд░рд╣рд╛ Chromium-рдЖрдзрд╛рд░рд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░)
- existing session: Chrome DevTools MCP auto-connect рдХреЗ рдЬрд╝рд░рд┐рдП рдЖрдкрдХреА рдореМрдЬреВрджрд╛ Chrome profile
рдбрд┐рдлрд╝реЙрд▓реНрдЯреНрд╕:
openclawрдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЧреБрдо рд╣реЛрдиреЗ рдкрд░ рдЕрдкрдиреЗ-рдЖрдк рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИредuserрдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ Chrome MCP existing-session attach рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдЯ-рдЗрди рд╣реИред- Existing-session рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓реЗрдВ
userрд╕реЗ рдЖрдЧреЗ opt-in рд╣реИрдВ; рдЙрдиреНрд╣реЗрдВ--driver existing-sessionрдХреЗ рд╕рд╛рде рдмрдирд╛рдПрдВред - рд╕реНрдерд╛рдиреАрдп CDP ports рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ 18800-18899 рд╕реЗ рдЖрд╡рдВрдЯрд┐рдд рд╣реЛрддреЗ рд╣реИрдВред
- рдХрд┐рд╕реА рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЛ рд╣рдЯрд╛рдиреЗ рдкрд░ рдЙрд╕рдХреА рд╕реНрдерд╛рдиреАрдп data directory Trash рдореЗрдВ рдЪрд▓реА рдЬрд╛рддреА рд╣реИред
рд╕рднреА control endpoints ?profile=<name> рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ; CLI --browser-profile рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
Chrome DevTools MCP рдХреЗ рдЬрд╝рд░рд┐рдП рдореМрдЬреВрджрд╛ рд╕рддреНрд░
OpenClaw рдЖрдзрд┐рдХрд╛рд░рд┐рдХ Chrome DevTools MCP server рдХреЗ рдЬрд╝рд░рд┐рдП рдЪрд▓ рд░рд╣реА Chromium-рдЖрдзрд╛рд░рд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ profile рд╕реЗ рднреА attach рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдЙрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ profile рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдЦреБрд▓реЗ tabs рдФрд░ login state рдХрд╛ рдкреБрдирдГ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдкреГрд╖реНрдарднреВрдорд┐ рдФрд░ setup рд╕рдВрджрд░реНрдн:
- Chrome for Developers: рдЕрдкрдиреЗ browser session рдХреЗ рд╕рд╛рде Chrome DevTools MCP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
- Chrome DevTools MCP README
рдмрд┐рд▓реНрдЯ-рдЗрди рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓:
user
рд╡реИрдХрд▓реНрдкрд┐рдХ: рдпрджрд┐ рдЖрдк рдЕрд▓рдЧ рдирд╛рдо, рд░рдВрдЧ рдпрд╛ browser data directory рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЕрдкрдиреА рдХрд╕реНрдЯрдо existing-session profile рдмрдирд╛рдПрдВред
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░:
- рдмрд┐рд▓реНрдЯ-рдЗрди
userрдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ Chrome MCP auto-connect рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реНрдерд╛рдиреАрдп Google Chrome profile рдХреЛ target рдХрд░рддрд╛ рд╣реИред
Brave, Edge, Chromium, рдпрд╛ non-default Chrome profile рдХреЗ рд▓рд┐рдП userDataDir рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
~ рдЖрдкрдХреЗ OS home directory рддрдХ expand рд╣реЛрддрд╛ рд╣реИ:
{ browser: { profiles: { brave: { driver: "existing-session", attachOnly: true, userDataDir: "~/Library/Application Support/BraveSoftware/Brave-Browser", color: "#FB542B", }, }, },}рдлрд┐рд░ рдорд┐рд▓рддреЗ-рдЬреБрд▓рддреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ:
- remote debugging рдХреЗ рд▓рд┐рдП рдЙрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ inspect page рдЦреЛрд▓реЗрдВред
- remote debugging рд╕рдХреНрд╖рдо рдХрд░реЗрдВред
- рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЪрд▓рддрд╛ рд░рд╣рдиреЗ рджреЗрдВ рдФрд░ OpenClaw рдХреЗ attach рд╣реЛрдиреЗ рдкрд░ connection prompt рдХреЛ approve рдХрд░реЗрдВред
рд╕рд╛рдорд╛рдиреНрдп inspect pages:
- Chrome:
chrome://inspect/#remote-debugging - Brave:
brave://inspect/#remote-debugging - Edge:
edge://inspect/#remote-debugging
Live attach smoke test:
openclaw browser --browser-profile user startopenclaw browser --browser-profile user statusopenclaw browser --browser-profile user tabsopenclaw browser --browser-profile user snapshot --format aiрд╕рдлрд▓рддрд╛ рдХреИрд╕реА рджрд┐рдЦрддреА рд╣реИ:
statusрджрд┐рдЦрд╛рддрд╛ рд╣реИdriver: existing-sessionstatusрджрд┐рдЦрд╛рддрд╛ рд╣реИtransport: chrome-mcpstatusрджрд┐рдЦрд╛рддрд╛ рд╣реИrunning: truetabsрдЖрдкрдХреЗ рдкрд╣рд▓реЗ рд╕реЗ рдЦреБрд▓реЗ browser tabs рд╕реВрдЪреАрдмрджреНрдз рдХрд░рддрд╛ рд╣реИsnapshotрдЪрдпрдирд┐рдд live tab рд╕реЗ refs рд▓реМрдЯрд╛рддрд╛ рд╣реИ
рдпрджрд┐ attach рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛, рддреЛ рдХреНрдпрд╛ рдЬрд╛рдБрдЪреЗрдВ:
- target Chromium-рдЖрдзрд╛рд░рд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ version
144+рд╣реИ - рдЙрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ inspect page рдореЗрдВ remote debugging рд╕рдХреНрд╖рдо рд╣реИ
- рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдиреЗ attach consent prompt рджрд┐рдЦрд╛рдпрд╛ рдФрд░ рдЖрдкрдиреЗ рдЙрд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛
- рдпрджрд┐ Chrome рдХреЛ рд╕реНрдкрд╖реНрдЯ
--remote-debugging-portрдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ Chrome MCP auto-connect рдкрд░ рдирд┐рд░реНрднрд░ рд░рд╣рдиреЗ рдХреЗ рдмрдЬрд╛рдпbrowser.profiles.<name>.cdpUrlрдХреЛ рдЙрд╕ DevTools endpoint рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ openclaw doctorрдкреБрд░рд╛рдиреЗ extension-рдЖрдзрд╛рд░рд┐рдд browser config рдХреЛ migrate рдХрд░рддрд╛ рд╣реИ рдФрд░ default auto-connect profiles рдХреЗ рд▓рд┐рдП рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ Chrome рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ installed рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреА рдУрд░ рд╕реЗ browser-side remote debugging рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛
Agent рдЙрдкрдпреЛрдЧ:
- рдЬрдм рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА logged-in browser state рдЪрд╛рд╣рд┐рдП, рддреЛ
profile="user"рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред - рдпрджрд┐ рдЖрдк custom existing-session profile рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд╣ рд╕реНрдкрд╖реНрдЯ profile name pass рдХрд░реЗрдВред
- рдпрд╣ mode рдХреЗрд╡рд▓ рддрдм рдЪреБрдиреЗрдВ рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ attach prompt approve рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ рд╣реЛред
- Gateway рдпрд╛ node host
npx chrome-devtools-mcp@latest --autoConnectspawn рдХрд░ рд╕рдХрддрд╛ рд╣реИ
рдиреЛрдЯреНрд╕:
- рдпрд╣ path isolated
openclawprofile рд╕реЗ рдЕрдзрд┐рдХ рдЬреЛрдЦрд┐рдо рд╡рд╛рд▓рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЗ signed-in browser session рдХреЗ рдЕрдВрджрд░ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИред - OpenClaw рдЗрд╕ driver рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ launch рдирд╣реАрдВ рдХрд░рддрд╛; рдпрд╣ рдХреЗрд╡рд▓ attach рдХрд░рддрд╛ рд╣реИред
- OpenClaw рдпрд╣рд╛рдБ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ Chrome DevTools MCP
--autoConnectflow рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐userDataDirрд╕реЗрдЯ рд╣реИ, рддреЛ рдЙрд╕реЗ рдЙрд╕ user data directory рдХреЛ target рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП pass through рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред - Existing-session рдЪрдпрдирд┐рдд host рдкрд░ рдпрд╛ connected browser node рдХреЗ рдЬрд╝рд░рд┐рдП attach рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ Chrome рдХрд╣реАрдВ рдФрд░ рд╣реИ рдФрд░ рдХреЛрдИ browser node connected рдирд╣реАрдВ рд╣реИ, рддреЛ remote CDP рдпрд╛ node host рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдХрд╕реНрдЯрдо Chrome MCP launch
рдЬрдм рдбрд┐рдлрд╝реЙрд▓реНрдЯ npx chrome-devtools-mcp@latest flow рдЖрдкрдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рди рд╣реЛ
(offline hosts, pinned versions, vendored binaries), рддреЛ рдкреНрд░рддрд┐ profile spawned Chrome DevTools MCP server override рдХрд░реЗрдВ:
| рдлрд╝реАрд▓реНрдб | рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ |
|---|---|
mcpCommand |
npx рдХреЗ рдмрдЬрд╛рдп spawn рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ executableред рдЬреИрд╕рд╛ рд╣реИ рд╡реИрд╕рд╛ resolve рд╣реЛрддрд╛ рд╣реИ; absolute paths рдорд╛рдиреНрдп рд╣реИрдВред |
mcpArgs |
mcpCommand рдХреЛ verbatim pass рдХреА рдЧрдИ argument arrayред рдбрд┐рдлрд╝реЙрд▓реНрдЯ chrome-devtools-mcp@latest --autoConnect arguments рдХреЛ рдмрджрд▓рддреА рд╣реИред |
рдЬрдм existing-session profile рдкрд░ cdpUrl рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ, OpenClaw
--autoConnect рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИ рдФрд░ endpoint рдХреЛ рдЕрдкрдиреЗ-рдЖрдк Chrome MCP рдХреЛ forward рдХрд░рддрд╛ рд╣реИ:
http(s)://...тЖТ--browserUrl <url>(DevTools HTTP discovery endpoint)редws(s)://...тЖТ--wsEndpoint <url>(direct CDP WebSocket)ред
Endpoint flags рдФрд░ userDataDir рдХреЛ рдорд┐рд▓рд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛: рдЬрдм cdpUrl рд╕реЗрдЯ рд╣реЛрддрд╛ рд╣реИ,
Chrome MCP launch рдХреЗ рд▓рд┐рдП userDataDir ignored рд╣реЛрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ Chrome MCP profile
directory рдЦреЛрд▓рдиреЗ рдХреЗ рдмрдЬрд╛рдп endpoint рдХреЗ рдкреАрдЫреЗ рдЪрд▓ рд░рд╣реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ attach рдХрд░рддрд╛ рд╣реИред
Existing-session рд╕реБрд╡рд┐рдзрд╛ рд╕реАрдорд╛рдПрдБ
managed openclaw profile рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, existing-session drivers рдЕрдзрд┐рдХ рд╕реАрдорд┐рдд рд╣реИрдВ:
- рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ - page captures рдФрд░
--refelement captures рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ; CSS--elementselectors рдирд╣реАрдВред--full-pageрдХреЛ--refрдпрд╛--elementрдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдорд┐рд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ред page рдпрд╛ ref-based element screenshots рдХреЗ рд▓рд┐рдП Playwright рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред - Actions -
click,type,hover,scrollIntoView,drag, рдФрд░selectрдХреЛ snapshot refs рдЪрд╛рд╣рд┐рдП (CSS selectors рдирд╣реАрдВ)редclick-coordsvisible viewport coordinates рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ snapshot ref рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреАредclickрдХреЗрд╡рд▓ left-button рд╣реИредtypeslowly=trueрдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛;fillрдпрд╛pressрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВредpressdelayMsрдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛редtype,hover,scrollIntoView,drag,select,fill, рдФрд░evaluateper-call timeouts рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗредselectрдПрдХ single value рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред - Wait / upload / dialog -
wait --urlexact, substring, рдФрд░ glob patterns рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ;wait --load networkidleexisting-session profiles рдкрд░ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ (рдпрд╣ managed рдФрд░ raw/remote CDP profiles рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред Upload hooks рдХреЛrefрдпрд╛inputRefрдЪрд╛рд╣рд┐рдП, рдПрдХ рдмрд╛рд░ рдореЗрдВ рдПрдХ file, рдХреЛрдИ CSSelementрдирд╣реАрдВред Dialog hooks timeout overrides рдпрд╛dialogIdрдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗред - Dialog visibility - Managed browser action responses рдореЗрдВ
blockedByDialogрдФрд░browserState.dialogs.pendingрд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЬрдм рдХреЛрдИ action modal dialog рдЦреЛрд▓рддрд╛ рд╣реИ; snapshots рдореЗрдВ рднреА pending dialog state рд╢рд╛рдорд┐рд▓ рд╣реЛрддреА рд╣реИред Dialog pending рд╣реЛрдиреЗ рдкрд░browser dialog --accept/--dismiss --dialog-id <id>рд╕реЗ respond рдХрд░реЗрдВред OpenClaw рдХреЗ рдмрд╛рд╣рд░ handle рдХрд┐рдП рдЧрдП dialogsbrowserState.dialogs.recentрдХреЗ рдЕрдВрддрд░реНрдЧрдд рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред - рдХреЗрд╡рд▓ managed features - batch actions, PDF export, download interception, рдФрд░
responsebodyрдХреЗ рд▓рд┐рдП рдЕрднреА рднреА managed browser path рдЪрд╛рд╣рд┐рдПред
Isolation guarantees
- рд╕рдорд░реНрдкрд┐рдд user data dir: рдЖрдкрдХреА personal browser profile рдХреЛ рдХрднреА рдирд╣реАрдВ рдЫреВрддрд╛ред
- рд╕рдорд░реНрдкрд┐рдд ports: dev workflows рдХреЗ рд╕рд╛рде collisions рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП
9222рд╕реЗ рдмрдЪрддрд╛ рд╣реИред - Deterministic tab control:
tabsрдкрд╣рд▓реЗsuggestedTargetIdрд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ stabletabIdhandles рдЬреИрд╕реЗt1, optional labels, рдФрд░ rawtargetIdред Agents рдХреЛsuggestedTargetIdрдХрд╛ рдкреБрдирдГ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП; raw ids debugging рдФрд░ compatibility рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд░рд╣рддреЗ рд╣реИрдВред
рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЪрдпрди
рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ launch рдХрд░рддреЗ рд╕рдордп, OpenClaw рдкрд╣рд▓реЗ рдЙрдкрд▓рдмреНрдз рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЪреБрдирддрд╛ рд╣реИ:
- Chrome
- Brave
- Edge
- Chromium
- Chrome Canary
рдЖрдк browser.executablePath рд╕реЗ override рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо:
- macOS:
/ApplicationsрдФрд░~/ApplicationsрдЬрд╛рдБрдЪрддрд╛ рд╣реИред - Linux:
/usr/bin,/snap/bin,/opt/google,/opt/brave.com,/usr/lib/chromium, рдФрд░/usr/lib/chromium-browserрдХреЗ рдЕрдВрддрд░реНрдЧрдд рд╕рд╛рдорд╛рдиреНрдп Chrome/Brave/Edge/Chromium locations, рд╕рд╛рде рд╣реАPLAYWRIGHT_BROWSERS_PATHрдпрд╛~/.cache/ms-playwrightрдХреЗ рдЕрдВрддрд░реНрдЧрдд Playwright-managed Chromium рдЬрд╛рдБрдЪрддрд╛ рд╣реИред - Windows: рд╕рд╛рдорд╛рдиреНрдп install locations рдЬрд╛рдБрдЪрддрд╛ рд╣реИред
Control API (рд╡реИрдХрд▓реНрдкрд┐рдХ)
scripting рдФрд░ debugging рдХреЗ рд▓рд┐рдП, Gateway рдПрдХ рдЫреЛрдЯрд╛ рдХреЗрд╡рд▓ loopback HTTP
control API рдФрд░ matching openclaw browser CLI expose рдХрд░рддрд╛ рд╣реИ (snapshots, refs, wait
power-ups, JSON output, debug workflows)ред рдкреВрд░реНрдг reference рдХреЗ рд▓рд┐рдП
Browser control API рджреЗрдЦреЗрдВред
рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг
Linux-рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛рдУрдВ (рд╡рд┐рд╢реЗрд╖рдХрд░ snap Chromium) рдХреЗ рд▓рд┐рдП, рджреЗрдЦреЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдорд╕реНрдпрд╛-рдирд┐рд╡рд╛рд░рдг.
WSL2 Gateway + Windows Chrome split-host рд╕реЗрдЯрдЕрдк рдХреЗ рд▓рд┐рдП, рджреЗрдЦреЗрдВ WSL2 + Windows + remote Chrome CDP рд╕рдорд╕реНрдпрд╛-рдирд┐рд╡рд╛рд░рдг.
CDP рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рд╡рд┐рдлрд▓рддрд╛ рдмрдирд╛рдо рдиреЗрд╡рд┐рдЧреЗрд╢рди SSRF рдмреНрд▓реЙрдХ
рдпреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡рд┐рдлрд▓рддрд╛ рд╡рд░реНрдЧ рд╣реИрдВ рдФрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдХреЛрдб рдкрдереЛрдВ рдХреА рдУрд░ рд╕рдВрдХреЗрдд рдХрд░рддреЗ рд╣реИрдВред
- CDP рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдпрд╛ рддрддреНрдкрд░рддрд╛ рд╡рд┐рдлрд▓рддрд╛ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ OpenClaw рдпрд╣ рдкреБрд╖реНрдЯрд┐ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд┐рдпрдВрддреНрд░рдг рддрд▓ рд╕реНрд╡рд╕реНрде рд╣реИред
- рдиреЗрд╡рд┐рдЧреЗрд╢рди SSRF рдмреНрд▓реЙрдХ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд┐рдпрдВрддреНрд░рдг рддрд▓ рд╕реНрд╡рд╕реНрде рд╣реИ, рд▓реЗрдХрд┐рди рдкреЗрдЬ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд▓рдХреНрд╖реНрдп рдиреАрддрд┐ рджреНрд╡рд╛рд░рд╛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд╕рд╛рдорд╛рдиреНрдп рдЙрджрд╛рд╣рд░рдг:
- CDP рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдпрд╛ рддрддреНрдкрд░рддрд╛ рд╡рд┐рдлрд▓рддрд╛:
Chrome CDP websocket for profile "openclaw" is not reachable after startRemote CDP for profile "<name>" is not reachable at <cdpUrl>Port <port> is in use for profile "<name>" but not by openclawрдЬрдм рдХреЛрдИ loopback рдмрд╛рд╣рд░реА CDP рд╕реЗрд╡рд╛attachOnly: trueрдХреЗ рдмрд┐рдирд╛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХреА рдЬрд╛рддреА рд╣реИ
- рдиреЗрд╡рд┐рдЧреЗрд╢рди SSRF рдмреНрд▓реЙрдХ:
open,navigate, рд╕реНрдиреИрдкрд╢реЙрдЯ, рдпрд╛ рдЯреИрдм рдЦреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рдлреНрд▓реЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░/рдиреЗрдЯрд╡рд░реНрдХ рдиреАрддрд┐ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЬрдмрдХрд┐startрдФрд░tabsрдлрд┐рд░ рднреА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ
рджреЛрдиреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдиреНрдпреВрдирддрдо рдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
openclaw browser --browser-profile openclaw startopenclaw browser --browser-profile openclaw tabsopenclaw browser --browser-profile openclaw open https://example.comрдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдХреИрд╕реЗ рдкрдврд╝реЗрдВ:
- рдпрджрд┐
startnot reachable after startрдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдкрд╣рд▓реЗ CDP рддрддреНрдкрд░рддрд╛ рдХрд╛ рд╕рдорд╕реНрдпрд╛-рдирд┐рд╡рд╛рд░рдг рдХрд░реЗрдВред - рдпрджрд┐
startрд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИ рд▓реЗрдХрд┐рдиtabsрд╡рд┐рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдирд┐рдпрдВрддреНрд░рдг рддрд▓ рдЕрднреА рднреА рдЕрд╕реНрд╡рд╕реНрде рд╣реИред рдЗрд╕реЗ рдкреЗрдЬ-рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ CDP рдкрд╣реБрдБрдЪрдпреЛрдЧреНрдпрддрд╛ рд╕рдорд╕реНрдпрд╛ рдорд╛рдиреЗрдВред - рдпрджрд┐
startрдФрд░tabsрд╕рдлрд▓ рд╣реЛрддреЗ рд╣реИрдВ рд▓реЗрдХрд┐рдиopenрдпрд╛navigateрд╡рд┐рдлрд▓ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд┐рдпрдВрддреНрд░рдг рддрд▓ рдЪрд╛рд▓реВ рд╣реИ рдФрд░ рд╡рд┐рдлрд▓рддрд╛ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдиреАрддрд┐ рдпрд╛ рд▓рдХреНрд╖реНрдп рдкреЗрдЬ рдореЗрдВ рд╣реИред - рдпрджрд┐
start,tabs, рдФрд░openрд╕рднреА рд╕рдлрд▓ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдмреБрдирд┐рдпрд╛рджреА рдкреНрд░рдмрдВрдзрд┐рдд-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд┐рдпрдВрддреНрд░рдг рдкрде рд╕реНрд╡рд╕реНрде рд╣реИред
рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд┐рд╡рд░рдг:
- рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ fail-closed SSRF рдиреАрддрд┐ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рд░рд╣рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЖрдк
browser.ssrfPolicyрдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рди рдХрд░реЗрдВред - local loopback
openclawрдкреНрд░рдмрдВрдзрд┐рдд рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП, CDP рд╕реНрд╡рд╛рд╕реНрдереНрдп рдЬрд╛рдБрдЪреЗрдВ OpenClaw рдХреЗ рдЕрдкрдиреЗ рд╕реНрдерд╛рдиреАрдп рдирд┐рдпрдВрддреНрд░рдг рддрд▓ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ SSRF рдкрд╣реБрдБрдЪрдпреЛрдЧреНрдпрддрд╛ рдкреНрд░рд╡рд░реНрддрди рдХреЛ рдЬрд╛рдирдмреВрдЭрдХрд░ рдЫреЛрдбрд╝ рджреЗрддреА рд╣реИрдВред - рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕реБрд░рдХреНрд╖рд╛ рдЕрд▓рдЧ рд╣реИред рд╕рдлрд▓
startрдпрд╛tabsрдкрд░рд┐рдгрд╛рдо рдХрд╛ рдЕрд░реНрде рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдмрд╛рдж рдХрд╛openрдпрд╛navigateрд▓рдХреНрд╖реНрдп рдЕрдиреБрдордд рд╣реИред
рд╕реБрд░рдХреНрд╖рд╛ рдорд╛рд░реНрдЧрджрд░реНрд╢рди:
- рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ SSRF рдиреАрддрд┐ рдХреЛ рд╢рд┐рдерд┐рд▓ рди рдХрд░реЗрдВред
- рд╡реНрдпрд╛рдкрдХ рдирд┐рдЬреА-рдиреЗрдЯрд╡рд░реНрдХ рдкрд╣реБрдБрдЪ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ
hostnameAllowlistрдпрд╛allowedHostnamesрдЬреИрд╕реЗ рд╕рдВрдХреАрд░реНрдг рд╣реЛрд╕реНрдЯ рдЕрдкрд╡рд╛рджреЛрдВ рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдВред dangerouslyAllowPrivateNetwork: trueрдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдЬрд╛рдирдмреВрдЭрдХрд░ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкрд░рд┐рд╡реЗрд╢реЛрдВ рдореЗрдВ рдХрд░реЗрдВ рдЬрд╣рд╛рдБ рдирд┐рдЬреА-рдиреЗрдЯрд╡рд░реНрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкрд╣реБрдБрдЪ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдФрд░ рд╕рдореАрдХреНрд╖рд╛ рдХреА рдЧрдИ рд╣реЛред
рдПрдЬреЗрдВрдЯ рдЯреВрд▓реНрд╕ + рдирд┐рдпрдВрддреНрд░рдг рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ
рдПрдЬреЗрдВрдЯ рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдСрдЯреЛрдореЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреВрд▓ рдорд┐рд▓рддрд╛ рд╣реИ:
browser- doctor/status/start/stop/tabs/open/focus/close/snapshot/screenshot/navigate/act
рдпрд╣ рдХреИрд╕реЗ рдореИрдк рд╣реЛрддрд╛ рд╣реИ:
browser snapshotрдПрдХ рд╕реНрдерд┐рд░ UI рдЯреНрд░реА (AI рдпрд╛ ARIA) рд▓реМрдЯрд╛рддрд╛ рд╣реИредbrowser actрдХреНрд▓рд┐рдХ/рдЯрд╛рдЗрдк/рдбреНрд░реИрдЧ/рд╕реЗрд▓реЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдиреИрдкрд╢реЙрдЯrefID рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИредbrowser screenshotрдкрд┐рдХреНрд╕реЗрд▓ рдХреИрдкреНрдЪрд░ рдХрд░рддрд╛ рд╣реИ (рдкреВрд░рд╛ рдкреЗрдЬ, рдПрд▓рд┐рдореЗрдВрдЯ, рдпрд╛ рд▓реЗрдмрд▓ рдХрд┐рдП рдЧрдП refs)редbrowser doctorGateway, Plugin, рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓, рдмреНрд░рд╛рдЙрдЬрд╝рд░, рдФрд░ рдЯреИрдм рддрддреНрдкрд░рддрд╛ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИредbrowserрд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ:- рдирд╛рдорд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ (openclaw, chrome, рдпрд╛ remote CDP) рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП
profileред - рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╣рд╛рдБ рд░рд╣рддрд╛ рд╣реИ рдпрд╣ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП
target(sandbox|host|node)ред - sandboxed рд╕рддреНрд░реЛрдВ рдореЗрдВ,
target: "host"рдХреЗ рд▓рд┐рдПagents.defaults.sandbox.browser.allowHostControl=trueрдЖрд╡рд╢реНрдпрдХ рд╣реИред - рдпрджрд┐
targetрдЫреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ: sandboxed рд╕рддреНрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗsandboxрдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, non-sandbox рд╕рддреНрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗhostрдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред - рдпрджрд┐ рдХреЛрдИ browser-capable node рдХрдиреЗрдХреНрдЯреЗрдб рд╣реИ, рддреЛ рдЯреВрд▓ рдЙрд╕ рдкрд░ auto-route рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬрдм рддрдХ рдЖрдк
target="host"рдпрд╛target="node"рдкрд┐рди рди рдХрд░реЗрдВред
- рдирд╛рдорд┐рдд рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ (openclaw, chrome, рдпрд╛ remote CDP) рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП
рдпрд╣ рдПрдЬреЗрдВрдЯ рдХреЛ deterministic рд░рдЦрддрд╛ рд╣реИ рдФрд░ brittle selectors рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред
рд╕рдВрдмрдВрдзрд┐рдд
- рдЯреВрд▓реНрд╕ рдУрд╡рд░рд╡реНрдпреВ - рд╕рднреА рдЙрдкрд▓рдмреНрдз рдПрдЬреЗрдВрдЯ рдЯреВрд▓
- рд╕реИрдВрдбрдмреЙрдХреНрд╕рд┐рдВрдЧ - sandboxed рдкрд░рд┐рд╡реЗрд╢реЛрдВ рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд┐рдпрдВрддреНрд░рдг
- рд╕реБрд░рдХреНрд╖рд╛ - рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд┐рдпрдВрддреНрд░рдг рдЬреЛрдЦрд┐рдо рдФрд░ hardening