# Install grpcurl with Homebrew, apk, dnf, MacPorts, Nix, scoop, winget

Like cURL, but for gRPC. Version 1.9.3 via Homebrew; verified 2026-06-15.

## Install

```sh
sudo av install brew:grpcurl
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install grpcurl
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install grpcurl
```

  Evidence: MacPorts ports tree: devel/grpcurl/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- apk (92%):

```sh
sudo apk add grpcurl
```

  Evidence: Alpine Linux edge package indexes: grpcurl from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz

- dnf (92%):

```sh
sudo dnf install grpcurl
```

  Evidence: Fedora Rawhide package metadata: grpcurl from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst

- Nix (92%):

```sh
nix profile install nixpkgs#grpcurl
```

  Evidence: nixpkgs package indexes: pkgs/by-name/gr/grpcurl/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

### Windows

- Scoop (92%):

```sh
scoop install main/grpcurl
```

  Evidence: Scoop official bucket manifest trees: bucket/grpcurl.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1

- winget (92%):

```sh
winget install --id fullstorydev.grpcurl -e
```

  Evidence: Windows Package Manager source index: fullstorydev.grpcurl from https://cdn.winget.microsoft.com/cache/source.msix

## Package facts

- **Package key:** brew:grpcurl
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/grpcurl>
- **Version:** 1.9.3
- **Source summary:** Like cURL, but for gRPC
- **Homepage:** <https://www.fullstory.com/resources/content/fullstory-engineering-blog/>
- **Repository:** <https://github.com/fullstorydev/grpcurl>
- **Upstream docs:** <https://github.com/fullstorydev/grpcurl#readme>
- **License:** MIT
- **Source archive:** <https://github.com/fullstorydev/grpcurl/archive/refs/tags/v1.9.3.tar.gz>
- **Last updated:** 2026-06-15T10:20:17-04:00
- **Generated:** 2026-07-08T18:08:21+00:00

## Executables

- grpcurl (cli)
- grpcurl (alias)

## Build dependencies

- go

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, sonoma, ventura, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.9.3
- Package-manager updated: 2026-06-15
- Local data: ok
- Upstream repository: https://github.com/fullstorydev/grpcurl
- Upstream latest detected: v1.9.3 (current)
## Project history and usage

grpcurl is a command-line tool for interacting with gRPC servers, deliberately analogous to curl for HTTP. It makes binary protobuf-based RPCs scriptable by accepting and emitting human-friendly JSON while using gRPC schemas to marshal requests.

### Project history

The official GitHub repository was created in 2017, and the first listed GitHub release was v1.0.0 in September 2018. FullStory's engineering blog later described grpcurl as a tool for querying gRPC servers similarly to how curl queries HTTP endpoints.

grpcurl emerged to fill a protocol gap: ordinary curl cannot conveniently invoke gRPC because gRPC uses HTTP/2 plus protobuf binary messages. The README explains that grpcurl uses server reflection, proto source files, or protoset descriptor files to discover schemas and translate JSON request bodies to protobuf messages.

The repository also provides a Go library package for building other tools that dynamically invoke gRPC endpoints, making grpcurl both a user-facing CLI and a reusable implementation example for reflection-driven gRPC tooling.

### Adoption history

grpcurl adoption follows gRPC adoption. As teams moved internal APIs to gRPC, they needed a quick shell-native way to list services, describe methods, send requests, add metadata, test TLS and mTLS, and script health or debugging calls.

FullStory's blog noted that grpcurl implementation code helped power other dynamic gRPC tools such as Uber's Prototool. The README also lists Homebrew, Docker, Snap, Go install, and third-party packages, showing broad packaging interest around a small CLI.

The tool became a common recommendation because it preserves the Unix habit of direct command-line API inspection while respecting gRPC's schema-driven binary protocol.

### How it is used

Typical usage is `grpcurl HOST:PORT list`, `grpcurl HOST:PORT describe SERVICE`, or `grpcurl -d '{...}' HOST:PORT package.Service/Method`. Users can add metadata with `-H`, use plaintext or TLS, and feed JSON from stdin with `-d @`.

When a server supports gRPC reflection, grpcurl can discover services dynamically. Without reflection, users provide `.proto` sources or compiled protoset files so grpcurl can encode and decode messages correctly.

grpcurl supports unary and streaming RPCs, including interactive bidirectional streaming from a terminal. That makes it useful for smoke tests, local development, CI checks, and quick production debugging when paired with appropriate credentials and network access.

### Why package nerds care

grpcurl is one of those packages that earns its place by being exactly the missing CLI. It lets package-manager users install a single binary and immediately inspect a gRPC service without writing a generated client.

It is also an archetypal Go-distributed developer tool: upstream releases binaries, Homebrew packages it, Docker images exist, and `go install` remains a source path. That redundancy is useful because grpcurl is often needed inside CI images and ephemeral debugging shells.

For API tooling, grpcurl made gRPC feel less opaque to developers raised on curl, jq, and shell pipelines. Its JSON bridge is not the wire format; it is the human interface that makes the protobuf wire format tolerable at a prompt.

### Timeline

- 2017: The grpcurl GitHub repository was created.
- 2018: v1.0.0 was published on GitHub releases.
- 2019: FullStory published 'The tale of gRPCurl', explaining the curl-for-gRPC motivation and related tooling reuse.
- 2020s: The README documents Homebrew, Docker, Snap, Go install, and other packaging routes.

### Related projects

- gRPC is the RPC framework grpcurl targets.
- Protocol Buffers provide the message and descriptor model grpcurl uses for JSON-to-binary translation.
- grpcui is a browser UI built as a companion to grpcurl.
- gRPC server reflection lets grpcurl discover schemas directly from a running service.
- Prototool is cited by FullStory as another dynamic gRPC tool that used grpcurl implementation code.

### Sources

- <https://github.com/fullstorydev/grpcurl>
- <https://github.com/fullstorydev/grpcurl/releases>
- <https://raw.githubusercontent.com/fullstorydev/grpcurl/master/README.md>
- <https://www.fullstory.com/blog/tale-of-grpcurl/>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** grpcurl
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Nix - grpcurl: normalized package name match | nixpkgs package indexes: pkgs/by-name/gr/grpcurl/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- apk - grpcurl - 1.9.3-r13: normalized package name match | Alpine Linux edge package indexes: grpcurl from https://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz | CLI tool to interact with gRPC servers | https://github.com/fullstorydev/grpcurl
- dnf - grpcurl - 1.9.3-8.fc44: normalized package name match | Fedora Rawhide package metadata: grpcurl from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/e5ca8ce900cd68f5419e1c39ae517343100b306336cbaeb70a3c153121d95094-primary.xml.zst | Like cURL, but for gRPC: Command-line tool for interacting with gRPC servers | https://github.com/fullstorydev/grpcurl
- MacPorts - grpcurl: normalized package name match | MacPorts ports tree: devel/grpcurl/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1
- Scoop - main/grpcurl: normalized package name match | Scoop official bucket manifest trees: bucket/grpcurl.json from https://api.github.com/repos/ScoopInstaller/Main/git/trees/master?recursive=1
- winget - fullstorydev.grpcurl: normalized package name match | Windows Package Manager source index: fullstorydev.grpcurl from https://cdn.winget.microsoft.com/cache/source.msix


## Related links

- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [Language runtime packages](https://www.automicvault.com/pkg/language-runtime-packages/) - Matched language runtime, compiler, or interpreter metadata.
- [go](https://www.automicvault.com/pkg/brew/go/) - Build dependency declared by Homebrew.
- [grpcui](https://www.automicvault.com/pkg/brew/grpcui/) - Shares av.db curated category or tags: api-client, api-tools, cli, developer-tool, developer-tools.
- [evans](https://www.automicvault.com/pkg/brew/evans/) - Shares av.db curated category or tags: api-client, cli, developer-tools, grpc.
- [oauth2l](https://www.automicvault.com/pkg/brew/oauth2l/) - Shares av.db curated category or tags: api-tools, cli, developer-tools, go.
- [protoc-gen-grpc-java](https://www.automicvault.com/pkg/brew/protoc-gen-grpc-java/) - Shares av.db curated category or tags: cli, developer-tools, grpc.
- [protoc-gen-grpc-swift](https://www.automicvault.com/pkg/brew/protoc-gen-grpc-swift/) - Shares av.db curated category or tags: cli, developer-tools, grpc.
- [chiko](https://www.automicvault.com/pkg/brew/chiko/) - Shares av.db curated category or tags: api-client, cli, developer-tools, grpc.
- [ghz](https://www.automicvault.com/pkg/brew/ghz/) - Shares av.db curated category or tags: cli, developer-tools, go, grpc.
- [graphql-cli](https://www.automicvault.com/pkg/brew/graphql-cli/) - Shares av.db curated category or tags: api-tools, cli, developer-tools.

## Combined YAML source

View the package source record on GitHub. [combined/grpcurl.yml](https://github.com/automic-vault/db/blob/main/combined/grpcurl.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
