Browser Tool
Chrome automation with persistent login sessions. Log in once, and the agent can browse authenticated sites on your behalf.
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
aidaemon browser loginChrome 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
[browser]
enabled = trueThat's it. The agent can now browse authenticated sites using your saved sessions.
Configuration
| Key | Type | Default | Description |
|---|---|---|---|
enabled | bool | false | Enable the browser tool |
headless | bool | true | Run Chrome without a visible window |
screenshot_width | int | 1280 | Browser viewport width in pixels |
screenshot_height | int | 720 | Browser viewport height in pixels |
user_data_dir | string | ~/.aidaemon/chrome-profile | Chrome profile directory for persistent sessions |
profile | string | Default | Chrome profile name within user_data_dir |
remote_debugging_port | int | null | Connect to an existing Chrome instance on this port (advanced) |
Minimal config
[browser]
enabled = trueEverything else has sensible defaults. Sessions are automatically saved to ~/.aidaemon/chrome-profile/.
Actions
| Action | Parameters | Description |
|---|---|---|
navigate | url | Navigate to URL, wait 2s for page load |
screenshot | selector? | PNG screenshot of full page or specific element |
click | selector | Click an element by CSS selector |
fill | selector, value | Type text into a form input |
get_text | selector? | Extract text content from element or full page |
execute_js | script | Run arbitrary JavaScript and return the result |
wait | selector, 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 loginanytime to add new services or refresh expired sessions
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.
# 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 hereFor 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.
# Same setup โ separate Chrome instance, no conflict
aidaemon browser login
# Your personal Chrome (47 tabs, extensions, bookmarks) โ untouched
# Aidaemon's Chrome (~/.aidaemon/chrome-profile/) โ isolatedAdvanced: Connect to existing Chrome
For power users who want to connect to a Chrome instance already running with a remote debugging port:
[browser]
enabled = true
remote_debugging_port = 9222Start 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:
cargo build --release --features browserRequires a Chromium-based browser installed (Chrome, Chromium, Brave, or Edge).