// the find
ktr0731/evans
Evans: more expressive universal gRPC client
Evans is a gRPC client with two modes: an interactive REPL with tab completion and a CLI mode for scripting. It's aimed at developers who need to poke at gRPC APIs during development or wire it into shell pipelines. The REPL in particular is good for services you're unfamiliar with — it reads the proto schema and guides you through filling fields.
The REPL tab completion is genuinely useful when you're working with an unfamiliar service — it knows the package/service/RPC hierarchy and fills it in. gRPC reflection support means you often don't need to supply proto files at all. CLI mode is a first-class citizen: JSON in via stdin, JSON out to stdout, pipes naturally with jq. The e2e test suite is thorough with golden files for most interaction patterns, which is more than most CLI tools bother with.
Last commit was December 2023 and the repo has gone quiet — open issues are piling up with no response. gRPC-Web support explicitly doesn't handle TLS, which rules it out for most real gRPC-Web deployments. No support for proto3 optional fields or protobuf editions — the ecosystem has moved and Evans hasn't followed. The REPL state model is stateful in ways that can surprise you: headers persist across calls within a session, which is either convenient or a footgun depending on whether you remember you set them.