Remix.run Logo
mrstackdump 17 hours ago

Maybe I'm not understanding it (totally possible!) but could Claude just do that by reading standard out and writing to standard in?

tptacek 16 hours ago | parent | next [-]

I had a really hard time getting anything like that to work (you can't just read stdout and write stdin, because you're driving a terminal in raw mode), but it took like 3 sentences worth of Claude prompt to get Claude to use tmux to do this reliably.

alehlopeh 16 hours ago | parent | next [-]

I tell Claude code to use an existing tmux session to interact with eg a rails console, and it uses tmux send-keys and capture-pane for IO. It gets tripped up if a pager is invoked, but otherwise it works pretty well. Didn’t occur to me to tell it to take screenshots.

tptacek 15 hours ago | parent [-]

`tmux capture-pane`.

mrstackdump 16 hours ago | parent | prev [-]

I would love to see your prompt if you ever post it anywhere.

_sinelaw_ 9 hours ago | parent [-]

For Claude, it's enough to prompt "use tmux to test", that usually does the work out of the box. If colors are important I also add "use -e option with capture-pane to see colors". It just works. I used it regularly with Claude and my TUI. For other agents other than Claude I need to use a more specific set of instructions ("use send-keys, capture-pane and mouse control via tmux" etc.)

Since I have e2e tests, I only use the agent for: guiding it on how to write the e2e test ("use tmux to try the new UI and then write a test") or to evaluate its overall usability (fake user testing, before actual user testing): "use tmux to evaluate the feature X and compile a list of usability issues"

rsanheim 16 hours ago | parent | prev [-]

Also many CLIs act differently when invoked connected to a terminal (TUI/interactive) vs not. So you’d run into issues there where Claude could only test the non-interactive things.