Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Beacon
======

A local agent status tracking and tmux notification tool.
Agent lifecycle hooks write a small bounded JSON snapshot, tmux renders
it, notifications surface events, and `beacon jump` returns to the most
recently completed pane.

Beacon observes the current machine only. It does not schedule tasks,
own tmux sessions, or require any orchestration service. Multiple
machines run independent instances.


Features
--------

  * Agent lifecycle hooks (prompt, stop, notification, permission)
  * tmux status-right rendering: CPU, memory, process count, disk
  * Per-pane / per-window / per-session memory aggregation
  * Working / waiting / blocked / completed status tracking
  * Jump to the last completed live pane
  * macOS and Linux desktop notifications with click-to-jump
  * launchd (macOS) and systemd (Linux) service management
  * No network, database, or model calls


Build
-----

    go build ./cmd/beacon


Install
-------

Requirements: Go 1.26+ and tmux.

    ./install.sh
    beacon doctor

The install script builds the Go binary, installs it to
~/.local/lib/beacon/, symlinks it to ~/.local/bin/beacon, and sets up
the daemon service (launchd on macOS, systemd on Linux).


Quick start
-----------

  1. Start the daemon:

       beacon daemon start

  2. Add hooks to your agent config (e.g. Claude Code):

       {
         "hooks": {
           "UserPromptSubmit": [{"hooks": [{"type": "command", "command": "beacon hook prompt"}]}],
           "Stop": [{"hooks": [{"type": "command", "command": "beacon hook stop"}]}]
         }
       }

  3. Add to tmux:

       set -g status-right '#(beacon status-tmux "#{client_width}" "#{status-bg}" "#{session_name}" "#{window_index}" "#{pane_id}" "#{window_id}")'
       bind-key P run-shell 'beacon jump'

  4. Report status from any agent or script:

       beacon report working 'running tests'
       beacon report completed 'tests passed'


Commands
--------

    beacon                      show status
    beacon daemon start         start the daemon
    beacon daemon stop          stop the daemon
    beacon daemon status        check daemon status
    beacon report <state> [msg] report agent state
    beacon status-tmux [args]   render status for tmux (read-only)
    beacon jump [pane_id]       jump to last completed pane
    beacon doctor               check daemon, socket, and cache
    beacon reset                clear all agent state


Configuration
-------------

State: ${XDG_DATA_HOME:-~/.local/share}/beacon/panes.json
Socket: ${XDG_RUNTIME_DIR:-/tmp}/beacon.sock

The daemon samples metrics in three tiers:

    Fast       4s    CPU, memory pressure, process count
    Footprint  10s   per-pane / window / session tmux memory
    Slow       60s   root disk usage


Development
-----------

    go test ./...           run all tests
    go test -race ./...     run with race detector
    go build ./cmd/beacon   build the binary


License
-------

MIT

About

Local agent status tracking and tmux notification tool

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages