# Simulating keystrokes to external program

**URL:** <https://discourse.julialang.org/t/simulating-keystrokes-to-external-program/128229>\
**Category:** General Usage\
**Tags:** testing, external-process\
**Created:** [April 19, 2025, 9:34pm UTC](https://discourse.julialang.org/t/simulating-keystrokes-to-external-program/128229 "2025-04-19T21:34:07Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![theogf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/theogf/32/1987_2.png) [@theogf](https://discourse.julialang.org/u/theogf)\
**Post date:** [April 19, 2025, 9:34pm UTC](https://discourse.julialang.org/t/simulating-keystrokes-to-external-program/128229/1 "2025-04-19T21:34:07Z")

</div>

Hi! I have a package that makes a heavy use of `fzf`.  
I would like to test things more thoroughly but this requires interactive actions on `fzf` itself.

I am aware of [GitHub - Keno/VT100.jl: Terminal Emulation for terminal UI verification](https://github.com/Keno/VT100.jl) but to be honest, the lack of documentation and the age of the package makes me doubt it is relevant.

Is there anything else I could use?

---

<div class="post-metadata">

**Author:** ![adolgert](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adolgert/32/20286_2.png) [@adolgert](https://discourse.julialang.org/u/adolgert)\
**Post date:** [April 26, 2025, 8:11pm UTC](https://discourse.julialang.org/t/simulating-keystrokes-to-external-program/128229/3 "2025-04-26T20:11:46Z")

</div>

There is a package called TerminalRegressionTests.jl that has an interface that looks like the Unix `expect` command. It builds on VT100. That’s the only one I’ve seen.

---

<div class="post-metadata">

**Author:** ![theogf](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/theogf/32/1987_2.png) [@theogf](https://discourse.julialang.org/u/theogf)\
**Post date:** [April 29, 2025, 8:23am UTC](https://discourse.julialang.org/t/simulating-keystrokes-to-external-program/128229/4 "2025-04-29T08:23:35Z")

</div>

Thanks! I have tried that as well, but I think it does not see the output of external commands (or maybe I am just using it wrong).

---

<div class="post-metadata">

**Author:** ![adolgert](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/adolgert/32/20286_2.png) [@adolgert](https://discourse.julialang.org/u/adolgert)\
**Post date:** [May 4, 2025, 12:08pm UTC](https://discourse.julialang.org/t/simulating-keystrokes-to-external-program/128229/5 "2025-05-04T12:08:39Z")

</div>

Bummer. We could totally use a testing tool like that. - Drew
