Analysis updated 2026-07-22 · repo last pushed 2024-06-15
Write automated tests for a CLI installer that walks through every prompt and answer.
Simulate typing a password into a tool that asks for one.
Script a text editor to open, make changes, and quit without human intervention.
| netflix/go-expect | tastyeffectco/sandboxes | mitchellh/panicwrap | |
|---|---|---|---|
| Stars | 473 | 476 | 453 |
| Language | Go | Go | Go |
| Last pushed | 2024-06-15 | — | 2024-04-05 |
| Maintenance | Dormant | — | Dormant |
| Setup difficulty | moderate | moderate | easy |
| Complexity | 3/5 | 4/5 | 2/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
You need to know Go and handle process startup yourself since the library only manages the terminal conversation, not process launching.
Netflix's go-expect is a Go library that lets your code automate programs that normally need a human sitting at a keyboard. Think of it as a way to script interactions with command-line tools that ask for input or respond to what you type, like text editors, password prompts, or interactive installers, so you can control them automatically from a program. The way it works is by creating a fake terminal (called a pseudoterminal) that your target program runs inside. Your code can then "send" keystrokes to that program and watch for specific output, just like a person would type and read the screen. What sets this tool apart from similar utilities is that it deliberately doesn't handle starting or managing the processes themselves, you handle that part yourself using Go's standard tools. It focuses purely on the conversation: feeding input in and reading output back. A team building a CLI installer that asks a series of questions could use this to write automated tests that walk through every prompt and answer. Someone testing a tool with a password prompt could simulate typing a password. Or you could script a text editor to open, make changes, and quit, all without human intervention. The README is sparse beyond the two code examples, so you're expected to know some Go to get up and running. The notable design choice is the decision to stay out of process management entirely, which keeps the tool lightweight but means you'll write a bit more wiring code compared to a full-featured alternative.
A Go library that lets your code automate interactive command-line programs by simulating keystrokes and reading output through a fake terminal, without managing the processes themselves.
Mainly Go. The stack also includes Go.
Dormant — no commits in 2+ years (last push 2024-06-15).
No license information is provided in the README, so usage rights are unclear.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.