Introduction
grpcui is an open-source command-line tool by FullStory that provides a web-based graphical interface for interacting with gRPC servers. It is the UI counterpart to grpcurl, offering a point-and-click experience for exploring services, composing requests, and inspecting responses without writing client code.
What grpcui Does
- Discovers all services and methods on a gRPC server via reflection
- Presents a web form UI for composing and sending unary and streaming RPCs
- Displays response messages, headers, trailers, and status codes in the browser
- Supports TLS, mTLS, and plaintext connections with configurable credentials
- Loads proto files directly when server reflection is not available
Architecture Overview
grpcui connects to the target gRPC server using the standard gRPC health and reflection protocols to enumerate available services and message types. It then starts a local HTTP server that serves a single-page web application. The browser UI renders dynamic forms based on the protobuf schemas and proxies each RPC call through the local server to the gRPC backend.
Self-Hosting & Configuration
- Install via go install or download a prebuilt binary from GitHub releases
- Point at any gRPC server with grpcui hostname:port
- Use -plaintext for servers without TLS or -cacert for custom CA bundles
- Pass -proto flags to load service definitions from .proto files directly
- Set -bind and -port to control the local web server address
Key Features
- Zero-config discovery of services, methods, and message types
- Dynamic form generation from protobuf schemas with nested message support
- Metadata editor for setting request headers and deadlines
- Support for server streaming, client streaming, and bidirectional RPCs
- Companion to grpcurl for teams that need both CLI and GUI workflows
Comparison with Similar Tools
- grpcurl — CLI-only gRPC client from the same team, no web UI
- Postman — supports gRPC but requires importing proto files manually
- BloomRPC — desktop GUI for gRPC, now archived and unmaintained
- Kreya — commercial gRPC and REST client with a richer UI
- Evans — terminal-based interactive gRPC client with REPL mode
FAQ
Q: Does the server need to have reflection enabled? A: Reflection makes discovery automatic. Without it, you can pass .proto files via the -proto flag and grpcui will parse them directly.
Q: Can I use it with TLS? A: Yes. Pass -cacert for server CA verification and -cert/-key for mutual TLS. Use -plaintext only for development servers.
Q: Does it support streaming RPCs? A: Yes. The web UI supports all four gRPC call types, including server streaming and bidirectional streaming.
Q: Is it just for development? A: It is designed for development and debugging. For production monitoring, dedicated gRPC observability tools are more appropriate.