Deterministic Cursor agent status monitoring via native hooks
Project description
Cursor Agent Beacon
Deterministic monitoring of Cursor agent activity using native Cursor Hooks.
Repository: https://github.com/suribe06/cursor-agent-beacon
Cursor fires hook events automatically during the agent lifecycle. Cursor Agent Beacon listens to those events, maps them to a small set of high-level states, and publishes status updates through pluggable sinks.
This is the software foundation for a physical status panel (ESP32 + color TFT). v0.3 ships Python hooks, bundled standard GIF themes, a local bridge service, and one-shot setup.
Features
- One-shot setup:
./setup.shorpip install+cursor-agent-beacon setup doctor/status/uninstallCLI for install verification and teardown- Normalized status model (
idle,thinking,running_shell,running_mcp,success,error, ...) - Standard theme: 8 animated pixel-robot GIFs (480×480) in
themes/standard/assets/ - Custom themes: drop your own GIFs in
themes/custom/<name>/ - Fail-open behavior — hooks never block Cursor
- JSON log sink (stderr) for the Hooks output channel
- File sink with latest status snapshot
- HTTP sink for the local bridge service
- Bridge service (
cursor-agent-beacon bridge):POST /status→ theme GIF resolution → serial commands - GNOME status panel (v0.10, pre-release): Ubuntu top-bar indicator —
gnome-extension/+docs/gnome-panel.md - Multi-session registry: per-chat status under
~/.local/share/cursor-agent-beacon/
Quick start
From git (recommended for development)
git clone https://github.com/suribe06/cursor-agent-beacon.git
cd cursor-agent-beacon
./setup.sh
From PyPI
python3 -m venv .venv
source .venv/bin/activate
pip install "cursor-agent-beacon[bridge]"
cursor-agent-beacon setup
Restart Cursor when setup finishes. On Ubuntu, reload GNOME Shell if the top-bar panel does not appear.
Verify installation:
.venv/bin/cursor-agent-beacon doctor
After using the agent:
.venv/bin/cursor-agent-beacon status
Check status (any project):
cat ~/.local/share/cursor-agent-beacon/status.json
See Getting Started for bridge, themes, and development setup.
Architecture
Cursor → hooks.json → hook-handler.py → cursor_agent_beacon → sinks
Read more in docs/architecture.md.
Configuration
| Variable | Default | Description |
|---|---|---|
CURSOR_AGENT_BEACON_LOG |
true |
Emit JSON lines to stderr |
CURSOR_AGENT_BEACON_FILE |
true |
Write latest status file |
CURSOR_AGENT_BEACON_STATUS_FILE |
.cursor-agent-beacon/status.json (project) or ~/.local/share/cursor-agent-beacon/status.json (user install) |
Status snapshot path |
CURSOR_AGENT_BEACON_HTTP_URL |
unset | Bridge POST /status endpoint |
CURSOR_AGENT_BEACON_BRIDGE_HOST |
127.0.0.1 |
Bridge bind address |
CURSOR_AGENT_BEACON_BRIDGE_PORT |
8765 |
Bridge HTTP port |
CURSOR_AGENT_BEACON_SERIAL_PORT |
unset | ESP32 serial device (dry-run if unset) |
CURSOR_AGENT_BEACON_SERIAL_BAUD |
115200 |
Serial baud rate |
CURSOR_AGENT_BEACON_THEME |
standard |
Theme id (standard or custom theme name) |
CURSOR_AGENT_BEACON_THEMES_DIR |
packaged themes/ or repo themes/ |
Root folder for theme packs |
CURSOR_AGENT_BEACON_REDACT_CONTENT |
false |
Hide prompt/response text in status |
Project status
| Component | Status |
|---|---|
| Python hook handler | ✅ v0.3 |
| Multi-session file sink | ✅ v0.3 |
| One-shot setup + doctor CLI | ✅ v0.3 |
| GNOME status panel | 🧪 v0.10 pre-release |
| Standard GIF theme | ✅ bundled |
| Custom GIF themes | ✅ themes/custom/ |
| Local bridge service | ✅ v0.2 |
| VIEWE display firmware | 🔜 planned |
See docs/roadmap.md.
Documentation
Contributing
See CONTRIBUTING.md. Please read the Code of Conduct before participating.
Report security issues privately — see SECURITY.md.
Development
./setup.sh
source .venv/bin/activate
pip install -e ".[dev,bridge]"
pytest
ruff check src tests
ruff format --check src tests
pyright
python -m build
cursor-agent-beacon bridge
cursor-agent-beacon install-hooks
PYTHONPATH=src python3 -m cursor_agent_beacon.cli map examples/sample-events/stop_completed.json
Systemd user service template: packaging/cursor-agent-beacon-bridge.service
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cursor_agent_beacon-0.3.1.tar.gz.
File metadata
- Download URL: cursor_agent_beacon-0.3.1.tar.gz
- Upload date:
- Size: 91.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4436c78f4871302d47296aa65e7ec854bf23cb2e9d9eb1a0a1e395db9756a85
|
|
| MD5 |
c9a92b7e9e23f54887146215261db218
|
|
| BLAKE2b-256 |
ec0a542708ff13c07de03c909ccee2418dada93cbb85890a682eda74434710e7
|
File details
Details for the file cursor_agent_beacon-0.3.1-py3-none-any.whl.
File metadata
- Download URL: cursor_agent_beacon-0.3.1-py3-none-any.whl
- Upload date:
- Size: 115.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7198154dbd01e4dd9331de45f5db8c747b03b132916a9d55c0d7344387a1e0a1
|
|
| MD5 |
e9f8973e3a43f69424f819e87b5d75fc
|
|
| BLAKE2b-256 |
8889165b3e442f7a4f707073586b07f71b0f9d2ba243dbc73678ca40aa7bdffa
|