账号与登录态 / Accounts & Sign-in

权限与安全

agent 用的是你已登录的 Chrome,所以它能做的事和你一样多。chrome-use 在每个操作前按站点检查一次:敏感站点和高风险操作会先停下来等你决定。检查发生在 CLI 里,页面看不到任何痕迹。

什么时候会先问你

通过扩展驱动你自己的 Chrome 时,前三行默认会停下来等你确认,后三行默认关闭、可按需打开:

情况默认判断方式
敏感站点:银行、券商、加密货币交易所、政府证件站点该站点上的每个操作(打开、点击、输入、上传、下载)都先问,直到你选“始终允许此站点”仓库里维护的列表 cli/src/native/sensitive_sites.json,一个域名包含它的子域名
在支付卡字段里输入(payment_input)每次都问,已允许的站点也问autocomplete 为 cc-*,名字或 id 里有 card number、cvv、cvc、expiry 等,无障碍名里有“卡号”“安全码”“有效期”等。fill --from-env 按目标字段判断,本身不算
购买(purchase)每次都问,已允许的站点也问点击的元素名称像购买按钮:Buy now、Place order、Pay、Complete purchase、立即购买、提交订单、去支付、購入する等
在密码或一次性验证码字段里输入(password_input)默认关闭:agent 经常自己登录(auth login、fill --from-env、Bitwarden 填充)。可在选项页或策略的 ask 里打开type=password、autocomplete 为 *-password / one-time-code,名字或无障碍名里有 password、“密码”“验证码”等
下载(download)默认关闭:常有无人值守的下载任务。可在选项页或策略的 ask 里打开download、download url
第一次在新站点上操作默认关闭,可在选项页按类别打开没有“始终允许”或屏蔽记录的站点

这些判断是启发式的:没走 ref 或选择器的输入(例如先聚焦再 keyboard type)、名称不像购买的支付按钮,可能不会被识别。它是一道让人看一眼的闸,不是沙箱。

--launch 和 --cdp 会话不带这些默认规则(那里通常没有人在看),只按你的策略文件执行。

怎么批准

被拦下的命令不会执行,退出码为 3,并给出确认 ID:

agent 看到的输出
$ chrome-use click @e7
Confirmation required:
  click: www.chase.com is a banking or payments site; chrome-use asks before an agent acts there (click)
  Site: www.chase.com
  Ask the user to choose Allow once, Always allow on this site, or Decline
  in the chrome-use side panel or its notification. Then:
  Run: chrome-use confirm s_3f9a0c2b1d   (waits up to 40s for the choice)
  Or:  chrome-use deny s_3f9a0c2b1d

同时 Chrome 会弹一条通知,侧栏和选项页的“权限与安全”里会出现一张卡片,有三个选项:仅允许这一次、始终允许此站点、拒绝。agent 运行 chrome-use confirm <id> 后会等你最多 40 秒,你选了允许就执行原命令。

只有你能在扩展里批准:agent 自己运行 confirm 不会让操作通过。chrome-use deny <id> 会撤回请求。

在终端里用 --confirm-interactive 时,提示变成 [y]es once / [a]lways on this site / [N]o,选 always 会写进扩展的已允许站点列表。

没有扩展(--launch、--cdp)或扩展版本早于 0.5.93 时,confirm <id> 直接批准,与 --confirm-actions 一样。

已允许站点与权限记录

扩展选项页的“权限与安全”卡片里可以:

关闭或扩展默认规则

policy.json
{
  "deny": [],
  "sites": {
    "allow": ["intranet.example.com"],
    "deny": ["evil.example"],
    "confirm": ["payroll.example.com"],
    "sensitiveSites": true,
    "firstVisit": ["navigation", "upload"],
    "ask": ["payment_input", "purchase", "download"]
  }
}

allow 免确认,deny 直接拒绝,confirm 把站点加进先问列表;sensitiveSites、firstVisit、ask 的含义和选项页相同。策略文件里的 sites 对 --launch、--cdp 会话同样生效。想给内置列表补站点,欢迎直接提 PR 修改 sensitive_sites.json。

优先级从高到低:组织策略 → 你在扩展里的选择 → 策略文件 → 内置默认。屏蔽总是优先于允许;“每次都问”的操作即使在已允许站点上也会问。

组织管理(Chrome 企业策略)

扩展读取 chrome.storage.managed(manifest 里声明了 managed-schema.json)。管理员设置的值覆盖用户设置,选项页上显示为“已托管”且不能修改。

键作用
allowedDomains非空时,agent 只能在这些站点上操作
blockedDomainsagent 不能在这些站点上操作
confirmDomains这些站点上每个操作都先问,用户的“始终允许”也不跳过
sensitiveSites / ask / firstVisit锁定对应设置
actionPolicy与 --action-policy 文件相同的格式,叠加在本地策略之上:deny 拒绝,confirm 需要用户批准
disabledAgents侧栏不再提供这些 agent(codex、claude、opencode、pi)

Windows / Linux 的 Chrome 策略 JSON(Linux 放在 /etc/opt/chrome/policies/managed/):

chrome-use.json
{
  "3rdparty": {
    "extensions": {
      "ciiljdlhdpfckdcfkphgmfalanpdejep": {
        "allowedDomains": ["example.com", "corp.example.com"],
        "blockedDomains": ["mail.example.com"],
        "confirmDomains": ["payroll.example.com"],
        "sensitiveSites": true,
        "ask": ["payment_input", "purchase", "download"],
        "actionPolicy": { "deny": ["upload", "eval"], "confirm": ["download_url"] },
        "disabledAgents": ["opencode"]
      }
    }
  }
}

macOS 的 .mobileconfig 片段(放进 PayloadContent 数组):

chrome-use.mobileconfig
<dict>
  <key>PayloadType</key>
  <string>com.google.Chrome.extensions.ciiljdlhdpfckdcfkphgmfalanpdejep</string>
  <key>PayloadIdentifier</key>
  <string>com.example.chrome-use.policy</string>
  <key>PayloadUUID</key>
  <string>9A6E0C1E-0000-4000-8000-000000000781</string>
  <key>PayloadVersion</key>
  <integer>1</integer>
  <key>allowedDomains</key>
  <array><string>example.com</string><string>corp.example.com</string></array>
  <key>blockedDomains</key>
  <array><string>mail.example.com</string></array>
  <key>sensitiveSites</key>
  <true/>
  <key>actionPolicy</key>
  <dict>
    <key>deny</key>
    <array><string>upload</string></array>
  </dict>
  <key>disabledAgents</key>
  <array><string>opencode</string></array>
</dict>

扩展 ID 以你部署的版本为准:上面是自签名构建的 ID,Chrome 应用商店版本的 ID 不同。在 chrome://policy 里可以确认策略是否生效。

隐身模式下的行为

所有检查都在 CLI 守护进程里完成:站点来自命令里的 URL 或守护进程记录的当前页面地址,输入框是否敏感用 CDP 的 DOM.describeNode 读取属性,不在页面里执行任何脚本。批准界面在扩展自己的页面(侧栏、选项页、通知)里。页面看不到新的全局变量、DOM 节点、事件或请求,隐身模式不受影响。