gore is a Go REPL that provides an interactive environment for evaluating Go code with line editing, code completion, and other conveniences.
The tool addresses the need for quick experimentation and exploration in Go by executing arbitrary Go expressions, statements, and function declarations in an interactive session. It works by running code through the Go toolchain for each input, allowing developers to test ideas without creating separate files or projects. The REPL suppresses "evaluated but not used" errors that would normally occur, and supports multi-line input, package importing with completion, and automatic documentation display.
Developers should be aware that gore's implementation using `go run` for each evaluation has trade-offs. Every line is re-evaluated repeatedly, which means time-dependent code like `time.Now()` will not behave as expected, and execution is relatively slow compared to some alternatives. The tool requires Go toolchains to be installed at runtime, so it cannot be distributed as a standalone binary. However, gore integrates well with Go modules, allowing you to load local modules by starting it in a project directory and import remote packages on demand without manual `go get` commands. The README recommends considering gomacro or yaegi for use cases where performance is critical.
Development activity shows consistent maintenance with automated testing through continuous integration workflows. The project accepts contributions and maintains documentation including environment variable configuration options for customizing history storage location, pager behavior, and output verbosity.