Cursor Agent Beacon
Deterministic monitoring of Cursor agent activity using native Cursor Hooks.
Cursor fires hook events automatically during the agent lifecycle — the model does not need to report status. Cursor Agent Beacon maps those events to a small set of high-level states and publishes updates through pluggable sinks (file, log, HTTP).
Use it today for a GNOME top-bar status panel and CLI (doctor / status). Optionally drive a physical VIEWE 480×480 panel (ESP32 firmware + local bridge); other displays can speak the same serial protocol.
GNOME status panel
| Thinking | Running shell |
|---|---|
On Ubuntu/GNOME, the extension reads ~/.local/share/cursor-agent-beacon/ and shows the focused agent session in the top bar (state, tool name, turn timer). The menu lists open workspace sessions. See GNOME Status Panel.
Quick start
From git (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 (Alt+F2 → r on X11, or log out/in on Wayland).
Verify and inspect:
cursor-agent-beacon doctor
cursor-agent-beacon status # after an Agent chat
Raw status file (any project):
cat ~/.local/share/cursor-agent-beacon/status.json
See Getting Started for bridge, themes, and development setup.
Features
Desktop (shipped)
- One-shot setup:
./setup.shorpip install+cursor-agent-beacon setup doctor/status/uninstallCLI- GNOME status panel (v0.10 pre-release) with multi-session registry
- Normalized states:
idle,waiting,thinking,running_shell,running_mcp,success,error - Fail-open hooks — never block Cursor
Themes & hardware (optional)
- Standard pixel-robot GIF theme (480×480) in
themes/standard/assets/ - Custom themes in
themes/custom/<name>/ - Local bridge (
cursor-agent-beacon bridge): HTTP → serial (ESP32) - VIEWE UEDX48480021-MD80ET firmware + flash script (setup)
- Bring-up notes for other displays (hardware hub)
Architecture
Cursor → ~/.cursor/hooks.json → cursor-agent-beacon run → mapper → sinks
↓
~/.local/share/cursor-agent-beacon/ → GNOME panel
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 |
~/.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.4 |
| One-shot setup + doctor CLI | ✅ v0.4 |
| Multi-session file sink | ✅ v0.4 |
| GNOME status panel | 🧪 v0.10 pre-release |
| Standard GIF theme | ✅ bundled |
| Custom GIF themes | ✅ themes/custom/ |
| Local bridge service | ✅ v0.4 |
| VIEWE MD80ET firmware (GIF + caption) | ✅ in-repo (firmware/viewe/) |
See docs/roadmap.md.
Documentation
- Getting Started
- Hooks Reference
- GNOME Status Panel
- Architecture
- Hardware displays (hub + other boards)
- Hardware — VIEWE setup
- Roadmap
- Changelog
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 -m "not smoke"
ruff check src tests
ruff format --check src tests
pyright
python -m build
Systemd user service template: packaging/cursor-agent-beacon-bridge.service
# Install + enable bridge in the background (uses config/hardware.env)
./scripts/install-bridge-service.sh
# logs: journalctl --user -u cursor-agent-beacon-bridge -f
License
MIT — see LICENSE.
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.4.0.tar.gz.
File metadata
- Download URL: cursor_agent_beacon-0.4.0.tar.gz
- Upload date:
- Size: 92.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1148689cd69791ec8ea6d94a8921e42157484a97c091dfe1ce39bb50388f7078
|
|
| MD5 |
9596ad74f12a3c29107a430df1bd174d
|
|
| BLAKE2b-256 |
257b3f143b1955cd7d95e46157a0ebb63d6349afa6ed23244a0d53bf32ad951d
|
File details
Details for the file cursor_agent_beacon-0.4.0-py3-none-any.whl.
File metadata
- Download URL: cursor_agent_beacon-0.4.0-py3-none-any.whl
- Upload date:
- Size: 116.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f535295ff94b584c560e104d50376eb585af8630b5190567a8eb21dead381c17
|
|
| MD5 |
6dc5e89480bfeb33014e13da2eb561f1
|
|
| BLAKE2b-256 |
181b4d596a41825f00579048be0fdc88742c711bd642da81e3de9ceda60bcf02
|