gitmyhub

grpcui

JavaScript ★ 5.9k updated 5d ago

An interactive web UI for gRPC, along the lines of postman

grpcui is a command-line tool that opens a browser-based form for talking to gRPC servers. gRPC is a style of API that many backend services use to communicate with each other. It relies on a binary data format that is not human-readable, which makes it harder to test or explore manually than the more common REST-style APIs that tools like Postman were built for. grpcui fills that gap by giving developers a point-and-click interface in their browser instead of requiring them to type raw commands.

When you run grpcui, it starts a small local web server and prints a URL. Opening that URL shows a page where you can pick a service and a method from dropdown lists, fill in request fields using a generated form, and click a button to send the request. The form is built automatically from the server's own schema, so it reflects the actual fields, types, and structure of each call. You can also switch to a tab that lets you type or paste the request as raw JSON if you prefer.

After sending a request, the tool shows the full response on a third tab, including any metadata the server returned alongside the data. It works with both regular and streaming methods, though for streaming calls you prepare all messages upfront rather than sending them one at a time interactively.

The tool can discover what endpoints a server offers in a few ways: by asking the server directly if it supports reflection, by reading the original proto source files that define the API, or by loading compiled descriptor files. If none of those are available, the tool cannot operate, since it needs the schema to build the form.

Installation is through Homebrew on Mac or Linux, or via the Go toolchain. The repository also ships two Go library packages that let other Go applications embed the same web form inside their own HTTP servers.