Skip to main content

agentwatch

React DevTools, for browser AI agents. Drop a translucent overlay onto every tab that shows what your agent is trying to do, what it just clicked, and what it's about to do next.

PyPI Chrome License: MIT


Why

Browser-use, Playwright agents, computer-use models — they're all black boxes to the developer watching them. The agent moves the mouse, types into a field, the page reloads, then it errors out, and you're left guessing what it thought it was doing.

agentwatch adds a tiny floating overlay to every tab. Your agent code pushes one-line status updates ("goal: book a flight", "last action: clicked search", "next action: type SFO"), and the overlay shows them live, framework-agnostic.

The result: bug screenshots that are self-explanatory. Demo GIFs that viewers actually understand. Pair-debugging sessions where the human can intervene the moment the agent goes off-rails.


Architecture

┌──────────────────────────┐        ws://127.0.0.1:8765        ┌──────────────────────────┐
│  Your agent (any lang)   │ ──────────────────────────────▶   │  Chrome MV3 extension    │
│  agentwatch.announce(    │      broadcasts status JSON       │  injects floating overlay│
│      goal=..., last=...) │                                   │  on every tab            │
└──────────────────────────┘                                   └──────────────────────────┘

The SDK runs a localhost WebSocket broadcaster in a background thread. The extension's content script connects to it on every page load. Each announce() call updates the overlay in place with a green flash.


Install (2 steps)

1. Install the Chrome extension

git clone https://github.com/yubinkim444/agentwatch.git
cd agentwatch

In Chrome / Edge / Brave:

  • Open chrome://extensions
  • Toggle Developer mode (top-right)
  • Click Load unpacked
  • Select the extension/ folder

A small overlay appears in the bottom-right of every tab, showing a disconnected (yellow) dot until your agent connects.

2. Install the SDK

pip install agentwatcher

Use it

Python

from agentwatch import AgentWatch

with AgentWatch() as aw:
    aw.announce(goal="Book a one-way flight SFO → JFK for tomorrow")

    # ...do agent stuff...

    aw.announce(step=1, last_action="Opened google.com/flights",
                next_action="Click the origin field")
    # ...
    aw.announce(step=2, last_action="Typed 'SFO'",
                next_action="Click the destination field")

Or imperatively, without the context manager:

import agentwatch
agentwatch.start()
agentwatch.announce(goal="...", last_action="...", next_action="...")

Any other language

Open a WebSocket to ws://127.0.0.1:8765 and send JSON like:

{"goal": "Book a flight", "last_action": "Clicked search", "next_action": "Type SFO"}

Every connected tab's overlay updates immediately.


Recognized fields

Field What the overlay shows
goal Top-line objective.
last_action What the agent just did.
next_action What the agent is about to do.
step Optional step counter / index.
error Highlighted in red. The error row only appears when set.

Any other keys are kept in the broadcast payload but not rendered by the default overlay — fork the extension if you want to add custom rows.


Pairs nicely with

  • playwright, selenium, browser-use, any computer-use agent.
  • A screen-recorder. The overlay + your tool together produce demo GIFs that explain themselves.

Companion projects


License

MIT © yubinkim444

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agentwatcher-0.1.0.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agentwatcher-0.1.0-py3-none-any.whl (5.0 kB view details)

Uploaded Python 3

File details

Details for the file agentwatcher-0.1.0.tar.gz.

File metadata

  • Download URL: agentwatcher-0.1.0.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for agentwatcher-0.1.0.tar.gz
Algorithm Hash digest
SHA256 d931a3cd4f1f3e25b90a65716589cfbe949987427e9fd7fa0c211ceab09b4dd4
MD5 6125ca1362c3310d5de4092e5477a427
BLAKE2b-256 c637cb2328dfd51658fa7833ad93e2be03b6d87aa9c575cf537fd2c4cd4512f9

See more details on using hashes here.

File details

Details for the file agentwatcher-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: agentwatcher-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 5.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for agentwatcher-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f02a7ff435e1869257c73696e61c70417efb37b19672c972d1cc04c8064379c9
MD5 260fdc69158f222b8ec9b1b08420c34d
BLAKE2b-256 a47bc0c2b34d57c1aef3bcefdfb2c50d8975540edc9258b4548cc845d16b0e59

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page