grotto

Native macOS gRPC client with a permissive, user-friendly GUI

Language
Go
Version
0.8.0
License
MIT
Category
Dev Tool

A desktop gRPC client built with Go and Fyne that discovers services via reflection and lets you explore APIs through auto-generated forms or direct JSON editing. Features syntax-colored JSON responses, smart optional field handling, and full streaming support across all four gRPC modes. Ships as a native macOS app with workspaces, request history, TLS/mTLS, metadata inspection, and keyboard shortcuts.

Preview

>_
grotto terminal demo

Features

01

Reflection-based discovery — automatically discovers services and methods with permissive descriptor handling

02

Dual interaction modes — auto-generated forms with validation or direct JSON editing with bidirectional sync

03

Full streaming support — unary, server streaming, client streaming, and bidirectional RPCs

04

Smart optional fields — proto3 optional fields and single-member oneofs render as toggle checkboxes with proper field presence

05

Syntax-colored responses — JSON output with color-coded keys, strings, numbers, and booleans, plus copy to clipboard

06

Well-known type widgets — native form controls for Timestamp, Duration, and FieldMask

07

TLS and mTLS — secure connections with configurable certificates and skip-verify option

08

Workspaces — save and load connections, selected methods, and request data with per-item management

09

Request history — track and replay previous requests

10

Metadata inspection — send and view gRPC request and response headers

Install

Homebrew

>_
$ brew install shhac/tap/grotto

Build from Source

>_
$ git clone https://github.com/shhac/grotto.git && cd grotto && go build -o grotto ./cmd/grotto

Usage

>_ Launch grotto
$ grotto
>_ Launch with debug logging
$ GROTTO_DEBUG=true grotto
>_ Use a custom storage directory
$ GROTTO_STORAGE_PATH=~/my-workspaces grotto