The useful signal is a state change
Evlat is a new macOS status strip for coding agents and long-running commands. Its pitch is specific. It shows whether each session is working, waiting, done, idle, failed, or disconnected. A click returns to the owning terminal or editor.[1]
That is a better unit than "agent activity." Activity is constant. Attention should follow a transition that changes what the operator can do. Approval needs a decision. Failure needs inspection. A dropped connection makes the last known state stale. Work in progress usually needs nothing.
Hooks provide events, not a finished policy
Claude Code documents separate hook events for permission requests, notifications, tool failures, completed turns, failed turns, idle teammates, and session end. A hook receives structured context and can run a command or HTTP handler.[2]
Codex exposes lifecycle hooks for events that include permission requests, tool results, stops, interrupts, and session boundaries. It also has a user-level notify command that receives a JSON payload. Project configuration cannot replace that machine-local notification setting.[3]
Neither event list decides what deserves the operator's focus. That policy belongs outside the agent. Keep the event name, session identity, host, age, and return path. Then collapse repeated progress into one row.
Do not hide transport failure
Evlat says remote sessions travel over the operator's existing SSH route. Its interface marks a lost link as "no connection" and retries instead of leaving the old state lit. The documentation also says evlat watch passes through output and exit status. If the app is absent, the wrapped command still runs.[1]
Those are sound interface choices. A monitor should fail open for the job and fail visible for the observer. A broken status strip must not stop a build. It must not pretend the build is still healthy either.
Inspect the tool before trusting the strip
The public repository identifies the current app as macOS 14 or later. The project publishes source, a signed release, and documentation for its local socket and command wrappers. The repository was inspected at revision 771b55d. The Mac-only app was not installed or run in this Linux publishing environment.[4]
A status strip can shorten the walk back to a terminal. It cannot prove that the terminal state is complete, that a remote link is trustworthy, or that answering an approval is safe. Keep the original session as the authority.