1 comment

[ 2.9 ms ] story [ 15.6 ms ] thread
I opened my terminal the other day and couldn't remember which agent I'd last been using.

Instead of opening Claude, Codex and Pi individually to check, I thought it'd be nice to just ls my conversations like I do my files.

So I made lsa. It lists your agent sessions and lets you easily resume, monitor or hand the conversation off to another agent. e.g.:

  $ lsa
    0 claude   ● 2m     3e1f      add a --dry-run flag to the deploy
    1 codex    15m ago  01a0c7d   fix the test in api/test_auth.py
    2 pi       3h ago   f7c2      why is the docker build so slow
    3 goose    1d ago   2026      write release notes for v2.4
I've tried to follow the Unix philosophy: do one thing well and work with other tools through text streams.

You can pipe conversations to tools like grep to search them (lsa show 0 | grep TODO) or resume them with lsa resume f7c2.

To continue the conversation in a different agent, lsa handoff 0 codex opens Codex with the conversation already loaded so you can keep chatting.

It can also replace the bit I wanted from agent multiplexers like herdr, Claude Squad and cmux: getting back into a session and leaving it running. Instead of building another multiplexer, it just works with tmux.

lsa resume 0 automatically finds and attaches to the tmux pane the session is already running in. ctrl-b d detaches and leaves it running in the background. A quick lsa shows whether it's still working.

Would love to know if you find it useful. PRs are very welcome.