Tools

рдмреНрд░рд╛рдЙрдЬрд╝рд░ (OpenClaw-рдкреНрд░рдмрдВрдзрд┐рдд)

OpenClaw рдПрдХ рд╕рдорд░реНрдкрд┐рдд Chrome/Brave/Edge/Chromium рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдПрдЬреЗрдВрдЯ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЗ рдирд┐рдЬреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдЕрд▓рдЧ-рдерд▓рдЧ рд╣реЛрддреА рд╣реИ рдФрд░ Gateway рдХреЗ рдЕрдВрджрд░ рдПрдХ рдЫреЛрдЯреА рд╕реНрдерд╛рдиреАрдп рдирд┐рдпрдВрддреНрд░рдг рд╕реЗрд╡рд╛ рдХреЗ рдЬрд╝рд░рд┐рдП рдкреНрд░рдмрдВрдзрд┐рдд рд╣реЛрддреА рд╣реИ (рдХреЗрд╡рд▓ loopback)ред

рд╢реБрд░реБрдЖрддреА рджреГрд╖реНрдЯрд┐:

  • рдЗрд╕реЗ рдПрдХ рдЕрд▓рдЧ, рдХреЗрд╡рд▓-рдПрдЬреЗрдВрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдордЭреЗрдВред
  • openclaw рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЖрдкрдХреА рдирд┐рдЬреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд╣реАрдВ рдЫреВрддреАред
  • рдПрдЬреЗрдВрдЯ рд╕реБрд░рдХреНрд╖рд┐рдд рд▓реЗрди рдореЗрдВ рдЯреИрдм рдЦреЛрд▓ рд╕рдХрддрд╛ рд╣реИ, рдкреЗрдЬ рдкрдврд╝ рд╕рдХрддрд╛ рд╣реИ, рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдЯрд╛рдЗрдк рдХрд░ рд╕рдХрддрд╛ рд╣реИред
  • рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд user рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ Chrome MCP рдХреЗ рдЬрд╝рд░рд┐рдП рдЖрдкрдХреЗ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рд╛рдЗрди-рдЗрди Chrome рд╕рддреНрд░ рд╕реЗ рдЬреБрдбрд╝рддреА рд╣реИред

рдЖрдкрдХреЛ рдХреНрдпрд╛ рдорд┐рд▓рддрд╛ рд╣реИ

  • openclaw рдирд╛рдо рдХреА рдПрдХ рдЕрд▓рдЧ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд╛рд░рдВрдЧреА рдПрдХреНрд╕реЗрдВрдЯ)ред
  • рдирд┐рдпрддрд╛рддреНрдордХ рдЯреИрдм рдирд┐рдпрдВрддреНрд░рдг (рд╕реВрдЪреА/рдЦреЛрд▓рдирд╛/рдлрд╝реЛрдХрд╕/рдмрдВрдж рдХрд░рдирд╛)ред
  • рдПрдЬреЗрдВрдЯ рдХреНрд░рд┐рдпрд╛рдПрдБ (рдХреНрд▓рд┐рдХ/рдЯрд╛рдЗрдк/рдбреНрд░реИрдЧ/рдЪрдпрди), рд╕реНрдиреИрдкрд╢реЙрдЯ, рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ, PDFред
  • рдПрдХ рдмрдВрдбрд▓ рдХреА рдЧрдИ browser-automation skill рдЬреЛ рдПрдЬреЗрдВрдЯреЛрдВ рдХреЛ рд╕реНрдиреИрдкрд╢реЙрдЯ, рд╕реНрдерд┐рд░-рдЯреИрдм, stale-ref, рдФрд░ рдореИрдиреБрдЕрд▓-рдмреНрд▓реЙрдХрд░ рд░рд┐рдХрд╡рд░реА рд▓реВрдк рд╕рд┐рдЦрд╛рддреА рд╣реИ рдЬрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ plugin рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИред
  • рд╡реИрдХрд▓реНрдкрд┐рдХ рдорд▓реНрдЯреА-рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рд╕рдорд░реНрдерди (openclaw, work, remote, ...)ред

рдпрд╣ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЖрдкрдХрд╛ рджреИрдирд┐рдХ рдЙрдкрдпреЛрдЧ рд╡рд╛рд▓рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдПрдЬреЗрдВрдЯ рдСрдЯреЛрдореЗрд╢рди рдФрд░ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд, рдЕрд▓рдЧ-рдерд▓рдЧ рд╕рддрд╣ рд╣реИред

рддреНрд╡рд░рд┐рдд рд╢реБрд░реБрдЖрдд

bash
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 рдЯреВрд▓ рдирд╛рдо рд░рдЬрд┐рд╕реНрдЯрд░ рдХрд░рддрд╛ рд╣реИ:

json5
{  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 рдЬреЛрдбрд╝реЗрдВ:

json5
{  tools: {    profile: "coding",    alsoAllow: ["browser"],  },}

рдПрдХрд▓ рдПрдЬреЗрдВрдЯ рдХреЗ рд▓рд┐рдП, agents.list[].tools.alsoAllow: ["browser"] рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред tools.subagents.tools.allow: ["browser"] рдЕрдХреЗрд▓реЗ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ sub-agent рдиреАрддрд┐ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдХреЗ рдмрд╛рдж рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИред

рдмреНрд░рд╛рдЙрдЬрд╝рд░ plugin рдПрдЬреЗрдВрдЯ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдХреЗ рджреЛ рд╕реНрддрд░ рднреЗрдЬрддрд╛ рд╣реИ:

  • browser рдЯреВрд▓ рд╡рд┐рд╡рд░рдг рдореЗрдВ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣рдореЗрд╢рд╛-рд╕рдХреНрд░рд┐рдп рдЕрдиреБрдмрдВрдз рд╣реЛрддрд╛ рд╣реИ: рд╕рд╣реА рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдЪреБрдиреЗрдВ, refs рдХреЛ рдЙрд╕реА рдЯреИрдм рдкрд░ рд░рдЦреЗрдВ, рдЯреИрдм рд▓рдХреНрд╖реНрдпреАрдХрд░рдг рдХреЗ рд▓рд┐рдП tabId/labels рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдФрд░ рдмрд╣реБ-рдЪрд░рдгреАрдп рдХрд╛рд░реНрдп рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ skill рд▓реЛрдб рдХрд░реЗрдВред
  • рдмрдВрдбрд▓ рдХреА рдЧрдИ browser-automation skill рдореЗрдВ рд▓рдВрдмрд╛ рд╕рдВрдЪрд╛рд▓рди рд▓реВрдк рд╣реЛрддрд╛ рд╣реИ: рдкрд╣рд▓реЗ рд╕реНрдерд┐рддрд┐/рдЯреИрдм рдЬрд╛рдБрдЪреЗрдВ, рдХрд╛рд░реНрдп рдЯреИрдм рдХреЛ рд▓реЗрдмрд▓ рдХрд░реЗрдВ, рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдиреИрдкрд╢реЙрдЯ рд▓реЗрдВ, UI рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рдмрд╛рдж рдлрд┐рд░ рд╕реНрдиреИрдкрд╢реЙрдЯ рд▓реЗрдВ, stale refs рдХреЛ рдПрдХ рдмрд╛рд░ рд░рд┐рдХрд╡рд░ рдХрд░реЗрдВ, рдФрд░ login/2FA/captcha рдпрд╛ camera/microphone рдмреНрд▓реЙрдХрд░ рдХреЛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдореИрдиреБрдЕрд▓ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЗ рд░реВрдк рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВред

Plugin-рдмрдВрдбрд▓ Skills рдПрдЬреЗрдВрдЯ рдХреА рдЙрдкрд▓рдмреНрдз skills рдореЗрдВ рд╕реВрдЪреАрдмрджреНрдз рд╣реЛрддреА рд╣реИрдВ рдЬрдм plugin рд╕рдХреНрд╖рдо рд╣реЛрддрд╛ рд╣реИред рдкреВрд░реА skill рдирд┐рд░реНрджреЗрд╢рд╛рд╡рд▓реА рдорд╛рдВрдЧ рдкрд░ рд▓реЛрдб рд╣реЛрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп turns рдкрд░ рдкреВрд░рд╛ рдЯреЛрдХрди рдЦрд░реНрдЪ рдирд╣реАрдВ рдЖрддрд╛ред

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдорд╛рдВрдб рдпрд╛ рдЯреВрд▓ рдЧрд╛рдпрдм рд╣реИ

рдЕрдЧрд░ рдЕрдкрдЧреНрд░реЗрдб рдХреЗ рдмрд╛рдж openclaw browser рдЕрдЬреНрдЮрд╛рдд рд╣реИ, browser.request рдЧрд╛рдпрдм рд╣реИ, рдпрд╛ рдПрдЬреЗрдВрдЯ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯреВрд▓ рдХреЛ рдЕрдиреБрдкрд▓рдмреНрдз рдмрддрд╛рддрд╛ рд╣реИ, рддреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░рдг plugins.allow рд╕реВрдЪреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ browser рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреЛрдИ рд░реВрдЯ browser рдХреЙрдиреНрдлрд╝рд┐рдЧ рдмреНрд▓реЙрдХ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдЗрд╕реЗ рдЬреЛрдбрд╝реЗрдВ:

json5
{  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 рдореЗрдВ рд░рд╣рддреА рд╣реИрдВред

json5
{  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 рдмрд┐рдирд╛ рдХрд┐рд╕реА рдмреНрд░рд╛рдЙрдЬрд╝рд░-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореЙрдбрд▓ рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреЛ рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

json5
{  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" },    },  },}

рдпрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:

  1. рдПрдЬреЗрдВрдЯ browser screenshot рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ тЖТ рдЫрд╡рд┐ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рдбрд┐рд╕реНрдХ рдкрд░ рдХреИрдкреНрдЪрд░ рд╣реЛрддреА рд╣реИред
  2. рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯреВрд▓ рдореМрдЬреВрджрд╛ image-understanding runtime рд╕реЗ рдкреВрдЫрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╡рд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдП рдЧрдП media image models, shared media models, image-model defaults, рдпрд╛ auth-backed image provider рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред
  3. vision model рдПрдХ рдЯреЗрдХреНрд╕реНрдЯ рд╡рд┐рд╡рд░рдг рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ wrapExternalContent (prompt injection guard) рдХреЗ рд╕рд╛рде рд░реИрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдЬреЗрдВрдЯ рдХреЛ image block рдХреЗ рдмрдЬрд╛рдп text block рдХреЗ рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
  4. рдЕрдЧрд░ 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 рдХреЗ рд▓рд┐рдП рд╕реЗрдЯ рдХрд░реЗрдВред cdpUrl unset рд╣реЛрдиреЗ рдкрд░ рдкреНрд░рдмрдВрдзрд┐рдд рд╕реНрдерд╛рдиреАрдп CDP рдкреЛрд░реНрдЯ рдкрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реЛрддрд╛ рд╣реИред
  • remoteCdpTimeoutMs remote рдФрд░ attachOnly CDP HTTP рдкрд╣реБрдБрдЪ-рдпреЛрдЧреНрдпрддрд╛ рдЬрд╛рдБрдЪреЛрдВ рдФрд░ рдЯреИрдм-рдЦреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ HTTP рдЕрдиреБрд░реЛрдзреЛрдВ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ; remoteCdpHandshakeTimeoutMs рдЙрдирдХреЗ CDP WebSocket handshakes рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред
  • localLaunchTimeoutMs рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд▓реЙрдиреНрдЪ рдХреА рдЧрдИ рдкреНрд░рдмрдВрдзрд┐рдд Chrome рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ CDP HTTP endpoint рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рдмрдЬрдЯ рд╣реИред localCdpReadyTimeoutMs рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЦреЛрдЬреЗ рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж CDP websocket readiness рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╡рд░реНрддреА рдмрдЬрдЯ рд╣реИред рдЗрдиреНрд╣реЗрдВ Raspberry Pi, рд▓реЛ-рдПрдВрдб VPS, рдпрд╛ рдкреБрд░рд╛рдиреЗ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдкрд░ рдмрдврд╝рд╛рдПрдБ рдЬрд╣рд╛рдБ Chromium рдзреАрд░реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдорд╛рди 120000 ms рддрдХ рдзрдирд╛рддреНрдордХ рдкреВрд░реНрдгрд╛рдВрдХ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП; рдЕрдорд╛рдиреНрдп рдХреЙрдиреНрдлрд╝рд┐рдЧ рдорд╛рди рдЕрд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
  • рдмрд╛рд░-рдмрд╛рд░ рдкреНрд░рдмрдВрдзрд┐рдд Chrome launch/readiness рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЛ рдкреНрд░рддрд┐ рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ circuit-broken рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХрдИ рд▓рдЧрд╛рддрд╛рд░ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рдмрд╛рдж, OpenClaw рд╣рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯреВрд▓ рдХреЙрд▓ рдкрд░ Chromium рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдирдП launch рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рдереЛрдбрд╝реА рджреЗрд░ рд░реЛрдХрддрд╛ рд╣реИред startup рд╕рдорд╕реНрдпрд╛ рдареАрдХ рдХрд░реЗрдВ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рди рд╣реЛ рддреЛ рдЙрд╕реЗ рдЕрдХреНрд╖рдо рдХрд░реЗрдВ, рдпрд╛ рдорд░рдореНрдордд рдХреЗ рдмрд╛рдж Gateway рдХреЛ рдкреБрдирдГ рдЖрд░рдВрдн рдХрд░реЗрдВред
  • actionTimeoutMs рдмреНрд░рд╛рдЙрдЬрд╝рд░ act рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдмрдЬрдЯ рд╣реИ рдЬрдм caller timeoutMs рдкрд╛рд╕ рдирд╣реАрдВ рдХрд░рддрд╛ред client transport рдПрдХ рдЫреЛрдЯреА slack window рдЬреЛрдбрд╝рддрд╛ рд╣реИ рддрд╛рдХрд┐ рд▓рдВрдмреЗ рдЗрдВрддрдЬрд╝рд╛рд░ HTTP boundary рдкрд░ timeout рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдкреВрд░реЗ рд╣реЛ рд╕рдХреЗрдВред
  • tabCleanup primary-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/version probes (cdpUrl) рднреА рдЬрд╛рдВрдЪреЗ рдЬрд╛рддреЗ рд╣реИрдВред
  • Gateway/provider HTTP_PROXY, HTTPS_PROXY, ALL_PROXY, рдФрд░ NO_PROXY environment 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.allowPrivateNetwork legacy alias рдХреЗ рд░реВрдк рдореЗрдВ supported рд░рд╣рддрд╛ рд╣реИред
Profile рд╡реНрдпрд╡рд╣рд╛рд░
  • attachOnly: true рдХрд╛ рдорддрд▓рдм рд╣реИ local browser рдХрднреА launch рди рдХрд░реЗрдВ; рдХреЗрд╡рд▓ рддрдм attach рдХрд░реЗрдВ рдЬрдм рдХреЛрдИ рдкрд╣рд▓реЗ рд╕реЗ running рд╣реЛред
  • headless рдХреЛ globally рдпрд╛ рдкреНрд░рддрд┐ local managed profile set рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред Per-profile values browser.headless рдХреЛ override рдХрд░рддреА рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдПрдХ locally launched profile headless рд░рд╣ рд╕рдХрддреА рд╣реИ рдЬрдмрдХрд┐ рджреВрд╕рд░реА visible рд░рд╣рддреА рд╣реИред
  • POST /start?headless=true рдФрд░ openclaw browser start --headless local 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 --json headlessSource рдХреЛ env, profile, config, request, linux-display-fallback, рдпрд╛ default рдХреЗ рд░реВрдк рдореЗрдВ report рдХрд░рддрд╛ рд╣реИред
  • OPENCLAW_BROWSER_HEADLESS=1 current process рдХреЗ рд▓рд┐рдП local managed launches рдХреЛ headless force рдХрд░рддрд╛ рд╣реИред OPENCLAW_BROWSER_HEADLESS=0 ordinary starts рдХреЗ рд▓рд┐рдП headed mode force рдХрд░рддрд╛ рд╣реИ рдФрд░ display server рдХреЗ рдмрд┐рдирд╛ Linux hosts рдкрд░ actionable error return рдХрд░рддрд╛ рд╣реИ; explicit start --headless request рдлрд┐рд░ рднреА рдЙрд╕ рдПрдХ launch рдХреЗ рд▓рд┐рдП wins рдХрд░рддреА рд╣реИред
  • executablePath рдХреЛ globally рдпрд╛ рдкреНрд░рддрд┐ local managed profile set рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред Per-profile values browser.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>.userDataDir set рдХрд░реЗрдВ рдЬрдм 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 рдХрд░рддреА рд╣реИрдВ:

bash
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

json5
{browser: {executablePath: "/Applications/Brave Browser.app/Contents/MacOS/Brave Browser",},}

Windows

json5
{browser: {executablePath: "C:\\Program Files\\BraveSoftware\\Brave-Browser\\Application\\brave.exe",},}

Linux

json5
{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 stop active 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.profiles config рд╕реЗ рдЖрддреА рд╣реИрдВ (local рдХреЗ рд╕рдорд╛рди)ред
  • nodeHost.browserProxy.allowProfiles optional рд╣реИред legacy/default behavior рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ empty рдЫреЛрдбрд╝реЗрдВ: рд╕рднреА configured profiles proxy рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ reachable рд░рд╣рддреА рд╣реИрдВ, profile create/delete routes рд╕рд╣рд┐рддред
  • рдпрджрд┐ рдЖрдк nodeHost.browserProxy.allowProfiles set рдХрд░рддреЗ рд╣реИрдВ, 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"

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:

json5
{  browser: {    enabled: true,    defaultProfile: "browserless",    remoteCdpTimeoutMs: 2000,    remoteCdpHandshakeTimeoutMs: 4000,    profiles: {      browserless: {        cdpUrl: "wss://production-sfo.browserless.io?token=&lt;BROWSERLESS_API_KEY&gt;",        color: "#00AA00",      },    },  },}

Notes:

  • &lt;BROWSERLESS_API_KEY&gt; рдХреЛ рдЕрдкрдиреЗ real Browserless token рд╕реЗ replace рдХрд░реЗрдВред
  • рд╡рд╣ region endpoint рдЪреБрдиреЗрдВ рдЬреЛ рдЖрдкрдХреЗ Browserless account рд╕реЗ match рдХрд░рддрд╛ рд╣реЛ (рдЙрдирдХреЗ docs рджреЗрдЦреЗрдВ)ред
  • рдпрджрд┐ Browserless рдЖрдкрдХреЛ HTTPS base URL рджреЗрддрд╛ рд╣реИ, рддреЛ рдЖрдк direct CDP connection рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ wss:// рдореЗрдВ convert рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ HTTPS URL рдХреЛ keep рдХрд░рдХреЗ OpenClaw рд╕реЗ /json/version discover рдХрд░рд╡рд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЙрд╕реА host рдкрд░ Browserless Docker

рдЬрдм Browserless Docker рдореЗрдВ self-hosted рд╣реЛ рдФрд░ OpenClaw host рдкрд░ run рдХрд░рддрд╛ рд╣реЛ, рддреЛ Browserless рдХреЛ externally managed CDP service рдХреЗ рд░реВрдк рдореЗрдВ treat рдХрд░реЗрдВ:

json5
{  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/version call рдХрд░рддрд╛ рд╣реИ, рдлрд┐рд░ 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/version discovery try рдХрд░рддрд╛ рд╣реИ (scheme рдХреЛ http/https рдореЗрдВ normalise рдХрд░рддреЗ рд╣реБрдП); рдпрджрд┐ discovery webSocketDebuggerUrl return рдХрд░рддреА рд╣реИ рддреЛ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ OpenClaw bare root рдкрд░ direct WebSocket handshake рдкрд░ fallback рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ advertised WebSocket endpoint CDP handshake reject рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди configured bare root рдЙрд╕реЗ accept рдХрд░рддрд╛ рд╣реИ, рддреЛ OpenClaw рдЙрд╕ root рдкрд░ рднреА fallback рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ local Chrome рдХреА рдУрд░ pointed bare ws:// рдлрд┐рд░ рднреА 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 рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред

json5
{  browser: {    enabled: true,    defaultProfile: "browserbase",    remoteCdpTimeoutMs: 3000,    remoteCdpHandshakeTimeoutMs: 5000,    profiles: {      browserbase: {        cdpUrl: "wss://connect.browserbase.com?apiKey=&lt;BROWSERBASE_API_KEY&gt;",        color: "#F97316",      },    },  },}

рдиреЛрдЯреНрд╕:

  • рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВ рдФрд░ рдУрд╡рд░рд╡реНрдпреВ рдбреИрд╢рдмреЛрд░реНрдб рд╕реЗ рдЕрдкрдиреА API Key рдХреЙрдкреА рдХрд░реЗрдВред
  • &lt;BROWSERBASE_API_KEY&gt; рдХреЛ рдЕрдкрдиреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ Browserbase API key рд╕реЗ рдмрджрд▓реЗрдВред
  • Browserbase WebSocket рдХрдиреЗрдХреНрдЯ рдкрд░ рдЕрдкрдиреЗ-рдЖрдк рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рддреНрд░ рдмрдирд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдиреНрдпреБрдЕрд▓ рд╕рддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рдЪрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
  • рдореБрдлрд╝реНрдд рдЯрд┐рдпрд░ рдПрдХ рд╕рд╛рде рдПрдХ рд╕рддреНрд░ рдФрд░ рдкреНрд░рддрд┐ рдорд╛рд╣ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдШрдВрдЯрд╛ рджреЗрддрд╛ рд╣реИред рдкреЗрдб рдкреНрд▓рд╛рди рд╕реАрдорд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рдирд┐рд░реНрдзрд╛рд░рдг рджреЗрдЦреЗрдВред
  • рдкреВрд░реНрдг API рд╕рдВрджрд░реНрдн, SDK рдЧрд╛рдЗрдб рдФрд░ рдЗрдВрдЯреАрдЧреНрд░реЗрд╢рди рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП Browserbase рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЗрдЦреЗрдВред

Notte

Notte рдмрд┐рд▓реНрдЯ-рдЗрди рд╕реНрдЯреЗрд▓реНрде, рд░реЗрдЬрд╝рд┐рдбреЗрдВрд╢рд┐рдпрд▓ рдкреНрд░реЙрдХреНрд╕реА рдФрд░ CDP-рдиреЗрдЯрд┐рд╡ WebSocket Gateway рдХреЗ рд╕рд╛рде рд╣реЗрдбрд▓реЗрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреНрд▓рд╛рдЙрдб рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╣реИред

json5
{  browser: {    enabled: true,    defaultProfile: "notte",    remoteCdpTimeoutMs: 3000,    remoteCdpHandshakeTimeoutMs: 5000,    profiles: {      notte: {        cdpUrl: "wss://us-prod.notte.cc/sessions/connect?token=&lt;NOTTE_API_KEY&gt;",        color: "#7C3AED",      },    },  },}

рдиреЛрдЯреНрд╕:

  • рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВ рдФрд░ рдХрдВрд╕реЛрд▓ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдкреЗрдЬ рд╕реЗ рдЕрдкрдиреА API Key рдХреЙрдкреА рдХрд░реЗрдВред
  • &lt;NOTTE_API_KEY&gt; рдХреЛ рдЕрдкрдиреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ 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 рд╕рдВрджрд░реНрдн:

рдмрд┐рд▓реНрдЯ-рдЗрди рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓:

  • 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 рд╣реЛрддрд╛ рд╣реИ:

json5
{  browser: {    profiles: {      brave: {        driver: "existing-session",        attachOnly: true,        userDataDir: "~/Library/Application Support/BraveSoftware/Brave-Browser",        color: "#FB542B",      },    },  },}

рдлрд┐рд░ рдорд┐рд▓рддреЗ-рдЬреБрд▓рддреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ:

  1. remote debugging рдХреЗ рд▓рд┐рдП рдЙрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ inspect page рдЦреЛрд▓реЗрдВред
  2. remote debugging рд╕рдХреНрд╖рдо рдХрд░реЗрдВред
  3. рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЪрд▓рддрд╛ рд░рд╣рдиреЗ рджреЗрдВ рдФрд░ 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:

bash
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-session
  • status рджрд┐рдЦрд╛рддрд╛ рд╣реИ transport: chrome-mcp
  • status рджрд┐рдЦрд╛рддрд╛ рд╣реИ running: true
  • tabs рдЖрдкрдХреЗ рдкрд╣рд▓реЗ рд╕реЗ рдЦреБрд▓реЗ 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 --autoConnect spawn рдХрд░ рд╕рдХрддрд╛ рд╣реИ

рдиреЛрдЯреНрд╕:

  • рдпрд╣ path isolated openclaw profile рд╕реЗ рдЕрдзрд┐рдХ рдЬреЛрдЦрд┐рдо рд╡рд╛рд▓рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЗ signed-in browser session рдХреЗ рдЕрдВрджрд░ рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддрд╛ рд╣реИред
  • OpenClaw рдЗрд╕ driver рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ launch рдирд╣реАрдВ рдХрд░рддрд╛; рдпрд╣ рдХреЗрд╡рд▓ attach рдХрд░рддрд╛ рд╣реИред
  • OpenClaw рдпрд╣рд╛рдБ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ Chrome DevTools MCP --autoConnect flow рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ 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 рдФрд░ --ref element captures рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ; CSS --element selectors рдирд╣реАрдВред --full-page рдХреЛ --ref рдпрд╛ --element рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдорд┐рд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ред page рдпрд╛ ref-based element screenshots рдХреЗ рд▓рд┐рдП Playwright рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред
  • Actions - click, type, hover, scrollIntoView, drag, рдФрд░ select рдХреЛ snapshot refs рдЪрд╛рд╣рд┐рдП (CSS selectors рдирд╣реАрдВ)ред click-coords visible viewport coordinates рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ рдФрд░ snapshot ref рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреАред click рдХреЗрд╡рд▓ left-button рд╣реИред type slowly=true рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛; fill рдпрд╛ press рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред press delayMs рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ред type, hover, scrollIntoView, drag, select, fill, рдФрд░ evaluate per-call timeouts рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗред select рдПрдХ single value рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИред
  • Wait / upload / dialog - wait --url exact, substring, рдФрд░ glob patterns рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ; wait --load networkidle existing-session profiles рдкрд░ рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИ (рдпрд╣ managed рдФрд░ raw/remote CDP profiles рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред Upload hooks рдХреЛ ref рдпрд╛ inputRef рдЪрд╛рд╣рд┐рдП, рдПрдХ рдмрд╛рд░ рдореЗрдВ рдПрдХ file, рдХреЛрдИ CSS element рдирд╣реАрдВред 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 рдХрд┐рдП рдЧрдП dialogs browserState.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 рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ stable tabId handles рдЬреИрд╕реЗ t1, optional labels, рдФрд░ raw targetIdред Agents рдХреЛ suggestedTargetId рдХрд╛ рдкреБрдирдГ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП; raw ids debugging рдФрд░ compatibility рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд░рд╣рддреЗ рд╣реИрдВред

рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЪрдпрди

рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ launch рдХрд░рддреЗ рд╕рдордп, OpenClaw рдкрд╣рд▓реЗ рдЙрдкрд▓рдмреНрдз рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЪреБрдирддрд╛ рд╣реИ:

  1. Chrome
  2. Brave
  3. Edge
  4. Chromium
  5. 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 start
    • Remote 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 рдлрд┐рд░ рднреА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ

рджреЛрдиреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдиреНрдпреВрдирддрдо рдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

bash
openclaw browser --browser-profile openclaw startopenclaw browser --browser-profile openclaw tabsopenclaw browser --browser-profile openclaw open https://example.com

рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдХреИрд╕реЗ рдкрдврд╝реЗрдВ:

  • рдпрджрд┐ start not 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 рдХреНрд▓рд┐рдХ/рдЯрд╛рдЗрдк/рдбреНрд░реИрдЧ/рд╕реЗрд▓реЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдиреИрдкрд╢реЙрдЯ ref ID рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
  • browser screenshot рдкрд┐рдХреНрд╕реЗрд▓ рдХреИрдкреНрдЪрд░ рдХрд░рддрд╛ рд╣реИ (рдкреВрд░рд╛ рдкреЗрдЬ, рдПрд▓рд┐рдореЗрдВрдЯ, рдпрд╛ рд▓реЗрдмрд▓ рдХрд┐рдП рдЧрдП refs)ред
  • browser doctor Gateway, 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" рдкрд┐рди рди рдХрд░реЗрдВред

рдпрд╣ рдПрдЬреЗрдВрдЯ рдХреЛ deterministic рд░рдЦрддрд╛ рд╣реИ рдФрд░ brittle selectors рд╕реЗ рдмрдЪрд╛рддрд╛ рд╣реИред

рд╕рдВрдмрдВрдзрд┐рдд

Was this useful?
On this page

On this page