grpcurl

What grpcurl is
grpcurl is a command-line tool for calling methods on gRPC servers. It accepts request messages in JSON and converts them to the protobuf binary format expected by the service, making it usable from a terminal or in scripts and command pipelines. Its list and describe commands let users inspect available services, methods, and schema details. grpcurl can learn a server’s schema through reflection, or use .proto source files or compiled protoset files. When reflection is unavailable, one of those files is needed to understand the service schema.
The tool supports streaming RPCs, including interactive bidirectional sessions that use a terminal and stdin. Connections can use TLS or plaintext; TLS options include mutual TLS client certificates. grpcurl is available for Linux, macOS, and Windows, and can also be used in self-hosted environments. The project documents installation through release binaries, Homebrew, Docker, Snap, source builds, and third-party packages. It also provides a Go library package for building command-line tools that invoke gRPC endpoints dynamically. The project identifies its license as MIT. grpcurl is free, with no paid plans or usage limits stated.
Who it suits
grpcurl suits developers and operators who need to call gRPC methods from a command line, send JSON requests, or inspect a service schema. It can also suit people building Go command-line tools that need to invoke gRPC endpoints dynamically.
What it does well
- Accepts JSON requests and converts them to protobuf binary format.
- Inspects services, methods, and schema descriptions.
- Supports streaming RPCs, including interactive bidirectional sessions.
- Offers TLS, plaintext, and mutual TLS connection options.
- Provides a Go library package for dynamic gRPC invocation.
- Free under the MIT License.
What to know first
- Requires proto source or protoset files when a server lacks reflection.
- It is a command-line tool for gRPC rather than GraphQL or WebSocket APIs.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| grpcurl | No paid plans or usage limits stated | Free |
As github.com lists them, read 5 Oct 2026. The maker's own page has the final word.
Getting started
- Open the grpcurl project website on GitHub.
- Choose a documented installation route: release binary, Homebrew, Docker, Snap, source, or a third-party package.
- Install grpcurl on Linux, macOS, or Windows.
- Use server reflection or provide proto source files or a protoset file when the server does not expose reflection.
- Send JSON request messages to invoke gRPC methods, or use list and describe to inspect the service.
Verdict
Choose grpcurl when you need a free command-line way to invoke gRPC methods, inspect schemas, or work with streaming RPCs. If a server has no reflection, you will need its proto source files or a protoset file to provide the schema.
Questions
How much does grpcurl cost?
grpcurl is free. No paid plans or usage limits are stated.
Which platforms does it support?
It is available for Linux, macOS, and Windows, and can also be used in self-hosted environments.
Does grpcurl support streaming?
Yes. It supports streaming RPCs, including interactive bidirectional streaming through a terminal and stdin.
What does grpcurl use to discover a service schema?
It can use server reflection, .proto source files, or compiled protoset files. If the server lacks reflection, it requires proto source or protoset files.
What license does grpcurl use?
The project identifies its license as MIT.
How can I install grpcurl?
Documented options include release binaries, Homebrew, Docker, Snap, installation from source, and third-party packages.
Facts from grpcurl's own pages
- API documentation
- No · github.com, 20 Sept 2026
- Automated test runs
- No · github.com, 20 Sept 2026
- Free plan
- Yes · github.com, 20 Sept 2026
- GraphQL support
- No · github.com, 20 Sept 2026
- gRPC support
- Yes · github.com, 20 Sept 2026
- Inspection
- Its list and describe commands can show services, methods, and schema descriptions. · github.com, 5 Oct 2026
- Installation
- The README documents release binaries, Homebrew, Docker, Snap, installation from source, and third-party packages. · github.com, 5 Oct 2026
- Integrations
- The project provides a Go library package for building command-line tools that dynamically invoke gRPC endpoints. · github.com, 5 Oct 2026
- JSON requests
- It accepts request messages as JSON and translates them to protobuf binary format. · github.com, 5 Oct 2026
- License
- The repository identifies its license as MIT. · github.com, 5 Oct 2026
- Platforms
- The README mentions macOS Homebrew and third-party packages for Windows and Linux distributions. · github.com, 5 Oct 2026
- Purpose
- grpcurl is a command-line tool for interacting with gRPC servers and invoking RPC methods. · github.com, 5 Oct 2026
- Schema discovery
- It can browse service schemas using server reflection, .proto source files, or compiled protoset files. · github.com, 5 Oct 2026
- Schema requirement
- If a server lacks reflection, grpcurl requires the service's proto source files or protoset files to understand its schema. · github.com, 5 Oct 2026
- Streaming
- It supports streaming RPCs, including interactive bidirectional streaming through a terminal and stdin. · github.com, 5 Oct 2026
- Team workspaces
- No · github.com, 20 Sept 2026
- TLS
- It supports TLS, plaintext connections, TLS configuration options, and mutual TLS client certificates. · github.com, 5 Oct 2026
- Use case
- The project describes JSON input as useful for people and scripts and gives an example of using grpcurl in a command pipeline. · github.com, 5 Oct 2026
- WebSocket support
- No · github.com, 20 Sept 2026
Where grpcurl stands on Freedom251
- API clients#16 of 38
- gRPC Tools#11 of 24