gRPCurl - Command-Line Tool for Testing gRPC Services
gRPCurl is a command-line tool for testing and interacting with gRPC services, offering features like reflection, requests, and response debugging.

Key Features

Command Line
grpcurl is a command-line tool that lets you interact with gRPC servers directly without writing any client code or compiling stubs.

No Stubs
It works without needing generated client code; just provide the proto file or use server reflection to call any gRPC endpoint.

Server Reflection
Supports gRPC server reflection to auto-discover available services and methods without local .proto files.

JSON Requests
Send and receive messages in simple JSON format, making it easy to interact with gRPC services using human-readable input.

Service Listing
Quickly list all available services on a gRPC server to explore what’s exposed and ready for interaction or testing.

TLS Support
Connect to secure gRPC servers with TLS encryption and certificate support for safe communication over networks.
Installation Method
TLS Support
Connect to secure gRPC servers with TLS encryption and certificate support for safe communication over networks.
Homebrew Method
Install grpcurl using Homebrew with brew install grpcurl for quick setup on macOS and easy version management.
Binary Download
Download grpcurl binary, make it executable, and move it to /usr/local/bin for global access on Linux systems.
Scoop Method
Use scoop install grpcurl in PowerShell to install grpcurl easily, keeping it updated automatically via Scoop’s bucket system.
Troubleshoot
Check Reflection
- If grpcurl can't list services, the server may not enable reflection; use .proto files to interact manually.
Use Proto
- Without reflection, supply the correct .proto files and import paths to help grpcurl understand the service structure.
Invalid Format
- Malformed JSON input causes execution failure; always validate your payload format using tools like jq before sending.
Missing Fields
- Ensure all required fields match the method definition in your .proto file to avoid decoding and validation errors.
Server Reachability
- Connection problems often mean the server isn't running or the address is wrong; double-check the host and port.

Secure Access
- If using TLS, include -plaintext for insecure connections or provide certificates when accessing secure gRPC endpoints.
Authentication and TLS
Authentication and TLS
TLS Authentication
Enable secure communication between grpcurl and gRPC server using TLS encryption with optional certificate verification.
Enable TLS
Use -tls to initiate a secure connection. This encrypts data in transit to protect from eavesdropping or tampering. "grpcurl -tls
Skip Verify
Use -insecure if the server uses self-signed or untrusted certificates to skip TLS verification (not recommended in production)."grpcurl -tls -insecure : list "
CA Certificate
Use -cacert to specify a custom CA certificate for verifying server identity against a private or custom certificate authority. "grpcurl -tls -cacert ca.pem : list "
Client Certificate
Use -cert and -key to provide client certificates when mutual TLS (mTLS) is required by the server for authentication."grpcurl -tls -cert client.pem -key client.key : list "
Why Choose grpcurl
Grpcurl is Lightweight, fast, and curl-like gRPC testing made easy