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

Metadata

Release files for agentwatcher 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for agentwatcher 0.1.1
File Size Uploaded
agentwatcher-0.1.1.tar.gz 5.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for agentwatcher 0.1.1
File Interpreter ABI Platform
agentwatcher-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 10.8 kB

Release files / agentwatcher-0.1.1.tar.gz

Download URL agentwatcher-0.1.1.tar.gz
Size 5.0 kB
Tags Source
SHA-256 checksum
How to use checksums
b0bb3a7242f318e5d7917d73eed8b174fa776007cdc6d8f76fa2c1c2b5c1832f
BLAKE2b-256 checksum
How to use checksums
2a2c3d1d1993535930e60d373a08f40e88f220d4884c94eb8c99e163ad11b6a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / agentwatcher-0.1.1-py3-none-any.whl

Download URL agentwatcher-0.1.1-py3-none-any.whl
Size 5.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f0efdf9522cde264067eabde8e06f92cbc27029015855aff8848e3f27e9d1f17
BLAKE2b-256 checksum
How to use checksums
84e38c9167d53fedfdd6d07ce6a6fedfb83a52a382583a7d0dcd0503604d956c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page