ENยทESยทDEยทPTยทFR
โŒ˜K

Browser Tool

Chrome automation with persistent login sessions. Log in once, and the agent can browse authenticated sites on your behalf.

Pre-built Binaries
If you installed via the one-line script or Homebrew, the browser tool is already included. Just enable it in config.toml below. The feature flag is only needed when building from source.

Quick Start

Two steps to get the agent browsing with your login sessions:

1. Log into your services

bash
aidaemon browser login

Chrome opens with a dedicated profile. Log into the services you want the agent to access (Gmail, GitHub, AWS Console, Jira, etc.), then close Chrome. Your sessions are saved to ~/.aidaemon/chrome-profile/ and persist across restarts.

2. Enable the browser tool

config.toml
[browser]
enabled = true

That's it. The agent can now browse authenticated sites using your saved sessions.

Try It
Send the agent a message like "Go to https://mail.google.com and take a screenshot" โ€” it should show your inbox, already logged in.

Configuration

KeyTypeDefaultDescription
enabledboolfalseEnable the browser tool
headlessbooltrueRun Chrome without a visible window
screenshot_widthint1280Browser viewport width in pixels
screenshot_heightint720Browser viewport height in pixels
user_data_dirstring~/.aidaemon/chrome-profileChrome profile directory for persistent sessions
profilestringDefaultChrome profile name within user_data_dir
remote_debugging_portintnullConnect to an existing Chrome instance on this port (advanced)

Minimal config

config.toml
[browser]
enabled = true

Everything else has sensible defaults. Sessions are automatically saved to ~/.aidaemon/chrome-profile/.

Actions

ActionParametersDescription
navigateurlNavigate to URL, wait 2s for page load
screenshotselector?PNG screenshot of full page or specific element
clickselectorClick an element by CSS selector
fillselector, valueType text into a form input
get_textselector?Extract text content from element or full page
execute_jsscriptRun arbitrary JavaScript and return the result
waitselector, timeout_secs?Wait for an element to appear (default 10s timeout)
closeโ€”Close the browser session

Session Persistence

The browser tool uses a dedicated Chrome profile at ~/.aidaemon/chrome-profile/ that stores cookies, local storage, and login sessions. This means:

  • Log in once via aidaemon browser login, sessions persist indefinitely
  • The agent launches Chrome headless with this profile โ€” already authenticated
  • Sessions survive aidaemon restarts and system reboots
  • Re-run aidaemon browser login anytime to add new services or refresh expired sessions
Isolated from Personal Chrome
The agent uses its own Chrome profile, completely separate from your personal browser. Your personal bookmarks, extensions, and sessions are never touched.

Deployment Modes

Isolated instance (recommended)

When running aidaemon on a dedicated server or VM, no other Chrome is running. The agent launches and owns Chrome directly.

bash
# SSH into your instance
ssh user@my-server

# One-time: log into services
aidaemon browser login

# Config
# [browser]
# enabled = true

# Done โ€” agent handles Chrome automatically from here

For headless servers, use SSH with X forwarding (ssh -X) or VNC for the initial login.

Personal computer

When running aidaemon alongside your personal Chrome, the agent launches a separate Chrome instance with its own profile. Both run side by side without conflict.

bash
# Same setup โ€” separate Chrome instance, no conflict
aidaemon browser login

# Your personal Chrome (47 tabs, extensions, bookmarks) โ†’ untouched
# Aidaemon's Chrome (~/.aidaemon/chrome-profile/) โ†’ isolated

Advanced: Connect to existing Chrome

For power users who want to connect to a Chrome instance already running with a remote debugging port:

config.toml
[browser]
enabled = true
remote_debugging_port = 9222

Start Chrome with --remote-debugging-port=9222 and the agent connects to it directly. This shares the Chrome instance's sessions but requires Chrome to be launched with the debugging flag.

Screenshots

Screenshots are captured as PNG and sent to the user via the active channel (Telegram photo, Slack file upload, etc.) with captions describing the page URL.

Use Cases

  • Monitoring โ€” Check dashboards (Grafana, Vercel, AWS Console), screenshot deployment status
  • Data extraction โ€” Scrape JS-rendered pages, pull reports from admin panels
  • Workflow automation โ€” Fill forms, navigate multi-step flows on internal tools
  • Testing โ€” Navigate your deployed app, verify UI, check responsive layouts
  • Authenticated browsing โ€” Interact with any service you've logged into, no API keys needed

Building from Source

The browser tool requires the browser feature flag:

bash
cargo build --release --features browser

Requires a Chromium-based browser installed (Chrome, Chromium, Brave, or Edge).