
Evlat
Know which AI coding agent is waiting on you
68 followers
Know which AI coding agent is waiting on you
68 followers
Evlat is a thin strip on your Mac's screen edge, one ring per Claude Code or Codex session. When one needs a permission or an answer, it turns amber; one click opens its terminal tab. It also tracks long commands and remote servers. Native, no permissions.







Congrats on the launch! 🚀🚀
this is my exact problem. i usually have three or four worktrees of the same repo open with an agent in each, ahd ill come back twenty minutes later to find one of them has been sitting on a permission prompt the whole time.
when there are several rings up, can you tell which is which?? same repo different branches is the case that breaks most tools for me 👀
@seenew Thanks Shinyoo! 🙌 Your exact case shipped today in 0.1.9: when worktrees of the same repo are on different branches, each row shows its branch. A waiting prompt turns amber right away, and you can turn on a reminder if it sits too long. You're thanked in the release notes 🙂
Doesnt track Codex session
@vilmer_frost Thanks for flagging! You're most likely using the Codex desktop app. Evlat tracks Codex through its official hooks, and right now the desktop app doesn't run hooks at all. The same ~/.codex/hooks.json fires every event from the Codex CLI but nothing from the app. It's a known upstream regression: https://github.com/openai/codex/issues/21639
So today Evlat tracks Codex CLI sessions. Once OpenAI fixes hooks in the app, those sessions should show up with no change on Evlat's side. If you're on the CLI and still see nothing, let me know and I'll dig in!
@kalaomer one more request!! I'm using @Herdr now inside @cmux and it's AWESOME but... Evlat can't find the terminal window/chat now :(
Not sure if it's possible to fix that!
@gabe Hello :) I'm working on ssh terminal session detection right now, after that i will check this too! Also your AGY usage request is on my list too!
@kalaomer I was super curious so debugged and pushed a PR for this!
https://github.com/evlat/evlat/pull/5
@gabe Thank you so much! 🙏 Your herdr fix, the Gemini usage and the hide-stale switch all shipped today in 0.1.9, and you're credited in the release notes. Really appreciate it!
How do you detect that a session is waiting on input with no macOS permissions at all? I'm guessing you read the session files Claude Code and Codex write to disk, and if so I'm curious how you plan to keep up when either CLI changes its format in an update. The SSH part for remote servers is the bit I didn't expect.
@can_dizdar Good guess, but it's mostly not session files. Evlat uses hooks, Claude Code's and Codex's official extension point. Setup adds a tiny curl command that POSTs each event to a loopback-only local server. That's why no macOS permissions are needed, just localhost HTTP.
"Waiting" comes straight from those events: a permission request or a question means the agent is blocked on you. The session files are only a supplement (session name, liveness) and are treated as estimates. If their format changes, a detail goes quiet, but the core signal still rides on the documented hook API.
SSH: remote sessions use the same hooks. Evlat opens an ssh -R reverse tunnel so the server's hooks report back to your Mac, each machine with its own key.