Manual login (recommended)

When a site requires login, sign in manually in the host browser's apus profile. Automated logins often trigger anti-bot defenses and can lock the account.

For an owner-authorized task, the agent may use owner-supplied credentials through browser form fills. Keep credentials out of chat and replies.

Use the host browser (manual login) for both reading (search/threads) and posting on X/Twitter and other bot-sensitive sites. Sandboxed browser sessions are more likely to trigger bot detection.

Back to the main browser docs: Browser.

Passkeys in headless browsers

Chrome's invisible passkey dialog can block clicks and key presses in headless mode. Apus dismisses modal passkey requests in headless Chromium so the site can offer another sign-in method, such as a password or one-time code. Passkey autofill requests and headed browsers keep Chrome's normal behavior.

Use a headed profile to sign in with a passkey or security key. If a page already requested a passkey before Apus connected, navigate to the same URL to reload it. Attached and remote browsers must report their headless launch flags; a failed detection is logged. existing-session profiles are unchanged.

Which Chrome profile is used?

Apus controls a dedicated Chrome profile named apus (orange-tinted UI), separate from your daily browser profile.

For agent browser tool calls:

Two ways to access the apus profile:

  1. Ask the agent to open the browser, then log in yourself.
  2. Open it via CLI:
apus browser start
apus browser open https://x.com

For a non-default profile, put --browser-profile <name> before the subcommand (default is apus):

apus browser --browser-profile <name> open https://x.com

Sandboxing: allow host browser access

If the agent is sandboxed, its browser tool calls default to the sandbox browser, not the host. To let the agent target the host browser instead:

{
  agents: {
    defaults: {
      sandbox: {
        mode: "non-main",
        browser: {
          allowHostControl: true,
        },
      },
    },
  },
}

CLI invocations always target the host browser, never the sandbox, so you can open the host browser yourself regardless of this setting:

apus browser --browser-profile apus open https://x.com

Once sandbox.browser.allowHostControl: true is set, the agent's browser tool calls can target the host too. Alternatively, disable sandboxing for the agent that posts updates.

Related