git404hub

what is grpcurl fr?

fullstorydev/grpcurl — explained in plain English

Analysis updated 2026-06-24

12,632GoAudience · developerComplexity · 2/5Setup · easy

tl;dr

A command-line tool for calling gRPC server endpoints from the terminal, like cURL for HTTP. It converts human-readable JSON to binary protobuf format and back automatically.

vibe map

mindmap
  root((grpcurl))
    What it does
      Call gRPC methods
      JSON to protobuf
      Streaming support
    Service discovery
      Server reflection
      Proto source files
      Descriptor files
    Connection types
      TLS encrypted
      Plain text
      Mutual TLS
    Installation
      Binary download
      Homebrew macOS
      Docker image
    Go library
      Build custom clients

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

what do people make with this?

VIBE 1

Test a gRPC service endpoint from your terminal without writing any client code.

VIBE 2

List all services and methods available on a gRPC server using server reflection.

VIBE 3

Debug bidirectional streaming gRPC methods by piping JSON messages from a file.

VIBE 4

Automate gRPC API calls in shell scripts using JSON input piped from other commands.

what's the stack?

Go

how it stacks up fr

fullstorydev/grpcurlelastic/beatsgo-admin-team/go-admin
Stars12,63212,61512,650
LanguageGoGoGo
Setup difficultyeasymoderatehard
Complexity2/53/54/5
Audiencedeveloperops devopsdeveloper

Figures from each repo's GitHub metadata at analysis time.

how do i run it?

Difficulty · easy time til it works · 5min

in plain english

gRPCurl is a command-line tool for talking to gRPC servers, named after the popular cURL utility that developers use to send HTTP requests from the terminal. gRPC is a way for programs to communicate with each other over a network, but it uses a compact binary data format called protocol buffers (protobuf) that is not human-readable and cannot be sent with regular HTTP tools. gRPCurl translates between the JSON format humans can read and write and the binary format that gRPC servers expect. With gRPCurl you can call any method on a gRPC server, including streaming methods where the server sends back multiple responses over time, or where both sides exchange data back and forth in an ongoing conversation. You write the request data as JSON in the terminal or pipe it in from another command, and the tool handles the conversion automatically. Custom headers and metadata can be added to each request with a flag. To know what methods and data shapes a server accepts, gRPCurl can ask the server directly if it supports a feature called server reflection. If the server does not support reflection, you can point gRPCurl at the source files that define the service (proto files) or pre-compiled descriptor files. This lets you list available services and describe what fields each method expects before making a call. Installation options include downloading a pre-built binary, using Homebrew on macOS, running it as a Docker container, installing via the Snap package manager, or building from source if you have Go installed. The tool supports servers that use TLS encryption, plain unencrypted connections, or mutual TLS where both the client and server present certificates to each other. The repository also includes a Go library package that other developers can use as a base for building their own gRPC command-line clients.

prompts (copy fr)

prompt 1
Using grpcurl, how do I call the SayHello method on a gRPC server at localhost:50051 with the JSON payload {"name": "World"}?
prompt 2
How do I list all available services on a gRPC server using grpcurl and server reflection?
prompt 3
Show me how to use grpcurl with a .proto file to describe a service and call one of its methods.
prompt 4
How do I connect grpcurl to a gRPC server that requires mutual TLS, providing both client certificate and key?
prompt 5
Write a shell script that calls a gRPC endpoint with grpcurl and pipes the JSON response to jq to extract a specific field.

Frequently asked questions

what is grpcurl fr?

A command-line tool for calling gRPC server endpoints from the terminal, like cURL for HTTP. It converts human-readable JSON to binary protobuf format and back automatically.

What language is grpcurl written in?

Mainly Go. The stack also includes Go.

How hard is grpcurl to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is grpcurl for?

Mainly developer.

peek the repo → explain another one

This repo across BitVibe Labs

double-check against the repo, no cap.